From cd5f32ba0af7f3d6f26aa25245ebd2013bfc1107 Mon Sep 17 00:00:00 2001 From: MarSeventh <1193267292@qq.com> Date: Tue, 21 Jul 2026 00:06:37 +0800 Subject: [PATCH] feat: add wallpaper toggle and refresh frontend assets --- .../{844.2b40f004.css => 322.2b40f004.css} | 0 ...44.2b40f004.css.gz => 322.2b40f004.css.gz} | Bin .../{320.7e03bef9.css => 451.7e03bef9.css} | 0 ...20.7e03bef9.css.gz => 451.7e03bef9.css.gz} | Bin frontend-dist/css/63.68965781.css.gz | Bin 15295 -> 0 bytes frontend-dist/css/715.f5deda06.css | 1 - frontend-dist/css/715.f5deda06.css.gz | Bin 11055 -> 0 bytes .../{915.9e4a657d.css => 870.16cbea0a.css} | 2 +- ...15.9e4a657d.css.gz => 870.16cbea0a.css.gz} | Bin 11727 -> 11733 bytes frontend-dist/css/888.793f4b66.css | 1 + frontend-dist/css/888.793f4b66.css.gz | Bin 0 -> 11138 bytes .../css/{63.68965781.css => 957.db5680df.css} | 2 +- frontend-dist/css/957.db5680df.css.gz | Bin 0 -> 15291 bytes frontend-dist/css/app.22746548.css.gz | Bin 4949 -> 0 bytes .../{app.22746548.css => app.c8e85cb3.css} | 2 +- frontend-dist/css/app.c8e85cb3.css.gz | Bin 0 -> 5078 bytes frontend-dist/index.html | 2 +- frontend-dist/index.html.gz | Bin 548 -> 546 bytes frontend-dist/js/21.72019411.js | 2 -- frontend-dist/js/21.72019411.js.gz | Bin 2747 -> 0 bytes frontend-dist/js/21.72019411.js.map | 1 - frontend-dist/js/21.72019411.js.map.gz | Bin 8201 -> 0 bytes frontend-dist/js/21.e06c66b8.js | 2 ++ frontend-dist/js/21.e06c66b8.js.gz | Bin 0 -> 2719 bytes frontend-dist/js/21.e06c66b8.js.map | 1 + frontend-dist/js/21.e06c66b8.js.map.gz | Bin 0 -> 8086 bytes frontend-dist/js/22.f752503c.js | 2 ++ frontend-dist/js/22.f752503c.js.gz | Bin 0 -> 2556 bytes frontend-dist/js/22.f752503c.js.map | 1 + frontend-dist/js/22.f752503c.js.map.gz | Bin 0 -> 6346 bytes .../js/{227.8094852b.js => 227.44709224.js} | 2 +- frontend-dist/js/227.44709224.js.gz | Bin 0 -> 897 bytes ...27.8094852b.js.map => 227.44709224.js.map} | 2 +- frontend-dist/js/227.44709224.js.map.gz | Bin 0 -> 2458 bytes frontend-dist/js/227.8094852b.js.gz | Bin 898 -> 0 bytes frontend-dist/js/227.8094852b.js.map.gz | Bin 2458 -> 0 bytes frontend-dist/js/278.397ef7d3.js | 2 -- frontend-dist/js/278.397ef7d3.js.gz | Bin 3572 -> 0 bytes frontend-dist/js/278.397ef7d3.js.map | 1 - frontend-dist/js/278.397ef7d3.js.map.gz | Bin 9933 -> 0 bytes frontend-dist/js/278.66af4a0a.js | 2 ++ frontend-dist/js/278.66af4a0a.js.gz | Bin 0 -> 3550 bytes frontend-dist/js/278.66af4a0a.js.map | 1 + frontend-dist/js/278.66af4a0a.js.map.gz | Bin 0 -> 9799 bytes .../js/{283.efe323af.js => 283.5d4f325d.js} | 2 +- frontend-dist/js/283.5d4f325d.js.gz | Bin 0 -> 3483 bytes ...83.efe323af.js.map => 283.5d4f325d.js.map} | 2 +- frontend-dist/js/283.5d4f325d.js.map.gz | Bin 0 -> 9679 bytes frontend-dist/js/283.efe323af.js.gz | Bin 3481 -> 0 bytes frontend-dist/js/283.efe323af.js.map.gz | Bin 9678 -> 0 bytes frontend-dist/js/320.c04c60ec.js | 2 -- frontend-dist/js/320.c04c60ec.js.gz | Bin 2652 -> 0 bytes frontend-dist/js/320.c04c60ec.js.map | 1 - frontend-dist/js/320.c04c60ec.js.map.gz | Bin 6983 -> 0 bytes frontend-dist/js/331.0b44b778.js | 2 ++ frontend-dist/js/331.0b44b778.js.gz | Bin 0 -> 3771 bytes frontend-dist/js/331.0b44b778.js.map | 1 + frontend-dist/js/331.0b44b778.js.map.gz | Bin 0 -> 10076 bytes frontend-dist/js/331.66294132.js | 2 -- frontend-dist/js/331.66294132.js.gz | Bin 3794 -> 0 bytes frontend-dist/js/331.66294132.js.map | 1 - frontend-dist/js/331.66294132.js.map.gz | Bin 10200 -> 0 bytes frontend-dist/js/412.2e84fff1.js.map.gz | Bin 163538 -> 0 bytes .../js/{412.2e84fff1.js => 412.2eefa4a8.js} | 2 +- ...{412.2e84fff1.js.gz => 412.2eefa4a8.js.gz} | Bin 47759 -> 47758 bytes ...12.2e84fff1.js.map => 412.2eefa4a8.js.map} | 2 +- frontend-dist/js/412.2eefa4a8.js.map.gz | Bin 0 -> 163538 bytes frontend-dist/js/449.865896d4.js | 2 ++ frontend-dist/js/449.865896d4.js.gz | Bin 0 -> 2750 bytes frontend-dist/js/449.865896d4.js.map | 1 + frontend-dist/js/449.865896d4.js.map.gz | Bin 0 -> 7037 bytes frontend-dist/js/449.b95f70de.js | 2 -- frontend-dist/js/449.b95f70de.js.gz | Bin 2723 -> 0 bytes frontend-dist/js/449.b95f70de.js.map | 1 - frontend-dist/js/449.b95f70de.js.map.gz | Bin 7036 -> 0 bytes frontend-dist/js/63.d98ed786.js | 2 -- frontend-dist/js/63.d98ed786.js.gz | Bin 58547 -> 0 bytes frontend-dist/js/63.d98ed786.js.map | 1 - frontend-dist/js/63.d98ed786.js.map.gz | Bin 148029 -> 0 bytes .../js/{679.a15c0be8.js => 679.23bb4457.js} | 2 +- frontend-dist/js/679.23bb4457.js.gz | Bin 0 -> 893 bytes ...79.a15c0be8.js.map => 679.23bb4457.js.map} | 2 +- frontend-dist/js/679.23bb4457.js.map.gz | Bin 0 -> 2285 bytes frontend-dist/js/679.a15c0be8.js.gz | Bin 892 -> 0 bytes frontend-dist/js/679.a15c0be8.js.map.gz | Bin 2283 -> 0 bytes frontend-dist/js/715.5055f02b.js.gz | Bin 106774 -> 0 bytes frontend-dist/js/715.5055f02b.js.map | 1 - frontend-dist/js/715.5055f02b.js.map.gz | Bin 365574 -> 0 bytes frontend-dist/js/844.783c3fb9.js | 2 -- frontend-dist/js/844.783c3fb9.js.gz | Bin 2586 -> 0 bytes frontend-dist/js/844.783c3fb9.js.map | 1 - frontend-dist/js/844.783c3fb9.js.map.gz | Bin 6347 -> 0 bytes frontend-dist/js/870.9e7db652.js | 2 ++ frontend-dist/js/870.9e7db652.js.gz | Bin 0 -> 33560 bytes frontend-dist/js/870.9e7db652.js.map | 1 + frontend-dist/js/870.9e7db652.js.map.gz | Bin 0 -> 85084 bytes .../js/{715.5055f02b.js => 888.f7235188.js} | 6 +++--- frontend-dist/js/888.f7235188.js.gz | Bin 0 -> 106579 bytes frontend-dist/js/888.f7235188.js.map | 1 + frontend-dist/js/888.f7235188.js.map.gz | Bin 0 -> 365181 bytes frontend-dist/js/915.6b34330d.js | 2 -- frontend-dist/js/915.6b34330d.js.gz | Bin 31457 -> 0 bytes frontend-dist/js/915.6b34330d.js.map | 1 - frontend-dist/js/915.6b34330d.js.map.gz | Bin 79804 -> 0 bytes frontend-dist/js/957.e8a16dfc.js | 2 ++ frontend-dist/js/957.e8a16dfc.js.gz | Bin 0 -> 57836 bytes frontend-dist/js/957.e8a16dfc.js.map | 1 + frontend-dist/js/957.e8a16dfc.js.map.gz | Bin 0 -> 146478 bytes frontend-dist/js/967.398473ea.js | 2 -- frontend-dist/js/967.398473ea.js.gz | Bin 3658 -> 0 bytes frontend-dist/js/967.398473ea.js.map | 1 - frontend-dist/js/967.398473ea.js.map.gz | Bin 9924 -> 0 bytes frontend-dist/js/967.4c8a2786.js | 2 ++ frontend-dist/js/967.4c8a2786.js.gz | Bin 0 -> 3633 bytes frontend-dist/js/967.4c8a2786.js.map | 1 + frontend-dist/js/967.4c8a2786.js.map.gz | Bin 0 -> 9801 bytes frontend-dist/js/app.393ef185.js | 2 -- frontend-dist/js/app.393ef185.js.gz | Bin 25354 -> 0 bytes frontend-dist/js/app.393ef185.js.map | 1 - frontend-dist/js/app.393ef185.js.map.gz | Bin 18681 -> 0 bytes frontend-dist/js/app.e9233b6a.js | 2 ++ frontend-dist/js/app.e9233b6a.js.gz | Bin 0 -> 25181 bytes frontend-dist/js/app.e9233b6a.js.map | 1 + frontend-dist/js/app.e9233b6a.js.map.gz | Bin 0 -> 18398 bytes .../js/chunk-vendors.6243340b.js.map | 2 +- .../js/chunk-vendors.6243340b.js.map.gz | Bin 1775190 -> 1775282 bytes functions/api/manage/sysConfig/page.js | 11 +++++++++++ 127 files changed, 56 insertions(+), 48 deletions(-) rename frontend-dist/css/{844.2b40f004.css => 322.2b40f004.css} (100%) rename frontend-dist/css/{844.2b40f004.css.gz => 322.2b40f004.css.gz} (100%) rename frontend-dist/css/{320.7e03bef9.css => 451.7e03bef9.css} (100%) rename frontend-dist/css/{320.7e03bef9.css.gz => 451.7e03bef9.css.gz} (100%) delete mode 100644 frontend-dist/css/63.68965781.css.gz delete mode 100644 frontend-dist/css/715.f5deda06.css delete mode 100644 frontend-dist/css/715.f5deda06.css.gz rename frontend-dist/css/{915.9e4a657d.css => 870.16cbea0a.css} (84%) rename frontend-dist/css/{915.9e4a657d.css.gz => 870.16cbea0a.css.gz} (83%) create mode 100644 frontend-dist/css/888.793f4b66.css create mode 100644 frontend-dist/css/888.793f4b66.css.gz rename frontend-dist/css/{63.68965781.css => 957.db5680df.css} (64%) create mode 100644 frontend-dist/css/957.db5680df.css.gz delete mode 100644 frontend-dist/css/app.22746548.css.gz rename frontend-dist/css/{app.22746548.css => app.c8e85cb3.css} (57%) create mode 100644 frontend-dist/css/app.c8e85cb3.css.gz delete mode 100644 frontend-dist/js/21.72019411.js delete mode 100644 frontend-dist/js/21.72019411.js.gz delete mode 100644 frontend-dist/js/21.72019411.js.map delete mode 100644 frontend-dist/js/21.72019411.js.map.gz create mode 100644 frontend-dist/js/21.e06c66b8.js create mode 100644 frontend-dist/js/21.e06c66b8.js.gz create mode 100644 frontend-dist/js/21.e06c66b8.js.map create mode 100644 frontend-dist/js/21.e06c66b8.js.map.gz create mode 100644 frontend-dist/js/22.f752503c.js create mode 100644 frontend-dist/js/22.f752503c.js.gz create mode 100644 frontend-dist/js/22.f752503c.js.map create mode 100644 frontend-dist/js/22.f752503c.js.map.gz rename frontend-dist/js/{227.8094852b.js => 227.44709224.js} (97%) create mode 100644 frontend-dist/js/227.44709224.js.gz rename frontend-dist/js/{227.8094852b.js.map => 227.44709224.js.map} (98%) create mode 100644 frontend-dist/js/227.44709224.js.map.gz delete mode 100644 frontend-dist/js/227.8094852b.js.gz delete mode 100644 frontend-dist/js/227.8094852b.js.map.gz delete mode 100644 frontend-dist/js/278.397ef7d3.js delete mode 100644 frontend-dist/js/278.397ef7d3.js.gz delete mode 100644 frontend-dist/js/278.397ef7d3.js.map delete mode 100644 frontend-dist/js/278.397ef7d3.js.map.gz create mode 100644 frontend-dist/js/278.66af4a0a.js create mode 100644 frontend-dist/js/278.66af4a0a.js.gz create mode 100644 frontend-dist/js/278.66af4a0a.js.map create mode 100644 frontend-dist/js/278.66af4a0a.js.map.gz rename frontend-dist/js/{283.efe323af.js => 283.5d4f325d.js} (99%) create mode 100644 frontend-dist/js/283.5d4f325d.js.gz rename frontend-dist/js/{283.efe323af.js.map => 283.5d4f325d.js.map} (99%) create mode 100644 frontend-dist/js/283.5d4f325d.js.map.gz delete mode 100644 frontend-dist/js/283.efe323af.js.gz delete mode 100644 frontend-dist/js/283.efe323af.js.map.gz delete mode 100644 frontend-dist/js/320.c04c60ec.js delete mode 100644 frontend-dist/js/320.c04c60ec.js.gz delete mode 100644 frontend-dist/js/320.c04c60ec.js.map delete mode 100644 frontend-dist/js/320.c04c60ec.js.map.gz create mode 100644 frontend-dist/js/331.0b44b778.js create mode 100644 frontend-dist/js/331.0b44b778.js.gz create mode 100644 frontend-dist/js/331.0b44b778.js.map create mode 100644 frontend-dist/js/331.0b44b778.js.map.gz delete mode 100644 frontend-dist/js/331.66294132.js delete mode 100644 frontend-dist/js/331.66294132.js.gz delete mode 100644 frontend-dist/js/331.66294132.js.map delete mode 100644 frontend-dist/js/331.66294132.js.map.gz delete mode 100644 frontend-dist/js/412.2e84fff1.js.map.gz rename frontend-dist/js/{412.2e84fff1.js => 412.2eefa4a8.js} (99%) rename frontend-dist/js/{412.2e84fff1.js.gz => 412.2eefa4a8.js.gz} (99%) rename frontend-dist/js/{412.2e84fff1.js.map => 412.2eefa4a8.js.map} (99%) create mode 100644 frontend-dist/js/412.2eefa4a8.js.map.gz create mode 100644 frontend-dist/js/449.865896d4.js create mode 100644 frontend-dist/js/449.865896d4.js.gz create mode 100644 frontend-dist/js/449.865896d4.js.map create mode 100644 frontend-dist/js/449.865896d4.js.map.gz delete mode 100644 frontend-dist/js/449.b95f70de.js delete mode 100644 frontend-dist/js/449.b95f70de.js.gz delete mode 100644 frontend-dist/js/449.b95f70de.js.map delete mode 100644 frontend-dist/js/449.b95f70de.js.map.gz delete mode 100644 frontend-dist/js/63.d98ed786.js delete mode 100644 frontend-dist/js/63.d98ed786.js.gz delete mode 100644 frontend-dist/js/63.d98ed786.js.map delete mode 100644 frontend-dist/js/63.d98ed786.js.map.gz rename frontend-dist/js/{679.a15c0be8.js => 679.23bb4457.js} (97%) create mode 100644 frontend-dist/js/679.23bb4457.js.gz rename frontend-dist/js/{679.a15c0be8.js.map => 679.23bb4457.js.map} (98%) create mode 100644 frontend-dist/js/679.23bb4457.js.map.gz delete mode 100644 frontend-dist/js/679.a15c0be8.js.gz delete mode 100644 frontend-dist/js/679.a15c0be8.js.map.gz delete mode 100644 frontend-dist/js/715.5055f02b.js.gz delete mode 100644 frontend-dist/js/715.5055f02b.js.map delete mode 100644 frontend-dist/js/715.5055f02b.js.map.gz delete mode 100644 frontend-dist/js/844.783c3fb9.js delete mode 100644 frontend-dist/js/844.783c3fb9.js.gz delete mode 100644 frontend-dist/js/844.783c3fb9.js.map delete mode 100644 frontend-dist/js/844.783c3fb9.js.map.gz create mode 100644 frontend-dist/js/870.9e7db652.js create mode 100644 frontend-dist/js/870.9e7db652.js.gz create mode 100644 frontend-dist/js/870.9e7db652.js.map create mode 100644 frontend-dist/js/870.9e7db652.js.map.gz rename frontend-dist/js/{715.5055f02b.js => 888.f7235188.js} (87%) create mode 100644 frontend-dist/js/888.f7235188.js.gz create mode 100644 frontend-dist/js/888.f7235188.js.map create mode 100644 frontend-dist/js/888.f7235188.js.map.gz delete mode 100644 frontend-dist/js/915.6b34330d.js delete mode 100644 frontend-dist/js/915.6b34330d.js.gz delete mode 100644 frontend-dist/js/915.6b34330d.js.map delete mode 100644 frontend-dist/js/915.6b34330d.js.map.gz create mode 100644 frontend-dist/js/957.e8a16dfc.js create mode 100644 frontend-dist/js/957.e8a16dfc.js.gz create mode 100644 frontend-dist/js/957.e8a16dfc.js.map create mode 100644 frontend-dist/js/957.e8a16dfc.js.map.gz delete mode 100644 frontend-dist/js/967.398473ea.js delete mode 100644 frontend-dist/js/967.398473ea.js.gz delete mode 100644 frontend-dist/js/967.398473ea.js.map delete mode 100644 frontend-dist/js/967.398473ea.js.map.gz create mode 100644 frontend-dist/js/967.4c8a2786.js create mode 100644 frontend-dist/js/967.4c8a2786.js.gz create mode 100644 frontend-dist/js/967.4c8a2786.js.map create mode 100644 frontend-dist/js/967.4c8a2786.js.map.gz delete mode 100644 frontend-dist/js/app.393ef185.js delete mode 100644 frontend-dist/js/app.393ef185.js.gz delete mode 100644 frontend-dist/js/app.393ef185.js.map delete mode 100644 frontend-dist/js/app.393ef185.js.map.gz create mode 100644 frontend-dist/js/app.e9233b6a.js create mode 100644 frontend-dist/js/app.e9233b6a.js.gz create mode 100644 frontend-dist/js/app.e9233b6a.js.map create mode 100644 frontend-dist/js/app.e9233b6a.js.map.gz diff --git a/frontend-dist/css/844.2b40f004.css b/frontend-dist/css/322.2b40f004.css similarity index 100% rename from frontend-dist/css/844.2b40f004.css rename to frontend-dist/css/322.2b40f004.css diff --git a/frontend-dist/css/844.2b40f004.css.gz b/frontend-dist/css/322.2b40f004.css.gz similarity index 100% rename from frontend-dist/css/844.2b40f004.css.gz rename to frontend-dist/css/322.2b40f004.css.gz diff --git a/frontend-dist/css/320.7e03bef9.css b/frontend-dist/css/451.7e03bef9.css similarity index 100% rename from frontend-dist/css/320.7e03bef9.css rename to frontend-dist/css/451.7e03bef9.css diff --git a/frontend-dist/css/320.7e03bef9.css.gz b/frontend-dist/css/451.7e03bef9.css.gz similarity index 100% rename from frontend-dist/css/320.7e03bef9.css.gz rename to frontend-dist/css/451.7e03bef9.css.gz diff --git a/frontend-dist/css/63.68965781.css.gz b/frontend-dist/css/63.68965781.css.gz deleted file mode 100644 index 9f00e0d8e4ed86d1d5acf35a8815b1ebb42f65bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15295 zcmV;wJ3z!AiwFP!000023hjMskL$XT;9t=sI6ymB^2*P4+n8V$yI%&_#R7|6U@}3_ zkZsyljx2d3xw}sc|Mvyo#iuCQ=jH}GNG8+ABCCo;vRGBDDvr<92TJyNR#eAiSCuU) z+duEKHcLK|*DTBCv)A2UZkKGo&&%UFjV9^k>pmu(E?Ij@^73+RNyjWNQEhhJ=gpLA$ElXZ4Q}M^k5?sP1OzWT}q5LAy4uN+)UCs%@*Y(XGg~sIV|V(m&_J z`9%5g)UFq4x=~@Syd%8S`5BB4%zj;cJ~Hpd*f#)wStfI)4YmCYrq zQQ3C(i^h2UV$#cMkKW(e6x|qMb39Zj*H&Uhffd4rj{6T=;46S*e))>h&1b%EPwPpV zegnYAd6Vp}b!`8DeO4aHo}+*;hRzwVo*)}_L*B>iEICwF+bNNZ zF{eb#M083ih-BNA?&B4ll4K9jKi}WC)&7S#wx;sPrqtck-6L>DX_Wp`e!f(7o8esx zx=`rk&-ZsKZnaY`-N0j#&fHK*=t7K#6+6FDhDiko!`bGAIN$M-FR~w;o3rifTQ=D) z|8l!jO-@$rA^$@A4L-KgO@R*WI^EP{yQUj4N+9Cu<2HLqWBi}-e6;ynl9zk*g$1jQ z+k-RPHdS$L5kWhhew-*~D&)jjPi4_`#YHy#_bw}TFRR7JXOxf$99d7O?U6Eg1+dIw|@b ztD1lW+I0f>l>^Jl)`(mzR65ovl`UYO@nu*Pb|a>ROwcbnJ?%v9N$5 zAo86nFZl1iv&?>057QvaVY9o|O;xWiRZc*d8Y|I%*cLB}XgqBqlr?DMQjtQ&z0P)R z{()|OJ#-Xk87TNv+XpN*a?<#fJ(oQ3!}rCK*VXYlHXQl0NEE_ZW4mvgCV zLe2vR7B(f^G$7<2s`|Wcc3FX5ut>9^8B?g;!cmbsi;=eZHPK+hq$p8V83T@=xlJ3} zRF`a*w?Ee7SI-L|9JAtQth3eS%VJ_o(m?wUAE6H~QjdZez=Y?C3CDtE z$eSYHqlEA^aV=Odb~dlkct*#s!6{JofqKE2TH!!?I+cyA%+DEtN;>~*`9IL172gG^ zNp)>KmJD zMb@H!dr7brJi51){c}3H8=&aoFW0Ma0 zcwWOF%++;^Jls?tK*#gKjJVl;xfzMl!k*rdikj~7!iw2c+%T4%zNVY4 zfll40Q2@%=*3q>uT~1mBgiYO)fb>a7S4jV4Rdf|5 zJK?5opj^qtVlmq`H!2{rZNqdHuDg)~AIf~uMY!ZGhd_@zP-Xz9Q5q4?qVS||gl1i% zBEt*OK%IP`y3Kc4akHLlpgk93Sq%)-#D8@rw03@XdHLdseUUe9(zHJcM3q;IV_oiL zBJrdWCch;6YfU!J$olngE$Ou^+dp`lCR_Bk9Mz*(OzM*X3qxdL$Co^ov*6f7ZI^_RNte1v{ zLNi%3`~;-24I1Af%wT+|C70sb@Vn@|JfS*oO~=S;#GtVjT>zuz<9OqnhEaOX_xl2w zJ=Z6!4EwK_&0ca#vYR@(V_?JVBf)Ak^YTW-wX0t1B@;9H!Yd9q%yo9aw{h+*ZdyQK zpMx6)bIY4s9GK61(+E7|pGjHO=d2i62$lPYlPq@=^&vPqHM_bhifmh;8!5qTl zmngPC2HppYXS<}ft*ihktTI>3y>tZgpOS6XAR{`3Z##*@P)J5@A*~(B%0BQ)4?Onu zq1s)W*!CkgkE&~n*Dv$)SQ;iDd6Uzfsh?oLO@uWaY}DibbBNW5nD817Dapw_orYvV ze0oyiE<%o@=c*2Vdigc3_3qZRfV-g4!^th^;p!~19XgS)CvjJGI2<$t7(Sh7eG&9K z2VoaQ7FzJ_^9D=uy$+oJ4n`p)YgyqrEviqn2M~Gi8c}tQb@d6ZPrDCLZutLESFj^( zTxEMocBj19zf4E5?A=zEUR}9&OIHqp=_svhOFKX<&X~Y z5m;??c`9uRyxxG+xl~T+$2e)7<3W6Mt(GU!)t`sXm8h}M3hXw()jx6^>j7u(J$!7M zCe9CO<;)C%a_bYntp`8B8zpu?;v4rlyPL8yq6c}vo4}8=o&&TU=yt=DxXC+3IlF31 zraTA;AErrF=hRM3zeQL*e^LJ#57UmIc!TyR9`!J~ppbC;^&FdoAon=| zrMnp~JAcbC6R@XFUbQdK6dd(3H+wU(kHr~`MR7}pE(p`$>bS(=%_5xua3`T>hrpb` zV9UgZKow=FFKWpvjzf@}zGC0_j13lof-ei9Hq*sOx7)}o_a4M`6Zd|Y@JOQ`uMi-B z$li2%t!Z=XtZ8tZ?Fa&QL+LvAx8bwpM+;l(h{?Z0hT?A61=2bgTO-G4d`;;@amxid zs0}WtcZzEaIUWQ*s80+b-)C(0jMI-%WNJba|T zfq%dPdZd3Z{6P#DvW%h}L=)8&PSJjOOZVtFy8nG-!ehJo!F?$&nJw4$KToheC?Xz{ zZZ70Ep_A6)zzpYwYC`m2gR^572L^StpcKxN83_goA2Rh$^cbqqp=*e}IsgNC_p za#@wkW1RNUbZ<&ui&Zz!093{jqQ44DAhwbYTPP3euvmO6G}kIAX;sldkz=iRkJz7P}uTH zw)d^GehrHwpynVSi14x(EiA~GhVOZMcKP+-77SXbqn@ZNd);x7z&v8aALe$8^}%P} zud(o_{bavI3x_*TQxMtF^NVo>M8}d$?!jIu*GWTfE7gN0*rj2+UI^86lssKcWexEZ z8J=vaA%-0v6olja@B>nn1h?D@7yiRgJ8!cemi9e}_*wE^mF`|?HHg|ki9ZZ>sLc06 ze^lt3=O#S`i2SGFIBr_HM7Of|Lss3WFD~0Q3lQG&f6|9A4in#Pb?LN#)KJL)2@eZ5 z$Xn=`|Ng(p<*EE&jq<&#t%+yRtc3wS`me<`a3pol1&(~|h~0PQc?i=2GQmN;{1!+& z>ENJUetVR3vjhj6gY=tBq}*6*VvuY>Gq5a;Qk-BYYv(v>ZPI#Wg zi`Mx5nYX88kD6VbUud9=T1WzPaJ16ElE^I&6#9L4ZQAOL_8vea4$KOId?~W}h*+LH zPL8*w<#c4OlI$bh;1X?I6X1#qR@08yZT&{BGb1LIO}mDW{XFs~Sn={oJ~@{hvZfvB zcTofjF?fW&PJViSr!%u{%Uf7(hzgDtPq09Xz0JU)x_Kr^#YN}$<|^tVc*z5R;BMoQ zPmWk2%9iA9WC0_%<_WA)k$9oRo^QQaq=Y${05QwMv$%sMAxWC+ZikvCgtM%vm9y;I zgPhf&#GY@xILkV_kOgs;!wBVUULL9tw&HeHp5hM=GE@N(yFT<{CGKg(5yV8&JCuX0 z0CxxzSyL+?*|!H-sY8i9-}(tgR%YCREQqb5RCyq0NhR(OzS5H2Hm;H{5Asxn5j(&1 z;wR~9M-#+L+CPkwGL}5B+7u6gC%xgYur747WDaXO)JVOglI2339o*FaU%!)Ais#V>PD$4yCby*g~B}sYpiR&UBKO%vV&Jauj=wQ~gpw5`BspYC>CIUC0!uO} zg^#j!cS_pqXgY*_33eu4z28**^Z{b;HF?g&E{J1o=6k|U#83Ha%t3& zrSHLLPq+Z=hKZnF7*ML3>+y&h+^$J3St(ziumDmD-IE{&y)>tuag*(FiG_XEoVHa~ z?+Ifi#_qcIUHv_!ZsuyCfIxV>{Ro!aoLZk%5w(5NREZs*t87)O#F=Yj#p_MFi}&eg z3oZlJjlrMP-@yn{t&RYIXY8&zpYg*s*|BjhyLe1Kw^fqu_wL1MTZ$I&(PLBGeQzGeBr}RsCgBgzfaiJUY}+3lOMuPz9v!l4ft}9hOZy`^qo&D@ z$kLn=yLem9mI#hy2J1tzz^RPpGi|SJTa}HI|K!CAy(rnn9gl+tbI!`_h|Z|AyhJvg z?^fv>nuC&?j3BG90?i*2Ru(}2DXbn9R_0_rTUZGUKSNm2C!Va*O5lyhm+EpYvfAIw zF0L#HfEen)VQcv$fhFNRMPNyAy1?Qs$Galmea8Wu&OVlvBFjLLC1RC+08St2$6g&& zpKx-p#T$Hx$-A*)OZAyP&y@s}Vv=3hogIVDs!dHrQZ#A98b#ssKV`J}*1>RL>nH7B0lqS!n|N*eeps%mO_|)pn6xU1apAz(eA=(0^R> z8tp}DeOV=0)1o?WzK_QIFBx)cUH#TCte#^0bd>VFJ@9%iH7u&D~0Kwg4annbkt)B>r7{Eh8JxoFZJt*^hWPR2PPE>q-8s@>PWn~p)MD1~lXH`A2Rv7M~Q;kAgr`^f~^|0uCpx8zs>WdnI zx$Mgr7i#>I@Ly7fX>(vl#Wc2nS>VpxfTu~FXa+Ej&rJ`3=bxkQ3Fv_Q?1@?R+Mj&} zH|-Dk*@NRUHa}-a#QfJW_(6I!*bgAD3I5D&XIRxq)2~TOyH7mqK^aIANK15F3&7Sy z8?G`ua2ViflJCrSl_l6*oC1uw1(}KlG@BV0`1p|Hc`RaZIG(j~2TSk))#xKfpSH(_ zNQ(r2MK$!Bu;Lp!7wH4`;OKW2I{X^jAKVx76|9wfvJr zHOS|ZMQnryF)Kf^rqizgce{gGfo3MAfg#MrwJAkz}*dy}v zv3s(NXOM|=epQGU5_kY^246){lA9O!6`HlLIjRro5IIkY*Rwr zJ{e&b7{yYo20ydk-}m`PE)4)&VtZ*_K9{;W);Q^r@$xN|@p_hl3C{Lnr7V)^Sj3|E zq@~}Z>jwM@W@4@_8NAsXsy-%^~EO%RUFJp?yMQefMIzqvL*&>l9yf8HDGHcamEg?y0#q< zLHz}llFpJ4v;9jNC)iyR)AzW&r5gTSf9_i&v$NL2zrUzh0%*FA_o&VCB4HAQho8kFDRAEMuLTA>T=rRNKFzU7H;8 zcFkgtH|9_GadzG3ZbWexA>d(POcOuCQ&94b9%O_Ybfa_tGiuRGzygmlb_3By*H8R- zqx^ilbs-7o=pio<&4;9uZ;n$+u;twQrwE53zr?`+RBBG(39Y!&>JP| zZPu~Knnw7g%~=7l>`QV!@*!y{di{oEQCNU@HYeNZYPfw?^*-6wDEq!9|BK%q-H;#2 z#-_jFfA@jP3SJ%K0eyaHE?Mb#!#o5WwXYdBumqG6Mtxja{UUdQ+9wDn@dnasE_zQ< zWIw8FOD(SZznsxN&!QKJ<8`^Ze2s3MV%bqJgy)2k@|eVnkcpInPjToGy}Y5MUQCD9zSN#6D>h1_!_IR=I~W7$<#DM%y^u-aErXPhoUZXFDM zwNT+QCIvaVB!|q|6(|$AWtuYtdXSf?7WgSro*8$UxnmBH4Gx%F%ZnbwJACrl>XDl9 z%Gh_>#toldQ6fR#$ZhEw=4>g)N&c48OaE!ts^nzxtz#+Ih{ZzCGHC+Hh!aIU4Y=0_qeKi;I@5mg<5A zTBc4`@W#;UG;vx=pN*$;wnX7FUp3M0y3Kd&ZO51KbQ(|M@oX7SMt1se?TA3?+RCJ? zs~jLc&LiL-!7B17YIa$HUdC^44x%iW>?B#K@2YNS5S4O@CL@n}6`~~xwMf>8h8oiA zlItYcYI#IMqNF9~>Te0AlpU$;XZVX8hoTE%zt4yt973uu3{#LCaXmB1h*+*X0$(OKj=@(2O zg+q=5VKeq1X}#u-b^%h0`Rt(p0Kc-9&7&q7nTLCzpj4$JwsLhs?~y$vptC05Bk6-BX!QD3xCuoP6Iahj_GB^7 zRqGrVO}{(UdHG#rJCo)tTo(VG0GlP1>89ip@Q3gP4T5b!laX0;RE18-X7NzuJN?^= zoqdAXm5~^<=csJI|4goo!WFYO$>i_ZiO{wsl%nKo)(reo=-Gi*=?p;Fo|*)cDP zznkKf|F$MkgU@E!JR=_1=p$Wv{!kwSmwFdyqlT1_83dd51X9z{0?JuO6Y->SU~oVe zm?1o7FnnFjPSgtVS5;d2!EUMNC=O_=Uf~~e~DW40}Kae|HZ{cby4~#NJ78iuIA8Zkr)8P;kBX5LB@D%DN zgli3sT&^?d=n8-$RRK?9(qN={<+|4cpXuli&bf~MaAW*R&<85pMkXrRAb~758#GHu zksFlE0M0YK^3-GSwAhLfGax`0_cLxZy~p8y-4yB zLMAGR)Xqi%j3;O!;Orc2!uzQ6RaSVr6xAo%cdYN^BX4s4rl@7i{;PET#_T>R;?p-WG*fh0Lt-+uz3uZFp(ZQYjqjgNxkp33rVL9vg zMTAjc&{+^025TiEv&bPGmG2g@2s4v}JPb5oY1eQwmbdR^wen8kwkzx5V3hS(ITPYO(|jLp7Kd9QD)4R}_GH1Fo`y^Hd~?Sm9%bhI4nQ75^}PtpA@} zS7eg>J}G)ixE)QJzNM^{K~5!IfeUm0XuY21!*S|E!79(M?PLKH_H>VlEYH3>q22dw z^~JA#53A{P`ietr{WrJn;-KNtl4in{w?;iKJE&E+EhM?y?@*9&{U5lP@^YLO_9B%ar!OBap&>)bvnAA+H*0cuO^05rRF}(=Ck=M zgNW+mHhY;)WBlKFJbqn_dW=~VO;d2Jw)?}%H<;C8*kFu@19a+Ft6tRG_Xa$Av?1xm z;bxbwh>);Y#*@`sJe{xN@nr5HVod&t_69Mry9A7K2Dee8orS{cx3%p zRvh(rmXtvf7`J}qZ-^KIHjw$6ynzq0Lmn%foUDu>Vfo_&{N>}e$*TTLw8^CHVK?9H z9+XLakke)&=0F~JpnNT!y)+isPybm%_bJo%> z=!!Rn84NVf95+u;QRJ5D6EsP&sHQ!bayGPU?T9MXyWEPO_I2tZzyBR?Nq3)Lv+ zrdLP#z-OTTgF2y0aXcT$c$7peo8Tkru{RQg!{Y^5ywK+Tq%+UxZc7(a3@@AeW^C12 zY9*-ntS^o`+$j$BjZ zO%AnMS^`&6U$P2zOH1Bn=V=}PcJz@rRJ3d7fL+T~)!3ExcEDsjU4+Y!87SU1o7=6_ zUgBXcdjtu9i8_}q5z5kLgT=sfsTCMe$Mx!4P;PSv+*PTyOzyb4)iK#+wNRWV)9vhS zo9&hATp}&`-aiqZp^q4bTT){ z_fN|OYEPTat`mLtWJ)2w5V*c!()$*G1NR}i&2y+zf7j1Xpw%4!EL~3V~Gh6 ze!higL?mDZe_=16$j}p5CDBmnI^eM-?R@%O6oVyy%JgHFUp!ubib|<(KJ>yR96*YF zyVeSDqOYUOoo^$Nzk}2s`vT(yFhofVw&FI2ylBPK9}3wC{WQ9FQEQgJqdcQ5ipGX~ z1dPzzb}>$G-$9yXdS;!|!=_eNIc7!nnp0Kdu=7J@A~KhoTt#H%&3FOb*+olF#}a>` zdH09|>8j&Pqr_Sc_WcC)%=J9xGk$ZZZ*O5(6KH%DDHl(qiB>OeO z+d{?}%}m35qGiA=WSvywJ>1E78elTvDRvIQ!MEu&jTf_c`R3spXk+IavkZFSU8M19 z8c*KngtMCBz-?MVEY1W>|IC`6eE7PM5!A%BU>YR73PIA@2HyUr%D_n0z z$3WkpmLN&?f#rAvEy%X&zsR(8OvDhW5@Xtey241iVat^4vd7*=~0HWw3Ewr}Bg1hyN!Zh${E)(@Iqi zz3P)}IwPL2kh4R3$_CcrZ@%Mlnxr;qemI8h@Y>K9fZ?qO_a?ZbA@-k}bI~s9xpnzxW2_ zGV_$-@sn}LXBnJ4jwa&;m8(f!k{28D@{pH#iw{-&FjH^l1?X$xXMo}FGnt^DHsV19 zN`B`Op1SUOKC`;SRlKCG{>p*k-Rj*!)8H!~T_&cl)73Ivt^U)c`V(BLg1Jv}Kx*)Q zvIA0J^E)8fErxwj>2{>$%0o7Oszu&)p$aHTnvbJN&10sz;hF40=kOnTPG8w~km0SG zWd9KMvty||Vn2hW`j2ft2X3Q(5c^q<=DGH>fa|uO!xvc(`&mC`|I>c<+RysY^DO&W z!X0Kmd+2(|ewNGQsrIu&Ul?jXyA=XvKZhTwGh!cx9d2Q!r40);Ekk5wAA1oUR?FFH zl|E=M+E84sMS~!M7(4r(|Lf@B^xdteE8$?!m&yplLT!Rz28d}<98BwX03*k;!vAQIZqAHIj!r#UWdk8ca z?uxv3rcHnjjJS1O{H5hweIfI z+p3}lp1>1%0tI1w>;o-RO6OYnShS7N{YFWzR=UYg`bimmV{{#_kN`aX| zjZ>m9aR{@Z=k}A^6?Jdh5w@s%Pdi@|7#pCeSd#%&?T!gTxK}%eGk2UwosVgSOGjM zbWxkzUXFR4M$3@yQS)(hJesTb#p1$O7Ei5tRb}lOn;9k;@*qWb!j8RTl*QKHNty7x z{C*2~+(lX8*;JgAqA z(P8~ugAeI#XNo7C3xCoplJ{nl+_Gwd4{&fLSV6mJRVbyXp|=azW4y1c%f9*)?m@K7 zW~=Qq)e^Hs`?k)Hz#Ax=_w%6M$Lvulcnt<{ODQ>CptGl-9PzXA@OtwxP4T9fRzQz& z%twS}ZYj*mwZ0U{=5n2m1fRCq9{6QAOgfeLlYE)nEc&8&xdAIutptj4cr2AC2^Y*k z2&XtXqw;F<8frkPl7N)5I3Hnl!&KYk2fJoqShT0>?eHfub+W(8-GPYinCg(UKQ72x z{DLpxye*J-%}p&&HwR|3lVZsX>k>>tby1ZhjyCRU5Lvc$;05C}0Ke)M*Iq`1nQn4z zEv+WKGt;yW0sV@Q^nv{TUSwNTgqLst*W|s>kfOl&&}1d0ez8%(Zk~9JC$7?x*$r5q zlcDRAYWqTNU2&Mv4ol7gwe)d@Y=64-&Sn7O@&O)KUf2%@dJbPW> zUxCefsjCaB+aE@4S*4^b4gQ7w+Wd^`7#yx8(})~lIiSn_%53TJWYOHmggft)XYaeb z-W6zKvI)%U?kmz<@A2-3@l&n;V#PG|Vj}BDg@Ut+3&lcF<{UWX6>K0p!HNll^ck^D z%T=6=7mIj2eZ?zrF|wFmmW6jG+MyWu?{ngI2O z$UXe>k7QyR&;l*PiVaLfJW42Ew-_=3VY*pfzA(rjs0Ca z4#3df4z)n6Ae!XlKQ%44k-k&kr#A;L(N3I$SK&Q;#+TlGpp4q%rnMV}EZ8ehjRQ4@ z(fN^b0zt+aco6_2<}U)!pW!cNC5DgBD2d)^9#$W1m~YjYnhygH=b2^~bf|jPYQ)qC z1|{;9!n!~Nre;lXb;d&0&q8l)7yG1YoO|3WO(_XJ-Qmy%9;rCdbild7*|qR8^&#;I z_UQc~NvfDT?i`I+3pVko1yc@aIJUwIidc;UhCo^Dx9zdAEZG= z1fBD7KpP&wWN&F+mV~!7uH((aL}rW;@sIrttdymeP$n)>{LOIrb!JEjr{62ewtIvu znHjq2CEX$TcbWP0aZ(Jc|61o+5jR=cBn_(bLx?$NKH7UX2&8viyk~6xe$MjpX1M+A zZTERrRL7ewsm%VeDed5M3-K1>_mQ}MV^Z4W`(x?U%6<5B9`ekf^U=IM?+-5Q4-hVF z4~#C9^4a9LsMDTpwwoB>7L%bOIOZ z918{TN?O;nc%MAmxSvT>x#-cFx(Kj40(fq%r99MB=5Q;{PUUu+A6#?C%`m_(ePVCK z5Ksx`S@n(C6T_$1=ncy1-APG`Q1>7SA>pASFi8erUty0N&;I%N42Q}}{oK?8x+hia z9cZSTE_nbca07!eSO_C5^!D3-%r=x~ z!(?~xoIK~<)t<5!xj)zik1L>vQkBpkeY*Q#|VG(c^2}$?bq@G7o!V38dhs8;UPJ=!?&GG-+D6S%Fprx60lhGN zGRE`Oa^B<+IaBD2tp8ajmZO@hp;^H_fFN zsFg%!v}QHRoJ&v!v?#eoq&!2&j#zm&L@CsD$f<^>boT7x( zn^LBqKcGro3DI~eDq*X1jZYaiDcapBX{)LLML8vENd^9m6gN*SlJ)!YYAx01<9_in&y<{bstobRysX?pf7k3@BN1dzNz250tE)Y^@XAQJDJPYpF%DI-2Q?QNsQPKs5#uk{#}U z{QMC*XesKTDiOHY(fQK;z}H}{#TP`x3zaERNfFVf&cZ?H&w*-cFHRehFm=g z-Ib4|%K^2tlx66PY{rqnihWjJ(8}WK6~(;LXhq94P++IL^aGQWuT$mq7c%<Yfwi%;NJv+ijRSD3Tzsf6K>pOTijf0qX>23D8xk{$ChW7YA(Oos3W zdB8HATC~zBcQH~SVb*tt#1V)C?+;QIncF>5VtUDzH?nF#PkLi1q=I8r*SOubT`(@W2}2zKotE4-g~f z>QDp<7{l;MV51p66(NGjIS?wM9Fw6u<<(zbuvEXOdC^#s%hOhER(P$sV71km9rxGk z`7&$>OZ7Hl7W^!zz#EP6|57)!E23(Vij=3$F4o)DezB>6VXtbi8w{3QshI^&A-u2t z&=VuQZ!(`545*k51M{F3H(l9g4Lpu!4ac%o<@NC$M%!tL0-nmUYxvW(Bq6G?Hz5Zn8%e^!P8aZ#2)zNn)xrq{ezd;`w^11dK3IPQY;$UBE9INE zO~{?$deZNZ(-;Dazj&&A;RVJdm+$C(RT zyQQq1Y|D!yTHOayE}=$;8Z{?7Wb2xAu3&*1uC}7e_Q|=bk!2xxaZ`sI^_S469yP%- zXhVdNb_2d;*B~R+O1gKjQj3Y`sk&&2dyo7bhvBB#bkf5t}3uOY_7gOo)`CM92%MLgeQkKR$F~~ zgV*BM#+`n%Wi;bNW_I9iy8OHBdeuYFjj9z&tghI#Oxx^oKx1!|oNfPLJ3DH=54QgP zZn@`jOAY42LlErj=p%WC(#_l^Ly2}3r0DNUesBN}v)?t6P?>oj|Hl05y0ZX;9>B=eZxKBVgN&8$i zuY4J)KSf}L^KPiQ5sYDN-hu{8FcXVIxF|IxH0P0)9dCfVWbMhlrbsn;&kE{Dcvk9O zhWM+cE0(P02TBVX16As+bu(`jd|k3f&G)vtBvo1b=-{L;a=rI{$CQU+*Ke)EiVH}O zf|?=-UtF?@jr)BJf?3Ig71.el-tooltip[data-v-5fc5ce27],.action-buttons>.restore-section[data-v-5fc5ce27],.restore-section[data-v-5fc5ce27]{flex:1;width:100%}.action-btn[data-v-5fc5ce27]{width:100%!important;padding:10px 20px!important;box-sizing:border-box}}.file-info-section[data-v-5fc5ce27]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;align-items:stretch}.file-info-card[data-v-5fc5ce27]{position:relative;background:var(--glass-bg);border-radius:16px;box-shadow:var(--glass-shadow);border:1px solid var(--glass-border);transition:all .3s ease;height:300px;overflow:hidden;cursor:pointer}.card-bg-media[data-v-5fc5ce27]{position:absolute;top:0;left:0;transition:transform .5s ease;display:block}.card-bg-media[data-v-5fc5ce27],.card-bg-media[data-v-5fc5ce27] .el-image__inner{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.card-bg-media[data-v-5fc5ce27] .el-image__wrapper{width:100%;height:100%}.card-bg-fallback[data-v-5fc5ce27]{position:absolute;top:0;left:0;width:100%;height:100%;background:var(--admin-dashborad-stats-bg-color);display:flex;align-items:center;justify-content:center}.fallback-icon[data-v-5fc5ce27]{font-size:80px;color:var(--el-text-color-placeholder);opacity:.3}.file-card-header[data-v-5fc5ce27]{position:absolute;top:0;left:0;right:0;display:flex;gap:8px;align-items:center;padding:12px 16px;font-size:14px;font-weight:600;color:#fff;background:linear-gradient(180deg,rgba(0,0,0,.5) 0,rgba(0,0,0,.2) 55%,transparent);z-index:2}.file-card-header .fa-icon[data-v-5fc5ce27]{color:#60a5fa}.file-card-header.warning .fa-icon[data-v-5fc5ce27]{color:#f59e0b}.info-card-footer[data-v-5fc5ce27]{position:absolute;bottom:0;left:0;right:0;padding:12px 16px;background:linear-gradient(0deg,rgba(0,0,0,.55) 0,rgba(0,0,0,.25) 50%,transparent);text-align:center;z-index:2}.info-card-footer .file-name[data-v-5fc5ce27]{font-size:14px;color:#fff;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.5)}.info-card-footer .file-meta[data-v-5fc5ce27]{font-size:12px;color:#fafafa;text-shadow:0 1px 2px rgba(0,0,0,.5)}@media (min-width:1200px){.file-info-card[data-v-5fc5ce27]{height:400px}}@media (min-width:1600px){.file-info-card[data-v-5fc5ce27]{height:450px}}.file-info-card[data-v-5fc5ce27]:hover{box-shadow:var(--glass-shadow)}.file-info-card:hover .card-bg-media[data-v-5fc5ce27]{transform:scale(1)}@media (max-width:768px){.status-panel[data-v-5fc5ce27]{padding:15px}.charts-section[data-v-5fc5ce27],.overview-cards[data-v-5fc5ce27]{grid-template-columns:1fr;gap:15px}.trend-chart-header[data-v-5fc5ce27]{align-items:stretch}.chart-title[data-v-5fc5ce27]{width:100%}.trend-controls[data-v-5fc5ce27]{width:100%;justify-content:stretch}.trend-date-dialog[data-v-5fc5ce27] .el-dialog__body{padding:12px 14px 18px}.trend-group-switch[data-v-5fc5ce27]{width:100%}.trend-group-switch[data-v-5fc5ce27] .el-radio-button{flex:1}.trend-group-switch[data-v-5fc5ce27] .el-radio-button__inner{width:100%;padding:0 10px}.line-chart-wrapper[data-v-5fc5ce27],.trend-empty-state[data-v-5fc5ce27]{height:280px}.file-info-section[data-v-5fc5ce27]{grid-template-columns:1fr;gap:15px}.card-icon[data-v-5fc5ce27]{width:50px;height:50px;font-size:20px;margin-right:15px}.card-value[data-v-5fc5ce27]{font-size:24px}.action-buttons[data-v-5fc5ce27]{flex-direction:column;gap:12px}.action-btn[data-v-5fc5ce27]{width:100%;min-width:unset}}.stats-fill[data-v-5fc5ce27]{animation:fillAnimation-5fc5ce27 1s ease-out}@keyframes fillAnimation-5fc5ce27{0%{width:0}}.progress-container[data-v-5fc5ce27]{width:100%;padding:20px;text-align:center}.progress-header[data-v-5fc5ce27]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.progress-phase[data-v-5fc5ce27]{font-size:16px;font-weight:600;color:var(--admin-container-color)}.progress-percentage[data-v-5fc5ce27]{font-size:18px;font-weight:700;color:var(--admin-purple)}.progress-bar[data-v-5fc5ce27]{margin-bottom:16px}.progress-bar[data-v-5fc5ce27] .el-progress-bar__outer{background-color:rgba(139,92,246,.1);border-radius:6px}.progress-bar[data-v-5fc5ce27] .el-progress-bar__inner{background:#6366f1;border-radius:6px;transition:width .3s ease}.progress-details[data-v-5fc5ce27]{display:flex;justify-content:center;gap:24px;margin-bottom:12px;flex-wrap:wrap}.progress-count[data-v-5fc5ce27],.progress-time[data-v-5fc5ce27]{display:flex;align-items:center;gap:6px;font-size:14px;color:#666}.progress-count .fa-icon[data-v-5fc5ce27],.progress-time .fa-icon[data-v-5fc5ce27]{color:var(--admin-purple);font-size:12px}.progress-message[data-v-5fc5ce27]{font-size:13px;color:#888;margin-bottom:16px;min-height:20px}.cancel-btn[data-v-5fc5ce27]{margin-top:12px;border-radius:10px;padding:10px 24px;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:#ef4444}.cancel-btn[data-v-5fc5ce27]:hover{background:rgba(239,68,68,.2);border-color:rgba(239,68,68,.5);box-shadow:none}.cancel-btn .fa-icon[data-v-5fc5ce27]{margin-right:8px}.error-container[data-v-5fc5ce27]{width:100%;padding:20px;display:flex;flex-direction:column;align-items:center;gap:16px;background:rgba(239,68,68,.05);border-radius:12px;border:1px solid rgba(239,68,68,.2)}.error-icon[data-v-5fc5ce27]{width:48px;height:48px;border-radius:50%;background:rgba(239,68,68,.1);display:flex;align-items:center;justify-content:center;color:#ef4444;font-size:24px}.error-content[data-v-5fc5ce27]{text-align:center}.error-message[data-v-5fc5ce27]{font-size:15px;font-weight:600;color:#ef4444;margin-bottom:8px}.error-suggestion[data-v-5fc5ce27]{font-size:13px;color:#666}.error-actions[data-v-5fc5ce27]{display:flex;gap:12px}.error-actions .el-button[data-v-5fc5ce27]{border-radius:10px;padding:10px 24px;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);min-width:100px}.error-actions .el-button--primary[data-v-5fc5ce27]{background:#6366f1;border:none;color:#fff}.error-actions .el-button--primary[data-v-5fc5ce27]:hover{background:#4f46e5;box-shadow:none}.error-actions .el-button--default[data-v-5fc5ce27]{background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.2);color:var(--el-text-color-regular)}.error-actions .el-button--default[data-v-5fc5ce27]:hover{background:hsla(0,0%,100%,.15);border-color:#4a4a52;box-shadow:none}.error-actions .fa-icon[data-v-5fc5ce27]{margin-right:8px}html.dark .progress-count[data-v-5fc5ce27],html.dark .progress-time[data-v-5fc5ce27]{color:#aaa}html.dark .progress-message[data-v-5fc5ce27]{color:#999}html.dark .error-container[data-v-5fc5ce27]{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.3)}html.dark .error-suggestion[data-v-5fc5ce27]{color:#aaa}@media (max-width:768px){.error-container[data-v-5fc5ce27],.progress-container[data-v-5fc5ce27]{padding:16px}.progress-header[data-v-5fc5ce27]{flex-direction:column;gap:8px;text-align:center}.progress-details[data-v-5fc5ce27]{flex-direction:column;gap:8px}.error-actions[data-v-5fc5ce27]{flex-direction:column;width:100%}.error-actions .el-button[data-v-5fc5ce27]{width:100%;margin:0}}.el-descriptions{--el-descriptions-table-border:1px solid var(--el-border-color-lighter);--el-descriptions-item-bordered-label-background:var(--el-fill-color-light);box-sizing:border-box;color:var(--el-text-color-primary);font-size:var(--el-font-size-base)}.el-descriptions__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.el-descriptions__title{color:var(--el-text-color-primary);font-size:16px;font-weight:700}.el-descriptions__body{background-color:var(--el-fill-color-blank)}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions__cell{box-sizing:border-box;font-size:14px;line-height:23px;text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-right{text-align:right}.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{border:var(--el-descriptions-table-border);padding:8px 11px}.el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:12px}.el-descriptions--large{font-size:14px}.el-descriptions--large .el-descriptions__header{margin-bottom:20px}.el-descriptions--large .el-descriptions__header .el-descriptions__title{font-size:16px}.el-descriptions--large .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:14px}.el-descriptions--large .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:12px 15px}.el-descriptions--large .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:16px}.el-descriptions--small{font-size:12px}.el-descriptions--small .el-descriptions__header{margin-bottom:12px}.el-descriptions--small .el-descriptions__header .el-descriptions__title{font-size:14px}.el-descriptions--small .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:12px}.el-descriptions--small .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:4px 7px}.el-descriptions--small .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:8px}.el-descriptions__label.el-descriptions__cell.is-bordered-label{background:var(--el-descriptions-item-bordered-label-background);color:var(--el-text-color-regular);font-weight:700}.el-descriptions__label:not(.is-bordered-label){color:var(--el-text-color-primary);margin-right:16px}.el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:6px}.el-descriptions__content.el-descriptions__cell.is-bordered-content{color:var(--el-text-color-primary)}.el-descriptions__content:not(.is-bordered-label){color:var(--el-text-color-regular)}.el-descriptions--large .el-descriptions__label:not(.is-bordered-label){margin-right:16px}.el-descriptions--large .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:8px}.el-descriptions--small .el-descriptions__label:not(.is-bordered-label){margin-right:12px}.el-descriptions--small .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:4px}.el-form{--el-form-label-font-size:var(--el-font-size-base);--el-form-inline-content-width:220px}.el-form--inline .el-form-item{display:inline-flex;margin-right:32px;vertical-align:middle}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--label-left .el-form-item__label{justify-content:flex-start;text-align:left}.el-form-item--label-right .el-form-item__label{justify-content:flex-end;text-align:right}.el-form-item--label-top{display:block}.el-form-item--label-top .el-form-item__label{display:block;height:auto;line-height:22px;margin-bottom:8px;padding-right:0;text-align:left;width:fit-content}.el-form-item__label-wrap{display:flex}.el-form-item__label{align-items:flex-start;box-sizing:border-box;color:var(--el-text-color-regular);display:inline-flex;flex:0 0 auto;font-size:var(--el-form-label-font-size);height:32px;line-height:32px;padding:0 12px 0 0}.el-form-item__content{align-items:center;display:flex;flex:1;flex-wrap:wrap;font-size:var(--font-size);line-height:32px;min-width:0;position:relative}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;left:0;line-height:1;padding-top:2px;position:absolute;top:100%}.el-form-item__error--inline{display:inline-block;left:auto;margin-left:10px;position:relative;top:auto}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{color:var(--el-color-danger);content:"*";margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{color:var(--el-color-danger);content:"*";margin-left:4px}.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-select__wrapper,.el-form-item.is-error .el-form-item__content .el-select__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-textarea__inner,.el-form-item.is-error .el-form-item__content .el-textarea__inner.is-focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner:focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__wrapper{box-shadow:inset 0 0 0 1px transparent}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__validateIcon,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__validateIcon{display:none}.el-form-item.is-error .el-form-item__content .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon,.el-input-number{display:inline-flex}.el-input-number{line-height:30px;position:relative;vertical-align:middle;width:150px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;line-height:1;text-align:center}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-input-number.is-left .el-input__inner{text-align:left}.el-input-number.is-right .el-input__inner{text-align:right}.el-input-number.is-center .el-input__inner{text-align:center}.el-input-number__decrease,.el-input-number__increase{align-items:center;background:var(--el-fill-color-light);bottom:1px;color:var(--el-text-color-regular);cursor:pointer;display:flex;font-size:13px;height:auto;justify-content:center;position:absolute;top:1px;-webkit-user-select:none;user-select:none;width:32px;z-index:1}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input__wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{border-left:var(--el-border);border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;right:1px}.el-input-number__decrease{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border);left:1px}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{line-height:38px;width:180px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{font-size:14px;width:40px}.el-input-number--large.is-controls-right .el-input--large .el-input__wrapper{padding-right:47px}.el-input-number--large .el-input--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{line-height:22px;width:120px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{font-size:12px;width:24px}.el-input-number--small.is-controls-right .el-input--small .el-input__wrapper{padding-right:31px}.el-input-number--small .el-input--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-bottom:var(--el-border);border-radius:0 var(--el-border-radius-base) 0 0;bottom:auto;left:auto}.el-input-number.is-controls-right .el-input-number__decrease{border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0;border-right:none;left:auto;right:1px;top:auto}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.channel-icon-wrapper[data-v-33933ada]{display:inline-flex;align-items:center;justify-content:center;line-height:1}.channel-icon-wrapper[data-v-33933ada] svg,.channel-svg-icon[data-v-33933ada]{width:1em;height:1em;fill:currentColor}.custom-select[data-v-0496d320]{position:relative}.custom-select-trigger[data-v-0496d320]{display:flex;align-items:center;justify-content:space-between;height:32px;padding:0 12px;background:hsla(0,0%,100%,.72);border:1px solid #d9dce2;border-radius:8px;cursor:pointer;transition:background-color .2s ease,border-color .2s ease;box-sizing:border-box}html.dark .custom-select-trigger[data-v-0496d320]{background:rgba(22,22,24,.75);border:1px solid #34343a}.custom-select-trigger[data-v-0496d320]:hover{background:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark .custom-select-trigger[data-v-0496d320]:hover{background:rgba(22,22,24,.88);border-color:#4a4a52}.custom-select.is-open .custom-select-trigger[data-v-0496d320]{border-color:var(--el-color-primary)}.custom-select-value[data-v-0496d320]{font-size:14px;color:var(--el-text-color-regular);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-select-arrow[data-v-0496d320],.custom-select-value.is-placeholder[data-v-0496d320]{color:var(--el-text-color-placeholder)}.custom-select-arrow[data-v-0496d320]{font-size:12px;transition:transform .2s ease;flex-shrink:0;margin-left:8px}.custom-select.is-open .custom-select-arrow[data-v-0496d320]{transform:rotate(180deg)}.custom-select-dropdown[data-v-0496d320]{position:absolute;top:calc(100% + 4px);left:0;width:100%;background:hsla(0,0%,100%,.88);border:1px solid #d9dce2;border-radius:8px;box-shadow:none;z-index:2000;overflow:hidden}html.dark .custom-select-dropdown[data-v-0496d320]{background:rgba(22,22,24,.9);border:1px solid #34343a}.custom-select-option[data-v-0496d320]{display:flex;align-items:center;gap:8px;height:34px;padding:0 12px;font-size:14px;color:var(--el-text-color-regular);cursor:pointer;transition:background .2s ease}.custom-select-option[data-v-0496d320]:hover{background:rgba(0,0,0,.04)}html.dark .custom-select-option[data-v-0496d320]:hover{background:hsla(0,0%,100%,.08)}.custom-select-option.is-selected[data-v-0496d320]{color:var(--el-color-primary);font-weight:500}.option-icon[data-v-0496d320]{width:16px;height:16px;flex-shrink:0}.dropdown-fade-enter-active[data-v-0496d320],.dropdown-fade-leave-active[data-v-0496d320]{transition:opacity .2s ease,transform .2s ease}.dropdown-fade-enter-from[data-v-0496d320],.dropdown-fade-leave-to[data-v-0496d320]{opacity:0;transform:translateY(-8px)}.upload-settings[data-v-13fe94f8]{padding:20px;min-height:500px;overflow-x:hidden}.page-header[data-v-13fe94f8]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:12px}.first-title[data-v-13fe94f8]{display:flex;align-items:center;gap:8px;margin:0;font-size:20px;font-weight:600}.help-icon[data-v-13fe94f8]{cursor:pointer;color:var(--el-text-color-secondary);font-size:14px}.inline-warning-icon[data-v-13fe94f8]{color:var(--el-text-color-secondary);cursor:pointer;font-size:13px;margin-left:6px;transition:color .2s}.inline-warning-icon[data-v-13fe94f8]:hover{color:var(--el-color-primary)}.add-btn[data-v-13fe94f8]{border-radius:8px;background-color:rgba(37,99,235,.9)!important;border-color:rgba(37,99,235,.9)!important;color:#fff!important;transition:background-color .2s ease,border-color .2s ease}html.dark .add-btn[data-v-13fe94f8]{background-color:rgba(59,130,246,.9)!important;border-color:rgba(59,130,246,.9)!important}.add-btn[data-v-13fe94f8]:hover{background-color:rgba(37,99,235,.78)!important;border-color:rgba(37,99,235,.78)!important}html.dark .add-btn[data-v-13fe94f8]:hover{background-color:rgba(59,130,246,.78)!important;border-color:rgba(59,130,246,.78)!important}.header-actions[data-v-13fe94f8]{display:flex;gap:12px}.header-actions[data-v-13fe94f8] .el-button{border-radius:8px}.channel-group[data-v-13fe94f8]{margin-bottom:32px;background:var(--glass-bg);border-radius:16px;border:1px solid var(--glass-border);overflow:hidden;box-shadow:var(--glass-shadow)}.group-header[data-v-13fe94f8]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--glass-header-bg);border-bottom:1px solid var(--glass-header-border)}.group-title[data-v-13fe94f8]{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;color:var(--el-text-color-primary)}.group-icon[data-v-13fe94f8]{font-size:20px;color:var(--el-color-primary)}.channel-count[data-v-13fe94f8]{font-size:12px}.load-balance-switch[data-v-13fe94f8]{display:flex;align-items:center;gap:8px}.switch-label[data-v-13fe94f8]{font-size:13px;color:var(--el-text-color-secondary)}.channel-cards[data-v-13fe94f8]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;padding:20px}.channel-card[data-v-13fe94f8]{background:var(--glass-bg);border-radius:10px;border:1px solid var(--glass-border);overflow:hidden;position:relative;display:flex;flex-direction:column;box-shadow:var(--glass-shadow)}.card-glow[data-v-13fe94f8]{position:absolute;width:150px;height:150px;border-radius:50%;pointer-events:none;opacity:0;transform:translate(-50%,-50%);transition:opacity .3s ease;z-index:0;background:rgba(56,189,248,.15)}.channel-card.telegram .card-glow[data-v-13fe94f8]{background:rgba(84,169,235,.2)}.channel-card.cfr2 .card-glow[data-v-13fe94f8]{background:rgba(246,130,31,.2)}.channel-card.s3 .card-glow[data-v-13fe94f8]{background:rgba(86,154,49,.2)}.channel-card.discord .card-glow[data-v-13fe94f8]{background:rgba(88,101,242,.2)}.channel-card.huggingface .card-glow[data-v-13fe94f8]{background:rgba(255,210,30,.2)}.channel-card.webdav .card-glow[data-v-13fe94f8]{background:rgba(20,184,166,.2)}.channel-card[data-v-13fe94f8]:hover{border-color:var(--glass-border);box-shadow:var(--glass-shadow);background:var(--glass-bg)}.channel-card.disabled[data-v-13fe94f8]{opacity:.6;background:var(--el-fill-color-lighter)}.card-header[data-v-13fe94f8]{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:var(--glass-header-bg);border-bottom:1px solid var(--glass-header-border)}.card-title[data-v-13fe94f8]{display:flex;align-items:center;gap:8px}.channel-name[data-v-13fe94f8]{font-weight:600;font-size:14px;color:var(--el-text-color-primary)}.card-body[data-v-13fe94f8]{padding:14px 16px;min-height:60px;text-align:left}.card-info[data-v-13fe94f8]{display:flex;flex-direction:column;gap:8px;align-items:flex-start;width:100%;overflow:hidden}.info-item[data-v-13fe94f8]{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--el-text-color-secondary);min-width:0;width:100%;max-width:100%}.info-text[data-v-13fe94f8]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;text-align:left}.info-icon[data-v-13fe94f8]{width:14px;flex-shrink:0;color:var(--el-text-color-placeholder)}.quota-mini[data-v-13fe94f8]{margin-top:12px;padding-top:12px;border-top:1px dashed var(--el-border-color-lighter)}.quota-mini[data-v-13fe94f8] .el-progress{margin-bottom:4px}.quota-text[data-v-13fe94f8]{font-size:11px;color:var(--el-text-color-secondary)}.card-actions[data-v-13fe94f8]{display:flex;justify-content:flex-end;gap:4px;padding:10px 16px;border-top:1px solid var(--glass-header-border);background:var(--glass-header-bg);margin-top:auto}.empty-tip[data-v-13fe94f8]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:var(--el-text-color-placeholder);gap:12px}.empty-icon[data-v-13fe94f8]{font-size:32px}.channel-warning[data-v-13fe94f8]{margin:0 20px 16px;padding:10px 14px;font-size:13px;color:var(--el-color-warning);background:var(--el-color-warning-light-9);border-radius:6px;border-left:3px solid var(--el-color-warning)}.channel-type-option[data-v-13fe94f8]{display:inline-flex;align-items:center;gap:8px;line-height:1}.select-option-icon[data-v-13fe94f8]{width:16px;height:16px;font-size:16px;text-align:center}.form-warning[data-v-13fe94f8]{padding:10px 14px;font-size:13px;color:var(--el-color-warning);background:var(--el-color-warning-light-9);border-radius:6px;border-left:3px solid var(--el-color-warning);margin-top:8px}.quota-status[data-v-13fe94f8]{width:100%}.quota-status[data-v-13fe94f8] .el-progress{margin-bottom:8px}.quota-info[data-v-13fe94f8]{font-size:13px;color:var(--el-text-color-secondary);padding:8px 12px;background:var(--el-fill-color);border:1px solid var(--glass-border);border-radius:6px}.quota-info.quota-warning[data-v-13fe94f8]{color:var(--el-color-danger);background:var(--el-color-danger-light-9);font-weight:500}.quota-label[data-v-13fe94f8]{display:inline-flex;align-items:center;gap:4px}.refresh-btn[data-v-13fe94f8]{padding:0!important;margin:0!important;height:auto!important;min-height:auto!important;vertical-align:middle}.refresh-btn .fa-spin[data-v-13fe94f8]{animation:fa-spin-13fe94f8 1s linear infinite}@keyframes fa-spin-13fe94f8{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:768px){.upload-settings[data-v-13fe94f8]{padding:12px}.page-header[data-v-13fe94f8]{flex-direction:column;align-items:flex-start}.channel-cards[data-v-13fe94f8]{grid-template-columns:1fr;padding:12px}.group-header[data-v-13fe94f8]{flex-direction:column;gap:12px;align-items:flex-start}}[data-v-13fe94f8] .channel-dialog{width:600px!important;max-width:90vw!important}@media (max-width:768px){[data-v-13fe94f8] .channel-dialog{width:90vw!important}}.el-checkbox-group{font-size:0;line-height:0}.floating-save-btn[data-v-a230355c]{position:fixed;right:var(--floating-btn-right,24px);bottom:var(--floating-btn-bottom,24px);display:flex;align-items:center;gap:6px;padding:10px 18px;background:var(--floating-btn-bg);color:var(--floating-btn-color);border-radius:50px;cursor:pointer;box-shadow:var(--floating-btn-shadow);transition:all .3s cubic-bezier(.4,0,.2,1);z-index:100;font-weight:500;font-size:13px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.floating-save-btn[data-v-a230355c]:hover{box-shadow:var(--floating-btn-shadow-hover)}.floating-save-btn[data-v-a230355c]:active{transform:translateY(-1px);box-shadow:var(--floating-btn-shadow)}.floating-save-btn.is-loading[data-v-a230355c]{cursor:not-allowed;opacity:.8}.floating-save-btn.is-loading[data-v-a230355c]:hover{transform:none}.floating-save-btn svg[data-v-a230355c]{font-size:14px}.fade-up-enter-active[data-v-a230355c]{transition:all .3s ease-out}.fade-up-leave-active[data-v-a230355c]{transition:all .2s ease-in}.fade-up-enter-from[data-v-a230355c]{opacity:0;transform:translateY(20px)}.fade-up-leave-to[data-v-a230355c]{opacity:0;transform:translateY(10px)}@media (max-width:768px){.floating-save-btn[data-v-a230355c]{right:16px;bottom:16px;padding:10px 16px;font-size:12px}.floating-save-btn svg[data-v-a230355c]{font-size:12px}}@media (max-width:480px){.floating-save-btn[data-v-a230355c]{right:12px;bottom:12px;padding:12px;border-radius:50%}.save-text[data-v-a230355c]{display:none}.floating-save-btn svg[data-v-a230355c]{font-size:16px}}.security-settings[data-v-d23348da]{padding:20px;min-height:500px}.first-settings[data-v-d23348da]{margin-bottom:40px}.first-title[data-v-d23348da]{display:flex;align-items:center;gap:8px;margin-bottom:20px;padding-bottom:12px;border-bottom:2px solid var(--el-color-primary-light-7)}.second-title[data-v-d23348da]{display:flex;align-items:center;gap:8px;text-align:start;margin-left:0;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--el-border-color-lighter)}.first-settings[data-v-d23348da] .el-form{padding:20px 24px;background:var(--glass-bg);border-radius:16px;border:1px solid var(--glass-border);margin-bottom:20px;box-shadow:var(--glass-shadow)}.first-settings[data-v-d23348da] .el-form-item{margin-bottom:20px;display:flex;flex-direction:column;align-items:flex-start}.first-settings[data-v-d23348da] .el-form-item:last-child{margin-bottom:0}.first-settings[data-v-d23348da] .el-form-item__label{text-align:left;padding-bottom:8px;font-weight:500;color:var(--el-text-color-primary);width:auto!important;display:flex;align-items:center;gap:5px}.first-settings[data-v-d23348da] .el-form-item__content{width:100%;max-width:400px;margin-left:0!important}.first-settings[data-v-d23348da] .el-input,.first-settings[data-v-d23348da] .el-select{width:100%}.first-settings[data-v-d23348da] .el-switch{--el-switch-on-color:var(--el-color-primary)}.form-item-hint[data-v-d23348da]{display:inline-block;margin-left:8px;font-size:14px;color:var(--el-text-color-regular);line-height:32px;vertical-align:middle}.query-param-list[data-v-d23348da]{display:flex;flex-direction:column;gap:10px;width:100%}.query-param-row[data-v-d23348da]{display:grid;grid-template-columns:minmax(120px,1fr) minmax(160px,1.4fr) auto;gap:8px;align-items:center;width:100%}.response-field-row[data-v-d23348da]{display:grid;grid-template-columns:minmax(180px,1fr) auto auto auto;gap:4px;align-items:center;width:100%}.response-field-row[data-v-d23348da] .el-button+.el-button{margin-left:0}.token-title[data-v-d23348da]{display:flex;align-items:center;justify-content:space-between}.token-actions[data-v-d23348da]{margin-left:5px}.token-table-container[data-v-d23348da]{display:flex;justify-content:center;margin-top:20px;width:100%;overflow:hidden}.token-table[data-v-d23348da]{width:100%;border-radius:12px!important;overflow:hidden;box-shadow:var(--glass-shadow);background:var(--glass-bg);border:1px solid var(--glass-border)}.token-table[data-v-d23348da] .el-table__header-wrapper{border-radius:12px 12px 0 0}.token-table[data-v-d23348da] .el-table__body-wrapper{border-radius:0 0 12px 12px;background:transparent}.token-table[data-v-d23348da] .el-table{border-radius:12px;background:transparent}.token-table[data-v-d23348da] .el-table__header{background-color:rgba(0,0,0,.04)}.token-table[data-v-d23348da] .el-table th{background-color:rgba(0,0,0,.04)!important;border-bottom:1px solid #d9dce2;text-align:center}.token-table[data-v-d23348da] .el-table td{background-color:transparent!important;border-bottom:1px solid #d9dce2}html.dark .token-table[data-v-d23348da] .el-table th{background-color:hsla(0,0%,100%,.05)!important;border-bottom:1px solid #34343a}html.dark .token-table[data-v-d23348da] .el-table td{border-bottom:1px solid #34343a}.token-table[data-v-d23348da] .el-table__row:hover td{background-color:rgba(0,0,0,.03)!important}html.dark .token-table[data-v-d23348da] .el-table__row:hover td{background-color:hsla(0,0%,100%,.05)!important}.token-table[data-v-d23348da] .el-table__row:last-child td{border-bottom:none}.table-cell-content[data-v-d23348da]{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:4px;padding:8px 4px;min-height:40px;text-align:center}.action-buttons[data-v-d23348da]{gap:8px}.action-button[data-v-d23348da]{margin-left:0}.permission-tag[data-v-d23348da]{margin:2px!important}.token-display[data-v-d23348da]{font-family:Courier New,monospace;background-color:var(--text-bg-color);padding:4px 8px;border-radius:6px;font-size:12px;word-break:break-all;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis}@media (max-width:768px){.security-settings[data-v-d23348da]{padding:15px;padding-bottom:80px}.first-settings[data-v-d23348da] .el-form{padding:12px 15px}.first-settings[data-v-d23348da] .el-form-item__content{max-width:100%}.query-param-row[data-v-d23348da]{grid-template-columns:1fr}.response-field-row[data-v-d23348da]{grid-template-columns:1fr auto auto auto}.token-table-container[data-v-d23348da]{padding:0 10px}.table-cell-content[data-v-d23348da]{padding:6px 2px;min-height:36px}.token-display[data-v-d23348da]{font-size:11px;padding:3px 6px}}@media (max-width:480px){.token-table-container[data-v-d23348da]{padding:0 5px}.table-cell-content[data-v-d23348da]{padding:4px 2px;min-height:32px;font-size:12px}.action-buttons .el-button[data-v-d23348da]{padding:4px 8px;font-size:12px}.permission-tag[data-v-d23348da]{font-size:11px;padding:0 4px;height:20px;line-height:20px}}.token-result[data-v-d23348da]{padding:10px 0}.token-result .el-form-item[data-v-d23348da]{margin-bottom:20px}.dialog-footer[data-v-d23348da]{display:flex;justify-content:flex-end;gap:10px}.fade-slide-enter-active[data-v-d23348da],.fade-slide-leave-active[data-v-d23348da]{transition:all .3s ease-in-out}.fade-slide-enter-from[data-v-d23348da],.fade-slide-leave-to[data-v-d23348da]{opacity:0;transform:translateY(-10px)}.fade-slide-enter-to[data-v-d23348da],.fade-slide-leave-from[data-v-d23348da]{opacity:1;transform:translateY(0)}[data-v-d23348da] .el-dialog{border-radius:12px;background-color:var(--dialog-bg-color);border:1px solid var(--glass-border);box-shadow:var(--dialog-box-shadow)}.page-settings[data-v-65cb1659]{padding:20px;min-height:500px}.first-settings[data-v-65cb1659]{margin-bottom:40px}.first-title[data-v-65cb1659]{display:flex;align-items:center;gap:8px;margin-bottom:20px;padding-bottom:12px;border-bottom:2px solid var(--el-color-primary-light-7)}.second-title[data-v-65cb1659]{display:flex;align-items:center;gap:8px;text-align:start;margin-left:0;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--el-border-color-lighter)}.first-settings[data-v-65cb1659] .el-form{padding:20px 24px;background:var(--glass-bg);border-radius:16px;border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.first-settings[data-v-65cb1659] .el-form-item{margin-bottom:20px;display:flex;flex-direction:column;align-items:flex-start}.first-settings[data-v-65cb1659] .el-form-item:last-child{margin-bottom:0}.first-settings[data-v-65cb1659] .el-form-item__label{text-align:left;padding-bottom:8px;font-weight:500;color:var(--el-text-color-primary);width:auto!important;display:flex;align-items:center;gap:5px}.first-settings[data-v-65cb1659] .el-form-item__content{width:100%;max-width:400px;margin-left:0!important}.first-settings[data-v-65cb1659] .el-form-item:has(.el-textarea) .el-form-item__content{max-width:600px}.first-settings[data-v-65cb1659] .el-input,.first-settings[data-v-65cb1659] .el-select{width:100%}.first-settings[data-v-65cb1659] .el-switch{--el-switch-on-color:var(--el-color-primary)}.announcement-refresh-option[data-v-65cb1659]{width:100%;margin-top:10px;display:flex;justify-content:flex-start}.first-settings[data-v-65cb1659] .el-form-item:has(.announcement-refresh-option) .el-form-item__content{flex-direction:column;align-items:flex-start}@media (max-width:768px){.page-settings[data-v-65cb1659]{padding:15px;padding-bottom:80px}.first-settings[data-v-65cb1659] .el-form{padding:12px 15px}.first-settings[data-v-65cb1659] .el-form-item__content{max-width:100%}}.others-settings[data-v-2f9ad0d5]{padding:20px;min-height:500px}.first-settings[data-v-2f9ad0d5]{margin-bottom:40px}.first-title[data-v-2f9ad0d5]{display:flex;align-items:center;gap:8px;margin-bottom:20px;padding-bottom:12px;border-bottom:2px solid var(--el-color-primary-light-7)}.second-title[data-v-2f9ad0d5]{display:flex;align-items:center;gap:8px;text-align:start;margin-left:0;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--el-border-color-lighter)}.first-settings[data-v-2f9ad0d5] .el-form{padding:20px 24px;background:var(--glass-bg);border-radius:16px;border:1px solid var(--glass-border);margin-bottom:20px;box-shadow:var(--glass-shadow)}.first-settings[data-v-2f9ad0d5] .el-form-item{margin-bottom:20px;display:flex;flex-direction:column;align-items:flex-start}.first-settings[data-v-2f9ad0d5] .el-form-item:last-child{margin-bottom:0}.first-settings[data-v-2f9ad0d5] .el-form-item__label{text-align:left;padding-bottom:8px;font-weight:500;color:var(--el-text-color-primary);width:auto!important;display:flex;align-items:center;gap:5px}.first-settings[data-v-2f9ad0d5] .el-form-item__content{width:100%;max-width:400px;margin-left:0!important}.first-settings[data-v-2f9ad0d5] .el-input{width:100%}.first-settings[data-v-2f9ad0d5] .el-switch{--el-switch-on-color:var(--el-color-primary)}@media (max-width:768px){.others-settings[data-v-2f9ad0d5]{padding:15px;padding-bottom:80px}.first-settings[data-v-2f9ad0d5] .el-form{padding:12px 15px}.first-settings[data-v-2f9ad0d5] .el-form-item__content{max-width:100%}}.container[data-v-036a2d40]{background:var(--admin-container-bg-color);min-height:100vh;font-family:Arial,sans-serif;color:var(--admin-container-color);margin:0;padding:0;overflow-x:hidden}.header-content[data-v-036a2d40]{display:flex;justify-content:space-between;align-items:center;padding:10px 24px;background:hsla(0,0%,100%,.72);border:1px solid #d9dce2;box-shadow:none;transition:background-color .25s ease,border-color .25s ease,box-shadow .25s ease;border-radius:16px;position:fixed;top:8px;left:50%;transform:translateX(-50%);width:calc(95% - 16px);z-index:2001;min-height:45px}html.dark .header-content[data-v-036a2d40]{background:rgba(22,22,24,.75);border:1px solid #34343a;box-shadow:none}@media (max-width:768px){.header-content[data-v-036a2d40]{flex-direction:column;top:6px;width:calc(100% - 32px);border-radius:14px;padding:6px 12px;gap:4px}.header-icon[data-v-036a2d40]{font-size:.95em}}.header-content[data-v-036a2d40]:hover{background:hsla(0,0%,100%,.72);box-shadow:none;transform:translateX(-50%)}html.dark .header-content[data-v-036a2d40]:hover{background:rgba(22,22,24,.75);box-shadow:none}.header-icon[data-v-036a2d40]{font-size:1.5em;cursor:pointer;transition:all .3s ease;color:var(--admin-container-color);outline:none}.header-icon[data-v-036a2d40]:hover{color:#b39ddb;transform:scale(1.2)}.header-action[data-v-036a2d40]{display:flex;gap:10px}.main-container[data-v-036a2d40]{margin-top:60px;transition:margin-left .3s ease,width .3s ease;width:calc(100% - 280px);margin-left:170px}.main-container.collapsed[data-v-036a2d40]{width:calc(100% - 150px);margin-left:80px}@media (max-width:768px){.main-container.collapsed[data-v-036a2d40],.main-container[data-v-036a2d40]{width:auto;margin-left:65px;margin-right:15px;padding:0;min-height:calc(100vh - 60px);box-sizing:border-box}} \ No newline at end of file diff --git a/frontend-dist/css/715.f5deda06.css.gz b/frontend-dist/css/715.f5deda06.css.gz deleted file mode 100644 index 4808721b04c1f3cc75eb8dce5da50ec5e675c42a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11055 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 diff --git a/frontend-dist/css/915.9e4a657d.css b/frontend-dist/css/870.16cbea0a.css similarity index 84% rename from frontend-dist/css/915.9e4a657d.css rename to frontend-dist/css/870.16cbea0a.css index 170971f0..280f2ac6 100644 --- a/frontend-dist/css/915.9e4a657d.css +++ b/frontend-dist/css/870.16cbea0a.css @@ -1 +1 @@ -.history-container[data-v-f70e7770]{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2000;display:flex;flex-direction:column;color:var(--upload-text-color);clip-path:circle(0 at calc(100% - 200px) 50px);opacity:0;transition:clip-path .6s cubic-bezier(.4,0,.2,1),opacity .3s ease}.history-container[data-v-f70e7770]:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--admin-container-bg-color);z-index:-1;will-change:transform;transform:translateZ(0)}.history-container.active[data-v-f70e7770]{clip-path:circle(150% at calc(100% - 200px) 50px);opacity:1}.history-header[data-v-f70e7770]{padding:20px 40px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--el-border-color-lighter)}.header-left[data-v-f70e7770]{display:flex;align-items:baseline;gap:15px}.header-left h2[data-v-f70e7770]{margin:0;font-size:24px;background:var(--upload-main-title-color);background-size:200% auto;background-clip:text;-webkit-background-clip:text;color:transparent;font-weight:700}.record-count[data-v-f70e7770]{color:var(--upload-text-color);font-size:14px;opacity:.8}.header-right[data-v-f70e7770]{display:flex;gap:10px}.header-right .el-button[data-v-f70e7770]{background-color:var(--toolbar-button-bg-color);box-shadow:var(--toolbar-button-shadow);border:none;color:var(--theme-toggle-color);transition:all .3s ease}.header-right .el-button[data-v-f70e7770]:hover{transform:scale(1.05);box-shadow:var(--toolbar-button-shadow-hover)}.header-right .el-button.el-button--danger[data-v-f70e7770]{background:#dc2626;color:#fff}.history-content[data-v-f70e7770]{flex:1;overflow-y:auto;padding:20px 40px}.grid-view[data-v-f70e7770]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:20px}.grid-item[data-v-f70e7770]{background:var(--toolbar-button-bg-color);border-radius:12px;overflow:hidden;box-shadow:var(--toolbar-button-shadow);transition:transform .3s ease,box-shadow .3s ease;border:1px solid var(--glass-border)}.grid-item[data-v-f70e7770]:hover{box-shadow:var(--toolbar-button-shadow-hover)}.grid-preview[data-v-f70e7770]{height:160px;position:relative;background:var(--el-fill-color-light);display:flex;align-items:center;justify-content:center;overflow:hidden}.grid-preview img[data-v-f70e7770],.grid-preview video[data-v-f70e7770]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.file-icon-wrapper[data-v-f70e7770]{font-size:48px;color:var(--theme-toggle-color);opacity:.5}.grid-overlay[data-v-f70e7770]{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.grid-item:hover .grid-overlay[data-v-f70e7770]{opacity:1}.grid-actions[data-v-f70e7770]{display:flex;gap:15px}.grid-info[data-v-f70e7770]{padding:12px}.file-name[data-v-f70e7770]{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:5px;color:var(--upload-text-color)}.upload-time[data-v-f70e7770]{font-size:12px;color:var(--upload-text-color);opacity:.6}.list-view[data-v-f70e7770]{display:flex;flex-direction:column;gap:10px}.list-item[data-v-f70e7770]{display:flex;align-items:center;padding:12px 15px;background:var(--toolbar-button-bg-color);border-radius:12px;box-shadow:var(--toolbar-button-shadow);border:1px solid var(--glass-border);transition:all .3s ease}.list-item[data-v-f70e7770]:hover{transform:translateX(5px);box-shadow:var(--toolbar-button-shadow-hover)}.list-preview[data-v-f70e7770]{width:50px;height:50px;border-radius:8px;overflow:hidden;margin-right:15px;background:var(--el-fill-color-light);display:flex;align-items:center;justify-content:center;flex-shrink:0}.list-preview img[data-v-f70e7770],.list-preview video[data-v-f70e7770]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.file-icon-wrapper-small[data-v-f70e7770]{font-size:24px;color:var(--theme-toggle-color);opacity:.5}.list-info[data-v-f70e7770]{flex:1;min-width:0;margin-right:20px}.file-url[data-v-f70e7770]{font-size:12px;color:var(--upload-text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.6}.list-meta[data-v-f70e7770]{margin-right:20px;text-align:right;min-width:140px}.list-actions[data-v-f70e7770]{display:flex;gap:8px}.empty-state[data-v-f70e7770]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--upload-text-color);font-size:18px;opacity:.5}.empty-icon[data-v-f70e7770]{font-size:64px;margin-bottom:20px;color:var(--theme-toggle-color)}.history-content[data-v-f70e7770]::-webkit-scrollbar{width:8px}.history-content[data-v-f70e7770]::-webkit-scrollbar-track{background:transparent}.history-content[data-v-f70e7770]::-webkit-scrollbar-thumb{background:var(--el-border-color);border-radius:4px}.history-content[data-v-f70e7770]::-webkit-scrollbar-thumb:hover{background:var(--el-border-color-darker)}.action-btn-view[data-v-f70e7770]{background-color:var(--toolbar-button-bg-color);box-shadow:var(--toolbar-button-shadow);border:none;color:var(--theme-toggle-color)}.action-btn-view[data-v-f70e7770]:hover{box-shadow:var(--toolbar-button-shadow-hover);color:var(--el-color-primary)}.history-group[data-v-f70e7770]{position:relative;padding-left:30px;border-left:2px solid var(--el-border-color-lighter);margin-left:10px;padding-bottom:30px}.history-group[data-v-f70e7770]:last-child{border-left:2px solid transparent}.timeline-header[data-v-f70e7770]{display:flex;align-items:center;margin-bottom:20px;position:relative}.timeline-dot[data-v-f70e7770]{position:absolute;left:-38px;width:14px;height:14px;border-radius:50%;background:var(--el-upload-dragger-uniform-color);box-shadow:none;z-index:2;box-sizing:border-box}.date-label[data-v-f70e7770]{font-size:20px;font-weight:700;background:var(--upload-main-title-color);background-size:200% auto;background-clip:text;-webkit-background-clip:text;color:transparent}.load-more-container[data-v-f70e7770]{display:flex;justify-content:center;padding:20px}.loading-indicator[data-v-f70e7770]{display:flex;align-items:center;gap:8px;color:var(--el-upload-dragger-uniform-color)}.load-more-hint[data-v-f70e7770],.no-more-hint[data-v-f70e7770]{color:var(--upload-text-color);opacity:.5;font-size:14px}.no-more-hint[data-v-f70e7770]{text-align:center;padding:20px}@media (max-width:768px){.history-header[data-v-f70e7770]{padding:15px 20px}.header-left h2[data-v-f70e7770]{font-size:20px}.history-content[data-v-f70e7770]{padding:15px 20px}.grid-view[data-v-f70e7770]{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:15px}.grid-preview[data-v-f70e7770]{height:120px}.list-meta[data-v-f70e7770]{display:none}.list-info[data-v-f70e7770]{margin-right:10px}}.page-footer[data-v-08acbaa9]{display:flex;justify-content:center;align-items:center;width:100vw;color:var(--page-footer-text-color);font-size:large;-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (max-width:768px){.page-footer[data-v-08acbaa9]{font-size:small}}.footer-name[data-v-08acbaa9]{color:var(--page-footer-name-color);font-weight:700;text-decoration:none;position:relative;transition:all .3s ease}.footer-name[data-v-08acbaa9]:after{content:"";position:absolute;width:0;height:2px;bottom:-2px;left:0;background-color:var(--page-footer-name-color);transition:width .3s ease-in-out}.footer-name[data-v-08acbaa9]:hover:after{width:100%}.footer-link-icon[data-v-08acbaa9]{color:var(--page-footer-name-color);margin-left:5px;transition:transform .3s ease-in-out}.footer-link-icon[data-v-08acbaa9]:hover{transform:scale(1.2) rotate(-12deg)}.el-input-number{display:inline-flex;line-height:30px;position:relative;vertical-align:middle;width:150px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;line-height:1;text-align:center}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-input-number.is-left .el-input__inner{text-align:left}.el-input-number.is-right .el-input__inner{text-align:right}.el-input-number.is-center .el-input__inner{text-align:center}.el-input-number__decrease,.el-input-number__increase{align-items:center;background:var(--el-fill-color-light);bottom:1px;color:var(--el-text-color-regular);cursor:pointer;display:flex;font-size:13px;height:auto;justify-content:center;position:absolute;top:1px;-webkit-user-select:none;user-select:none;width:32px;z-index:1}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input__wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{border-left:var(--el-border);border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;right:1px}.el-input-number__decrease{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border);left:1px}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{line-height:38px;width:180px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{font-size:14px;width:40px}.el-input-number--large.is-controls-right .el-input--large .el-input__wrapper{padding-right:47px}.el-input-number--large .el-input--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{line-height:22px;width:120px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{font-size:12px;width:24px}.el-input-number--small.is-controls-right .el-input--small .el-input__wrapper{padding-right:31px}.el-input-number--small .el-input--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-bottom:var(--el-border);border-radius:0 var(--el-border-radius-base) 0 0;bottom:auto;left:auto}.el-input-number.is-controls-right .el-input-number__decrease{border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0;border-right:none;left:auto;right:1px;top:auto}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.el-slider{--el-slider-main-bg-color:var(--el-color-primary);--el-slider-runway-bg-color:var(--el-border-color-light);--el-slider-stop-bg-color:var(--el-color-white);--el-slider-disabled-color:var(--el-text-color-placeholder);--el-slider-border-radius:3px;--el-slider-height:6px;--el-slider-button-size:20px;--el-slider-button-wrapper-size:36px;--el-slider-button-wrapper-offset:-15px;align-items:center;display:flex;height:32px;width:100%}.el-slider__runway{background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);cursor:pointer;flex:1;height:var(--el-slider-height);position:relative}.el-slider__runway.show-input{margin-right:30px;width:auto}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging,.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{transform:scale(1)}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{cursor:not-allowed}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{background-color:var(--el-slider-main-bg-color);border-bottom-left-radius:var(--el-slider-border-radius);border-top-left-radius:var(--el-slider-border-radius);height:var(--el-slider-height);position:absolute}.el-slider__button-wrapper{background-color:transparent;height:var(--el-slider-button-wrapper-size);line-height:normal;outline:none;position:absolute;text-align:center;top:var(--el-slider-button-wrapper-offset);transform:translateX(-50%);-webkit-user-select:none;user-select:none;width:var(--el-slider-button-wrapper-size);z-index:1}.el-slider__button-wrapper:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:grab}.el-slider__button-wrapper.dragging{cursor:grabbing}.el-slider__button{background-color:var(--el-color-white);border:2px solid var(--el-slider-main-bg-color);border-radius:50%;box-sizing:border-box;display:inline-block;height:var(--el-slider-button-size);transition:var(--el-transition-duration-fast);-webkit-user-select:none;user-select:none;vertical-align:middle;width:var(--el-slider-button-size)}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:grab}.el-slider__button.dragging{cursor:grabbing}.el-slider__stop{background-color:var(--el-slider-stop-bg-color);border-radius:var(--el-border-radius-circle);height:var(--el-slider-height);position:absolute;transform:translateX(-50%);width:var(--el-slider-height)}.el-slider__marks{height:100%;left:12px;top:0;width:18px}.el-slider__marks-text{color:var(--el-color-info);font-size:14px;margin-top:15px;position:absolute;transform:translateX(-50%);white-space:pre}.el-slider.is-vertical{display:inline-flex;flex:0;height:100%;position:relative;width:auto}.el-slider.is-vertical .el-slider__runway{height:100%;margin:0 16px;width:var(--el-slider-height)}.el-slider.is-vertical .el-slider__bar{border-radius:0 0 3px 3px;height:auto;width:var(--el-slider-height)}.el-slider.is-vertical .el-slider__button-wrapper{left:var(--el-slider-button-wrapper-offset);top:auto;transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{left:15px;margin-top:0;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}.channel-icon-wrapper[data-v-33933ada]{display:inline-flex;align-items:center;justify-content:center;line-height:1}.channel-icon-wrapper[data-v-33933ada] svg,.channel-svg-icon[data-v-33933ada]{width:1em;height:1em;fill:currentColor}.el-progress{align-items:center;display:flex;line-height:1;position:relative}.el-progress__text{color:var(--el-text-color-regular);font-size:14px;line-height:1;margin-left:5px;min-width:50px}.el-progress__text i{display:block;vertical-align:middle}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{left:0;margin:0;position:absolute;text-align:center;top:50%;transform:translateY(-50%);width:100%}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{display:inline-block;vertical-align:middle}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{display:block;margin-right:0;padding-right:0}.el-progress--text-inside .el-progress-bar{margin-right:0;padding-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{box-sizing:border-box;flex-grow:1}.el-progress-bar__outer{background-color:var(--el-border-color-lighter);border-radius:100px;height:6px;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{background-color:var(--el-color-primary);border-radius:100px;height:100%;left:0;line-height:1;position:absolute;text-align:right;top:0;transition:width .6s ease;white-space:nowrap}.el-progress-bar__inner:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{animation:indeterminate 3s infinite;transform:translateZ(0)}.el-progress-bar__inner--striped{background-image:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 0,transparent 50%,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 75%,transparent 0,transparent);background-size:1.25em 1.25em}.el-progress-bar__inner--striped.el-progress-bar__inner--striped-flow{animation:striped-flow 3s linear infinite}.el-progress-bar__innerText{color:#fff;display:inline-block;font-size:12px;margin:0 5px;vertical-align:middle}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes striped-flow{0%{background-position:-100%}to{background-position:100%}}.upload-list-item[data-v-3620a174]{display:flex;align-items:center;justify-content:space-between;margin:8px 10px;border:1px solid var(--upload-list-item-border-color,rgba(37,99,235,.1));padding:10px 12px;border-radius:16px;background:var(--upload-list-item-bg,hsla(0,0%,100%,.8));box-shadow:none;transition:all .3s cubic-bezier(.4,0,.2,1)}.upload-list-item[data-v-3620a174]:hover{border-color:var(--upload-list-item-hover-border,rgba(37,99,235,.25));box-shadow:none}.upload-list-item-content[data-v-3620a174]{display:flex;flex-direction:column;margin-left:10px}.upload-list-item-action[data-v-3620a174]{display:flex;flex-direction:column;align-items:center;gap:6px}.upload-list-item-url-row[data-v-3620a174]{display:flex;flex-direction:row;align-items:center;width:38vw;gap:8px;margin-bottom:6px}.upload-list-item-url-row[data-v-3620a174]:last-child{margin-bottom:0}.upload-list-item-url[data-v-3620a174]{display:flex;flex-direction:column}.file-icon[data-v-3620a174]{font-size:30px;color:var(--upload-list-file-icon-color)}.upload-list-item-name-wrapper[data-v-3620a174]{display:flex;align-items:center;justify-content:center;padding:8px 16px;background:var(--file-name-bg,rgba(37,99,235,.05));border-radius:10px;margin-bottom:8px;border:1px solid var(--file-name-border,rgba(37,99,235,.12));transition:all .3s ease}.upload-list-item-name-wrapper[data-v-3620a174]:hover{background:var(--file-name-hover-bg,rgba(37,99,235,.09));border-color:var(--file-name-hover-border,rgba(37,99,235,.2))}.upload-list-item-name[data-v-3620a174]{font-size:14px;font-weight:600;max-width:28vw;color:var(--el-text-color-primary);letter-spacing:.3px;text-align:center}.upload-list-item-progress[data-v-3620a174]{margin-top:8px;width:28vw;padding:4px 8px;background:var(--progress-wrapper-bg,rgba(37,99,235,.04));border-radius:12px;border:1px solid var(--progress-wrapper-border,rgba(37,99,235,.1))}.upload-list-item-progress[data-v-3620a174] .el-progress{--el-color-primary:#2563eb}.upload-list-item-progress[data-v-3620a174] .el-progress-bar{padding-right:0;margin-right:0}.upload-list-item-progress[data-v-3620a174] .el-progress-bar__outer{height:10px!important;border-radius:8px;background:var(--progress-outer-bg,rgba(0,0,0,.045));box-shadow:none;overflow:hidden}.upload-list-item-progress[data-v-3620a174] .el-progress-bar__inner{border-radius:8px;background:#2563eb!important;box-shadow:none;position:relative;overflow:hidden;transition:width .3s ease}.upload-list-item-progress[data-v-3620a174] .el-progress-bar__inner:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:hsla(0,0%,100%,.12);pointer-events:none}.upload-list-item-progress[data-v-3620a174] .el-progress-bar__inner:before{content:"";position:absolute;top:0;left:-100%;width:300%;height:100%;background:repeating-linear-gradient(45deg,transparent,transparent 8px,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 16px);animation:progressStripes-3620a174 1s linear infinite}.upload-list-item-progress[data-v-3620a174] .el-progress--success .el-progress-bar__inner{background:#16a34a!important;background-size:200% 100%;box-shadow:none;animation:none}.upload-list-item-progress[data-v-3620a174] .el-progress--success .el-progress-bar__inner:after,.upload-list-item-progress[data-v-3620a174] .el-progress--success .el-progress-bar__inner:before{animation:none;background:none}.upload-list-item-progress[data-v-3620a174] .el-progress--exception .el-progress-bar__inner{background:#dc2626!important;background-size:200% 100%;box-shadow:none;animation:progressPulse-3620a174 1s ease-in-out infinite}.upload-list-item-progress[data-v-3620a174] .el-progress--exception .el-progress-bar__inner:before{animation:none;background:none}@keyframes progressStripes-3620a174{0%{transform:translateX(0)}to{transform:translateX(22.627px)}}@keyframes progressPulse-3620a174{0%,to{opacity:1}50%{opacity:.7}}.upload-list-item-url[data-v-3620a174] .el-input{transition:all .3s cubic-bezier(.4,0,.2,1)}.upload-list-item-url[data-v-3620a174] .el-input__wrapper{border-radius:10px;box-shadow:none;transition:all .3s cubic-bezier(.4,0,.2,1);background:var(--el-fill-color-blank);border:1px solid var(--el-border-color-lighter);overflow:hidden;position:relative;padding:0}.upload-list-item-url[data-v-3620a174] .el-input-group>.el-input__wrapper{border-radius:0 9px 9px 0!important}.upload-list-item-url[data-v-3620a174] .el-input__wrapper:hover{box-shadow:none;border-color:var(--el-color-primary-light-5)}.upload-list-item-url[data-v-3620a174] .el-input__wrapper.is-focus{box-shadow:none;border-color:var(--el-color-primary)}.upload-list-item-url[data-v-3620a174] .el-input__wrapper.is-focus:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(37,99,235,.08),transparent);animation:shimmer-3620a174 2s infinite;z-index:0}@keyframes shimmer-3620a174{0%{left:-100%}to{left:100%}}.upload-list-item-url[data-v-3620a174] .el-input__inner{font-size:13px;font-family:Courier New,Monaco,monospace;color:var(--el-text-color-regular);transition:all .3s ease;padding-left:12px;position:relative;z-index:1;border-radius:0 10px 10px 0}.upload-list-item-url[data-v-3620a174] .el-input__inner::-moz-selection{background-color:var(--el-color-primary-light-7)}.upload-list-item-url[data-v-3620a174] .el-input__inner::selection{background-color:var(--el-color-primary-light-7)}.upload-list-item-url[data-v-3620a174] .el-input-group__prepend{background:var(--el-color-primary-light-9);color:var(--el-color-primary);font-weight:600;font-size:12px;border:none;padding:0 14px;margin:0;border-radius:9px 0 0 9px;box-shadow:none;transition:all .3s ease;letter-spacing:.5px;position:relative;z-index:1}.upload-list-item-url[data-v-3620a174] .el-input-group__prepend:after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);height:60%;width:1px;background:var(--el-color-primary-light-7);opacity:.3;transition:all .3s ease}.upload-list-item-url[data-v-3620a174] .el-input:hover .el-input-group__prepend{background:var(--el-color-primary-light-8)}.upload-list-item-url[data-v-3620a174] .el-input:hover .el-input-group__prepend:after{opacity:.5}.upload-list-item-url[data-v-3620a174] .el-input.is-focus .el-input-group__prepend{background:var(--el-color-primary);color:#fff;animation:prependPulse-3620a174 2s ease-in-out infinite}.upload-list-item-url[data-v-3620a174] .el-input.is-focus .el-input-group__prepend:after{background:hsla(0,0%,100%,.3);opacity:1}@keyframes prependPulse-3620a174{0%,to{opacity:1}50%{opacity:.95}}.modern-file-action-btn[data-v-3620a174]{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:12px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);font-size:16px;position:relative;overflow:hidden;margin:4px 0}.modern-file-action-btn[data-v-3620a174]:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:hsla(0,0%,100%,.3);border-radius:50%;transform:translate(-50%,-50%);transition:width .4s ease,height .4s ease}.modern-file-action-btn[data-v-3620a174]:active:before{width:100%;height:100%}.modern-file-action-btn-primary[data-v-3620a174]{background:var(--file-action-primary-bg,#2563eb);color:#fff;box-shadow:none}.modern-file-action-btn-primary[data-v-3620a174]:hover{transform:scale(1.08);box-shadow:none}.modern-file-action-btn-primary[data-v-3620a174]:active{transform:translateY(-1px) scale(1.02)}.modern-file-action-btn-danger[data-v-3620a174]{background:var(--file-action-danger-bg,#dc2626);color:#fff;box-shadow:none}.modern-file-action-btn-danger[data-v-3620a174]:hover{transform:scale(1.08);box-shadow:none}.modern-file-action-btn-danger[data-v-3620a174]:active{transform:translateY(-1px) scale(1.02)}@media (max-width:768px){.upload-list-item-content[data-v-3620a174]{margin-left:2px}.upload-list-item-url-row[data-v-3620a174]{width:42vw;flex-direction:column;gap:6px}.upload-list-item-progress[data-v-3620a174]{width:32vw;padding:3px 6px}.upload-list-item-progress[data-v-3620a174] .el-progress-bar__outer{height:8px!important}.upload-list-item-url[data-v-3620a174] .el-input__wrapper{border-radius:8px}.upload-list-item-url[data-v-3620a174] .el-input__inner{font-size:12px}.upload-list-item-url[data-v-3620a174] .el-input-group__prepend{font-size:11px;padding:0 8px;border-radius:8px 0 0 8px}.modern-file-action-btn[data-v-3620a174]{width:34px;height:34px;border-radius:10px;font-size:14px}.upload-list-item-name-wrapper[data-v-3620a174]{padding:4px 10px;border-radius:8px}.upload-list-item-name[data-v-3620a174]{font-size:12px;width:32vw}}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light);display:inline-block;outline:none;position:relative}.el-radio-button__inner{-webkit-appearance:none;background:var(--el-button-bg-color,var(--el-fill-color-blank));border-radius:0;box-sizing:border-box;color:var(--el-button-text-color,var(--el-text-color-regular));cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));line-height:1;margin:0;outline:var(--el-border);padding:8px 15px;position:relative;text-align:center;transition:var(--el-transition-all);-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button.is-active .el-radio-button__original-radio:not(:disabled)+.el-radio-button__inner{background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary));color:var(--el-radio-button-checked-text-color,var(--el-color-white))}.el-radio-button__original-radio{opacity:0;outline:none;position:absolute;z-index:-1}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));border-radius:var(--el-border-radius-base);box-shadow:none;outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2}.el-radio-button__original-radio:disabled+.el-radio-button__inner{background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));background-image:none;border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none;color:var(--el-disabled-text-color);cursor:not-allowed}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{border-radius:0;font-size:var(--el-font-size-base);padding:12px 19px}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{border-radius:0;font-size:12px;padding:5px 11px}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-upload{--el-upload-dragger-padding-horizontal:10px;--el-upload-dragger-padding-vertical:40px;--el-upload-list-picture-card-size:var(--el-upload-picture-card-size);--el-upload-picture-card-size:148px;align-items:center;cursor:pointer;display:inline-flex;justify-content:center;outline:none}.el-upload.is-disabled{cursor:not-allowed}.el-upload.is-disabled:focus{color:inherit}.el-upload.is-disabled:focus,.el-upload.is-disabled:focus .el-upload-dragger{border-color:var(--el-border-color-darker)}.el-upload.is-disabled .el-upload-dragger{background-color:var(--el-disabled-bg-color);cursor:not-allowed}.el-upload.is-disabled .el-upload-dragger .el-upload__text{color:var(--el-text-color-placeholder)}.el-upload.is-disabled .el-upload-dragger .el-upload__text em{color:var(--el-disabled-text-color)}.el-upload.is-disabled .el-upload-dragger:hover{border-color:var(--el-border-color-darker)}.el-upload__input{display:none}.el-upload__tip{color:var(--el-text-color-regular);font-size:12px;margin-top:7px}.el-upload iframe{filter:alpha(opacity=0);left:0;opacity:0;position:absolute;top:0;z-index:-1}.el-upload--picture-card{align-items:center;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;cursor:pointer;display:inline-flex;height:var(--el-upload-picture-card-size);justify-content:center;vertical-align:top;width:var(--el-upload-picture-card-size)}.el-upload--picture-card>i{color:var(--el-text-color-secondary);font-size:28px}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{color:var(--el-color-primary)}.el-upload:focus,.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;cursor:pointer;overflow:hidden;padding:var(--el-upload-dragger-padding-vertical) var(--el-upload-dragger-padding-horizontal);position:relative;text-align:center}.el-upload-dragger .el-icon--upload{color:var(--el-text-color-placeholder);font-size:67px;line-height:50px;margin-bottom:16px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary);padding:calc(var(--el-upload-dragger-padding-vertical) - 1px) calc(var(--el-upload-dragger-padding-horizontal) - 1px)}.el-upload-list{--el-upload-dragger-padding-horizontal:10px;--el-upload-dragger-padding-vertical:40px;--el-upload-list-picture-card-size:var(--el-upload-picture-card-size);--el-upload-picture-card-size:148px;list-style:none;margin:10px 0 0;padding:0;position:relative}.el-upload-list__item{border-radius:4px;box-sizing:border-box;color:var(--el-text-color-regular);font-size:14px;margin-bottom:5px;position:relative;transition:all .5s cubic-bezier(.55,0,.1,1);width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{color:var(--el-text-color-regular);cursor:pointer;display:none;opacity:.75;position:absolute;right:5px;top:50%;transform:translateY(-50%);transition:opacity var(--el-transition-duration)}.el-upload-list__item .el-icon--close:hover{color:var(--el-color-primary);opacity:1}.el-upload-list__item .el-icon--close-tip{color:var(--el-color-primary);cursor:pointer;display:none;font-size:12px;font-style:normal;opacity:1;position:absolute;right:5px;top:1px}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;flex-direction:column;justify-content:center;margin-left:4px;width:calc(100% - 30px)}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon--close-tip,.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip{display:none}.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list__item-name{align-items:center;color:var(--el-text-color-regular);display:inline-flex;font-size:var(--el-font-size-base);padding:0 4px;text-align:center;transition:color var(--el-transition-duration)}.el-upload-list__item-name .el-icon{color:var(--el-text-color-secondary);margin-right:6px}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{align-items:center;display:none;height:100%;justify-content:center;line-height:inherit;position:absolute;right:5px;top:0;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{color:var(--el-text-color-regular);display:none;font-size:12px;position:absolute;right:10px;top:0}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;display:inline-flex;height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;overflow:hidden;padding:0;width:var(--el-upload-list-picture-card-size)}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:block;opacity:0}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{height:100%;object-fit:contain;width:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{background:var(--el-color-success);height:24px;right:-15px;text-align:center;top:-6px;transform:rotate(45deg);width:40px}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{align-items:center;background-color:var(--el-overlay-color-lighter);color:#fff;cursor:default;display:inline-flex;font-size:20px;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;transition:opacity var(--el-transition-duration);width:100%}.el-upload-list--picture-card .el-upload-list__item-actions span{cursor:pointer;display:none}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:16px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{color:inherit;font-size:inherit;position:static}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{bottom:auto;left:50%;top:50%;transform:translate(-50%,-50%);width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{align-items:center;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;display:flex;margin-top:10px;overflow:hidden;padding:10px;z-index:0}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{display:inline-flex;opacity:0}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{align-items:center;background-color:var(--el-color-white);display:inline-flex;height:70px;justify-content:center;object-fit:contain;position:relative;width:70px;z-index:1}.el-upload-list--picture .el-upload-list__item-status-label{background:var(--el-color-success);height:26px;position:absolute;right:-17px;text-align:center;top:-7px;transform:rotate(45deg);width:46px}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{cursor:default;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:10}.el-upload-cover:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;height:100%;width:100%}.el-upload-cover__label{background:var(--el-color-success);height:24px;right:-15px;text-align:center;top:-6px;transform:rotate(45deg);width:40px}.el-upload-cover__label i{color:#fff;font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-cover__progress{display:inline-block;position:static;vertical-align:middle;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{height:100%;left:0;position:absolute;top:0;width:100%}.el-upload-cover__interact{background-color:var(--el-overlay-color-light);bottom:0;height:100%;left:0;position:absolute;text-align:center;width:100%}.el-upload-cover__interact .btn{color:#fff;cursor:pointer;display:inline-block;font-size:14px;margin-top:60px;transition:var(--el-transition-md-fade);vertical-align:middle}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{background-color:#fff;bottom:0;color:var(--el-text-color-primary);font-size:14px;font-weight:400;height:36px;left:0;line-height:36px;margin:0;overflow:hidden;padding:0 10px;position:absolute;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}@property --border-angle{syntax:"";initial-value:0deg;inherits:false}@keyframes borderRotate-f81fd314{0%{--border-angle:0deg}to{--border-angle:360deg}}.upload-form[data-v-f81fd314],.upload-list-card[data-v-f81fd314]{display:flex;flex-direction:column;justify-content:center;align-items:center}.upload-list-card[data-v-f81fd314]{width:55vw;height:7vh;margin-top:10px;border-radius:15px;background-color:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)!important;transition:height .3s ease;overflow:hidden}.upload-list-card[data-v-f81fd314] .el-card__body{padding:0;width:100%;overflow:hidden}.upload-list-container[data-v-f81fd314]{width:55vw;height:7vh;transition:height .3s ease;overflow:hidden}@media (max-width:768px){.upload-list-card[data-v-f81fd314],.upload-list-container[data-v-f81fd314]{width:70vw}}.upload-list-card.upload-list-busy[data-v-f81fd314],.upload-list-container.upload-list-busy[data-v-f81fd314]{height:40vh}.upload-list-card.is-uploading[data-v-f81fd314]{border:1px solid var(--el-upload-dragger-uniform-color,#2563eb)!important;box-shadow:none!important}.upload-card-wrapper[data-v-f81fd314]{position:relative;overflow:visible}.upload-card-glow[data-v-f81fd314]{position:absolute;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(96,165,250,.2) 0,transparent 70%);pointer-events:none;transform:translate(-50%,-50%);opacity:0;transition:opacity .3s ease;z-index:10}.upload-card[data-v-f81fd314]{width:55vw;padding:20px;background:none}@media (max-width:768px){.upload-card[data-v-f81fd314]{width:70vw}}.upload-card-busy[data-v-f81fd314] .el-upload-dragger{height:17vh}[data-v-f81fd314] .el-upload-dragger{display:flex;flex-direction:column;justify-content:center;align-items:center;height:45vh;border-radius:15px;border:1px solid var(--glass-border);opacity:.7;background-color:var(--glass-bg);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);box-shadow:var(--glass-shadow)}[data-v-f81fd314] .el-upload:focus .el-upload-dragger{border-color:var(--glass-border-hover)}[data-v-f81fd314] .el-upload-dragger.is-dragover,[data-v-f81fd314] .el-upload-dragger:hover{opacity:.7;box-shadow:var(--glass-shadow)}.is-uploading[data-v-f81fd314] .el-upload-dragger{border-color:transparent!important}.upload-card.is-uploading[data-v-f81fd314]{position:relative;background:none}.upload-card.is-uploading[data-v-f81fd314]:before{content:"";position:absolute;top:20px;left:20px;right:20px;bottom:20px;border-radius:15px;padding:2px;background:conic-gradient(from var(--border-angle),transparent 0deg,transparent 30deg,var(--el-upload-dragger-uniform-color,#2563eb) 60deg,color-mix(in srgb,var(--el-upload-dragger-uniform-color,#2563eb) 70%,#fff) 90deg,transparent 120deg,transparent 180deg,color-mix(in srgb,var(--el-upload-dragger-uniform-color,#2563eb) 70%,#fff) 210deg,var(--el-upload-dragger-uniform-color,#2563eb) 240deg,transparent 270deg,transparent 1turn);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:borderRotate-f81fd314 2s linear infinite;pointer-events:none;z-index:1}.el-upload__text[data-v-f81fd314]{font-weight:700;font-size:medium;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .3s ease}@media (max-width:768px){.el-upload__text[data-v-f81fd314]{font-size:small}}.el-upload__text.upload-list-busy[data-v-f81fd314]{font-size:small}.el-icon--upload[data-v-f81fd314]{font-size:100px;transition:font-size .3s ease;color:var(--el-icon--upload-color)}.el-icon--upload.upload-list-busy[data-v-f81fd314]{font-size:60px}@media (max-width:768px){.el-icon--upload[data-v-f81fd314]{font-size:50px}.el-icon--upload.upload-list-busy[data-v-f81fd314]{font-size:30px}}.paste-card[data-v-f81fd314]{display:flex;flex-direction:column;justify-content:center;align-items:center;height:45vh;border-radius:15px;border:var(--el-upload-dragger-border);box-shadow:none;opacity:.7;background-color:var(--el-upload-dragger-bg-color);transition:all .3s ease;box-sizing:border-box}.paste-card[data-v-f81fd314]:hover{opacity:.8;box-shadow:var(--el-upload-dragger-hover-box-shadow)}.paste-card.is-uploading[data-v-f81fd314]{position:relative;border-color:transparent!important;overflow:visible}.paste-card.is-uploading[data-v-f81fd314]:before{content:"";position:absolute;inset:-4px;border-radius:15px;padding:2px;background:conic-gradient(from var(--border-angle),transparent 0deg,transparent 30deg,var(--el-upload-dragger-uniform-color,#2563eb) 60deg,color-mix(in srgb,var(--el-upload-dragger-uniform-color,#2563eb) 70%,#fff) 90deg,transparent 120deg,transparent 180deg,color-mix(in srgb,var(--el-upload-dragger-uniform-color,#2563eb) 70%,#fff) 210deg,var(--el-upload-dragger-uniform-color,#2563eb) 240deg,transparent 270deg,transparent 1turn);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:borderRotate-f81fd314 2s linear infinite;pointer-events:none;z-index:1}.paste-card[data-v-f81fd314] .el-card__body{padding:0;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.upload-card-busy.paste-card[data-v-f81fd314]{height:17vh}.upload-card-textarea[data-v-f81fd314]{width:50vw;height:70%;border-radius:16px;background:var(--textarea-bg,rgba(37,99,235,.02));transition:all .3s cubic-bezier(.4,0,.2,1);box-sizing:border-box;display:flex;position:relative}.upload-card-busy .upload-card-textarea[data-v-f81fd314]{height:50%}.upload-card-textarea[data-v-f81fd314]:before{content:"";position:absolute;inset:-1px;border-radius:17px;padding:1px;background:rgba(37,99,235,.2);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.6;transition:opacity .3s ease}.upload-card-textarea[data-v-f81fd314]:hover:before{opacity:1}.upload-card-textarea[data-v-f81fd314]:focus-within:before{opacity:1;background:rgba(37,99,235,.4)}[data-v-f81fd314] .el-textarea__inner{border-radius:16px;background:var(--textarea-inner-bg,rgba(0,0,0,.02));transition:all .3s cubic-bezier(.4,0,.2,1);resize:none;border:1px solid transparent;padding:16px 20px;font-size:14px;line-height:1.6;color:var(--el-text-color-primary)}[data-v-f81fd314] .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder);font-weight:400;opacity:.7}[data-v-f81fd314] .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder);font-weight:400;opacity:.7}[data-v-f81fd314] .el-textarea__inner:hover{background:var(--textarea-inner-hover-bg,rgba(37,99,235,.03))}[data-v-f81fd314] .el-textarea__inner:focus{border-color:transparent;box-shadow:none;background:var(--textarea-inner-focus-bg,rgba(37,99,235,.02))}.upload-card-textarea[data-v-f81fd314] ::-webkit-scrollbar{width:6px;height:6px}.upload-card-textarea[data-v-f81fd314] ::-webkit-scrollbar-track{background:transparent;border-radius:6px;margin:8px}.upload-card-textarea[data-v-f81fd314] ::-webkit-scrollbar-thumb{background:rgba(37,99,235,.5);border-radius:6px;-webkit-transition:background .3s ease;transition:background .3s ease}.upload-card-textarea[data-v-f81fd314] ::-webkit-scrollbar-thumb:hover{background:rgba(37,99,235,.7)}.paste-card-actions[data-v-f81fd314]{display:flex;justify-content:space-between;align-items:center;width:50vw;margin-top:3%}.paste-card-upload-button[data-v-f81fd314]{min-width:100px;height:42px;border-radius:14px!important;font-weight:600;font-size:15px;letter-spacing:2px;background:#2563eb!important;border:none!important;box-shadow:none;transition:all .3s cubic-bezier(.4,0,.2,1)!important;position:relative;overflow:hidden}.paste-card-upload-button[data-v-f81fd314]:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:hsla(0,0%,100%,.25);transition:left .6s ease}.paste-card-upload-button[data-v-f81fd314]:hover{transform:scale(1.02);box-shadow:none}.paste-card-upload-button[data-v-f81fd314]:hover:before{left:100%}.paste-card-upload-button[data-v-f81fd314]:active{transform:translateY(-1px) scale(.98)}.upload-card-busy .paste-card-upload-button[data-v-f81fd314]{min-width:70px;height:32px;border-radius:10px!important;font-size:13px;letter-spacing:1px}.upload-card-busy .paste-card-actions[data-v-f81fd314]{margin-top:2%}.paste-card-method-group[data-v-f81fd314]{background:var(--paste-method-group-bg,rgba(37,99,235,.08));border-radius:14px;padding:4px;border:1px solid var(--paste-method-group-border,rgba(37,99,235,.15))}.paste-card-method-group[data-v-f81fd314] .el-radio-button__inner{transition:all .3s cubic-bezier(.4,0,.2,1);border-radius:10px!important;border:none!important;background:transparent;font-weight:500;padding:10px 20px;color:var(--el-text-color-regular)}.paste-card-method-group[data-v-f81fd314] .el-radio-button:first-child .el-radio-button__inner,.paste-card-method-group[data-v-f81fd314] .el-radio-button:last-child .el-radio-button__inner{border-radius:10px!important}.paste-card-method-group[data-v-f81fd314] .el-radio-button__inner:hover{background:var(--paste-method-hover-bg,rgba(37,99,235,.12));color:var(--el-color-primary)}.paste-card-method-group[data-v-f81fd314] .el-radio-button__original-radio:checked+.el-radio-button__inner{background:#2563eb!important;color:#fff!important;box-shadow:none}@media (max-width:768px){.paste-card[data-v-f81fd314]{height:auto;min-height:30vh;padding:6px;border-radius:12px}.upload-card-busy.paste-card[data-v-f81fd314]{height:auto;min-height:18vh;padding:5px}.upload-card-textarea[data-v-f81fd314]{margin-top:4px;width:calc(100% - 4px)!important}.upload-card-textarea[data-v-f81fd314]:before{border-radius:11px}[data-v-f81fd314] .el-textarea__inner{border-radius:10px;padding:8px 10px;font-size:12px}.paste-card-actions[data-v-f81fd314]{width:100%!important;margin-top:6px;gap:6px}.paste-card-upload-button[data-v-f81fd314]{height:30px;min-width:55px;border-radius:8px!important;font-size:12px;letter-spacing:.5px;padding:0 10px}.paste-card-method-group[data-v-f81fd314]{border-radius:8px;padding:2px;height:30px;display:flex;align-items:center}.paste-card-method-group[data-v-f81fd314] .el-radio-button__inner{padding:4px 10px;font-size:11px;border-radius:6px!important;height:26px;display:flex;align-items:center}}.upload-list-dashboard[data-v-f81fd314]{display:flex;justify-content:space-between;align-items:center;height:7vh;padding:0 15px;box-sizing:border-box;width:100%;min-width:0;position:sticky;top:0;z-index:1;background:var(--glass-bg);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid var(--glass-border);border-radius:16px;box-shadow:var(--glass-shadow);opacity:.7}[data-v-f81fd314] .el-upload-dragger{position:relative;overflow:hidden}[data-v-f81fd314] .el-upload-dragger:before{background-image:radial-gradient(2px 2px at 10% 10%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 20% 30%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 30% 10%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 40% 30%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 50% 10%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 60% 30%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 70% 10%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 80% 30%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 90% 10%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 15% 70%,var(--el-upload-dragger-uniform-color) 50%,transparent 0);background-size:200px 200px}[data-v-f81fd314] .el-upload-dragger:after,[data-v-f81fd314] .el-upload-dragger:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;z-index:0;transition:opacity .6s ease}[data-v-f81fd314] .el-upload-dragger:after{background-image:radial-gradient(3px 3px at 15% 15%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(3px 3px at 50% 50%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(3px 3px at 85% 85%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2.5px 2.5px at 35% 65%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2.5px 2.5px at 65% 35%,var(--el-upload-dragger-uniform-color) 50%,transparent 0);background-size:150px 150px}.upload-card[data-v-f81fd314]:hover .el-upload-dragger:before{opacity:.3;animation:starScroll-f81fd314 60s linear infinite}.upload-card[data-v-f81fd314]:hover .el-upload-dragger:after{opacity:.6;animation:starScroll-f81fd314 40s linear infinite,starPulse-f81fd314 4s ease-in-out infinite}@keyframes starScroll-f81fd314{0%{background-position:0 0}to{background-position:100px 100px}}@keyframes starPulse-f81fd314{0%,to{opacity:.6}50%{opacity:.3}}.modern-action-group[data-v-f81fd314]{display:flex;align-items:center;gap:5px;height:44px;box-sizing:border-box;padding:5px;background:var(--glass-bg);border-radius:12px;border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.modern-action-group[data-v-f81fd314]:hover{background:var(--glass-bg);border-color:var(--glass-border);box-shadow:var(--glass-shadow)}.modern-action-btn[data-v-f81fd314]{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:13px;background:var(--upload-action-btn-bg);color:var(--upload-action-btn-color);cursor:pointer;transition:background-color .22s ease,color .22s ease,box-shadow .22s ease,transform .22s ease;font-size:14px;box-shadow:var(--upload-action-btn-shadow);position:relative;overflow:hidden;outline:none!important}.modern-action-btn[data-v-f81fd314]:focus,.modern-action-btn[data-v-f81fd314]:focus-visible{outline:none!important}.modern-action-btn[data-v-f81fd314]:before{content:"";position:absolute;inset:2px;border-radius:11px;background:currentColor;opacity:0;transition:opacity .22s ease}.modern-action-btn[data-v-f81fd314]:hover{background:var(--upload-action-btn-hover-bg);box-shadow:var(--upload-action-btn-hover-shadow)}.modern-action-btn[data-v-f81fd314]:hover:before{opacity:.08}.modern-action-btn[data-v-f81fd314]:active{transform:translateY(0) scale(.97);box-shadow:var(--upload-action-btn-active-shadow)}.modern-action-btn-copy[data-v-f81fd314]{color:var(--upload-action-copy-color)}.modern-action-btn-retry[data-v-f81fd314]{color:var(--upload-action-retry-color)}.modern-action-btn-danger[data-v-f81fd314]{color:var(--upload-action-danger-color);background:var(--upload-action-danger-bg)}.modern-action-btn-danger[data-v-f81fd314]:hover{background:var(--upload-action-danger-hover-bg);box-shadow:var(--upload-action-danger-hover-shadow)}.modern-dropdown-item-content[data-v-f81fd314]{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px;padding:4px 0}.modern-dropdown-item-content span[data-v-f81fd314]{font-weight:500;color:var(--el-text-color-primary)}.upload-list-dashboard-title[data-v-f81fd314]{font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px;height:44px;box-sizing:border-box;padding:0 14px;background:var(--dashboard-title-bg,rgba(37,99,235,.06));border:1px solid var(--glass-border);border-radius:12px;color:var(--el-text-color-primary)}.upload-list-dashboard-title .el-icon[data-v-f81fd314]{font-size:16px;margin-right:4px;opacity:.85}@media (max-width:768px){.modern-action-group[data-v-f81fd314]{gap:4px;padding:3px;border-radius:12px}.modern-action-btn[data-v-f81fd314]{width:32px;height:32px;border-radius:8px;font-size:12px}.upload-list-dashboard-title[data-v-f81fd314]{font-size:12px;padding:4px 10px}.upload-list-dashboard[data-v-f81fd314]{padding:0 8px;gap:4px}.upload-list-dashboard-title[data-v-f81fd314]{gap:4px;padding:3px 8px;min-width:0;flex-shrink:1;overflow:hidden}.upload-list-dashboard-action[data-v-f81fd314]{flex-shrink:0}}.logo-link[data-v-17f54292]{text-decoration:none;display:inline-block}.logo[data-v-17f54292]{transition:all .3s ease;border-radius:8px}.logo--fixed[data-v-17f54292]{position:fixed;top:20px;left:20px;z-index:100}.logo--relative[data-v-17f54292]{position:relative}.logo--absolute[data-v-17f54292]{position:absolute;top:5px;left:5px;z-index:100}.logo--static[data-v-17f54292]{position:static}.logo--small[data-v-17f54292]{height:50px;width:50px}.logo--normal[data-v-17f54292]{height:70px;width:70px}.logo--large[data-v-17f54292]{height:90px;width:90px}.logo--hover-enabled[data-v-17f54292]:hover{transform:scale(1.1) rotate(5deg);filter:drop-shadow(0 0 10px var(--logo-glow-color))}@media (max-width:768px){.logo--small[data-v-17f54292]{height:40px;width:40px}.logo--normal[data-v-17f54292]{height:60px;width:60px}.logo--large[data-v-17f54292]{height:75px;width:75px}}.logo[data-v-17f54292]:focus{outline:2px solid var(--el-color-primary);outline-offset:2px}.logo[data-v-17f54292]{filter:var(--logo-filter,none);opacity:var(--logo-opacity,1)}@media (prefers-color-scheme:dark){.logo[data-v-17f54292]{filter:var(--logo-dark-filter,brightness(.9))}}.directory-suggestion-input[data-v-28b8eda7]{width:100%;height:100%;position:relative}.suggestion-dropdown[data-v-28b8eda7]{position:absolute;top:calc(100% + 10px);left:0;width:100%;z-index:9999;border-radius:12px;border:1px solid var(--glass-border);background-color:var(--popper-bg-color);box-shadow:var(--popper-shadow);padding:6px 0;overflow:hidden}.suggestion-list[data-v-28b8eda7]{list-style:none;margin:0;padding:0;max-height:260px;overflow-y:auto}.suggestion-item[data-v-28b8eda7]{padding:8px 16px;font-size:13px;border-radius:6px;margin:2px 6px;cursor:pointer;transition:background-color .2s ease;text-align:left;color:var(--el-text-color-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggestion-item[data-v-28b8eda7]:hover{background-color:var(--el-fill-color-light)}#themeToggle[data-v-66e6a1f0]{border:1px solid #d9dce2;cursor:pointer;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:12px;background-color:hsla(0,0%,100%,.72);box-shadow:none;transition:background-color .25s ease,border-color .25s ease,transform .25s ease}html.dark #themeToggle[data-v-66e6a1f0]{background-color:rgba(22,22,24,.75);border:1px solid #34343a}#themeToggle[data-v-66e6a1f0]:hover{background-color:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark #themeToggle[data-v-66e6a1f0]:hover{background-color:rgba(22,22,24,.88);border-color:#4a4a52}@media (max-width:768px){#themeToggle[data-v-66e6a1f0]{width:2rem;height:2rem}}.theme_toggle_circle1[data-v-66e6a1f0]{transition:cx .5s ease-in-out,cy .5s ease-in-out,r .5s ease-in-out}.theme_toggle_circle2[data-v-66e6a1f0]{transition:all .5s ease-in-out;fill:var(--theme-toggle-bg-color)}.theme_toggle_svg[data-v-66e6a1f0]{transition:transform .5s cubic-bezier(.68,-.55,.27,1.55);color:var(--theme-toggle-color)}.dark.theme_toggle_svg[data-v-66e6a1f0]{transform:rotate(40deg)}.theme_toggle_g[data-v-66e6a1f0]{transition:opacity .5s ease-in-out}.icon-fade-enter-active[data-v-66e6a1f0],.icon-fade-leave-active[data-v-66e6a1f0]{transition:opacity .3s ease-in-out,transform .3s ease-in-out}.icon-fade-enter-from[data-v-66e6a1f0]{opacity:0;transform:scale(.8) rotate(-90deg)}.icon-fade-leave-to[data-v-66e6a1f0]{opacity:0;transform:scale(.8) rotate(90deg)}.icon-fade-enter-to[data-v-66e6a1f0],.icon-fade-leave-from[data-v-66e6a1f0]{opacity:1;transform:scale(1) rotate(0deg)}.auto-icon[data-v-66e6a1f0]{display:inline-block}.container[data-v-e37d1ae4]{background:var(--bg-color);min-height:100vh}.rotate[data-v-e37d1ae4]{animation:spin-e37d1ae4 2s ease-in-out}.scale[data-v-e37d1ae4]{animation:scale-e37d1ae4 .5s ease-in-out}@keyframes spin-e37d1ae4{0%{transform:rotate(0deg)}25%{transform:rotate(5deg)}50%{transform:rotate(0deg)}75%{transform:rotate(-3deg)}to{transform:rotate(0deg)}}@keyframes streamer-e37d1ae4{0%{background-position:200%}to{background-position:-200%}}@keyframes rotate-shake-e37d1ae4{0%{transform:rotate(0deg)}50%{transform:rotate(10deg)}to{transform:rotate(0deg)}}@keyframes shake-e37d1ae4{0%{transform:translateX(0)}50%{transform:translateX(-1px)}to{transform:translateX(0)}}@keyframes scale-e37d1ae4{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.desktop-only[data-v-e37d1ae4]{display:inline-block}.mobile-only[data-v-e37d1ae4]{display:none}@media (max-width:768px){.desktop-only[data-v-e37d1ae4]{display:none!important}.mobile-only[data-v-e37d1ae4]{display:flex!important}}.toggle-dark-button[data-v-e37d1ae4]{width:2.5rem;height:2.5rem;box-sizing:border-box;display:flex;justify-content:center;align-items:center;border:1px solid #d9dce2;transition:background-color .25s ease,border-color .25s ease,transform .25s ease;background-color:hsla(0,0%,100%,.72);box-shadow:none;border-radius:12px;position:fixed;top:30px;right:80px;padding:0}html.dark .toggle-dark-button[data-v-e37d1ae4]{background-color:rgba(22,22,24,.75);border:1px solid #34343a}.more-dropdown[data-v-e37d1ae4]{position:fixed;top:30px;right:30px;z-index:100}.more-dropdown .more-button[data-v-e37d1ae4]{width:2.5rem;height:2.5rem;box-sizing:border-box;display:flex;justify-content:center;align-items:center;border:1px solid #d9dce2;transition:background-color .25s ease,border-color .25s ease,transform .25s ease;background-color:hsla(0,0%,100%,.72);box-shadow:none;color:var(--theme-toggle-color);border-radius:12px;outline:none;padding:0}html.dark .more-dropdown .more-button[data-v-e37d1ae4]{background-color:rgba(22,22,24,.75);border:1px solid #34343a}.more-dropdown .more-button[data-v-e37d1ae4]:hover{transform:scale(1.05);background-color:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark .more-dropdown .more-button[data-v-e37d1ae4]:hover{background-color:rgba(22,22,24,.88);border-color:#4a4a52}.upload-method-button[data-v-e37d1ae4]{width:2.5rem;height:2.5rem;box-sizing:border-box;display:flex;justify-content:center;align-items:center;border:1px solid #d9dce2;transition:background-color .25s ease,border-color .25s ease,transform .25s ease;background-color:hsla(0,0%,100%,.72);box-shadow:none;color:var(--theme-toggle-color);border-radius:12px;position:fixed;top:30px;right:130px;outline:none;padding:0}html.dark .upload-method-button[data-v-e37d1ae4]{background-color:rgba(22,22,24,.75);border:1px solid #34343a}@media (max-width:768px){.upload-method-button[data-v-e37d1ae4]{width:2rem;height:2rem}}.upload-method-icon[data-v-e37d1ae4]{outline:none}.more-button .svg-inline--fa[data-v-e37d1ae4],.upload-method-button .svg-inline--fa[data-v-e37d1ae4]{font-size:1.5em}.mobile-more-dropdown[data-v-e37d1ae4]{position:fixed;top:30px;right:18px;z-index:100}.mobile-more-button[data-v-e37d1ae4]{width:2rem;height:2rem;display:flex;justify-content:center;align-items:center;border:1px solid #d9dce2;transition:background-color .25s ease,border-color .25s ease,transform .25s ease;background-color:hsla(0,0%,100%,.72);box-shadow:none;color:var(--theme-toggle-color);border-radius:12px;outline:none;padding:0}html.dark .mobile-more-button[data-v-e37d1ae4]{background-color:rgba(22,22,24,.75);border:1px solid #34343a}.mobile-more-button[data-v-e37d1ae4]:hover{transform:scale(1.05);background-color:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark .mobile-more-button[data-v-e37d1ae4]:hover{background-color:rgba(22,22,24,.88);border-color:#4a4a52}.upload-folder-container[data-v-e37d1ae4]{display:flex;align-items:center;position:fixed;top:30px;right:180px;z-index:100}.upload-folder-container.no-announcement[data-v-e37d1ae4]{right:180px}@media (max-width:768px){.upload-folder-container.no-announcement[data-v-e37d1ae4],.upload-folder-container[data-v-e37d1ae4]{right:58px}}.upload-folder[data-v-e37d1ae4]{width:100px;height:2.5rem;border-radius:12px;display:flex;align-items:center;box-sizing:border-box;transition:all .3s ease,width .4s ease}.upload-folder.active[data-v-e37d1ae4]{width:200px}@media (max-width:768px){.upload-folder[data-v-e37d1ae4]{width:80px;height:2rem}.upload-folder.active[data-v-e37d1ae4]{width:120px}}.directory-tree-trigger[data-v-e37d1ae4]{width:2.5rem;height:2.5rem;display:flex;justify-content:center;align-items:center;box-sizing:border-box;border:1px solid var(--glass-border);margin-left:10px;background-color:var(--glass-bg);box-shadow:var(--glass-shadow);color:var(--theme-toggle-color);border-radius:12px;outline:none;cursor:pointer;transition:background-color .25s ease,border-color .25s ease,transform .25s ease}.directory-tree-trigger[data-v-e37d1ae4]:hover{background-color:hsla(0,0%,100%,.85);border-color:#bfc4cc;transform:scale(1.1)}html.dark .directory-tree-trigger[data-v-e37d1ae4]:hover{background-color:rgba(22,22,24,.88);border-color:#4a4a52}@media (max-width:768px){.directory-tree-trigger[data-v-e37d1ae4]{width:2rem;height:2rem}}.upload-folder[data-v-e37d1ae4] .inner-folder-input{width:100%;height:100%}.upload-folder[data-v-e37d1ae4] .el-input{height:100%;box-sizing:border-box}.upload-folder[data-v-e37d1ae4] .el-input__wrapper{border-radius:12px;background-color:var(--glass-bg);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);box-shadow:var(--glass-shadow);border:1px solid var(--glass-border);height:100%;padding:0 10px;box-sizing:border-box;transition:background-color .25s ease,border-color .25s ease,box-shadow .25s ease!important}.upload-folder[data-v-e37d1ae4] .el-input__wrapper:hover{background-color:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark .upload-folder[data-v-e37d1ae4] .el-input__wrapper:hover{background-color:rgba(22,22,24,.88);border-color:#4a4a52}.quick-toolbar[data-v-e37d1ae4]{--quick-toolbar-size:2.5rem;--quick-toolbar-button-size:calc(var(--quick-toolbar-size) - 6px);position:fixed;bottom:50px;right:30px;width:var(--quick-toolbar-size);box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:0;z-index:200;padding:3px;border-radius:999px;border:1px solid #d9dce2;background-color:hsla(0,0%,100%,.72);box-shadow:none;transition:background-color .24s ease,border-color .24s ease}html.dark .quick-toolbar[data-v-e37d1ae4]{background-color:rgba(22,22,24,.75);border:1px solid #34343a}.quick-toolbar-button[data-v-e37d1ae4]{width:var(--quick-toolbar-button-size);height:var(--quick-toolbar-button-size);border:none;transition:transform .22s ease,background-color .22s ease,box-shadow .22s ease,color .22s ease;margin-left:0;padding:0;border-radius:999px;background-color:transparent;box-shadow:none;color:var(--toolbar-button-color);outline:none}.quick-toolbar-actions[data-v-e37d1ae4]{display:grid;grid-template-rows:0fr;width:100%;margin-bottom:0;opacity:0;pointer-events:none;transform:translateY(12px);transform-origin:bottom center;transition:grid-template-rows .52s cubic-bezier(.16,1,.3,1),margin-bottom .52s cubic-bezier(.16,1,.3,1),opacity .32s ease,transform .52s cubic-bezier(.16,1,.3,1)}.quick-toolbar.is-expanded .quick-toolbar-actions[data-v-e37d1ae4]{grid-template-rows:1fr;margin-bottom:4px;opacity:1;pointer-events:auto;transform:translateY(0)}.quick-toolbar-actions-inner[data-v-e37d1ae4]{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:0;overflow:hidden}.quick-toolbar-more.is-active[data-v-e37d1ae4]{background-color:var(--upload-action-btn-hover-bg);box-shadow:var(--upload-action-btn-shadow)}.quick-toolbar-more[data-v-e37d1ae4]{margin-top:4px}.quick-toolbar-icon[data-v-e37d1ae4]{font-size:16px}.quick-toolbar-toggle-icon[data-v-e37d1ae4]{transform:rotate(180deg);transition:transform .32s ease}.quick-toolbar-more.is-active .quick-toolbar-toggle-icon[data-v-e37d1ae4]{transform:rotate(0deg)}.info-container[data-v-e37d1ae4]:hover,.quick-toolbar-button[data-v-e37d1ae4]:hover{transform:scale(1.05);background-color:var(--upload-action-btn-hover-bg);box-shadow:var(--upload-action-btn-hover-shadow)}.quick-toolbar[data-v-e37d1ae4]:hover{background-color:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark .quick-toolbar[data-v-e37d1ae4]:hover{background-color:rgba(22,22,24,.88);border-color:#4a4a52}.quick-toolbar-button[data-v-e37d1ae4]:hover{transform:none}.toggle-dark-button[data-v-e37d1ae4]:hover,.upload-method-button[data-v-e37d1ae4]:hover{transform:scale(1.05);background-color:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark .toggle-dark-button[data-v-e37d1ae4]:hover,html.dark .upload-method-button[data-v-e37d1ae4]:hover{background-color:rgba(22,22,24,.88);border-color:#4a4a52}.upload-folder[data-v-e37d1ae4]:hover .el-input__wrapper{background-color:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark .upload-folder[data-v-e37d1ae4]:hover .el-input__wrapper{background-color:rgba(22,22,24,.88);border-color:#4a4a52}@media (max-width:768px){.quick-toolbar[data-v-e37d1ae4]{--quick-toolbar-size:2rem;--quick-toolbar-button-size:calc(var(--quick-toolbar-size) - 4px);right:18px;bottom:max(72px,calc(6vh + 20px + env(safe-area-inset-bottom)));padding:2px}.quick-toolbar-actions[data-v-e37d1ae4]{margin-bottom:0}.quick-toolbar.is-expanded .quick-toolbar-actions[data-v-e37d1ae4]{margin-bottom:3px}.quick-toolbar-actions-inner[data-v-e37d1ae4]{gap:2px}.quick-toolbar-more[data-v-e37d1ae4]{margin-top:3px}.quick-toolbar-icon[data-v-e37d1ae4]{font-size:14px}}[data-v-e37d1ae4] .el-dialog{border-radius:12px;border:1px solid var(--glass-border);background-color:var(--dialog-bg-color);box-shadow:var(--dialog-box-shadow)}.dialog-action[data-v-e37d1ae4]{display:flex;justify-content:center;margin-top:20px}.header[data-v-e37d1ae4]{display:flex;justify-content:center;align-items:center;padding:15px;margin-top:5vh;color:var(--upload-header-color);-webkit-user-select:none;-moz-user-select:none;user-select:none;text-decoration:none;position:relative;top:-3vh;transition:all .3s ease}.title[data-v-e37d1ae4]{font-size:2.25rem;font-weight:400;font-family:Pacifico,Noto Sans SC,sans-serif;color:var(--upload-title-text-color);text-shadow:var(--upload-title-text-shadow);position:relative;padding-bottom:8px;cursor:pointer;transition:transform .4s cubic-bezier(.4,0,.2,1),filter .25s ease;animation:float-e37d1ae4 4s ease-in-out infinite;letter-spacing:3px}.title[data-v-e37d1ae4]:hover{transform:scale(1.08);filter:drop-shadow(0 0 20px var(--upload-title-hover-glow))}.title[data-v-e37d1ae4]:after{content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:0;height:3px;background:var(--upload-title-underline-bg);border-radius:3px;transition:width .5s cubic-bezier(.4,0,.2,1);box-shadow:var(--upload-title-underline-shadow)}.title[data-v-e37d1ae4]:hover:after{width:80%}.main-title[data-v-e37d1ae4]{color:var(--upload-main-title-color);text-decoration:none;display:inline-block;position:relative;filter:drop-shadow(0 0 8px rgba(255,255,255,.3));transition:opacity .16s ease}.title:hover .main-title[data-v-e37d1ae4]{opacity:0}.title[data-v-e37d1ae4]:hover{color:transparent;text-shadow:none}.title-crayon-text[data-v-e37d1ae4]{position:absolute;left:50%;top:-1px;z-index:2;width:-moz-max-content;width:max-content;pointer-events:none;white-space:nowrap;color:var(--upload-title-crayon-deep,#1d2129);opacity:0;-webkit-text-stroke:.35px var(--upload-title-crayon-edge);text-shadow:-1.2px .4px 0 var(--upload-title-crayon-burr),.9px -.7px 0 hsla(0,0%,100%,.24),1.5px .5px 0 var(--upload-title-crayon-dust),-1.7px -.6px 0 var(--upload-title-crayon-dust);transform:translateX(-50%) rotate(-.8deg);transform-origin:left 68%;clip-path:inset(-10px 100% -10px -10px);filter:saturate(1.08) contrast(1.06)}.title:hover .title-crayon-text[data-v-e37d1ae4]{animation:crayonWrite-e37d1ae4 .82s steps(18) forwards,crayonScratch-e37d1ae4 .16s steps(2) .82s 3}@keyframes float-e37d1ae4{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes crayonWrite-e37d1ae4{0%{opacity:0;clip-path:inset(-10px 100% -10px -10px)}12%{opacity:.92}32%{clip-path:inset(-10px 68% -10px -10px)}47%{clip-path:inset(-10px 52% -10px -10px)}63%{clip-path:inset(-10px 34% -10px -10px)}78%{clip-path:inset(-10px 18% -10px -10px)}to{opacity:.92;clip-path:inset(-10px -10px -10px -10px)}}@keyframes crayonScratch-e37d1ae4{0%,to{transform:translateX(-50%) rotate(-.8deg)}50%{transform:translateX(calc(-50% + 1px)) rotate(-.45deg)}}@media (max-width:768px){.title[data-v-e37d1ae4]{font-size:1.55rem;letter-spacing:1px}.title[data-v-e37d1ae4]:hover{transform:scale(1.05)}}.upload-home[data-v-e37d1ae4]{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:94vh;background-color:var(--admin-container-bg-color)}.upload[data-v-e37d1ae4]{margin-bottom:5px;position:relative;top:-3vh}@media (max-width:768px){.header[data-v-e37d1ae4]{padding:8px 15px 4px;top:-2.5vh}.title[data-v-e37d1ae4]{padding-bottom:5px}.upload[data-v-e37d1ae4]{top:-3.8vh}}.footer[data-v-e37d1ae4]{height:6vh} \ No newline at end of file +.history-container[data-v-f70e7770]{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2000;display:flex;flex-direction:column;color:var(--upload-text-color);clip-path:circle(0 at calc(100% - 200px) 50px);opacity:0;transition:clip-path .6s cubic-bezier(.4,0,.2,1),opacity .3s ease}.history-container[data-v-f70e7770]:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--admin-container-bg-color);z-index:-1;will-change:transform;transform:translateZ(0)}.history-container.active[data-v-f70e7770]{clip-path:circle(150% at calc(100% - 200px) 50px);opacity:1}.history-header[data-v-f70e7770]{padding:20px 40px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--el-border-color-lighter)}.header-left[data-v-f70e7770]{display:flex;align-items:baseline;gap:15px}.header-left h2[data-v-f70e7770]{margin:0;font-size:24px;background:var(--upload-main-title-color);background-size:200% auto;background-clip:text;-webkit-background-clip:text;color:transparent;font-weight:700}.record-count[data-v-f70e7770]{color:var(--upload-text-color);font-size:14px;opacity:.8}.header-right[data-v-f70e7770]{display:flex;gap:10px}.header-right .el-button[data-v-f70e7770]{background-color:var(--toolbar-button-bg-color);box-shadow:var(--toolbar-button-shadow);border:none;color:var(--theme-toggle-color);transition:all .3s ease}.header-right .el-button[data-v-f70e7770]:hover{transform:scale(1.05);box-shadow:var(--toolbar-button-shadow-hover)}.header-right .el-button.el-button--danger[data-v-f70e7770]{background:#dc2626;color:#fff}.history-content[data-v-f70e7770]{flex:1;overflow-y:auto;padding:20px 40px}.grid-view[data-v-f70e7770]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:20px}.grid-item[data-v-f70e7770]{background:var(--toolbar-button-bg-color);border-radius:12px;overflow:hidden;box-shadow:var(--toolbar-button-shadow);transition:transform .3s ease,box-shadow .3s ease;border:1px solid var(--glass-border)}.grid-item[data-v-f70e7770]:hover{box-shadow:var(--toolbar-button-shadow-hover)}.grid-preview[data-v-f70e7770]{height:160px;position:relative;background:var(--el-fill-color-light);display:flex;align-items:center;justify-content:center;overflow:hidden}.grid-preview img[data-v-f70e7770],.grid-preview video[data-v-f70e7770]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.file-icon-wrapper[data-v-f70e7770]{font-size:48px;color:var(--theme-toggle-color);opacity:.5}.grid-overlay[data-v-f70e7770]{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.grid-item:hover .grid-overlay[data-v-f70e7770]{opacity:1}.grid-actions[data-v-f70e7770]{display:flex;gap:15px}.grid-info[data-v-f70e7770]{padding:12px}.file-name[data-v-f70e7770]{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:5px;color:var(--upload-text-color)}.upload-time[data-v-f70e7770]{font-size:12px;color:var(--upload-text-color);opacity:.6}.list-view[data-v-f70e7770]{display:flex;flex-direction:column;gap:10px}.list-item[data-v-f70e7770]{display:flex;align-items:center;padding:12px 15px;background:var(--toolbar-button-bg-color);border-radius:12px;box-shadow:var(--toolbar-button-shadow);border:1px solid var(--glass-border);transition:all .3s ease}.list-item[data-v-f70e7770]:hover{transform:translateX(5px);box-shadow:var(--toolbar-button-shadow-hover)}.list-preview[data-v-f70e7770]{width:50px;height:50px;border-radius:8px;overflow:hidden;margin-right:15px;background:var(--el-fill-color-light);display:flex;align-items:center;justify-content:center;flex-shrink:0}.list-preview img[data-v-f70e7770],.list-preview video[data-v-f70e7770]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.file-icon-wrapper-small[data-v-f70e7770]{font-size:24px;color:var(--theme-toggle-color);opacity:.5}.list-info[data-v-f70e7770]{flex:1;min-width:0;margin-right:20px}.file-url[data-v-f70e7770]{font-size:12px;color:var(--upload-text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.6}.list-meta[data-v-f70e7770]{margin-right:20px;text-align:right;min-width:140px}.list-actions[data-v-f70e7770]{display:flex;gap:8px}.empty-state[data-v-f70e7770]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--upload-text-color);font-size:18px;opacity:.5}.empty-icon[data-v-f70e7770]{font-size:64px;margin-bottom:20px;color:var(--theme-toggle-color)}.history-content[data-v-f70e7770]::-webkit-scrollbar{width:8px}.history-content[data-v-f70e7770]::-webkit-scrollbar-track{background:transparent}.history-content[data-v-f70e7770]::-webkit-scrollbar-thumb{background:var(--el-border-color);border-radius:4px}.history-content[data-v-f70e7770]::-webkit-scrollbar-thumb:hover{background:var(--el-border-color-darker)}.action-btn-view[data-v-f70e7770]{background-color:var(--toolbar-button-bg-color);box-shadow:var(--toolbar-button-shadow);border:none;color:var(--theme-toggle-color)}.action-btn-view[data-v-f70e7770]:hover{box-shadow:var(--toolbar-button-shadow-hover);color:var(--el-color-primary)}.history-group[data-v-f70e7770]{position:relative;padding-left:30px;border-left:2px solid var(--el-border-color-lighter);margin-left:10px;padding-bottom:30px}.history-group[data-v-f70e7770]:last-child{border-left:2px solid transparent}.timeline-header[data-v-f70e7770]{display:flex;align-items:center;margin-bottom:20px;position:relative}.timeline-dot[data-v-f70e7770]{position:absolute;left:-38px;width:14px;height:14px;border-radius:50%;background:var(--el-upload-dragger-uniform-color);box-shadow:none;z-index:2;box-sizing:border-box}.date-label[data-v-f70e7770]{font-size:20px;font-weight:700;background:var(--upload-main-title-color);background-size:200% auto;background-clip:text;-webkit-background-clip:text;color:transparent}.load-more-container[data-v-f70e7770]{display:flex;justify-content:center;padding:20px}.loading-indicator[data-v-f70e7770]{display:flex;align-items:center;gap:8px;color:var(--el-upload-dragger-uniform-color)}.load-more-hint[data-v-f70e7770],.no-more-hint[data-v-f70e7770]{color:var(--upload-text-color);opacity:.5;font-size:14px}.no-more-hint[data-v-f70e7770]{text-align:center;padding:20px}@media (max-width:768px){.history-header[data-v-f70e7770]{padding:15px 20px}.header-left h2[data-v-f70e7770]{font-size:20px}.history-content[data-v-f70e7770]{padding:15px 20px}.grid-view[data-v-f70e7770]{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:15px}.grid-preview[data-v-f70e7770]{height:120px}.list-meta[data-v-f70e7770]{display:none}.list-info[data-v-f70e7770]{margin-right:10px}}.page-footer[data-v-08acbaa9]{display:flex;justify-content:center;align-items:center;width:100vw;color:var(--page-footer-text-color);font-size:large;-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (max-width:768px){.page-footer[data-v-08acbaa9]{font-size:small}}.footer-name[data-v-08acbaa9]{color:var(--page-footer-name-color);font-weight:700;text-decoration:none;position:relative;transition:all .3s ease}.footer-name[data-v-08acbaa9]:after{content:"";position:absolute;width:0;height:2px;bottom:-2px;left:0;background-color:var(--page-footer-name-color);transition:width .3s ease-in-out}.footer-name[data-v-08acbaa9]:hover:after{width:100%}.footer-link-icon[data-v-08acbaa9]{color:var(--page-footer-name-color);margin-left:5px;transition:transform .3s ease-in-out}.footer-link-icon[data-v-08acbaa9]:hover{transform:scale(1.2) rotate(-12deg)}.el-input-number{display:inline-flex;line-height:30px;position:relative;vertical-align:middle;width:150px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;line-height:1;text-align:center}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-input-number.is-left .el-input__inner{text-align:left}.el-input-number.is-right .el-input__inner{text-align:right}.el-input-number.is-center .el-input__inner{text-align:center}.el-input-number__decrease,.el-input-number__increase{align-items:center;background:var(--el-fill-color-light);bottom:1px;color:var(--el-text-color-regular);cursor:pointer;display:flex;font-size:13px;height:auto;justify-content:center;position:absolute;top:1px;-webkit-user-select:none;user-select:none;width:32px;z-index:1}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input__wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{border-left:var(--el-border);border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;right:1px}.el-input-number__decrease{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border);left:1px}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{line-height:38px;width:180px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{font-size:14px;width:40px}.el-input-number--large.is-controls-right .el-input--large .el-input__wrapper{padding-right:47px}.el-input-number--large .el-input--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{line-height:22px;width:120px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{font-size:12px;width:24px}.el-input-number--small.is-controls-right .el-input--small .el-input__wrapper{padding-right:31px}.el-input-number--small .el-input--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-bottom:var(--el-border);border-radius:0 var(--el-border-radius-base) 0 0;bottom:auto;left:auto}.el-input-number.is-controls-right .el-input-number__decrease{border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0;border-right:none;left:auto;right:1px;top:auto}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.el-slider{--el-slider-main-bg-color:var(--el-color-primary);--el-slider-runway-bg-color:var(--el-border-color-light);--el-slider-stop-bg-color:var(--el-color-white);--el-slider-disabled-color:var(--el-text-color-placeholder);--el-slider-border-radius:3px;--el-slider-height:6px;--el-slider-button-size:20px;--el-slider-button-wrapper-size:36px;--el-slider-button-wrapper-offset:-15px;align-items:center;display:flex;height:32px;width:100%}.el-slider__runway{background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);cursor:pointer;flex:1;height:var(--el-slider-height);position:relative}.el-slider__runway.show-input{margin-right:30px;width:auto}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging,.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{transform:scale(1)}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{cursor:not-allowed}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{background-color:var(--el-slider-main-bg-color);border-bottom-left-radius:var(--el-slider-border-radius);border-top-left-radius:var(--el-slider-border-radius);height:var(--el-slider-height);position:absolute}.el-slider__button-wrapper{background-color:transparent;height:var(--el-slider-button-wrapper-size);line-height:normal;outline:none;position:absolute;text-align:center;top:var(--el-slider-button-wrapper-offset);transform:translateX(-50%);-webkit-user-select:none;user-select:none;width:var(--el-slider-button-wrapper-size);z-index:1}.el-slider__button-wrapper:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:grab}.el-slider__button-wrapper.dragging{cursor:grabbing}.el-slider__button{background-color:var(--el-color-white);border:2px solid var(--el-slider-main-bg-color);border-radius:50%;box-sizing:border-box;display:inline-block;height:var(--el-slider-button-size);transition:var(--el-transition-duration-fast);-webkit-user-select:none;user-select:none;vertical-align:middle;width:var(--el-slider-button-size)}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:grab}.el-slider__button.dragging{cursor:grabbing}.el-slider__stop{background-color:var(--el-slider-stop-bg-color);border-radius:var(--el-border-radius-circle);height:var(--el-slider-height);position:absolute;transform:translateX(-50%);width:var(--el-slider-height)}.el-slider__marks{height:100%;left:12px;top:0;width:18px}.el-slider__marks-text{color:var(--el-color-info);font-size:14px;margin-top:15px;position:absolute;transform:translateX(-50%);white-space:pre}.el-slider.is-vertical{display:inline-flex;flex:0;height:100%;position:relative;width:auto}.el-slider.is-vertical .el-slider__runway{height:100%;margin:0 16px;width:var(--el-slider-height)}.el-slider.is-vertical .el-slider__bar{border-radius:0 0 3px 3px;height:auto;width:var(--el-slider-height)}.el-slider.is-vertical .el-slider__button-wrapper{left:var(--el-slider-button-wrapper-offset);top:auto;transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{left:15px;margin-top:0;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}.channel-icon-wrapper[data-v-33933ada]{display:inline-flex;align-items:center;justify-content:center;line-height:1}.channel-icon-wrapper[data-v-33933ada] svg,.channel-svg-icon[data-v-33933ada]{width:1em;height:1em;fill:currentColor}.el-progress{align-items:center;display:flex;line-height:1;position:relative}.el-progress__text{color:var(--el-text-color-regular);font-size:14px;line-height:1;margin-left:5px;min-width:50px}.el-progress__text i{display:block;vertical-align:middle}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{left:0;margin:0;position:absolute;text-align:center;top:50%;transform:translateY(-50%);width:100%}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{display:inline-block;vertical-align:middle}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{display:block;margin-right:0;padding-right:0}.el-progress--text-inside .el-progress-bar{margin-right:0;padding-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{box-sizing:border-box;flex-grow:1}.el-progress-bar__outer{background-color:var(--el-border-color-lighter);border-radius:100px;height:6px;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{background-color:var(--el-color-primary);border-radius:100px;height:100%;left:0;line-height:1;position:absolute;text-align:right;top:0;transition:width .6s ease;white-space:nowrap}.el-progress-bar__inner:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{animation:indeterminate 3s infinite;transform:translateZ(0)}.el-progress-bar__inner--striped{background-image:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 0,transparent 50%,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 75%,transparent 0,transparent);background-size:1.25em 1.25em}.el-progress-bar__inner--striped.el-progress-bar__inner--striped-flow{animation:striped-flow 3s linear infinite}.el-progress-bar__innerText{color:#fff;display:inline-block;font-size:12px;margin:0 5px;vertical-align:middle}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes striped-flow{0%{background-position:-100%}to{background-position:100%}}.upload-list-item[data-v-3620a174]{display:flex;align-items:center;justify-content:space-between;margin:8px 10px;border:1px solid var(--upload-list-item-border-color,rgba(37,99,235,.1));padding:10px 12px;border-radius:16px;background:var(--upload-list-item-bg,hsla(0,0%,100%,.8));box-shadow:none;transition:all .3s cubic-bezier(.4,0,.2,1)}.upload-list-item[data-v-3620a174]:hover{border-color:var(--upload-list-item-hover-border,rgba(37,99,235,.25));box-shadow:none}.upload-list-item-content[data-v-3620a174]{display:flex;flex-direction:column;margin-left:10px}.upload-list-item-action[data-v-3620a174]{display:flex;flex-direction:column;align-items:center;gap:6px}.upload-list-item-url-row[data-v-3620a174]{display:flex;flex-direction:row;align-items:center;width:38vw;gap:8px;margin-bottom:6px}.upload-list-item-url-row[data-v-3620a174]:last-child{margin-bottom:0}.upload-list-item-url[data-v-3620a174]{display:flex;flex-direction:column}.file-icon[data-v-3620a174]{font-size:30px;color:var(--upload-list-file-icon-color)}.upload-list-item-name-wrapper[data-v-3620a174]{display:flex;align-items:center;justify-content:center;padding:8px 16px;background:var(--file-name-bg,rgba(37,99,235,.05));border-radius:10px;margin-bottom:8px;border:1px solid var(--file-name-border,rgba(37,99,235,.12));transition:all .3s ease}.upload-list-item-name-wrapper[data-v-3620a174]:hover{background:var(--file-name-hover-bg,rgba(37,99,235,.09));border-color:var(--file-name-hover-border,rgba(37,99,235,.2))}.upload-list-item-name[data-v-3620a174]{font-size:14px;font-weight:600;max-width:28vw;color:var(--el-text-color-primary);letter-spacing:.3px;text-align:center}.upload-list-item-progress[data-v-3620a174]{margin-top:8px;width:28vw;padding:4px 8px;background:var(--progress-wrapper-bg,rgba(37,99,235,.04));border-radius:12px;border:1px solid var(--progress-wrapper-border,rgba(37,99,235,.1))}.upload-list-item-progress[data-v-3620a174] .el-progress{--el-color-primary:#2563eb}.upload-list-item-progress[data-v-3620a174] .el-progress-bar{padding-right:0;margin-right:0}.upload-list-item-progress[data-v-3620a174] .el-progress-bar__outer{height:10px!important;border-radius:8px;background:var(--progress-outer-bg,rgba(0,0,0,.045));box-shadow:none;overflow:hidden}.upload-list-item-progress[data-v-3620a174] .el-progress-bar__inner{border-radius:8px;background:#2563eb!important;box-shadow:none;position:relative;overflow:hidden;transition:width .3s ease}.upload-list-item-progress[data-v-3620a174] .el-progress-bar__inner:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:hsla(0,0%,100%,.12);pointer-events:none}.upload-list-item-progress[data-v-3620a174] .el-progress-bar__inner:before{content:"";position:absolute;top:0;left:-100%;width:300%;height:100%;background:repeating-linear-gradient(45deg,transparent,transparent 8px,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 16px);animation:progressStripes-3620a174 1s linear infinite}.upload-list-item-progress[data-v-3620a174] .el-progress--success .el-progress-bar__inner{background:#16a34a!important;background-size:200% 100%;box-shadow:none;animation:none}.upload-list-item-progress[data-v-3620a174] .el-progress--success .el-progress-bar__inner:after,.upload-list-item-progress[data-v-3620a174] .el-progress--success .el-progress-bar__inner:before{animation:none;background:none}.upload-list-item-progress[data-v-3620a174] .el-progress--exception .el-progress-bar__inner{background:#dc2626!important;background-size:200% 100%;box-shadow:none;animation:progressPulse-3620a174 1s ease-in-out infinite}.upload-list-item-progress[data-v-3620a174] .el-progress--exception .el-progress-bar__inner:before{animation:none;background:none}@keyframes progressStripes-3620a174{0%{transform:translateX(0)}to{transform:translateX(22.627px)}}@keyframes progressPulse-3620a174{0%,to{opacity:1}50%{opacity:.7}}.upload-list-item-url[data-v-3620a174] .el-input{transition:all .3s cubic-bezier(.4,0,.2,1)}.upload-list-item-url[data-v-3620a174] .el-input__wrapper{border-radius:10px;box-shadow:none;transition:all .3s cubic-bezier(.4,0,.2,1);background:var(--el-fill-color-blank);border:1px solid var(--el-border-color-lighter);overflow:hidden;position:relative;padding:0}.upload-list-item-url[data-v-3620a174] .el-input-group>.el-input__wrapper{border-radius:0 9px 9px 0!important}.upload-list-item-url[data-v-3620a174] .el-input__wrapper:hover{box-shadow:none;border-color:var(--el-color-primary-light-5)}.upload-list-item-url[data-v-3620a174] .el-input__wrapper.is-focus{box-shadow:none;border-color:var(--el-color-primary)}.upload-list-item-url[data-v-3620a174] .el-input__wrapper.is-focus:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(37,99,235,.08),transparent);animation:shimmer-3620a174 2s infinite;z-index:0}@keyframes shimmer-3620a174{0%{left:-100%}to{left:100%}}.upload-list-item-url[data-v-3620a174] .el-input__inner{font-size:13px;font-family:Courier New,Monaco,monospace;color:var(--el-text-color-regular);transition:all .3s ease;padding-left:12px;position:relative;z-index:1;border-radius:0 10px 10px 0}.upload-list-item-url[data-v-3620a174] .el-input__inner::-moz-selection{background-color:var(--el-color-primary-light-7)}.upload-list-item-url[data-v-3620a174] .el-input__inner::selection{background-color:var(--el-color-primary-light-7)}.upload-list-item-url[data-v-3620a174] .el-input-group__prepend{background:var(--el-color-primary-light-9);color:var(--el-color-primary);font-weight:600;font-size:12px;border:none;padding:0 14px;margin:0;border-radius:9px 0 0 9px;box-shadow:none;transition:all .3s ease;letter-spacing:.5px;position:relative;z-index:1}.upload-list-item-url[data-v-3620a174] .el-input-group__prepend:after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);height:60%;width:1px;background:var(--el-color-primary-light-7);opacity:.3;transition:all .3s ease}.upload-list-item-url[data-v-3620a174] .el-input:hover .el-input-group__prepend{background:var(--el-color-primary-light-8)}.upload-list-item-url[data-v-3620a174] .el-input:hover .el-input-group__prepend:after{opacity:.5}.upload-list-item-url[data-v-3620a174] .el-input.is-focus .el-input-group__prepend{background:var(--el-color-primary);color:#fff;animation:prependPulse-3620a174 2s ease-in-out infinite}.upload-list-item-url[data-v-3620a174] .el-input.is-focus .el-input-group__prepend:after{background:hsla(0,0%,100%,.3);opacity:1}@keyframes prependPulse-3620a174{0%,to{opacity:1}50%{opacity:.95}}.modern-file-action-btn[data-v-3620a174]{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:12px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);font-size:16px;position:relative;overflow:hidden;margin:4px 0}.modern-file-action-btn[data-v-3620a174]:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:hsla(0,0%,100%,.3);border-radius:50%;transform:translate(-50%,-50%);transition:width .4s ease,height .4s ease}.modern-file-action-btn[data-v-3620a174]:active:before{width:100%;height:100%}.modern-file-action-btn-primary[data-v-3620a174]{background:var(--file-action-primary-bg,#2563eb);color:#fff;box-shadow:none}.modern-file-action-btn-primary[data-v-3620a174]:hover{transform:scale(1.08);box-shadow:none}.modern-file-action-btn-primary[data-v-3620a174]:active{transform:translateY(-1px) scale(1.02)}.modern-file-action-btn-danger[data-v-3620a174]{background:var(--file-action-danger-bg,#dc2626);color:#fff;box-shadow:none}.modern-file-action-btn-danger[data-v-3620a174]:hover{transform:scale(1.08);box-shadow:none}.modern-file-action-btn-danger[data-v-3620a174]:active{transform:translateY(-1px) scale(1.02)}@media (max-width:768px){.upload-list-item-content[data-v-3620a174]{margin-left:2px}.upload-list-item-url-row[data-v-3620a174]{width:42vw;flex-direction:column;gap:6px}.upload-list-item-progress[data-v-3620a174]{width:32vw;padding:3px 6px}.upload-list-item-progress[data-v-3620a174] .el-progress-bar__outer{height:8px!important}.upload-list-item-url[data-v-3620a174] .el-input__wrapper{border-radius:8px}.upload-list-item-url[data-v-3620a174] .el-input__inner{font-size:12px}.upload-list-item-url[data-v-3620a174] .el-input-group__prepend{font-size:11px;padding:0 8px;border-radius:8px 0 0 8px}.modern-file-action-btn[data-v-3620a174]{width:34px;height:34px;border-radius:10px;font-size:14px}.upload-list-item-name-wrapper[data-v-3620a174]{padding:4px 10px;border-radius:8px}.upload-list-item-name[data-v-3620a174]{font-size:12px;width:32vw}}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light);display:inline-block;outline:none;position:relative}.el-radio-button__inner{-webkit-appearance:none;background:var(--el-button-bg-color,var(--el-fill-color-blank));border-radius:0;box-sizing:border-box;color:var(--el-button-text-color,var(--el-text-color-regular));cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));line-height:1;margin:0;outline:var(--el-border);padding:8px 15px;position:relative;text-align:center;transition:var(--el-transition-all);-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button.is-active .el-radio-button__original-radio:not(:disabled)+.el-radio-button__inner{background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary));color:var(--el-radio-button-checked-text-color,var(--el-color-white))}.el-radio-button__original-radio{opacity:0;outline:none;position:absolute;z-index:-1}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));border-radius:var(--el-border-radius-base);box-shadow:none;outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2}.el-radio-button__original-radio:disabled+.el-radio-button__inner{background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));background-image:none;border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none;color:var(--el-disabled-text-color);cursor:not-allowed}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{border-radius:0;font-size:var(--el-font-size-base);padding:12px 19px}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{border-radius:0;font-size:12px;padding:5px 11px}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-upload{--el-upload-dragger-padding-horizontal:10px;--el-upload-dragger-padding-vertical:40px;--el-upload-list-picture-card-size:var(--el-upload-picture-card-size);--el-upload-picture-card-size:148px;align-items:center;cursor:pointer;display:inline-flex;justify-content:center;outline:none}.el-upload.is-disabled{cursor:not-allowed}.el-upload.is-disabled:focus{color:inherit}.el-upload.is-disabled:focus,.el-upload.is-disabled:focus .el-upload-dragger{border-color:var(--el-border-color-darker)}.el-upload.is-disabled .el-upload-dragger{background-color:var(--el-disabled-bg-color);cursor:not-allowed}.el-upload.is-disabled .el-upload-dragger .el-upload__text{color:var(--el-text-color-placeholder)}.el-upload.is-disabled .el-upload-dragger .el-upload__text em{color:var(--el-disabled-text-color)}.el-upload.is-disabled .el-upload-dragger:hover{border-color:var(--el-border-color-darker)}.el-upload__input{display:none}.el-upload__tip{color:var(--el-text-color-regular);font-size:12px;margin-top:7px}.el-upload iframe{filter:alpha(opacity=0);left:0;opacity:0;position:absolute;top:0;z-index:-1}.el-upload--picture-card{align-items:center;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;cursor:pointer;display:inline-flex;height:var(--el-upload-picture-card-size);justify-content:center;vertical-align:top;width:var(--el-upload-picture-card-size)}.el-upload--picture-card>i{color:var(--el-text-color-secondary);font-size:28px}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{color:var(--el-color-primary)}.el-upload:focus,.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;cursor:pointer;overflow:hidden;padding:var(--el-upload-dragger-padding-vertical) var(--el-upload-dragger-padding-horizontal);position:relative;text-align:center}.el-upload-dragger .el-icon--upload{color:var(--el-text-color-placeholder);font-size:67px;line-height:50px;margin-bottom:16px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary);padding:calc(var(--el-upload-dragger-padding-vertical) - 1px) calc(var(--el-upload-dragger-padding-horizontal) - 1px)}.el-upload-list{--el-upload-dragger-padding-horizontal:10px;--el-upload-dragger-padding-vertical:40px;--el-upload-list-picture-card-size:var(--el-upload-picture-card-size);--el-upload-picture-card-size:148px;list-style:none;margin:10px 0 0;padding:0;position:relative}.el-upload-list__item{border-radius:4px;box-sizing:border-box;color:var(--el-text-color-regular);font-size:14px;margin-bottom:5px;position:relative;transition:all .5s cubic-bezier(.55,0,.1,1);width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{color:var(--el-text-color-regular);cursor:pointer;display:none;opacity:.75;position:absolute;right:5px;top:50%;transform:translateY(-50%);transition:opacity var(--el-transition-duration)}.el-upload-list__item .el-icon--close:hover{color:var(--el-color-primary);opacity:1}.el-upload-list__item .el-icon--close-tip{color:var(--el-color-primary);cursor:pointer;display:none;font-size:12px;font-style:normal;opacity:1;position:absolute;right:5px;top:1px}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;flex-direction:column;justify-content:center;margin-left:4px;width:calc(100% - 30px)}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon--close-tip,.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip{display:none}.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list__item-name{align-items:center;color:var(--el-text-color-regular);display:inline-flex;font-size:var(--el-font-size-base);padding:0 4px;text-align:center;transition:color var(--el-transition-duration)}.el-upload-list__item-name .el-icon{color:var(--el-text-color-secondary);margin-right:6px}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{align-items:center;display:none;height:100%;justify-content:center;line-height:inherit;position:absolute;right:5px;top:0;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{color:var(--el-text-color-regular);display:none;font-size:12px;position:absolute;right:10px;top:0}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;display:inline-flex;height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;overflow:hidden;padding:0;width:var(--el-upload-list-picture-card-size)}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:block;opacity:0}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{height:100%;object-fit:contain;width:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{background:var(--el-color-success);height:24px;right:-15px;text-align:center;top:-6px;transform:rotate(45deg);width:40px}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{align-items:center;background-color:var(--el-overlay-color-lighter);color:#fff;cursor:default;display:inline-flex;font-size:20px;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;transition:opacity var(--el-transition-duration);width:100%}.el-upload-list--picture-card .el-upload-list__item-actions span{cursor:pointer;display:none}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:16px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{color:inherit;font-size:inherit;position:static}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{bottom:auto;left:50%;top:50%;transform:translate(-50%,-50%);width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{align-items:center;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;display:flex;margin-top:10px;overflow:hidden;padding:10px;z-index:0}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{display:inline-flex;opacity:0}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{align-items:center;background-color:var(--el-color-white);display:inline-flex;height:70px;justify-content:center;object-fit:contain;position:relative;width:70px;z-index:1}.el-upload-list--picture .el-upload-list__item-status-label{background:var(--el-color-success);height:26px;position:absolute;right:-17px;text-align:center;top:-7px;transform:rotate(45deg);width:46px}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{cursor:default;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:10}.el-upload-cover:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;height:100%;width:100%}.el-upload-cover__label{background:var(--el-color-success);height:24px;right:-15px;text-align:center;top:-6px;transform:rotate(45deg);width:40px}.el-upload-cover__label i{color:#fff;font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-cover__progress{display:inline-block;position:static;vertical-align:middle;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{height:100%;left:0;position:absolute;top:0;width:100%}.el-upload-cover__interact{background-color:var(--el-overlay-color-light);bottom:0;height:100%;left:0;position:absolute;text-align:center;width:100%}.el-upload-cover__interact .btn{color:#fff;cursor:pointer;display:inline-block;font-size:14px;margin-top:60px;transition:var(--el-transition-md-fade);vertical-align:middle}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{background-color:#fff;bottom:0;color:var(--el-text-color-primary);font-size:14px;font-weight:400;height:36px;left:0;line-height:36px;margin:0;overflow:hidden;padding:0 10px;position:absolute;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}@property --border-angle{syntax:"";initial-value:0deg;inherits:false}@keyframes borderRotate-f81fd314{0%{--border-angle:0deg}to{--border-angle:360deg}}.upload-form[data-v-f81fd314],.upload-list-card[data-v-f81fd314]{display:flex;flex-direction:column;justify-content:center;align-items:center}.upload-list-card[data-v-f81fd314]{width:55vw;height:7vh;margin-top:10px;border-radius:15px;background-color:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)!important;transition:height .3s ease;overflow:hidden}.upload-list-card[data-v-f81fd314] .el-card__body{padding:0;width:100%;overflow:hidden}.upload-list-container[data-v-f81fd314]{width:55vw;height:7vh;transition:height .3s ease;overflow:hidden}@media (max-width:768px){.upload-list-card[data-v-f81fd314],.upload-list-container[data-v-f81fd314]{width:70vw}}.upload-list-card.upload-list-busy[data-v-f81fd314],.upload-list-container.upload-list-busy[data-v-f81fd314]{height:40vh}.upload-list-card.is-uploading[data-v-f81fd314]{border:1px solid var(--el-upload-dragger-uniform-color,#2563eb)!important;box-shadow:none!important}.upload-card-wrapper[data-v-f81fd314]{position:relative;overflow:visible}.upload-card-glow[data-v-f81fd314]{position:absolute;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(96,165,250,.2) 0,transparent 70%);pointer-events:none;transform:translate(-50%,-50%);opacity:0;transition:opacity .3s ease;z-index:10}.upload-card[data-v-f81fd314]{width:55vw;padding:20px;background:none}@media (max-width:768px){.upload-card[data-v-f81fd314]{width:70vw}}.upload-card-busy[data-v-f81fd314] .el-upload-dragger{height:17vh}[data-v-f81fd314] .el-upload-dragger{display:flex;flex-direction:column;justify-content:center;align-items:center;height:45vh;border-radius:15px;border:1px solid var(--glass-border);opacity:.7;background-color:var(--glass-bg);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);box-shadow:var(--glass-shadow)}[data-v-f81fd314] .el-upload:focus .el-upload-dragger{border-color:var(--glass-border-hover)}[data-v-f81fd314] .el-upload-dragger.is-dragover,[data-v-f81fd314] .el-upload-dragger:hover{opacity:.7;box-shadow:var(--glass-shadow)}.is-uploading[data-v-f81fd314] .el-upload-dragger{border-color:transparent!important}.upload-card.is-uploading[data-v-f81fd314]{position:relative;background:none}.upload-card.is-uploading[data-v-f81fd314]:before{content:"";position:absolute;top:20px;left:20px;right:20px;bottom:20px;border-radius:15px;padding:2px;background:conic-gradient(from var(--border-angle),transparent 0deg,transparent 30deg,var(--el-upload-dragger-uniform-color,#2563eb) 60deg,color-mix(in srgb,var(--el-upload-dragger-uniform-color,#2563eb) 70%,#fff) 90deg,transparent 120deg,transparent 180deg,color-mix(in srgb,var(--el-upload-dragger-uniform-color,#2563eb) 70%,#fff) 210deg,var(--el-upload-dragger-uniform-color,#2563eb) 240deg,transparent 270deg,transparent 1turn);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:borderRotate-f81fd314 2s linear infinite;pointer-events:none;z-index:1}.el-upload__text[data-v-f81fd314]{font-weight:700;font-size:medium;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .3s ease}@media (max-width:768px){.el-upload__text[data-v-f81fd314]{font-size:small}}.el-upload__text.upload-list-busy[data-v-f81fd314]{font-size:small}.el-icon--upload[data-v-f81fd314]{font-size:100px;transition:font-size .3s ease;color:var(--el-icon--upload-color)}.el-icon--upload.upload-list-busy[data-v-f81fd314]{font-size:60px}@media (max-width:768px){.el-icon--upload[data-v-f81fd314]{font-size:50px}.el-icon--upload.upload-list-busy[data-v-f81fd314]{font-size:30px}}.paste-card[data-v-f81fd314]{display:flex;flex-direction:column;justify-content:center;align-items:center;height:45vh;border-radius:15px;border:var(--el-upload-dragger-border);box-shadow:none;opacity:.7;background-color:var(--el-upload-dragger-bg-color);transition:all .3s ease;box-sizing:border-box}.paste-card[data-v-f81fd314]:hover{opacity:.8;box-shadow:var(--el-upload-dragger-hover-box-shadow)}.paste-card.is-uploading[data-v-f81fd314]{position:relative;border-color:transparent!important;overflow:visible}.paste-card.is-uploading[data-v-f81fd314]:before{content:"";position:absolute;inset:-4px;border-radius:15px;padding:2px;background:conic-gradient(from var(--border-angle),transparent 0deg,transparent 30deg,var(--el-upload-dragger-uniform-color,#2563eb) 60deg,color-mix(in srgb,var(--el-upload-dragger-uniform-color,#2563eb) 70%,#fff) 90deg,transparent 120deg,transparent 180deg,color-mix(in srgb,var(--el-upload-dragger-uniform-color,#2563eb) 70%,#fff) 210deg,var(--el-upload-dragger-uniform-color,#2563eb) 240deg,transparent 270deg,transparent 1turn);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:borderRotate-f81fd314 2s linear infinite;pointer-events:none;z-index:1}.paste-card[data-v-f81fd314] .el-card__body{padding:0;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.upload-card-busy.paste-card[data-v-f81fd314]{height:17vh}.upload-card-textarea[data-v-f81fd314]{width:50vw;height:70%;border-radius:16px;background:var(--textarea-bg,rgba(37,99,235,.02));transition:all .3s cubic-bezier(.4,0,.2,1);box-sizing:border-box;display:flex;position:relative}.upload-card-busy .upload-card-textarea[data-v-f81fd314]{height:50%}.upload-card-textarea[data-v-f81fd314]:before{content:"";position:absolute;inset:-1px;border-radius:17px;padding:1px;background:rgba(37,99,235,.2);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.6;transition:opacity .3s ease}.upload-card-textarea[data-v-f81fd314]:hover:before{opacity:1}.upload-card-textarea[data-v-f81fd314]:focus-within:before{opacity:1;background:rgba(37,99,235,.4)}[data-v-f81fd314] .el-textarea__inner{border-radius:16px;background:var(--textarea-inner-bg,rgba(0,0,0,.02));transition:all .3s cubic-bezier(.4,0,.2,1);resize:none;border:1px solid transparent;padding:16px 20px;font-size:14px;line-height:1.6;color:var(--el-text-color-primary)}[data-v-f81fd314] .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder);font-weight:400;opacity:.7}[data-v-f81fd314] .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder);font-weight:400;opacity:.7}[data-v-f81fd314] .el-textarea__inner:hover{background:var(--textarea-inner-hover-bg,rgba(37,99,235,.03))}[data-v-f81fd314] .el-textarea__inner:focus{border-color:transparent;box-shadow:none;background:var(--textarea-inner-focus-bg,rgba(37,99,235,.02))}.upload-card-textarea[data-v-f81fd314] ::-webkit-scrollbar{width:6px;height:6px}.upload-card-textarea[data-v-f81fd314] ::-webkit-scrollbar-track{background:transparent;border-radius:6px;margin:8px}.upload-card-textarea[data-v-f81fd314] ::-webkit-scrollbar-thumb{background:rgba(37,99,235,.5);border-radius:6px;-webkit-transition:background .3s ease;transition:background .3s ease}.upload-card-textarea[data-v-f81fd314] ::-webkit-scrollbar-thumb:hover{background:rgba(37,99,235,.7)}.paste-card-actions[data-v-f81fd314]{display:flex;justify-content:space-between;align-items:center;width:50vw;margin-top:3%}.paste-card-upload-button[data-v-f81fd314]{min-width:100px;height:42px;border-radius:14px!important;font-weight:600;font-size:15px;letter-spacing:2px;background:#2563eb!important;border:none!important;box-shadow:none;transition:all .3s cubic-bezier(.4,0,.2,1)!important;position:relative;overflow:hidden}.paste-card-upload-button[data-v-f81fd314]:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:hsla(0,0%,100%,.25);transition:left .6s ease}.paste-card-upload-button[data-v-f81fd314]:hover{transform:scale(1.02);box-shadow:none}.paste-card-upload-button[data-v-f81fd314]:hover:before{left:100%}.paste-card-upload-button[data-v-f81fd314]:active{transform:translateY(-1px) scale(.98)}.upload-card-busy .paste-card-upload-button[data-v-f81fd314]{min-width:70px;height:32px;border-radius:10px!important;font-size:13px;letter-spacing:1px}.upload-card-busy .paste-card-actions[data-v-f81fd314]{margin-top:2%}.paste-card-method-group[data-v-f81fd314]{background:var(--paste-method-group-bg,rgba(37,99,235,.08));border-radius:14px;padding:4px;border:1px solid var(--paste-method-group-border,rgba(37,99,235,.15))}.paste-card-method-group[data-v-f81fd314] .el-radio-button__inner{transition:all .3s cubic-bezier(.4,0,.2,1);border-radius:10px!important;border:none!important;background:transparent;font-weight:500;padding:10px 20px;color:var(--el-text-color-regular)}.paste-card-method-group[data-v-f81fd314] .el-radio-button:first-child .el-radio-button__inner,.paste-card-method-group[data-v-f81fd314] .el-radio-button:last-child .el-radio-button__inner{border-radius:10px!important}.paste-card-method-group[data-v-f81fd314] .el-radio-button__inner:hover{background:var(--paste-method-hover-bg,rgba(37,99,235,.12));color:var(--el-color-primary)}.paste-card-method-group[data-v-f81fd314] .el-radio-button__original-radio:checked+.el-radio-button__inner{background:#2563eb!important;color:#fff!important;box-shadow:none}@media (max-width:768px){.paste-card[data-v-f81fd314]{height:auto;min-height:30vh;padding:6px;border-radius:12px}.upload-card-busy.paste-card[data-v-f81fd314]{height:auto;min-height:18vh;padding:5px}.upload-card-textarea[data-v-f81fd314]{margin-top:4px;width:calc(100% - 4px)!important}.upload-card-textarea[data-v-f81fd314]:before{border-radius:11px}[data-v-f81fd314] .el-textarea__inner{border-radius:10px;padding:8px 10px;font-size:12px}.paste-card-actions[data-v-f81fd314]{width:100%!important;margin-top:6px;gap:6px}.paste-card-upload-button[data-v-f81fd314]{height:30px;min-width:55px;border-radius:8px!important;font-size:12px;letter-spacing:.5px;padding:0 10px}.paste-card-method-group[data-v-f81fd314]{border-radius:8px;padding:2px;height:30px;display:flex;align-items:center}.paste-card-method-group[data-v-f81fd314] .el-radio-button__inner{padding:4px 10px;font-size:11px;border-radius:6px!important;height:26px;display:flex;align-items:center}}.upload-list-dashboard[data-v-f81fd314]{display:flex;justify-content:space-between;align-items:center;height:7vh;padding:0 15px;box-sizing:border-box;width:100%;min-width:0;position:sticky;top:0;z-index:1;background:var(--glass-bg);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid var(--glass-border);border-radius:16px;box-shadow:var(--glass-shadow);opacity:.7}[data-v-f81fd314] .el-upload-dragger{position:relative;overflow:hidden}[data-v-f81fd314] .el-upload-dragger:before{background-image:radial-gradient(2px 2px at 10% 10%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 20% 30%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 30% 10%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 40% 30%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 50% 10%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 60% 30%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 70% 10%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 80% 30%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 90% 10%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2px 2px at 15% 70%,var(--el-upload-dragger-uniform-color) 50%,transparent 0);background-size:200px 200px}[data-v-f81fd314] .el-upload-dragger:after,[data-v-f81fd314] .el-upload-dragger:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;z-index:0;transition:opacity .6s ease}[data-v-f81fd314] .el-upload-dragger:after{background-image:radial-gradient(3px 3px at 15% 15%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(3px 3px at 50% 50%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(3px 3px at 85% 85%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2.5px 2.5px at 35% 65%,var(--el-upload-dragger-uniform-color) 50%,transparent 0),radial-gradient(2.5px 2.5px at 65% 35%,var(--el-upload-dragger-uniform-color) 50%,transparent 0);background-size:150px 150px}.upload-card[data-v-f81fd314]:hover .el-upload-dragger:before{opacity:.3;animation:starScroll-f81fd314 60s linear infinite}.upload-card[data-v-f81fd314]:hover .el-upload-dragger:after{opacity:.6;animation:starScroll-f81fd314 40s linear infinite,starPulse-f81fd314 4s ease-in-out infinite}@keyframes starScroll-f81fd314{0%{background-position:0 0}to{background-position:100px 100px}}@keyframes starPulse-f81fd314{0%,to{opacity:.6}50%{opacity:.3}}.modern-action-group[data-v-f81fd314]{display:flex;align-items:center;gap:5px;height:44px;box-sizing:border-box;padding:5px;background:var(--glass-bg);border-radius:12px;border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.modern-action-group[data-v-f81fd314]:hover{background:var(--glass-bg);border-color:var(--glass-border);box-shadow:var(--glass-shadow)}.modern-action-btn[data-v-f81fd314]{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:13px;background:var(--upload-action-btn-bg);color:var(--upload-action-btn-color);cursor:pointer;transition:background-color .22s ease,color .22s ease,box-shadow .22s ease,transform .22s ease;font-size:14px;box-shadow:var(--upload-action-btn-shadow);position:relative;overflow:hidden;outline:none!important}.modern-action-btn[data-v-f81fd314]:focus,.modern-action-btn[data-v-f81fd314]:focus-visible{outline:none!important}.modern-action-btn[data-v-f81fd314]:before{content:"";position:absolute;inset:2px;border-radius:11px;background:currentColor;opacity:0;transition:opacity .22s ease}.modern-action-btn[data-v-f81fd314]:hover{background:var(--upload-action-btn-hover-bg);box-shadow:var(--upload-action-btn-hover-shadow)}.modern-action-btn[data-v-f81fd314]:hover:before{opacity:.08}.modern-action-btn[data-v-f81fd314]:active{transform:translateY(0) scale(.97);box-shadow:var(--upload-action-btn-active-shadow)}.modern-action-btn-copy[data-v-f81fd314]{color:var(--upload-action-copy-color)}.modern-action-btn-retry[data-v-f81fd314]{color:var(--upload-action-retry-color)}.modern-action-btn-danger[data-v-f81fd314]{color:var(--upload-action-danger-color);background:var(--upload-action-danger-bg)}.modern-action-btn-danger[data-v-f81fd314]:hover{background:var(--upload-action-danger-hover-bg);box-shadow:var(--upload-action-danger-hover-shadow)}.modern-dropdown-item-content[data-v-f81fd314]{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px;padding:4px 0}.modern-dropdown-item-content span[data-v-f81fd314]{font-weight:500;color:var(--el-text-color-primary)}.upload-list-dashboard-title[data-v-f81fd314]{font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px;height:44px;box-sizing:border-box;padding:0 14px;background:var(--dashboard-title-bg,rgba(37,99,235,.06));border:1px solid var(--glass-border);border-radius:12px;color:var(--el-text-color-primary)}.upload-list-dashboard-title .el-icon[data-v-f81fd314]{font-size:16px;margin-right:4px;opacity:.85}@media (max-width:768px){.modern-action-group[data-v-f81fd314]{gap:4px;padding:3px;border-radius:12px}.modern-action-btn[data-v-f81fd314]{width:32px;height:32px;border-radius:8px;font-size:12px}.upload-list-dashboard-title[data-v-f81fd314]{font-size:12px;padding:4px 10px}.upload-list-dashboard[data-v-f81fd314]{padding:0 8px;gap:4px}.upload-list-dashboard-title[data-v-f81fd314]{gap:4px;padding:3px 8px;min-width:0;flex-shrink:1;overflow:hidden}.upload-list-dashboard-action[data-v-f81fd314]{flex-shrink:0}}.logo-link[data-v-17f54292]{text-decoration:none;display:inline-block}.logo[data-v-17f54292]{transition:all .3s ease;border-radius:8px}.logo--fixed[data-v-17f54292]{position:fixed;top:20px;left:20px;z-index:100}.logo--relative[data-v-17f54292]{position:relative}.logo--absolute[data-v-17f54292]{position:absolute;top:5px;left:5px;z-index:100}.logo--static[data-v-17f54292]{position:static}.logo--small[data-v-17f54292]{height:50px;width:50px}.logo--normal[data-v-17f54292]{height:70px;width:70px}.logo--large[data-v-17f54292]{height:90px;width:90px}.logo--hover-enabled[data-v-17f54292]:hover{transform:scale(1.1) rotate(5deg);filter:drop-shadow(0 0 10px var(--logo-glow-color))}@media (max-width:768px){.logo--small[data-v-17f54292]{height:40px;width:40px}.logo--normal[data-v-17f54292]{height:60px;width:60px}.logo--large[data-v-17f54292]{height:75px;width:75px}}.logo[data-v-17f54292]:focus{outline:2px solid var(--el-color-primary);outline-offset:2px}.logo[data-v-17f54292]{filter:var(--logo-filter,none);opacity:var(--logo-opacity,1)}@media (prefers-color-scheme:dark){.logo[data-v-17f54292]{filter:var(--logo-dark-filter,brightness(.9))}}.directory-suggestion-input[data-v-28b8eda7]{width:100%;height:100%;position:relative}.suggestion-dropdown[data-v-28b8eda7]{position:absolute;top:calc(100% + 10px);left:0;width:100%;z-index:9999;border-radius:12px;border:1px solid var(--glass-border);background-color:var(--popper-bg-color);box-shadow:var(--popper-shadow);padding:6px 0;overflow:hidden}.suggestion-list[data-v-28b8eda7]{list-style:none;margin:0;padding:0;max-height:260px;overflow-y:auto}.suggestion-item[data-v-28b8eda7]{padding:8px 16px;font-size:13px;border-radius:6px;margin:2px 6px;cursor:pointer;transition:background-color .2s ease;text-align:left;color:var(--el-text-color-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggestion-item[data-v-28b8eda7]:hover{background-color:var(--el-fill-color-light)}#themeToggle[data-v-66e6a1f0]{border:1px solid #d9dce2;cursor:pointer;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:12px;background-color:hsla(0,0%,100%,.72);box-shadow:none;transition:background-color .25s ease,border-color .25s ease,transform .25s ease}html.dark #themeToggle[data-v-66e6a1f0]{background-color:rgba(22,22,24,.75);border:1px solid #34343a}#themeToggle[data-v-66e6a1f0]:hover{background-color:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark #themeToggle[data-v-66e6a1f0]:hover{background-color:rgba(22,22,24,.88);border-color:#4a4a52}@media (max-width:768px){#themeToggle[data-v-66e6a1f0]{width:2rem;height:2rem}}.theme_toggle_circle1[data-v-66e6a1f0]{transition:cx .5s ease-in-out,cy .5s ease-in-out,r .5s ease-in-out}.theme_toggle_circle2[data-v-66e6a1f0]{transition:all .5s ease-in-out;fill:var(--theme-toggle-bg-color)}.theme_toggle_svg[data-v-66e6a1f0]{transition:transform .5s cubic-bezier(.68,-.55,.27,1.55);color:var(--theme-toggle-color)}.dark.theme_toggle_svg[data-v-66e6a1f0]{transform:rotate(40deg)}.theme_toggle_g[data-v-66e6a1f0]{transition:opacity .5s ease-in-out}.icon-fade-enter-active[data-v-66e6a1f0],.icon-fade-leave-active[data-v-66e6a1f0]{transition:opacity .3s ease-in-out,transform .3s ease-in-out}.icon-fade-enter-from[data-v-66e6a1f0]{opacity:0;transform:scale(.8) rotate(-90deg)}.icon-fade-leave-to[data-v-66e6a1f0]{opacity:0;transform:scale(.8) rotate(90deg)}.icon-fade-enter-to[data-v-66e6a1f0],.icon-fade-leave-from[data-v-66e6a1f0]{opacity:1;transform:scale(1) rotate(0deg)}.auto-icon[data-v-66e6a1f0]{display:inline-block}.container[data-v-579106c0]{background:var(--bg-color);min-height:100vh}.rotate[data-v-579106c0]{animation:spin-579106c0 2s ease-in-out}.scale[data-v-579106c0]{animation:scale-579106c0 .5s ease-in-out}@keyframes spin-579106c0{0%{transform:rotate(0deg)}25%{transform:rotate(5deg)}50%{transform:rotate(0deg)}75%{transform:rotate(-3deg)}to{transform:rotate(0deg)}}@keyframes streamer-579106c0{0%{background-position:200%}to{background-position:-200%}}@keyframes rotate-shake-579106c0{0%{transform:rotate(0deg)}50%{transform:rotate(10deg)}to{transform:rotate(0deg)}}@keyframes shake-579106c0{0%{transform:translateX(0)}50%{transform:translateX(-1px)}to{transform:translateX(0)}}@keyframes scale-579106c0{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.desktop-only[data-v-579106c0]{display:inline-block}.mobile-only[data-v-579106c0]{display:none}@media (max-width:768px){.desktop-only[data-v-579106c0]{display:none!important}.mobile-only[data-v-579106c0]{display:flex!important}}.toggle-dark-button[data-v-579106c0]{width:2.5rem;height:2.5rem;box-sizing:border-box;display:flex;justify-content:center;align-items:center;border:1px solid #d9dce2;transition:background-color .25s ease,border-color .25s ease,transform .25s ease;background-color:hsla(0,0%,100%,.72);box-shadow:none;border-radius:12px;position:fixed;top:30px;right:80px;padding:0}html.dark .toggle-dark-button[data-v-579106c0]{background-color:rgba(22,22,24,.75);border:1px solid #34343a}.more-dropdown[data-v-579106c0]{position:fixed;top:30px;right:30px;z-index:100}.more-dropdown .more-button[data-v-579106c0]{width:2.5rem;height:2.5rem;box-sizing:border-box;display:flex;justify-content:center;align-items:center;border:1px solid #d9dce2;transition:background-color .25s ease,border-color .25s ease,transform .25s ease;background-color:hsla(0,0%,100%,.72);box-shadow:none;color:var(--theme-toggle-color);border-radius:12px;outline:none;padding:0}html.dark .more-dropdown .more-button[data-v-579106c0]{background-color:rgba(22,22,24,.75);border:1px solid #34343a}.more-dropdown .more-button[data-v-579106c0]:hover{transform:scale(1.05);background-color:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark .more-dropdown .more-button[data-v-579106c0]:hover{background-color:rgba(22,22,24,.88);border-color:#4a4a52}.upload-method-button[data-v-579106c0]{width:2.5rem;height:2.5rem;box-sizing:border-box;display:flex;justify-content:center;align-items:center;border:1px solid #d9dce2;transition:background-color .25s ease,border-color .25s ease,transform .25s ease;background-color:hsla(0,0%,100%,.72);box-shadow:none;color:var(--theme-toggle-color);border-radius:12px;position:fixed;top:30px;right:130px;outline:none;padding:0}html.dark .upload-method-button[data-v-579106c0]{background-color:rgba(22,22,24,.75);border:1px solid #34343a}@media (max-width:768px){.upload-method-button[data-v-579106c0]{width:2rem;height:2rem}}.upload-method-icon[data-v-579106c0]{outline:none}.more-button .svg-inline--fa[data-v-579106c0],.upload-method-button .svg-inline--fa[data-v-579106c0]{font-size:1.5em}.directory-tree-trigger .svg-inline--fa[data-v-579106c0]{font-size:1.3em}.mobile-more-dropdown[data-v-579106c0]{position:fixed;top:30px;right:18px;z-index:100}.mobile-more-button[data-v-579106c0]{width:2rem;height:2rem;display:flex;justify-content:center;align-items:center;border:1px solid #d9dce2;transition:background-color .25s ease,border-color .25s ease,transform .25s ease;background-color:hsla(0,0%,100%,.72);box-shadow:none;color:var(--theme-toggle-color);border-radius:12px;outline:none;padding:0}html.dark .mobile-more-button[data-v-579106c0]{background-color:rgba(22,22,24,.75);border:1px solid #34343a}.mobile-more-button[data-v-579106c0]:hover{transform:scale(1.05);background-color:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark .mobile-more-button[data-v-579106c0]:hover{background-color:rgba(22,22,24,.88);border-color:#4a4a52}.upload-folder-container[data-v-579106c0]{display:flex;align-items:center;position:fixed;top:30px;right:180px;z-index:100}.upload-folder-container.no-announcement[data-v-579106c0]{right:180px}@media (max-width:768px){.upload-folder-container.no-announcement[data-v-579106c0],.upload-folder-container[data-v-579106c0]{right:58px}}.upload-folder[data-v-579106c0]{width:100px;height:2.5rem;border-radius:12px;display:flex;align-items:center;box-sizing:border-box;transition:all .3s ease,width .4s ease}.upload-folder.active[data-v-579106c0]{width:200px}@media (max-width:768px){.upload-folder[data-v-579106c0]{width:80px;height:2rem}.upload-folder.active[data-v-579106c0]{width:120px}}.directory-tree-trigger[data-v-579106c0]{width:2.5rem;height:2.5rem;display:flex;justify-content:center;align-items:center;box-sizing:border-box;border:1px solid var(--glass-border);margin-left:10px;background-color:var(--glass-bg);box-shadow:var(--glass-shadow);color:var(--theme-toggle-color);border-radius:12px;outline:none;cursor:pointer;transition:background-color .25s ease,border-color .25s ease,transform .25s ease}.directory-tree-trigger[data-v-579106c0]:hover{background-color:hsla(0,0%,100%,.85);border-color:#bfc4cc;transform:scale(1.05)}html.dark .directory-tree-trigger[data-v-579106c0]:hover{background-color:rgba(22,22,24,.88);border-color:#4a4a52}@media (max-width:768px){.directory-tree-trigger[data-v-579106c0]{width:2rem;height:2rem}}.upload-folder[data-v-579106c0] .inner-folder-input{width:100%;height:100%}.upload-folder[data-v-579106c0] .el-input{height:100%;box-sizing:border-box}.upload-folder[data-v-579106c0] .el-input__wrapper{border-radius:12px;background-color:var(--glass-bg);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);box-shadow:var(--glass-shadow);border:1px solid var(--glass-border);height:100%;padding:0 10px;box-sizing:border-box;transition:background-color .25s ease,border-color .25s ease,box-shadow .25s ease!important}.upload-folder[data-v-579106c0] .el-input__wrapper:hover{background-color:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark .upload-folder[data-v-579106c0] .el-input__wrapper:hover{background-color:rgba(22,22,24,.88);border-color:#4a4a52}.quick-toolbar[data-v-579106c0]{--quick-toolbar-size:2.5rem;--quick-toolbar-button-size:calc(var(--quick-toolbar-size) - 6px);position:fixed;bottom:50px;right:30px;width:var(--quick-toolbar-size);box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:0;z-index:200;padding:3px;border-radius:999px;border:1px solid #d9dce2;background-color:hsla(0,0%,100%,.72);box-shadow:none;transition:background-color .24s ease,border-color .24s ease}html.dark .quick-toolbar[data-v-579106c0]{background-color:rgba(22,22,24,.75);border:1px solid #34343a}.quick-toolbar-button[data-v-579106c0]{width:var(--quick-toolbar-button-size);height:var(--quick-toolbar-button-size);border:none;transition:transform .22s ease,background-color .22s ease,box-shadow .22s ease,color .22s ease;margin-left:0;padding:0;border-radius:999px;background-color:transparent;box-shadow:none;color:var(--toolbar-button-color);outline:none}.quick-toolbar-actions[data-v-579106c0]{display:grid;grid-template-rows:0fr;width:100%;margin-bottom:0;opacity:0;pointer-events:none;transform:translateY(12px);transform-origin:bottom center;transition:grid-template-rows .52s cubic-bezier(.16,1,.3,1),margin-bottom .52s cubic-bezier(.16,1,.3,1),opacity .32s ease,transform .52s cubic-bezier(.16,1,.3,1)}.quick-toolbar.is-expanded .quick-toolbar-actions[data-v-579106c0]{grid-template-rows:1fr;margin-bottom:4px;opacity:1;pointer-events:auto;transform:translateY(0)}.quick-toolbar-actions-inner[data-v-579106c0]{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:0;overflow:hidden}.quick-toolbar-more.is-active[data-v-579106c0]{background-color:var(--upload-action-btn-hover-bg);box-shadow:var(--upload-action-btn-shadow)}.quick-toolbar-more[data-v-579106c0]{margin-top:4px}.quick-toolbar-icon[data-v-579106c0]{font-size:16px}.quick-toolbar-toggle-icon[data-v-579106c0]{transform:rotate(180deg);transition:transform .32s ease}.quick-toolbar-more.is-active .quick-toolbar-toggle-icon[data-v-579106c0]{transform:rotate(0deg)}.info-container[data-v-579106c0]:hover,.quick-toolbar-button[data-v-579106c0]:hover{transform:scale(1.05);background-color:var(--upload-action-btn-hover-bg);box-shadow:var(--upload-action-btn-hover-shadow)}.quick-toolbar[data-v-579106c0]:hover{background-color:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark .quick-toolbar[data-v-579106c0]:hover{background-color:rgba(22,22,24,.88);border-color:#4a4a52}.quick-toolbar-button[data-v-579106c0]:hover{transform:none}.toggle-dark-button[data-v-579106c0]:hover,.upload-method-button[data-v-579106c0]:hover{transform:scale(1.05);background-color:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark .toggle-dark-button[data-v-579106c0]:hover,html.dark .upload-method-button[data-v-579106c0]:hover{background-color:rgba(22,22,24,.88);border-color:#4a4a52}.upload-folder[data-v-579106c0]:hover .el-input__wrapper{background-color:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark .upload-folder[data-v-579106c0]:hover .el-input__wrapper{background-color:rgba(22,22,24,.88);border-color:#4a4a52}@media (max-width:768px){.quick-toolbar[data-v-579106c0]{--quick-toolbar-size:2rem;--quick-toolbar-button-size:calc(var(--quick-toolbar-size) - 4px);right:18px;bottom:max(72px,calc(6vh + 20px + env(safe-area-inset-bottom)));padding:2px}.quick-toolbar-actions[data-v-579106c0]{margin-bottom:0}.quick-toolbar.is-expanded .quick-toolbar-actions[data-v-579106c0]{margin-bottom:3px}.quick-toolbar-actions-inner[data-v-579106c0]{gap:2px}.quick-toolbar-more[data-v-579106c0]{margin-top:3px}.quick-toolbar-icon[data-v-579106c0]{font-size:14px}}[data-v-579106c0] .el-dialog{border-radius:12px;border:1px solid var(--glass-border);background-color:var(--dialog-bg-color);box-shadow:var(--dialog-box-shadow)}.dialog-action[data-v-579106c0]{display:flex;justify-content:center;margin-top:20px}.header[data-v-579106c0]{display:flex;justify-content:center;align-items:center;padding:15px;margin-top:5vh;color:var(--upload-header-color);-webkit-user-select:none;-moz-user-select:none;user-select:none;text-decoration:none;position:relative;top:-3vh;transition:all .3s ease}.title[data-v-579106c0]{font-size:2.25rem;font-weight:400;font-family:Pacifico,Noto Sans SC,sans-serif;color:var(--upload-title-text-color);text-shadow:var(--upload-title-text-shadow);position:relative;padding-bottom:8px;cursor:pointer;transition:transform .4s cubic-bezier(.4,0,.2,1),filter .25s ease;animation:float-579106c0 4s ease-in-out infinite;letter-spacing:3px}.title[data-v-579106c0]:hover{transform:scale(1.08);filter:drop-shadow(0 0 20px var(--upload-title-hover-glow))}.title[data-v-579106c0]:after{content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:0;height:3px;background:var(--upload-title-underline-bg);border-radius:3px;transition:width .5s cubic-bezier(.4,0,.2,1);box-shadow:var(--upload-title-underline-shadow)}.title[data-v-579106c0]:hover:after{width:80%}.main-title[data-v-579106c0]{color:var(--upload-main-title-color);text-decoration:none;display:inline-block;position:relative;filter:drop-shadow(0 0 8px rgba(255,255,255,.3));transition:opacity .16s ease}.title:hover .main-title[data-v-579106c0]{opacity:0}.title[data-v-579106c0]:hover{color:transparent;text-shadow:none}.title-crayon-text[data-v-579106c0]{position:absolute;left:50%;top:-1px;z-index:2;width:-moz-max-content;width:max-content;pointer-events:none;white-space:nowrap;color:var(--upload-title-crayon-deep,#1d2129);opacity:0;-webkit-text-stroke:.35px var(--upload-title-crayon-edge);text-shadow:-1.2px .4px 0 var(--upload-title-crayon-burr),.9px -.7px 0 hsla(0,0%,100%,.24),1.5px .5px 0 var(--upload-title-crayon-dust),-1.7px -.6px 0 var(--upload-title-crayon-dust);transform:translateX(-50%) rotate(-.8deg);transform-origin:left 68%;clip-path:inset(-10px 100% -10px -10px);filter:saturate(1.08) contrast(1.06)}.title:hover .title-crayon-text[data-v-579106c0]{animation:crayonWrite-579106c0 .82s steps(18) forwards,crayonScratch-579106c0 .16s steps(2) .82s 3}@keyframes float-579106c0{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes crayonWrite-579106c0{0%{opacity:0;clip-path:inset(-10px 100% -10px -10px)}12%{opacity:.92}32%{clip-path:inset(-10px 68% -10px -10px)}47%{clip-path:inset(-10px 52% -10px -10px)}63%{clip-path:inset(-10px 34% -10px -10px)}78%{clip-path:inset(-10px 18% -10px -10px)}to{opacity:.92;clip-path:inset(-10px -10px -10px -10px)}}@keyframes crayonScratch-579106c0{0%,to{transform:translateX(-50%) rotate(-.8deg)}50%{transform:translateX(calc(-50% + 1px)) rotate(-.45deg)}}@media (max-width:768px){.title[data-v-579106c0]{font-size:1.55rem;letter-spacing:1px}.title[data-v-579106c0]:hover{transform:scale(1.05)}}.upload-home[data-v-579106c0]{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:94vh;background-color:var(--admin-container-bg-color)}.upload[data-v-579106c0]{margin-bottom:5px;position:relative;top:-3vh}@media (max-width:768px){.header[data-v-579106c0]{padding:8px 15px 4px;top:-2.5vh}.title[data-v-579106c0]{padding-bottom:5px}.upload[data-v-579106c0]{top:-3.8vh}}.footer[data-v-579106c0]{height:6vh} \ No newline at end of file diff --git a/frontend-dist/css/915.9e4a657d.css.gz b/frontend-dist/css/870.16cbea0a.css.gz similarity index 83% rename from frontend-dist/css/915.9e4a657d.css.gz rename to frontend-dist/css/870.16cbea0a.css.gz index c5675cb405fcfd5c0c6ed4adf4b3761562a37e0d..858d157d73d062537c3635aa1bf7ec139dc80ece 100644 GIT binary patch delta 1947 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 bZqr>|cREC9ocRss;r4$4?kT?$RV4uc*c{Ch diff --git a/frontend-dist/css/888.793f4b66.css b/frontend-dist/css/888.793f4b66.css new file mode 100644 index 00000000..c6006724 --- /dev/null +++ b/frontend-dist/css/888.793f4b66.css @@ -0,0 +1 @@ +.sidebar-container[data-v-ed65892c]{display:flex;flex-direction:column;position:fixed;top:50%;left:8px;transform:translateY(-50%);z-index:2001;max-width:200px;background:hsla(0,0%,100%,.72);backdrop-filter:blur(12px) saturate(1.4);-webkit-backdrop-filter:blur(12px) saturate(1.4);border:1px solid #d9dce2;border-radius:16px;box-shadow:none;transition:width .3s ease,box-shadow .3s ease;overflow:hidden}.sidebar-container.is-collapsed[data-v-ed65892c]{width:56px}html.dark .sidebar-container[data-v-ed65892c]{background:rgba(22,22,24,.75);border:1px solid #34343a;box-shadow:none}.sidebar-container[data-v-ed65892c]:hover,html.dark .sidebar-container[data-v-ed65892c]:hover{box-shadow:none}.menu-list[data-v-ed65892c]{padding:8px}.menu-item[data-v-ed65892c]{display:flex;align-items:center;justify-content:flex-start;padding:12px 12px 12px 0;height:42px;box-sizing:border-box;border-radius:10px;cursor:pointer;transition:background .2s ease,color .2s ease;color:var(--admin-container-color,#333);gap:0;overflow:hidden}.menu-item[data-v-ed65892c]:hover{background:rgba(0,0,0,.06)}html.dark .menu-item[data-v-ed65892c]:hover{background:hsla(0,0%,100%,.1)}.menu-item.is-active[data-v-ed65892c]{background:rgba(37,99,235,.2);color:#2563eb}html.dark .menu-item.is-active[data-v-ed65892c]{background:rgba(37,99,235,.3);color:var(--el-text-color-primary)}.menu-icon[data-v-ed65892c]{width:40px;min-width:40px;font-size:16px;flex-shrink:0;text-align:center}.menu-text[data-v-ed65892c]{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;opacity:1;transition:opacity .2s ease .05s,max-width .25s ease}.sidebar-container.is-collapsed .menu-text[data-v-ed65892c]{opacity:0;max-width:0;transition:opacity .1s ease,max-width .2s ease}.toggle-button[data-v-ed65892c]{padding:12px;text-align:center;cursor:pointer;border-top:1px solid rgba(0,0,0,.08);transition:all .2s ease;color:var(--admin-container-color,#333)}html.dark .toggle-button[data-v-ed65892c]{border-top:1px solid hsla(0,0%,100%,.08)}.toggle-button[data-v-ed65892c]:hover{background:rgba(0,0,0,.04)}html.dark .toggle-button[data-v-ed65892c]:hover{background:hsla(0,0%,100%,.06)}@media (max-width:768px){.sidebar-container[data-v-ed65892c]{left:4px;max-width:170px}.sidebar-container.is-collapsed[data-v-ed65892c]{width:50px}.menu-icon[data-v-ed65892c]{width:34px;min-width:34px}}.el-progress{align-items:center;display:flex;line-height:1;position:relative}.el-progress__text{color:var(--el-text-color-regular);font-size:14px;line-height:1;margin-left:5px;min-width:50px}.el-progress__text i{display:block;vertical-align:middle}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{left:0;margin:0;position:absolute;text-align:center;top:50%;transform:translateY(-50%);width:100%}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{display:inline-block;vertical-align:middle}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{display:block;margin-right:0;padding-right:0}.el-progress--text-inside .el-progress-bar{margin-right:0;padding-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{box-sizing:border-box;flex-grow:1}.el-progress-bar__outer{background-color:var(--el-border-color-lighter);border-radius:100px;height:6px;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{background-color:var(--el-color-primary);border-radius:100px;height:100%;left:0;line-height:1;position:absolute;text-align:right;top:0;transition:width .6s ease;white-space:nowrap}.el-progress-bar__inner:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{animation:indeterminate 3s infinite;transform:translateZ(0)}.el-progress-bar__inner--striped{background-image:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 0,transparent 50%,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 75%,transparent 0,transparent);background-size:1.25em 1.25em}.el-progress-bar__inner--striped.el-progress-bar__inner--striped-flow{animation:striped-flow 3s linear infinite}.el-progress-bar__innerText{color:#fff;display:inline-block;font-size:12px;margin:0 5px;vertical-align:middle}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes striped-flow{0%{background-position:-100%}to{background-position:100%}}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:0.5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{background:var(--el-popup-modal-bg-color);height:100%;left:0;opacity:var(--el-popup-modal-opacity);position:fixed;top:0;width:100%}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:16px;--el-dialog-border-radius:var(--el-border-radius-base);background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;margin:var(--el-dialog-margin-top,15vh) auto 50px;overflow-wrap:break-word;padding:var(--el-dialog-padding-primary);position:relative;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:none!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;border-radius:0;height:100%;margin-bottom:0;overflow:auto}.el-dialog__wrapper{bottom:0;left:0;margin:0;overflow:auto;position:fixed;right:0;top:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;user-select:none}.el-dialog__header{padding-bottom:var(--el-dialog-padding-primary)}.el-dialog__header.show-close{padding-right:calc(var(--el-dialog-padding-primary) + var(--el-message-close-size, 16px))}.el-dialog__headerbtn{background:transparent;border:none;cursor:pointer;font-size:var(--el-message-close-size,16px);height:48px;outline:none;padding:0;position:absolute;right:0;top:0;width:48px}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{color:var(--el-text-color-primary);font-size:var(--el-dialog-title-font-size);line-height:var(--el-dialog-font-line-height)}.el-dialog__body{color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{box-sizing:border-box;padding-top:var(--el-dialog-padding-primary);text-align:right}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-modal-dialog.is-penetrable{pointer-events:none}.el-modal-dialog.is-penetrable .el-dialog{pointer-events:auto}.el-overlay-dialog{bottom:0;left:0;overflow:auto;position:fixed;right:0;top:0}.dialog-fade-enter-active{animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{animation:dialog-fade-out var(--el-transition-duration)}@keyframes dialog-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes dialog-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.date-range-calendar[data-v-715da8c8]{width:min(336px,100%);max-width:100%;min-width:0;box-sizing:border-box;color:var(--admin-container-color);-webkit-user-select:none;-moz-user-select:none;user-select:none}.selected-range[data-v-715da8c8]{margin-bottom:16px}.selected-range-inputs[data-v-715da8c8]{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px}.date-input[data-v-715da8c8]{width:100%;min-width:0;height:34px;box-sizing:border-box;border:1px solid var(--glass-border);border-radius:8px;padding:0 8px;background:var(--glass-bg);color:var(--admin-container-color);font-size:13px;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.date-input[data-v-715da8c8]:focus,.date-input[data-v-715da8c8]:hover{border-color:var(--el-color-primary);box-shadow:none}.date-range-separator[data-v-715da8c8]{color:#59636e;font-size:12px;font-weight:700}.calendar-header[data-v-715da8c8]{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:8px;margin-bottom:14px}.calendar-title[data-v-715da8c8]{text-align:center;font-size:16px;font-weight:700}.calendar-nav[data-v-715da8c8]{width:36px;height:36px;border:1px solid var(--glass-border);border-radius:50%;background:var(--glass-bg);color:var(--admin-container-color);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:color .2s ease,border-color .2s ease,background-color .2s ease,box-shadow .2s ease}.calendar-nav[data-v-715da8c8]:focus,.calendar-nav[data-v-715da8c8]:hover{color:var(--el-color-primary);border-color:var(--el-color-primary);background:rgba(37,99,235,.08);box-shadow:none}.calendar-grid[data-v-715da8c8],.calendar-weekdays[data-v-715da8c8]{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-weekdays[data-v-715da8c8]{margin-bottom:8px;color:#59636e;font-size:12px;font-weight:600;text-align:center}.calendar-weekdays span[data-v-715da8c8]{height:24px;line-height:24px}.calendar-grid[data-v-715da8c8]{gap:4px}.calendar-day[data-v-715da8c8]{position:relative;width:38px;height:38px;box-sizing:border-box;justify-self:center;padding:0;border:1px solid transparent;border-radius:50%;background:transparent;color:var(--admin-container-color);font-size:14px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:color .18s ease,background-color .18s ease,border-color .18s ease,box-shadow .18s ease}.calendar-day[data-v-715da8c8]:focus,.calendar-day[data-v-715da8c8]:hover{border-color:rgba(37,99,235,.45);background:rgba(37,99,235,.1);color:var(--el-color-primary)}.calendar-day.is-muted[data-v-715da8c8]{color:#86909c;opacity:.62}.calendar-day.is-today[data-v-715da8c8]{border-color:rgba(249,115,22,.7)}.calendar-day.is-in-range[data-v-715da8c8]{border-radius:12px;background:rgba(37,99,235,.12);color:var(--el-color-primary)}.calendar-day.is-range-end[data-v-715da8c8],.calendar-day.is-range-start[data-v-715da8c8]{background:var(--el-color-primary);border-color:var(--el-color-primary);color:#fff;box-shadow:none}html.dark .calendar-weekdays[data-v-715da8c8]{color:#a1a1aa}html.dark .calendar-day.is-muted[data-v-715da8c8]{color:#737b88}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary);align-items:center;color:var(--el-radio-text-color);cursor:pointer;display:inline-flex;font-size:var(--el-font-size-base);font-weight:var(--el-radio-font-weight);height:32px;margin-right:30px;outline:none;position:relative;-webkit-user-select:none;user-select:none;white-space:nowrap}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{border:var(--el-border);border-radius:var(--el-border-radius-base);box-sizing:border-box;padding:0 15px 0 9px}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{border-color:var(--el-border-color-lighter);cursor:not-allowed}.el-radio.is-bordered.el-radio--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{border-radius:var(--el-border-radius-base);padding:0 11px 0 7px}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{cursor:pointer;display:inline-flex;outline:none;position:relative;vertical-align:middle;white-space:nowrap}.el-radio__input.is-disabled .el-radio__inner{border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled .el-radio__inner:after{background-color:var(--el-disabled-bg-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{background:var(--el-color-primary);border-color:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{background-color:var(--el-color-white);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{background-color:var(--el-radio-input-bg-color);border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);box-sizing:border-box;cursor:pointer;display:inline-block;height:var(--el-radio-input-height);position:relative;width:var(--el-radio-input-width)}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{border-radius:var(--el-radio-input-border-radius);content:"";height:4px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in;width:4px}.el-radio__original{bottom:0;left:0;margin:0;opacity:0;outline:none;position:absolute;right:0;top:0;z-index:-1}.el-radio__original:focus-visible+.el-radio__inner{border-radius:var(--el-radio-input-border-radius);outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio-group{align-items:center;display:inline-flex;flex-wrap:wrap;font-size:0}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light);display:inline-block;outline:none;position:relative}.el-radio-button__inner{-webkit-appearance:none;background:var(--el-button-bg-color,var(--el-fill-color-blank));border-radius:0;box-sizing:border-box;color:var(--el-button-text-color,var(--el-text-color-regular));cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));line-height:1;margin:0;outline:var(--el-border);padding:8px 15px;position:relative;text-align:center;transition:var(--el-transition-all);-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button.is-active .el-radio-button__original-radio:not(:disabled)+.el-radio-button__inner{background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary));color:var(--el-radio-button-checked-text-color,var(--el-color-white))}.el-radio-button__original-radio{opacity:0;outline:none;position:absolute;z-index:-1}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));border-radius:var(--el-border-radius-base);box-shadow:none;outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2}.el-radio-button__original-radio:disabled+.el-radio-button__inner{background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));background-image:none;border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none;color:var(--el-disabled-text-color);cursor:not-allowed}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{border-radius:0;font-size:var(--el-font-size-base);padding:12px 19px}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{border-radius:0;font-size:12px;padding:5px 11px}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.status-panel[data-v-5fc5ce27]{padding:20px;background:transparent;min-height:100vh}.overview-cards[data-v-5fc5ce27]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:30px}.overview-card[data-v-5fc5ce27]{border-radius:16px;padding:24px;display:flex;align-items:center;border:1px solid var(--glass-border);cursor:pointer}.overview-card[data-v-5fc5ce27],.overview-card[data-v-5fc5ce27]:hover{background:var(--glass-bg);box-shadow:var(--glass-shadow)}.card-icon[data-v-5fc5ce27]{width:60px;height:60px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px;margin-right:20px;background:#2563eb;color:#fff}.card-content[data-v-5fc5ce27]{flex:1}.card-title[data-v-5fc5ce27]{font-size:14px;color:#666;margin-bottom:8px;font-weight:500}.card-value[data-v-5fc5ce27]{font-size:28px;font-weight:700;color:var(--admin-container-color);line-height:1}.card-subtitle[data-v-5fc5ce27]{font-size:11px;color:#59636e;margin-top:4px;opacity:.8}.charts-section[data-v-5fc5ce27]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:30px;overflow:visible}@media (max-width:768px){.charts-section[data-v-5fc5ce27]{grid-template-columns:1fr}}.chart-card[data-v-5fc5ce27]{border-radius:16px;padding:24px;border:1px solid var(--glass-border)}.chart-card[data-v-5fc5ce27],.chart-card[data-v-5fc5ce27]:hover{background:var(--glass-bg);box-shadow:var(--glass-shadow)}.chart-card[data-v-5fc5ce27],.chart-content[data-v-5fc5ce27],.pie-chart-container[data-v-5fc5ce27],.pie-chart-wrapper[data-v-5fc5ce27]{overflow:visible}.chart-header[data-v-5fc5ce27]{display:flex;gap:8px;align-items:center;margin-bottom:20px;font-size:16px;font-weight:600;color:var(--admin-container-color)}.chart-header .fa-icon[data-v-5fc5ce27]{margin-right:10px;color:var(--admin-purple)}.trend-chart-card[data-v-5fc5ce27]{grid-column:1/-1}.trend-chart-header[data-v-5fc5ce27]{justify-content:space-between;gap:14px;flex-wrap:wrap}.chart-title[data-v-5fc5ce27]{display:flex;align-items:center;gap:8px}.trend-controls[data-v-5fc5ce27]{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.trend-calendar-btn[data-v-5fc5ce27]{width:32px;min-width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;color:var(--admin-container-color);background:var(--glass-bg);border:1px solid var(--glass-border)}.trend-calendar-btn[data-v-5fc5ce27]:hover{color:var(--el-color-primary);border-color:var(--glass-border);background:var(--glass-bg);box-shadow:none}.trend-date-dialog[data-v-5fc5ce27]{overflow:visible;max-width:calc(100vw - 32px);box-sizing:border-box}.trend-date-dialog[data-v-5fc5ce27] .el-dialog__body{overflow:visible;padding:16px 24px 24px}.trend-date-panel[data-v-5fc5ce27]{width:100%;max-width:100%;min-width:0;box-sizing:border-box;display:flex;justify-content:center;overflow:hidden}.trend-group-switch[data-v-5fc5ce27]{flex-shrink:0;height:32px;display:flex}.trend-group-switch[data-v-5fc5ce27] .el-radio-button__inner{height:32px;display:inline-flex;align-items:center;justify-content:center;line-height:1;padding:0 14px}.chart-content.trend-chart-content[data-v-5fc5ce27]{min-height:320px;padding:0;margin:0;min-width:0;max-width:100%;overflow:hidden}.line-chart-wrapper[data-v-5fc5ce27]{position:relative;width:100%;max-width:100%;min-width:0;height:320px;overflow:hidden}.line-chart-wrapper[data-v-5fc5ce27] canvas{display:block;width:100%!important;max-width:100%!important}.trend-empty-state[data-v-5fc5ce27]{height:320px}.chart-content[data-v-5fc5ce27]{min-height:160px;padding:15px;margin:-5px}.empty-state[data-v-5fc5ce27]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:160px;color:#59636e;font-size:14px}.empty-state .fa-icon[data-v-5fc5ce27]{font-size:32px;margin-bottom:10px}.stats-list[data-v-5fc5ce27]{display:flex;flex-direction:column;gap:16px}.stats-item[data-v-5fc5ce27]{display:flex;align-items:center;gap:12px}.stats-label[data-v-5fc5ce27]{min-width:80px;font-size:13px;color:#666;font-weight:500}.stats-bar[data-v-5fc5ce27]{flex:1;height:8px;background:#f0f0f0;border-radius:4px;overflow:hidden}.stats-fill[data-v-5fc5ce27]{height:100%;background:#6366f1;border-radius:4px;transition:width .6s ease}.type-fill[data-v-5fc5ce27]{background:#16a34a}.stats-value[data-v-5fc5ce27]{min-width:50px;text-align:right;font-size:13px;font-weight:600;color:var(--admin-container-color)}.pie-chart-container[data-v-5fc5ce27]{display:flex;align-items:center;gap:24px;flex-wrap:wrap;justify-content:center}.pie-chart-wrapper[data-v-5fc5ce27]{position:relative;width:180px;height:180px;flex-shrink:0;padding:15px;box-sizing:content-box;overflow:visible;isolation:isolate}.chart-center-text[data-v-5fc5ce27]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;z-index:-1}.center-value[data-v-5fc5ce27]{font-size:22px;font-weight:700;color:var(--admin-container-color);line-height:1.2}.center-label[data-v-5fc5ce27]{font-size:11px;color:#888;margin-top:2px}.chart-legend[data-v-5fc5ce27]{display:flex;flex-direction:column;gap:10px;flex:1;min-width:180px}.legend-item[data-v-5fc5ce27]{display:flex;align-items:center;gap:10px;padding:8px 12px;background:rgba(0,0,0,.03);border:1px solid var(--glass-border);border-radius:8px}.legend-item[data-v-5fc5ce27]:hover{background:rgba(0,0,0,.03)}html.dark .legend-item[data-v-5fc5ce27],html.dark .legend-item[data-v-5fc5ce27]:hover{background:hsla(0,0%,100%,.05)}.legend-color[data-v-5fc5ce27]{width:12px;height:12px;border-radius:3px;flex-shrink:0}.legend-label[data-v-5fc5ce27]{flex:1;font-size:13px;color:var(--admin-container-color);font-weight:500}.legend-value[data-v-5fc5ce27]{font-size:13px;font-weight:600;color:var(--admin-container-color);min-width:50px;text-align:right}.legend-percent[data-v-5fc5ce27]{font-size:12px;color:#888;min-width:40px;text-align:right}.actions-section[data-v-5fc5ce27]{margin-bottom:30px}.action-card[data-v-5fc5ce27]{border-radius:16px;padding:24px;border:1px solid var(--glass-border)}.action-card[data-v-5fc5ce27],.action-card[data-v-5fc5ce27]:hover{background:var(--glass-bg);box-shadow:var(--glass-shadow)}.action-header[data-v-5fc5ce27]{display:flex;align-items:center;gap:8px;margin-bottom:3px;font-size:16px;font-weight:600;color:var(--admin-container-color)}.action-header .fa-icon[data-v-5fc5ce27]{margin-right:10px;color:var(--admin-purple)}.action-content[data-v-5fc5ce27]{display:flex;justify-content:center;padding:20px 0}.action-buttons[data-v-5fc5ce27]{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;align-items:center;width:100%}.action-btn[data-v-5fc5ce27]{border-radius:10px;padding:12px 24px;margin-left:0;font-weight:500;font-size:14px;transition:background-color .2s ease,border-color .2s ease,color .2s ease;min-width:150px;width:150px;height:48px;box-shadow:none}@media (max-width:768px){.action-btn[data-v-5fc5ce27]{flex:1;width:auto;min-width:0;height:auto}}.action-btn .fa-icon[data-v-5fc5ce27]{margin-right:8px;font-size:14px}.rebuild-btn[data-v-5fc5ce27]{background:#fff;border-color:#e5e6eb;color:#2563eb}.rebuild-btn[data-v-5fc5ce27]:hover{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}.backup-btn[data-v-5fc5ce27]{background:#fff;border-color:#e5e6eb;color:#16a34a}.backup-btn[data-v-5fc5ce27]:hover{background:#f0fdf4;border-color:#86efac;color:#15803d}.restore-btn[data-v-5fc5ce27]{background:#fff;border-color:#e5e6eb;color:#d97706}.restore-btn[data-v-5fc5ce27]:hover{background:#fffbeb;border-color:#fcd34d;color:#b45309}.dark .rebuild-btn[data-v-5fc5ce27]{background:#1f1f22;border-color:#2a2a2e;color:#60a5fa}.dark .rebuild-btn[data-v-5fc5ce27]:hover{background:rgba(59,130,246,.12);border-color:rgba(96,165,250,.4);color:#93c5fd}.dark .backup-btn[data-v-5fc5ce27]{background:#1f1f22;border-color:#2a2a2e;color:#4ade80}.dark .backup-btn[data-v-5fc5ce27]:hover{background:rgba(34,197,94,.12);border-color:rgba(74,222,128,.4);color:#86efac}.dark .restore-btn[data-v-5fc5ce27]{background:#1f1f22;border-color:#2a2a2e;color:#fbbf24}.dark .restore-btn[data-v-5fc5ce27]:hover{background:rgba(251,191,36,.12);border-color:rgba(251,191,36,.4);color:#fcd34d}.restore-section[data-v-5fc5ce27]{display:inline-block}@media (max-width:768px){.action-buttons>.el-tooltip[data-v-5fc5ce27],.action-buttons>.restore-section[data-v-5fc5ce27],.restore-section[data-v-5fc5ce27]{flex:1;width:100%}.action-btn[data-v-5fc5ce27]{width:100%!important;padding:10px 20px!important;box-sizing:border-box}}.file-info-section[data-v-5fc5ce27]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;align-items:stretch}.file-info-card[data-v-5fc5ce27]{position:relative;background:var(--glass-bg);border-radius:16px;box-shadow:var(--glass-shadow);border:1px solid var(--glass-border);transition:all .3s ease;height:300px;overflow:hidden;cursor:pointer}.card-bg-media[data-v-5fc5ce27]{position:absolute;top:0;left:0;transition:transform .5s ease;display:block}.card-bg-media[data-v-5fc5ce27],.card-bg-media[data-v-5fc5ce27] .el-image__inner{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.card-bg-media[data-v-5fc5ce27] .el-image__wrapper{width:100%;height:100%}.card-bg-fallback[data-v-5fc5ce27]{position:absolute;top:0;left:0;width:100%;height:100%;background:var(--admin-dashborad-stats-bg-color);display:flex;align-items:center;justify-content:center}.fallback-icon[data-v-5fc5ce27]{font-size:80px;color:var(--el-text-color-placeholder);opacity:.3}.file-card-header[data-v-5fc5ce27]{position:absolute;top:0;left:0;right:0;display:flex;gap:8px;align-items:center;padding:12px 16px;font-size:14px;font-weight:600;color:#fff;background:linear-gradient(180deg,rgba(0,0,0,.5) 0,rgba(0,0,0,.2) 55%,transparent);z-index:2}.file-card-header .fa-icon[data-v-5fc5ce27]{color:#60a5fa}.file-card-header.warning .fa-icon[data-v-5fc5ce27]{color:#f59e0b}.info-card-footer[data-v-5fc5ce27]{position:absolute;bottom:0;left:0;right:0;padding:12px 16px;background:linear-gradient(0deg,rgba(0,0,0,.55) 0,rgba(0,0,0,.25) 50%,transparent);text-align:center;z-index:2}.info-card-footer .file-name[data-v-5fc5ce27]{font-size:14px;color:#fff;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.5)}.info-card-footer .file-meta[data-v-5fc5ce27]{font-size:12px;color:#fafafa;text-shadow:0 1px 2px rgba(0,0,0,.5)}@media (min-width:1200px){.file-info-card[data-v-5fc5ce27]{height:400px}}@media (min-width:1600px){.file-info-card[data-v-5fc5ce27]{height:450px}}.file-info-card[data-v-5fc5ce27]:hover{box-shadow:var(--glass-shadow)}.file-info-card:hover .card-bg-media[data-v-5fc5ce27]{transform:scale(1)}@media (max-width:768px){.status-panel[data-v-5fc5ce27]{padding:15px}.charts-section[data-v-5fc5ce27],.overview-cards[data-v-5fc5ce27]{grid-template-columns:1fr;gap:15px}.trend-chart-header[data-v-5fc5ce27]{align-items:stretch}.chart-title[data-v-5fc5ce27]{width:100%}.trend-controls[data-v-5fc5ce27]{width:100%;justify-content:stretch}.trend-date-dialog[data-v-5fc5ce27] .el-dialog__body{padding:12px 14px 18px}.trend-group-switch[data-v-5fc5ce27]{width:100%}.trend-group-switch[data-v-5fc5ce27] .el-radio-button{flex:1}.trend-group-switch[data-v-5fc5ce27] .el-radio-button__inner{width:100%;padding:0 10px}.line-chart-wrapper[data-v-5fc5ce27],.trend-empty-state[data-v-5fc5ce27]{height:280px}.file-info-section[data-v-5fc5ce27]{grid-template-columns:1fr;gap:15px}.card-icon[data-v-5fc5ce27]{width:50px;height:50px;font-size:20px;margin-right:15px}.card-value[data-v-5fc5ce27]{font-size:24px}.action-buttons[data-v-5fc5ce27]{flex-direction:column;gap:12px}.action-btn[data-v-5fc5ce27]{width:100%;min-width:unset}}.stats-fill[data-v-5fc5ce27]{animation:fillAnimation-5fc5ce27 1s ease-out}@keyframes fillAnimation-5fc5ce27{0%{width:0}}.progress-container[data-v-5fc5ce27]{width:100%;padding:20px;text-align:center}.progress-header[data-v-5fc5ce27]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.progress-phase[data-v-5fc5ce27]{font-size:16px;font-weight:600;color:var(--admin-container-color)}.progress-percentage[data-v-5fc5ce27]{font-size:18px;font-weight:700;color:var(--admin-purple)}.progress-bar[data-v-5fc5ce27]{margin-bottom:16px}.progress-bar[data-v-5fc5ce27] .el-progress-bar__outer{background-color:rgba(139,92,246,.1);border-radius:6px}.progress-bar[data-v-5fc5ce27] .el-progress-bar__inner{background:#6366f1;border-radius:6px;transition:width .3s ease}.progress-details[data-v-5fc5ce27]{display:flex;justify-content:center;gap:24px;margin-bottom:12px;flex-wrap:wrap}.progress-count[data-v-5fc5ce27],.progress-time[data-v-5fc5ce27]{display:flex;align-items:center;gap:6px;font-size:14px;color:#666}.progress-count .fa-icon[data-v-5fc5ce27],.progress-time .fa-icon[data-v-5fc5ce27]{color:var(--admin-purple);font-size:12px}.progress-message[data-v-5fc5ce27]{font-size:13px;color:#888;margin-bottom:16px;min-height:20px}.cancel-btn[data-v-5fc5ce27]{margin-top:12px;border-radius:10px;padding:10px 24px;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:#ef4444}.cancel-btn[data-v-5fc5ce27]:hover{background:rgba(239,68,68,.2);border-color:rgba(239,68,68,.5);box-shadow:none}.cancel-btn .fa-icon[data-v-5fc5ce27]{margin-right:8px}.error-container[data-v-5fc5ce27]{width:100%;padding:20px;display:flex;flex-direction:column;align-items:center;gap:16px;background:rgba(239,68,68,.05);border-radius:12px;border:1px solid rgba(239,68,68,.2)}.error-icon[data-v-5fc5ce27]{width:48px;height:48px;border-radius:50%;background:rgba(239,68,68,.1);display:flex;align-items:center;justify-content:center;color:#ef4444;font-size:24px}.error-content[data-v-5fc5ce27]{text-align:center}.error-message[data-v-5fc5ce27]{font-size:15px;font-weight:600;color:#ef4444;margin-bottom:8px}.error-suggestion[data-v-5fc5ce27]{font-size:13px;color:#666}.error-actions[data-v-5fc5ce27]{display:flex;gap:12px}.error-actions .el-button[data-v-5fc5ce27]{border-radius:10px;padding:10px 24px;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);min-width:100px}.error-actions .el-button--primary[data-v-5fc5ce27]{background:#6366f1;border:none;color:#fff}.error-actions .el-button--primary[data-v-5fc5ce27]:hover{background:#4f46e5;box-shadow:none}.error-actions .el-button--default[data-v-5fc5ce27]{background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.2);color:var(--el-text-color-regular)}.error-actions .el-button--default[data-v-5fc5ce27]:hover{background:hsla(0,0%,100%,.15);border-color:#4a4a52;box-shadow:none}.error-actions .fa-icon[data-v-5fc5ce27]{margin-right:8px}html.dark .progress-count[data-v-5fc5ce27],html.dark .progress-time[data-v-5fc5ce27]{color:#aaa}html.dark .progress-message[data-v-5fc5ce27]{color:#999}html.dark .error-container[data-v-5fc5ce27]{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.3)}html.dark .error-suggestion[data-v-5fc5ce27]{color:#aaa}@media (max-width:768px){.error-container[data-v-5fc5ce27],.progress-container[data-v-5fc5ce27]{padding:16px}.progress-header[data-v-5fc5ce27]{flex-direction:column;gap:8px;text-align:center}.progress-details[data-v-5fc5ce27]{flex-direction:column;gap:8px}.error-actions[data-v-5fc5ce27]{flex-direction:column;width:100%}.error-actions .el-button[data-v-5fc5ce27]{width:100%;margin:0}}.el-descriptions{--el-descriptions-table-border:1px solid var(--el-border-color-lighter);--el-descriptions-item-bordered-label-background:var(--el-fill-color-light);box-sizing:border-box;color:var(--el-text-color-primary);font-size:var(--el-font-size-base)}.el-descriptions__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.el-descriptions__title{color:var(--el-text-color-primary);font-size:16px;font-weight:700}.el-descriptions__body{background-color:var(--el-fill-color-blank)}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions__cell{box-sizing:border-box;font-size:14px;line-height:23px;text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-right{text-align:right}.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{border:var(--el-descriptions-table-border);padding:8px 11px}.el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:12px}.el-descriptions--large{font-size:14px}.el-descriptions--large .el-descriptions__header{margin-bottom:20px}.el-descriptions--large .el-descriptions__header .el-descriptions__title{font-size:16px}.el-descriptions--large .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:14px}.el-descriptions--large .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:12px 15px}.el-descriptions--large .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:16px}.el-descriptions--small{font-size:12px}.el-descriptions--small .el-descriptions__header{margin-bottom:12px}.el-descriptions--small .el-descriptions__header .el-descriptions__title{font-size:14px}.el-descriptions--small .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:12px}.el-descriptions--small .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:4px 7px}.el-descriptions--small .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:8px}.el-descriptions__label.el-descriptions__cell.is-bordered-label{background:var(--el-descriptions-item-bordered-label-background);color:var(--el-text-color-regular);font-weight:700}.el-descriptions__label:not(.is-bordered-label){color:var(--el-text-color-primary);margin-right:16px}.el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:6px}.el-descriptions__content.el-descriptions__cell.is-bordered-content{color:var(--el-text-color-primary)}.el-descriptions__content:not(.is-bordered-label){color:var(--el-text-color-regular)}.el-descriptions--large .el-descriptions__label:not(.is-bordered-label){margin-right:16px}.el-descriptions--large .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:8px}.el-descriptions--small .el-descriptions__label:not(.is-bordered-label){margin-right:12px}.el-descriptions--small .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:4px}.el-form{--el-form-label-font-size:var(--el-font-size-base);--el-form-inline-content-width:220px}.el-form--inline .el-form-item{display:inline-flex;margin-right:32px;vertical-align:middle}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--label-left .el-form-item__label{justify-content:flex-start;text-align:left}.el-form-item--label-right .el-form-item__label{justify-content:flex-end;text-align:right}.el-form-item--label-top{display:block}.el-form-item--label-top .el-form-item__label{display:block;height:auto;line-height:22px;margin-bottom:8px;padding-right:0;text-align:left;width:fit-content}.el-form-item__label-wrap{display:flex}.el-form-item__label{align-items:flex-start;box-sizing:border-box;color:var(--el-text-color-regular);display:inline-flex;flex:0 0 auto;font-size:var(--el-form-label-font-size);height:32px;line-height:32px;padding:0 12px 0 0}.el-form-item__content{align-items:center;display:flex;flex:1;flex-wrap:wrap;font-size:var(--font-size);line-height:32px;min-width:0;position:relative}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;left:0;line-height:1;padding-top:2px;position:absolute;top:100%}.el-form-item__error--inline{display:inline-block;left:auto;margin-left:10px;position:relative;top:auto}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{color:var(--el-color-danger);content:"*";margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{color:var(--el-color-danger);content:"*";margin-left:4px}.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-select__wrapper,.el-form-item.is-error .el-form-item__content .el-select__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-textarea__inner,.el-form-item.is-error .el-form-item__content .el-textarea__inner.is-focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner:focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__wrapper{box-shadow:inset 0 0 0 1px transparent}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__validateIcon,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__validateIcon{display:none}.el-form-item.is-error .el-form-item__content .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon,.el-input-number{display:inline-flex}.el-input-number{line-height:30px;position:relative;vertical-align:middle;width:150px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;line-height:1;text-align:center}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-input-number.is-left .el-input__inner{text-align:left}.el-input-number.is-right .el-input__inner{text-align:right}.el-input-number.is-center .el-input__inner{text-align:center}.el-input-number__decrease,.el-input-number__increase{align-items:center;background:var(--el-fill-color-light);bottom:1px;color:var(--el-text-color-regular);cursor:pointer;display:flex;font-size:13px;height:auto;justify-content:center;position:absolute;top:1px;-webkit-user-select:none;user-select:none;width:32px;z-index:1}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input__wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{border-left:var(--el-border);border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;right:1px}.el-input-number__decrease{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border);left:1px}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{line-height:38px;width:180px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{font-size:14px;width:40px}.el-input-number--large.is-controls-right .el-input--large .el-input__wrapper{padding-right:47px}.el-input-number--large .el-input--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{line-height:22px;width:120px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{font-size:12px;width:24px}.el-input-number--small.is-controls-right .el-input--small .el-input__wrapper{padding-right:31px}.el-input-number--small .el-input--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-bottom:var(--el-border);border-radius:0 var(--el-border-radius-base) 0 0;bottom:auto;left:auto}.el-input-number.is-controls-right .el-input-number__decrease{border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0;border-right:none;left:auto;right:1px;top:auto}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.channel-icon-wrapper[data-v-33933ada]{display:inline-flex;align-items:center;justify-content:center;line-height:1}.channel-icon-wrapper[data-v-33933ada] svg,.channel-svg-icon[data-v-33933ada]{width:1em;height:1em;fill:currentColor}.custom-select[data-v-56d23a4c]{position:relative}.custom-select-trigger[data-v-56d23a4c]{display:flex;align-items:center;justify-content:space-between;height:32px;padding:0 12px;background:hsla(0,0%,100%,.72);border:1px solid #d9dce2;border-radius:8px;cursor:pointer;transition:background-color .2s ease,border-color .2s ease;box-sizing:border-box}html.dark .custom-select-trigger[data-v-56d23a4c]{background:rgba(22,22,24,.75);border:1px solid #34343a}.custom-select-trigger[data-v-56d23a4c]:hover{background:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark .custom-select-trigger[data-v-56d23a4c]:hover{background:rgba(22,22,24,.88);border-color:#4a4a52}.custom-select.is-open .custom-select-trigger[data-v-56d23a4c]{border-color:var(--el-color-primary)}.custom-select-value[data-v-56d23a4c]{font-size:14px;color:var(--el-text-color-regular);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-select-arrow[data-v-56d23a4c],.custom-select-value.is-placeholder[data-v-56d23a4c]{color:var(--el-text-color-placeholder)}.custom-select-arrow[data-v-56d23a4c]{font-size:12px;transition:transform .2s ease;flex-shrink:0;margin-left:8px}.custom-select.is-open .custom-select-arrow[data-v-56d23a4c]{transform:rotate(180deg)}.custom-select-dropdown[data-v-56d23a4c]{position:absolute;top:calc(100% + 4px);left:0;width:100%;background:hsla(0,0%,100%,.88);border:1px solid #d9dce2;border-radius:8px;box-shadow:none;z-index:2000;overflow:hidden}html.dark .custom-select-dropdown[data-v-56d23a4c]{background:rgba(22,22,24,.9);border:1px solid #34343a}.custom-select-option[data-v-56d23a4c]{display:flex;align-items:center;gap:8px;height:34px;padding:0 12px;font-size:14px;color:var(--el-text-color-regular);cursor:pointer;transition:background .2s ease}.custom-select-option[data-v-56d23a4c]:hover{background:rgba(0,0,0,.04)}html.dark .custom-select-option[data-v-56d23a4c]:hover{background:hsla(0,0%,100%,.08);color:var(--el-text-color-primary)}.custom-select-option.is-selected[data-v-56d23a4c]{color:var(--el-color-primary);font-weight:500}html.dark .custom-select-option.is-selected[data-v-56d23a4c]{color:var(--el-color-primary-light-8)}html.dark .custom-select-option.is-selected[data-v-56d23a4c]:hover{background:rgba(74,93,155,.38);color:#fff}.option-icon[data-v-56d23a4c]{width:16px;height:16px;flex-shrink:0}.dropdown-fade-enter-active[data-v-56d23a4c],.dropdown-fade-leave-active[data-v-56d23a4c]{transition:opacity .2s ease,transform .2s ease}.dropdown-fade-enter-from[data-v-56d23a4c],.dropdown-fade-leave-to[data-v-56d23a4c]{opacity:0;transform:translateY(-8px)}.upload-settings[data-v-290ee17a]{padding:20px;min-height:500px;overflow-x:hidden}.page-header[data-v-290ee17a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:12px}.first-title[data-v-290ee17a]{display:flex;align-items:center;gap:8px;margin:0;font-size:20px;font-weight:600}.help-icon[data-v-290ee17a]{cursor:pointer;color:var(--el-text-color-secondary);font-size:14px}.inline-warning-icon[data-v-290ee17a]{color:var(--el-text-color-secondary);cursor:pointer;font-size:13px;margin-left:6px;transition:color .2s}.inline-warning-icon[data-v-290ee17a]:hover{color:var(--el-color-primary)}.add-btn[data-v-290ee17a]{border-radius:8px;background-color:rgba(37,99,235,.9)!important;border-color:rgba(37,99,235,.9)!important;color:#fff!important;transition:background-color .2s ease,border-color .2s ease}html.dark .add-btn[data-v-290ee17a]{background-color:rgba(59,130,246,.9)!important;border-color:rgba(59,130,246,.9)!important}.add-btn[data-v-290ee17a]:hover{background-color:rgba(37,99,235,.78)!important;border-color:rgba(37,99,235,.78)!important}html.dark .add-btn[data-v-290ee17a]:hover{background-color:rgba(59,130,246,.78)!important;border-color:rgba(59,130,246,.78)!important}.header-actions[data-v-290ee17a]{display:flex;gap:12px}.header-actions[data-v-290ee17a] .el-button{border-radius:8px}.channel-group[data-v-290ee17a]{margin-bottom:32px;background:var(--glass-bg);border-radius:16px;border:1px solid var(--glass-border);overflow:hidden;box-shadow:var(--glass-shadow)}.group-header[data-v-290ee17a]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--glass-header-bg);border-bottom:1px solid var(--glass-header-border)}.group-title[data-v-290ee17a]{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;color:var(--el-text-color-primary)}.group-icon[data-v-290ee17a]{font-size:20px;color:var(--el-color-primary)}.channel-count[data-v-290ee17a]{font-size:12px}.load-balance-switch[data-v-290ee17a]{display:flex;align-items:center;gap:8px}.switch-label[data-v-290ee17a]{font-size:13px;color:var(--el-text-color-secondary)}.channel-cards[data-v-290ee17a]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;padding:20px}.channel-card[data-v-290ee17a]{background:var(--glass-bg);border-radius:10px;border:1px solid var(--glass-border);overflow:hidden;position:relative;display:flex;flex-direction:column;box-shadow:var(--glass-shadow)}.card-glow[data-v-290ee17a]{position:absolute;width:150px;height:150px;border-radius:50%;pointer-events:none;opacity:0;transform:translate(-50%,-50%);transition:opacity .3s ease;z-index:0;background:radial-gradient(circle,rgba(56,189,248,.15) 0,transparent 70%)}.channel-card.telegram .card-glow[data-v-290ee17a]{background:radial-gradient(circle,rgba(84,169,235,.2) 0,transparent 70%)}.channel-card.cfr2 .card-glow[data-v-290ee17a]{background:radial-gradient(circle,rgba(246,130,31,.2) 0,transparent 70%)}.channel-card.s3 .card-glow[data-v-290ee17a]{background:radial-gradient(circle,rgba(86,154,49,.2) 0,transparent 70%)}.channel-card.discord .card-glow[data-v-290ee17a]{background:radial-gradient(circle,rgba(88,101,242,.2) 0,transparent 70%)}.channel-card.huggingface .card-glow[data-v-290ee17a]{background:radial-gradient(circle,rgba(255,210,30,.2) 0,transparent 70%)}.channel-card.webdav .card-glow[data-v-290ee17a]{background:radial-gradient(circle,rgba(20,184,166,.2) 0,transparent 70%)}.channel-card[data-v-290ee17a]:hover{border-color:var(--glass-border);box-shadow:var(--glass-shadow);background:var(--glass-bg)}.channel-card.disabled[data-v-290ee17a]{opacity:.6;background:var(--el-fill-color-lighter)}.card-header[data-v-290ee17a]{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:var(--glass-header-bg);border-bottom:1px solid var(--glass-header-border)}.card-title[data-v-290ee17a]{display:flex;align-items:center;gap:8px}.channel-name[data-v-290ee17a]{font-weight:600;font-size:14px;color:var(--el-text-color-primary)}.card-body[data-v-290ee17a]{padding:14px 16px;min-height:60px;text-align:left}.card-info[data-v-290ee17a]{display:flex;flex-direction:column;gap:8px;align-items:flex-start;width:100%;overflow:hidden}.info-item[data-v-290ee17a]{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--el-text-color-secondary);min-width:0;width:100%;max-width:100%}.info-text[data-v-290ee17a]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;text-align:left}.info-icon[data-v-290ee17a]{width:14px;flex-shrink:0;color:var(--el-text-color-placeholder)}.quota-mini[data-v-290ee17a]{margin-top:12px;padding-top:12px;border-top:1px dashed var(--el-border-color-lighter)}.quota-mini[data-v-290ee17a] .el-progress{margin-bottom:4px}.quota-text[data-v-290ee17a]{font-size:11px;color:var(--el-text-color-secondary)}.card-actions[data-v-290ee17a]{display:flex;justify-content:flex-end;gap:4px;padding:10px 16px;border-top:1px solid var(--glass-header-border);background:var(--glass-header-bg);margin-top:auto}.empty-tip[data-v-290ee17a]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:var(--el-text-color-placeholder);gap:12px}.empty-icon[data-v-290ee17a]{font-size:32px}.channel-warning[data-v-290ee17a]{margin:0 20px 16px;padding:10px 14px;font-size:13px;color:var(--el-color-warning);background:var(--el-color-warning-light-9);border-radius:6px;border-left:3px solid var(--el-color-warning)}.channel-type-option[data-v-290ee17a]{display:inline-flex;align-items:center;gap:8px;line-height:1}.select-option-icon[data-v-290ee17a]{width:16px;height:16px;font-size:16px;text-align:center}.form-warning[data-v-290ee17a]{padding:10px 14px;font-size:13px;color:var(--el-color-warning);background:var(--el-color-warning-light-9);border-radius:6px;border-left:3px solid var(--el-color-warning);margin-top:8px}.quota-status[data-v-290ee17a]{width:100%}.quota-status[data-v-290ee17a] .el-progress{margin-bottom:8px}.quota-info[data-v-290ee17a]{font-size:13px;color:var(--el-text-color-secondary);padding:8px 12px;background:var(--el-fill-color);border:1px solid var(--glass-border);border-radius:6px}.quota-info.quota-warning[data-v-290ee17a]{color:var(--el-color-danger);background:var(--el-color-danger-light-9);font-weight:500}.quota-label[data-v-290ee17a]{display:inline-flex;align-items:center;gap:4px}.refresh-btn[data-v-290ee17a]{padding:0!important;margin:0!important;height:auto!important;min-height:auto!important;vertical-align:middle}.refresh-btn .fa-spin[data-v-290ee17a]{animation:fa-spin-290ee17a 1s linear infinite}@keyframes fa-spin-290ee17a{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:768px){.upload-settings[data-v-290ee17a]{padding:12px}.page-header[data-v-290ee17a]{flex-direction:column;align-items:flex-start}.channel-cards[data-v-290ee17a]{grid-template-columns:1fr;padding:12px}.group-header[data-v-290ee17a]{flex-direction:column;gap:12px;align-items:flex-start}}[data-v-290ee17a] .channel-dialog{width:600px!important;max-width:90vw!important}@media (max-width:768px){[data-v-290ee17a] .channel-dialog{width:90vw!important}}.el-checkbox-group{font-size:0;line-height:0}.floating-save-btn[data-v-a230355c]{position:fixed;right:var(--floating-btn-right,24px);bottom:var(--floating-btn-bottom,24px);display:flex;align-items:center;gap:6px;padding:10px 18px;background:var(--floating-btn-bg);color:var(--floating-btn-color);border-radius:50px;cursor:pointer;box-shadow:var(--floating-btn-shadow);transition:all .3s cubic-bezier(.4,0,.2,1);z-index:100;font-weight:500;font-size:13px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.floating-save-btn[data-v-a230355c]:hover{box-shadow:var(--floating-btn-shadow-hover)}.floating-save-btn[data-v-a230355c]:active{transform:translateY(-1px);box-shadow:var(--floating-btn-shadow)}.floating-save-btn.is-loading[data-v-a230355c]{cursor:not-allowed;opacity:.8}.floating-save-btn.is-loading[data-v-a230355c]:hover{transform:none}.floating-save-btn svg[data-v-a230355c]{font-size:14px}.fade-up-enter-active[data-v-a230355c]{transition:all .3s ease-out}.fade-up-leave-active[data-v-a230355c]{transition:all .2s ease-in}.fade-up-enter-from[data-v-a230355c]{opacity:0;transform:translateY(20px)}.fade-up-leave-to[data-v-a230355c]{opacity:0;transform:translateY(10px)}@media (max-width:768px){.floating-save-btn[data-v-a230355c]{right:16px;bottom:16px;padding:10px 16px;font-size:12px}.floating-save-btn svg[data-v-a230355c]{font-size:12px}}@media (max-width:480px){.floating-save-btn[data-v-a230355c]{right:12px;bottom:12px;padding:12px;border-radius:50%}.save-text[data-v-a230355c]{display:none}.floating-save-btn svg[data-v-a230355c]{font-size:16px}}.security-settings[data-v-d23348da]{padding:20px;min-height:500px}.first-settings[data-v-d23348da]{margin-bottom:40px}.first-title[data-v-d23348da]{display:flex;align-items:center;gap:8px;margin-bottom:20px;padding-bottom:12px;border-bottom:2px solid var(--el-color-primary-light-7)}.second-title[data-v-d23348da]{display:flex;align-items:center;gap:8px;text-align:start;margin-left:0;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--el-border-color-lighter)}.first-settings[data-v-d23348da] .el-form{padding:20px 24px;background:var(--glass-bg);border-radius:16px;border:1px solid var(--glass-border);margin-bottom:20px;box-shadow:var(--glass-shadow)}.first-settings[data-v-d23348da] .el-form-item{margin-bottom:20px;display:flex;flex-direction:column;align-items:flex-start}.first-settings[data-v-d23348da] .el-form-item:last-child{margin-bottom:0}.first-settings[data-v-d23348da] .el-form-item__label{text-align:left;padding-bottom:8px;font-weight:500;color:var(--el-text-color-primary);width:auto!important;display:flex;align-items:center;gap:5px}.first-settings[data-v-d23348da] .el-form-item__content{width:100%;max-width:400px;margin-left:0!important}.first-settings[data-v-d23348da] .el-input,.first-settings[data-v-d23348da] .el-select{width:100%}.first-settings[data-v-d23348da] .el-switch{--el-switch-on-color:var(--el-color-primary)}.form-item-hint[data-v-d23348da]{display:inline-block;margin-left:8px;font-size:14px;color:var(--el-text-color-regular);line-height:32px;vertical-align:middle}.query-param-list[data-v-d23348da]{display:flex;flex-direction:column;gap:10px;width:100%}.query-param-row[data-v-d23348da]{display:grid;grid-template-columns:minmax(120px,1fr) minmax(160px,1.4fr) auto;gap:8px;align-items:center;width:100%}.response-field-row[data-v-d23348da]{display:grid;grid-template-columns:minmax(180px,1fr) auto auto auto;gap:4px;align-items:center;width:100%}.response-field-row[data-v-d23348da] .el-button+.el-button{margin-left:0}.token-title[data-v-d23348da]{display:flex;align-items:center;justify-content:space-between}.token-actions[data-v-d23348da]{margin-left:5px}.token-table-container[data-v-d23348da]{display:flex;justify-content:center;margin-top:20px;width:100%;overflow:hidden}.token-table[data-v-d23348da]{width:100%;border-radius:12px!important;overflow:hidden;box-shadow:var(--glass-shadow);background:var(--glass-bg);border:1px solid var(--glass-border)}.token-table[data-v-d23348da] .el-table__header-wrapper{border-radius:12px 12px 0 0}.token-table[data-v-d23348da] .el-table__body-wrapper{border-radius:0 0 12px 12px;background:transparent}.token-table[data-v-d23348da] .el-table{border-radius:12px;background:transparent}.token-table[data-v-d23348da] .el-table__header{background-color:rgba(0,0,0,.04)}.token-table[data-v-d23348da] .el-table th{background-color:rgba(0,0,0,.04)!important;border-bottom:1px solid #d9dce2;text-align:center}.token-table[data-v-d23348da] .el-table td{background-color:transparent!important;border-bottom:1px solid #d9dce2}html.dark .token-table[data-v-d23348da] .el-table th{background-color:hsla(0,0%,100%,.05)!important;border-bottom:1px solid #34343a}html.dark .token-table[data-v-d23348da] .el-table td{border-bottom:1px solid #34343a}.token-table[data-v-d23348da] .el-table__row:hover td{background-color:rgba(0,0,0,.03)!important}html.dark .token-table[data-v-d23348da] .el-table__row:hover td{background-color:hsla(0,0%,100%,.05)!important}.token-table[data-v-d23348da] .el-table__row:last-child td{border-bottom:none}.table-cell-content[data-v-d23348da]{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:4px;padding:8px 4px;min-height:40px;text-align:center}.action-buttons[data-v-d23348da]{gap:8px}.action-button[data-v-d23348da]{margin-left:0}.permission-tag[data-v-d23348da]{margin:2px!important}.token-display[data-v-d23348da]{font-family:Courier New,monospace;background-color:var(--text-bg-color);padding:4px 8px;border-radius:6px;font-size:12px;word-break:break-all;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis}@media (max-width:768px){.security-settings[data-v-d23348da]{padding:15px;padding-bottom:80px}.first-settings[data-v-d23348da] .el-form{padding:12px 15px}.first-settings[data-v-d23348da] .el-form-item__content{max-width:100%}.query-param-row[data-v-d23348da]{grid-template-columns:1fr}.response-field-row[data-v-d23348da]{grid-template-columns:1fr auto auto auto}.token-table-container[data-v-d23348da]{padding:0 10px}.table-cell-content[data-v-d23348da]{padding:6px 2px;min-height:36px}.token-display[data-v-d23348da]{font-size:11px;padding:3px 6px}}@media (max-width:480px){.token-table-container[data-v-d23348da]{padding:0 5px}.table-cell-content[data-v-d23348da]{padding:4px 2px;min-height:32px;font-size:12px}.action-buttons .el-button[data-v-d23348da]{padding:4px 8px;font-size:12px}.permission-tag[data-v-d23348da]{font-size:11px;padding:0 4px;height:20px;line-height:20px}}.token-result[data-v-d23348da]{padding:10px 0}.token-result .el-form-item[data-v-d23348da]{margin-bottom:20px}.dialog-footer[data-v-d23348da]{display:flex;justify-content:flex-end;gap:10px}.fade-slide-enter-active[data-v-d23348da],.fade-slide-leave-active[data-v-d23348da]{transition:all .3s ease-in-out}.fade-slide-enter-from[data-v-d23348da],.fade-slide-leave-to[data-v-d23348da]{opacity:0;transform:translateY(-10px)}.fade-slide-enter-to[data-v-d23348da],.fade-slide-leave-from[data-v-d23348da]{opacity:1;transform:translateY(0)}[data-v-d23348da] .el-dialog{border-radius:12px;background-color:var(--dialog-bg-color);border:1px solid var(--glass-border);box-shadow:var(--dialog-box-shadow)}.page-settings[data-v-65cb1659]{padding:20px;min-height:500px}.first-settings[data-v-65cb1659]{margin-bottom:40px}.first-title[data-v-65cb1659]{display:flex;align-items:center;gap:8px;margin-bottom:20px;padding-bottom:12px;border-bottom:2px solid var(--el-color-primary-light-7)}.second-title[data-v-65cb1659]{display:flex;align-items:center;gap:8px;text-align:start;margin-left:0;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--el-border-color-lighter)}.first-settings[data-v-65cb1659] .el-form{padding:20px 24px;background:var(--glass-bg);border-radius:16px;border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.first-settings[data-v-65cb1659] .el-form-item{margin-bottom:20px;display:flex;flex-direction:column;align-items:flex-start}.first-settings[data-v-65cb1659] .el-form-item:last-child{margin-bottom:0}.first-settings[data-v-65cb1659] .el-form-item__label{text-align:left;padding-bottom:8px;font-weight:500;color:var(--el-text-color-primary);width:auto!important;display:flex;align-items:center;gap:5px}.first-settings[data-v-65cb1659] .el-form-item__content{width:100%;max-width:400px;margin-left:0!important}.first-settings[data-v-65cb1659] .el-form-item:has(.el-textarea) .el-form-item__content{max-width:600px}.first-settings[data-v-65cb1659] .el-input,.first-settings[data-v-65cb1659] .el-select{width:100%}.first-settings[data-v-65cb1659] .el-switch{--el-switch-on-color:var(--el-color-primary)}.announcement-refresh-option[data-v-65cb1659]{width:100%;margin-top:10px;display:flex;justify-content:flex-start}.first-settings[data-v-65cb1659] .el-form-item:has(.announcement-refresh-option) .el-form-item__content{flex-direction:column;align-items:flex-start}@media (max-width:768px){.page-settings[data-v-65cb1659]{padding:15px;padding-bottom:80px}.first-settings[data-v-65cb1659] .el-form{padding:12px 15px}.first-settings[data-v-65cb1659] .el-form-item__content{max-width:100%}}.others-settings[data-v-3724133b]{padding:20px;min-height:500px}.first-settings[data-v-3724133b]{margin-bottom:40px}.first-title[data-v-3724133b]{display:flex;align-items:center;gap:8px;margin-bottom:20px;padding-bottom:12px;border-bottom:2px solid var(--el-color-primary-light-7)}.second-title[data-v-3724133b]{display:flex;align-items:center;gap:8px;text-align:start;margin-left:0;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--el-border-color-lighter)}.first-settings[data-v-3724133b] .el-form{padding:20px 24px;background:var(--glass-bg);border-radius:16px;border:1px solid var(--glass-border);margin-bottom:20px;box-shadow:var(--glass-shadow)}.first-settings[data-v-3724133b] .el-form-item{margin-bottom:20px;display:flex;flex-direction:column;align-items:flex-start}.first-settings[data-v-3724133b] .el-form-item:last-child{margin-bottom:0}.first-settings[data-v-3724133b] .el-form-item__label{text-align:left;padding-bottom:8px;font-weight:500;color:var(--el-text-color-primary);width:auto!important;display:flex;align-items:center;gap:5px}.first-settings[data-v-3724133b] .el-form-item__content{width:100%;max-width:400px;margin-left:0!important}.first-settings[data-v-3724133b] .el-input{width:100%}.first-settings[data-v-3724133b] .el-switch{--el-switch-on-color:var(--el-color-primary)}@media (max-width:768px){.others-settings[data-v-3724133b]{padding:15px;padding-bottom:80px}.first-settings[data-v-3724133b] .el-form{padding:12px 15px}.first-settings[data-v-3724133b] .el-form-item__content{max-width:100%}}.container[data-v-036a2d40]{background:var(--admin-container-bg-color);min-height:100vh;font-family:Arial,sans-serif;color:var(--admin-container-color);margin:0;padding:0;overflow-x:hidden}.header-content[data-v-036a2d40]{display:flex;justify-content:space-between;align-items:center;padding:10px 24px;background:hsla(0,0%,100%,.72);border:1px solid #d9dce2;box-shadow:none;transition:background-color .25s ease,border-color .25s ease,box-shadow .25s ease;border-radius:16px;position:fixed;top:8px;left:50%;transform:translateX(-50%);width:calc(95% - 16px);z-index:2001;min-height:45px}html.dark .header-content[data-v-036a2d40]{background:rgba(22,22,24,.75);border:1px solid #34343a;box-shadow:none}@media (max-width:768px){.header-content[data-v-036a2d40]{flex-direction:column;top:6px;width:calc(100% - 32px);border-radius:14px;padding:6px 12px;gap:4px}.header-icon[data-v-036a2d40]{font-size:.95em}}.header-content[data-v-036a2d40]:hover{background:hsla(0,0%,100%,.72);box-shadow:none;transform:translateX(-50%)}html.dark .header-content[data-v-036a2d40]:hover{background:rgba(22,22,24,.75);box-shadow:none}.header-icon[data-v-036a2d40]{font-size:1.5em;cursor:pointer;transition:all .3s ease;color:var(--admin-container-color);outline:none}.header-icon[data-v-036a2d40]:hover{color:#b39ddb;transform:scale(1.2)}.header-action[data-v-036a2d40]{display:flex;gap:10px}.main-container[data-v-036a2d40]{margin-top:60px;transition:margin-left .3s ease,width .3s ease;width:calc(100% - 280px);margin-left:170px}.main-container.collapsed[data-v-036a2d40]{width:calc(100% - 150px);margin-left:80px}@media (max-width:768px){.main-container.collapsed[data-v-036a2d40],.main-container[data-v-036a2d40]{width:auto;margin-left:65px;margin-right:15px;padding:0;min-height:calc(100vh - 60px);box-sizing:border-box}} \ No newline at end of file diff --git a/frontend-dist/css/888.793f4b66.css.gz b/frontend-dist/css/888.793f4b66.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..dc56da437b3032731c196ed8ecfd3bd597f0e885 GIT binary patch literal 11138 zcmV-|D}B@-iwFP!000023e|mUkK;I!;9t>Ap@8zXQVn5xN`*a`nfkuJ0 zXs5Ph$s@^`Rh{tt_5)wyD=1P<_h1Iy)04KzU@#br2nK@@^R6uL0kz4ose4q`xc#pJ z^(c8uaIs!(w)ye*kD~0Z75cS1Rru$g{3j{O79abvsdvYwx?Sr1wdqRw`BeVI#lCN@ zyH)yiU*S`~+gyL{`xe#RscA1e`d5W|{2$+vRr+TFQpyQ8o+uZ76_u5tHTNki_P~F;ZS$_RFi#pWb zTGZoj*?c+MC-3<1qwJI54u_^KaJ$Q{KclXx$|CwwY>Ok#`435pit^U&vNb`n`I&UD zsA%4IbyH(DSw;>zmuSA|B8)m5%a+4;`{oU|r>c41y_Q9R>-*eVk$KrA$EK>#wZnzI zJd9qe_4VidwZByJ0<}M)dBD0V#BI+9^exY0^6xU9zpNk%ES8Jq0-4jj2Mo1)C9{kt zp~w1sSfgEVeM_pc>+K0$QBjojnQ$C$SN8bgVQ5s9=bAR`c1K+IxZVHvt?SFvFNz$l zd)hAPderuNF$Ce6Nd70?zvA-z+V7URV2JV$(vGvsq4{ZY4q@-(t?in2cWp{KuEIES zZK8S3x#!qaO*?$t(~rA1)P746R9wnh5;LK{#a|YS#cY2@*IjC}nVUX>@&v#tHEyU#%DT0OIx_?8QtYGOm&y z|LhrYlWSXEQ2T3`!m+7cdvi(FnktDEcNB_GP`f{+xY;C?{$< z5O$WmvzL?z_6PN2DwV>>R$VN$tx7)L?{i!w*S0ygxa&RueWB@-s;qIswLvBgqZU_) z2p|pE_wR%mKiop5#phdv+S%UNM)Sk;ap(I;r__JACBSz(*0}oYm{IP$-ZC@Ty z#rMUfEQ(4;HA#+Td#rG*e_5dJ_0XWU7yy8PB5wnA~0KtY6mFZFQKC?Wte`zWkyazL%Y1DuOm z%2cVabi`)^Fr{%>lf7ueodAjK-R^cg;;ysceE(k7wI*f~W2dl9!u!vH0K;3(1Lz&K zby=Su#*p_913ZSI6A=D+#8%di^%=LJkjIdOAW^=6?P6;BoZIGom)&jTn_EAM zJO{)^t_X+Wc4pby#Ny)Ol2}`&{bNb#kbOCUw!&5%!;6TXJr`~c9Rf)>x~ZsuOM!#u znp-8d4d|N74xI?W#nI<4f7yd_OGSDTtrB|N?{Rx6Yt-WpRF@Y-QP#eX7F|@-|kwYcu1 zRQt3_znUFV^NW`;2s6d2!BzS^U*Su{{?9ur-|q?GY=y4s*MzK$1_O0nw8p#}J3?QH%8N^-NH2nwN@Ym*gyC#>WKvi-$!{Xpjq2rI)-fBOb zh32dK{EdG}Ef{4v#rI_$NsDpV_(?&WSmcir>iQW!9*I5`MsFB^)!h0}V9}{*-%(q1 zDj6kCgowj5?ogZN)_?Sk+DM?Mo+k!uAbQRqnJEB*J^7C_$WfVEwjb@tHfxeF74c#D zPjHnKC90Y;TX**NV0M4qtKV{ih#uiqZ?D>KHj~I{YVD*WOi_N~JH2gR_7zU#<{UZ< zUnLc4&sgupWqx9uHPj~bCsjM?kd{HORRw8kdG>X3Kpj@4sBCA@ z)Ks`uJN4Ju9wM=wp@GZTh4{&Ol9=i^g zg1^c7d&Q}FtWt(agzy7g^H!tCn!nPE7~LhReBJo0w2qR=m{lXC(-qgaZ;5#N;9D!f zZ@BI|DQVnYlyS}8gMcMWS)pH|nJHhVh*iNgsKCs)x|vYD|c&*{O1Z0e+d22JVy`{WUxA-jUK3?bwAHS)>JuhEllf14GK_vozXno08u6K zOT#58e;OqtGgji!CL%CHA~WLeG@>_@&D7y5YEj<+yNSD_GWQNlNp&f zDn7@$hFdT+qz1luS9o0yc8PV?&z(%31AAhK5*Veb;QaAMjQ4|_{GLYcuoDtqU~QZM zEyBMRUJBap82>2Hug9cwi?0~<-(ILFzJ~zS_XF7>!JBuTf{`xPpiy^4wLLOt{oK3{ z&-FbC((8k4XT4p4e%Z}j4wl76*?SwOY7t!D;p!w08K$+RftLWLfcy6m zL9ASHnL<~IhYFB{91zM-h7i~{h!I{EFNe*B9=gdYG|ZDq{~Y(|Gq1SPT6$T=Jul_} z?~rT%9rEh4PSi{suB(SD1NBF4oP)mwx%^oa4lt~JeR3)*<)W?rF>?)Rj^%7P7IWa~ zlu$|IWIjO58e^GDIWq+=B)tRp1YBv02?nq0LSFB3ck&{&{IHg?4EBY)0u(4h!ygH| zwGx_tDT3R~R^0_v)rV#d46RCG3X|{v2OCVegc|cY?$Rh*k&EhR>%xJ?F23U9j{%*; z@8|`g6lF)8c`h(;oDAosx*fCB>B&8soLc$dOTUyo8Q2Mh&8=r$f7(dj|ZCoI-6v1_2IT!2lY6%GjMWsF#X7B$e#U z8RW62k<~E`uZ}um1b@p$G5F0#-GIr+yVii+KW?-c1B|meWRebV=tc%~8XHav*=2K# zOI|H%6C8x!-TGrnEW6$&)ToPiD%AxaPNtI*!zwIB;wqxAB+{=?Sgre+fX&OP_6BI^ z63sLIEGj8$5pbYt)9>G#wmg?LiFb2GsSFoku(EW7H;AXSNd^taJR`|l*_DS1|K{2w z69_Dj%MFjSf00Gkq&b~B-0w7tkReKhEvTs=bW z)?9s~|2mRO%YXV`xT4QHlixp7n$Nf49jTrFVLYj{y6;Y9D-OkxYX^mU1tOx3{EjB+ zn>HeK)zRf+cK|VA3~)_L73iQae{)X6WA{2_ZR}V@*I~sgLdO6ONI^l13Vx3doXkI5U*OtSZy;=c?O z)#I{w{Ks@uS4_ucY%psm>o_nz%@7kv&v>&1bfITZ+Y%T9WgIDj@u!CkF#x%A(Qg^T z;M=H5NL`QmTbEo>jVp0^yE+|LN1VUN3?sRbwMvcDAh8+pSSJLLhCafH)Ij?S0nm8;2I zJmrxR!oYFoFm3b+GUS;(ZKXvkDsA*=Ar5@KUhnN#FC*6w2mFSr+bH0CV+TEk1Ttyo zC_Y$sJNPG(S#fE~<1;eLA?{{#pC4aQ+jmLFQrvxJSLU%6+dR4z z#2Et;L+6hN>fctlhYf3s6;HY^F#S|SZSt%vkKz6V0h;M z-h4z6K6dDx3WolPD!5WyX>ASea6!;DoQ(M)~2r18Il zf2=GD3?+IWkaX{5e|&|F7MUASWovcFAXv_W1qAi6En?*Ek`Y|61= zL505D%!4OcT^(cLERs_MJu1v~3GCwx4bMkLj*h5)L!FVDOpYe~o(3AKLzIyfU#|Tx z5%J`Z1kY^|;U_097|NSK>=Y|wy2%He#bA>@2>u{4kx(eSdD8tf?^I;G+a z+-b>oCryqjy0rwPrj4DZklB4AM~B>2!i&b(V`ErK3;k4MonaW*18QC8CqaAT;op~2 zO8zkpgG*>9upx-M%E_8^Z>iANi}m`H0nnXkzwYz?*A+X4Q9);Gv{)j6mgD%QXO*;b zkQo$y#1;)P!GriCx6MGuKDvik^iFZOQ4_c^KGT$yCMXoODN-5`y=kfMvTG`y5{>>f z93U9RS|VKlM=P9Vh3-o@;}cg*9MdU6Kqd5p&Z#ewYt zG7GO}1I~1XomQ-J2x7F;=DsjD>j2foU2LU6MdE*crz#jej(6KUC`b1mNj)HN#qAMx z6Y6etbtCCn%x%z!Zj%w;6y$_vo&Hp()YuU5=&zr5OL6Ey{-5Bd=ZojKe>B{l<^K`n zbQ#nkM@98Ug8!>z0e z$HJ(FIepxzxP!jn6<*7m6J9!E6re2zzTneoZ9(2Hj;m84AZNuA7n}Q>bh}+YkEyWK zN8ka7p3+lsS{i^iYkWe-0q|;*E($_|u5ViWc}$D#%S*Z*2MD2hIvw!AfP6X@i{(Jm z!*aDqw|8z$1T#T)%1(K1K+aK)ay%RdQ?xpv5XcV0Xtj;AMH=VJHG3RwKh55*<7~Z( z^Hmy?Izt-Mh=D_yC16HNRNze-0N631#WK#eFY$Kin$OEJ&htFZ@{Kwl##@q*fjkv3 zq0`}T%9kOK9W%;TS)6UNc;Q?kwS}A#<3Y*K-s?fF5Q1N%GQIZC#6j6NP1ToIx1BOH z_8}Ad(bdGZU*CbQxIyC)T}||^@*C{vzRyo(g=r$iXI!+J;SY-x2!BwueAl9W_n zwZ5TZ&+pVnPs81Wb6#;atIn~cNt(ld<6}=&es?4U*qdM6Ck!T%$HK!&NGDWPgb5}S z(J>E;p_nzz%89h7NVr4tZ01~=b~ACG3&gz+;EieDk34N0A}1DnGf^_R&N?0niT6yQ zSK@j^+1j!Z9Y-Q&yhyT}WdX8HYSslS+vsA{Lj=-Qj-)TcCKN3m_6r1kq{q* z(`t*;!+k!8vxH?44Os^BEt*lhMWOHr-E6AaWLwQ>2?dRAw&ziyq&b_2QK&|j;NT^) z-1_O6K8x}fMx%%gU*f7NuU*-}S*(VKWf^}~rn8T8A{X4FP#4Szk$=L*8%z#)3Zz9f zXCGdrHze2~-WdqcdLkfNhsvvL?UIk6J4J^g5+-}}oAiATPmxFJlLf_kvd1i*SghC^ zWl90Qs+qoFUV&F715QFNCTg(C)gBzQrWFCQ;BSzmMO&%2dnb_kR_ih87VoLP?SatLcQ{)+DVk_kZ2*^P$Gh z$lWHuOnC~`tW>}Sxs}Hw=e)s&jO4?R*H_eyE8j=m(Q*iOH-XOMkSkP2e;jqdrU&+{U$mi`NPV_-=1Lr5_;jVi(>^K>I3NVN&&B z36EzYueB>!HmbFV>|0U&0wWa{7?#0ndnAsxLwQUN_>U5|-{wnd>&Ka$Lo;7&L~zv@ z!PC_YdaB}GgnTBZGiER>H`cwtqjTe zWr>z(m3zq&E-{r5A)kE!HH9q&k(F0Z$?I3Z;$m*QRr`5mdWg1js2)9-$}c69nYld~ zK7`|-V~P5pAmHTTKDuo@XBnpfIttP&7UAAn*~efBsRhEb@OxGvzQEnFEorIbj+ehv zzDauWR6TLr_c#-@+HiY;KcBd{_yI6y=I&a_sST=NQDJG>Krm=#IGK?2_&F-=elmfqHn zM_Ltyg}znEwZL<5A&=|{w2wax`gp0fXN*9V)(2cKE*QR=rPsY~dIm|SNHLN|W#CR3 z!)C~zCs3NXa59Qi4!PYl+<2a7Ab}mwEOLqu`_1cQ7?De2=;B}k+($Ox!-V)O2k8#> z)zij)oL^vKvqaiJ(m|kED8D=eBZOa;li+@mU-G97HicivRm{uNMt+!EHlQG*W{+Du z>*f)dJ$Zsn6>{hbFeWHiiw(&`D)1a#|UPu0X&p=#OhxK-ZEg0 z?qMDvoN^!z6?o%o}N3jemA&5U^=3L)G%z#5C9Qn3nq&ZyVg;mV(<;+Uv^akHkR0&%`V7TF{^>8eg=Y!g2`EtrQ^`Qfoy5-{lGjn0N(IU$AQ33jMcz%+ zqx0~#B7O#tp#aEJpzWRrir%6=3hL8DdLDtEM4ZnPhE*i^3}p-mpCOF_YWFNSj}nI{ zdDLR0)}i|pgwGJi0JVD-9P3E{%j}=2WqULk7L_#4_tE`KRsQ$yWM%5&iJMaZzLFP< zAY^rtbPkc6s`6Uq`7=`w>3_oX0(}5e#EJ%TOre>lgA>LDaqNyxpG~N~T@JW~JV1A= zk!E+o7L}u(ip^q|v8J`+E%>&q2m4O50il?7R@Suvm`|!HI4@|+atpg_l z?|Iie{5&b{G&I{_BeO7VAf2yX5CpE1yUVad#)W~*-{u;hDl7gJ)YN#^c(!%IZIPFt z3Hre?W9P*-cHjY+``>cs4o{%nou-l9)deEEL||~_1Hi_~Zj9$5`yvaPpdTD1JAt-; zXaJLfW~IH~A0Vj(!+O>|-@@YKz3g9`TR)K3J8@QaQJeS>JZ0H+jx`Gh4chIa><}cs zy}busRcr#j7(-uS^{=EoXIK$%58WLf*5z|F@Uz$?q6Bc;=0S{2?a2-B&lxOflnP6p z-DnAq|L3SW&7|_-sGBj=dY3m7gH5GhK#ZdSi| z>Tes|cc%N1cUUhu@J{SYu`P}`x3fE&XZ6Q(i#qbSDKC}+iDtc!%472HGM>Mzps6jE zi{%1^u8IF4+s1mxb~qiE$K&*=xLz9%6WVOxH*>~h$QEy|xDF>_Kvi**V0u=L0TlQ^ ze$@LDm?8N~M5^nCy7ohgkP3R-9f z9@5%q8jK7E6Qi0py?0%zjMW%n8+JARP`H&RhLm=NEj?jGPHl4u zM5AwP6l5iJpx()Ud`rl~===P3ts0VA6Zd^tpNBWY`8LHkdqGA;UnRrJO3SvI{2Xff zT+taDPogEXXC`BUirdIs53Ja>|lkr0b&w%L~CTM%g(qIOMVH0+BgbFRKxSR{1K*3Z}i^d zpiaq$gtIN#h(z$1DG(exUrGy4HzgCo2T(dloY86UhdriIu*5jo1|`o9$c}9uNPOu- zS(?W`M^NjPH&ge7Io*|c%R6{ruA;f9X2a(22_c_NtRCz#-WVdVTsCxv@3_i&Nz3>G z0b`6ywf6y4B;doy**RI=-RBH|Uik?edogOmOMRovN6q?bqZXXozN%cw?e&sKsk$-M zG`o-(_HDxS(M@OvKm}wq^OpA}=|#_#JS!{Knsw3zirugec2+W|%-yIJsa4GbEMAeI zUmSK*E%6y532|@y;E6kE)uhwz4*~a;DLo+T#shTG{dP%<;j5Y6Zh0iUzL}SDW z9DK8kvo+UodBE7mQ=30yT%yj1T3cjc<93Uu%yu1Tt7W|0h7DSj-LYwlr;NObvowqI zWga&4>+O6l>+=a6@l(jXTE%&m#)~v;_;-9L(A!f+PUDO+**a)sryb=j?Cq(!;S_)N zn$zG9d%{D}gLP1Z9rHcfbrGI!b}WG;{ZBMI=oCJ8w3H-P6ZjjtRxv_?{b!0LK{LTO z#V_}vUJ^<<*{@S55B&Ak^eDNMb?H3J40&_a$9ifaT^_v}k@79r zm)~u4NG;#K5pPuv8^Fl9}6umDY? zuhh<(v{}QiwTC1*qTp3%wHzfUD@E0Ja$4l7$mE_U7jy1Xic6#&2pIjBUTMIPDV14?) z#JM*AFbkn>r;U^^tQd-uTvQv3wj7gV$~dr&eME(gRm}!$w1-M(uXV)vpH3zieRbguvJQ$4eRh*OxQBKp6aQ^-7D<79qu(152X-0%2&#Z54EARvW#CGxpNd$XbNHS z;>X5GDc8Z848M^=9jrQ4RMw}mE_oA&=N*&g9JG*S}8{i_ozqR%3K9YAg_k3Yy6lBIu;5=hV2klyE~szGFZla5?QD%%F-i*&JCsUaAr@+U6#>g$c6 z_o3&>2I8E?V`$N!S}XPoZx&hvLsvi>NFM5gob`))?MF>wN++5fYGxh6H8A2VJ|T7d z@Ukl%Eup;_dpSlQIC|fcg)FSARv9qMgf^W8L1p*qAMnj}#+W03uE1FI*<*tWMLkI_ zwcoSIx{jNPz&K^(6dWWaVV*W7<_$2t?7v;X7zNqOQ6ZI_N&%`TV+m1zf%!^c}&lA3LXiZAlTV!0`N5hNl|!`xc@Ly?HXMYx>-3-pL%qx>X_~tDESAbSi}}jb7>yJvgJdVi^f)=)UK!8Y z3@HkV znC3%3@?9pljKfO^FRudjx+?=9=zpbES@qqZ27-hPMIVR6K~0%iq#gEyy3q@D_7sI* zt~a$WVqGTccr9fNfGs+-yku3HFCh!s3mO*8|VY7&i5&ZLuCXw`cQcR5C|~pU%jyGAV$jq6E8*pcX}uug^hZ8kRPx z*x8SZT}&?mwEB?KBrl*Qfbe|vQk2|GEcH|2(oyFbu9Gbh9O5dphU2Oyz0a?>y_8)? zdi3b*YQEDXzMwy+iQS3XUMF-Zt6#f+Yi@0c+vxw`_xRG(4ONtTM=>or@55Pm7u6ah zb|F#QHL-thNXSQv(T^SdFY#j8#595!0-rLDI9nz-0kotK;wX|%IU7Kgd>%Ykn86%g z`_p-A5N0JhyBnrpusx(avZFK%*~y|04b9f~-eN6nv2o^>5fuU)xmI0|ySXM$YBhCE zOJGhp;K9>{2~g({2E745`2>iATq%`%O0{Y|@p?*~Ym8tm?vz@kz?LFDmsD@9bG*-~ z#)75Ug-~*8ntrnFt%bcXUZgJGt|}c5>juEF+7j|jOB7u0?Xp%p-0G03i+XH8>427l z`QFcEiYHqg6MzMb2x2yjnZaYGvpX!?_+8$p)vPHRzSdIJ1YZ3cCmR7~_I+m$6UWQwtqXY2r^T6@G@F6W^&8Nt!HMw7Ow`#=+@!=@f)Mnt9eFyq}R#$o0@Z~9l$y9wzaRdNFHH;BTj$9b-SBogI+=@wBsZBG1>(`cPDB z253UP*CU$HtpkF^=Tt2)vP->Mz`G)r7O)&G>0*uYVwnQ(pHV@yz|ccE9xB=)OVhX4 zz3Srp*S17e+@YFKt1V9&yP7ZsK#^HxaEL&;WcU@9;rEdJYac(m;DOslZSS@e*Mz&`9(u7Vwo3HR?B$b=$#tRV}&8;VX(f}m11VmpB zi)~RH_GaSZY@W}IEHysT*A{TlfN? zGCwv|g|3}^uq~0Yq0(d!I#jB>+?y|WwAf1{X|(96r&d>^zO<@iiE%AulbFlfYm`Lm UbO;T%QncRxKSP6-sN@d;0M{9rT>t<8 literal 0 HcmV?d00001 diff --git a/frontend-dist/css/63.68965781.css b/frontend-dist/css/957.db5680df.css similarity index 64% rename from frontend-dist/css/63.68965781.css rename to frontend-dist/css/957.db5680df.css index 72b0c59a..d3980723 100644 --- a/frontend-dist/css/63.68965781.css +++ b/frontend-dist/css/957.db5680df.css @@ -1 +1 @@ -.move-dialog-content[data-v-7aaa437c]{padding:0 10px}.move-path-input-container[data-v-7aaa437c]{display:flex;align-items:center;gap:10px}.move-path-input[data-v-7aaa437c]{flex:1}.directory-picker-trigger[data-v-7aaa437c]{flex-shrink:0}.move-dialog-hint[data-v-7aaa437c]{margin-top:12px;font-size:12px;color:var(--el-text-color-secondary)}.move-drawer-content[data-v-7aaa437c]{padding:16px}.move-path-section[data-v-7aaa437c]{margin-bottom:16px}.move-path-label[data-v-7aaa437c]{font-size:14px;font-weight:500;margin-bottom:8px;color:var(--el-text-color-primary)}.move-path-input-row[data-v-7aaa437c]{display:flex;align-items:center;gap:10px}.embedded-tree-section[data-v-7aaa437c]{margin-top:16px;border:1px solid var(--el-border-color-lighter);border-radius:8px;overflow:hidden}.tree-section-header[data-v-7aaa437c]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-lighter)}.tree-section-title[data-v-7aaa437c]{font-size:14px;font-weight:500}.tree-container[data-v-7aaa437c]{min-height:200px;max-height:300px;overflow-y:auto;padding:8px}.directory-tree[data-v-7aaa437c]{background:transparent}.directory-tree[data-v-7aaa437c] .el-tree-node__content{height:44px;padding:0 8px;border-radius:8px}.tree-node[data-v-7aaa437c]{display:flex;align-items:center;gap:8px;padding:4px 0;width:100%}.tree-node.is-current[data-v-7aaa437c]{color:var(--el-color-primary);font-weight:500}.folder-icon[data-v-7aaa437c]{color:var(--el-color-warning);font-size:16px}.node-label[data-v-7aaa437c]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.error-state[data-v-7aaa437c]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 20px;text-align:center}.error-icon[data-v-7aaa437c]{font-size:32px;color:var(--el-color-danger)}.error-text[data-v-7aaa437c]{color:var(--el-text-color-secondary);font-size:14px}.drawer-footer[data-v-7aaa437c]{display:flex;gap:12px;padding:0 16px 16px}.footer-btn[data-v-7aaa437c]{flex:1}.move-dialog .el-dialog__body{padding:20px}.move-drawer{border-radius:16px 16px 0 0!important}.move-drawer .el-drawer__header{margin-bottom:0;padding:16px 20px;border-bottom:1px solid var(--el-border-color-lighter)}.move-drawer .el-drawer__body,.move-drawer .el-drawer__footer{padding:0}.mobile-drawer-overlay[data-v-3b79a1b6]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);z-index:2000}.mobile-drawer[data-v-3b79a1b6]{position:absolute;top:22vh;left:8px;bottom:8px;width:280px;max-width:calc(85vw - 16px);background:var(--el-bg-color);border:1px solid var(--glass-border);border-radius:16px;box-shadow:none;display:flex;flex-direction:column;overflow:hidden}html.dark .mobile-drawer[data-v-3b79a1b6]{background:rgba(40,40,45,.98);box-shadow:none}.mobile-drawer-header[data-v-3b79a1b6]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:rgba(56,189,248,.1);border-bottom:1px solid var(--el-border-color-lighter)}.mobile-drawer-title[data-v-3b79a1b6]{font-size:15px;font-weight:600;color:#38bdf8;display:flex;align-items:center;gap:8px}.mobile-drawer-title[data-v-3b79a1b6]:before{content:"";display:inline-block;width:4px;height:16px;background:#38bdf8;border-radius:2px}.mobile-drawer-close[data-v-3b79a1b6]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--el-text-color-secondary);cursor:pointer;border-radius:8px;transition:all .2s ease;background:transparent}.mobile-drawer-close[data-v-3b79a1b6]:active{background:var(--el-fill-color);color:var(--el-text-color-primary)}.mobile-drawer-content[data-v-3b79a1b6]{flex:1;overflow-y:auto;padding:8px}.mobile-drawer-item[data-v-3b79a1b6]{display:flex;align-items:center;gap:12px;padding:14px 16px;margin:2px 0;cursor:pointer;transition:all .2s ease;color:var(--el-text-color-primary);border-radius:10px;font-size:14px}.mobile-drawer-item[data-v-3b79a1b6]:active{background:var(--el-fill-color-light);transform:scale(.98)}.mobile-drawer-item.active[data-v-3b79a1b6]{background:rgba(56,189,248,.15);color:#38bdf8;font-weight:600}.mobile-drawer-item-icon[data-v-3b79a1b6]{font-size:18px;width:24px;text-align:center;opacity:.7}.mobile-drawer-item.active .mobile-drawer-item-icon[data-v-3b79a1b6]{opacity:1;color:#38bdf8}.mobile-drawer-back[data-v-3b79a1b6]{display:flex;align-items:center;gap:12px;padding:14px 16px;margin:8px 8px;border-radius:10px;background:var(--el-fill-color-lighter);cursor:pointer;transition:all .2s ease;color:var(--el-text-color-secondary);font-size:14px}.mobile-drawer-back[data-v-3b79a1b6]:active{background:var(--el-fill-color);color:var(--el-text-color-primary);transform:scale(.98)}.drawer-slide-enter-active[data-v-3b79a1b6]{transition:opacity .3s ease}.drawer-slide-leave-active[data-v-3b79a1b6]{transition:opacity .2s ease}.drawer-slide-enter-active .mobile-drawer[data-v-3b79a1b6]{animation:slideInLeft-3b79a1b6 .3s ease-out}.drawer-slide-leave-active .mobile-drawer[data-v-3b79a1b6]{animation:slideOutLeft-3b79a1b6 .2s ease-in}.drawer-slide-enter-from[data-v-3b79a1b6],.drawer-slide-leave-to[data-v-3b79a1b6]{opacity:0}@keyframes slideInLeft-3b79a1b6{0%{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes slideOutLeft-3b79a1b6{0%{transform:translateX(0)}to{transform:translateX(-100%)}}.bottom-sheet-overlay[data-v-efef5a4c]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:9999;display:flex;align-items:flex-end;justify-content:center}.bottom-sheet[data-v-efef5a4c]{width:100%;max-width:100%;background:var(--bottom-sheet-bg,hsla(0,0%,100%,.95));border-radius:20px 20px 0 0;max-height:70vh;overflow:hidden;box-shadow:none;border-top:1px solid var(--bottom-sheet-border,rgba(0,0,0,.05))}html.dark .bottom-sheet[data-v-efef5a4c]{--bottom-sheet-bg:rgba(40,44,52,.95);--bottom-sheet-border:hsla(0,0%,100%,.1);box-shadow:none}.bottom-sheet-header[data-v-efef5a4c]{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px 20px 12px;border-bottom:1px solid var(--el-border-color-lighter)}.bottom-sheet-handle[data-v-efef5a4c]{width:40px;height:4px;background:var(--el-border-color);border-radius:2px}.bottom-sheet-title[data-v-efef5a4c]{font-size:16px;font-weight:600;color:var(--el-text-color-primary);text-align:center;max-width:80%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}html.dark .bottom-sheet-title[data-v-efef5a4c]{color:#f0f0f0}.bottom-sheet-content[data-v-efef5a4c]{padding:12px 16px;padding-bottom:calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px}.bottom-sheet-item[data-v-efef5a4c]{display:flex;align-items:center;gap:16px;padding:16px 20px;border-radius:14px;cursor:pointer;transition:all .2s ease;background:var(--bottom-sheet-item-bg,rgba(0,0,0,.04));color:var(--el-text-color-primary)}html.dark .bottom-sheet-item[data-v-efef5a4c]{--bottom-sheet-item-bg:hsla(0,0%,100%,.08)}.bottom-sheet-item[data-v-efef5a4c]:active{transform:scale(.98);background:var(--bottom-sheet-item-active-bg,rgba(0,0,0,.08))}html.dark .bottom-sheet-item[data-v-efef5a4c]:active{--bottom-sheet-item-active-bg:hsla(0,0%,100%,.15)}.bottom-sheet-icon[data-v-efef5a4c]{font-size:20px;width:28px;text-align:center;color:#38bdf8}.bottom-sheet-danger .bottom-sheet-icon[data-v-efef5a4c],.bottom-sheet-danger[data-v-efef5a4c]{color:var(--el-color-danger)}.bottom-sheet-enter-active[data-v-efef5a4c]{transition:all .3s ease-out}.bottom-sheet-leave-active[data-v-efef5a4c]{transition:all .2s ease-in}.bottom-sheet-enter-active .bottom-sheet[data-v-efef5a4c]{animation:slideUp-efef5a4c .3s ease-out}.bottom-sheet-leave-active .bottom-sheet[data-v-efef5a4c]{animation:slideDown-efef5a4c .2s ease-in}.bottom-sheet-enter-from[data-v-efef5a4c],.bottom-sheet-leave-to[data-v-efef5a4c]{opacity:0}.bottom-sheet-enter-from .bottom-sheet[data-v-efef5a4c],.bottom-sheet-leave-to .bottom-sheet[data-v-efef5a4c]{transform:translateY(100%)}@keyframes slideUp-efef5a4c{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideDown-efef5a4c{0%{transform:translateY(0)}to{transform:translateY(100%)}}.el-tabs{--el-tabs-header-height:40px;display:flex}.el-tabs__header{align-items:center;display:flex;justify-content:space-between;margin:0 0 15px;padding:0;position:relative}.el-tabs__header-vertical{flex-direction:column}.el-tabs__active-bar{background-color:var(--el-color-primary);bottom:0;height:2px;left:0;list-style:none;position:absolute;transition:width var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),transform var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);z-index:1}.el-tabs__active-bar.is-bottom{bottom:auto}.el-tabs__new-tab{align-items:center;border:1px solid var(--el-border-color);border-radius:3px;color:var(--el-text-color-primary);cursor:pointer;display:flex;flex-shrink:0;font-size:12px;height:20px;justify-content:center;line-height:20px;margin:10px 0 10px 10px;text-align:center;transition:all .15s;width:20px}.el-tabs__new-tab .is-icon-plus{height:inherit;transform:scale(.8);width:inherit}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__new-tab-vertical{margin-left:0}.el-tabs__nav-wrap{flex:1 auto;margin-bottom:-1px;overflow:hidden;position:relative}.el-tabs__nav-wrap:after{background-color:var(--el-border-color-light);bottom:0;content:"";height:2px;left:0;position:absolute;width:100%;z-index:var(--el-index-normal)}.el-tabs__nav-wrap.is-bottom:after{bottom:auto;top:0}.el-tabs__nav-wrap.is-scrollable{box-sizing:border-box;padding:0 20px}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{color:var(--el-text-color-secondary);cursor:pointer;font-size:12px;line-height:44px;position:absolute;text-align:center;width:20px}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{display:flex;float:left;position:relative;transition:transform var(--el-transition-duration);white-space:nowrap;z-index:calc(var(--el-index-normal) + 1)}.el-tabs__nav.is-stretch{display:flex;min-width:100%}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{align-items:center;box-sizing:border-box;color:var(--el-text-color-primary);display:flex;font-size:var(--el-font-size-base);font-weight:500;height:var(--el-tabs-header-height);justify-content:center;list-style:none;padding:0 20px;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:none}.el-tabs__item:focus-visible{border-radius:3px;box-shadow:0 0 2px 2px var(--el-color-primary) inset}.el-tabs__item .is-icon-close{border-radius:50%;margin-left:5px;text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs__item .is-icon-close:before{display:inline-block;transform:scale(.9)}.el-tabs__item .is-icon-close:hover{background-color:var(--el-text-color-placeholder);color:#fff}.el-tabs__item.is-active,.el-tabs__item:hover{color:var(--el-color-primary)}.el-tabs__item:hover{cursor:pointer}.el-tabs__item.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-tabs__content{flex-grow:1;overflow:hidden;position:relative}.el-tabs--bottom>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:0}.el-tabs--bottom>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top>.el-tabs__header .el-tabs__item:last-child{padding-right:0}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);box-sizing:border-box;height:var(--el-tabs-header-height)}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid var(--el-border-color-light);border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{font-size:12px;height:14px;overflow:hidden;position:relative;right:-2px;transform-origin:100% 50%;width:0}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid var(--el-border-color-light);margin-top:-1px;transition:color var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),padding var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .is-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:var(--el-bg-color)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .is-icon-close{width:14px}.el-tabs--border-card{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-light);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{border:1px solid transparent;color:var(--el-text-color-secondary);margin-top:-1px;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{background-color:var(--el-bg-color-overlay);border-left-color:var(--el-border-color);border-right-color:var(--el-border-color);color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:var(--el-disabled-text-color)}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom{flex-direction:column}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--el-border-color)}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-bottom:0;margin-top:-1px}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{bottom:auto;height:auto;top:0;width:2px}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{cursor:pointer;height:30px;line-height:30px;text-align:center;width:100%}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{bottom:0;right:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{bottom:auto;height:100%;top:0;width:2px}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{flex-direction:column}.el-tabs--left .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-left{justify-content:flex-end}.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-right{justify-content:flex-start}.el-tabs--left{flex-direction:row}.el-tabs--left .el-tabs__header.is-left{margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-bottom:none;border-left:none;border-right:1px solid var(--el-border-color-light);border-top:1px solid var(--el-border-color-light);text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid var(--el-border-color-light);border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:none;border-right:1px solid #fff}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-radius:4px 0 0 4px;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid var(--el-border-color)}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--left>.el-tabs__content+.el-tabs__header{order:-1}.el-tabs--right .el-tabs__header.is-right{margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--el-border-color-light)}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid var(--el-border-color-light);border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:1px solid #fff;border-right:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-left:none;border-radius:0 4px 4px 0}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid var(--el-border-color)}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.el-tabs--top{flex-direction:column}.el-tabs--top>.el-tabs__content+.el-tabs__header{order:-1}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{animation:slideInRight-leave var(--el-transition-duration);left:0;position:absolute;right:0}.slideInLeft-enter{animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{animation:slideInLeft-leave var(--el-transition-duration);left:0;position:absolute;right:0}@keyframes slideInRight-enter{0%{opacity:0;transform:translateX(100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@keyframes slideInRight-leave{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(100%);transform-origin:0 0}}@keyframes slideInLeft-enter{0%{opacity:0;transform:translateX(-100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@keyframes slideInLeft-leave{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(-100%);transform-origin:0 0}}.el-alert{--el-alert-padding:8px 16px;--el-alert-border-radius-base:var(--el-border-radius-base);--el-alert-title-font-size:14px;--el-alert-title-with-description-font-size:16px;--el-alert-description-font-size:14px;--el-alert-close-font-size:16px;--el-alert-close-customed-font-size:14px;--el-alert-icon-size:16px;--el-alert-icon-large-size:28px;align-items:center;background-color:var(--el-color-white);border-radius:var(--el-alert-border-radius-base);box-sizing:border-box;display:flex;margin:0;opacity:1;overflow:hidden;padding:var(--el-alert-padding);position:relative;transition:opacity var(--el-transition-duration-fast);width:100%}.el-alert.is-light .el-alert__close-btn{color:var(--el-text-color-placeholder)}.el-alert.is-dark .el-alert__close-btn,.el-alert.is-dark .el-alert__description{color:var(--el-color-white)}.el-alert.is-center{justify-content:center}.el-alert--primary{--el-alert-bg-color:var(--el-color-primary-light-9)}.el-alert--primary.is-light{background-color:var(--el-alert-bg-color)}.el-alert--primary.is-light,.el-alert--primary.is-light .el-alert__description{color:var(--el-color-primary)}.el-alert--primary.is-dark{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-alert--success{--el-alert-bg-color:var(--el-color-success-light-9)}.el-alert--success.is-light{background-color:var(--el-alert-bg-color)}.el-alert--success.is-light,.el-alert--success.is-light .el-alert__description{color:var(--el-color-success)}.el-alert--success.is-dark{background-color:var(--el-color-success);color:var(--el-color-white)}.el-alert--info{--el-alert-bg-color:var(--el-color-info-light-9)}.el-alert--info.is-light{background-color:var(--el-alert-bg-color)}.el-alert--info.is-light,.el-alert--info.is-light .el-alert__description{color:var(--el-color-info)}.el-alert--info.is-dark{background-color:var(--el-color-info);color:var(--el-color-white)}.el-alert--warning{--el-alert-bg-color:var(--el-color-warning-light-9)}.el-alert--warning.is-light{background-color:var(--el-alert-bg-color)}.el-alert--warning.is-light,.el-alert--warning.is-light .el-alert__description{color:var(--el-color-warning)}.el-alert--warning.is-dark{background-color:var(--el-color-warning);color:var(--el-color-white)}.el-alert--error{--el-alert-bg-color:var(--el-color-error-light-9)}.el-alert--error.is-light{background-color:var(--el-alert-bg-color)}.el-alert--error.is-light,.el-alert--error.is-light .el-alert__description{color:var(--el-color-error)}.el-alert--error.is-dark{background-color:var(--el-color-error);color:var(--el-color-white)}.el-alert__content{display:flex;flex-direction:column;gap:4px}.el-alert .el-alert__icon{font-size:var(--el-alert-icon-size);margin-right:8px;width:var(--el-alert-icon-size)}.el-alert .el-alert__icon.is-big{font-size:var(--el-alert-icon-large-size);margin-right:12px;width:var(--el-alert-icon-large-size)}.el-alert__title{font-size:var(--el-alert-title-font-size);line-height:24px}.el-alert__title.with-description{font-size:var(--el-alert-title-with-description-font-size)}.el-alert .el-alert__description{font-size:var(--el-alert-description-font-size);margin:0}.el-alert .el-alert__close-btn{cursor:pointer;font-size:var(--el-alert-close-font-size);opacity:1;position:absolute;right:16px;top:12px}.el-alert .el-alert__close-btn.is-customed{font-size:var(--el-alert-close-customed-font-size);font-style:normal;line-height:24px;top:8px}.el-alert-fade-enter-from,.el-alert-fade-leave-active{opacity:0}.batch-tag-container[data-v-0d04afa1]{padding:0}.tab-content[data-v-0d04afa1]{padding:20px}.tab-description[data-v-0d04afa1]{margin:0 0 15px 0;color:#606266;font-size:14px}.input-section[data-v-0d04afa1]{position:relative;margin-bottom:20px}.suggestions-panel[data-v-0d04afa1]{position:absolute;top:100%;left:0;right:0;background:var(--admin-dashboard-tag-suggestion-bg-color);border:1px solid var(--admin-dashboard-tag-suggestion-border-color);border-radius:4px;box-shadow:var(--admin-dashboard-tag-suggestion-box-shadow);max-height:200px;overflow-y:auto;z-index:1000;margin-top:4px}.suggestion-item[data-v-0d04afa1]{padding:8px 12px;cursor:pointer;transition:background-color .2s}.suggestion-item[data-v-0d04afa1]:hover{background-color:var(--admin-dashboard-tag-suggestion-item-hover-bg-color)}.common-tags-section[data-v-0d04afa1],.tags-to-add-section[data-v-0d04afa1]{margin-bottom:20px}.common-tags-section h4[data-v-0d04afa1],.tags-to-add-section h4[data-v-0d04afa1]{margin:0 0 10px 0;font-size:14px;color:#606266}.tags-container[data-v-0d04afa1]{display:flex;flex-wrap:wrap;gap:8px;min-height:40px}.tag-item[data-v-0d04afa1]{cursor:default}.empty-message[data-v-0d04afa1]{color:#59636e;font-size:13px;padding:10px 0}.action-buttons[data-v-0d04afa1]{margin-top:20px;display:flex;justify-content:flex-end}.tag-management-container[data-v-24c809e4]{padding:10px 0}.input-section[data-v-24c809e4]{position:relative;margin-bottom:20px}.suggestions-panel[data-v-24c809e4]{position:absolute;top:100%;left:0;right:0;background:var(--admin-dashboard-tag-suggestion-bg-color);border:1px solid var(--admin-dashboard-tag-suggestion-border-color);border-radius:4px;box-shadow:var(--admin-dashboard-tag-suggestion-box-shadow);max-height:200px;overflow-y:auto;z-index:1000;margin-top:4px}.suggestion-item[data-v-24c809e4]{padding:8px 12px;cursor:pointer;transition:background-color .2s}.suggestion-item[data-v-24c809e4]:hover{background-color:var(--admin-dashboard-tag-suggestion-item-hover-bg-color)}.current-tags-section[data-v-24c809e4],.popular-tags-section[data-v-24c809e4]{margin-bottom:20px}.current-tags-section h4[data-v-24c809e4],.popular-tags-section h4[data-v-24c809e4]{margin:0 0 10px 0;font-size:14px;color:#606266}.tags-container[data-v-24c809e4]{display:flex;flex-wrap:wrap;gap:8px;min-height:40px}.tag-item[data-v-24c809e4]{cursor:default}.tag-item.clickable[data-v-24c809e4]{cursor:pointer;transition:transform .2s}.empty-message[data-v-24c809e4]{color:#59636e;font-size:13px;padding:10px 0}.dialog-footer[data-v-24c809e4]{display:flex;justify-content:flex-end}.el-form{--el-form-label-font-size:var(--el-font-size-base);--el-form-inline-content-width:220px}.el-form--inline .el-form-item{display:inline-flex;margin-right:32px;vertical-align:middle}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--label-left .el-form-item__label{justify-content:flex-start;text-align:left}.el-form-item--label-right .el-form-item__label{justify-content:flex-end;text-align:right}.el-form-item--label-top{display:block}.el-form-item--label-top .el-form-item__label{display:block;height:auto;line-height:22px;margin-bottom:8px;padding-right:0;text-align:left;width:fit-content}.el-form-item__label-wrap{display:flex}.el-form-item__label{align-items:flex-start;box-sizing:border-box;color:var(--el-text-color-regular);display:inline-flex;flex:0 0 auto;font-size:var(--el-form-label-font-size);height:32px;line-height:32px;padding:0 12px 0 0}.el-form-item__content{align-items:center;display:flex;flex:1;flex-wrap:wrap;font-size:var(--font-size);line-height:32px;min-width:0;position:relative}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;left:0;line-height:1;padding-top:2px;position:absolute;top:100%}.el-form-item__error--inline{display:inline-block;left:auto;margin-left:10px;position:relative;top:auto}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{color:var(--el-color-danger);content:"*";margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{color:var(--el-color-danger);content:"*";margin-left:4px}.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-select__wrapper,.el-form-item.is-error .el-form-item__content .el-select__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-textarea__inner,.el-form-item.is-error .el-form-item__content .el-textarea__inner.is-focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner:focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__wrapper{box-shadow:inset 0 0 0 1px transparent}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__validateIcon,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__validateIcon{display:none}.el-form-item.is-error .el-form-item__content .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}.el-descriptions{--el-descriptions-table-border:1px solid var(--el-border-color-lighter);--el-descriptions-item-bordered-label-background:var(--el-fill-color-light);box-sizing:border-box;color:var(--el-text-color-primary);font-size:var(--el-font-size-base)}.el-descriptions__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.el-descriptions__title{color:var(--el-text-color-primary);font-size:16px;font-weight:700}.el-descriptions__body{background-color:var(--el-fill-color-blank)}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions__cell{box-sizing:border-box;font-size:14px;line-height:23px;text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-right{text-align:right}.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{border:var(--el-descriptions-table-border);padding:8px 11px}.el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:12px}.el-descriptions--large{font-size:14px}.el-descriptions--large .el-descriptions__header{margin-bottom:20px}.el-descriptions--large .el-descriptions__header .el-descriptions__title{font-size:16px}.el-descriptions--large .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:14px}.el-descriptions--large .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:12px 15px}.el-descriptions--large .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:16px}.el-descriptions--small{font-size:12px}.el-descriptions--small .el-descriptions__header{margin-bottom:12px}.el-descriptions--small .el-descriptions__header .el-descriptions__title{font-size:14px}.el-descriptions--small .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:12px}.el-descriptions--small .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:4px 7px}.el-descriptions--small .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:8px}.el-descriptions__label.el-descriptions__cell.is-bordered-label{background:var(--el-descriptions-item-bordered-label-background);color:var(--el-text-color-regular);font-weight:700}.el-descriptions__label:not(.is-bordered-label){color:var(--el-text-color-primary);margin-right:16px}.el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:6px}.el-descriptions__content.el-descriptions__cell.is-bordered-content{color:var(--el-text-color-primary)}.el-descriptions__content:not(.is-bordered-label){color:var(--el-text-color-regular)}.el-descriptions--large .el-descriptions__label:not(.is-bordered-label){margin-right:16px}.el-descriptions--large .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:8px}.el-descriptions--small .el-descriptions__label:not(.is-bordered-label){margin-right:12px}.el-descriptions--small .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:4px}.el-image__error,.el-image__inner,.el-image__placeholder,.el-image__wrapper{height:100%;width:100%}.el-image{display:inline-block;overflow:hidden;position:relative}.el-image__inner{opacity:1;vertical-align:top}.el-image__inner.is-loading{opacity:0}.el-image__wrapper{left:0;position:absolute;top:0}.el-image__error,.el-image__placeholder{background:var(--el-fill-color-light)}.el-image__error{align-items:center;color:var(--el-text-color-placeholder);display:flex;font-size:14px;justify-content:center;vertical-align:middle}.el-image__preview{cursor:pointer}.el-image-viewer__wrapper{bottom:0;left:0;position:fixed;right:0;top:0}.el-image-viewer__wrapper:focus{outline:none!important}.el-image-viewer__btn{align-items:center;border-radius:50%;box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;opacity:.8;position:absolute;-webkit-user-select:none;user-select:none;z-index:1}.el-image-viewer__btn .el-icon{cursor:pointer}.el-image-viewer__close{font-size:40px;height:40px;right:40px;top:40px;width:40px}.el-image-viewer__canvas{align-items:center;display:flex;height:100%;justify-content:center;position:static;-webkit-user-select:none;user-select:none;width:100%}.el-image-viewer__actions{background-color:var(--el-text-color-regular);border-color:#fff;border-radius:22px;bottom:30px;height:44px;left:50%;padding:0 23px;transform:translateX(-50%)}.el-image-viewer__actions__inner{align-items:center;color:#fff;cursor:default;display:flex;font-size:23px;gap:22px;height:100%;justify-content:space-around;padding:0 6px;width:100%}.el-image-viewer__actions__divider{margin:0 -6px}.el-image-viewer__progress{bottom:90px;color:#fff;cursor:default;left:50%;transform:translateX(-50%)}.el-image-viewer__prev{left:40px}.el-image-viewer__next,.el-image-viewer__prev{background-color:var(--el-text-color-regular);border-color:#fff;color:#fff;font-size:24px;height:44px;top:50%;transform:translateY(-50%);width:44px}.el-image-viewer__next{right:40px;text-indent:2px}.el-image-viewer__close{background-color:var(--el-text-color-regular);border-color:#fff;color:#fff;font-size:24px;height:44px;width:44px}.el-image-viewer__mask{background:#000;height:100%;left:0;opacity:.5;position:absolute;top:0;width:100%}.el-image-viewer-parent--hidden{overflow:hidden}.viewer-fade-enter-active{animation:viewer-fade-in var(--el-transition-duration)}.viewer-fade-leave-active{animation:viewer-fade-out var(--el-transition-duration)}@keyframes viewer-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes viewer-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}.detail-actions[data-v-38a97614]{display:flex;justify-content:right;margin-bottom:10px;flex-wrap:wrap;gap:8px}.detail-action[data-v-38a97614]{margin-left:0!important}.video-preview[data-v-38a97614]{max-height:300px;cursor:pointer;-o-object-fit:contain;object-fit:contain}.audio-preview[data-v-38a97614],.video-preview[data-v-38a97614]{width:100%;max-width:400px;border-radius:8px}.image-preview[data-v-38a97614]{width:auto;height:auto;max-width:100%;max-height:300px;border-radius:8px;cursor:pointer}.image-preview[data-v-38a97614] img{max-width:100%;max-height:300px;-o-object-fit:contain;object-fit:contain}.file-icon-detail[data-v-38a97614]{font-size:64px;color:var(--el-text-color-secondary)}.preview-section[data-v-38a97614]{display:flex;justify-content:center;margin-bottom:15px;padding:12px;background:var(--el-fill-color-light);border:1px solid var(--glass-border);border-radius:8px;min-height:60px}.preview-content[data-v-38a97614]{display:flex;justify-content:center;align-items:center;width:100%}[data-v-38a97614] .el-descriptions__content{word-break:break-all;word-wrap:break-word}[data-v-38a97614] .el-descriptions__content .el-tag,[data-v-38a97614] .el-descriptions__content .el-tag+span{vertical-align:middle}[data-v-38a97614] .el-descriptions__label{width:120px!important;min-width:100px!important;max-width:120px!important}[data-v-38a97614] .el-descriptions__body table{table-layout:fixed}@media (max-width:768px){.detail-actions[data-v-38a97614]{justify-content:center}}.batch-floating-bar[data-v-6de9da06]{position:fixed;left:50%;bottom:max(84px,calc(72px + env(safe-area-inset-bottom)));transform:translateX(-50%);z-index:1200;display:flex;align-items:center;gap:6px;max-width:min(720px,calc(100vw - 48px));padding:6px;border:1px solid var(--admin-batch-toolbar-border);border-radius:999px;background:var(--admin-batch-toolbar-bg);box-shadow:var(--admin-batch-toolbar-shadow)}.batch-selection-summary[data-v-6de9da06]{display:flex;align-items:center;flex:0 0 auto;padding:0 2px}.batch-selection-count[data-v-6de9da06]{min-width:18px;height:26px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px;color:var(--admin-batch-clear-color);font-size:14px;font-weight:600;line-height:1}.batch-toolbar-divider[data-v-6de9da06]{width:1px;height:16px;flex:0 0 auto;border-radius:999px;background:var(--admin-batch-toolbar-border);opacity:.58}.batch-floating-actions[data-v-6de9da06]{display:flex;align-items:center;gap:4px}.batch-floating-btn[data-v-6de9da06]{width:36px;height:36px;min-width:36px;margin-left:0!important;padding:0;border:none;border-radius:50%;color:var(--admin-batch-clear-color);background:var(--admin-batch-action-bg);box-shadow:var(--admin-batch-action-shadow);transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease,color .22s ease}.batch-floating-btn[data-v-6de9da06]:hover{transform:none;background:var(--admin-batch-action-hover-bg);box-shadow:var(--admin-batch-action-hover-shadow)}.batch-floating-btn.danger[data-v-6de9da06]{color:var(--admin-batch-delete-color)}.batch-floating-btn.ban[data-v-6de9da06],.batch-floating-btn.tag[data-v-6de9da06],.batch-floating-btn.white[data-v-6de9da06]{color:var(--admin-batch-tag-color)}.batch-floating-btn.ghost[data-v-6de9da06]{color:var(--admin-batch-clear-color)}.batch-floating-icon[data-v-6de9da06]{width:15px;margin-right:0}.batch-toolbar-enter-active[data-v-6de9da06],.batch-toolbar-leave-active[data-v-6de9da06]{transition:opacity .24s ease,transform .28s cubic-bezier(.22,1,.36,1)}.batch-toolbar-enter-from[data-v-6de9da06],.batch-toolbar-leave-to[data-v-6de9da06]{opacity:0;transform:translateX(-50%) translateY(12px) scale(.99)}.batch-toolbar-enter-to[data-v-6de9da06],.batch-toolbar-leave-from[data-v-6de9da06]{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}@media (max-width:768px){.batch-floating-bar[data-v-6de9da06]{left:50%;right:auto;bottom:max(76px,calc(64px + env(safe-area-inset-bottom)));transform:translateX(-50%);width:-moz-max-content;width:max-content;max-width:calc(100vw - 24px);gap:4px;padding:5px;border-radius:999px}.batch-selection-summary[data-v-6de9da06]{padding:0 1px}.batch-selection-count[data-v-6de9da06]{min-width:16px;height:22px;padding:0 3px;font-size:12px}.batch-toolbar-divider[data-v-6de9da06]{height:14px}.batch-floating-actions[data-v-6de9da06]{flex:1;min-width:0;gap:3px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;padding:1px}.batch-floating-actions[data-v-6de9da06]::-webkit-scrollbar{display:none}.batch-floating-btn[data-v-6de9da06]{width:32px;height:32px;min-width:32px;padding:0;border-radius:50%}.batch-floating-icon[data-v-6de9da06]{margin-right:0;width:13px}.batch-toolbar-enter-from[data-v-6de9da06],.batch-toolbar-leave-to[data-v-6de9da06]{transform:translateX(-50%) translateY(12px) scale(.99)}.batch-toolbar-enter-to[data-v-6de9da06],.batch-toolbar-leave-from[data-v-6de9da06]{transform:translateX(-50%) translateY(0) scale(1)}}.el-container{box-sizing:border-box;display:flex;flex:1;flex-basis:auto;flex-direction:row;min-width:0}.el-container.is-vertical{flex-direction:column}.el-aside{overflow:auto;width:var(--el-aside-width,300px)}.el-aside,.el-footer{box-sizing:border-box;flex-shrink:0}.el-footer{--el-footer-padding:0 20px;--el-footer-height:60px;height:var(--el-footer-height);padding:var(--el-footer-padding)}.el-header{--el-header-padding:0 20px;--el-header-height:60px;flex-shrink:0;height:var(--el-header-height);padding:var(--el-header-padding)}.el-header,.el-main{box-sizing:border-box}.el-main{--el-main-padding:20px;display:block;flex:1;flex-basis:auto;overflow:auto;padding:var(--el-main-padding)}.el-pagination{--el-pagination-font-size:14px;--el-pagination-bg-color:var(--el-fill-color-blank);--el-pagination-text-color:var(--el-text-color-primary);--el-pagination-border-radius:2px;--el-pagination-button-color:var(--el-text-color-primary);--el-pagination-button-width:32px;--el-pagination-button-height:32px;--el-pagination-button-disabled-color:var(--el-text-color-placeholder);--el-pagination-button-disabled-bg-color:var(--el-fill-color-blank);--el-pagination-button-bg-color:var(--el-fill-color);--el-pagination-hover-color:var(--el-color-primary);--el-pagination-font-size-small:12px;--el-pagination-button-width-small:24px;--el-pagination-button-height-small:24px;--el-pagination-button-width-large:40px;--el-pagination-button-height-large:40px;--el-pagination-item-gap:16px;align-items:center;color:var(--el-pagination-text-color);display:flex;font-size:var(--el-pagination-font-size);font-weight:400;white-space:nowrap}.el-pagination .el-input__inner{-moz-appearance:textfield;text-align:center}.el-pagination .el-select{width:128px}.el-pagination .btn-next,.el-pagination .btn-prev{align-items:center;background:var(--el-pagination-bg-color);border:none;border-radius:var(--el-pagination-border-radius);box-sizing:border-box;color:var(--el-pagination-button-color);cursor:pointer;display:flex;font-size:var(--el-pagination-font-size);height:var(--el-pagination-button-height);justify-content:center;line-height:var(--el-pagination-button-height);min-width:var(--el-pagination-button-width);padding:0 4px;text-align:center}.el-pagination .btn-next *,.el-pagination .btn-prev *{pointer-events:none}.el-pagination .btn-next:focus,.el-pagination .btn-prev:focus{outline:none}.el-pagination .btn-next:hover,.el-pagination .btn-prev:hover{color:var(--el-pagination-hover-color)}.el-pagination .btn-next.is-active,.el-pagination .btn-prev.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pagination .btn-next.is-active.is-disabled,.el-pagination .btn-prev.is-active.is-disabled{color:var(--el-text-color-secondary);font-weight:700}.el-pagination .btn-next.is-disabled,.el-pagination .btn-next:disabled,.el-pagination .btn-prev.is-disabled,.el-pagination .btn-prev:disabled{background-color:var(--el-pagination-button-disabled-bg-color);color:var(--el-pagination-button-disabled-color);cursor:not-allowed}.el-pagination .btn-next:focus-visible,.el-pagination .btn-prev:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700;width:inherit}.el-pagination>.is-first{margin-left:0!important}.el-pagination>.is-last{margin-right:0!important}.el-pagination .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination__sizes,.el-pagination__total{color:var(--el-text-color-regular);font-weight:400;margin-left:var(--el-pagination-item-gap)}.el-pagination__total[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__jump{align-items:center;color:var(--el-text-color-regular);display:flex;font-weight:400;margin-left:var(--el-pagination-item-gap)}.el-pagination__jump[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__goto{margin-right:8px}.el-pagination__editor{box-sizing:border-box;text-align:center}.el-pagination__editor.el-input{width:56px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination__classifier{margin-left:8px}.el-pagination__rightwrapper{align-items:center;display:flex;flex:1;justify-content:flex-end}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{background-color:var(--el-pagination-button-bg-color);margin:0 4px}.el-pagination.is-background .btn-next.is-active,.el-pagination.is-background .btn-prev.is-active,.el-pagination.is-background .el-pager li.is-active{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-pagination.is-background .btn-next.is-disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.is-disabled,.el-pagination.is-background .el-pager li:disabled{background-color:var(--el-disabled-bg-color);color:var(--el-text-color-placeholder)}.el-pagination.is-background .btn-next.is-disabled.is-active,.el-pagination.is-background .btn-next:disabled.is-active,.el-pagination.is-background .btn-prev.is-disabled.is-active,.el-pagination.is-background .btn-prev:disabled.is-active,.el-pagination.is-background .el-pager li.is-disabled.is-active,.el-pagination.is-background .el-pager li:disabled.is-active{background-color:var(--el-fill-color-dark);color:var(--el-text-color-secondary)}.el-pagination.is-background .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li{font-size:var(--el-pagination-font-size-small);height:var(--el-pagination-button-height-small);line-height:var(--el-pagination-button-height-small);min-width:var(--el-pagination-button-width-small)}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){font-size:var(--el-pagination-font-size-small)}.el-pagination--small .el-select{width:100px}.el-pagination--large .btn-next,.el-pagination--large .btn-prev,.el-pagination--large .el-pager li{height:var(--el-pagination-button-height-large);line-height:var(--el-pagination-button-height-large);min-width:var(--el-pagination-button-width-large)}.el-pagination--large .el-select .el-input{width:160px}.el-pager{font-size:0;list-style:none;margin:0;padding:0;-webkit-user-select:none;user-select:none}.el-pager,.el-pager li{align-items:center;display:flex}.el-pager li{background:var(--el-pagination-bg-color);border:none;border-radius:var(--el-pagination-border-radius);box-sizing:border-box;color:var(--el-pagination-button-color);cursor:pointer;font-size:var(--el-pagination-font-size);height:var(--el-pagination-button-height);justify-content:center;line-height:var(--el-pagination-button-height);min-width:var(--el-pagination-button-width);padding:0 4px;text-align:center}.el-pager li *{pointer-events:none}.el-pager li:focus{outline:none}.el-pager li.is-active,.el-pager li:hover{color:var(--el-pagination-hover-color)}.el-pager li.is-active{cursor:default;font-weight:700}.el-pager li.is-active.is-disabled{color:var(--el-text-color-secondary);font-weight:700}.el-pager li.is-disabled,.el-pager li:disabled{background-color:var(--el-pagination-button-disabled-bg-color);color:var(--el-pagination-button-disabled-color);cursor:not-allowed}.el-pager li:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.dashboard-checkbox[data-v-f8222714]{box-sizing:border-box;display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease}.dashboard-checkbox--list[data-v-f8222714]{width:18px;height:18px;border:2px solid #d9dce2;border-radius:5px;background:hsla(0,0%,100%,.72)}html.dark .dashboard-checkbox--list[data-v-f8222714]{border-color:#34343a;background:rgba(22,22,24,.75)}.dashboard-checkbox--list[data-v-f8222714]:hover{border-color:#38bdf8;background:hsla(0,0%,100%,.85)}html.dark .dashboard-checkbox--list[data-v-f8222714]:hover{background:rgba(22,22,24,.88)}.dashboard-checkbox--list[data-v-f8222714]:focus-visible{outline:none;border-color:#38bdf8;box-shadow:0 0 0 3px rgba(56,189,248,.14)}.dashboard-checkbox--list.checked[data-v-f8222714],.dashboard-checkbox--list.indeterminate[data-v-f8222714]{border-color:#38bdf8;background:#0ea5e9}.dashboard-checkbox--breadcrumb[data-v-f8222714]{position:relative;width:32px;height:32px;overflow:hidden;border:1px solid #d9dce2;border-radius:10px;background:hsla(0,0%,100%,.72);box-shadow:none;transition:background-color .2s ease,border-color .2s ease}html.dark .dashboard-checkbox--breadcrumb[data-v-f8222714]{border:1px solid #34343a;background:rgba(22,22,24,.75)}.dashboard-checkbox--breadcrumb[data-v-f8222714]:before{content:"";position:absolute;inset:7px;box-sizing:border-box;border:1px solid #d9dce2;border-radius:5px;background:transparent;transition:border-color .18s ease,background .18s ease}html.dark .dashboard-checkbox--breadcrumb[data-v-f8222714]:before{border-color:#34343a}.dashboard-checkbox--breadcrumb[data-v-f8222714]:hover{border-color:#bfc4cc;background:hsla(0,0%,100%,.85)}html.dark .dashboard-checkbox--breadcrumb[data-v-f8222714]:hover{border-color:#4a4a52;background:rgba(22,22,24,.88)}.dashboard-checkbox--breadcrumb[data-v-f8222714]:focus-visible{outline:none;border-color:rgba(56,189,248,.34)}.dashboard-checkbox--breadcrumb.checked[data-v-f8222714],.dashboard-checkbox--breadcrumb.indeterminate[data-v-f8222714]{border-color:#d9dce2;background:hsla(0,0%,100%,.72)}html.dark .dashboard-checkbox--breadcrumb.checked[data-v-f8222714],html.dark .dashboard-checkbox--breadcrumb.indeterminate[data-v-f8222714]{border-color:#34343a;background:rgba(22,22,24,.75)}.dashboard-checkbox--breadcrumb.checked[data-v-f8222714]:before,.dashboard-checkbox--breadcrumb.indeterminate[data-v-f8222714]:before{border-color:hsla(0,0%,100%,.4);background:#0ea5e9}.dashboard-checkbox-mark[data-v-f8222714]{position:relative;z-index:1;width:10px;height:10px}.dashboard-checkbox--breadcrumb .dashboard-checkbox-mark[data-v-f8222714]{width:11px;height:11px}@media (max-width:768px){.dashboard-checkbox--list[data-v-f8222714]{width:16px;height:16px;border-width:1.5px}.dashboard-checkbox--list .dashboard-checkbox-mark[data-v-f8222714]{width:9px;height:9px}.dashboard-checkbox--breadcrumb[data-v-f8222714]{width:28px;height:28px;border-radius:8px}.dashboard-checkbox--breadcrumb[data-v-f8222714]:before{inset:6px;border-radius:5px}.dashboard-checkbox--breadcrumb .dashboard-checkbox-mark[data-v-f8222714]{width:10px;height:10px}}.list-item[data-v-4b029ac8]{display:grid;grid-template-columns:50px 60px minmax(180px,1fr) 130px 100px 110px 130px 80px 100px 120px;content-visibility:auto;contain:layout paint style;contain-intrinsic-size:65px;padding:12px 20px;align-items:center;transition:background .2s ease;border-bottom:1px solid var(--el-border-color-lighter);min-width:-moz-fit-content;min-width:fit-content}.list-item[data-v-4b029ac8]:last-child{border-bottom:none}.list-item[data-v-4b029ac8]:hover{background:var(--el-fill-color-light)}.list-col[data-v-4b029ac8]{display:flex;align-items:center}.list-col-checkbox[data-v-4b029ac8]{justify-content:center;min-width:40px}.list-col-preview[data-v-4b029ac8]{justify-content:center;cursor:pointer}.list-col-name[data-v-4b029ac8]{cursor:pointer;overflow:hidden;padding-right:16px;min-width:0}.list-col-name[data-v-4b029ac8]:hover{color:#38bdf8}.filename-ellipsis[data-v-4b029ac8]{display:flex;max-width:100%;overflow:hidden;align-items:center}.filename-start[data-v-4b029ac8]{flex-shrink:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filename-end[data-v-4b029ac8]{flex-shrink:0;white-space:nowrap}.list-col-channel-name[data-v-4b029ac8],.list-col-channel[data-v-4b029ac8],.list-col-date[data-v-4b029ac8],.list-col-size[data-v-4b029ac8]{font-size:13px;color:var(--el-text-color-secondary)}.list-col-address[data-v-4b029ac8]{font-size:13px}.address-box[data-v-4b029ac8],.channel-name-box[data-v-4b029ac8]{background:var(--el-fill-color-light);border:1px solid var(--el-border-color-lighter);border-radius:4px;padding:4px 8px;font-size:12px;color:var(--el-text-color-secondary);max-width:100%;overflow-x:auto;overflow-y:hidden;white-space:nowrap;scrollbar-width:none;-ms-overflow-style:none}.address-box[data-v-4b029ac8]{width:85px;font-family:Consolas,Monaco,monospace}.channel-name-box[data-v-4b029ac8]{width:70px}.address-box[data-v-4b029ac8]::-webkit-scrollbar,.channel-name-box[data-v-4b029ac8]::-webkit-scrollbar{display:none}.list-col-tags[data-v-4b029ac8]{display:flex;align-items:center;gap:4px;flex-wrap:nowrap;overflow:hidden}.color-tag[data-v-4b029ac8]{padding:2px 8px;border-radius:10px;font-size:11px;color:#fff;white-space:nowrap;max-width:60px;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px rgba(0,0,0,.2)}.color-tag-more[data-v-4b029ac8]{min-width:30px;text-align:center}.list-empty[data-v-4b029ac8]{color:var(--el-text-color-placeholder)}.list-col-actions[data-v-4b029ac8]{display:flex;gap:8px;justify-content:flex-end}.list-preview-img[data-v-4b029ac8]{width:40px;height:40px;-o-object-fit:cover;object-fit:cover;border-radius:6px}.list-folder-icon[data-v-4b029ac8]{font-size:28px;color:var(--el-color-primary)}.list-file-icon[data-v-4b029ac8]{font-size:24px;color:var(--el-text-color-secondary)}.list-action-btn[data-v-4b029ac8]{width:32px;height:32px;border:none;border-radius:8px;background:var(--el-fill-color);color:var(--el-text-color-regular);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.list-action-btn[data-v-4b029ac8]:hover{background:#38bdf8;color:#fff}.list-action-danger[data-v-4b029ac8]:hover{background:var(--el-color-danger)}@media (max-width:768px){.list-item[data-v-4b029ac8]{grid-template-columns:20px 34px 1fr auto;padding:8px 6px;gap:6px;font-size:12px}.list-col-address[data-v-4b029ac8],.list-col-channel-name[data-v-4b029ac8],.list-col-channel[data-v-4b029ac8],.list-col-date[data-v-4b029ac8],.list-col-size[data-v-4b029ac8],.list-col-tags[data-v-4b029ac8]{display:none}.list-col-name[data-v-4b029ac8]{padding-right:8px;line-height:1.25}.list-preview-img[data-v-4b029ac8]{width:34px;height:34px;border-radius:5px}.list-folder-icon[data-v-4b029ac8]{font-size:24px}.list-file-icon[data-v-4b029ac8]{font-size:21px}.list-col-actions[data-v-4b029ac8]{gap:3px}.list-action-btn[data-v-4b029ac8]{width:26px;height:26px;border-radius:7px;font-size:12px}.list-col-checkbox[data-v-4b029ac8]{width:18px;min-width:18px}}.img-card[data-v-12b39bad]{width:100%;height:22vh;content-visibility:auto;contain:layout paint style;contain-intrinsic-size:260px;background:var(--admin-dashboard-imgcard-bg-color);border:1px solid var(--glass-border);border-radius:8px;box-shadow:var(--admin-dashboard-imgcard-shadow);overflow:hidden;position:relative;transition:transform .3s ease}.img-card[data-v-12b39bad]:before{content:"";position:absolute;top:0;left:0;right:0;height:45%;background:linear-gradient(180deg,rgba(0,0,0,.35) 0,rgba(0,0,0,.12) 50%,transparent);pointer-events:none;z-index:5}.img-card[data-v-12b39bad] .el-card__body{padding:0;height:100%;overflow:hidden}.img-card[data-v-12b39bad] .el-checkbox{position:absolute;top:10px;right:10px;transform:scale(1.5);z-index:10}.img-card[data-v-12b39bad]:hover{transform:scale(1.05)}.image-preview[data-v-12b39bad],.video-preview[data-v-12b39bad]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .4s ease,opacity .3s ease;filter:var(--image-preview-filter)}.video-preview[data-v-12b39bad]{cursor:pointer}.img-card:hover .file-icon[data-v-12b39bad],.img-card:hover .image-preview[data-v-12b39bad],.img-card:hover .video-preview[data-v-12b39bad]{transform:scale(1.03)}.image-preview[data-v-12b39bad]:hover{opacity:.8}.file-short-info[data-v-12b39bad]{position:absolute;z-index:10;top:3px;left:3px;display:flex;gap:5px;align-items:start}.success-tag[data-v-12b39bad]{background-color:rgba(34,139,34,.6);border:1px solid rgba(34,139,34,.7);border-radius:6px}.fail-tag[data-v-12b39bad],.success-tag[data-v-12b39bad]{color:hsla(0,0%,100%,.95);padding:3px 8px;font-size:11px;font-weight:500;height:auto;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.3)}.fail-tag[data-v-12b39bad]{background-color:rgba(220,53,69,.6);border:1px solid rgba(220,53,69,.7);border-radius:6px}.primary-tag[data-v-12b39bad]{background-color:rgba(250,82,194,.6);color:hsla(0,0%,100%,.95);border:1px solid rgba(250,82,194,.7);padding:3px 8px;border-radius:6px;font-size:11px;font-weight:500;display:flex;align-items:center;height:auto;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.3)}.file-preview[data-v-12b39bad]{display:flex;justify-content:center;align-items:center;width:100%;height:100%}.file-icon[data-v-12b39bad]{opacity:.6;font-size:clamp(40px,4vw,64px);transition:transform .4s ease}.audio-icon[data-v-12b39bad]{color:var(--el-color-primary);opacity:.8}.audio-card-preview[data-v-12b39bad]{cursor:pointer}.card-bottom-overlay[data-v-12b39bad]{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(0deg,rgba(0,0,0,.55) 0,rgba(0,0,0,.25) 50%,transparent);padding:clamp(15px,2.5vh,30px) clamp(6px,1vw,12px) clamp(5px,.8vh,10px);display:flex;flex-direction:column;gap:clamp(3px,.5vh,6px);z-index:10}.file-name-row[data-v-12b39bad]{display:flex;align-items:center;justify-content:center}.file-name[data-v-12b39bad]{color:#fff;font-size:clamp(10px,1.1vw,14px);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;text-shadow:0 1px 3px rgba(0,0,0,.5)}.action-bar[data-v-12b39bad]{display:flex;justify-content:space-between;align-items:center;opacity:0;transform:translateY(4px);transition:all .25s cubic-bezier(.4,0,.2,1);pointer-events:none}.el-card:hover .action-bar[data-v-12b39bad]{opacity:1;transform:translateY(0);pointer-events:auto}.action-bar-left[data-v-12b39bad],.action-bar-right[data-v-12b39bad]{display:flex;align-items:center;gap:clamp(3px,.4vw,6px)}.action-btn[data-v-12b39bad]{width:clamp(24px,2.5vw,28px);height:clamp(24px,2.5vw,28px);border:none;border-radius:clamp(5px,.6vw,8px);background:hsla(0,0%,100%,.15);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;font-size:clamp(11px,1.1vw,14px)}.action-btn[data-v-12b39bad]:hover{background:hsla(0,0%,100%,.25);transform:scale(1.08)}.action-btn[data-v-12b39bad]:active{transform:scale(.95)}.action-btn-danger[data-v-12b39bad]:hover{background:rgba(239,68,68,.6)}@media (max-width:768px){.img-card[data-v-12b39bad]{height:148px;border-radius:7px;contain-intrinsic-size:148px}.img-card[data-v-12b39bad] .el-checkbox{top:6px;right:6px;transform:scale(1.1)}.img-card[data-v-12b39bad]:hover{transform:none}.file-short-info[data-v-12b39bad]{gap:3px;max-width:calc(100% - 38px)}.fail-tag[data-v-12b39bad],.primary-tag[data-v-12b39bad],.success-tag[data-v-12b39bad]{max-width:72px;padding:2px 5px;border-radius:5px;font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-bottom-overlay[data-v-12b39bad]{padding:22px 6px 6px}.file-name[data-v-12b39bad]{font-size:11px}.file-icon[data-v-12b39bad]{font-size:34px}.action-bar[data-v-12b39bad]{display:none!important}}@keyframes skeleton-shimmer-12b39bad{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-wrapper[data-v-12b39bad]{width:100%;height:100%;background:linear-gradient(90deg,var(--skeleton-bg-color) 25%,color-mix(in srgb,var(--skeleton-bg-color) 70%,var(--skeleton-shimmer-color)) 50%,var(--skeleton-bg-color) 75%);background-size:200% 100%;animation:skeleton-shimmer-12b39bad 1.5s ease-in-out infinite}.error-wrapper[data-v-12b39bad]{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--skeleton-bg-color);cursor:pointer;gap:8px}.error-icon[data-v-12b39bad]{font-size:32px;color:var(--el-color-warning);opacity:.7}.error-text[data-v-12b39bad]{font-size:12px;color:var(--el-text-color-secondary)}.img-card[data-v-07286088]{width:100%;height:22vh;content-visibility:auto;contain:layout paint style;contain-intrinsic-size:260px;background:var(--admin-dashboard-imgcard-bg-color);border:1px solid var(--glass-border);border-radius:8px;box-shadow:var(--admin-dashboard-imgcard-shadow);overflow:hidden;position:relative;transition:transform .3s ease}.img-card[data-v-07286088] .el-card__body{padding:0;height:100%;overflow:hidden}.img-card[data-v-07286088] .el-checkbox{position:absolute;top:10px;right:10px;transform:scale(1.5);z-index:10}.img-card[data-v-07286088]:hover{transform:scale(1.05)}.folder-card[data-v-07286088]{cursor:pointer}.folder-icon[data-v-07286088]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;color:var(--el-color-primary)}.folder-icon-svg[data-v-07286088]{font-size:clamp(40px,4vw,64px);transition:transform .4s ease}.img-card:hover .folder-icon-svg[data-v-07286088]{transform:scale(1.03)}.card-bottom-overlay[data-v-07286088]{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.5);padding:clamp(15px,2.5vh,30px) clamp(6px,1vw,12px) clamp(5px,.8vh,10px);display:flex;flex-direction:column;gap:clamp(3px,.5vh,6px);z-index:10}.file-name-row[data-v-07286088]{display:flex;align-items:center;justify-content:center}.file-name[data-v-07286088]{color:#fff;font-size:clamp(10px,1.1vw,14px);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;text-shadow:0 1px 3px rgba(0,0,0,.5)}.action-bar[data-v-07286088]{display:flex;justify-content:space-between;align-items:center;opacity:0;transform:translateY(4px);transition:all .25s cubic-bezier(.4,0,.2,1);pointer-events:none}.el-card:hover .action-bar[data-v-07286088]{opacity:1;transform:translateY(0);pointer-events:auto}.action-bar-left[data-v-07286088],.action-bar-right[data-v-07286088]{display:flex;align-items:center;gap:clamp(3px,.4vw,6px)}.action-btn[data-v-07286088]{width:clamp(24px,2.5vw,28px);height:clamp(24px,2.5vw,28px);border:none;border-radius:clamp(5px,.6vw,8px);background:hsla(0,0%,100%,.15);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;font-size:clamp(11px,1.1vw,14px)}.action-btn[data-v-07286088]:hover{background:hsla(0,0%,100%,.25);transform:scale(1.08)}.action-btn[data-v-07286088]:active{transform:scale(.95)}.action-btn-danger[data-v-07286088]:hover{background:rgba(239,68,68,.6)}@media (max-width:768px){.img-card[data-v-07286088]{height:148px;border-radius:7px;contain-intrinsic-size:148px}.img-card[data-v-07286088] .el-checkbox{top:6px;right:6px;transform:scale(1.1)}.img-card[data-v-07286088]:hover{transform:none}.folder-icon-svg[data-v-07286088]{font-size:36px}.card-bottom-overlay[data-v-07286088]{padding:22px 6px 6px}.file-name[data-v-07286088]{font-size:11px}.action-bar[data-v-07286088]{display:none!important}}@keyframes skeleton-shimmer-ef863880{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes skeleton-pulse-ef863880{0%,to{opacity:.4}50%{opacity:.8}}.skeleton-card[data-v-ef863880]{width:100%;height:22vh;background:var(--admin-dashboard-imgcard-bg-color);border:1px solid var(--glass-border);border-radius:12px;box-shadow:var(--admin-dashboard-imgcard-shadow);overflow:hidden;position:relative}.skeleton-image[data-v-ef863880]{width:100%;height:100%;background:var(--skeleton-bg-color);background-size:200% 100%;animation:skeleton-shimmer-ef863880 1.5s ease-in-out infinite}.skeleton-info[data-v-ef863880]{position:absolute;bottom:0;left:0;right:0;padding:15px;background:rgba(0,0,0,.5)}.skeleton-text[data-v-ef863880]{height:14px;width:60%;margin:0 auto;border-radius:4px;background:var(--skeleton-bg-color);background-size:200% 100%;animation:skeleton-shimmer-ef863880 1.5s ease-in-out infinite}.skeleton-list-item[data-v-ef863880]{animation:skeleton-pulse-ef863880 1.5s ease-in-out infinite}.skeleton-checkbox[data-v-ef863880]{width:18px;height:18px;border-radius:4px;background:var(--skeleton-bg-color)}.skeleton-preview[data-v-ef863880]{width:40px;height:40px;border-radius:6px}.skeleton-preview[data-v-ef863880],.skeleton-text-long[data-v-ef863880]{background:var(--skeleton-bg-color);background-size:200% 100%;animation:skeleton-shimmer-ef863880 1.5s ease-in-out infinite}.skeleton-text-long[data-v-ef863880]{height:14px;width:80%;border-radius:4px}.skeleton-text-short[data-v-ef863880]{width:60px}.skeleton-text-short[data-v-ef863880],.skeleton-text-tiny[data-v-ef863880]{height:14px;border-radius:4px;background:var(--skeleton-bg-color);background-size:200% 100%;animation:skeleton-shimmer-ef863880 1.5s ease-in-out infinite}.skeleton-text-tiny[data-v-ef863880]{width:40px}.skeleton-tag[data-v-ef863880]{height:20px;width:50px;border-radius:10px;background:var(--skeleton-bg-color);background-size:200% 100%;animation:skeleton-shimmer-ef863880 1.5s ease-in-out infinite}.skeleton-actions[data-v-ef863880]{height:28px;width:80px;border-radius:6px;background:var(--skeleton-bg-color)}.list-item[data-v-ef863880]{display:grid;grid-template-columns:50px 60px minmax(180px,1fr) 130px 100px 110px 130px 80px 100px 120px;padding:12px 20px;align-items:center;border-bottom:1px solid var(--el-border-color-lighter)}.list-col[data-v-ef863880]{display:flex;align-items:center}.list-col-checkbox[data-v-ef863880],.list-col-preview[data-v-ef863880]{justify-content:center}@media (max-width:768px){.skeleton-card[data-v-ef863880]{height:148px;border-radius:7px}.skeleton-info[data-v-ef863880]{padding:22px 6px 6px}.skeleton-text[data-v-ef863880]{height:11px;width:68%;border-radius:3px}.list-item[data-v-ef863880]{box-sizing:border-box;grid-template-columns:20px 34px 1fr auto;padding:8px 6px;gap:6px;height:50px}.skeleton-checkbox[data-v-ef863880]{width:16px;height:16px}.skeleton-preview[data-v-ef863880]{width:34px;height:34px;border-radius:5px}.skeleton-text-long[data-v-ef863880],.skeleton-text-short[data-v-ef863880],.skeleton-text-tiny[data-v-ef863880]{height:10px;border-radius:3px}.skeleton-actions[data-v-ef863880]{width:58px;height:24px;border-radius:6px}.list-col-address[data-v-ef863880],.list-col-channel-name[data-v-ef863880],.list-col-channel[data-v-ef863880],.list-col-date[data-v-ef863880],.list-col-size[data-v-ef863880],.list-col-tags[data-v-ef863880]{display:none}}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{content:"";display:table}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{color:var(--el-text-color-placeholder);font-weight:700;margin:0 9px}.el-breadcrumb__separator.el-icon{font-weight:400;margin:0 6px}.el-breadcrumb__separator.el-icon svg{vertical-align:middle}.el-breadcrumb__item{align-items:center;display:inline-flex;float:left}.el-breadcrumb__inner{color:var(--el-text-color-regular)}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{color:var(--el-text-color-primary);font-weight:700;text-decoration:none;transition:var(--el-transition-color)}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:var(--el-color-primary);cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{color:var(--el-text-color-regular);cursor:text;font-weight:400}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-checkbox-group{font-size:0;line-height:0}.filter-dropdown[data-v-e6a38b20]{flex-shrink:0}.filter-trigger[data-v-e6a38b20]{cursor:pointer;display:flex;align-items:center}.header-icon[data-v-e6a38b20]{font-size:1.5em;cursor:pointer;transition:all .3s ease;color:var(--admin-container-color);outline:none}.header-icon[data-v-e6a38b20]:hover{color:var(--admin-purple);transform:scale(1.2)}.filter-badge[data-v-e6a38b20] .el-badge__content{background:#0ea5e9;border:none;font-size:10px;height:16px;line-height:16px;padding:0 5px}.filter-dropdown-menu[data-v-e6a38b20]{padding:8px 0;min-width:180px;max-height:400px;overflow-y:auto}.filter-section[data-v-e6a38b20]{padding:8px 12px;border-bottom:1px solid var(--el-border-color-lighter)}.filter-section[data-v-e6a38b20]:last-of-type{border-bottom:none}.filter-title[data-v-e6a38b20]{font-size:12px;font-weight:600;color:var(--el-text-color-secondary);margin-bottom:6px}.filter-options[data-v-e6a38b20],.filter-options[data-v-e6a38b20] .el-checkbox-group{display:flex;flex-direction:column;gap:2px}.filter-options[data-v-e6a38b20] .el-checkbox{margin-right:0;height:26px;padding:0 6px;border-radius:4px;transition:all .2s ease}.filter-options[data-v-e6a38b20] .el-checkbox:hover{background:var(--el-fill-color-light)}.filter-options[data-v-e6a38b20] .el-checkbox__label{font-size:13px;color:var(--el-text-color-primary)}.filter-options[data-v-e6a38b20] .el-checkbox__input.is-checked+.el-checkbox__label{color:#0ea5e9}.channel-group-title[data-v-e6a38b20]{font-size:11px;font-weight:600;color:var(--el-text-color-secondary);text-transform:uppercase;letter-spacing:.5px;padding:4px 6px;margin-top:4px;margin-bottom:2px}.channel-divider[data-v-e6a38b20]{height:1px;background:var(--el-border-color-lighter);margin:6px 0}.filter-options[data-v-e6a38b20] .el-checkbox__input.is-checked .el-checkbox__inner{background-color:#0ea5e9;border-color:#0ea5e9}.filter-actions[data-v-e6a38b20]{padding:10px 12px 6px;display:flex;justify-content:center}.filter-actions .el-button[data-v-e6a38b20]{width:100%;background:var(--el-fill-color-light);border:1px solid var(--el-border-color);color:var(--el-text-color-regular);border-radius:6px;transition:all .2s ease}.filter-actions .el-button[data-v-e6a38b20]:hover:not(:disabled){background:#0ea5e9;border-color:#38bdf8;color:#fff}.filter-actions .el-button[data-v-e6a38b20]:disabled{opacity:.5;cursor:not-allowed}@media (max-width:768px){.filter-dropdown-menu[data-v-e6a38b20]{min-width:160px;max-height:320px}.filter-section[data-v-e6a38b20]{padding:6px 10px}.filter-title[data-v-e6a38b20]{font-size:11px;margin-bottom:4px}.filter-options[data-v-e6a38b20] .el-checkbox{height:24px;padding:0 4px}.filter-options[data-v-e6a38b20] .el-checkbox__label{font-size:12px}.header-icon[data-v-e6a38b20]{font-size:1.2em}}.language-switcher[data-v-08567d0a]{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .3s ease}.lang-icon[data-v-08567d0a]{font-size:var(--lang-icon-size,1.5em);color:var(--lang-icon-color,var(--theme-toggle-color))}#themeToggle[data-v-5c149ed5]{border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:.375rem;transition-property:background-color,border-color,color;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.theme_toggle_circle1[data-v-5c149ed5]{transition:cx .5s ease-in-out,cy .5s ease-in-out,r .5s ease-in-out}.theme_toggle_circle2[data-v-5c149ed5]{transition:all .5s ease-in-out;fill:var(--admin-theme-toggle-bg-color)}.theme_toggle_svg[data-v-5c149ed5]{transition:transform .5s cubic-bezier(.68,-.55,.27,1.55);color:var(--admin-theme-toggle-color)}.dark.theme_toggle_svg[data-v-5c149ed5]{transform:rotate(40deg)}.theme_toggle_g[data-v-5c149ed5]{transition:opacity .5s ease-in-out}.icon-fade-enter-active[data-v-5c149ed5],.icon-fade-leave-active[data-v-5c149ed5]{transition:opacity .3s ease-in-out,transform .3s ease-in-out}.icon-fade-enter-from[data-v-5c149ed5]{opacity:0;transform:scale(.8) rotate(-90deg)}.icon-fade-leave-to[data-v-5c149ed5]{opacity:0;transform:scale(.8) rotate(90deg)}.icon-fade-enter-to[data-v-5c149ed5],.icon-fade-leave-from[data-v-5c149ed5]{opacity:1;transform:scale(1) rotate(0deg)}.auto-icon[data-v-5c149ed5]{display:inline-block}.tabs[data-v-07e603fa]{display:flex;align-items:center;justify-content:center;gap:8px}.page-switcher[data-v-07e603fa]{position:relative;display:grid;align-items:start;height:44px;overflow:visible}.page-switcher.is-open[data-v-07e603fa]{z-index:1200}.page-switcher-sheet[data-v-07e603fa]{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:4px;border:1px solid transparent;border-radius:14px;box-sizing:border-box;background-color:transparent;overflow:visible;transition:none}.page-switcher-sheet[data-v-07e603fa]:before{content:"";position:absolute;top:0;left:0;right:0;z-index:0;height:156px;border:1px solid var(--tabs-switcher-border-color);border-radius:14px;background:var(--tabs-dropdown-popper-bg-color);box-shadow:var(--tabs-dropdown-popper-shadow);opacity:0;transform:translateY(-4px) scaleY(.72);transform-origin:top center;pointer-events:none;transition:opacity .3s ease,transform .3s cubic-bezier(.22,1,.36,1);will-change:opacity,transform}.page-switcher.is-open .page-switcher-sheet[data-v-07e603fa]:before{opacity:1;transform:translateY(0) scaleY(1);pointer-events:auto}.page-switcher-title[data-v-07e603fa]{line-height:1}.page-switcher-arrow[data-v-07e603fa]{margin-left:auto;font-size:.75em;color:var(--tabs-switcher-accent-color);transition:transform .3s ease}.page-switcher.is-open .page-switcher-arrow[data-v-07e603fa]{transform:rotate(180deg)}.page-option[data-v-07e603fa]{position:relative;z-index:1;display:inline-flex;flex:0 0 auto;align-items:center;box-sizing:border-box;gap:7px;width:100%;min-width:148px;height:37px;padding:0 12px;border:none;border-radius:10px;color:var(--admin-container-color);background:transparent;font-size:15px;font-weight:600;font-family:inherit;white-space:nowrap;cursor:pointer;transition:none}.page-option-list[data-v-07e603fa]{position:absolute;top:41px;left:5px;right:5px;display:flex;flex-direction:column;align-items:stretch;opacity:0;pointer-events:none;transform:translateY(-9px) scaleY(.86);transform-origin:top center;transition:opacity .3s ease,transform .3s cubic-bezier(.22,1,.36,1)}.page-option-list .page-option[data-v-07e603fa]{position:relative;z-index:1;width:100%}.page-option-highlight[data-v-07e603fa]{position:absolute;top:0;left:0;right:0;z-index:0;height:37px;border-radius:10px;background:var(--tabs-switcher-hover-bg);opacity:0;pointer-events:none;transform:translateY(calc(var(--hovered-option-index)*37px));transition:opacity .3s ease,transform .3s cubic-bezier(.22,1,.36,1)}.page-option-highlight.is-visible[data-v-07e603fa]{opacity:1}.page-switcher.is-open .page-option-list[data-v-07e603fa]{opacity:1;pointer-events:auto;transform:translateY(0) scaleY(1)}.page-option.is-current[data-v-07e603fa]{height:37px;gap:8px;padding:0 14px;color:var(--tabs-switcher-current-color);background:var(--tabs-switcher-current-bg);border:1px solid var(--tabs-switcher-current-border-color);box-shadow:none;font-size:1.1em;font-weight:700;line-height:1.15}.page-option.is-current>.page-option-icon[data-v-07e603fa]{width:17px;font-size:1.05em}.page-option.is-current>.page-option-icon[data-v-07e603fa],.page-option.is-current>.page-switcher-arrow[data-v-07e603fa],.page-option.is-current>.page-switcher-title[data-v-07e603fa]{translate:0 1px}.page-option[data-v-07e603fa]:hover{color:var(--tabs-switcher-accent-color);background-color:transparent}.page-option.is-current[data-v-07e603fa]:hover{color:var(--tabs-switcher-current-color);background:var(--tabs-switcher-current-bg)}.page-option-icon[data-v-07e603fa]{width:16px;color:var(--tabs-switcher-accent-color)}@media (max-width:768px){.tabs[data-v-07e603fa]{gap:6px}.page-switcher-title[data-v-07e603fa]{max-width:6em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-switcher-sheet[data-v-07e603fa]{width:-moz-max-content;width:max-content;max-width:calc(100vw - 96px)}.page-switcher-sheet[data-v-07e603fa]:before{height:136px;transform:translateY(-3px) scaleY(.72)}.page-option[data-v-07e603fa]{justify-content:flex-start;min-width:0;height:32px;padding:0 10px;font-size:12px;gap:6px}.page-option-icon[data-v-07e603fa]{width:15px}.page-option-list[data-v-07e603fa]{top:36px;transform:translateY(-8px) scaleY(.86)}.page-option-highlight[data-v-07e603fa]{height:32px;transform:translateY(calc(var(--hovered-option-index)*32px))}.page-option.is-current[data-v-07e603fa]{height:32px;gap:5px;padding:0 10px;font-size:1em}.page-option.is-current>.page-option-icon[data-v-07e603fa]{width:16px}.page-option.is-current>.page-switcher-arrow[data-v-07e603fa]{margin-left:4px}.tabs-language-switcher[data-v-07e603fa]{--lang-icon-size:1.1em;padding:3px}}.tabs-language-switcher[data-v-07e603fa]{--lang-icon-size:1.3em;--lang-icon-color:var(--admin-theme-toggle-color);transition:color .3s ease;padding:5px}.tabs[data-v-07e603fa] #themeToggle,.tabs[data-v-07e603fa] #themeToggle:hover,.tabs[data-v-07e603fa] .language-switcher,.tabs[data-v-07e603fa] .language-switcher:hover{background-color:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.container[data-v-57eabdee]{background:var(--admin-container-bg-color);min-height:100vh;font-family:Arial,sans-serif;color:var(--admin-container-color);margin:0;padding:0}[data-v-57eabdee] .el-container,[data-v-57eabdee] .el-main{overflow:visible}[data-v-57eabdee] .el-dialog{border-radius:12px;background-color:var(--dialog-bg-color);box-shadow:var(--dialog-box-shadow)}.header-content[data-v-57eabdee]{display:flex;justify-content:space-between;align-items:center;padding:10px 24px;background:hsla(0,0%,100%,.72);border:1px solid #d9dce2;box-shadow:none;transition:background-color .25s ease,border-color .25s ease,box-shadow .25s ease;border-radius:16px;position:fixed;top:8px;left:50%;transform:translateX(-50%);width:calc(95% - 16px);z-index:2001;min-height:45px}html.dark .header-content[data-v-57eabdee]{background:rgba(22,22,24,.75);border:1px solid #34343a;box-shadow:none}@media (max-width:768px){.header-content[data-v-57eabdee]{flex-direction:column;top:6px;width:calc(100% - 32px);border-radius:14px;padding:6px 12px;gap:4px}.header-icon[data-v-57eabdee]{font-size:.95em}.header-content .actions[data-v-57eabdee]{gap:10px}.search-card[data-v-57eabdee] .el-input__inner{height:28px;font-size:.85em;width:50vw}.search-card[data-v-57eabdee] .el-input__wrapper{padding:0 10px}.search-card[data-v-57eabdee] .el-input__inner:focus{width:65vw}}.header-content[data-v-57eabdee]:hover{background:hsla(0,0%,100%,.82);box-shadow:none;transform:translateX(-50%)}html.dark .header-content[data-v-57eabdee]:hover{background:rgba(35,35,35,.85);box-shadow:none}.header-icon[data-v-57eabdee]{font-size:1.5em;cursor:pointer;transition:all .3s ease;color:var(--admin-container-color);outline:none}.header-icon[data-v-57eabdee]:hover{color:var(--admin-purple);transform:scale(1.2)}.breadcrumb-container[data-v-57eabdee]{display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:0 10px;margin-top:12px;margin-bottom:4px}.breadcrumb-view-toggle[data-v-57eabdee]{height:32px;box-sizing:border-box;flex:0 0 auto;display:inline-flex;align-items:center;gap:2px;padding:2px;border:1px solid #d9dce2;border-radius:10px;background:hsla(0,0%,100%,.72);box-shadow:none;transition:background-color .2s ease,border-color .2s ease}html.dark .breadcrumb-view-toggle[data-v-57eabdee]{background:rgba(22,22,24,.75);border:1px solid #34343a}.breadcrumb-view-toggle[data-v-57eabdee]:hover{border-color:#bfc4cc;background:hsla(0,0%,100%,.85)}html.dark .breadcrumb-view-toggle[data-v-57eabdee]:hover{background:rgba(22,22,24,.88);border-color:#4a4a52}.breadcrumb-view-button[data-v-57eabdee]{width:28px;height:26px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:5px;color:var(--el-text-color-secondary);background:transparent;cursor:pointer;transition:color .16s ease}.breadcrumb-view-button[data-v-57eabdee]:hover{color:#38bdf8}.breadcrumb-view-button.is-active[data-v-57eabdee]{color:#38bdf8;background:rgba(56,189,248,.12);box-shadow:none}.breadcrumb-view-icon[data-v-57eabdee]{width:14px;height:14px}@media (max-width:768px){.breadcrumb-container[data-v-57eabdee]{flex-direction:row;align-items:center;gap:8px;padding:0 5px;margin-top:8px;margin-bottom:2px}.breadcrumb-view-toggle[data-v-57eabdee]{height:28px;padding:2px;border-radius:8px}.breadcrumb-view-button[data-v-57eabdee]{width:24px;height:22px;border-radius:6px}.breadcrumb-view-icon[data-v-57eabdee]{width:12px;height:12px}}.stats-badge[data-v-57eabdee]{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;color:var(--el-text-color-secondary);background:hsla(0,0%,100%,.72);padding:4px 12px;border-radius:12px;border:1px solid #d9dce2;box-shadow:none;transition:background-color .2s ease,border-color .2s ease;white-space:nowrap;flex-shrink:0;margin-left:auto}html.dark .stats-badge[data-v-57eabdee]{background:rgba(22,22,24,.75);border:1px solid #34343a}.stats-badge[data-v-57eabdee]:hover{background:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark .stats-badge[data-v-57eabdee]:hover{background:rgba(22,22,24,.88);border-color:#4a4a52}.stats-badge-icon[data-v-57eabdee]{font-size:11px;opacity:.8}@media (max-width:768px){.stats-badge[data-v-57eabdee]{font-size:10px;padding:2px 6px;border-radius:8px}.stats-badge-icon[data-v-57eabdee]{font-size:9px}}.header-content .actions[data-v-57eabdee]{display:flex;align-items:center;gap:15px}@media (max-width:768px){.header-content .actions[data-v-57eabdee]{margin-top:10px}}.header-content .actions i[data-v-57eabdee]{font-size:1.5em;cursor:pointer;transition:color .3s,transform .3s;color:var(--admin-container-color)}.header-content .actions i[data-v-57eabdee]:hover{color:var(--admin-purple);transform:scale(1.2)}.header-content .actions .el-dropdown-link i[data-v-57eabdee]{color:var(--admin-container-color)}.header-content .actions .el-dropdown-link i[data-v-57eabdee]:hover{color:var(--admin-purple)}.header-content .actions .disabled[data-v-57eabdee]{color:#c0c4cc;pointer-events:none}.header-content .actions .enabled[data-v-57eabdee]{color:var(--admin-purple)}.search-area[data-v-57eabdee]{margin-left:auto;margin-right:20px;display:flex;align-items:center;gap:8px}@media (max-width:768px){.search-area[data-v-57eabdee]{margin-right:0;margin-left:0;margin-top:10px;gap:6px}}.search-card[data-v-57eabdee]{display:flex;align-items:center}.search-card[data-v-57eabdee] .el-input{background:transparent!important;border:none!important;box-shadow:none!important}.search-card[data-v-57eabdee] .el-input__wrapper{border-radius:20px;background:var(--glass-bg);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.search-card[data-v-57eabdee] .el-input__inner{width:280px;height:40px;font-size:1.2em;border:none;transition:width .3s;background:none}.search-card[data-v-57eabdee] .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder);font-style:italic;font-weight:400;font-size:14px;opacity:.6;letter-spacing:.5px;-moz-transition:all .3s ease;transition:all .3s ease}.search-card[data-v-57eabdee] .el-input__inner::placeholder{color:var(--el-text-color-placeholder);font-style:italic;font-weight:400;font-size:14px;opacity:.6;letter-spacing:.5px;transition:all .3s ease}.search-card[data-v-57eabdee] .el-input__inner:focus::-moz-placeholder{opacity:.4;transform:translateX(5px)}.search-card[data-v-57eabdee] .el-input__inner:focus::placeholder{opacity:.4;transform:translateX(5px)}@media (max-width:768px){.search-card[data-v-57eabdee] .el-input__inner{width:45vw;height:32px;font-size:1em}}.search-card[data-v-57eabdee] .el-input__inner:focus{width:350px}@media (max-width:768px){.search-card[data-v-57eabdee] .el-input__inner:focus{width:55vw}}.search-icon[data-v-57eabdee]{cursor:pointer;color:var(--admin-container-color);transition:all .3s ease;font-size:1.3em;opacity:0;transform:scale(.8);pointer-events:none}.search-card:focus-within .search-icon[data-v-57eabdee]{opacity:1;transform:scale(1);pointer-events:auto}.search-card:focus-within .search-icon[data-v-57eabdee]:hover{color:var(--admin-purple);transform:scale(1.2)}.search-card[data-v-57eabdee] .el-input__suffix{display:flex;align-items:center;right:10px}.main-container[data-v-57eabdee]{display:flex;flex-direction:column;padding:20px 60px;min-height:calc(100vh - 80px);transition:padding-bottom .24s ease}.main-container.has-batch-toolbar[data-v-57eabdee]{padding-bottom:72px}@media (max-width:768px){.main-container[data-v-57eabdee]{margin-top:12vh;padding:16px 10px}.main-container.has-batch-toolbar[data-v-57eabdee]{padding-bottom:86px}}.content[data-v-57eabdee]{display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(3,1fr);gap:20px;padding:10px;padding-bottom:0;flex-grow:1;min-height:80vh}.content.is-drag-selecting[data-v-57eabdee],.list-view.is-drag-selecting[data-v-57eabdee]{cursor:crosshair}.content.is-drag-selecting[data-v-57eabdee] .img-card:hover,.content.is-drag-selecting[data-v-57eabdee] .img-card:hover .file-icon,.content.is-drag-selecting[data-v-57eabdee] .img-card:hover .folder-icon-svg,.content.is-drag-selecting[data-v-57eabdee] .img-card:hover .image-preview,.content.is-drag-selecting[data-v-57eabdee] .img-card:hover .video-preview{transform:none}.content.is-drag-selecting[data-v-57eabdee] .image-preview:hover{opacity:1}.content.is-drag-selecting[data-v-57eabdee] .action-btn:hover{transform:none;background:hsla(0,0%,100%,.15)}.list-view.is-drag-selecting[data-v-57eabdee] .list-item:hover{background:transparent}.list-view.is-drag-selecting[data-v-57eabdee] .list-action-btn:hover{color:var(--el-text-color-regular);background:var(--el-fill-color)}.list-view.is-drag-selecting[data-v-57eabdee] .list-action-danger:hover{background:var(--el-fill-color)}.empty-state[data-v-57eabdee]{grid-column:1/-1;grid-row:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--admin-container-color);opacity:.6}.empty-icon[data-v-57eabdee]{font-size:64px;margin-bottom:20px;color:var(--admin-container-color);opacity:.3}.empty-text[data-v-57eabdee]{font-size:18px;font-weight:500;margin:0 0 8px 0}.empty-hint[data-v-57eabdee]{font-size:14px;margin:0;opacity:.7}.list-empty[data-v-57eabdee]{padding:80px 20px}@media (max-width:768px){.content[data-v-57eabdee]{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;gap:8px;margin-top:15px;padding:0;flex-grow:0;min-height:auto;align-content:start;align-items:start}}.list-view[data-v-57eabdee]{display:flex;flex-direction:column;gap:0;background:var(--admin-dashboard-imgcard-bg-color);border:1px solid var(--glass-border);border-radius:12px;overflow-x:auto;overflow-y:visible;box-shadow:var(--admin-dashboard-imgcard-shadow);margin-top:15px}.list-header[data-v-57eabdee]{display:grid;grid-template-columns:50px 60px minmax(180px,1fr) 130px 100px 110px 130px 80px 100px 120px;padding:12px 20px;background:var(--admin-dashboard-stats-bg);font-weight:600;font-size:13px;color:var(--el-text-color-secondary);border-bottom:1px solid var(--el-border-color-lighter);min-width:-moz-fit-content;min-width:fit-content}.list-col[data-v-57eabdee]{display:flex;align-items:center}.list-col-checkbox[data-v-57eabdee]{justify-content:center;min-width:40px}@media (max-width:768px){.list-header[data-v-57eabdee]{display:none}}.pagination-container[data-v-57eabdee]{display:flex;justify-content:center;align-items:center;margin-top:20px;padding-bottom:20px;gap:15px;position:relative}.pagination-center[data-v-57eabdee]{display:flex;align-items:center;gap:10px}.pagination-container[data-v-57eabdee] .el-pagination{--el-pagination-button-bg-color:var(--admin-dashboard-btn-bg-color);--el-pagination-hover-color:var(--admin-purple)}.pagination-container[data-v-57eabdee] .el-pager li{background:hsla(0,0%,100%,.72);border-radius:10px;margin:0 4px;min-width:36px;height:36px;line-height:36px;font-weight:500;border:1px solid #d9dce2;box-shadow:none;transition:background-color .25s ease,border-color .25s ease,color .25s ease}html.dark .pagination-container[data-v-57eabdee] .el-pager li{background:rgba(22,22,24,.75);border:1px solid #34343a}.pagination-container[data-v-57eabdee] .el-pager li:hover{color:#38bdf8;background:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark .pagination-container[data-v-57eabdee] .el-pager li:hover{background:rgba(22,22,24,.88);border-color:#4a4a52}.pagination-container[data-v-57eabdee] .el-pager li.is-active{background:#0ea5e9!important;color:#fff!important;border-radius:10px;box-shadow:none;transition:all .3s cubic-bezier(.4,0,.2,1)}.pagination-container[data-v-57eabdee] .el-pager li.is-active:hover{box-shadow:none!important}.pagination-container[data-v-57eabdee] .btn-next,.pagination-container[data-v-57eabdee] .btn-prev{background:hsla(0,0%,100%,.72)!important;border-radius:10px!important;min-width:36px;height:36px;border:1px solid #d9dce2!important;box-shadow:none;transition:background-color .25s ease,border-color .25s ease,color .25s ease}html.dark .pagination-container[data-v-57eabdee] .btn-next,html.dark .pagination-container[data-v-57eabdee] .btn-prev{background:rgba(22,22,24,.75)!important;border:1px solid #34343a!important}.pagination-container[data-v-57eabdee] .btn-next:hover,.pagination-container[data-v-57eabdee] .btn-prev:hover{color:#38bdf8;background:hsla(0,0%,100%,.85)!important;border-color:#bfc4cc!important}html.dark .pagination-container[data-v-57eabdee] .btn-next:hover,html.dark .pagination-container[data-v-57eabdee] .btn-prev:hover{background:rgba(22,22,24,.88)!important;border-color:#4a4a52!important}.pagination-right[data-v-57eabdee]{display:flex;align-items:center;gap:10px;position:absolute;right:0}.page-total[data-v-57eabdee]{font-size:13px;color:var(--el-text-color-secondary);white-space:nowrap}.page-jump[data-v-57eabdee]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--el-text-color-secondary)}.page-jump .jump-input[data-v-57eabdee]{width:50px}.page-jump .jump-input[data-v-57eabdee] .el-input__wrapper{background:hsla(0,0%,100%,.72);box-shadow:none;border:1px solid #d9dce2;border-radius:8px;padding:0 8px;height:28px}html.dark .page-jump .jump-input[data-v-57eabdee] .el-input__wrapper{background:rgba(22,22,24,.75);border:1px solid #34343a}.page-jump .jump-input[data-v-57eabdee] .el-input__inner{text-align:center;color:var(--el-text-color-primary);height:28px;line-height:28px}.page-jump .jump-btn[data-v-57eabdee]{background:#0ea5e9;border:none;border-radius:8px;padding:0 12px;height:28px;font-size:12px;font-weight:600;color:#fff;box-shadow:none;transition:all .3s ease}.page-jump .jump-btn[data-v-57eabdee]:hover{box-shadow:none}@media (max-width:768px){.pagination-container[data-v-57eabdee]{flex-direction:column;gap:8px;margin-top:14px;padding-bottom:10px}.pagination-center[data-v-57eabdee]{order:0;gap:6px;flex-wrap:wrap;justify-content:center}.pagination-container[data-v-57eabdee] .el-pager li{min-width:30px;height:30px;line-height:30px;margin:0 2px;border-radius:8px;font-size:12px}.pagination-container[data-v-57eabdee] .btn-next,.pagination-container[data-v-57eabdee] .btn-prev{position:static!important;top:auto!important;left:auto!important;right:auto!important;display:none!important;min-width:30px!important;width:30px!important;height:30px!important;border-radius:8px!important;font-size:12px;scale:1!important}.pagination-right[data-v-57eabdee]{position:static;width:100%;justify-content:center;gap:6px;order:1}.page-jump[data-v-57eabdee],.page-total[data-v-57eabdee]{font-size:12px}.page-jump .jump-input[data-v-57eabdee]{width:40px}.page-jump .jump-input[data-v-57eabdee] .el-input__wrapper{height:26px;padding:0 6px;border-radius:7px}.page-jump .jump-input[data-v-57eabdee] .el-input__inner{height:26px;line-height:26px;font-size:12px}.page-jump .jump-btn[data-v-57eabdee]{height:26px;padding:0 10px;border-radius:7px;font-size:11px}.refresh-btn[data-v-57eabdee]{width:30px!important;min-width:30px!important;padding:0!important}.load-more[data-v-57eabdee],.refresh-btn[data-v-57eabdee]{--el-button-size:30px;height:30px!important;border-radius:8px!important;font-size:12px!important}.load-more[data-v-57eabdee]{min-height:30px!important;padding:0 10px!important}}.refresh-btn[data-v-57eabdee]{cursor:pointer;background:hsla(0,0%,100%,.72);box-shadow:none;color:#38bdf8;border:1px solid #d9dce2;border-radius:10px;width:36px;height:36px;min-width:36px;padding:0;display:flex;align-items:center;justify-content:center;font-size:14px;transition:background-color .25s ease,border-color .25s ease,color .25s ease}html.dark .refresh-btn[data-v-57eabdee]{background:rgba(22,22,24,.75);border:1px solid #34343a}.refresh-btn[data-v-57eabdee]:hover{background:hsla(0,0%,100%,.85);border-color:#bfc4cc;color:#0ea5e9}html.dark .refresh-btn[data-v-57eabdee]:hover{background:rgba(22,22,24,.88);border-color:#4a4a52}.load-more[data-v-57eabdee]{cursor:pointer;background:#0ea5e9;box-shadow:none;color:#fff;border:none;border-radius:10px;height:36px;padding:0 16px;font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1)}.load-more[data-v-57eabdee]:hover{box-shadow:none}[data-v-57eabdee] .btn-prev{left:8px}[data-v-57eabdee] .btn-next,[data-v-57eabdee] .btn-prev{border-radius:100%;position:fixed;top:50%;scale:1;color:var(--admin-dashboard-btn-color)}[data-v-57eabdee] .btn-next{right:8px}@media (min-width:768px){[data-v-57eabdee] .el-pagination.is-background .btn-next,[data-v-57eabdee] .el-pagination.is-background .btn-prev{background-color:hsla(0,0%,100%,.72);border:1px solid #d9dce2;box-shadow:none;transition:background-color .25s ease,border-color .25s ease}html.dark[data-v-57eabdee] .el-pagination.is-background .btn-next,html.dark[data-v-57eabdee] .el-pagination.is-background .btn-prev{background-color:rgba(22,22,24,.75);border:1px solid #34343a}[data-v-57eabdee] .el-pagination.is-background .btn-next:hover,[data-v-57eabdee] .el-pagination.is-background .btn-prev:hover{background-color:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark[data-v-57eabdee] .el-pagination.is-background .btn-next:hover,html.dark[data-v-57eabdee] .el-pagination.is-background .btn-prev:hover{background-color:rgba(22,22,24,.88);border-color:#4a4a52}}.question-icon[data-v-57eabdee]{margin:0 3px}.breadcrumb[data-v-57eabdee]{height:32px;box-sizing:border-box;display:flex;align-items:center;padding:0 12px;background-color:hsla(0,0%,100%,.72);border:1px solid #d9dce2;border-radius:10px;font-size:.95em;box-shadow:none;cursor:pointer;transition:background-color .2s ease,border-color .2s ease}html.dark .breadcrumb[data-v-57eabdee]{background-color:rgba(22,22,24,.75);border:1px solid #34343a}.breadcrumb[data-v-57eabdee]:hover{background-color:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark .breadcrumb[data-v-57eabdee]:hover{background-color:rgba(22,22,24,.88);border-color:#4a4a52}.breadcrumb-home-icon[data-v-57eabdee]{font-size:14px;color:var(--el-text-color-secondary);cursor:pointer;transition:color .2s ease}.breadcrumb-home-icon[data-v-57eabdee]:hover{color:#38bdf8}[data-v-57eabdee] .el-breadcrumb__item{cursor:pointer}[data-v-57eabdee] .el-breadcrumb,[data-v-57eabdee] .el-breadcrumb__inner,[data-v-57eabdee] .el-breadcrumb__item,[data-v-57eabdee] .el-breadcrumb__separator{display:inline-flex;align-items:center;height:100%;line-height:32px}[data-v-57eabdee] .el-breadcrumb__inner{cursor:pointer}[data-v-57eabdee] .el-breadcrumb__inner:hover{color:var(--el-color-primary)}.mobile-directory-trigger[data-v-57eabdee]{display:none;align-items:center;flex:1 1 auto;min-width:0;height:28px;box-sizing:border-box;gap:6px;padding:0 10px;background:hsla(0,0%,100%,.72);border-radius:8px;border:1px solid #d9dce2;cursor:pointer;transition:background-color .2s ease,border-color .2s ease}html.dark .mobile-directory-trigger[data-v-57eabdee]{background:rgba(22,22,24,.75);border:1px solid #34343a}.mobile-directory-trigger[data-v-57eabdee]:active{background:hsla(0,0%,100%,.85);border-color:#bfc4cc}.mobile-directory-icon[data-v-57eabdee]{flex:0 0 auto;font-size:12px;color:#38bdf8}.mobile-directory-path[data-v-57eabdee]{display:block;flex:1 1 auto;min-width:0;font-size:12px;font-weight:500;line-height:1;color:var(--el-text-color-primary);max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-directory-arrow[data-v-57eabdee]{flex:0 0 auto;font-size:8px;color:var(--el-text-color-secondary)}.desktop-only[data-v-57eabdee]{display:block}@media (max-width:768px){.mobile-directory-trigger[data-v-57eabdee]{display:flex}.desktop-only[data-v-57eabdee]{display:none!important}.breadcrumb-container[data-v-57eabdee]{padding:0;margin-left:0;width:100%;box-sizing:border-box}}.drag-select-overlay[data-v-57eabdee]{position:fixed;background:rgba(24,144,255,.1);border:1px solid rgba(24,144,255,.6);pointer-events:none;z-index:9999;border-radius:2px} \ No newline at end of file +.move-dialog-content[data-v-7aaa437c]{padding:0 10px}.move-path-input-container[data-v-7aaa437c]{display:flex;align-items:center;gap:10px}.move-path-input[data-v-7aaa437c]{flex:1}.directory-picker-trigger[data-v-7aaa437c]{flex-shrink:0}.move-dialog-hint[data-v-7aaa437c]{margin-top:12px;font-size:12px;color:var(--el-text-color-secondary)}.move-drawer-content[data-v-7aaa437c]{padding:16px}.move-path-section[data-v-7aaa437c]{margin-bottom:16px}.move-path-label[data-v-7aaa437c]{font-size:14px;font-weight:500;margin-bottom:8px;color:var(--el-text-color-primary)}.move-path-input-row[data-v-7aaa437c]{display:flex;align-items:center;gap:10px}.embedded-tree-section[data-v-7aaa437c]{margin-top:16px;border:1px solid var(--el-border-color-lighter);border-radius:8px;overflow:hidden}.tree-section-header[data-v-7aaa437c]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-lighter)}.tree-section-title[data-v-7aaa437c]{font-size:14px;font-weight:500}.tree-container[data-v-7aaa437c]{min-height:200px;max-height:300px;overflow-y:auto;padding:8px}.directory-tree[data-v-7aaa437c]{background:transparent}.directory-tree[data-v-7aaa437c] .el-tree-node__content{height:44px;padding:0 8px;border-radius:8px}.tree-node[data-v-7aaa437c]{display:flex;align-items:center;gap:8px;padding:4px 0;width:100%}.tree-node.is-current[data-v-7aaa437c]{color:var(--el-color-primary);font-weight:500}.folder-icon[data-v-7aaa437c]{color:var(--el-color-warning);font-size:16px}.node-label[data-v-7aaa437c]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.error-state[data-v-7aaa437c]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 20px;text-align:center}.error-icon[data-v-7aaa437c]{font-size:32px;color:var(--el-color-danger)}.error-text[data-v-7aaa437c]{color:var(--el-text-color-secondary);font-size:14px}.drawer-footer[data-v-7aaa437c]{display:flex;gap:12px;padding:0 16px 16px}.footer-btn[data-v-7aaa437c]{flex:1}.move-dialog .el-dialog__body{padding:20px}.move-drawer{border-radius:16px 16px 0 0!important}.move-drawer .el-drawer__header{margin-bottom:0;padding:16px 20px;border-bottom:1px solid var(--el-border-color-lighter)}.move-drawer .el-drawer__body,.move-drawer .el-drawer__footer{padding:0}.mobile-drawer-overlay[data-v-3b79a1b6]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);z-index:2000}.mobile-drawer[data-v-3b79a1b6]{position:absolute;top:22vh;left:8px;bottom:8px;width:280px;max-width:calc(85vw - 16px);background:var(--el-bg-color);border:1px solid var(--glass-border);border-radius:16px;box-shadow:none;display:flex;flex-direction:column;overflow:hidden}html.dark .mobile-drawer[data-v-3b79a1b6]{background:rgba(40,40,45,.98);box-shadow:none}.mobile-drawer-header[data-v-3b79a1b6]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:rgba(56,189,248,.1);border-bottom:1px solid var(--el-border-color-lighter)}.mobile-drawer-title[data-v-3b79a1b6]{font-size:15px;font-weight:600;color:#38bdf8;display:flex;align-items:center;gap:8px}.mobile-drawer-title[data-v-3b79a1b6]:before{content:"";display:inline-block;width:4px;height:16px;background:#38bdf8;border-radius:2px}.mobile-drawer-close[data-v-3b79a1b6]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--el-text-color-secondary);cursor:pointer;border-radius:8px;transition:all .2s ease;background:transparent}.mobile-drawer-close[data-v-3b79a1b6]:active{background:var(--el-fill-color);color:var(--el-text-color-primary)}.mobile-drawer-content[data-v-3b79a1b6]{flex:1;overflow-y:auto;padding:8px}.mobile-drawer-item[data-v-3b79a1b6]{display:flex;align-items:center;gap:12px;padding:14px 16px;margin:2px 0;cursor:pointer;transition:all .2s ease;color:var(--el-text-color-primary);border-radius:10px;font-size:14px}.mobile-drawer-item[data-v-3b79a1b6]:active{background:var(--el-fill-color-light);transform:scale(.98)}.mobile-drawer-item.active[data-v-3b79a1b6]{background:rgba(56,189,248,.15);color:#38bdf8;font-weight:600}.mobile-drawer-item-icon[data-v-3b79a1b6]{font-size:18px;width:24px;text-align:center;opacity:.7}.mobile-drawer-item.active .mobile-drawer-item-icon[data-v-3b79a1b6]{opacity:1;color:#38bdf8}.mobile-drawer-back[data-v-3b79a1b6]{display:flex;align-items:center;gap:12px;padding:14px 16px;margin:8px 8px;border-radius:10px;background:var(--el-fill-color-lighter);cursor:pointer;transition:all .2s ease;color:var(--el-text-color-secondary);font-size:14px}.mobile-drawer-back[data-v-3b79a1b6]:active{background:var(--el-fill-color);color:var(--el-text-color-primary);transform:scale(.98)}.drawer-slide-enter-active[data-v-3b79a1b6]{transition:opacity .3s ease}.drawer-slide-leave-active[data-v-3b79a1b6]{transition:opacity .2s ease}.drawer-slide-enter-active .mobile-drawer[data-v-3b79a1b6]{animation:slideInLeft-3b79a1b6 .3s ease-out}.drawer-slide-leave-active .mobile-drawer[data-v-3b79a1b6]{animation:slideOutLeft-3b79a1b6 .2s ease-in}.drawer-slide-enter-from[data-v-3b79a1b6],.drawer-slide-leave-to[data-v-3b79a1b6]{opacity:0}@keyframes slideInLeft-3b79a1b6{0%{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes slideOutLeft-3b79a1b6{0%{transform:translateX(0)}to{transform:translateX(-100%)}}.bottom-sheet-overlay[data-v-efef5a4c]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:9999;display:flex;align-items:flex-end;justify-content:center}.bottom-sheet[data-v-efef5a4c]{width:100%;max-width:100%;background:var(--bottom-sheet-bg,hsla(0,0%,100%,.95));border-radius:20px 20px 0 0;max-height:70vh;overflow:hidden;box-shadow:none;border-top:1px solid var(--bottom-sheet-border,rgba(0,0,0,.05))}html.dark .bottom-sheet[data-v-efef5a4c]{--bottom-sheet-bg:rgba(40,44,52,.95);--bottom-sheet-border:hsla(0,0%,100%,.1);box-shadow:none}.bottom-sheet-header[data-v-efef5a4c]{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px 20px 12px;border-bottom:1px solid var(--el-border-color-lighter)}.bottom-sheet-handle[data-v-efef5a4c]{width:40px;height:4px;background:var(--el-border-color);border-radius:2px}.bottom-sheet-title[data-v-efef5a4c]{font-size:16px;font-weight:600;color:var(--el-text-color-primary);text-align:center;max-width:80%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}html.dark .bottom-sheet-title[data-v-efef5a4c]{color:#f0f0f0}.bottom-sheet-content[data-v-efef5a4c]{padding:12px 16px;padding-bottom:calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px}.bottom-sheet-item[data-v-efef5a4c]{display:flex;align-items:center;gap:16px;padding:16px 20px;border-radius:14px;cursor:pointer;transition:all .2s ease;background:var(--bottom-sheet-item-bg,rgba(0,0,0,.04));color:var(--el-text-color-primary)}html.dark .bottom-sheet-item[data-v-efef5a4c]{--bottom-sheet-item-bg:hsla(0,0%,100%,.08)}.bottom-sheet-item[data-v-efef5a4c]:active{transform:scale(.98);background:var(--bottom-sheet-item-active-bg,rgba(0,0,0,.08))}html.dark .bottom-sheet-item[data-v-efef5a4c]:active{--bottom-sheet-item-active-bg:hsla(0,0%,100%,.15)}.bottom-sheet-icon[data-v-efef5a4c]{font-size:20px;width:28px;text-align:center;color:#38bdf8}.bottom-sheet-danger .bottom-sheet-icon[data-v-efef5a4c],.bottom-sheet-danger[data-v-efef5a4c]{color:var(--el-color-danger)}.bottom-sheet-enter-active[data-v-efef5a4c]{transition:all .3s ease-out}.bottom-sheet-leave-active[data-v-efef5a4c]{transition:all .2s ease-in}.bottom-sheet-enter-active .bottom-sheet[data-v-efef5a4c]{animation:slideUp-efef5a4c .3s ease-out}.bottom-sheet-leave-active .bottom-sheet[data-v-efef5a4c]{animation:slideDown-efef5a4c .2s ease-in}.bottom-sheet-enter-from[data-v-efef5a4c],.bottom-sheet-leave-to[data-v-efef5a4c]{opacity:0}.bottom-sheet-enter-from .bottom-sheet[data-v-efef5a4c],.bottom-sheet-leave-to .bottom-sheet[data-v-efef5a4c]{transform:translateY(100%)}@keyframes slideUp-efef5a4c{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideDown-efef5a4c{0%{transform:translateY(0)}to{transform:translateY(100%)}}.el-tabs{--el-tabs-header-height:40px;display:flex}.el-tabs__header{align-items:center;display:flex;justify-content:space-between;margin:0 0 15px;padding:0;position:relative}.el-tabs__header-vertical{flex-direction:column}.el-tabs__active-bar{background-color:var(--el-color-primary);bottom:0;height:2px;left:0;list-style:none;position:absolute;transition:width var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),transform var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);z-index:1}.el-tabs__active-bar.is-bottom{bottom:auto}.el-tabs__new-tab{align-items:center;border:1px solid var(--el-border-color);border-radius:3px;color:var(--el-text-color-primary);cursor:pointer;display:flex;flex-shrink:0;font-size:12px;height:20px;justify-content:center;line-height:20px;margin:10px 0 10px 10px;text-align:center;transition:all .15s;width:20px}.el-tabs__new-tab .is-icon-plus{height:inherit;transform:scale(.8);width:inherit}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__new-tab-vertical{margin-left:0}.el-tabs__nav-wrap{flex:1 auto;margin-bottom:-1px;overflow:hidden;position:relative}.el-tabs__nav-wrap:after{background-color:var(--el-border-color-light);bottom:0;content:"";height:2px;left:0;position:absolute;width:100%;z-index:var(--el-index-normal)}.el-tabs__nav-wrap.is-bottom:after{bottom:auto;top:0}.el-tabs__nav-wrap.is-scrollable{box-sizing:border-box;padding:0 20px}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{color:var(--el-text-color-secondary);cursor:pointer;font-size:12px;line-height:44px;position:absolute;text-align:center;width:20px}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{display:flex;float:left;position:relative;transition:transform var(--el-transition-duration);white-space:nowrap;z-index:calc(var(--el-index-normal) + 1)}.el-tabs__nav.is-stretch{display:flex;min-width:100%}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{align-items:center;box-sizing:border-box;color:var(--el-text-color-primary);display:flex;font-size:var(--el-font-size-base);font-weight:500;height:var(--el-tabs-header-height);justify-content:center;list-style:none;padding:0 20px;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:none}.el-tabs__item:focus-visible{border-radius:3px;box-shadow:0 0 2px 2px var(--el-color-primary) inset}.el-tabs__item .is-icon-close{border-radius:50%;margin-left:5px;text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs__item .is-icon-close:before{display:inline-block;transform:scale(.9)}.el-tabs__item .is-icon-close:hover{background-color:var(--el-text-color-placeholder);color:#fff}.el-tabs__item.is-active,.el-tabs__item:hover{color:var(--el-color-primary)}.el-tabs__item:hover{cursor:pointer}.el-tabs__item.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-tabs__content{flex-grow:1;overflow:hidden;position:relative}.el-tabs--bottom>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:0}.el-tabs--bottom>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top>.el-tabs__header .el-tabs__item:last-child{padding-right:0}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);box-sizing:border-box;height:var(--el-tabs-header-height)}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid var(--el-border-color-light);border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{font-size:12px;height:14px;overflow:hidden;position:relative;right:-2px;transform-origin:100% 50%;width:0}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid var(--el-border-color-light);margin-top:-1px;transition:color var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),padding var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .is-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:var(--el-bg-color)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .is-icon-close{width:14px}.el-tabs--border-card{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-light);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{border:1px solid transparent;color:var(--el-text-color-secondary);margin-top:-1px;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{background-color:var(--el-bg-color-overlay);border-left-color:var(--el-border-color);border-right-color:var(--el-border-color);color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:var(--el-disabled-text-color)}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom{flex-direction:column}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--el-border-color)}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-bottom:0;margin-top:-1px}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{bottom:auto;height:auto;top:0;width:2px}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{cursor:pointer;height:30px;line-height:30px;text-align:center;width:100%}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{bottom:0;right:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{bottom:auto;height:100%;top:0;width:2px}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{flex-direction:column}.el-tabs--left .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-left{justify-content:flex-end}.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-right{justify-content:flex-start}.el-tabs--left{flex-direction:row}.el-tabs--left .el-tabs__header.is-left{margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-bottom:none;border-left:none;border-right:1px solid var(--el-border-color-light);border-top:1px solid var(--el-border-color-light);text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid var(--el-border-color-light);border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:none;border-right:1px solid #fff}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-radius:4px 0 0 4px;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid var(--el-border-color)}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--left>.el-tabs__content+.el-tabs__header{order:-1}.el-tabs--right .el-tabs__header.is-right{margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--el-border-color-light)}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid var(--el-border-color-light);border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:1px solid #fff;border-right:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-left:none;border-radius:0 4px 4px 0}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid var(--el-border-color)}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.el-tabs--top{flex-direction:column}.el-tabs--top>.el-tabs__content+.el-tabs__header{order:-1}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{animation:slideInRight-leave var(--el-transition-duration);left:0;position:absolute;right:0}.slideInLeft-enter{animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{animation:slideInLeft-leave var(--el-transition-duration);left:0;position:absolute;right:0}@keyframes slideInRight-enter{0%{opacity:0;transform:translateX(100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@keyframes slideInRight-leave{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(100%);transform-origin:0 0}}@keyframes slideInLeft-enter{0%{opacity:0;transform:translateX(-100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@keyframes slideInLeft-leave{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(-100%);transform-origin:0 0}}.el-alert{--el-alert-padding:8px 16px;--el-alert-border-radius-base:var(--el-border-radius-base);--el-alert-title-font-size:14px;--el-alert-title-with-description-font-size:16px;--el-alert-description-font-size:14px;--el-alert-close-font-size:16px;--el-alert-close-customed-font-size:14px;--el-alert-icon-size:16px;--el-alert-icon-large-size:28px;align-items:center;background-color:var(--el-color-white);border-radius:var(--el-alert-border-radius-base);box-sizing:border-box;display:flex;margin:0;opacity:1;overflow:hidden;padding:var(--el-alert-padding);position:relative;transition:opacity var(--el-transition-duration-fast);width:100%}.el-alert.is-light .el-alert__close-btn{color:var(--el-text-color-placeholder)}.el-alert.is-dark .el-alert__close-btn,.el-alert.is-dark .el-alert__description{color:var(--el-color-white)}.el-alert.is-center{justify-content:center}.el-alert--primary{--el-alert-bg-color:var(--el-color-primary-light-9)}.el-alert--primary.is-light{background-color:var(--el-alert-bg-color)}.el-alert--primary.is-light,.el-alert--primary.is-light .el-alert__description{color:var(--el-color-primary)}.el-alert--primary.is-dark{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-alert--success{--el-alert-bg-color:var(--el-color-success-light-9)}.el-alert--success.is-light{background-color:var(--el-alert-bg-color)}.el-alert--success.is-light,.el-alert--success.is-light .el-alert__description{color:var(--el-color-success)}.el-alert--success.is-dark{background-color:var(--el-color-success);color:var(--el-color-white)}.el-alert--info{--el-alert-bg-color:var(--el-color-info-light-9)}.el-alert--info.is-light{background-color:var(--el-alert-bg-color)}.el-alert--info.is-light,.el-alert--info.is-light .el-alert__description{color:var(--el-color-info)}.el-alert--info.is-dark{background-color:var(--el-color-info);color:var(--el-color-white)}.el-alert--warning{--el-alert-bg-color:var(--el-color-warning-light-9)}.el-alert--warning.is-light{background-color:var(--el-alert-bg-color)}.el-alert--warning.is-light,.el-alert--warning.is-light .el-alert__description{color:var(--el-color-warning)}.el-alert--warning.is-dark{background-color:var(--el-color-warning);color:var(--el-color-white)}.el-alert--error{--el-alert-bg-color:var(--el-color-error-light-9)}.el-alert--error.is-light{background-color:var(--el-alert-bg-color)}.el-alert--error.is-light,.el-alert--error.is-light .el-alert__description{color:var(--el-color-error)}.el-alert--error.is-dark{background-color:var(--el-color-error);color:var(--el-color-white)}.el-alert__content{display:flex;flex-direction:column;gap:4px}.el-alert .el-alert__icon{font-size:var(--el-alert-icon-size);margin-right:8px;width:var(--el-alert-icon-size)}.el-alert .el-alert__icon.is-big{font-size:var(--el-alert-icon-large-size);margin-right:12px;width:var(--el-alert-icon-large-size)}.el-alert__title{font-size:var(--el-alert-title-font-size);line-height:24px}.el-alert__title.with-description{font-size:var(--el-alert-title-with-description-font-size)}.el-alert .el-alert__description{font-size:var(--el-alert-description-font-size);margin:0}.el-alert .el-alert__close-btn{cursor:pointer;font-size:var(--el-alert-close-font-size);opacity:1;position:absolute;right:16px;top:12px}.el-alert .el-alert__close-btn.is-customed{font-size:var(--el-alert-close-customed-font-size);font-style:normal;line-height:24px;top:8px}.el-alert-fade-enter-from,.el-alert-fade-leave-active{opacity:0}.batch-tag-container[data-v-0d04afa1]{padding:0}.tab-content[data-v-0d04afa1]{padding:20px}.tab-description[data-v-0d04afa1]{margin:0 0 15px 0;color:#606266;font-size:14px}.input-section[data-v-0d04afa1]{position:relative;margin-bottom:20px}.suggestions-panel[data-v-0d04afa1]{position:absolute;top:100%;left:0;right:0;background:var(--admin-dashboard-tag-suggestion-bg-color);border:1px solid var(--admin-dashboard-tag-suggestion-border-color);border-radius:4px;box-shadow:var(--admin-dashboard-tag-suggestion-box-shadow);max-height:200px;overflow-y:auto;z-index:1000;margin-top:4px}.suggestion-item[data-v-0d04afa1]{padding:8px 12px;cursor:pointer;transition:background-color .2s}.suggestion-item[data-v-0d04afa1]:hover{background-color:var(--admin-dashboard-tag-suggestion-item-hover-bg-color)}.common-tags-section[data-v-0d04afa1],.tags-to-add-section[data-v-0d04afa1]{margin-bottom:20px}.common-tags-section h4[data-v-0d04afa1],.tags-to-add-section h4[data-v-0d04afa1]{margin:0 0 10px 0;font-size:14px;color:#606266}.tags-container[data-v-0d04afa1]{display:flex;flex-wrap:wrap;gap:8px;min-height:40px}.tag-item[data-v-0d04afa1]{cursor:default}.empty-message[data-v-0d04afa1]{color:#59636e;font-size:13px;padding:10px 0}.action-buttons[data-v-0d04afa1]{margin-top:20px;display:flex;justify-content:flex-end}.tag-management-container[data-v-24c809e4]{padding:10px 0}.input-section[data-v-24c809e4]{position:relative;margin-bottom:20px}.suggestions-panel[data-v-24c809e4]{position:absolute;top:100%;left:0;right:0;background:var(--admin-dashboard-tag-suggestion-bg-color);border:1px solid var(--admin-dashboard-tag-suggestion-border-color);border-radius:4px;box-shadow:var(--admin-dashboard-tag-suggestion-box-shadow);max-height:200px;overflow-y:auto;z-index:1000;margin-top:4px}.suggestion-item[data-v-24c809e4]{padding:8px 12px;cursor:pointer;transition:background-color .2s}.suggestion-item[data-v-24c809e4]:hover{background-color:var(--admin-dashboard-tag-suggestion-item-hover-bg-color)}.current-tags-section[data-v-24c809e4],.popular-tags-section[data-v-24c809e4]{margin-bottom:20px}.current-tags-section h4[data-v-24c809e4],.popular-tags-section h4[data-v-24c809e4]{margin:0 0 10px 0;font-size:14px;color:#606266}.tags-container[data-v-24c809e4]{display:flex;flex-wrap:wrap;gap:8px;min-height:40px}.tag-item[data-v-24c809e4]{cursor:default}.tag-item.clickable[data-v-24c809e4]{cursor:pointer;transition:transform .2s}.empty-message[data-v-24c809e4]{color:#59636e;font-size:13px;padding:10px 0}.dialog-footer[data-v-24c809e4]{display:flex;justify-content:flex-end}.el-form{--el-form-label-font-size:var(--el-font-size-base);--el-form-inline-content-width:220px}.el-form--inline .el-form-item{display:inline-flex;margin-right:32px;vertical-align:middle}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--label-left .el-form-item__label{justify-content:flex-start;text-align:left}.el-form-item--label-right .el-form-item__label{justify-content:flex-end;text-align:right}.el-form-item--label-top{display:block}.el-form-item--label-top .el-form-item__label{display:block;height:auto;line-height:22px;margin-bottom:8px;padding-right:0;text-align:left;width:fit-content}.el-form-item__label-wrap{display:flex}.el-form-item__label{align-items:flex-start;box-sizing:border-box;color:var(--el-text-color-regular);display:inline-flex;flex:0 0 auto;font-size:var(--el-form-label-font-size);height:32px;line-height:32px;padding:0 12px 0 0}.el-form-item__content{align-items:center;display:flex;flex:1;flex-wrap:wrap;font-size:var(--font-size);line-height:32px;min-width:0;position:relative}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;left:0;line-height:1;padding-top:2px;position:absolute;top:100%}.el-form-item__error--inline{display:inline-block;left:auto;margin-left:10px;position:relative;top:auto}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{color:var(--el-color-danger);content:"*";margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{color:var(--el-color-danger);content:"*";margin-left:4px}.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-select__wrapper,.el-form-item.is-error .el-form-item__content .el-select__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-textarea__inner,.el-form-item.is-error .el-form-item__content .el-textarea__inner.is-focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner:focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__wrapper{box-shadow:inset 0 0 0 1px transparent}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__validateIcon,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__validateIcon{display:none}.el-form-item.is-error .el-form-item__content .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}.el-descriptions{--el-descriptions-table-border:1px solid var(--el-border-color-lighter);--el-descriptions-item-bordered-label-background:var(--el-fill-color-light);box-sizing:border-box;color:var(--el-text-color-primary);font-size:var(--el-font-size-base)}.el-descriptions__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.el-descriptions__title{color:var(--el-text-color-primary);font-size:16px;font-weight:700}.el-descriptions__body{background-color:var(--el-fill-color-blank)}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions__cell{box-sizing:border-box;font-size:14px;line-height:23px;text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-right{text-align:right}.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{border:var(--el-descriptions-table-border);padding:8px 11px}.el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:12px}.el-descriptions--large{font-size:14px}.el-descriptions--large .el-descriptions__header{margin-bottom:20px}.el-descriptions--large .el-descriptions__header .el-descriptions__title{font-size:16px}.el-descriptions--large .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:14px}.el-descriptions--large .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:12px 15px}.el-descriptions--large .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:16px}.el-descriptions--small{font-size:12px}.el-descriptions--small .el-descriptions__header{margin-bottom:12px}.el-descriptions--small .el-descriptions__header .el-descriptions__title{font-size:14px}.el-descriptions--small .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:12px}.el-descriptions--small .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:4px 7px}.el-descriptions--small .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:8px}.el-descriptions__label.el-descriptions__cell.is-bordered-label{background:var(--el-descriptions-item-bordered-label-background);color:var(--el-text-color-regular);font-weight:700}.el-descriptions__label:not(.is-bordered-label){color:var(--el-text-color-primary);margin-right:16px}.el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:6px}.el-descriptions__content.el-descriptions__cell.is-bordered-content{color:var(--el-text-color-primary)}.el-descriptions__content:not(.is-bordered-label){color:var(--el-text-color-regular)}.el-descriptions--large .el-descriptions__label:not(.is-bordered-label){margin-right:16px}.el-descriptions--large .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:8px}.el-descriptions--small .el-descriptions__label:not(.is-bordered-label){margin-right:12px}.el-descriptions--small .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:4px}.el-image__error,.el-image__inner,.el-image__placeholder,.el-image__wrapper{height:100%;width:100%}.el-image{display:inline-block;overflow:hidden;position:relative}.el-image__inner{opacity:1;vertical-align:top}.el-image__inner.is-loading{opacity:0}.el-image__wrapper{left:0;position:absolute;top:0}.el-image__error,.el-image__placeholder{background:var(--el-fill-color-light)}.el-image__error{align-items:center;color:var(--el-text-color-placeholder);display:flex;font-size:14px;justify-content:center;vertical-align:middle}.el-image__preview{cursor:pointer}.el-image-viewer__wrapper{bottom:0;left:0;position:fixed;right:0;top:0}.el-image-viewer__wrapper:focus{outline:none!important}.el-image-viewer__btn{align-items:center;border-radius:50%;box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;opacity:.8;position:absolute;-webkit-user-select:none;user-select:none;z-index:1}.el-image-viewer__btn .el-icon{cursor:pointer}.el-image-viewer__close{font-size:40px;height:40px;right:40px;top:40px;width:40px}.el-image-viewer__canvas{align-items:center;display:flex;height:100%;justify-content:center;position:static;-webkit-user-select:none;user-select:none;width:100%}.el-image-viewer__actions{background-color:var(--el-text-color-regular);border-color:#fff;border-radius:22px;bottom:30px;height:44px;left:50%;padding:0 23px;transform:translateX(-50%)}.el-image-viewer__actions__inner{align-items:center;color:#fff;cursor:default;display:flex;font-size:23px;gap:22px;height:100%;justify-content:space-around;padding:0 6px;width:100%}.el-image-viewer__actions__divider{margin:0 -6px}.el-image-viewer__progress{bottom:90px;color:#fff;cursor:default;left:50%;transform:translateX(-50%)}.el-image-viewer__prev{left:40px}.el-image-viewer__next,.el-image-viewer__prev{background-color:var(--el-text-color-regular);border-color:#fff;color:#fff;font-size:24px;height:44px;top:50%;transform:translateY(-50%);width:44px}.el-image-viewer__next{right:40px;text-indent:2px}.el-image-viewer__close{background-color:var(--el-text-color-regular);border-color:#fff;color:#fff;font-size:24px;height:44px;width:44px}.el-image-viewer__mask{background:#000;height:100%;left:0;opacity:.5;position:absolute;top:0;width:100%}.el-image-viewer-parent--hidden{overflow:hidden}.viewer-fade-enter-active{animation:viewer-fade-in var(--el-transition-duration)}.viewer-fade-leave-active{animation:viewer-fade-out var(--el-transition-duration)}@keyframes viewer-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes viewer-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}.detail-actions[data-v-38a97614]{display:flex;justify-content:right;margin-bottom:10px;flex-wrap:wrap;gap:8px}.detail-action[data-v-38a97614]{margin-left:0!important}.video-preview[data-v-38a97614]{max-height:300px;cursor:pointer;-o-object-fit:contain;object-fit:contain}.audio-preview[data-v-38a97614],.video-preview[data-v-38a97614]{width:100%;max-width:400px;border-radius:8px}.image-preview[data-v-38a97614]{width:auto;height:auto;max-width:100%;max-height:300px;border-radius:8px;cursor:pointer}.image-preview[data-v-38a97614] img{max-width:100%;max-height:300px;-o-object-fit:contain;object-fit:contain}.file-icon-detail[data-v-38a97614]{font-size:64px;color:var(--el-text-color-secondary)}.preview-section[data-v-38a97614]{display:flex;justify-content:center;margin-bottom:15px;padding:12px;background:var(--el-fill-color-light);border:1px solid var(--glass-border);border-radius:8px;min-height:60px}.preview-content[data-v-38a97614]{display:flex;justify-content:center;align-items:center;width:100%}[data-v-38a97614] .el-descriptions__content{word-break:break-all;word-wrap:break-word}[data-v-38a97614] .el-descriptions__content .el-tag,[data-v-38a97614] .el-descriptions__content .el-tag+span{vertical-align:middle}[data-v-38a97614] .el-descriptions__label{width:120px!important;min-width:100px!important;max-width:120px!important}[data-v-38a97614] .el-descriptions__body table{table-layout:fixed}@media (max-width:768px){.detail-actions[data-v-38a97614]{justify-content:center}}.batch-floating-bar[data-v-6de9da06]{position:fixed;left:50%;bottom:max(84px,calc(72px + env(safe-area-inset-bottom)));transform:translateX(-50%);z-index:1200;display:flex;align-items:center;gap:6px;max-width:min(720px,calc(100vw - 48px));padding:6px;border:1px solid var(--admin-batch-toolbar-border);border-radius:999px;background:var(--admin-batch-toolbar-bg);box-shadow:var(--admin-batch-toolbar-shadow)}.batch-selection-summary[data-v-6de9da06]{display:flex;align-items:center;flex:0 0 auto;padding:0 2px}.batch-selection-count[data-v-6de9da06]{min-width:18px;height:26px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px;color:var(--admin-batch-clear-color);font-size:14px;font-weight:600;line-height:1}.batch-toolbar-divider[data-v-6de9da06]{width:1px;height:16px;flex:0 0 auto;border-radius:999px;background:var(--admin-batch-toolbar-border);opacity:.58}.batch-floating-actions[data-v-6de9da06]{display:flex;align-items:center;gap:4px}.batch-floating-btn[data-v-6de9da06]{width:36px;height:36px;min-width:36px;margin-left:0!important;padding:0;border:none;border-radius:50%;color:var(--admin-batch-clear-color);background:var(--admin-batch-action-bg);box-shadow:var(--admin-batch-action-shadow);transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease,color .22s ease}.batch-floating-btn[data-v-6de9da06]:hover{transform:none;background:var(--admin-batch-action-hover-bg);box-shadow:var(--admin-batch-action-hover-shadow)}.batch-floating-btn.danger[data-v-6de9da06]{color:var(--admin-batch-delete-color)}.batch-floating-btn.ban[data-v-6de9da06],.batch-floating-btn.tag[data-v-6de9da06],.batch-floating-btn.white[data-v-6de9da06]{color:var(--admin-batch-tag-color)}.batch-floating-btn.ghost[data-v-6de9da06]{color:var(--admin-batch-clear-color)}.batch-floating-icon[data-v-6de9da06]{width:15px;margin-right:0}.batch-toolbar-enter-active[data-v-6de9da06],.batch-toolbar-leave-active[data-v-6de9da06]{transition:opacity .24s ease,transform .28s cubic-bezier(.22,1,.36,1)}.batch-toolbar-enter-from[data-v-6de9da06],.batch-toolbar-leave-to[data-v-6de9da06]{opacity:0;transform:translateX(-50%) translateY(12px) scale(.99)}.batch-toolbar-enter-to[data-v-6de9da06],.batch-toolbar-leave-from[data-v-6de9da06]{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}@media (max-width:768px){.batch-floating-bar[data-v-6de9da06]{left:50%;right:auto;bottom:max(76px,calc(64px + env(safe-area-inset-bottom)));transform:translateX(-50%);width:-moz-max-content;width:max-content;max-width:calc(100vw - 24px);gap:4px;padding:5px;border-radius:999px}.batch-selection-summary[data-v-6de9da06]{padding:0 1px}.batch-selection-count[data-v-6de9da06]{min-width:16px;height:22px;padding:0 3px;font-size:12px}.batch-toolbar-divider[data-v-6de9da06]{height:14px}.batch-floating-actions[data-v-6de9da06]{flex:1;min-width:0;gap:3px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;padding:1px}.batch-floating-actions[data-v-6de9da06]::-webkit-scrollbar{display:none}.batch-floating-btn[data-v-6de9da06]{width:32px;height:32px;min-width:32px;padding:0;border-radius:50%}.batch-floating-icon[data-v-6de9da06]{margin-right:0;width:13px}.batch-toolbar-enter-from[data-v-6de9da06],.batch-toolbar-leave-to[data-v-6de9da06]{transform:translateX(-50%) translateY(12px) scale(.99)}.batch-toolbar-enter-to[data-v-6de9da06],.batch-toolbar-leave-from[data-v-6de9da06]{transform:translateX(-50%) translateY(0) scale(1)}}.el-container{box-sizing:border-box;display:flex;flex:1;flex-basis:auto;flex-direction:row;min-width:0}.el-container.is-vertical{flex-direction:column}.el-aside{overflow:auto;width:var(--el-aside-width,300px)}.el-aside,.el-footer{box-sizing:border-box;flex-shrink:0}.el-footer{--el-footer-padding:0 20px;--el-footer-height:60px;height:var(--el-footer-height);padding:var(--el-footer-padding)}.el-header{--el-header-padding:0 20px;--el-header-height:60px;flex-shrink:0;height:var(--el-header-height);padding:var(--el-header-padding)}.el-header,.el-main{box-sizing:border-box}.el-main{--el-main-padding:20px;display:block;flex:1;flex-basis:auto;overflow:auto;padding:var(--el-main-padding)}.el-pagination{--el-pagination-font-size:14px;--el-pagination-bg-color:var(--el-fill-color-blank);--el-pagination-text-color:var(--el-text-color-primary);--el-pagination-border-radius:2px;--el-pagination-button-color:var(--el-text-color-primary);--el-pagination-button-width:32px;--el-pagination-button-height:32px;--el-pagination-button-disabled-color:var(--el-text-color-placeholder);--el-pagination-button-disabled-bg-color:var(--el-fill-color-blank);--el-pagination-button-bg-color:var(--el-fill-color);--el-pagination-hover-color:var(--el-color-primary);--el-pagination-font-size-small:12px;--el-pagination-button-width-small:24px;--el-pagination-button-height-small:24px;--el-pagination-button-width-large:40px;--el-pagination-button-height-large:40px;--el-pagination-item-gap:16px;align-items:center;color:var(--el-pagination-text-color);display:flex;font-size:var(--el-pagination-font-size);font-weight:400;white-space:nowrap}.el-pagination .el-input__inner{-moz-appearance:textfield;text-align:center}.el-pagination .el-select{width:128px}.el-pagination .btn-next,.el-pagination .btn-prev{align-items:center;background:var(--el-pagination-bg-color);border:none;border-radius:var(--el-pagination-border-radius);box-sizing:border-box;color:var(--el-pagination-button-color);cursor:pointer;display:flex;font-size:var(--el-pagination-font-size);height:var(--el-pagination-button-height);justify-content:center;line-height:var(--el-pagination-button-height);min-width:var(--el-pagination-button-width);padding:0 4px;text-align:center}.el-pagination .btn-next *,.el-pagination .btn-prev *{pointer-events:none}.el-pagination .btn-next:focus,.el-pagination .btn-prev:focus{outline:none}.el-pagination .btn-next:hover,.el-pagination .btn-prev:hover{color:var(--el-pagination-hover-color)}.el-pagination .btn-next.is-active,.el-pagination .btn-prev.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pagination .btn-next.is-active.is-disabled,.el-pagination .btn-prev.is-active.is-disabled{color:var(--el-text-color-secondary);font-weight:700}.el-pagination .btn-next.is-disabled,.el-pagination .btn-next:disabled,.el-pagination .btn-prev.is-disabled,.el-pagination .btn-prev:disabled{background-color:var(--el-pagination-button-disabled-bg-color);color:var(--el-pagination-button-disabled-color);cursor:not-allowed}.el-pagination .btn-next:focus-visible,.el-pagination .btn-prev:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700;width:inherit}.el-pagination>.is-first{margin-left:0!important}.el-pagination>.is-last{margin-right:0!important}.el-pagination .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination__sizes,.el-pagination__total{color:var(--el-text-color-regular);font-weight:400;margin-left:var(--el-pagination-item-gap)}.el-pagination__total[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__jump{align-items:center;color:var(--el-text-color-regular);display:flex;font-weight:400;margin-left:var(--el-pagination-item-gap)}.el-pagination__jump[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__goto{margin-right:8px}.el-pagination__editor{box-sizing:border-box;text-align:center}.el-pagination__editor.el-input{width:56px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination__classifier{margin-left:8px}.el-pagination__rightwrapper{align-items:center;display:flex;flex:1;justify-content:flex-end}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{background-color:var(--el-pagination-button-bg-color);margin:0 4px}.el-pagination.is-background .btn-next.is-active,.el-pagination.is-background .btn-prev.is-active,.el-pagination.is-background .el-pager li.is-active{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-pagination.is-background .btn-next.is-disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.is-disabled,.el-pagination.is-background .el-pager li:disabled{background-color:var(--el-disabled-bg-color);color:var(--el-text-color-placeholder)}.el-pagination.is-background .btn-next.is-disabled.is-active,.el-pagination.is-background .btn-next:disabled.is-active,.el-pagination.is-background .btn-prev.is-disabled.is-active,.el-pagination.is-background .btn-prev:disabled.is-active,.el-pagination.is-background .el-pager li.is-disabled.is-active,.el-pagination.is-background .el-pager li:disabled.is-active{background-color:var(--el-fill-color-dark);color:var(--el-text-color-secondary)}.el-pagination.is-background .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li{font-size:var(--el-pagination-font-size-small);height:var(--el-pagination-button-height-small);line-height:var(--el-pagination-button-height-small);min-width:var(--el-pagination-button-width-small)}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){font-size:var(--el-pagination-font-size-small)}.el-pagination--small .el-select{width:100px}.el-pagination--large .btn-next,.el-pagination--large .btn-prev,.el-pagination--large .el-pager li{height:var(--el-pagination-button-height-large);line-height:var(--el-pagination-button-height-large);min-width:var(--el-pagination-button-width-large)}.el-pagination--large .el-select .el-input{width:160px}.el-pager{font-size:0;list-style:none;margin:0;padding:0;-webkit-user-select:none;user-select:none}.el-pager,.el-pager li{align-items:center;display:flex}.el-pager li{background:var(--el-pagination-bg-color);border:none;border-radius:var(--el-pagination-border-radius);box-sizing:border-box;color:var(--el-pagination-button-color);cursor:pointer;font-size:var(--el-pagination-font-size);height:var(--el-pagination-button-height);justify-content:center;line-height:var(--el-pagination-button-height);min-width:var(--el-pagination-button-width);padding:0 4px;text-align:center}.el-pager li *{pointer-events:none}.el-pager li:focus{outline:none}.el-pager li.is-active,.el-pager li:hover{color:var(--el-pagination-hover-color)}.el-pager li.is-active{cursor:default;font-weight:700}.el-pager li.is-active.is-disabled{color:var(--el-text-color-secondary);font-weight:700}.el-pager li.is-disabled,.el-pager li:disabled{background-color:var(--el-pagination-button-disabled-bg-color);color:var(--el-pagination-button-disabled-color);cursor:not-allowed}.el-pager li:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.dashboard-checkbox[data-v-f8222714]{box-sizing:border-box;display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease}.dashboard-checkbox--list[data-v-f8222714]{width:18px;height:18px;border:2px solid #d9dce2;border-radius:5px;background:hsla(0,0%,100%,.72)}html.dark .dashboard-checkbox--list[data-v-f8222714]{border-color:#34343a;background:rgba(22,22,24,.75)}.dashboard-checkbox--list[data-v-f8222714]:hover{border-color:#38bdf8;background:hsla(0,0%,100%,.85)}html.dark .dashboard-checkbox--list[data-v-f8222714]:hover{background:rgba(22,22,24,.88)}.dashboard-checkbox--list[data-v-f8222714]:focus-visible{outline:none;border-color:#38bdf8;box-shadow:0 0 0 3px rgba(56,189,248,.14)}.dashboard-checkbox--list.checked[data-v-f8222714],.dashboard-checkbox--list.indeterminate[data-v-f8222714]{border-color:#38bdf8;background:#0ea5e9}.dashboard-checkbox--breadcrumb[data-v-f8222714]{position:relative;width:32px;height:32px;overflow:hidden;border:1px solid #d9dce2;border-radius:10px;background:hsla(0,0%,100%,.72);box-shadow:none;transition:background-color .2s ease,border-color .2s ease}html.dark .dashboard-checkbox--breadcrumb[data-v-f8222714]{border:1px solid #34343a;background:rgba(22,22,24,.75)}.dashboard-checkbox--breadcrumb[data-v-f8222714]:before{content:"";position:absolute;inset:7px;box-sizing:border-box;border:1px solid #d9dce2;border-radius:5px;background:transparent;transition:border-color .18s ease,background .18s ease}html.dark .dashboard-checkbox--breadcrumb[data-v-f8222714]:before{border-color:#34343a}.dashboard-checkbox--breadcrumb[data-v-f8222714]:hover{border-color:#bfc4cc;background:hsla(0,0%,100%,.85)}html.dark .dashboard-checkbox--breadcrumb[data-v-f8222714]:hover{border-color:#4a4a52;background:rgba(22,22,24,.88)}.dashboard-checkbox--breadcrumb[data-v-f8222714]:focus-visible{outline:none;border-color:rgba(56,189,248,.34)}.dashboard-checkbox--breadcrumb.checked[data-v-f8222714],.dashboard-checkbox--breadcrumb.indeterminate[data-v-f8222714]{border-color:#d9dce2;background:hsla(0,0%,100%,.72)}html.dark .dashboard-checkbox--breadcrumb.checked[data-v-f8222714],html.dark .dashboard-checkbox--breadcrumb.indeterminate[data-v-f8222714]{border-color:#34343a;background:rgba(22,22,24,.75)}.dashboard-checkbox--breadcrumb.checked[data-v-f8222714]:before,.dashboard-checkbox--breadcrumb.indeterminate[data-v-f8222714]:before{border-color:hsla(0,0%,100%,.4);background:#0ea5e9}.dashboard-checkbox-mark[data-v-f8222714]{position:relative;z-index:1;width:10px;height:10px}.dashboard-checkbox--breadcrumb .dashboard-checkbox-mark[data-v-f8222714]{width:11px;height:11px}@media (max-width:768px){.dashboard-checkbox--list[data-v-f8222714]{width:16px;height:16px;border-width:1.5px}.dashboard-checkbox--list .dashboard-checkbox-mark[data-v-f8222714]{width:9px;height:9px}.dashboard-checkbox--breadcrumb[data-v-f8222714]{width:28px;height:28px;border-radius:8px}.dashboard-checkbox--breadcrumb[data-v-f8222714]:before{inset:6px;border-radius:5px}.dashboard-checkbox--breadcrumb .dashboard-checkbox-mark[data-v-f8222714]{width:10px;height:10px}}.list-item[data-v-4b029ac8]{display:grid;grid-template-columns:50px 60px minmax(180px,1fr) 130px 100px 110px 130px 80px 100px 120px;content-visibility:auto;contain:layout paint style;contain-intrinsic-size:65px;padding:12px 20px;align-items:center;transition:background .2s ease;border-bottom:1px solid var(--el-border-color-lighter);min-width:-moz-fit-content;min-width:fit-content}.list-item[data-v-4b029ac8]:last-child{border-bottom:none}.list-item[data-v-4b029ac8]:hover{background:var(--el-fill-color-light)}.list-col[data-v-4b029ac8]{display:flex;align-items:center}.list-col-checkbox[data-v-4b029ac8]{justify-content:center;min-width:40px}.list-col-preview[data-v-4b029ac8]{justify-content:center;cursor:pointer}.list-col-name[data-v-4b029ac8]{cursor:pointer;overflow:hidden;padding-right:16px;min-width:0}.list-col-name[data-v-4b029ac8]:hover{color:#38bdf8}.filename-ellipsis[data-v-4b029ac8]{display:flex;max-width:100%;overflow:hidden;align-items:center}.filename-start[data-v-4b029ac8]{flex-shrink:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filename-end[data-v-4b029ac8]{flex-shrink:0;white-space:nowrap}.list-col-channel-name[data-v-4b029ac8],.list-col-channel[data-v-4b029ac8],.list-col-date[data-v-4b029ac8],.list-col-size[data-v-4b029ac8]{font-size:13px;color:var(--el-text-color-secondary)}.list-col-address[data-v-4b029ac8]{font-size:13px}.address-box[data-v-4b029ac8],.channel-name-box[data-v-4b029ac8]{background:var(--el-fill-color-light);border:1px solid var(--el-border-color-lighter);border-radius:4px;padding:4px 8px;font-size:12px;color:var(--el-text-color-secondary);max-width:100%;overflow-x:auto;overflow-y:hidden;white-space:nowrap;scrollbar-width:none;-ms-overflow-style:none}.address-box[data-v-4b029ac8]{width:85px;font-family:Consolas,Monaco,monospace}.channel-name-box[data-v-4b029ac8]{width:70px}.address-box[data-v-4b029ac8]::-webkit-scrollbar,.channel-name-box[data-v-4b029ac8]::-webkit-scrollbar{display:none}.list-col-tags[data-v-4b029ac8]{display:flex;align-items:center;gap:4px;flex-wrap:nowrap;overflow:hidden}.color-tag[data-v-4b029ac8]{padding:2px 8px;border-radius:10px;font-size:11px;color:#fff;white-space:nowrap;max-width:60px;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px rgba(0,0,0,.2)}.color-tag-more[data-v-4b029ac8]{min-width:30px;text-align:center}.list-empty[data-v-4b029ac8]{color:var(--el-text-color-placeholder)}.list-col-actions[data-v-4b029ac8]{display:flex;gap:8px;justify-content:flex-end}.list-preview-img[data-v-4b029ac8]{width:40px;height:40px;-o-object-fit:cover;object-fit:cover;border-radius:6px}.list-folder-icon[data-v-4b029ac8]{font-size:28px;color:var(--el-color-primary)}.list-file-icon[data-v-4b029ac8]{font-size:24px;color:var(--el-text-color-secondary)}.list-action-btn[data-v-4b029ac8]{width:32px;height:32px;border:none;border-radius:8px;background:var(--el-fill-color);color:var(--el-text-color-regular);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.list-action-btn[data-v-4b029ac8]:hover{background:#38bdf8;color:#fff}.list-action-danger[data-v-4b029ac8]:hover{background:var(--el-color-danger)}@media (max-width:768px){.list-item[data-v-4b029ac8]{grid-template-columns:20px 34px 1fr auto;padding:8px 6px;gap:6px;font-size:12px}.list-col-address[data-v-4b029ac8],.list-col-channel-name[data-v-4b029ac8],.list-col-channel[data-v-4b029ac8],.list-col-date[data-v-4b029ac8],.list-col-size[data-v-4b029ac8],.list-col-tags[data-v-4b029ac8]{display:none}.list-col-name[data-v-4b029ac8]{padding-right:8px;line-height:1.25}.list-preview-img[data-v-4b029ac8]{width:34px;height:34px;border-radius:5px}.list-folder-icon[data-v-4b029ac8]{font-size:24px}.list-file-icon[data-v-4b029ac8]{font-size:21px}.list-col-actions[data-v-4b029ac8]{gap:3px}.list-action-btn[data-v-4b029ac8]{width:26px;height:26px;border-radius:7px;font-size:12px}.list-col-checkbox[data-v-4b029ac8]{width:18px;min-width:18px}}.img-card[data-v-12b39bad]{width:100%;height:22vh;content-visibility:auto;contain:layout paint style;contain-intrinsic-size:260px;background:var(--admin-dashboard-imgcard-bg-color);border:1px solid var(--glass-border);border-radius:8px;box-shadow:var(--admin-dashboard-imgcard-shadow);overflow:hidden;position:relative;transition:transform .3s ease}.img-card[data-v-12b39bad]:before{content:"";position:absolute;top:0;left:0;right:0;height:45%;background:linear-gradient(180deg,rgba(0,0,0,.35) 0,rgba(0,0,0,.12) 50%,transparent);pointer-events:none;z-index:5}.img-card[data-v-12b39bad] .el-card__body{padding:0;height:100%;overflow:hidden}.img-card[data-v-12b39bad] .el-checkbox{position:absolute;top:10px;right:10px;transform:scale(1.5);z-index:10}.img-card[data-v-12b39bad]:hover{transform:scale(1.05)}.image-preview[data-v-12b39bad],.video-preview[data-v-12b39bad]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .4s ease,opacity .3s ease;filter:var(--image-preview-filter)}.video-preview[data-v-12b39bad]{cursor:pointer}.img-card:hover .file-icon[data-v-12b39bad],.img-card:hover .image-preview[data-v-12b39bad],.img-card:hover .video-preview[data-v-12b39bad]{transform:scale(1.03)}.image-preview[data-v-12b39bad]:hover{opacity:.8}.file-short-info[data-v-12b39bad]{position:absolute;z-index:10;top:3px;left:3px;display:flex;gap:5px;align-items:start}.success-tag[data-v-12b39bad]{background-color:rgba(34,139,34,.6);border:1px solid rgba(34,139,34,.7);border-radius:6px}.fail-tag[data-v-12b39bad],.success-tag[data-v-12b39bad]{color:hsla(0,0%,100%,.95);padding:3px 8px;font-size:11px;font-weight:500;height:auto;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.3)}.fail-tag[data-v-12b39bad]{background-color:rgba(220,53,69,.6);border:1px solid rgba(220,53,69,.7);border-radius:6px}.primary-tag[data-v-12b39bad]{background-color:rgba(250,82,194,.6);color:hsla(0,0%,100%,.95);border:1px solid rgba(250,82,194,.7);padding:3px 8px;border-radius:6px;font-size:11px;font-weight:500;display:flex;align-items:center;height:auto;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.3)}.file-preview[data-v-12b39bad]{display:flex;justify-content:center;align-items:center;width:100%;height:100%}.file-icon[data-v-12b39bad]{opacity:.6;font-size:clamp(40px,4vw,64px);transition:transform .4s ease}.audio-icon[data-v-12b39bad]{color:var(--el-color-primary);opacity:.8}.audio-card-preview[data-v-12b39bad]{cursor:pointer}.card-bottom-overlay[data-v-12b39bad]{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(0deg,rgba(0,0,0,.55) 0,rgba(0,0,0,.25) 50%,transparent);padding:clamp(15px,2.5vh,30px) clamp(6px,1vw,12px) clamp(5px,.8vh,10px);display:flex;flex-direction:column;gap:clamp(3px,.5vh,6px);z-index:10}.file-name-row[data-v-12b39bad]{display:flex;align-items:center;justify-content:center}.file-name[data-v-12b39bad]{color:#fff;font-size:clamp(10px,1.1vw,14px);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;text-shadow:0 1px 3px rgba(0,0,0,.5)}.action-bar[data-v-12b39bad]{display:flex;justify-content:space-between;align-items:center;opacity:0;transform:translateY(4px);transition:all .25s cubic-bezier(.4,0,.2,1);pointer-events:none}.el-card:hover .action-bar[data-v-12b39bad]{opacity:1;transform:translateY(0);pointer-events:auto}.action-bar-left[data-v-12b39bad],.action-bar-right[data-v-12b39bad]{display:flex;align-items:center;gap:clamp(3px,.4vw,6px)}.action-btn[data-v-12b39bad]{width:clamp(24px,2.5vw,28px);height:clamp(24px,2.5vw,28px);border:none;border-radius:clamp(5px,.6vw,8px);background:hsla(0,0%,100%,.15);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;font-size:clamp(11px,1.1vw,14px)}.action-btn[data-v-12b39bad]:hover{background:hsla(0,0%,100%,.25);transform:scale(1.08)}.action-btn[data-v-12b39bad]:active{transform:scale(.95)}.action-btn-danger[data-v-12b39bad]:hover{background:rgba(239,68,68,.6)}@media (max-width:768px){.img-card[data-v-12b39bad]{height:148px;border-radius:7px;contain-intrinsic-size:148px}.img-card[data-v-12b39bad] .el-checkbox{top:6px;right:6px;transform:scale(1.1)}.img-card[data-v-12b39bad]:hover{transform:none}.file-short-info[data-v-12b39bad]{gap:3px;max-width:calc(100% - 38px)}.fail-tag[data-v-12b39bad],.primary-tag[data-v-12b39bad],.success-tag[data-v-12b39bad]{max-width:72px;padding:2px 5px;border-radius:5px;font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-bottom-overlay[data-v-12b39bad]{padding:22px 6px 6px}.file-name[data-v-12b39bad]{font-size:11px}.file-icon[data-v-12b39bad]{font-size:34px}.action-bar[data-v-12b39bad]{display:none!important}}@keyframes skeleton-shimmer-12b39bad{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-wrapper[data-v-12b39bad]{width:100%;height:100%;background:linear-gradient(90deg,var(--skeleton-bg-color) 25%,color-mix(in srgb,var(--skeleton-bg-color) 70%,var(--skeleton-shimmer-color)) 50%,var(--skeleton-bg-color) 75%);background-size:200% 100%;animation:skeleton-shimmer-12b39bad 1.5s ease-in-out infinite}.error-wrapper[data-v-12b39bad]{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--skeleton-bg-color);cursor:pointer;gap:8px}.error-icon[data-v-12b39bad]{font-size:32px;color:var(--el-color-warning);opacity:.7}.error-text[data-v-12b39bad]{font-size:12px;color:var(--el-text-color-secondary)}.img-card[data-v-e3ec6a12]{width:100%;height:22vh;content-visibility:auto;contain:layout paint style;contain-intrinsic-size:260px;background:var(--admin-dashboard-imgcard-bg-color);border:1px solid var(--glass-border);border-radius:8px;box-shadow:var(--admin-dashboard-imgcard-shadow);overflow:hidden;position:relative;transition:transform .3s ease}.img-card[data-v-e3ec6a12] .el-card__body{padding:0;height:100%;overflow:hidden}.img-card[data-v-e3ec6a12] .el-checkbox{position:absolute;top:10px;right:10px;transform:scale(1.5);z-index:10}.img-card[data-v-e3ec6a12]:hover{transform:scale(1.05)}.folder-card[data-v-e3ec6a12]{cursor:pointer}.folder-icon[data-v-e3ec6a12]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;color:var(--el-color-primary)}.folder-icon-svg[data-v-e3ec6a12]{font-size:clamp(40px,4vw,64px);transition:transform .4s ease}.img-card:hover .folder-icon-svg[data-v-e3ec6a12]{transform:scale(1.03)}.card-bottom-overlay[data-v-e3ec6a12]{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(0deg,rgba(0,0,0,.55) 0,rgba(0,0,0,.25) 50%,transparent);padding:clamp(15px,2.5vh,30px) clamp(6px,1vw,12px) clamp(5px,.8vh,10px);display:flex;flex-direction:column;gap:clamp(3px,.5vh,6px);z-index:10}.file-name-row[data-v-e3ec6a12]{display:flex;align-items:center;justify-content:center}.file-name[data-v-e3ec6a12]{color:#fff;font-size:clamp(10px,1.1vw,14px);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;text-shadow:0 1px 3px rgba(0,0,0,.5)}.action-bar[data-v-e3ec6a12]{display:flex;justify-content:space-between;align-items:center;opacity:0;transform:translateY(4px);transition:all .25s cubic-bezier(.4,0,.2,1);pointer-events:none}.el-card:hover .action-bar[data-v-e3ec6a12]{opacity:1;transform:translateY(0);pointer-events:auto}.action-bar-left[data-v-e3ec6a12],.action-bar-right[data-v-e3ec6a12]{display:flex;align-items:center;gap:clamp(3px,.4vw,6px)}.action-btn[data-v-e3ec6a12]{width:clamp(24px,2.5vw,28px);height:clamp(24px,2.5vw,28px);border:none;border-radius:clamp(5px,.6vw,8px);background:hsla(0,0%,100%,.15);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;font-size:clamp(11px,1.1vw,14px)}.action-btn[data-v-e3ec6a12]:hover{background:hsla(0,0%,100%,.25);transform:scale(1.08)}.action-btn[data-v-e3ec6a12]:active{transform:scale(.95)}.action-btn-danger[data-v-e3ec6a12]:hover{background:rgba(239,68,68,.6)}@media (max-width:768px){.img-card[data-v-e3ec6a12]{height:148px;border-radius:7px;contain-intrinsic-size:148px}.img-card[data-v-e3ec6a12] .el-checkbox{top:6px;right:6px;transform:scale(1.1)}.img-card[data-v-e3ec6a12]:hover{transform:none}.folder-icon-svg[data-v-e3ec6a12]{font-size:36px}.card-bottom-overlay[data-v-e3ec6a12]{padding:22px 6px 6px}.file-name[data-v-e3ec6a12]{font-size:11px}.action-bar[data-v-e3ec6a12]{display:none!important}}@keyframes skeleton-shimmer-ef863880{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes skeleton-pulse-ef863880{0%,to{opacity:.4}50%{opacity:.8}}.skeleton-card[data-v-ef863880]{width:100%;height:22vh;background:var(--admin-dashboard-imgcard-bg-color);border:1px solid var(--glass-border);border-radius:12px;box-shadow:var(--admin-dashboard-imgcard-shadow);overflow:hidden;position:relative}.skeleton-image[data-v-ef863880]{width:100%;height:100%;background:var(--skeleton-bg-color);background-size:200% 100%;animation:skeleton-shimmer-ef863880 1.5s ease-in-out infinite}.skeleton-info[data-v-ef863880]{position:absolute;bottom:0;left:0;right:0;padding:15px;background:rgba(0,0,0,.5)}.skeleton-text[data-v-ef863880]{height:14px;width:60%;margin:0 auto;border-radius:4px;background:var(--skeleton-bg-color);background-size:200% 100%;animation:skeleton-shimmer-ef863880 1.5s ease-in-out infinite}.skeleton-list-item[data-v-ef863880]{animation:skeleton-pulse-ef863880 1.5s ease-in-out infinite}.skeleton-checkbox[data-v-ef863880]{width:18px;height:18px;border-radius:4px;background:var(--skeleton-bg-color)}.skeleton-preview[data-v-ef863880]{width:40px;height:40px;border-radius:6px}.skeleton-preview[data-v-ef863880],.skeleton-text-long[data-v-ef863880]{background:var(--skeleton-bg-color);background-size:200% 100%;animation:skeleton-shimmer-ef863880 1.5s ease-in-out infinite}.skeleton-text-long[data-v-ef863880]{height:14px;width:80%;border-radius:4px}.skeleton-text-short[data-v-ef863880]{width:60px}.skeleton-text-short[data-v-ef863880],.skeleton-text-tiny[data-v-ef863880]{height:14px;border-radius:4px;background:var(--skeleton-bg-color);background-size:200% 100%;animation:skeleton-shimmer-ef863880 1.5s ease-in-out infinite}.skeleton-text-tiny[data-v-ef863880]{width:40px}.skeleton-tag[data-v-ef863880]{height:20px;width:50px;border-radius:10px;background:var(--skeleton-bg-color);background-size:200% 100%;animation:skeleton-shimmer-ef863880 1.5s ease-in-out infinite}.skeleton-actions[data-v-ef863880]{height:28px;width:80px;border-radius:6px;background:var(--skeleton-bg-color)}.list-item[data-v-ef863880]{display:grid;grid-template-columns:50px 60px minmax(180px,1fr) 130px 100px 110px 130px 80px 100px 120px;padding:12px 20px;align-items:center;border-bottom:1px solid var(--el-border-color-lighter)}.list-col[data-v-ef863880]{display:flex;align-items:center}.list-col-checkbox[data-v-ef863880],.list-col-preview[data-v-ef863880]{justify-content:center}@media (max-width:768px){.skeleton-card[data-v-ef863880]{height:148px;border-radius:7px}.skeleton-info[data-v-ef863880]{padding:22px 6px 6px}.skeleton-text[data-v-ef863880]{height:11px;width:68%;border-radius:3px}.list-item[data-v-ef863880]{box-sizing:border-box;grid-template-columns:20px 34px 1fr auto;padding:8px 6px;gap:6px;height:50px}.skeleton-checkbox[data-v-ef863880]{width:16px;height:16px}.skeleton-preview[data-v-ef863880]{width:34px;height:34px;border-radius:5px}.skeleton-text-long[data-v-ef863880],.skeleton-text-short[data-v-ef863880],.skeleton-text-tiny[data-v-ef863880]{height:10px;border-radius:3px}.skeleton-actions[data-v-ef863880]{width:58px;height:24px;border-radius:6px}.list-col-address[data-v-ef863880],.list-col-channel-name[data-v-ef863880],.list-col-channel[data-v-ef863880],.list-col-date[data-v-ef863880],.list-col-size[data-v-ef863880],.list-col-tags[data-v-ef863880]{display:none}}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{content:"";display:table}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{color:var(--el-text-color-placeholder);font-weight:700;margin:0 9px}.el-breadcrumb__separator.el-icon{font-weight:400;margin:0 6px}.el-breadcrumb__separator.el-icon svg{vertical-align:middle}.el-breadcrumb__item{align-items:center;display:inline-flex;float:left}.el-breadcrumb__inner{color:var(--el-text-color-regular)}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{color:var(--el-text-color-primary);font-weight:700;text-decoration:none;transition:var(--el-transition-color)}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:var(--el-color-primary);cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{color:var(--el-text-color-regular);cursor:text;font-weight:400}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-checkbox-group{font-size:0;line-height:0}.filter-dropdown[data-v-e6a38b20]{flex-shrink:0}.filter-trigger[data-v-e6a38b20]{cursor:pointer;display:flex;align-items:center}.header-icon[data-v-e6a38b20]{font-size:1.5em;cursor:pointer;transition:all .3s ease;color:var(--admin-container-color);outline:none}.header-icon[data-v-e6a38b20]:hover{color:var(--admin-purple);transform:scale(1.2)}.filter-badge[data-v-e6a38b20] .el-badge__content{background:#0ea5e9;border:none;font-size:10px;height:16px;line-height:16px;padding:0 5px}.filter-dropdown-menu[data-v-e6a38b20]{padding:8px 0;min-width:180px;max-height:400px;overflow-y:auto}.filter-section[data-v-e6a38b20]{padding:8px 12px;border-bottom:1px solid var(--el-border-color-lighter)}.filter-section[data-v-e6a38b20]:last-of-type{border-bottom:none}.filter-title[data-v-e6a38b20]{font-size:12px;font-weight:600;color:var(--el-text-color-secondary);margin-bottom:6px}.filter-options[data-v-e6a38b20],.filter-options[data-v-e6a38b20] .el-checkbox-group{display:flex;flex-direction:column;gap:2px}.filter-options[data-v-e6a38b20] .el-checkbox{margin-right:0;height:26px;padding:0 6px;border-radius:4px;transition:all .2s ease}.filter-options[data-v-e6a38b20] .el-checkbox:hover{background:var(--el-fill-color-light)}.filter-options[data-v-e6a38b20] .el-checkbox__label{font-size:13px;color:var(--el-text-color-primary)}.filter-options[data-v-e6a38b20] .el-checkbox__input.is-checked+.el-checkbox__label{color:#0ea5e9}.channel-group-title[data-v-e6a38b20]{font-size:11px;font-weight:600;color:var(--el-text-color-secondary);text-transform:uppercase;letter-spacing:.5px;padding:4px 6px;margin-top:4px;margin-bottom:2px}.channel-divider[data-v-e6a38b20]{height:1px;background:var(--el-border-color-lighter);margin:6px 0}.filter-options[data-v-e6a38b20] .el-checkbox__input.is-checked .el-checkbox__inner{background-color:#0ea5e9;border-color:#0ea5e9}.filter-actions[data-v-e6a38b20]{padding:10px 12px 6px;display:flex;justify-content:center}.filter-actions .el-button[data-v-e6a38b20]{width:100%;background:var(--el-fill-color-light);border:1px solid var(--el-border-color);color:var(--el-text-color-regular);border-radius:6px;transition:all .2s ease}.filter-actions .el-button[data-v-e6a38b20]:hover:not(:disabled){background:#0ea5e9;border-color:#38bdf8;color:#fff}.filter-actions .el-button[data-v-e6a38b20]:disabled{opacity:.5;cursor:not-allowed}@media (max-width:768px){.filter-dropdown-menu[data-v-e6a38b20]{min-width:160px;max-height:320px}.filter-section[data-v-e6a38b20]{padding:6px 10px}.filter-title[data-v-e6a38b20]{font-size:11px;margin-bottom:4px}.filter-options[data-v-e6a38b20] .el-checkbox{height:24px;padding:0 4px}.filter-options[data-v-e6a38b20] .el-checkbox__label{font-size:12px}.header-icon[data-v-e6a38b20]{font-size:1.2em}}.language-switcher[data-v-08567d0a]{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .3s ease}.lang-icon[data-v-08567d0a]{font-size:var(--lang-icon-size,1.5em);color:var(--lang-icon-color,var(--theme-toggle-color))}#themeToggle[data-v-5c149ed5]{border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:.375rem;transition-property:background-color,border-color,color;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.theme_toggle_circle1[data-v-5c149ed5]{transition:cx .5s ease-in-out,cy .5s ease-in-out,r .5s ease-in-out}.theme_toggle_circle2[data-v-5c149ed5]{transition:all .5s ease-in-out;fill:var(--admin-theme-toggle-bg-color)}.theme_toggle_svg[data-v-5c149ed5]{transition:transform .5s cubic-bezier(.68,-.55,.27,1.55);color:var(--admin-theme-toggle-color)}.dark.theme_toggle_svg[data-v-5c149ed5]{transform:rotate(40deg)}.theme_toggle_g[data-v-5c149ed5]{transition:opacity .5s ease-in-out}.icon-fade-enter-active[data-v-5c149ed5],.icon-fade-leave-active[data-v-5c149ed5]{transition:opacity .3s ease-in-out,transform .3s ease-in-out}.icon-fade-enter-from[data-v-5c149ed5]{opacity:0;transform:scale(.8) rotate(-90deg)}.icon-fade-leave-to[data-v-5c149ed5]{opacity:0;transform:scale(.8) rotate(90deg)}.icon-fade-enter-to[data-v-5c149ed5],.icon-fade-leave-from[data-v-5c149ed5]{opacity:1;transform:scale(1) rotate(0deg)}.auto-icon[data-v-5c149ed5]{display:inline-block}.tabs[data-v-07e603fa]{display:flex;align-items:center;justify-content:center;gap:8px}.page-switcher[data-v-07e603fa]{position:relative;display:grid;align-items:start;height:44px;overflow:visible}.page-switcher.is-open[data-v-07e603fa]{z-index:1200}.page-switcher-sheet[data-v-07e603fa]{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:4px;border:1px solid transparent;border-radius:14px;box-sizing:border-box;background-color:transparent;overflow:visible;transition:none}.page-switcher-sheet[data-v-07e603fa]:before{content:"";position:absolute;top:0;left:0;right:0;z-index:0;height:156px;border:1px solid var(--tabs-switcher-border-color);border-radius:14px;background:var(--tabs-dropdown-popper-bg-color);box-shadow:var(--tabs-dropdown-popper-shadow);opacity:0;transform:translateY(-4px) scaleY(.72);transform-origin:top center;pointer-events:none;transition:opacity .3s ease,transform .3s cubic-bezier(.22,1,.36,1);will-change:opacity,transform}.page-switcher.is-open .page-switcher-sheet[data-v-07e603fa]:before{opacity:1;transform:translateY(0) scaleY(1);pointer-events:auto}.page-switcher-title[data-v-07e603fa]{line-height:1}.page-switcher-arrow[data-v-07e603fa]{margin-left:auto;font-size:.75em;color:var(--tabs-switcher-accent-color);transition:transform .3s ease}.page-switcher.is-open .page-switcher-arrow[data-v-07e603fa]{transform:rotate(180deg)}.page-option[data-v-07e603fa]{position:relative;z-index:1;display:inline-flex;flex:0 0 auto;align-items:center;box-sizing:border-box;gap:7px;width:100%;min-width:148px;height:37px;padding:0 12px;border:none;border-radius:10px;color:var(--admin-container-color);background:transparent;font-size:15px;font-weight:600;font-family:inherit;white-space:nowrap;cursor:pointer;transition:none}.page-option-list[data-v-07e603fa]{position:absolute;top:41px;left:5px;right:5px;display:flex;flex-direction:column;align-items:stretch;opacity:0;pointer-events:none;transform:translateY(-9px) scaleY(.86);transform-origin:top center;transition:opacity .3s ease,transform .3s cubic-bezier(.22,1,.36,1)}.page-option-list .page-option[data-v-07e603fa]{position:relative;z-index:1;width:100%}.page-option-highlight[data-v-07e603fa]{position:absolute;top:0;left:0;right:0;z-index:0;height:37px;border-radius:10px;background:var(--tabs-switcher-hover-bg);opacity:0;pointer-events:none;transform:translateY(calc(var(--hovered-option-index)*37px));transition:opacity .3s ease,transform .3s cubic-bezier(.22,1,.36,1)}.page-option-highlight.is-visible[data-v-07e603fa]{opacity:1}.page-switcher.is-open .page-option-list[data-v-07e603fa]{opacity:1;pointer-events:auto;transform:translateY(0) scaleY(1)}.page-option.is-current[data-v-07e603fa]{height:37px;gap:8px;padding:0 14px;color:var(--tabs-switcher-current-color);background:var(--tabs-switcher-current-bg);border:1px solid var(--tabs-switcher-current-border-color);box-shadow:none;font-size:1.1em;font-weight:700;line-height:1.15}.page-option.is-current>.page-option-icon[data-v-07e603fa]{width:17px;font-size:1.05em}.page-option.is-current>.page-option-icon[data-v-07e603fa],.page-option.is-current>.page-switcher-arrow[data-v-07e603fa],.page-option.is-current>.page-switcher-title[data-v-07e603fa]{translate:0 1px}.page-option[data-v-07e603fa]:hover{color:var(--tabs-switcher-accent-color);background-color:transparent}.page-option.is-current[data-v-07e603fa]:hover{color:var(--tabs-switcher-current-color);background:var(--tabs-switcher-current-bg)}.page-option-icon[data-v-07e603fa]{width:16px;color:var(--tabs-switcher-accent-color)}@media (max-width:768px){.tabs[data-v-07e603fa]{gap:6px}.page-switcher-title[data-v-07e603fa]{max-width:6em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-switcher-sheet[data-v-07e603fa]{width:-moz-max-content;width:max-content;max-width:calc(100vw - 96px)}.page-switcher-sheet[data-v-07e603fa]:before{height:136px;transform:translateY(-3px) scaleY(.72)}.page-option[data-v-07e603fa]{justify-content:flex-start;min-width:0;height:32px;padding:0 10px;font-size:12px;gap:6px}.page-option-icon[data-v-07e603fa]{width:15px}.page-option-list[data-v-07e603fa]{top:36px;transform:translateY(-8px) scaleY(.86)}.page-option-highlight[data-v-07e603fa]{height:32px;transform:translateY(calc(var(--hovered-option-index)*32px))}.page-option.is-current[data-v-07e603fa]{height:32px;gap:5px;padding:0 10px;font-size:1em}.page-option.is-current>.page-option-icon[data-v-07e603fa]{width:16px}.page-option.is-current>.page-switcher-arrow[data-v-07e603fa]{margin-left:4px}.tabs-language-switcher[data-v-07e603fa]{--lang-icon-size:1.1em;padding:3px}}.tabs-language-switcher[data-v-07e603fa]{--lang-icon-size:1.3em;--lang-icon-color:var(--admin-theme-toggle-color);transition:color .3s ease;padding:5px}.tabs[data-v-07e603fa] #themeToggle,.tabs[data-v-07e603fa] #themeToggle:hover,.tabs[data-v-07e603fa] .language-switcher,.tabs[data-v-07e603fa] .language-switcher:hover{background-color:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.container[data-v-57eabdee]{background:var(--admin-container-bg-color);min-height:100vh;font-family:Arial,sans-serif;color:var(--admin-container-color);margin:0;padding:0}[data-v-57eabdee] .el-container,[data-v-57eabdee] .el-main{overflow:visible}[data-v-57eabdee] .el-dialog{border-radius:12px;background-color:var(--dialog-bg-color);box-shadow:var(--dialog-box-shadow)}.header-content[data-v-57eabdee]{display:flex;justify-content:space-between;align-items:center;padding:10px 24px;background:hsla(0,0%,100%,.72);border:1px solid #d9dce2;box-shadow:none;transition:background-color .25s ease,border-color .25s ease,box-shadow .25s ease;border-radius:16px;position:fixed;top:8px;left:50%;transform:translateX(-50%);width:calc(95% - 16px);z-index:2001;min-height:45px}html.dark .header-content[data-v-57eabdee]{background:rgba(22,22,24,.75);border:1px solid #34343a;box-shadow:none}@media (max-width:768px){.header-content[data-v-57eabdee]{flex-direction:column;top:6px;width:calc(100% - 32px);border-radius:14px;padding:6px 12px;gap:4px}.header-icon[data-v-57eabdee]{font-size:.95em}.header-content .actions[data-v-57eabdee]{gap:10px}.search-card[data-v-57eabdee] .el-input__inner{height:28px;font-size:.85em;width:50vw}.search-card[data-v-57eabdee] .el-input__wrapper{padding:0 10px}.search-card[data-v-57eabdee] .el-input__inner:focus{width:65vw}}.header-content[data-v-57eabdee]:hover{background:hsla(0,0%,100%,.82);box-shadow:none;transform:translateX(-50%)}html.dark .header-content[data-v-57eabdee]:hover{background:rgba(35,35,35,.85);box-shadow:none}.header-icon[data-v-57eabdee]{font-size:1.5em;cursor:pointer;transition:all .3s ease;color:var(--admin-container-color);outline:none}.header-icon[data-v-57eabdee]:hover{color:var(--admin-purple);transform:scale(1.2)}.breadcrumb-container[data-v-57eabdee]{display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:0 10px;margin-top:12px;margin-bottom:4px}.breadcrumb-view-toggle[data-v-57eabdee]{height:32px;box-sizing:border-box;flex:0 0 auto;display:inline-flex;align-items:center;gap:2px;padding:2px;border:1px solid #d9dce2;border-radius:10px;background:hsla(0,0%,100%,.72);box-shadow:none;transition:background-color .2s ease,border-color .2s ease}html.dark .breadcrumb-view-toggle[data-v-57eabdee]{background:rgba(22,22,24,.75);border:1px solid #34343a}.breadcrumb-view-toggle[data-v-57eabdee]:hover{border-color:#bfc4cc;background:hsla(0,0%,100%,.85)}html.dark .breadcrumb-view-toggle[data-v-57eabdee]:hover{background:rgba(22,22,24,.88);border-color:#4a4a52}.breadcrumb-view-button[data-v-57eabdee]{width:28px;height:26px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:5px;color:var(--el-text-color-secondary);background:transparent;cursor:pointer;transition:color .16s ease}.breadcrumb-view-button[data-v-57eabdee]:hover{color:#38bdf8}.breadcrumb-view-button.is-active[data-v-57eabdee]{color:#38bdf8;background:rgba(56,189,248,.12);box-shadow:none}.breadcrumb-view-icon[data-v-57eabdee]{width:14px;height:14px}@media (max-width:768px){.breadcrumb-container[data-v-57eabdee]{flex-direction:row;align-items:center;gap:8px;padding:0 5px;margin-top:8px;margin-bottom:2px}.breadcrumb-view-toggle[data-v-57eabdee]{height:28px;padding:2px;border-radius:8px}.breadcrumb-view-button[data-v-57eabdee]{width:24px;height:22px;border-radius:6px}.breadcrumb-view-icon[data-v-57eabdee]{width:12px;height:12px}}.stats-badge[data-v-57eabdee]{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;color:var(--el-text-color-secondary);background:hsla(0,0%,100%,.72);padding:4px 12px;border-radius:12px;border:1px solid #d9dce2;box-shadow:none;transition:background-color .2s ease,border-color .2s ease;white-space:nowrap;flex-shrink:0;margin-left:auto}html.dark .stats-badge[data-v-57eabdee]{background:rgba(22,22,24,.75);border:1px solid #34343a}.stats-badge[data-v-57eabdee]:hover{background:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark .stats-badge[data-v-57eabdee]:hover{background:rgba(22,22,24,.88);border-color:#4a4a52}.stats-badge-icon[data-v-57eabdee]{font-size:11px;opacity:.8}@media (max-width:768px){.stats-badge[data-v-57eabdee]{font-size:10px;padding:2px 6px;border-radius:8px}.stats-badge-icon[data-v-57eabdee]{font-size:9px}}.header-content .actions[data-v-57eabdee]{display:flex;align-items:center;gap:15px}@media (max-width:768px){.header-content .actions[data-v-57eabdee]{margin-top:10px}}.header-content .actions i[data-v-57eabdee]{font-size:1.5em;cursor:pointer;transition:color .3s,transform .3s;color:var(--admin-container-color)}.header-content .actions i[data-v-57eabdee]:hover{color:var(--admin-purple);transform:scale(1.2)}.header-content .actions .el-dropdown-link i[data-v-57eabdee]{color:var(--admin-container-color)}.header-content .actions .el-dropdown-link i[data-v-57eabdee]:hover{color:var(--admin-purple)}.header-content .actions .disabled[data-v-57eabdee]{color:#c0c4cc;pointer-events:none}.header-content .actions .enabled[data-v-57eabdee]{color:var(--admin-purple)}.search-area[data-v-57eabdee]{margin-left:auto;margin-right:20px;display:flex;align-items:center;gap:8px}@media (max-width:768px){.search-area[data-v-57eabdee]{margin-right:0;margin-left:0;margin-top:10px;gap:6px}}.search-card[data-v-57eabdee]{display:flex;align-items:center}.search-card[data-v-57eabdee] .el-input{background:transparent!important;border:none!important;box-shadow:none!important}.search-card[data-v-57eabdee] .el-input__wrapper{border-radius:20px;background:var(--glass-bg);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.search-card[data-v-57eabdee] .el-input__inner{width:280px;height:40px;font-size:1.2em;border:none;transition:width .3s;background:none}.search-card[data-v-57eabdee] .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder);font-style:italic;font-weight:400;font-size:14px;opacity:.6;letter-spacing:.5px;-moz-transition:all .3s ease;transition:all .3s ease}.search-card[data-v-57eabdee] .el-input__inner::placeholder{color:var(--el-text-color-placeholder);font-style:italic;font-weight:400;font-size:14px;opacity:.6;letter-spacing:.5px;transition:all .3s ease}.search-card[data-v-57eabdee] .el-input__inner:focus::-moz-placeholder{opacity:.4;transform:translateX(5px)}.search-card[data-v-57eabdee] .el-input__inner:focus::placeholder{opacity:.4;transform:translateX(5px)}@media (max-width:768px){.search-card[data-v-57eabdee] .el-input__inner{width:45vw;height:32px;font-size:1em}}.search-card[data-v-57eabdee] .el-input__inner:focus{width:350px}@media (max-width:768px){.search-card[data-v-57eabdee] .el-input__inner:focus{width:55vw}}.search-icon[data-v-57eabdee]{cursor:pointer;color:var(--admin-container-color);transition:all .3s ease;font-size:1.3em;opacity:0;transform:scale(.8);pointer-events:none}.search-card:focus-within .search-icon[data-v-57eabdee]{opacity:1;transform:scale(1);pointer-events:auto}.search-card:focus-within .search-icon[data-v-57eabdee]:hover{color:var(--admin-purple);transform:scale(1.2)}.search-card[data-v-57eabdee] .el-input__suffix{display:flex;align-items:center;right:10px}.main-container[data-v-57eabdee]{display:flex;flex-direction:column;padding:20px 60px;min-height:calc(100vh - 80px);transition:padding-bottom .24s ease}.main-container.has-batch-toolbar[data-v-57eabdee]{padding-bottom:72px}@media (max-width:768px){.main-container[data-v-57eabdee]{margin-top:12vh;padding:16px 10px}.main-container.has-batch-toolbar[data-v-57eabdee]{padding-bottom:86px}}.content[data-v-57eabdee]{display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(3,1fr);gap:20px;padding:10px;padding-bottom:0;flex-grow:1;min-height:80vh}.content.is-drag-selecting[data-v-57eabdee],.list-view.is-drag-selecting[data-v-57eabdee]{cursor:crosshair}.content.is-drag-selecting[data-v-57eabdee] .img-card:hover,.content.is-drag-selecting[data-v-57eabdee] .img-card:hover .file-icon,.content.is-drag-selecting[data-v-57eabdee] .img-card:hover .folder-icon-svg,.content.is-drag-selecting[data-v-57eabdee] .img-card:hover .image-preview,.content.is-drag-selecting[data-v-57eabdee] .img-card:hover .video-preview{transform:none}.content.is-drag-selecting[data-v-57eabdee] .image-preview:hover{opacity:1}.content.is-drag-selecting[data-v-57eabdee] .action-btn:hover{transform:none;background:hsla(0,0%,100%,.15)}.list-view.is-drag-selecting[data-v-57eabdee] .list-item:hover{background:transparent}.list-view.is-drag-selecting[data-v-57eabdee] .list-action-btn:hover{color:var(--el-text-color-regular);background:var(--el-fill-color)}.list-view.is-drag-selecting[data-v-57eabdee] .list-action-danger:hover{background:var(--el-fill-color)}.empty-state[data-v-57eabdee]{grid-column:1/-1;grid-row:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--admin-container-color);opacity:.6}.empty-icon[data-v-57eabdee]{font-size:64px;margin-bottom:20px;color:var(--admin-container-color);opacity:.3}.empty-text[data-v-57eabdee]{font-size:18px;font-weight:500;margin:0 0 8px 0}.empty-hint[data-v-57eabdee]{font-size:14px;margin:0;opacity:.7}.list-empty[data-v-57eabdee]{padding:80px 20px}@media (max-width:768px){.content[data-v-57eabdee]{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;gap:8px;margin-top:15px;padding:0;flex-grow:0;min-height:auto;align-content:start;align-items:start}}.list-view[data-v-57eabdee]{display:flex;flex-direction:column;gap:0;background:var(--admin-dashboard-imgcard-bg-color);border:1px solid var(--glass-border);border-radius:12px;overflow-x:auto;overflow-y:visible;box-shadow:var(--admin-dashboard-imgcard-shadow);margin-top:15px}.list-header[data-v-57eabdee]{display:grid;grid-template-columns:50px 60px minmax(180px,1fr) 130px 100px 110px 130px 80px 100px 120px;padding:12px 20px;background:var(--admin-dashboard-stats-bg);font-weight:600;font-size:13px;color:var(--el-text-color-secondary);border-bottom:1px solid var(--el-border-color-lighter);min-width:-moz-fit-content;min-width:fit-content}.list-col[data-v-57eabdee]{display:flex;align-items:center}.list-col-checkbox[data-v-57eabdee]{justify-content:center;min-width:40px}@media (max-width:768px){.list-header[data-v-57eabdee]{display:none}}.pagination-container[data-v-57eabdee]{display:flex;justify-content:center;align-items:center;margin-top:20px;padding-bottom:20px;gap:15px;position:relative}.pagination-center[data-v-57eabdee]{display:flex;align-items:center;gap:10px}.pagination-container[data-v-57eabdee] .el-pagination{--el-pagination-button-bg-color:var(--admin-dashboard-btn-bg-color);--el-pagination-hover-color:var(--admin-purple)}.pagination-container[data-v-57eabdee] .el-pager li{background:hsla(0,0%,100%,.72);border-radius:10px;margin:0 4px;min-width:36px;height:36px;line-height:36px;font-weight:500;border:1px solid #d9dce2;box-shadow:none;transition:background-color .25s ease,border-color .25s ease,color .25s ease}html.dark .pagination-container[data-v-57eabdee] .el-pager li{background:rgba(22,22,24,.75);border:1px solid #34343a}.pagination-container[data-v-57eabdee] .el-pager li:hover{color:#38bdf8;background:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark .pagination-container[data-v-57eabdee] .el-pager li:hover{background:rgba(22,22,24,.88);border-color:#4a4a52}.pagination-container[data-v-57eabdee] .el-pager li.is-active{background:#0ea5e9!important;color:#fff!important;border-radius:10px;box-shadow:none;transition:all .3s cubic-bezier(.4,0,.2,1)}.pagination-container[data-v-57eabdee] .el-pager li.is-active:hover{box-shadow:none!important}.pagination-container[data-v-57eabdee] .btn-next,.pagination-container[data-v-57eabdee] .btn-prev{background:hsla(0,0%,100%,.72)!important;border-radius:10px!important;min-width:36px;height:36px;border:1px solid #d9dce2!important;box-shadow:none;transition:background-color .25s ease,border-color .25s ease,color .25s ease}html.dark .pagination-container[data-v-57eabdee] .btn-next,html.dark .pagination-container[data-v-57eabdee] .btn-prev{background:rgba(22,22,24,.75)!important;border:1px solid #34343a!important}.pagination-container[data-v-57eabdee] .btn-next:hover,.pagination-container[data-v-57eabdee] .btn-prev:hover{color:#38bdf8;background:hsla(0,0%,100%,.85)!important;border-color:#bfc4cc!important}html.dark .pagination-container[data-v-57eabdee] .btn-next:hover,html.dark .pagination-container[data-v-57eabdee] .btn-prev:hover{background:rgba(22,22,24,.88)!important;border-color:#4a4a52!important}.pagination-right[data-v-57eabdee]{display:flex;align-items:center;gap:10px;position:absolute;right:0}.page-total[data-v-57eabdee]{font-size:13px;color:var(--el-text-color-secondary);white-space:nowrap}.page-jump[data-v-57eabdee]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--el-text-color-secondary)}.page-jump .jump-input[data-v-57eabdee]{width:50px}.page-jump .jump-input[data-v-57eabdee] .el-input__wrapper{background:hsla(0,0%,100%,.72);box-shadow:none;border:1px solid #d9dce2;border-radius:8px;padding:0 8px;height:28px}html.dark .page-jump .jump-input[data-v-57eabdee] .el-input__wrapper{background:rgba(22,22,24,.75);border:1px solid #34343a}.page-jump .jump-input[data-v-57eabdee] .el-input__inner{text-align:center;color:var(--el-text-color-primary);height:28px;line-height:28px}.page-jump .jump-btn[data-v-57eabdee]{background:#0ea5e9;border:none;border-radius:8px;padding:0 12px;height:28px;font-size:12px;font-weight:600;color:#fff;box-shadow:none;transition:all .3s ease}.page-jump .jump-btn[data-v-57eabdee]:hover{box-shadow:none}@media (max-width:768px){.pagination-container[data-v-57eabdee]{flex-direction:column;gap:8px;margin-top:14px;padding-bottom:10px}.pagination-center[data-v-57eabdee]{order:0;gap:6px;flex-wrap:wrap;justify-content:center}.pagination-container[data-v-57eabdee] .el-pager li{min-width:30px;height:30px;line-height:30px;margin:0 2px;border-radius:8px;font-size:12px}.pagination-container[data-v-57eabdee] .btn-next,.pagination-container[data-v-57eabdee] .btn-prev{position:static!important;top:auto!important;left:auto!important;right:auto!important;display:none!important;min-width:30px!important;width:30px!important;height:30px!important;border-radius:8px!important;font-size:12px;scale:1!important}.pagination-right[data-v-57eabdee]{position:static;width:100%;justify-content:center;gap:6px;order:1}.page-jump[data-v-57eabdee],.page-total[data-v-57eabdee]{font-size:12px}.page-jump .jump-input[data-v-57eabdee]{width:40px}.page-jump .jump-input[data-v-57eabdee] .el-input__wrapper{height:26px;padding:0 6px;border-radius:7px}.page-jump .jump-input[data-v-57eabdee] .el-input__inner{height:26px;line-height:26px;font-size:12px}.page-jump .jump-btn[data-v-57eabdee]{height:26px;padding:0 10px;border-radius:7px;font-size:11px}.refresh-btn[data-v-57eabdee]{width:30px!important;min-width:30px!important;padding:0!important}.load-more[data-v-57eabdee],.refresh-btn[data-v-57eabdee]{--el-button-size:30px;height:30px!important;border-radius:8px!important;font-size:12px!important}.load-more[data-v-57eabdee]{min-height:30px!important;padding:0 10px!important}}.refresh-btn[data-v-57eabdee]{cursor:pointer;background:hsla(0,0%,100%,.72);box-shadow:none;color:#38bdf8;border:1px solid #d9dce2;border-radius:10px;width:36px;height:36px;min-width:36px;padding:0;display:flex;align-items:center;justify-content:center;font-size:14px;transition:background-color .25s ease,border-color .25s ease,color .25s ease}html.dark .refresh-btn[data-v-57eabdee]{background:rgba(22,22,24,.75);border:1px solid #34343a}.refresh-btn[data-v-57eabdee]:hover{background:hsla(0,0%,100%,.85);border-color:#bfc4cc;color:#0ea5e9}html.dark .refresh-btn[data-v-57eabdee]:hover{background:rgba(22,22,24,.88);border-color:#4a4a52}.load-more[data-v-57eabdee]{cursor:pointer;background:#0ea5e9;box-shadow:none;color:#fff;border:none;border-radius:10px;height:36px;padding:0 16px;font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1)}.load-more[data-v-57eabdee]:hover{box-shadow:none}[data-v-57eabdee] .btn-prev{left:8px}[data-v-57eabdee] .btn-next,[data-v-57eabdee] .btn-prev{border-radius:100%;position:fixed;top:50%;scale:1;color:var(--admin-dashboard-btn-color)}[data-v-57eabdee] .btn-next{right:8px}@media (min-width:768px){[data-v-57eabdee] .el-pagination.is-background .btn-next,[data-v-57eabdee] .el-pagination.is-background .btn-prev{background-color:hsla(0,0%,100%,.72);border:1px solid #d9dce2;box-shadow:none;transition:background-color .25s ease,border-color .25s ease}html.dark[data-v-57eabdee] .el-pagination.is-background .btn-next,html.dark[data-v-57eabdee] .el-pagination.is-background .btn-prev{background-color:rgba(22,22,24,.75);border:1px solid #34343a}[data-v-57eabdee] .el-pagination.is-background .btn-next:hover,[data-v-57eabdee] .el-pagination.is-background .btn-prev:hover{background-color:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark[data-v-57eabdee] .el-pagination.is-background .btn-next:hover,html.dark[data-v-57eabdee] .el-pagination.is-background .btn-prev:hover{background-color:rgba(22,22,24,.88);border-color:#4a4a52}}.question-icon[data-v-57eabdee]{margin:0 3px}.breadcrumb[data-v-57eabdee]{height:32px;box-sizing:border-box;display:flex;align-items:center;padding:0 12px;background-color:hsla(0,0%,100%,.72);border:1px solid #d9dce2;border-radius:10px;font-size:.95em;box-shadow:none;cursor:pointer;transition:background-color .2s ease,border-color .2s ease}html.dark .breadcrumb[data-v-57eabdee]{background-color:rgba(22,22,24,.75);border:1px solid #34343a}.breadcrumb[data-v-57eabdee]:hover{background-color:hsla(0,0%,100%,.85);border-color:#bfc4cc}html.dark .breadcrumb[data-v-57eabdee]:hover{background-color:rgba(22,22,24,.88);border-color:#4a4a52}.breadcrumb-home-icon[data-v-57eabdee]{font-size:14px;color:var(--el-text-color-secondary);cursor:pointer;transition:color .2s ease}.breadcrumb-home-icon[data-v-57eabdee]:hover{color:#38bdf8}[data-v-57eabdee] .el-breadcrumb__item{cursor:pointer}[data-v-57eabdee] .el-breadcrumb,[data-v-57eabdee] .el-breadcrumb__inner,[data-v-57eabdee] .el-breadcrumb__item,[data-v-57eabdee] .el-breadcrumb__separator{display:inline-flex;align-items:center;height:100%;line-height:32px}[data-v-57eabdee] .el-breadcrumb__inner{cursor:pointer}[data-v-57eabdee] .el-breadcrumb__inner:hover{color:var(--el-color-primary)}.mobile-directory-trigger[data-v-57eabdee]{display:none;align-items:center;flex:1 1 auto;min-width:0;height:28px;box-sizing:border-box;gap:6px;padding:0 10px;background:hsla(0,0%,100%,.72);border-radius:8px;border:1px solid #d9dce2;cursor:pointer;transition:background-color .2s ease,border-color .2s ease}html.dark .mobile-directory-trigger[data-v-57eabdee]{background:rgba(22,22,24,.75);border:1px solid #34343a}.mobile-directory-trigger[data-v-57eabdee]:active{background:hsla(0,0%,100%,.85);border-color:#bfc4cc}.mobile-directory-icon[data-v-57eabdee]{flex:0 0 auto;font-size:12px;color:#38bdf8}.mobile-directory-path[data-v-57eabdee]{display:block;flex:1 1 auto;min-width:0;font-size:12px;font-weight:500;line-height:1;color:var(--el-text-color-primary);max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-directory-arrow[data-v-57eabdee]{flex:0 0 auto;font-size:8px;color:var(--el-text-color-secondary)}.desktop-only[data-v-57eabdee]{display:block}@media (max-width:768px){.mobile-directory-trigger[data-v-57eabdee]{display:flex}.desktop-only[data-v-57eabdee]{display:none!important}.breadcrumb-container[data-v-57eabdee]{padding:0;margin-left:0;width:100%;box-sizing:border-box}}.drag-select-overlay[data-v-57eabdee]{position:fixed;background:rgba(24,144,255,.1);border:1px solid rgba(24,144,255,.6);pointer-events:none;z-index:9999;border-radius:2px} \ No newline at end of file diff --git a/frontend-dist/css/957.db5680df.css.gz b/frontend-dist/css/957.db5680df.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..346301cd4715871e1d968bb3a4e1acd757c77fe9 GIT binary patch literal 15291 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 literal 0 HcmV?d00001 diff --git a/frontend-dist/css/app.22746548.css.gz b/frontend-dist/css/app.22746548.css.gz deleted file mode 100644 index 89e8ded010db8de7dbddb4fe91ed34c90ef8f1ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4949 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 TNgN9e%l$|xJ7WL<4CkWn diff --git a/frontend-dist/css/app.22746548.css b/frontend-dist/css/app.c8e85cb3.css similarity index 57% rename from frontend-dist/css/app.22746548.css rename to frontend-dist/css/app.c8e85cb3.css index cbaf790c..0d507355 100644 --- a/frontend-dist/css/app.22746548.css +++ b/frontend-dist/css/app.c8e85cb3.css @@ -1 +1 @@ -@font-face{font-family:Pacifico;src:url(/fonts/Pacifico-Regular.dc63ac94.woff2) format("woff2");font-display:swap}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#1d2129}nav{padding:30px}nav a{font-weight:700;color:#1d2129}nav a.router-link-exact-active{color:#2563eb}body{margin:0;padding:0;background-color:#f7f7f8}:focus-visible{outline:none}*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}:root{--bg-color:#f7f7f8;--popper-bg-color:#fff;--popper-shadow:none;--image-preview-filter:none;--text-bg-color:#f2f3f5;--background-image-filter:none;--upload-list-card-bg-color:#fff;--upload-list-card-border:1px solid #e5e6eb;--upload-list-card-box-shadow:none;--upload-list-item-border:1px solid #e5e6eb;--upload-list-dashboard-bg-color:#fff;--upload-list-dashboard-shadow:none;--upload-list-file-icon-color:#2563eb;--el-upload-dragger-bg-color:#fafafb;--el-upload-dragger-border:2px dashed #c9cdd4;--el-upload-dragger-border-color:#c9cdd4;--el-upload-dragger-hover-box-shadow:none;--el-upload-dragger-uniform-color:#2563eb;--paste-card-textarea-border-color:#c9cdd4;--paste-card-textarea-box-shadow:none;--el-icon--upload-color:#2563eb;--upload-text-color:#4e5969;--upload-header-color:#1d2129;--upload-main-title-color:#1d2129;--upload-title-text-color:#4e5969;--upload-title-text-shadow:none;--upload-title-hover-glow:transparent;--upload-title-underline-bg:#2563eb;--upload-title-underline-shadow:none;--upload-title-crayon-deep:#1d2129;--upload-title-crayon-base:#1d2129;--upload-title-crayon-light:#4e5969;--upload-title-crayon-edge:#c9cdd4;--upload-title-crayon-fleck:transparent;--upload-title-crayon-burr:transparent;--upload-title-crayon-dust:transparent;--modern-action-group-bg:#f7f8fa;--modern-action-group-border:#e5e6eb;--logo-glow-color:transparent;--modern-action-group-shadow:none;--modern-action-group-hover-bg:#f2f3f5;--modern-action-group-hover-shadow:none;--upload-action-toolbar-bg:#fff;--upload-action-toolbar-border:#e5e6eb;--upload-action-toolbar-shadow:none;--upload-action-toolbar-hover-bg:#f7f8fa;--upload-action-toolbar-hover-border:#c9cdd4;--upload-action-toolbar-hover-shadow:none;--upload-action-btn-bg:transparent;--upload-action-btn-color:#4e5969;--upload-action-btn-shadow:none;--upload-action-btn-hover-bg:#f2f3f5;--upload-action-btn-hover-shadow:none;--upload-action-btn-active-shadow:none;--upload-action-copy-color:#2563eb;--upload-action-retry-color:#16a34a;--upload-action-danger-color:#dc2626;--upload-action-danger-bg:transparent;--upload-action-danger-hover-bg:#fef2f2;--upload-action-danger-hover-shadow:none;--file-name-bg:#f7f8fa;--file-name-border:#e5e6eb;--file-name-hover-bg:#f2f3f5;--file-name-hover-border:#c9cdd4;--upload-list-item-bg:#fff;--upload-list-item-border-color:#e5e6eb;--upload-list-item-shadow:none;--upload-list-item-hover-border:#c9cdd4;--upload-list-item-hover-shadow:none;--dashboard-title-bg:transparent;--toolbar-button-bg-color:#fff;--toolbar-button-shadow:none;--toolbar-button-shadow-hover:none;--toolbar-button-color:#4e5969;--page-footer-text-color:#59636e;--page-footer-name-color:#1d2129;--login-container-bg-color:#fff;--password-input-bg-color:#fff;--password-input-border:1px solid #e5e6eb;--login-title-color:#1d2129;--login-container-box-shadow:none;--login-container-hover-box-shadow:none;--login-submit-btn-bg-color:#2563eb;--login-title-glow-color:transparent;--login-input-underline-color:#2563eb;--login-input-underline-secondary-color:#3b82f6;--login-input-label-focus-color:#2563eb;--dialog-bg-color:#fff;--dialog-box-shadow:none;--tabs-dropdown-popper-bg-color:#fff;--tabs-dropdown-popper-shadow:none;--tabs-switcher-hover-bg:#f2f3f5;--tabs-switcher-border-color:#e5e6eb;--tabs-switcher-hover-border-color:#c9cdd4;--tabs-switcher-accent-color:#2563eb;--tabs-switcher-current-color:#2563eb;--tabs-switcher-current-bg:#eff6ff;--tabs-switcher-current-border-color:#2563eb;--tabs-switcher-current-shadow:none;--admin-header-content-bg-color:#fff;--admin-header-content-hover-bg-color:#f7f8fa;--admin-header-content-border-bottom:1px solid #e5e6eb;--admin-header-content-box-shadow:none;--admin-header-content-hover-box-shadow:none;--admin-container-bg-color:#f7f7f8;--admin-container-color:#1d2129;--admin-dashborad-stats-bg-color:#fff;--admin-dashborad-stats-hover-bg-color:#f7f8fa;--admin-dashboard-search-card-bg-color:#fff;--admin-dashboard-stats-shadow:none;--admin-dashboard-stats-hover-shadow:none;--admin-dashboard-search-card-box-shadow:none;--admin-dashboard-btn-color:#4e5969;--admin-dashboard-btn-bg-color:#fff;--admin-dashboard-btn-shadow:none;--admin-dashboard-btn-hover-shadow:none;--admin-dashboard-imgcard-bg-color:#fff;--admin-dashboard-imgcard-shadow:none;--admin-dashboard-tag-suggestion-bg-color:#fff;--admin-dashboard-tag-suggestion-border-color:#e5e6eb;--admin-dashboard-tag-suggestion-box-shadow:none;--admin-dashboard-tag-suggestion-item-hover-bg-color:#f7f8fa;--skeleton-bg-color:#e5e6eb;--skeleton-shimmer-color:#f7f8fa;--admin-cuscfg-table-shadow:none;--admin-cuscfg-table-bg-color:#fff;--admin-syscfg-tabs-border-color:#e5e6eb;--admin-purple:#6366f1;--admin-batch-toolbar-bg:#fff;--admin-batch-toolbar-border:#e5e6eb;--admin-batch-toolbar-shadow:none;--admin-batch-action-bg:transparent;--admin-batch-action-shadow:none;--admin-batch-action-hover-bg:#f2f3f5;--admin-batch-action-hover-shadow:none;--admin-batch-delete-color:#dc2626;--admin-batch-tag-color:#d97706;--admin-batch-clear-color:#4e5969;--theme-toggle-color:#1d2129;--theme-toggle-bg-color:#1d2129;--admin-theme-toggle-color:#1d2129;--admin-theme-toggle-bg-color:#1d2129;--not-found-title-text-color:#1d2129;--floating-btn-bg:#2563eb;--floating-btn-color:#fff;--floating-btn-shadow:none;--floating-btn-shadow-hover:none;--floating-btn-right:32px;--floating-btn-bottom:32px;--glass-bg:hsla(0,0%,100%,.45);--glass-bg-hover:hsla(0,0%,100%,.55);--glass-border:#d9dce2;--glass-border-hover:#bfc4cc;--glass-shadow:none;--glass-shadow-hover:none;--glass-header-bg:rgba(247,248,250,.45);--glass-header-border:#d9dce2;--el-text-color-primary:#1d2129;--el-text-color-regular:#4e5969;--el-text-color-secondary:#59636e;--el-text-color-placeholder:#86909c;--el-text-color-disabled:#c0c4cc;--el-border-color:#c9cdd4;--el-border-color-light:#d9dce2;--el-border-color-lighter:#e5e6eb;--el-border-color-extra-light:#eceef1;--el-border-radius-base:8px;--el-border-radius-small:6px;--el-fill-color:#f2f3f5;--el-fill-color-light:#f7f8fa;--el-fill-color-lighter:#fafafb;--el-fill-color-blank:#fff;--text-color:#1d2129;--text-color-secondary:#59636e;--login-input-icon-color:#86909c;--icon-color:#59636e;--placeholder-color:#86909c}.dark{--bg-color:#0a0a0b;--popper-bg-color:#161618;--popper-shadow:none;--image-preview-filter:brightness(0.7);--text-bg-color:#1f1f22;--background-image-filter:brightness(0.7);--upload-list-card-bg-color:#161618;--upload-list-card-border:1px solid #2a2a2e;--upload-list-card-box-shadow:none;--upload-list-item-border:1px solid #2a2a2e;--upload-list-dashboard-bg-color:#161618;--upload-list-dashboard-shadow:none;--upload-list-file-icon-color:#60a5fa;--el-upload-dragger-bg-color:#131316;--el-upload-dragger-border:2px dashed #3a3a3f;--el-upload-dragger-border-color:#3a3a3f;--el-upload-dragger-hover-box-shadow:none;--el-upload-dragger-uniform-color:#60a5fa;--paste-card-textarea-border-color:#3a3a3f;--paste-card-textarea-box-shadow:none;--el-icon--upload-color:#60a5fa;--upload-text-color:#a1a1aa;--upload-header-color:#fafafa;--upload-main-title-color:#fafafa;--upload-title-text-color:#a1a1aa;--upload-title-text-shadow:none;--upload-title-hover-glow:transparent;--upload-title-underline-bg:#60a5fa;--upload-title-underline-shadow:none;--upload-title-crayon-deep:#fafafa;--upload-title-crayon-base:#fafafa;--upload-title-crayon-light:#a1a1aa;--upload-title-crayon-edge:#3a3a3f;--upload-title-crayon-fleck:transparent;--upload-title-crayon-burr:transparent;--upload-title-crayon-dust:transparent;--toolbar-button-bg-color:#161618;--toolbar-button-shadow:none;--toolbar-button-shadow-hover:none;--toolbar-button-color:#a1a1aa;--modern-action-group-bg:#131316;--modern-action-group-border:#2a2a2e;--logo-glow-color:transparent;--modern-action-group-shadow:none;--modern-action-group-hover-bg:#1f1f22;--modern-action-group-hover-shadow:none;--upload-action-toolbar-bg:#161618;--upload-action-toolbar-border:#2a2a2e;--upload-action-toolbar-shadow:none;--upload-action-toolbar-hover-bg:#1f1f22;--upload-action-toolbar-hover-border:#3a3a3f;--upload-action-toolbar-hover-shadow:none;--upload-action-btn-bg:transparent;--upload-action-btn-color:#a1a1aa;--upload-action-btn-shadow:none;--upload-action-btn-hover-bg:#1f1f22;--upload-action-btn-hover-shadow:none;--upload-action-btn-active-shadow:none;--upload-action-copy-color:#60a5fa;--upload-action-retry-color:#4ade80;--upload-action-danger-color:#f87171;--upload-action-danger-bg:transparent;--upload-action-danger-hover-bg:hsla(0,91%,71%,.12);--upload-action-danger-hover-shadow:none;--file-name-bg:#1f1f22;--file-name-border:#2a2a2e;--file-name-hover-bg:#26262a;--file-name-hover-border:#3a3a3f;--upload-list-item-bg:#161618;--upload-list-item-border-color:#2a2a2e;--upload-list-item-shadow:none;--upload-list-item-hover-border:#3a3a3f;--upload-list-item-hover-shadow:none;--dashboard-title-bg:transparent;--page-footer-text-color:#71717a;--page-footer-name-color:#a1a1aa;--login-container-bg-color:#161618;--password-input-bg-color:#131316;--password-input-border:1px solid #2a2a2e;--login-title-color:#fafafa;--login-container-box-shadow:none;--login-container-hover-box-shadow:none;--login-submit-btn-bg-color:#4a5d9b;--login-title-glow-color:transparent;--login-input-underline-color:#60a5fa;--login-input-underline-secondary-color:#3b82f6;--login-input-label-focus-color:#60a5fa;--dialog-bg-color:#161618;--dialog-box-shadow:none;--tabs-dropdown-popper-bg-color:#161618;--tabs-dropdown-popper-shadow:none;--tabs-switcher-hover-bg:#1f1f22;--tabs-switcher-border-color:#2a2a2e;--tabs-switcher-hover-border-color:#3a3a3f;--tabs-switcher-accent-color:#60a5fa;--tabs-switcher-current-color:#60a5fa;--tabs-switcher-current-bg:rgba(59,130,246,.14);--tabs-switcher-current-border-color:#3b82f6;--tabs-switcher-current-shadow:none;--admin-header-content-bg-color:#161618;--admin-header-content-hover-bg-color:#1f1f22;--admin-header-content-border-bottom:1px solid #2a2a2e;--admin-header-content-box-shadow:none;--admin-header-content-hover-box-shadow:none;--admin-container-bg-color:#0a0a0b;--admin-container-color:#fafafa;--admin-dashborad-stats-bg-color:#161618;--admin-dashborad-stats-hover-bg-color:#1f1f22;--admin-dashboard-stats-shadow:none;--admin-dashboard-stats-hover-shadow:none;--admin-dashboard-search-card-bg-color:#161618;--admin-dashboard-search-card-box-shadow:none;--admin-dashboard-btn-color:#a1a1aa;--admin-dashboard-btn-bg-color:#161618;--admin-dashboard-btn-shadow:none;--admin-dashboard-btn-hover-shadow:none;--admin-dashboard-imgcard-bg-color:#161618;--admin-dashboard-imgcard-shadow:none;--admin-dashboard-tag-suggestion-bg-color:#161618;--admin-dashboard-tag-suggestion-border-color:#2a2a2e;--admin-dashboard-tag-suggestion-box-shadow:none;--admin-dashboard-tag-suggestion-item-hover-bg-color:#1f1f22;--skeleton-bg-color:#1f1f22;--skeleton-shimmer-color:#26262a;--admin-cuscfg-table-shadow:none;--admin-cuscfg-table-bg-color:#161618;--admin-syscfg-tabs-border-color:#2a2a2e;--theme-toggle-color:#d4d4d8;--theme-toggle-bg-color:#e4e4e7;--admin-theme-toggle-color:#d4d4d8;--admin-theme-toggle-bg-color:#e4e4e7;--admin-batch-toolbar-bg:#161618;--admin-batch-toolbar-border:#2a2a2e;--admin-batch-toolbar-shadow:none;--admin-batch-action-bg:transparent;--admin-batch-action-shadow:none;--admin-batch-action-hover-bg:#1f1f22;--admin-batch-action-hover-shadow:none;--admin-batch-delete-color:#f87171;--admin-batch-tag-color:#fbbf24;--admin-batch-clear-color:#a1a1aa;--not-found-title-text-color:#fafafa;--floating-btn-bg:#3b82f6;--floating-btn-color:#fff;--floating-btn-shadow:none;--floating-btn-shadow-hover:none;--glass-bg:rgba(22,22,24,.5);--glass-bg-hover:rgba(35,35,35,.6);--glass-border:#34343a;--glass-border-hover:#4a4a52;--glass-shadow:none;--glass-shadow-hover:none;--glass-header-bg:rgba(31,31,34,.5);--glass-header-border:#34343a;--el-text-color-primary:#fafafa;--el-text-color-regular:#c8c9cc;--el-text-color-secondary:#a1a1aa;--el-text-color-placeholder:#6b6b73;--el-text-color-disabled:#4a4a52;--el-border-color:#34343a;--el-border-color-light:#2a2a2e;--el-border-color-lighter:#26262a;--el-border-color-extra-light:#1f1f22;--el-fill-color:#1f1f22;--el-fill-color-light:#1a1a1d;--el-fill-color-lighter:#161618;--el-fill-color-blank:#161618;--el-bg-color:#161618;--el-bg-color-page:#0a0a0b;--el-bg-color-overlay:#1f1f22;--el-color-primary:#4a5d9b;--el-color-primary-light-3:#5e73b5;--el-color-primary-light-5:#768cc6;--el-color-primary-light-7:#98a9d5;--el-color-primary-light-8:#b0bde0;--el-color-primary-light-9:#ccd4ec;--el-color-primary-dark-2:#3a4b80;--text-color:#fafafa;--text-color-secondary:#a1a1aa;--login-input-icon-color:#71717a;--icon-color:#a1a1aa;--placeholder-color:#6b6b73}.el-message{border-radius:10px!important;border:1px solid var(--glass-border)!important;padding:10px 20px!important;box-shadow:var(--glass-shadow)!important;background-color:var(--glass-bg)!important;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);min-width:unset!important;top:30px!important}.el-message .el-message__icon{font-size:18px!important;color:var(--el-text-color-primary)!important}.el-message .el-message__content{font-size:16px!important;font-weight:500!important;color:var(--el-text-color-primary)!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;letter-spacing:.5px}.el-message--success .el-message__icon{color:#67c23a!important}.el-message--warning .el-message__icon{color:#e6a23c!important}.el-message--error .el-message__icon{color:#f56c6c!important}.dark .el-message{background-color:var(--glass-bg)!important;border:1px solid var(--glass-border)!important;box-shadow:var(--glass-shadow)!important}.dialog-section{margin-bottom:24px;background:var(--el-fill-color-lighter);border-radius:12px;padding:16px;border:1px solid var(--el-border-color-lighter)}.section-header{display:flex;align-items:center;gap:8px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--el-border-color-lighter)}.section-title{font-size:15px;font-weight:600;color:var(--el-text-color-primary)}.section-help-icon{color:var(--el-text-color-secondary);cursor:pointer;font-size:14px;transition:color .2s}.section-help-icon:hover{color:var(--el-color-primary)}.section-content{display:flex;flex-direction:column;gap:16px}.radio-card-group{display:flex;flex-wrap:wrap;gap:10px}.radio-card-group .radio-card{margin-right:0;padding:10px 16px;border-radius:8px;background:var(--el-bg-color);border:1px solid var(--el-border-color-lighter);transition:all .2s ease}.radio-card-group .radio-card:hover{border-color:var(--el-color-primary-light-5)}.radio-card-group .radio-card.is-checked{background:#eff6ff;border-color:var(--el-color-primary)}.dark .radio-card-group .radio-card.is-checked{background:rgba(74,93,155,.18);border-color:var(--el-color-primary-light-5)}.radio-card-group .el-radio__input{display:none}.radio-card-group .el-radio__label{padding-left:0;font-weight:500;display:flex;align-items:center;gap:8px}.setting-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--el-bg-color);border-radius:8px;border:1px solid var(--el-border-color-lighter)}.setting-label{font-size:14px;font-weight:500;color:var(--el-text-color-primary)}.setting-input{width:60%;max-width:250px}.dialog-action{display:flex;justify-content:flex-end;padding-top:16px}.confirm-btn{min-width:100px;border-radius:8px}@media (max-width:768px){.el-message{padding:8px 18px!important;border-radius:30px!important}.el-message .el-message__icon{font-size:14px!important}.el-message .el-message__content{font-size:13px!important}.dialog-section{padding:12px}.radio-card-group{flex-direction:column}.radio-card-group .radio-card{width:100%;text-align:center}.setting-item{flex-direction:column;align-items:flex-start;gap:10px}.setting-item .radio-card-group.compact{width:100%}.setting-input{width:100%;max-width:none}.radio-card-group.compact{flex-direction:row;display:grid;grid-template-columns:repeat(2,1fr);gap:8px;width:100%}.radio-card-group.compact .radio-card{width:100%;box-sizing:border-box;justify-content:center;flex:1}.radio-card-group.compact .radio-card .el-radio__label{display:flex;align-items:center;justify-content:center;gap:6px}.radio-card-group.compact .channel-icon{width:18px;font-size:18px;text-align:center;flex-shrink:0}}.slider-item{flex-direction:column;align-items:flex-start;gap:12px}.slider-wrapper{display:flex;align-items:center;gap:12px;width:100%}.slider-wrapper .el-slider{flex:1;min-width:0}.slider-input{width:80px!important;flex-shrink:0}.slider-input .el-input__wrapper{padding:0 8px}.slider-input-wrapper{display:flex;align-items:center;gap:6px;flex-shrink:0}.slider-unit{font-size:13px;font-weight:500;color:var(--el-text-color-secondary)}@media (max-width:768px){.slider-wrapper{gap:8px;width:100%}.slider-input{width:80px!important}.setting-input{width:100%!important;max-width:none!important}.dialog-section{overflow:hidden}.radio-card-group.grid-2x2{grid-template-columns:repeat(2,1fr);gap:8px}.radio-card-group.grid-2x2 .radio-card{padding:10px 12px;font-size:13px;justify-content:center}}.inline-help-icon{color:var(--el-text-color-secondary);cursor:pointer;font-size:13px;margin-left:6px;transition:color .2s}.inline-help-icon:hover{color:var(--el-color-primary)}.radio-card-group.compact{gap:8px}.radio-card-group.compact .radio-card{padding:8px 12px;font-size:13px}.radio-card-group.compact .radio-card .el-radio__label{display:flex;align-items:center;gap:6px}.radio-card-group.compact .channel-icon{width:18px;font-size:18px;text-align:center;flex-shrink:0}.channel-brand-telegram{color:#229ed9!important}.channel-brand-cfr2{color:#f38020!important}.channel-brand-s3{color:#f90!important}.channel-brand-discord{color:#5865f2!important}.channel-brand-huggingface{color:#ff9d00!important}.channel-brand-webdav{color:#14b8a6!important}.radio-card-group.grid-2x2{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.radio-card-group.grid-2x2 .radio-card{width:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (min-width:769px){.radio-card-group.grid-2x2 .radio-card{justify-content:flex-start;padding-left:20px}}.radio-icon{font-size:14px;opacity:.8;width:20px;text-align:center;display:inline-block}.radio-card.is-checked .radio-icon{opacity:1}.el-dialog,.el-message-box{border-radius:12px!important;overflow:hidden;box-shadow:var(--glass-shadow)!important;border:1px solid var(--glass-border);background-color:var(--glass-bg)!important;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4)}.el-dialog__header,.el-message-box__header{border-bottom:none;padding:16px 20px!important;margin-right:0!important;position:relative}.el-dialog__header:after,.el-message-box__header:after{content:"";position:absolute;bottom:0;left:20px;right:20px;height:1px;background:#e5e6eb}.el-dialog__body,.el-message-box__content{padding:20px!important}.el-dialog__footer,.el-message-box__btns{border-top:none;padding:12px 20px!important;background-color:transparent}.dark .el-dialog,.dark .el-message-box{background-color:var(--glass-bg)!important;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid var(--glass-border)!important;box-shadow:var(--glass-shadow)!important}.dark .el-dialog__header,.dark .el-message-box__header{border-bottom:none}.dark .el-dialog__header:after,.dark .el-message-box__header:after{background:#2a2a2e}.dark .el-dialog__footer,.dark .el-message-box__btns{border-top:none;background-color:transparent}.dark .el-dialog__title,.dark .el-message-box__title{color:#e5eaf3}.dark .el-message-box__content{color:#cfd3dc}.dark .el-button--primary{--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2)}.dark .el-pager li.is-active{background-color:var(--el-color-primary);color:#fff}.dark .el-pager li{color:#a1a1aa}.dark .el-pagination .btn-next,.dark .el-pagination .btn-prev,.dark .el-pagination button{background-color:transparent;color:#a1a1aa}.dark .el-input__wrapper.is-focus,.dark .el-select__wrapper.is-focused,.dark .el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-color-primary-light-5) inset!important}.dark .el-cascader__dropdown__item.hover,.dark .el-cascader__dropdown__item.is-active,.dark .el-select-dropdown__item.is-hovering,.dark .el-select-dropdown__item.is-selected{background-color:rgba(74,93,155,.18)!important;color:var(--el-color-primary-light-7)!important}.dark .el-switch.is-checked .el-switch__core{background-color:var(--el-color-primary)!important;border-color:var(--el-color-primary)!important}.dark .el-tabs__active-bar,.dark .el-tabs__item.is-active{color:var(--el-color-primary-light-7)}.dark .el-tabs__item.is-active:after{background-color:var(--el-color-primary)}.dark .el-checkbox__input.is-checked .el-checkbox__inner,.dark .el-radio__input.is-checked .el-radio__inner{background-color:var(--el-color-primary)!important;border-color:var(--el-color-primary)!important}.dark .el-checkbox__input.is-checked+.el-checkbox__label,.dark .el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary-light-7)!important}.el-loading-mask{border-radius:12px}.el-dropdown__popper.el-popper{border-radius:12px;border:1px solid #e5e6eb;background-color:var(--popper-bg-color);box-shadow:var(--popper-shadow)}.el-dropdown__popper.el-popper .el-dropdown-menu,.el-dropdown__popper.el-popper .el-dropdown-menu__item{background:none;border:none}.el-popper.is-light>.el-popper__arrow:before{background:none!important;border:none!important}*,body,html{scrollbar-width:none!important;-ms-overflow-style:none!important}::-webkit-scrollbar,body::-webkit-scrollbar,html::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}.os-theme-dark{--os-handle-bg:hsla(0,0%,50%,.5);--os-handle-bg-hover:hsla(0,0%,50%,.7);--os-handle-bg-active:hsla(0,0%,50%,.85)}.dark .os-theme-dark,html.dark .os-theme-dark{--os-handle-bg:hsla(0,0%,71%,.6);--os-handle-bg-hover:hsla(0,0%,71%,.75);--os-handle-bg-active:hsla(0,0%,71%,.9)}.os-theme-dark .os-scrollbar,.os-theme-dark .os-scrollbar-horizontal,.os-theme-dark .os-scrollbar-vertical{--os-size:10px;--os-padding-perpendicular:2px;--os-padding-axis:2px;--os-track-bg:transparent;--os-track-bg-hover:transparent;--os-track-bg-active:transparent}.os-theme-dark .os-scrollbar .os-scrollbar-handle{border-radius:10px!important;transition:background-color .2s ease,opacity .2s ease!important}.background-image1:not([src]),.background-image2:not([src]){display:none}#themeToggle,.action-card,.breadcrumb,.breadcrumb-view-toggle,.channel-card,.channel-group,.chart-card,.custom-select-dropdown,.custom-select-trigger,.directory-tree-trigger,.el-card,.el-dialog,.el-dropdown__popper.el-popper,.el-message-box,.first-settings .el-form,.img-card,.language-switcher,.login-container,.mobile-directory-trigger,.mobile-more-button,.more-button,.overview-card,.page-jump .el-input__wrapper,.quick-toolbar,.refresh-btn,.stats-badge,.toggle-dark,.toggle-dark-button,.token-table,.upload-list-card,.upload-list-item,.upload-method-button{background-color:var(--glass-bg)!important;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4)}html.dark #themeToggle,html.dark .action-card,html.dark .breadcrumb,html.dark .breadcrumb-view-toggle,html.dark .channel-card,html.dark .channel-group,html.dark .chart-card,html.dark .custom-select-dropdown,html.dark .custom-select-trigger,html.dark .directory-tree-trigger,html.dark .el-card,html.dark .el-dialog,html.dark .el-dropdown__popper.el-popper,html.dark .el-message-box,html.dark .first-settings .el-form,html.dark .img-card,html.dark .language-switcher,html.dark .login-container,html.dark .mobile-directory-trigger,html.dark .mobile-more-button,html.dark .more-button,html.dark .overview-card,html.dark .page-jump .el-input__wrapper,html.dark .quick-toolbar,html.dark .refresh-btn,html.dark .stats-badge,html.dark .toggle-dark,html.dark .toggle-dark-button,html.dark .token-table,html.dark .upload-list-card,html.dark .upload-list-item,html.dark .upload-method-button{background-color:var(--glass-bg)!important}body:has(#bg1[src]){background-color:transparent!important}body:has(#bg1[src]) .blocked-container,body:has(#bg1[src]) .container,body:has(#bg1[src]) .login,body:has(#bg1[src]) .not-found-container,body:has(#bg1[src]) .upload-home,body:has(#bg1[src]) .whitelist-container{background:transparent!important;background-color:transparent!important} \ No newline at end of file +@font-face{font-family:Pacifico;src:url(/fonts/Pacifico-Regular.dc63ac94.woff2) format("woff2");font-display:swap}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#1d2129}nav{padding:30px}nav a{font-weight:700;color:#1d2129}nav a.router-link-exact-active{color:#2563eb}body{margin:0;padding:0;background-color:#f7f7f8}:focus-visible{outline:none}*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}:root{--bg-color:#f7f7f8;--popper-bg-color:#fff;--popper-shadow:none;--image-preview-filter:none;--text-bg-color:#f2f3f5;--background-image-filter:none;--upload-list-card-bg-color:#fff;--upload-list-card-border:1px solid #e5e6eb;--upload-list-card-box-shadow:none;--upload-list-item-border:1px solid #e5e6eb;--upload-list-dashboard-bg-color:#fff;--upload-list-dashboard-shadow:none;--upload-list-file-icon-color:#2563eb;--el-upload-dragger-bg-color:#fafafb;--el-upload-dragger-border:2px dashed #c9cdd4;--el-upload-dragger-border-color:#c9cdd4;--el-upload-dragger-hover-box-shadow:none;--el-upload-dragger-uniform-color:#2563eb;--paste-card-textarea-border-color:#c9cdd4;--paste-card-textarea-box-shadow:none;--el-icon--upload-color:#2563eb;--upload-text-color:#4e5969;--upload-header-color:#1d2129;--upload-main-title-color:#1d2129;--upload-title-text-color:#4e5969;--upload-title-text-shadow:none;--upload-title-hover-glow:transparent;--upload-title-underline-bg:#2563eb;--upload-title-underline-shadow:none;--upload-title-crayon-deep:#1d2129;--upload-title-crayon-base:#1d2129;--upload-title-crayon-light:#4e5969;--upload-title-crayon-edge:#c9cdd4;--upload-title-crayon-fleck:transparent;--upload-title-crayon-burr:transparent;--upload-title-crayon-dust:transparent;--modern-action-group-bg:#f7f8fa;--modern-action-group-border:#e5e6eb;--logo-glow-color:transparent;--modern-action-group-shadow:none;--modern-action-group-hover-bg:#f2f3f5;--modern-action-group-hover-shadow:none;--upload-action-toolbar-bg:#fff;--upload-action-toolbar-border:#e5e6eb;--upload-action-toolbar-shadow:none;--upload-action-toolbar-hover-bg:#f7f8fa;--upload-action-toolbar-hover-border:#c9cdd4;--upload-action-toolbar-hover-shadow:none;--upload-action-btn-bg:transparent;--upload-action-btn-color:#4e5969;--upload-action-btn-shadow:none;--upload-action-btn-hover-bg:#f2f3f5;--upload-action-btn-hover-shadow:none;--upload-action-btn-active-shadow:none;--upload-action-copy-color:#2563eb;--upload-action-retry-color:#16a34a;--upload-action-danger-color:#dc2626;--upload-action-danger-bg:transparent;--upload-action-danger-hover-bg:#fef2f2;--upload-action-danger-hover-shadow:none;--file-name-bg:#f7f8fa;--file-name-border:#e5e6eb;--file-name-hover-bg:#f2f3f5;--file-name-hover-border:#c9cdd4;--upload-list-item-bg:#fff;--upload-list-item-border-color:#e5e6eb;--upload-list-item-shadow:none;--upload-list-item-hover-border:#c9cdd4;--upload-list-item-hover-shadow:none;--dashboard-title-bg:transparent;--toolbar-button-bg-color:#fff;--toolbar-button-shadow:none;--toolbar-button-shadow-hover:none;--toolbar-button-color:#4e5969;--page-footer-text-color:#59636e;--page-footer-name-color:#1d2129;--login-container-bg-color:#fff;--password-input-bg-color:#fff;--password-input-border:1px solid #e5e6eb;--login-title-color:#1d2129;--login-container-box-shadow:none;--login-container-hover-box-shadow:none;--login-submit-btn-bg-color:#2563eb;--login-title-glow-color:transparent;--login-input-underline-color:#2563eb;--login-input-underline-secondary-color:#3b82f6;--login-input-label-focus-color:#2563eb;--dialog-bg-color:#fff;--dialog-box-shadow:none;--tabs-dropdown-popper-bg-color:#fff;--tabs-dropdown-popper-shadow:none;--tabs-switcher-hover-bg:#f2f3f5;--tabs-switcher-border-color:#e5e6eb;--tabs-switcher-hover-border-color:#c9cdd4;--tabs-switcher-accent-color:#2563eb;--tabs-switcher-current-color:#2563eb;--tabs-switcher-current-bg:#eff6ff;--tabs-switcher-current-border-color:#2563eb;--tabs-switcher-current-shadow:none;--admin-header-content-bg-color:#fff;--admin-header-content-hover-bg-color:#f7f8fa;--admin-header-content-border-bottom:1px solid #e5e6eb;--admin-header-content-box-shadow:none;--admin-header-content-hover-box-shadow:none;--admin-container-bg-color:#f7f7f8;--admin-container-color:#1d2129;--admin-dashborad-stats-bg-color:#fff;--admin-dashborad-stats-hover-bg-color:#f7f8fa;--admin-dashboard-search-card-bg-color:#fff;--admin-dashboard-stats-shadow:none;--admin-dashboard-stats-hover-shadow:none;--admin-dashboard-search-card-box-shadow:none;--admin-dashboard-btn-color:#4e5969;--admin-dashboard-btn-bg-color:#fff;--admin-dashboard-btn-shadow:none;--admin-dashboard-btn-hover-shadow:none;--admin-dashboard-imgcard-bg-color:#fff;--admin-dashboard-imgcard-shadow:none;--admin-dashboard-tag-suggestion-bg-color:#fff;--admin-dashboard-tag-suggestion-border-color:#e5e6eb;--admin-dashboard-tag-suggestion-box-shadow:none;--admin-dashboard-tag-suggestion-item-hover-bg-color:#f7f8fa;--skeleton-bg-color:#e5e6eb;--skeleton-shimmer-color:#f7f8fa;--admin-cuscfg-table-shadow:none;--admin-cuscfg-table-bg-color:#fff;--admin-syscfg-tabs-border-color:#e5e6eb;--admin-purple:#6366f1;--admin-batch-toolbar-bg:#fff;--admin-batch-toolbar-border:#e5e6eb;--admin-batch-toolbar-shadow:none;--admin-batch-action-bg:transparent;--admin-batch-action-shadow:none;--admin-batch-action-hover-bg:#f2f3f5;--admin-batch-action-hover-shadow:none;--admin-batch-delete-color:#dc2626;--admin-batch-tag-color:#d97706;--admin-batch-clear-color:#4e5969;--theme-toggle-color:#1d2129;--theme-toggle-bg-color:#1d2129;--admin-theme-toggle-color:#1d2129;--admin-theme-toggle-bg-color:#1d2129;--not-found-title-text-color:#1d2129;--floating-btn-bg:#2563eb;--floating-btn-color:#fff;--floating-btn-shadow:none;--floating-btn-shadow-hover:none;--floating-btn-right:32px;--floating-btn-bottom:32px;--glass-bg:hsla(0,0%,100%,.45);--glass-bg-hover:hsla(0,0%,100%,.55);--glass-border:#d9dce2;--glass-border-hover:#bfc4cc;--glass-shadow:none;--glass-shadow-hover:none;--glass-header-bg:rgba(247,248,250,.45);--glass-header-border:#d9dce2;--el-text-color-primary:#1d2129;--el-text-color-regular:#4e5969;--el-text-color-secondary:#59636e;--el-text-color-placeholder:#86909c;--el-text-color-disabled:#c0c4cc;--el-border-color:#c9cdd4;--el-border-color-light:#d9dce2;--el-border-color-lighter:#e5e6eb;--el-border-color-extra-light:#eceef1;--el-border-radius-base:8px;--el-border-radius-small:6px;--el-fill-color:#f2f3f5;--el-fill-color-light:#f7f8fa;--el-fill-color-lighter:#fafafb;--el-fill-color-blank:#fff;--text-color:#1d2129;--text-color-secondary:#59636e;--login-input-icon-color:#86909c;--icon-color:#59636e;--placeholder-color:#86909c}.dark{--bg-color:#0a0a0b;--popper-bg-color:#161618;--popper-shadow:none;--image-preview-filter:brightness(0.7);--text-bg-color:#1f1f22;--background-image-filter:brightness(0.7);--upload-list-card-bg-color:#161618;--upload-list-card-border:1px solid #2a2a2e;--upload-list-card-box-shadow:none;--upload-list-item-border:1px solid #2a2a2e;--upload-list-dashboard-bg-color:#161618;--upload-list-dashboard-shadow:none;--upload-list-file-icon-color:#60a5fa;--el-upload-dragger-bg-color:#131316;--el-upload-dragger-border:2px dashed #3a3a3f;--el-upload-dragger-border-color:#3a3a3f;--el-upload-dragger-hover-box-shadow:none;--el-upload-dragger-uniform-color:#60a5fa;--paste-card-textarea-border-color:#3a3a3f;--paste-card-textarea-box-shadow:none;--el-icon--upload-color:#60a5fa;--upload-text-color:#a1a1aa;--upload-header-color:#fafafa;--upload-main-title-color:#fafafa;--upload-title-text-color:#a1a1aa;--upload-title-text-shadow:none;--upload-title-hover-glow:transparent;--upload-title-underline-bg:#60a5fa;--upload-title-underline-shadow:none;--upload-title-crayon-deep:#fafafa;--upload-title-crayon-base:#fafafa;--upload-title-crayon-light:#a1a1aa;--upload-title-crayon-edge:#3a3a3f;--upload-title-crayon-fleck:transparent;--upload-title-crayon-burr:transparent;--upload-title-crayon-dust:transparent;--toolbar-button-bg-color:#161618;--toolbar-button-shadow:none;--toolbar-button-shadow-hover:none;--toolbar-button-color:#a1a1aa;--modern-action-group-bg:#131316;--modern-action-group-border:#2a2a2e;--logo-glow-color:transparent;--modern-action-group-shadow:none;--modern-action-group-hover-bg:#1f1f22;--modern-action-group-hover-shadow:none;--upload-action-toolbar-bg:#161618;--upload-action-toolbar-border:#2a2a2e;--upload-action-toolbar-shadow:none;--upload-action-toolbar-hover-bg:#1f1f22;--upload-action-toolbar-hover-border:#3a3a3f;--upload-action-toolbar-hover-shadow:none;--upload-action-btn-bg:transparent;--upload-action-btn-color:#a1a1aa;--upload-action-btn-shadow:none;--upload-action-btn-hover-bg:#1f1f22;--upload-action-btn-hover-shadow:none;--upload-action-btn-active-shadow:none;--upload-action-copy-color:#60a5fa;--upload-action-retry-color:#4ade80;--upload-action-danger-color:#f87171;--upload-action-danger-bg:transparent;--upload-action-danger-hover-bg:hsla(0,91%,71%,.12);--upload-action-danger-hover-shadow:none;--file-name-bg:#1f1f22;--file-name-border:#2a2a2e;--file-name-hover-bg:#26262a;--file-name-hover-border:#3a3a3f;--upload-list-item-bg:#161618;--upload-list-item-border-color:#2a2a2e;--upload-list-item-shadow:none;--upload-list-item-hover-border:#3a3a3f;--upload-list-item-hover-shadow:none;--dashboard-title-bg:transparent;--page-footer-text-color:#71717a;--page-footer-name-color:#a1a1aa;--login-container-bg-color:#161618;--password-input-bg-color:#131316;--password-input-border:1px solid #2a2a2e;--login-title-color:#fafafa;--login-container-box-shadow:none;--login-container-hover-box-shadow:none;--login-submit-btn-bg-color:#4a5d9b;--login-title-glow-color:transparent;--login-input-underline-color:#60a5fa;--login-input-underline-secondary-color:#3b82f6;--login-input-label-focus-color:#60a5fa;--dialog-bg-color:#161618;--dialog-box-shadow:none;--tabs-dropdown-popper-bg-color:#161618;--tabs-dropdown-popper-shadow:none;--tabs-switcher-hover-bg:#1f1f22;--tabs-switcher-border-color:#2a2a2e;--tabs-switcher-hover-border-color:#3a3a3f;--tabs-switcher-accent-color:#60a5fa;--tabs-switcher-current-color:#60a5fa;--tabs-switcher-current-bg:rgba(59,130,246,.14);--tabs-switcher-current-border-color:#3b82f6;--tabs-switcher-current-shadow:none;--admin-header-content-bg-color:#161618;--admin-header-content-hover-bg-color:#1f1f22;--admin-header-content-border-bottom:1px solid #2a2a2e;--admin-header-content-box-shadow:none;--admin-header-content-hover-box-shadow:none;--admin-container-bg-color:#0a0a0b;--admin-container-color:#fafafa;--admin-dashborad-stats-bg-color:#161618;--admin-dashborad-stats-hover-bg-color:#1f1f22;--admin-dashboard-stats-shadow:none;--admin-dashboard-stats-hover-shadow:none;--admin-dashboard-search-card-bg-color:#161618;--admin-dashboard-search-card-box-shadow:none;--admin-dashboard-btn-color:#a1a1aa;--admin-dashboard-btn-bg-color:#161618;--admin-dashboard-btn-shadow:none;--admin-dashboard-btn-hover-shadow:none;--admin-dashboard-imgcard-bg-color:#161618;--admin-dashboard-imgcard-shadow:none;--admin-dashboard-tag-suggestion-bg-color:#161618;--admin-dashboard-tag-suggestion-border-color:#2a2a2e;--admin-dashboard-tag-suggestion-box-shadow:none;--admin-dashboard-tag-suggestion-item-hover-bg-color:#1f1f22;--skeleton-bg-color:#1f1f22;--skeleton-shimmer-color:#26262a;--admin-cuscfg-table-shadow:none;--admin-cuscfg-table-bg-color:#161618;--admin-syscfg-tabs-border-color:#2a2a2e;--theme-toggle-color:#d4d4d8;--theme-toggle-bg-color:#e4e4e7;--admin-theme-toggle-color:#d4d4d8;--admin-theme-toggle-bg-color:#e4e4e7;--admin-batch-toolbar-bg:#161618;--admin-batch-toolbar-border:#2a2a2e;--admin-batch-toolbar-shadow:none;--admin-batch-action-bg:transparent;--admin-batch-action-shadow:none;--admin-batch-action-hover-bg:#1f1f22;--admin-batch-action-hover-shadow:none;--admin-batch-delete-color:#f87171;--admin-batch-tag-color:#fbbf24;--admin-batch-clear-color:#a1a1aa;--not-found-title-text-color:#fafafa;--floating-btn-bg:#3b82f6;--floating-btn-color:#fff;--floating-btn-shadow:none;--floating-btn-shadow-hover:none;--glass-bg:rgba(22,22,24,.5);--glass-bg-hover:rgba(35,35,35,.6);--glass-border:#34343a;--glass-border-hover:#4a4a52;--glass-shadow:none;--glass-shadow-hover:none;--glass-header-bg:rgba(31,31,34,.5);--glass-header-border:#34343a;--el-text-color-primary:#fafafa;--el-text-color-regular:#c8c9cc;--el-text-color-secondary:#a1a1aa;--el-text-color-placeholder:#6b6b73;--el-text-color-disabled:#4a4a52;--el-border-color:#34343a;--el-border-color-light:#2a2a2e;--el-border-color-lighter:#26262a;--el-border-color-extra-light:#1f1f22;--el-fill-color:#1f1f22;--el-fill-color-light:#1a1a1d;--el-fill-color-lighter:#161618;--el-fill-color-blank:#161618;--el-bg-color:#161618;--el-bg-color-page:#0a0a0b;--el-bg-color-overlay:#1f1f22;--el-color-primary:#4a5d9b;--el-color-primary-light-3:#5e73b5;--el-color-primary-light-5:#768cc6;--el-color-primary-light-7:#98a9d5;--el-color-primary-light-8:#b0bde0;--el-color-primary-light-9:#ccd4ec;--el-color-primary-dark-2:#3a4b80;--text-color:#fafafa;--text-color-secondary:#a1a1aa;--login-input-icon-color:#71717a;--icon-color:#a1a1aa;--placeholder-color:#6b6b73}.el-message{border-radius:10px!important;border:1px solid var(--glass-border)!important;padding:10px 20px!important;box-shadow:var(--glass-shadow)!important;background-color:var(--glass-bg)!important;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);min-width:unset!important;top:30px!important}.el-message .el-message__icon{font-size:18px!important;color:var(--el-text-color-primary)!important}.el-message .el-message__content{font-size:16px!important;font-weight:500!important;color:var(--el-text-color-primary)!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;letter-spacing:.5px}.el-message--success .el-message__icon{color:#67c23a!important}.el-message--warning .el-message__icon{color:#e6a23c!important}.el-message--error .el-message__icon{color:#f56c6c!important}.dark .el-message{background-color:var(--glass-bg)!important;border:1px solid var(--glass-border)!important;box-shadow:var(--glass-shadow)!important}.dialog-section{margin-bottom:24px;background:var(--el-fill-color-lighter);border-radius:12px;padding:16px;border:1px solid var(--el-border-color-lighter)}.section-header{display:flex;align-items:center;gap:8px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--el-border-color-lighter)}.section-title{font-size:15px;font-weight:600;color:var(--el-text-color-primary)}.section-help-icon{color:var(--el-text-color-secondary);cursor:pointer;font-size:14px;transition:color .2s}.section-help-icon:hover{color:var(--el-color-primary)}.section-content{display:flex;flex-direction:column;gap:16px}.radio-card-group{display:flex;flex-wrap:wrap;gap:10px}.radio-card-group .radio-card{margin-right:0;padding:10px 16px;border-radius:8px;background:var(--el-bg-color);border:1px solid var(--el-border-color-lighter);transition:all .2s ease}.radio-card-group .radio-card:hover{border-color:var(--el-color-primary-light-5)}.radio-card-group .radio-card.is-checked{background:#eff6ff;border-color:var(--el-color-primary)}html.dark .radio-card-group .radio-card.is-checked{background:rgba(74,93,155,.38);border-color:var(--el-color-primary-light-5);color:var(--el-text-color-primary)}html.dark .radio-card-group .radio-card.is-checked .el-radio__label,html.dark .radio-card-group .radio-card.is-checked .radio-icon{color:var(--el-text-color-primary)!important}.radio-card-group .el-radio__input{display:none}.radio-card-group .el-radio__label{padding-left:0;font-weight:500;display:flex;align-items:center;gap:8px}.setting-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--el-bg-color);border-radius:8px;border:1px solid var(--el-border-color-lighter)}.setting-label{font-size:14px;font-weight:500;color:var(--el-text-color-primary)}.setting-input{width:60%;max-width:250px}.dialog-action{display:flex;justify-content:flex-end;padding-top:16px}.confirm-btn{min-width:100px;border-radius:8px}@media (max-width:768px){.el-message{padding:8px 18px!important;border-radius:30px!important}.el-message .el-message__icon{font-size:14px!important}.el-message .el-message__content{font-size:13px!important}.dialog-section{padding:12px}.radio-card-group{flex-direction:column}.radio-card-group .radio-card{width:100%;text-align:center}.setting-item{flex-direction:column;align-items:flex-start;gap:10px}.setting-item .radio-card-group.compact{width:100%}.setting-input{width:100%;max-width:none}.radio-card-group.compact{flex-direction:row;display:grid;grid-template-columns:repeat(2,1fr);gap:8px;width:100%}.radio-card-group.compact .radio-card{width:100%;box-sizing:border-box;justify-content:center;flex:1}.radio-card-group.compact .radio-card .el-radio__label{display:flex;align-items:center;justify-content:center;gap:6px}.radio-card-group.compact .channel-icon{width:18px;font-size:18px;text-align:center;flex-shrink:0}}.slider-item{flex-direction:column;align-items:flex-start;gap:12px}.slider-wrapper{display:flex;align-items:center;gap:12px;width:100%}.slider-wrapper .el-slider{flex:1;min-width:0}.slider-input{width:80px!important;flex-shrink:0}.slider-input .el-input__wrapper{padding:0 8px}.slider-input-wrapper{display:flex;align-items:center;gap:6px;flex-shrink:0}.slider-unit{font-size:13px;font-weight:500;color:var(--el-text-color-secondary)}@media (max-width:768px){.slider-wrapper{gap:8px;width:100%}.slider-input{width:80px!important}.setting-input{width:100%!important;max-width:none!important}.dialog-section{overflow:hidden}.radio-card-group.grid-2x2{grid-template-columns:repeat(2,1fr);gap:8px}.radio-card-group.grid-2x2 .radio-card{padding:10px 12px;font-size:13px;justify-content:center}}.inline-help-icon{color:var(--el-text-color-secondary);cursor:pointer;font-size:13px;margin-left:6px;transition:color .2s}.inline-help-icon:hover{color:var(--el-color-primary)}.radio-card-group.compact{gap:8px}.radio-card-group.compact .radio-card{padding:8px 12px;font-size:13px}.radio-card-group.compact .radio-card .el-radio__label{display:flex;align-items:center;gap:6px}.radio-card-group.compact .channel-icon{width:18px;font-size:18px;text-align:center;flex-shrink:0}.channel-brand-telegram{color:#229ed9!important}.channel-brand-cfr2{color:#f38020!important}.channel-brand-s3{color:#f90!important}.channel-brand-discord{color:#5865f2!important}.channel-brand-huggingface{color:#ff9d00!important}.channel-brand-webdav{color:#14b8a6!important}.radio-card-group.grid-2x2{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.radio-card-group.grid-2x2 .radio-card{width:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (min-width:769px){.radio-card-group.grid-2x2 .radio-card{justify-content:flex-start;padding-left:20px}}.radio-icon{font-size:14px;opacity:.8;width:20px;text-align:center;display:inline-block}.radio-card.is-checked .radio-icon{opacity:1}.el-dialog,.el-message-box{border-radius:12px!important;overflow:hidden;box-shadow:var(--glass-shadow)!important;border:1px solid var(--glass-border);background-color:var(--glass-bg)!important;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4)}.el-dialog__header,.el-message-box__header{border-bottom:none;padding:16px 20px!important;margin-right:0!important;position:relative}.el-dialog__header:after,.el-message-box__header:after{content:"";position:absolute;bottom:0;left:20px;right:20px;height:1px;background:#e5e6eb}.el-dialog__body,.el-message-box__content{padding:20px!important}.el-dialog__footer,.el-message-box__btns{border-top:none;padding:12px 20px!important;background-color:transparent}.dark .el-dialog,.dark .el-message-box{background-color:var(--glass-bg)!important;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid var(--glass-border)!important;box-shadow:var(--glass-shadow)!important}.dark .el-dialog__header,.dark .el-message-box__header{border-bottom:none}.dark .el-dialog__header:after,.dark .el-message-box__header:after{background:#2a2a2e}.dark .el-dialog__footer,.dark .el-message-box__btns{border-top:none;background-color:transparent}.dark .el-dialog__title,.dark .el-message-box__title{color:#e5eaf3}.dark .el-message-box__content{color:#cfd3dc}.dark .el-button--primary{--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2)}html.dark .el-button--primary.is-plain{--el-button-text-color:var(--el-text-color-primary);--el-button-bg-color:hsla(0,0%,100%,.04);--el-button-border-color:rgba(118,140,198,.65);--el-button-hover-text-color:#fff;--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);color:var(--el-text-color-primary)!important;background-color:hsla(0,0%,100%,.04)!important;border-color:rgba(118,140,198,.65)!important}html.dark .el-button--primary.is-plain:focus,html.dark .el-button--primary.is-plain:hover{color:#fff!important;background-color:var(--el-color-primary)!important;border-color:var(--el-color-primary-light-3)!important}.dark .el-pager li.is-active{background-color:var(--el-color-primary);color:#fff}.dark .el-pager li{color:#a1a1aa}.dark .el-pagination .btn-next,.dark .el-pagination .btn-prev,.dark .el-pagination button{background-color:transparent;color:#a1a1aa}.dark .el-input__wrapper.is-focus,.dark .el-select__wrapper.is-focused,.dark .el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-color-primary-light-5) inset!important}html.dark .el-cascader__dropdown__item.hover,html.dark .el-select-dropdown__item.is-hovering{background-color:hsla(0,0%,100%,.08)!important;color:var(--el-text-color-primary)!important}html.dark .el-cascader__dropdown__item.is-active,html.dark .el-select-dropdown__item.is-selected{background-color:rgba(74,93,155,.38)!important;color:#fff!important}.dark .el-switch.is-checked .el-switch__core{background-color:var(--el-color-primary)!important;border-color:var(--el-color-primary)!important}.dark .el-tabs__active-bar,.dark .el-tabs__item.is-active{color:var(--el-color-primary-light-7)}.dark .el-tabs__item.is-active:after{background-color:var(--el-color-primary)}.dark .el-checkbox__input.is-checked .el-checkbox__inner,.dark .el-radio__input.is-checked .el-radio__inner{background-color:var(--el-color-primary)!important;border-color:var(--el-color-primary)!important}.dark .el-checkbox__input.is-checked+.el-checkbox__label,.dark .el-radio__input.is-checked+.el-radio__label{color:var(--el-text-color-primary)!important}.el-loading-mask{border-radius:12px}.el-dropdown__popper.el-popper{border-radius:12px;border:1px solid #e5e6eb;background-color:var(--popper-bg-color);box-shadow:var(--popper-shadow)}.el-dropdown__popper.el-popper .el-dropdown-menu,.el-dropdown__popper.el-popper .el-dropdown-menu__item{background:none;border:none}.el-popper.is-light>.el-popper__arrow:before{background:none!important;border:none!important}*,body,html{scrollbar-width:none!important;-ms-overflow-style:none!important}::-webkit-scrollbar,body::-webkit-scrollbar,html::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}.os-theme-dark{--os-handle-bg:hsla(0,0%,50%,.5);--os-handle-bg-hover:hsla(0,0%,50%,.7);--os-handle-bg-active:hsla(0,0%,50%,.85)}.dark .os-theme-dark,html.dark .os-theme-dark{--os-handle-bg:hsla(0,0%,71%,.6);--os-handle-bg-hover:hsla(0,0%,71%,.75);--os-handle-bg-active:hsla(0,0%,71%,.9)}.os-theme-dark .os-scrollbar,.os-theme-dark .os-scrollbar-horizontal,.os-theme-dark .os-scrollbar-vertical{--os-size:10px;--os-padding-perpendicular:2px;--os-padding-axis:2px;--os-track-bg:transparent;--os-track-bg-hover:transparent;--os-track-bg-active:transparent}.os-theme-dark .os-scrollbar .os-scrollbar-handle{border-radius:10px!important;transition:background-color .2s ease,opacity .2s ease!important}.background-image1:not([src]),.background-image2:not([src]){display:none}#themeToggle,.action-card,.breadcrumb,.breadcrumb-view-toggle,.channel-card,.channel-group,.chart-card,.custom-select-dropdown,.custom-select-trigger,.directory-tree-trigger,.el-card,.el-dialog,.el-dropdown__popper.el-popper,.el-message-box,.first-settings .el-form,.img-card,.language-switcher,.login-container,.mobile-directory-trigger,.mobile-more-button,.more-button,.overview-card,.page-jump .el-input__wrapper,.quick-toolbar,.refresh-btn,.stats-badge,.toggle-dark,.toggle-dark-button,.token-table,.upload-list-card,.upload-list-item,.upload-method-button{background-color:var(--glass-bg)!important;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4)}html.dark #themeToggle,html.dark .action-card,html.dark .breadcrumb,html.dark .breadcrumb-view-toggle,html.dark .channel-card,html.dark .channel-group,html.dark .chart-card,html.dark .custom-select-dropdown,html.dark .custom-select-trigger,html.dark .directory-tree-trigger,html.dark .el-card,html.dark .el-dialog,html.dark .el-dropdown__popper.el-popper,html.dark .el-message-box,html.dark .first-settings .el-form,html.dark .img-card,html.dark .language-switcher,html.dark .login-container,html.dark .mobile-directory-trigger,html.dark .mobile-more-button,html.dark .more-button,html.dark .overview-card,html.dark .page-jump .el-input__wrapper,html.dark .quick-toolbar,html.dark .refresh-btn,html.dark .stats-badge,html.dark .toggle-dark,html.dark .toggle-dark-button,html.dark .token-table,html.dark .upload-list-card,html.dark .upload-list-item,html.dark .upload-method-button{background-color:var(--glass-bg)!important}body:has(#bg1[src]){background-color:transparent!important}body:has(#bg1[src]) .blocked-container,body:has(#bg1[src]) .container,body:has(#bg1[src]) .login,body:has(#bg1[src]) .not-found-container,body:has(#bg1[src]) .upload-home,body:has(#bg1[src]) .whitelist-container{background:transparent!important;background-color:transparent!important} \ No newline at end of file diff --git a/frontend-dist/css/app.c8e85cb3.css.gz b/frontend-dist/css/app.c8e85cb3.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..9fb8477090ccb64af29abada76c461bdd128769b GIT binary patch literal 5078 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 literal 0 HcmV?d00001 diff --git a/frontend-dist/index.html b/frontend-dist/index.html index 2b30ec6a..ca9d643d 100644 --- a/frontend-dist/index.html +++ b/frontend-dist/index.html @@ -1 +1 @@ -Sanyue ImgHub
\ No newline at end of file +Sanyue ImgHub
\ No newline at end of file diff --git a/frontend-dist/index.html.gz b/frontend-dist/index.html.gz index 0159c3979f3866d5b024c989e54e9fdd615853fd..5112725711f6b16d0bc735424c7efd2773924336 100644 GIT binary patch delta 531 zcmV+u0_^>y1fm3x8h@p11b*`YF3*&{2^oeB|Iio{KJC62cp^N`_>WJf8!WnXTx zchnDxZS7EiCeP?uire=RO^XjCuX>bXw74HA@RPW`HQY&qqkq+y&0uA{Wvg5kwQ?xW zSH1da`_w<;6fw*|)efbn)q`x-SeBYb45BKX^*adYq_CR2fG%JoMG;xC)kTlSs=`rA z`QY1=a5W4LGp3}w>_4f!io1W|fF?&lir3Ay-mcfDLoyh3umjtJ%;TKyl%Ep9ZQp)K zHDquDJsAuh8h`5$I*M$43xiYKQ0Pw;cR1}SnD|0&b<|s(sI0*Ds(k{rqhug51@+uf zmAIquLin>4RmqkeRwsp*#d29LErP)Y!=dE{gMb*c6vcfkbeH@t8_^pIF~7XnZZ_L> zo!>`MmBm8+n}iyM9Ir1noBC2cBhG#u{n7Dxw&q%!?SI?#d9Gs=i>;9-hp|Is@sfQ= zq_6PmjjlI;;uOnL)nuls^z_&P2l8$870&`fq!1>k6GNOQ_TBbvmufJC(VsEwDePbf zG+=NO>@9bc7(S{|-7SMaf7l0;!zYI-;t_*oV4D50K4D%K$E;=XyAWeXux5VxhiZ)- VtFlfQzMP&3p6l zJTBg7Qatqt9XneU`xC76Z7D=mbSQOIIAjT`lOZCPV&EpZ5r^B3xli!NV8&8>OTOGC z@5uF%O>I$tBG2f#6!-5-)Ga=dymVNK(crG9z%Sx2P*{IB+HZrr+ zQri3WC|vfv#e`{4UGkq)C*$^CIH1T!ze&ixPdB$4Y|d{kPl&T$2Y*yN&DPv1oqu1i&r=nnSZs|vS&SVbi`VRZ zqKk{`{OU5l`4cBwmZ~N_RfVVL4mgl+tFL$#5F&*zK|L_Ud1Bv&pi}r{QARvqFbqtyKgJK37TFmD XZN{p|mJVvO`H%PoG}R4iGXwwt!CC-U diff --git a/frontend-dist/js/21.72019411.js b/frontend-dist/js/21.72019411.js deleted file mode 100644 index 5e90dc79..00000000 --- a/frontend-dist/js/21.72019411.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self["webpackChunksanyue_imghub"]=self["webpackChunksanyue_imghub"]||[]).push([[21],{7835:function(e,t,n){e.exports=n.p+"img/background-light.f17603bc.jpg"},10732:function(e,t,n){e.exports=n.p+"img/background.ea1b7ee7.jpg"},48903:function(e,t,n){var a=n(60782);t.A={data(){return{bingWallPaperIndex:0,customWallPaperIndex:0,backgroundInterval:null,backgroundInitParams:null}},computed:{...(0,a.L8)(["userConfig","bingWallPapers","useDarkMode","wallpaperEnabled"]),bkInterval(){return this.userConfig?.bkInterval||3e3},bkOpacity(){return this.userConfig?.bkOpacity||1},backgroundImagesTemplate(){return'\n Background Image\n Background Image\n '},backgroundImagesStyles(){return"\n .background-image1 {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n z-index: -1;\n pointer-events: none;\n opacity: 0;\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\n transform: scale(1);\n transform-origin: center center;\n will-change: opacity, transform;\n filter: var(--background-image-filter, brightness(1));\n }\n .background-image2 {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n z-index: -1;\n pointer-events: none;\n opacity: 0;\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\n transform: scale(1);\n transform-origin: center center;\n will-change: opacity, transform;\n filter: var(--background-image-filter, brightness(1));\n }\n "}},watch:{useDarkMode(e,t){e!==t&&this.backgroundInitParams&&this.$nextTick(()=>{this.smoothThemeTransition(this.backgroundInitParams.configKey,this.backgroundInitParams.containerSelector,this.backgroundInitParams.useDefaultBackground,this.backgroundInitParams.autoCreateElements)})},wallpaperEnabled(e,t){e!==t&&this.backgroundInitParams&&this.$nextTick(()=>{e?this.reinitializeBackground(this.backgroundInitParams.configKey,this.backgroundInitParams.containerSelector,this.backgroundInitParams.useDefaultBackground,this.backgroundInitParams.autoCreateElements):this.clearBackgroundImages(!0)})}},mounted(){this.injectBackgroundStyles()},beforeUnmount(){this.backgroundInterval&&clearInterval(this.backgroundInterval),this.clearBackgroundImages(!0),this.removeBackgroundStyles()},methods:{injectBackgroundStyles(){const e="background-manager-styles";if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent=this.backgroundImagesStyles,document.head.appendChild(t)}},removeBackgroundStyles(){const e="background-manager-styles",t=document.getElementById(e);t&&t.remove()},createBackgroundElements(e){if(!e)return void console.warn("未提供有效的容器元素");if(document.getElementById("bg1")||document.getElementById("bg2"))return;const t=document.createElement("img");t.id="bg1",t.className="background-image1",t.alt="Background Image";const n=document.createElement("img");n.id="bg2",n.className="background-image2",n.alt="Background Image",e.insertBefore(t,e.firstChild),e.insertBefore(n,e.firstChild)},initializeBackground(e,t=".login",n=!1,a=!1){if(!this.wallpaperEnabled)return void this.clearBackgroundImages(!0);this.backgroundInitParams={configKey:e,containerSelector:t,useDefaultBackground:n,autoCreateElements:a};const s=document.querySelector(t);this.prepareBackgroundContainer(s),a&&(!s||document.getElementById("bg1")&&document.getElementById("bg2")||this.createBackgroundElements(s));const r=document.getElementById("bg1"),i=document.getElementById("bg2");if(!r||!i)return void console.warn("背景图元素 #bg1 或 #bg2 未找到,请确保页面中包含这些元素或启用 autoCreateElements");const o=this.userConfig?.[e];"bing"===o?this.setupBingWallpaper(r,i,t):Array.isArray(o)&&o.length>1?this.setupCustomWallpaperCarousel(r,i,o,t):Array.isArray(o)&&1===o.length?this.setupSingleCustomWallpaper(r,o[0],t):n&&this.setupDefaultWallpaper(r,t)},setupBingWallpaper(e,t,n){this.$store.dispatch("fetchBingWallPapers").then(()=>{0!==this.bingWallPapers.length&&(this.loadBackgroundImage(e,this.bingWallPapers[this.bingWallPaperIndex]?.url,n,!0),this.backgroundInterval=setInterval(()=>{this.switchBingWallpaper(e,t)},this.bkInterval))})},setupCustomWallpaperCarousel(e,t,n,a){this.loadBackgroundImage(e,n[this.customWallPaperIndex],a,!0),this.backgroundInterval=setInterval(()=>{this.switchCustomWallpaper(e,t,n)},this.bkInterval)},setupSingleCustomWallpaper(e,t,n){this.loadBackgroundImage(e,t,n)},setupDefaultWallpaper(e,t){const a=this.useDarkMode,s=n(a?10732:7835);this.loadBackgroundImage(e,s,t)},loadBackgroundImage(e,t,n,a=!1){e.style.zIndex=-1,e.style.opacity=0,this.prepareBackgroundMotion(e,a);const s=document.querySelector(n);this.prepareBackgroundContainer(s);const r=()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{e.style.opacity=this.bkOpacity,a&&(e.style.transform="scale(1.045)")})})},i=new Image;i.onload=()=>{e.src=t,r()},i.onerror=()=>{e.src=t,r()},i.src=t},prepareBackgroundMotion(e,t=!1){if(!e)return;const n=Math.max(this.bkInterval+1200,4200);e.style.transition=t?`opacity 1.2s ease-in-out, filter 0.3s ease, transform ${n}ms ease-out`:"opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease",e.style.transformOrigin="center center",e.style.transform="scale(1)"},prepareBackgroundContainer(e){if(!e)return;const t=window.getComputedStyle(e);"static"===t.position&&(e.style.position="relative"),"auto"===t.zIndex&&(e.style.zIndex="0"),e.style.isolation="isolate"},switchBingWallpaper(e,t){if(0===this.bingWallPapers.length)return;const n=0!=e.style.opacity,a=n?e:t,s=n?t:e;this.bingWallPaperIndex=(this.bingWallPaperIndex+1)%this.bingWallPapers.length;const r=this.bingWallPapers[this.bingWallPaperIndex]?.url;a.style.zIndex=-2,s.style.zIndex=-1,this.prepareBackgroundMotion(s,!0);const i=new Image;i.onload=()=>{s.src=r,setTimeout(()=>{s.style.opacity=this.bkOpacity,s.style.transform="scale(1.045)",setTimeout(()=>{a.style.opacity=0,this.prepareBackgroundMotion(a,!0)},1200)},50)},i.src=r},switchCustomWallpaper(e,t,n){const a=0!=e.style.opacity,s=a?e:t,r=a?t:e;this.customWallPaperIndex=(this.customWallPaperIndex+1)%n.length;const i=n[this.customWallPaperIndex];s.style.zIndex=-2,r.style.zIndex=-1,this.prepareBackgroundMotion(r,!0);const o=new Image;o.onload=()=>{r.src=i,setTimeout(()=>{r.style.opacity=this.bkOpacity,r.style.transform="scale(1.045)",setTimeout(()=>{s.style.opacity=0,this.prepareBackgroundMotion(s,!0)},1200)},50)},o.src=i},clearBackgroundInterval(){this.backgroundInterval&&(clearInterval(this.backgroundInterval),this.backgroundInterval=null)},clearBackgroundImages(e=!1){const t=document.getElementById("bg1"),n=document.getElementById("bg2");e?(t&&(t.style.transition="none",t.style.opacity=0,t.src="",setTimeout(()=>{t&&(t.style.transition="opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease")},50)),n&&(n.style.transition="none",n.style.opacity=0,n.src="",setTimeout(()=>{n&&(n.style.transition="opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease")},50))):(t&&(t.style.opacity=0,setTimeout(()=>{t&&(t.src="")},1200)),n&&(n.style.opacity=0,setTimeout(()=>{n&&(n.src="")},1200)))},smoothThemeTransition(e,t=".login",a=!1,s=!1){const r=this.userConfig?.[e];if(!a||void 0!==r)return void this.reinitializeBackground(e,t,a,s);const i=document.getElementById("bg1"),o=document.getElementById("bg2");if(!i||!o)return void this.reinitializeBackground(e,t,a,s);const l=0!=i.style.opacity?i:o,c=0!=i.style.opacity?o:i,g=this.useDarkMode,u=n(g?10732:7835),d=new Image;d.onload=()=>{c.src=u,c.onload=()=>{l.style.opacity=0,setTimeout(()=>{c.style.opacity=this.bkOpacity},50)}},d.onerror=()=>{console.warn("主题背景图预加载失败,回退到直接切换"),this.reinitializeBackground(e,t,a,s)},d.src=u},reinitializeBackground(e,t=".login",n=!1,a=!1){this.clearBackgroundInterval(),this.clearBackgroundImages(!0),this.bingWallPaperIndex=0,this.customWallPaperIndex=0,setTimeout(()=>{this.initializeBackground(e,t,n,a)},100)}}}},54047:function(e,t,n){n.d(t,{A:function(){return g}});var a=n(56768);const s=["title"];function r(e,t,n,r,i,o){const l=(0,a.g2)("font-awesome-icon");return(0,a.uX)(),(0,a.CE)("span",{class:"language-switcher",onClick:t[0]||(t[0]=(...e)=>o.toggleLocale&&o.toggleLocale(...e)),role:"button",title:e.$t("language.switchTo")},[(0,a.bF)(l,{icon:"globe",class:"lang-icon"})],8,s)}var i=n(46638),o={name:"LanguageSwitcher",computed:{isZh(){return"zh-CN"===this.$i18n.locale}},methods:{toggleLocale(){const e=this.isZh?"en":"zh-CN";(0,i.xS)(e)}}},l=n(71241);const c=(0,l.A)(o,[["render",r],["__scopeId","data-v-08567d0a"]]);var g=c}}]); -//# sourceMappingURL=21.72019411.js.map \ No newline at end of file diff --git a/frontend-dist/js/21.72019411.js.gz b/frontend-dist/js/21.72019411.js.gz deleted file mode 100644 index 170df5ec4672365dff4c4d4f5450f6c274fd8663..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2747 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 BS>XTx diff --git a/frontend-dist/js/21.72019411.js.map b/frontend-dist/js/21.72019411.js.map deleted file mode 100644 index 083de7af..00000000 --- a/frontend-dist/js/21.72019411.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/21.72019411.js","mappings":"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","sources":["webpack://sanyue_imghub/./src/mixins/backgroundManager.js","webpack://sanyue_imghub/./src/components/LanguageSwitcher.vue?0caa","webpack://sanyue_imghub/./src/components/LanguageSwitcher.vue","webpack://sanyue_imghub/./src/components/LanguageSwitcher.vue?90ec"],"sourcesContent":["/**\r\n * 背景图管理 Mixin\r\n * 用于统一管理页面背景图的加载和轮播逻辑\r\n */\r\n\r\nimport { mapGetters } from 'vuex'\r\n\r\nexport default {\r\n data() {\r\n return {\r\n bingWallPaperIndex: 0,\r\n customWallPaperIndex: 0,\r\n backgroundInterval: null, // 存储轮播定时器\r\n // 存储初始化参数,用于主题切换时重新初始化\r\n backgroundInitParams: null,\r\n }\r\n },\r\n computed: {\r\n ...mapGetters(['userConfig', 'bingWallPapers', 'useDarkMode', 'wallpaperEnabled']),\r\n bkInterval() {\r\n return this.userConfig?.bkInterval || 3000\r\n },\r\n bkOpacity() {\r\n return this.userConfig?.bkOpacity || 1\r\n },\r\n // 提供背景图片元素的模板\r\n backgroundImagesTemplate() {\r\n return `\r\n \"Background\r\n \"Background\r\n `\r\n },\r\n // 提供背景图片的CSS样式\r\n backgroundImagesStyles() {\r\n return `\r\n .background-image1 {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n z-index: -1;\r\n pointer-events: none;\r\n opacity: 0;\r\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\r\n transform: scale(1);\r\n transform-origin: center center;\r\n will-change: opacity, transform;\r\n filter: var(--background-image-filter, brightness(1));\r\n }\r\n .background-image2 {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n z-index: -1;\r\n pointer-events: none;\r\n opacity: 0;\r\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\r\n transform: scale(1);\r\n transform-origin: center center;\r\n will-change: opacity, transform;\r\n filter: var(--background-image-filter, brightness(1));\r\n }\r\n `\r\n }\r\n },\r\n\r\n watch: {\r\n // 监听深色模式切换\r\n useDarkMode(newVal, oldVal) {\r\n // 只有在值真正改变且已经初始化过背景时才平滑切换主题\r\n if (newVal !== oldVal && this.backgroundInitParams) {\r\n this.$nextTick(() => {\r\n this.smoothThemeTransition(\r\n this.backgroundInitParams.configKey,\r\n this.backgroundInitParams.containerSelector,\r\n this.backgroundInitParams.useDefaultBackground,\r\n this.backgroundInitParams.autoCreateElements\r\n )\r\n })\r\n }\r\n },\r\n // 监听全局壁纸开关:开/关时重新初始化背景\r\n wallpaperEnabled(newVal, oldVal) {\r\n if (newVal === oldVal || !this.backgroundInitParams) return\r\n this.$nextTick(() => {\r\n if (newVal) {\r\n // 开启:重新初始化背景\r\n this.reinitializeBackground(\r\n this.backgroundInitParams.configKey,\r\n this.backgroundInitParams.containerSelector,\r\n this.backgroundInitParams.useDefaultBackground,\r\n this.backgroundInitParams.autoCreateElements\r\n )\r\n } else {\r\n // 关闭:清理背景\r\n this.clearBackgroundImages(true)\r\n }\r\n })\r\n }\r\n },\r\n\r\n mounted() {\r\n // 动态注入背景图片的CSS样式\r\n this.injectBackgroundStyles()\r\n },\r\n\r\n beforeUnmount() {\r\n // 组件销毁前清除定时器\r\n if (this.backgroundInterval) {\r\n clearInterval(this.backgroundInterval)\r\n }\r\n // 立即清除背景图片,不使用过渡效果\r\n this.clearBackgroundImages(true)\r\n // 移除动态注入的样式\r\n this.removeBackgroundStyles()\r\n },\r\n\r\n methods: {\r\n /**\r\n * 动态注入背景图片样式\r\n */\r\n injectBackgroundStyles() {\r\n const styleId = 'background-manager-styles'\r\n if (!document.getElementById(styleId)) {\r\n const style = document.createElement('style')\r\n style.id = styleId\r\n style.textContent = this.backgroundImagesStyles\r\n document.head.appendChild(style)\r\n }\r\n },\r\n\r\n /**\r\n * 移除动态注入的样式\r\n */\r\n removeBackgroundStyles() {\r\n const styleId = 'background-manager-styles'\r\n const existingStyle = document.getElementById(styleId)\r\n if (existingStyle) {\r\n existingStyle.remove()\r\n }\r\n },\r\n\r\n /**\r\n * 动态创建背景图片元素\r\n * @param {HTMLElement} container - 要插入背景图片的容器元素\r\n */\r\n createBackgroundElements(container) {\r\n if (!container) {\r\n console.warn('未提供有效的容器元素')\r\n return\r\n }\r\n\r\n // 检查是否已经存在背景图片元素\r\n if (document.getElementById('bg1') || document.getElementById('bg2')) {\r\n return\r\n }\r\n\r\n // 创建 bg1 元素\r\n const bg1 = document.createElement('img')\r\n bg1.id = 'bg1'\r\n bg1.className = 'background-image1'\r\n bg1.alt = 'Background Image'\r\n \r\n // 创建 bg2 元素\r\n const bg2 = document.createElement('img')\r\n bg2.id = 'bg2'\r\n bg2.className = 'background-image2'\r\n bg2.alt = 'Background Image'\r\n\r\n // 将元素插入到容器的开头\r\n container.insertBefore(bg1, container.firstChild)\r\n container.insertBefore(bg2, container.firstChild)\r\n },\r\n /**\r\n * 初始化背景图\r\n * @param {string} configKey - 用户配置中的背景图配置键名\r\n * @param {string} containerSelector - 容器选择器,用于设置透明背景\r\n * @param {boolean} useDefaultBackground - 是否使用默认背景图\r\n * @param {boolean} autoCreateElements - 是否自动创建背景元素\r\n */\r\n initializeBackground(configKey, containerSelector = '.login', useDefaultBackground = false, autoCreateElements = false) {\r\n // 如果全局壁纸开关关闭,直接清理背景并返回\r\n if (!this.wallpaperEnabled) {\r\n this.clearBackgroundImages(true);\r\n return;\r\n }\r\n // 保存初始化参数,用于主题切换时重新初始化\r\n this.backgroundInitParams = {\r\n configKey,\r\n containerSelector,\r\n useDefaultBackground,\r\n autoCreateElements\r\n }\r\n\r\n // 如果需要自动创建元素且元素不存在,则创建\r\n const container = document.querySelector(containerSelector)\r\n this.prepareBackgroundContainer(container)\r\n\r\n if (autoCreateElements) {\r\n if (container && (!document.getElementById('bg1') || !document.getElementById('bg2'))) {\r\n this.createBackgroundElements(container)\r\n }\r\n }\r\n\r\n const bg1 = document.getElementById('bg1')\r\n const bg2 = document.getElementById('bg2')\r\n \r\n if (!bg1 || !bg2) {\r\n console.warn('背景图元素 #bg1 或 #bg2 未找到,请确保页面中包含这些元素或启用 autoCreateElements')\r\n return\r\n }\r\n\r\n const backgroundConfig = this.userConfig?.[configKey]\r\n\r\n if (backgroundConfig === 'bing') {\r\n this.setupBingWallpaper(bg1, bg2, containerSelector)\r\n } else if (Array.isArray(backgroundConfig) && backgroundConfig.length > 1) {\r\n this.setupCustomWallpaperCarousel(bg1, bg2, backgroundConfig, containerSelector)\r\n } else if (Array.isArray(backgroundConfig) && backgroundConfig.length === 1) {\r\n this.setupSingleCustomWallpaper(bg1, backgroundConfig[0], containerSelector)\r\n } else if (useDefaultBackground) {\r\n this.setupDefaultWallpaper(bg1, containerSelector)\r\n }\r\n },\r\n\r\n /**\r\n * 设置 Bing 壁纸轮播\r\n */\r\n setupBingWallpaper(bg1, bg2, containerSelector) {\r\n this.$store.dispatch('fetchBingWallPapers').then(() => {\r\n if (this.bingWallPapers.length === 0) return\r\n\r\n this.loadBackgroundImage(bg1, this.bingWallPapers[this.bingWallPaperIndex]?.url, containerSelector, true)\r\n \r\n this.backgroundInterval = setInterval(() => {\r\n this.switchBingWallpaper(bg1, bg2)\r\n }, this.bkInterval)\r\n })\r\n },\r\n\r\n /**\r\n * 设置自定义壁纸轮播\r\n */\r\n setupCustomWallpaperCarousel(bg1, bg2, wallpapers, containerSelector) {\r\n this.loadBackgroundImage(bg1, wallpapers[this.customWallPaperIndex], containerSelector, true)\r\n \r\n this.backgroundInterval = setInterval(() => {\r\n this.switchCustomWallpaper(bg1, bg2, wallpapers)\r\n }, this.bkInterval)\r\n },\r\n\r\n /**\r\n * 设置单张自定义壁纸\r\n */\r\n setupSingleCustomWallpaper(bg1, wallpaperUrl, containerSelector) {\r\n this.loadBackgroundImage(bg1, wallpaperUrl, containerSelector)\r\n },\r\n\r\n /**\r\n * 设置默认壁纸\r\n */\r\n setupDefaultWallpaper(bg1, containerSelector) {\r\n // 根据当前深色模式状态选择背景图\r\n const isDark = this.useDarkMode\r\n const defaultImage = isDark \r\n ? require('@/assets/background.jpg') \r\n : require('@/assets/background-light.jpg')\r\n \r\n this.loadBackgroundImage(bg1, defaultImage, containerSelector)\r\n },\r\n\r\n /**\r\n * 加载背景图片\r\n */\r\n loadBackgroundImage(imgElement, imageSrc, containerSelector, enableZoom = false) {\r\n // 确保初始化时层级正确\r\n imgElement.style.zIndex = -1\r\n imgElement.style.opacity = 0\r\n this.prepareBackgroundMotion(imgElement, enableZoom)\r\n const container = document.querySelector(containerSelector)\r\n this.prepareBackgroundContainer(container)\r\n\r\n const showImage = () => {\r\n requestAnimationFrame(() => {\r\n requestAnimationFrame(() => {\r\n imgElement.style.opacity = this.bkOpacity\r\n if (enableZoom) {\r\n imgElement.style.transform = 'scale(1.045)'\r\n }\r\n })\r\n })\r\n }\r\n\r\n const preload = new Image()\r\n preload.onload = () => {\r\n imgElement.src = imageSrc\r\n showImage()\r\n }\r\n preload.onerror = () => {\r\n imgElement.src = imageSrc\r\n showImage()\r\n }\r\n preload.src = imageSrc\r\n },\r\n\r\n prepareBackgroundMotion(imgElement, enableZoom = false) {\r\n if (!imgElement) return\r\n\r\n const zoomDuration = Math.max(this.bkInterval + 1200, 4200)\r\n imgElement.style.transition = enableZoom\r\n ? `opacity 1.2s ease-in-out, filter 0.3s ease, transform ${zoomDuration}ms ease-out`\r\n : 'opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease'\r\n imgElement.style.transformOrigin = 'center center'\r\n imgElement.style.transform = 'scale(1)'\r\n },\r\n \r\n prepareBackgroundContainer(container) {\r\n if (!container) return\r\n\r\n const computedStyle = window.getComputedStyle(container)\r\n if (computedStyle.position === 'static') {\r\n container.style.position = 'relative'\r\n }\r\n\r\n if (computedStyle.zIndex === 'auto') {\r\n container.style.zIndex = '0'\r\n }\r\n\r\n container.style.isolation = 'isolate'\r\n },\r\n\r\n /**\r\n * 切换 Bing 壁纸\r\n */\r\n switchBingWallpaper(bg1, bg2) {\r\n if (this.bingWallPapers.length === 0) return\r\n\r\n const isBg1Current = bg1.style.opacity != 0\r\n const curBg = isBg1Current ? bg1 : bg2\r\n const nextBg = isBg1Current ? bg2 : bg1\r\n \r\n this.bingWallPaperIndex = (this.bingWallPaperIndex + 1) % this.bingWallPapers.length\r\n const nextUrl = this.bingWallPapers[this.bingWallPaperIndex]?.url\r\n\r\n // 【层级魔法】:让旧图垫底,新图置顶\r\n curBg.style.zIndex = -2\r\n nextBg.style.zIndex = -1\r\n this.prepareBackgroundMotion(nextBg, true)\r\n\r\n const preload = new Image()\r\n preload.onload = () => {\r\n nextBg.src = nextUrl\r\n \r\n // 稍微延迟 50ms,确保浏览器把新图渲染到 DOM 上且层级已更新\r\n setTimeout(() => {\r\n nextBg.style.opacity = this.bkOpacity // 新图直接在顶层优雅淡入\r\n nextBg.style.transform = 'scale(1.045)'\r\n \r\n // 等新图 1.2s 完全覆盖后,在底下默默把旧图透明度归零,毫无视觉断层\r\n setTimeout(() => { \r\n curBg.style.opacity = 0 \r\n this.prepareBackgroundMotion(curBg, true)\r\n }, 1200)\r\n }, 50)\r\n }\r\n preload.src = nextUrl\r\n },\r\n\r\n /**\r\n * 切换自定义壁纸\r\n */\r\n switchCustomWallpaper(bg1, bg2, wallpapers) {\r\n const isBg1Current = bg1.style.opacity != 0\r\n const curBg = isBg1Current ? bg1 : bg2\r\n const nextBg = isBg1Current ? bg2 : bg1\r\n \r\n this.customWallPaperIndex = (this.customWallPaperIndex + 1) % wallpapers.length\r\n const nextUrl = wallpapers[this.customWallPaperIndex]\r\n\r\n // 旧图垫底,新图置顶\r\n curBg.style.zIndex = -2\r\n nextBg.style.zIndex = -1\r\n this.prepareBackgroundMotion(nextBg, true)\r\n\r\n const preload = new Image()\r\n preload.onload = () => {\r\n nextBg.src = nextUrl\r\n \r\n setTimeout(() => {\r\n nextBg.style.opacity = this.bkOpacity\r\n nextBg.style.transform = 'scale(1.045)'\r\n \r\n setTimeout(() => { \r\n curBg.style.opacity = 0 \r\n this.prepareBackgroundMotion(curBg, true)\r\n }, 1200)\r\n }, 50)\r\n }\r\n preload.src = nextUrl\r\n },\r\n\r\n /**\r\n * 清除背景轮播定时器\r\n */\r\n clearBackgroundInterval() {\r\n if (this.backgroundInterval) {\r\n clearInterval(this.backgroundInterval)\r\n this.backgroundInterval = null\r\n }\r\n },\r\n\r\n /**\r\n * 清除背景图片显示(带过渡效果)\r\n * @param {boolean} immediate - 是否立即清除,不使用过渡效果\r\n */\r\n clearBackgroundImages(immediate = false) {\r\n const bg1 = document.getElementById('bg1')\r\n const bg2 = document.getElementById('bg2')\r\n \r\n if (immediate) {\r\n // 立即清除,不使用过渡效果\r\n if (bg1) {\r\n bg1.style.transition = 'none'\r\n bg1.style.opacity = 0\r\n bg1.src = ''\r\n // 恢复过渡效果\r\n setTimeout(() => {\r\n if (bg1) bg1.style.transition = 'opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease'\r\n }, 50)\r\n }\r\n if (bg2) {\r\n bg2.style.transition = 'none'\r\n bg2.style.opacity = 0\r\n bg2.src = ''\r\n // 恢复过渡效果\r\n setTimeout(() => {\r\n if (bg2) bg2.style.transition = 'opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease'\r\n }, 50)\r\n }\r\n } else {\r\n // 使用过渡效果淡出\r\n if (bg1) {\r\n bg1.style.opacity = 0\r\n setTimeout(() => {\r\n if (bg1) bg1.src = ''\r\n }, 1200)\r\n }\r\n if (bg2) {\r\n bg2.style.opacity = 0\r\n setTimeout(() => {\r\n if (bg2) bg2.src = ''\r\n }, 1200)\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * 平滑主题切换(用于响应主题模式变化)\r\n * @param {string} configKey - 用户配置中的背景图配置键名\r\n * @param {string} containerSelector - 容器选择器\r\n * @param {boolean} useDefaultBackground - 是否使用默认背景图\r\n * @param {boolean} autoCreateElements - 是否自动创建背景元素\r\n */\r\n smoothThemeTransition(configKey, containerSelector = '.login', useDefaultBackground = false, autoCreateElements = false) {\r\n const backgroundConfig = this.userConfig?.[configKey]\r\n \r\n // 如果不是默认背景配置,则直接重新初始化(自定义背景不受主题影响)\r\n if (!useDefaultBackground || backgroundConfig !== undefined) {\r\n this.reinitializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n return\r\n }\r\n\r\n // 对于默认背景,执行平滑过渡\r\n const bg1 = document.getElementById('bg1')\r\n const bg2 = document.getElementById('bg2')\r\n \r\n if (!bg1 || !bg2) {\r\n // 如果背景元素不存在,直接重新初始化\r\n this.reinitializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n return\r\n }\r\n\r\n // 确定当前显示的背景和下一个背景\r\n const currentBg = bg1.style.opacity != 0 ? bg1 : bg2\r\n const nextBg = bg1.style.opacity != 0 ? bg2 : bg1\r\n\r\n // 获取新主题对应的背景图\r\n const isDark = this.useDarkMode\r\n const newThemeImage = isDark \r\n ? require('@/assets/background.jpg') \r\n : require('@/assets/background-light.jpg')\r\n\r\n // 预加载新背景图\r\n const preloadImg = new Image()\r\n preloadImg.onload = () => {\r\n // 设置下一个背景的图片源\r\n nextBg.src = newThemeImage\r\n \r\n // 等待图片加载完成后执行淡入淡出过渡\r\n nextBg.onload = () => {\r\n // 淡出当前背景\r\n currentBg.style.opacity = 0\r\n \r\n // 稍微延迟后淡入新背景,确保过渡效果平滑\r\n setTimeout(() => {\r\n nextBg.style.opacity = this.bkOpacity\r\n }, 50) // 50ms 延迟,让淡出效果先开始\r\n }\r\n }\r\n \r\n preloadImg.onerror = () => {\r\n // 如果预加载失败,回退到直接重新初始化\r\n console.warn('主题背景图预加载失败,回退到直接切换')\r\n this.reinitializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n }\r\n \r\n preloadImg.src = newThemeImage\r\n },\r\n\r\n /**\r\n * 重新初始化背景图(用于响应配置变化)\r\n */\r\n reinitializeBackground(configKey, containerSelector = '.login', useDefaultBackground = false, autoCreateElements = false) {\r\n this.clearBackgroundInterval()\r\n this.clearBackgroundImages(true) // 使用立即清除\r\n this.bingWallPaperIndex = 0\r\n this.customWallPaperIndex = 0\r\n \r\n // 延迟一小段时间确保清理完成\r\n setTimeout(() => {\r\n this.initializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n }, 100)\r\n }\r\n }\r\n}\r\n","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\";\nconst _hoisted_1 = [\"title\"];\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\");\n return _openBlock(), _createElementBlock(\"span\", {\n class: \"language-switcher\",\n onClick: _cache[0] || (_cache[0] = (...args) => $options.toggleLocale && $options.toggleLocale(...args)),\n role: \"button\",\n title: _ctx.$t('language.switchTo')\n }, [_createVNode(_component_font_awesome_icon, {\n icon: \"globe\",\n class: \"lang-icon\"\n })], 8, _hoisted_1);\n}","import { setLocale } from '@/locales';\nexport default {\n name: 'LanguageSwitcher',\n computed: {\n isZh() {\n return this.$i18n.locale === 'zh-CN';\n }\n },\n methods: {\n toggleLocale() {\n const next = this.isZh ? 'en' : 'zh-CN';\n setLocale(next);\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./LanguageSwitcher.vue?vue&type=template&id=08567d0a&scoped=true\"\nimport script from \"./LanguageSwitcher.vue?vue&type=script&lang=js\"\nexport * from \"./LanguageSwitcher.vue?vue&type=script&lang=js\"\n\nimport \"./LanguageSwitcher.vue?vue&type=style&index=0&id=08567d0a&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-08567d0a\"]])\n\nexport default __exports__"],"names":["data","bingWallPaperIndex","customWallPaperIndex","backgroundInterval","backgroundInitParams","computed","mapGetters","bkInterval","this","userConfig","bkOpacity","backgroundImagesTemplate","backgroundImagesStyles","watch","useDarkMode","newVal","oldVal","$nextTick","smoothThemeTransition","configKey","containerSelector","useDefaultBackground","autoCreateElements","wallpaperEnabled","reinitializeBackground","clearBackgroundImages","mounted","injectBackgroundStyles","beforeUnmount","clearInterval","removeBackgroundStyles","methods","styleId","document","getElementById","style","createElement","id","textContent","head","appendChild","existingStyle","remove","createBackgroundElements","container","console","warn","bg1","className","alt","bg2","insertBefore","firstChild","initializeBackground","querySelector","prepareBackgroundContainer","backgroundConfig","setupBingWallpaper","Array","isArray","length","setupCustomWallpaperCarousel","setupSingleCustomWallpaper","setupDefaultWallpaper","$store","dispatch","then","bingWallPapers","loadBackgroundImage","url","setInterval","switchBingWallpaper","wallpapers","switchCustomWallpaper","wallpaperUrl","isDark","defaultImage","require","imgElement","imageSrc","enableZoom","zIndex","opacity","prepareBackgroundMotion","showImage","requestAnimationFrame","transform","preload","Image","onload","src","onerror","zoomDuration","Math","max","transition","transformOrigin","computedStyle","window","getComputedStyle","position","isolation","isBg1Current","curBg","nextBg","nextUrl","setTimeout","clearBackgroundInterval","immediate","undefined","currentBg","newThemeImage","preloadImg","_hoisted_1","render","_ctx","_cache","$props","$setup","$data","$options","_component_font_awesome_icon","class","onClick","args","toggleLocale","role","title","$t","icon","name","isZh","$i18n","locale","next","__exports__"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/frontend-dist/js/21.72019411.js.map.gz b/frontend-dist/js/21.72019411.js.map.gz deleted file mode 100644 index 4d985c19ed00123b244f350a8c633ca774d6ee1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8201 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\n Background Image\n '},backgroundImagesStyles(){return"\n .background-image1 {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n z-index: -1;\n pointer-events: none;\n opacity: 0;\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\n transform: scale(1);\n transform-origin: center center;\n will-change: opacity, transform;\n filter: var(--background-image-filter, brightness(1));\n }\n .background-image2 {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n z-index: -1;\n pointer-events: none;\n opacity: 0;\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\n transform: scale(1);\n transform-origin: center center;\n will-change: opacity, transform;\n filter: var(--background-image-filter, brightness(1));\n }\n "}},watch:{useDarkMode(e,t){e!==t&&this.backgroundInitParams&&this.$nextTick(()=>{this.smoothThemeTransition(this.backgroundInitParams.configKey,this.backgroundInitParams.containerSelector,this.backgroundInitParams.useDefaultBackground,this.backgroundInitParams.autoCreateElements)})}},mounted(){this.injectBackgroundStyles()},beforeUnmount(){this.backgroundInterval&&clearInterval(this.backgroundInterval),this.clearBackgroundImages(!0),this.removeBackgroundStyles()},methods:{injectBackgroundStyles(){const e="background-manager-styles";if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent=this.backgroundImagesStyles,document.head.appendChild(t)}},removeBackgroundStyles(){const e="background-manager-styles",t=document.getElementById(e);t&&t.remove()},createBackgroundElements(e){if(!e)return void console.warn("未提供有效的容器元素");if(document.getElementById("bg1")||document.getElementById("bg2"))return;const t=document.createElement("img");t.id="bg1",t.className="background-image1",t.alt="Background Image";const n=document.createElement("img");n.id="bg2",n.className="background-image2",n.alt="Background Image",e.insertBefore(t,e.firstChild),e.insertBefore(n,e.firstChild)},initializeBackground(e,t=".login",n=!1,a=!1){if(!1===this.userConfig?.wallpaperEnabled)return void this.clearBackgroundImages(!0);this.backgroundInitParams={configKey:e,containerSelector:t,useDefaultBackground:n,autoCreateElements:a};const s=document.querySelector(t);this.prepareBackgroundContainer(s),a&&(!s||document.getElementById("bg1")&&document.getElementById("bg2")||this.createBackgroundElements(s));const r=document.getElementById("bg1"),o=document.getElementById("bg2");if(!r||!o)return void console.warn("背景图元素 #bg1 或 #bg2 未找到,请确保页面中包含这些元素或启用 autoCreateElements");const i=this.userConfig?.[e];"bing"===i?this.setupBingWallpaper(r,o,t):Array.isArray(i)&&i.length>1?this.setupCustomWallpaperCarousel(r,o,i,t):Array.isArray(i)&&1===i.length?this.setupSingleCustomWallpaper(r,i[0],t):n&&this.setupDefaultWallpaper(r,t)},setupBingWallpaper(e,t,n){this.$store.dispatch("fetchBingWallPapers").then(()=>{0!==this.bingWallPapers.length&&(this.loadBackgroundImage(e,this.bingWallPapers[this.bingWallPaperIndex]?.url,n,!0),this.backgroundInterval=setInterval(()=>{this.switchBingWallpaper(e,t)},this.bkInterval))})},setupCustomWallpaperCarousel(e,t,n,a){this.loadBackgroundImage(e,n[this.customWallPaperIndex],a,!0),this.backgroundInterval=setInterval(()=>{this.switchCustomWallpaper(e,t,n)},this.bkInterval)},setupSingleCustomWallpaper(e,t,n){this.loadBackgroundImage(e,t,n)},setupDefaultWallpaper(e,t){const a=this.useDarkMode,s=n(a?10732:7835);this.loadBackgroundImage(e,s,t)},loadBackgroundImage(e,t,n,a=!1){e.style.zIndex=-1,e.style.opacity=0,this.prepareBackgroundMotion(e,a);const s=document.querySelector(n);this.prepareBackgroundContainer(s);const r=()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{e.style.opacity=this.bkOpacity,a&&(e.style.transform="scale(1.045)")})})},o=new Image;o.onload=()=>{e.src=t,r()},o.onerror=()=>{e.src=t,r()},o.src=t},prepareBackgroundMotion(e,t=!1){if(!e)return;const n=Math.max(this.bkInterval+1200,4200);e.style.transition=t?`opacity 1.2s ease-in-out, filter 0.3s ease, transform ${n}ms ease-out`:"opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease",e.style.transformOrigin="center center",e.style.transform="scale(1)"},prepareBackgroundContainer(e){if(!e)return;const t=window.getComputedStyle(e);"static"===t.position&&(e.style.position="relative"),"auto"===t.zIndex&&(e.style.zIndex="0"),e.style.isolation="isolate"},switchBingWallpaper(e,t){if(0===this.bingWallPapers.length)return;const n=0!=e.style.opacity,a=n?e:t,s=n?t:e;this.bingWallPaperIndex=(this.bingWallPaperIndex+1)%this.bingWallPapers.length;const r=this.bingWallPapers[this.bingWallPaperIndex]?.url;a.style.zIndex=-2,s.style.zIndex=-1,this.prepareBackgroundMotion(s,!0);const o=new Image;o.onload=()=>{s.src=r,setTimeout(()=>{s.style.opacity=this.bkOpacity,s.style.transform="scale(1.045)",setTimeout(()=>{a.style.opacity=0,this.prepareBackgroundMotion(a,!0)},1200)},50)},o.src=r},switchCustomWallpaper(e,t,n){const a=0!=e.style.opacity,s=a?e:t,r=a?t:e;this.customWallPaperIndex=(this.customWallPaperIndex+1)%n.length;const o=n[this.customWallPaperIndex];s.style.zIndex=-2,r.style.zIndex=-1,this.prepareBackgroundMotion(r,!0);const i=new Image;i.onload=()=>{r.src=o,setTimeout(()=>{r.style.opacity=this.bkOpacity,r.style.transform="scale(1.045)",setTimeout(()=>{s.style.opacity=0,this.prepareBackgroundMotion(s,!0)},1200)},50)},i.src=o},clearBackgroundInterval(){this.backgroundInterval&&(clearInterval(this.backgroundInterval),this.backgroundInterval=null)},clearBackgroundImages(e=!1){const t=document.getElementById("bg1"),n=document.getElementById("bg2");e?(t&&(t.style.transition="none",t.style.opacity=0,t.src="",setTimeout(()=>{t&&(t.style.transition="opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease")},50)),n&&(n.style.transition="none",n.style.opacity=0,n.src="",setTimeout(()=>{n&&(n.style.transition="opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease")},50))):(t&&(t.style.opacity=0,setTimeout(()=>{t&&(t.src="")},1200)),n&&(n.style.opacity=0,setTimeout(()=>{n&&(n.src="")},1200)))},smoothThemeTransition(e,t=".login",a=!1,s=!1){const r=this.userConfig?.[e];if(!a||void 0!==r)return void this.reinitializeBackground(e,t,a,s);const o=document.getElementById("bg1"),i=document.getElementById("bg2");if(!o||!i)return void this.reinitializeBackground(e,t,a,s);const l=0!=o.style.opacity?o:i,c=0!=o.style.opacity?i:o,g=this.useDarkMode,u=n(g?10732:7835),d=new Image;d.onload=()=>{c.src=u,c.onload=()=>{l.style.opacity=0,setTimeout(()=>{c.style.opacity=this.bkOpacity},50)}},d.onerror=()=>{console.warn("主题背景图预加载失败,回退到直接切换"),this.reinitializeBackground(e,t,a,s)},d.src=u},reinitializeBackground(e,t=".login",n=!1,a=!1){this.clearBackgroundInterval(),this.clearBackgroundImages(!0),this.bingWallPaperIndex=0,this.customWallPaperIndex=0,setTimeout(()=>{this.initializeBackground(e,t,n,a)},100)}}}},54047:function(e,t,n){n.d(t,{A:function(){return g}});var a=n(56768);const s=["title"];function r(e,t,n,r,o,i){const l=(0,a.g2)("font-awesome-icon");return(0,a.uX)(),(0,a.CE)("span",{class:"language-switcher",onClick:t[0]||(t[0]=(...e)=>i.toggleLocale&&i.toggleLocale(...e)),role:"button",title:e.$t("language.switchTo")},[(0,a.bF)(l,{icon:"globe",class:"lang-icon"})],8,s)}var o=n(46638),i={name:"LanguageSwitcher",computed:{isZh(){return"zh-CN"===this.$i18n.locale}},methods:{toggleLocale(){const e=this.isZh?"en":"zh-CN";(0,o.xS)(e)}}},l=n(71241);const c=(0,l.A)(i,[["render",r],["__scopeId","data-v-08567d0a"]]);var g=c}}]); +//# sourceMappingURL=21.e06c66b8.js.map \ No newline at end of file diff --git a/frontend-dist/js/21.e06c66b8.js.gz b/frontend-dist/js/21.e06c66b8.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..e824af9fd82c5460d4472c9f857255dfbd8e3ba9 GIT binary patch literal 2719 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 literal 0 HcmV?d00001 diff --git a/frontend-dist/js/21.e06c66b8.js.map b/frontend-dist/js/21.e06c66b8.js.map new file mode 100644 index 00000000..a6c33e99 --- /dev/null +++ b/frontend-dist/js/21.e06c66b8.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/21.e06c66b8.js","mappings":"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","sources":["webpack://sanyue_imghub/./src/mixins/backgroundManager.js","webpack://sanyue_imghub/./src/components/LanguageSwitcher.vue?0caa","webpack://sanyue_imghub/./src/components/LanguageSwitcher.vue","webpack://sanyue_imghub/./src/components/LanguageSwitcher.vue?90ec"],"sourcesContent":["/**\r\n * 背景图管理 Mixin\r\n * 用于统一管理页面背景图的加载和轮播逻辑\r\n */\r\n\r\nimport { mapGetters } from 'vuex'\r\n\r\nexport default {\r\n data() {\r\n return {\r\n bingWallPaperIndex: 0,\r\n customWallPaperIndex: 0,\r\n backgroundInterval: null, // 存储轮播定时器\r\n // 存储初始化参数,用于主题切换时重新初始化\r\n backgroundInitParams: null,\r\n }\r\n },\r\n computed: {\r\n ...mapGetters(['userConfig', 'bingWallPapers', 'useDarkMode']),\n bkInterval() {\r\n return this.userConfig?.bkInterval || 3000\r\n },\r\n bkOpacity() {\r\n return this.userConfig?.bkOpacity || 1\r\n },\r\n // 提供背景图片元素的模板\r\n backgroundImagesTemplate() {\r\n return `\r\n \"Background\r\n \"Background\r\n `\r\n },\r\n // 提供背景图片的CSS样式\r\n backgroundImagesStyles() {\r\n return `\r\n .background-image1 {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n z-index: -1;\r\n pointer-events: none;\r\n opacity: 0;\r\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\r\n transform: scale(1);\r\n transform-origin: center center;\r\n will-change: opacity, transform;\r\n filter: var(--background-image-filter, brightness(1));\r\n }\r\n .background-image2 {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n z-index: -1;\r\n pointer-events: none;\r\n opacity: 0;\r\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\r\n transform: scale(1);\r\n transform-origin: center center;\r\n will-change: opacity, transform;\r\n filter: var(--background-image-filter, brightness(1));\r\n }\r\n `\r\n }\r\n },\r\n\r\n watch: {\r\n // 监听深色模式切换\r\n useDarkMode(newVal, oldVal) {\r\n // 只有在值真正改变且已经初始化过背景时才平滑切换主题\r\n if (newVal !== oldVal && this.backgroundInitParams) {\r\n this.$nextTick(() => {\r\n this.smoothThemeTransition(\r\n this.backgroundInitParams.configKey,\r\n this.backgroundInitParams.containerSelector,\r\n this.backgroundInitParams.useDefaultBackground,\r\n this.backgroundInitParams.autoCreateElements\r\n )\r\n })\r\n }\r\n }\n },\r\n\r\n mounted() {\r\n // 动态注入背景图片的CSS样式\r\n this.injectBackgroundStyles()\r\n },\r\n\r\n beforeUnmount() {\r\n // 组件销毁前清除定时器\r\n if (this.backgroundInterval) {\r\n clearInterval(this.backgroundInterval)\r\n }\r\n // 立即清除背景图片,不使用过渡效果\r\n this.clearBackgroundImages(true)\r\n // 移除动态注入的样式\r\n this.removeBackgroundStyles()\r\n },\r\n\r\n methods: {\r\n /**\r\n * 动态注入背景图片样式\r\n */\r\n injectBackgroundStyles() {\r\n const styleId = 'background-manager-styles'\r\n if (!document.getElementById(styleId)) {\r\n const style = document.createElement('style')\r\n style.id = styleId\r\n style.textContent = this.backgroundImagesStyles\r\n document.head.appendChild(style)\r\n }\r\n },\r\n\r\n /**\r\n * 移除动态注入的样式\r\n */\r\n removeBackgroundStyles() {\r\n const styleId = 'background-manager-styles'\r\n const existingStyle = document.getElementById(styleId)\r\n if (existingStyle) {\r\n existingStyle.remove()\r\n }\r\n },\r\n\r\n /**\r\n * 动态创建背景图片元素\r\n * @param {HTMLElement} container - 要插入背景图片的容器元素\r\n */\r\n createBackgroundElements(container) {\r\n if (!container) {\r\n console.warn('未提供有效的容器元素')\r\n return\r\n }\r\n\r\n // 检查是否已经存在背景图片元素\r\n if (document.getElementById('bg1') || document.getElementById('bg2')) {\r\n return\r\n }\r\n\r\n // 创建 bg1 元素\r\n const bg1 = document.createElement('img')\r\n bg1.id = 'bg1'\r\n bg1.className = 'background-image1'\r\n bg1.alt = 'Background Image'\r\n \r\n // 创建 bg2 元素\r\n const bg2 = document.createElement('img')\r\n bg2.id = 'bg2'\r\n bg2.className = 'background-image2'\r\n bg2.alt = 'Background Image'\r\n\r\n // 将元素插入到容器的开头\r\n container.insertBefore(bg1, container.firstChild)\r\n container.insertBefore(bg2, container.firstChild)\r\n },\r\n /**\r\n * 初始化背景图\r\n * @param {string} configKey - 用户配置中的背景图配置键名\r\n * @param {string} containerSelector - 容器选择器,用于设置透明背景\r\n * @param {boolean} useDefaultBackground - 是否使用默认背景图\r\n * @param {boolean} autoCreateElements - 是否自动创建背景元素\r\n */\r\n initializeBackground(configKey, containerSelector = '.login', useDefaultBackground = false, autoCreateElements = false) {\n // 如果全局壁纸开关关闭,直接清理背景并返回\n if (this.userConfig?.wallpaperEnabled === false) {\n this.clearBackgroundImages(true);\n return;\n }\n\n // 保存初始化参数,用于主题切换时重新初始化\n this.backgroundInitParams = {\n configKey,\n containerSelector,\n useDefaultBackground,\n autoCreateElements\n }\n\n // 如果需要自动创建元素且元素不存在,则创建\n const container = document.querySelector(containerSelector)\r\n this.prepareBackgroundContainer(container)\r\n\r\n if (autoCreateElements) {\r\n if (container && (!document.getElementById('bg1') || !document.getElementById('bg2'))) {\r\n this.createBackgroundElements(container)\r\n }\r\n }\r\n\r\n const bg1 = document.getElementById('bg1')\r\n const bg2 = document.getElementById('bg2')\r\n \r\n if (!bg1 || !bg2) {\r\n console.warn('背景图元素 #bg1 或 #bg2 未找到,请确保页面中包含这些元素或启用 autoCreateElements')\r\n return\r\n }\r\n\r\n const backgroundConfig = this.userConfig?.[configKey]\r\n\r\n if (backgroundConfig === 'bing') {\r\n this.setupBingWallpaper(bg1, bg2, containerSelector)\r\n } else if (Array.isArray(backgroundConfig) && backgroundConfig.length > 1) {\r\n this.setupCustomWallpaperCarousel(bg1, bg2, backgroundConfig, containerSelector)\r\n } else if (Array.isArray(backgroundConfig) && backgroundConfig.length === 1) {\r\n this.setupSingleCustomWallpaper(bg1, backgroundConfig[0], containerSelector)\r\n } else if (useDefaultBackground) {\r\n this.setupDefaultWallpaper(bg1, containerSelector)\r\n }\r\n },\r\n\r\n /**\r\n * 设置 Bing 壁纸轮播\r\n */\r\n setupBingWallpaper(bg1, bg2, containerSelector) {\r\n this.$store.dispatch('fetchBingWallPapers').then(() => {\r\n if (this.bingWallPapers.length === 0) return\r\n\r\n this.loadBackgroundImage(bg1, this.bingWallPapers[this.bingWallPaperIndex]?.url, containerSelector, true)\r\n \r\n this.backgroundInterval = setInterval(() => {\r\n this.switchBingWallpaper(bg1, bg2)\r\n }, this.bkInterval)\r\n })\r\n },\r\n\r\n /**\r\n * 设置自定义壁纸轮播\r\n */\r\n setupCustomWallpaperCarousel(bg1, bg2, wallpapers, containerSelector) {\r\n this.loadBackgroundImage(bg1, wallpapers[this.customWallPaperIndex], containerSelector, true)\r\n \r\n this.backgroundInterval = setInterval(() => {\r\n this.switchCustomWallpaper(bg1, bg2, wallpapers)\r\n }, this.bkInterval)\r\n },\r\n\r\n /**\r\n * 设置单张自定义壁纸\r\n */\r\n setupSingleCustomWallpaper(bg1, wallpaperUrl, containerSelector) {\r\n this.loadBackgroundImage(bg1, wallpaperUrl, containerSelector)\r\n },\r\n\r\n /**\r\n * 设置默认壁纸\r\n */\r\n setupDefaultWallpaper(bg1, containerSelector) {\r\n // 根据当前深色模式状态选择背景图\r\n const isDark = this.useDarkMode\r\n const defaultImage = isDark \r\n ? require('@/assets/background.jpg') \r\n : require('@/assets/background-light.jpg')\r\n \r\n this.loadBackgroundImage(bg1, defaultImage, containerSelector)\r\n },\r\n\r\n /**\r\n * 加载背景图片\r\n */\r\n loadBackgroundImage(imgElement, imageSrc, containerSelector, enableZoom = false) {\r\n // 确保初始化时层级正确\r\n imgElement.style.zIndex = -1\r\n imgElement.style.opacity = 0\r\n this.prepareBackgroundMotion(imgElement, enableZoom)\r\n const container = document.querySelector(containerSelector)\r\n this.prepareBackgroundContainer(container)\r\n\r\n const showImage = () => {\r\n requestAnimationFrame(() => {\r\n requestAnimationFrame(() => {\r\n imgElement.style.opacity = this.bkOpacity\r\n if (enableZoom) {\r\n imgElement.style.transform = 'scale(1.045)'\r\n }\r\n })\r\n })\r\n }\r\n\r\n const preload = new Image()\r\n preload.onload = () => {\r\n imgElement.src = imageSrc\r\n showImage()\r\n }\r\n preload.onerror = () => {\r\n imgElement.src = imageSrc\r\n showImage()\r\n }\r\n preload.src = imageSrc\r\n },\r\n\r\n prepareBackgroundMotion(imgElement, enableZoom = false) {\r\n if (!imgElement) return\r\n\r\n const zoomDuration = Math.max(this.bkInterval + 1200, 4200)\r\n imgElement.style.transition = enableZoom\r\n ? `opacity 1.2s ease-in-out, filter 0.3s ease, transform ${zoomDuration}ms ease-out`\r\n : 'opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease'\r\n imgElement.style.transformOrigin = 'center center'\r\n imgElement.style.transform = 'scale(1)'\r\n },\r\n \r\n prepareBackgroundContainer(container) {\r\n if (!container) return\r\n\r\n const computedStyle = window.getComputedStyle(container)\r\n if (computedStyle.position === 'static') {\r\n container.style.position = 'relative'\r\n }\r\n\r\n if (computedStyle.zIndex === 'auto') {\r\n container.style.zIndex = '0'\r\n }\r\n\r\n container.style.isolation = 'isolate'\r\n },\r\n\r\n /**\r\n * 切换 Bing 壁纸\r\n */\r\n switchBingWallpaper(bg1, bg2) {\r\n if (this.bingWallPapers.length === 0) return\r\n\r\n const isBg1Current = bg1.style.opacity != 0\r\n const curBg = isBg1Current ? bg1 : bg2\r\n const nextBg = isBg1Current ? bg2 : bg1\r\n \r\n this.bingWallPaperIndex = (this.bingWallPaperIndex + 1) % this.bingWallPapers.length\r\n const nextUrl = this.bingWallPapers[this.bingWallPaperIndex]?.url\r\n\r\n // 【层级魔法】:让旧图垫底,新图置顶\r\n curBg.style.zIndex = -2\r\n nextBg.style.zIndex = -1\r\n this.prepareBackgroundMotion(nextBg, true)\r\n\r\n const preload = new Image()\r\n preload.onload = () => {\r\n nextBg.src = nextUrl\r\n \r\n // 稍微延迟 50ms,确保浏览器把新图渲染到 DOM 上且层级已更新\r\n setTimeout(() => {\r\n nextBg.style.opacity = this.bkOpacity // 新图直接在顶层优雅淡入\r\n nextBg.style.transform = 'scale(1.045)'\r\n \r\n // 等新图 1.2s 完全覆盖后,在底下默默把旧图透明度归零,毫无视觉断层\r\n setTimeout(() => { \r\n curBg.style.opacity = 0 \r\n this.prepareBackgroundMotion(curBg, true)\r\n }, 1200)\r\n }, 50)\r\n }\r\n preload.src = nextUrl\r\n },\r\n\r\n /**\r\n * 切换自定义壁纸\r\n */\r\n switchCustomWallpaper(bg1, bg2, wallpapers) {\r\n const isBg1Current = bg1.style.opacity != 0\r\n const curBg = isBg1Current ? bg1 : bg2\r\n const nextBg = isBg1Current ? bg2 : bg1\r\n \r\n this.customWallPaperIndex = (this.customWallPaperIndex + 1) % wallpapers.length\r\n const nextUrl = wallpapers[this.customWallPaperIndex]\r\n\r\n // 旧图垫底,新图置顶\r\n curBg.style.zIndex = -2\r\n nextBg.style.zIndex = -1\r\n this.prepareBackgroundMotion(nextBg, true)\r\n\r\n const preload = new Image()\r\n preload.onload = () => {\r\n nextBg.src = nextUrl\r\n \r\n setTimeout(() => {\r\n nextBg.style.opacity = this.bkOpacity\r\n nextBg.style.transform = 'scale(1.045)'\r\n \r\n setTimeout(() => { \r\n curBg.style.opacity = 0 \r\n this.prepareBackgroundMotion(curBg, true)\r\n }, 1200)\r\n }, 50)\r\n }\r\n preload.src = nextUrl\r\n },\r\n\r\n /**\r\n * 清除背景轮播定时器\r\n */\r\n clearBackgroundInterval() {\r\n if (this.backgroundInterval) {\r\n clearInterval(this.backgroundInterval)\r\n this.backgroundInterval = null\r\n }\r\n },\r\n\r\n /**\r\n * 清除背景图片显示(带过渡效果)\r\n * @param {boolean} immediate - 是否立即清除,不使用过渡效果\r\n */\r\n clearBackgroundImages(immediate = false) {\r\n const bg1 = document.getElementById('bg1')\r\n const bg2 = document.getElementById('bg2')\r\n \r\n if (immediate) {\r\n // 立即清除,不使用过渡效果\r\n if (bg1) {\r\n bg1.style.transition = 'none'\r\n bg1.style.opacity = 0\r\n bg1.src = ''\r\n // 恢复过渡效果\r\n setTimeout(() => {\r\n if (bg1) bg1.style.transition = 'opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease'\r\n }, 50)\r\n }\r\n if (bg2) {\r\n bg2.style.transition = 'none'\r\n bg2.style.opacity = 0\r\n bg2.src = ''\r\n // 恢复过渡效果\r\n setTimeout(() => {\r\n if (bg2) bg2.style.transition = 'opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease'\r\n }, 50)\r\n }\r\n } else {\r\n // 使用过渡效果淡出\r\n if (bg1) {\r\n bg1.style.opacity = 0\r\n setTimeout(() => {\r\n if (bg1) bg1.src = ''\r\n }, 1200)\r\n }\r\n if (bg2) {\r\n bg2.style.opacity = 0\r\n setTimeout(() => {\r\n if (bg2) bg2.src = ''\r\n }, 1200)\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * 平滑主题切换(用于响应主题模式变化)\r\n * @param {string} configKey - 用户配置中的背景图配置键名\r\n * @param {string} containerSelector - 容器选择器\r\n * @param {boolean} useDefaultBackground - 是否使用默认背景图\r\n * @param {boolean} autoCreateElements - 是否自动创建背景元素\r\n */\r\n smoothThemeTransition(configKey, containerSelector = '.login', useDefaultBackground = false, autoCreateElements = false) {\r\n const backgroundConfig = this.userConfig?.[configKey]\r\n \r\n // 如果不是默认背景配置,则直接重新初始化(自定义背景不受主题影响)\r\n if (!useDefaultBackground || backgroundConfig !== undefined) {\r\n this.reinitializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n return\r\n }\r\n\r\n // 对于默认背景,执行平滑过渡\r\n const bg1 = document.getElementById('bg1')\r\n const bg2 = document.getElementById('bg2')\r\n \r\n if (!bg1 || !bg2) {\r\n // 如果背景元素不存在,直接重新初始化\r\n this.reinitializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n return\r\n }\r\n\r\n // 确定当前显示的背景和下一个背景\r\n const currentBg = bg1.style.opacity != 0 ? bg1 : bg2\r\n const nextBg = bg1.style.opacity != 0 ? bg2 : bg1\r\n\r\n // 获取新主题对应的背景图\r\n const isDark = this.useDarkMode\r\n const newThemeImage = isDark \r\n ? require('@/assets/background.jpg') \r\n : require('@/assets/background-light.jpg')\r\n\r\n // 预加载新背景图\r\n const preloadImg = new Image()\r\n preloadImg.onload = () => {\r\n // 设置下一个背景的图片源\r\n nextBg.src = newThemeImage\r\n \r\n // 等待图片加载完成后执行淡入淡出过渡\r\n nextBg.onload = () => {\r\n // 淡出当前背景\r\n currentBg.style.opacity = 0\r\n \r\n // 稍微延迟后淡入新背景,确保过渡效果平滑\r\n setTimeout(() => {\r\n nextBg.style.opacity = this.bkOpacity\r\n }, 50) // 50ms 延迟,让淡出效果先开始\r\n }\r\n }\r\n \r\n preloadImg.onerror = () => {\r\n // 如果预加载失败,回退到直接重新初始化\r\n console.warn('主题背景图预加载失败,回退到直接切换')\r\n this.reinitializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n }\r\n \r\n preloadImg.src = newThemeImage\r\n },\r\n\r\n /**\r\n * 重新初始化背景图(用于响应配置变化)\r\n */\r\n reinitializeBackground(configKey, containerSelector = '.login', useDefaultBackground = false, autoCreateElements = false) {\r\n this.clearBackgroundInterval()\r\n this.clearBackgroundImages(true) // 使用立即清除\r\n this.bingWallPaperIndex = 0\r\n this.customWallPaperIndex = 0\r\n \r\n // 延迟一小段时间确保清理完成\r\n setTimeout(() => {\r\n this.initializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n }, 100)\r\n }\r\n }\r\n}\r\n","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\";\nconst _hoisted_1 = [\"title\"];\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\");\n return _openBlock(), _createElementBlock(\"span\", {\n class: \"language-switcher\",\n onClick: _cache[0] || (_cache[0] = (...args) => $options.toggleLocale && $options.toggleLocale(...args)),\n role: \"button\",\n title: _ctx.$t('language.switchTo')\n }, [_createVNode(_component_font_awesome_icon, {\n icon: \"globe\",\n class: \"lang-icon\"\n })], 8, _hoisted_1);\n}","import { setLocale } from '@/locales';\nexport default {\n name: 'LanguageSwitcher',\n computed: {\n isZh() {\n return this.$i18n.locale === 'zh-CN';\n }\n },\n methods: {\n toggleLocale() {\n const next = this.isZh ? 'en' : 'zh-CN';\n setLocale(next);\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./LanguageSwitcher.vue?vue&type=template&id=08567d0a&scoped=true\"\nimport script from \"./LanguageSwitcher.vue?vue&type=script&lang=js\"\nexport * from \"./LanguageSwitcher.vue?vue&type=script&lang=js\"\n\nimport \"./LanguageSwitcher.vue?vue&type=style&index=0&id=08567d0a&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-08567d0a\"]])\n\nexport default __exports__"],"names":["data","bingWallPaperIndex","customWallPaperIndex","backgroundInterval","backgroundInitParams","computed","mapGetters","bkInterval","this","userConfig","bkOpacity","backgroundImagesTemplate","backgroundImagesStyles","watch","useDarkMode","newVal","oldVal","$nextTick","smoothThemeTransition","configKey","containerSelector","useDefaultBackground","autoCreateElements","mounted","injectBackgroundStyles","beforeUnmount","clearInterval","clearBackgroundImages","removeBackgroundStyles","methods","styleId","document","getElementById","style","createElement","id","textContent","head","appendChild","existingStyle","remove","createBackgroundElements","container","console","warn","bg1","className","alt","bg2","insertBefore","firstChild","initializeBackground","wallpaperEnabled","querySelector","prepareBackgroundContainer","backgroundConfig","setupBingWallpaper","Array","isArray","length","setupCustomWallpaperCarousel","setupSingleCustomWallpaper","setupDefaultWallpaper","$store","dispatch","then","bingWallPapers","loadBackgroundImage","url","setInterval","switchBingWallpaper","wallpapers","switchCustomWallpaper","wallpaperUrl","isDark","defaultImage","require","imgElement","imageSrc","enableZoom","zIndex","opacity","prepareBackgroundMotion","showImage","requestAnimationFrame","transform","preload","Image","onload","src","onerror","zoomDuration","Math","max","transition","transformOrigin","computedStyle","window","getComputedStyle","position","isolation","isBg1Current","curBg","nextBg","nextUrl","setTimeout","clearBackgroundInterval","immediate","undefined","reinitializeBackground","currentBg","newThemeImage","preloadImg","_hoisted_1","render","_ctx","_cache","$props","$setup","$data","$options","_component_font_awesome_icon","class","onClick","args","toggleLocale","role","title","$t","icon","name","isZh","$i18n","locale","next","__exports__"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/frontend-dist/js/21.e06c66b8.js.map.gz b/frontend-dist/js/21.e06c66b8.js.map.gz new file mode 100644 index 0000000000000000000000000000000000000000..b9078eb2668afa62f8ef52529e35e171f9c6ee39 GIT binary patch literal 8086 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 literal 0 HcmV?d00001 diff --git a/frontend-dist/js/22.f752503c.js b/frontend-dist/js/22.f752503c.js new file mode 100644 index 00000000..14d5bdc4 --- /dev/null +++ b/frontend-dist/js/22.f752503c.js @@ -0,0 +1,2 @@ +"use strict";(self["webpackChunksanyue_imghub"]=self["webpackChunksanyue_imghub"]||[]).push([[22],{213:function(e,n,t){t(85331),t(19104)},4318:function(){},10456:function(e,n,t){t(85331)},18785:function(e,n,t){t(85331)},19104:function(e,n,t){t(85331)},30694:function(e,n,t){t(85331)},38736:function(e,n,t){t(85331)},67819:function(e,n,t){t(85331)},70797:function(e,n,t){t.d(n,{A:function(){return s}});t(44114);var i=t(25507),a=t(16915);let o=!1;async function s(e,n={}){n.credentials="include",n.headers={...n.headers};const t=await fetch(e,n);return 401!==t.status||o||(o=!0,i.A.commit("setAdminLoggedIn",!1),a.A.push("/adminLogin").finally(()=>{o=!1})),t}},77128:function(e,n,t){t(85331),t(4318)},78450:function(e,n,t){t(85331)},85970:function(e,n,t){t(85331)},91570:function(e,n,t){t.d(n,{A:function(){return O}});var i=t(54047),a=t(56768),o=t(45130),s=t(24232);const l={id:"themeMaskAdmin"},r=["cx","cy","r"],c=["r"],u=["opacity"];function h(e,n,t,i,h,d){const g=(0,a.g2)("font-awesome-icon");return(0,a.uX)(),(0,a.CE)("div",{id:"themeToggle",onClick:n[0]||(n[0]=(...e)=>d.handleToggleClick&&d.handleToggleClick(...e))},[(0,a.bF)(o.eB,{name:"icon-fade",mode:"out-in"},{default:(0,a.k6)(()=>[h.isAuto?((0,a.uX)(),(0,a.Wv)(g,{key:"auto-mode",icon:"circle-half-stroke",class:"auto-icon",style:{"font-size":"1.3em",color:"var(--admin-theme-toggle-color)"}})):((0,a.uX)(),(0,a.CE)("svg",{key:"sun-moon",class:(0,s.C4)(["theme_toggle_svg",{dark:h.isDark}]),width:"1.3em",height:"1.3em",viewBox:"0 0 24 24",fill:"none","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",stroke:"currentColor"},[(0,a.Lk)("mask",l,[n[1]||(n[1]=(0,a.Lk)("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:"white"},null,-1)),(0,a.Lk)("circle",{class:"theme_toggle_circle1",fill:"black",cx:h.isDark?"50%":"100%",cy:h.isDark?"23%":"0%",r:h.isDark?"9":"5"},null,8,r)]),(0,a.Lk)("circle",{class:"theme_toggle_circle2",cx:"12",cy:"12",r:h.isDark?"9":"5",mask:"url(#themeMaskAdmin)"},null,8,c),(0,a.Lk)("g",{class:"theme_toggle_g",stroke:"currentColor",opacity:h.isDark?0:1},[...n[2]||(n[2]=[(0,a.Lk)("line",{x1:"12",y1:"1",x2:"12",y2:"3"},null,-1),(0,a.Lk)("line",{x1:"12",y1:"21",x2:"12",y2:"23"},null,-1),(0,a.Lk)("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"},null,-1),(0,a.Lk)("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"},null,-1),(0,a.Lk)("line",{x1:"1",y1:"12",x2:"3",y2:"12"},null,-1),(0,a.Lk)("line",{x1:"21",y1:"12",x2:"23",y2:"12"},null,-1),(0,a.Lk)("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"},null,-1),(0,a.Lk)("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"},null,-1)])],8,u)],2))]),_:1})])}var d={name:"ToggleDark",data(){return{isDark:this.$store.getters.useDarkMode,isAuto:!this.$store.getters.cusDarkMode}},methods:{handleToggleClick(){this.isAuto?(this.isDark=!1,this.isAuto=!1,this.$store.commit("setCusDarkMode",!0),this.$store.commit("setUseDarkMode",!1)):this.isDark?(this.isAuto=!0,this.$store.commit("setCusDarkMode",!1)):(this.isDark=!0,this.$store.commit("setCusDarkMode",!0),this.$store.commit("setUseDarkMode",!0))}}},g=t(71241);const p=(0,g.A)(d,[["render",h],["__scopeId","data-v-5c149ed5"]]);var k=p;const m={class:"tabs"},v=["aria-expanded"],P={class:"page-switcher-title"},b=["onMouseenter","onClick"],f={class:"page-switcher-title"};function y(e,n,t,l,r,c){const u=(0,a.g2)("font-awesome-icon"),h=k,d=i.A;return(0,a.uX)(),(0,a.CE)("div",m,[(0,a.Lk)("div",{class:(0,s.C4)(["page-switcher",{"is-open":r.isPageMenuOpen}]),role:"navigation",onClick:n[3]||(n[3]=(0,o.D$)(()=>{},["stop"])),onPointerdown:n[4]||(n[4]=(0,o.D$)(()=>{},["stop"])),onMouseenter:n[5]||(n[5]=(...e)=>c.handlePageSwitcherEnter&&c.handlePageSwitcherEnter(...e)),onMouseleave:n[6]||(n[6]=(...e)=>c.handlePageSwitcherLeave&&c.handlePageSwitcherLeave(...e))},[(0,a.Lk)("div",{class:"page-switcher-sheet",role:"menu",onClick:n[2]||(n[2]=(0,o.D$)(()=>{},["stop"]))},[(0,a.Lk)("button",{class:"page-option is-current",type:"button",role:"menuitem","aria-current":"page","aria-expanded":r.isPageMenuOpen,onClick:n[0]||(n[0]=(0,o.D$)(e=>c.handlePageOptionClick(c.activePageOption.name),["stop"]))},[(0,a.bF)(u,{icon:c.activePageOption.icon,class:"page-option-icon"},null,8,["icon"]),(0,a.Lk)("span",P,(0,s.v_)(e.$t(c.activePageOption.label)),1),(0,a.bF)(u,{icon:"chevron-down",class:"page-switcher-arrow"})],8,v),(0,a.Lk)("div",{class:"page-option-list",onMouseleave:n[1]||(n[1]=(...e)=>c.clearHoveredPageOption&&c.clearHoveredPageOption(...e))},[(0,a.Lk)("span",{class:(0,s.C4)(["page-option-highlight",{"is-visible":null!==r.hoveredPageOptionIndex}]),style:(0,s.Tr)({"--hovered-option-index":null===r.hoveredPageOptionIndex?0:r.hoveredPageOptionIndex}),"aria-hidden":"true"},null,6),((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(c.inactivePageOptions,(n,t)=>((0,a.uX)(),(0,a.CE)("button",{key:n.name,class:"page-option",type:"button",role:"menuitem",onMouseenter:e=>c.setHoveredPageOption(t),onClick:(0,o.D$)(e=>c.handlePageOptionClick(n.name),["stop"])},[(0,a.bF)(u,{icon:n.icon,class:"page-option-icon"},null,8,["icon"]),(0,a.Lk)("span",f,(0,s.v_)(e.$t(n.label)),1)],40,b))),128))],32)])],34),(0,a.bF)(h),(0,a.bF)(d,{class:"tabs-language-switcher"})])}t(44114),t(18111),t(22489),t(20116);var M={name:"DashboardTabs",props:{activeTab:{type:String,default:"dashboard"}},components:{AdminToggleDark:k,LanguageSwitcher:i.A},data(){return{isPageMenuOpen:!1,hoveredPageOptionIndex:null}},computed:{pageOptions(){return[{name:"dashboard",icon:"images",label:"dashboardTabs.fileManagement"},{name:"customerConfig",icon:"user-cog",label:"dashboardTabs.userManagement"},{name:"systemConfig",icon:"cogs",label:"dashboardTabs.systemSettings"},{name:"",icon:"upload",label:"dashboardTabs.fileUpload"}]},activePageOption(){return this.pageOptions.find(e=>e.name===this.activeTab)||this.pageOptions[0]},inactivePageOptions(){return this.pageOptions.filter(e=>e.name!==this.activePageOption.name)}},methods:{handleDocumentClick(e){this.$el?.contains(e.target)||this.closePageMenu()},refreshDashboard(){location.reload()},handleTabClick(e){this.closePageMenu(),e!==this.activeTab?this.$router.push(`/${e}`):this.refreshDashboard()},isTouchViewport(){return window.matchMedia("(hover: none), (pointer: coarse)").matches},handlePageOptionClick(e){!this.isTouchViewport()||this.isPageMenuOpen||e===this.activeTab?e!==this.activeTab?this.handleTabClick(e):this.isTouchViewport()?this.togglePageMenu():this.openPageMenu():this.openPageMenu()},handlePageSwitcherEnter(){this.isTouchViewport()||this.openPageMenu()},handlePageSwitcherLeave(){this.isTouchViewport()||this.closePageMenu()},setHoveredPageOption(e){this.hoveredPageOptionIndex=e},clearHoveredPageOption(){this.hoveredPageOptionIndex=null},openPageMenu(){this.isPageMenuOpen=!0},togglePageMenu(){this.isPageMenuOpen=!this.isPageMenuOpen},closePageMenu(){this.isPageMenuOpen=!1,this.clearHoveredPageOption()}},mounted(){document.addEventListener("click",this.handleDocumentClick)},beforeUnmount(){document.removeEventListener("click",this.handleDocumentClick)}};const C=(0,g.A)(M,[["render",y],["__scopeId","data-v-07e603fa"]]);var O=C},96808:function(e,n,t){t(85331),t(18785),t(67819),t(85970),t(19104)}}]); +//# sourceMappingURL=22.f752503c.js.map \ No newline at end of file diff --git a/frontend-dist/js/22.f752503c.js.gz b/frontend-dist/js/22.f752503c.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..05425535396e36af988031e82732d5d4004deff8 GIT binary patch literal 2556 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 S?|12~@cO@jgjK>78~^}3kL5@J literal 0 HcmV?d00001 diff --git a/frontend-dist/js/22.f752503c.js.map b/frontend-dist/js/22.f752503c.js.map new file mode 100644 index 00000000..b8aac67b --- /dev/null +++ b/frontend-dist/js/22.f752503c.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/22.f752503c.js","mappings":"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","sources":["webpack://sanyue_imghub/./src/utils/fetchWithAuth.js","webpack://sanyue_imghub/./src/components/dashboard/AdminToggleDark.vue?bba2","webpack://sanyue_imghub/./src/components/dashboard/AdminToggleDark.vue","webpack://sanyue_imghub/./src/components/dashboard/AdminToggleDark.vue?7379","webpack://sanyue_imghub/./src/components/DashboardTabs.vue?96f9","webpack://sanyue_imghub/./src/components/DashboardTabs.vue","webpack://sanyue_imghub/./src/components/DashboardTabs.vue?1414"],"sourcesContent":["import store from '@/store'\r\nimport router from '@/router'\r\n\r\nlet isRedirecting = false;\r\n\r\nexport default async function fetchWithAuth(url, options = {}) {\r\n // 开发环境下添加 /api 前缀\r\n url = process.env.NODE_ENV === 'production' ? url : `/api${url}`;\r\n\r\n // 确保包含凭据(HttpOnly Cookie 会自动携带)\r\n options.credentials = 'include';\r\n\r\n options.headers = {\r\n ...options.headers,\r\n };\r\n\r\n const response = await fetch(url, options);\r\n\r\n if (response.status === 401 && !isRedirecting) {\r\n isRedirecting = true;\r\n store.commit('setAdminLoggedIn', false);\r\n // 静默跳转登录页,不弹出错误提示(路由守卫负责认证 UX)\r\n router.push('/adminLogin').finally(() => {\r\n isRedirecting = false;\r\n });\r\n }\r\n\r\n return response;\r\n}\r\n","import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, Transition as _Transition, withCtx as _withCtx, createVNode as _createVNode } from \"vue\";\nconst _hoisted_1 = {\n id: \"themeMaskAdmin\"\n};\nconst _hoisted_2 = [\"cx\", \"cy\", \"r\"];\nconst _hoisted_3 = [\"r\"];\nconst _hoisted_4 = [\"opacity\"];\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\");\n return _openBlock(), _createElementBlock(\"div\", {\n id: \"themeToggle\",\n onClick: _cache[0] || (_cache[0] = (...args) => $options.handleToggleClick && $options.handleToggleClick(...args))\n }, [_createVNode(_Transition, {\n name: \"icon-fade\",\n mode: \"out-in\"\n }, {\n default: _withCtx(() => [!$data.isAuto ? (_openBlock(), _createElementBlock(\"svg\", {\n key: \"sun-moon\",\n class: _normalizeClass([\"theme_toggle_svg\", {\n 'dark': $data.isDark\n }]),\n width: \"1.3em\",\n height: \"1.3em\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n stroke: \"currentColor\"\n }, [_createElementVNode(\"mask\", _hoisted_1, [_cache[1] || (_cache[1] = _createElementVNode(\"rect\", {\n x: \"0\",\n y: \"0\",\n width: \"100%\",\n height: \"100%\",\n fill: \"white\"\n }, null, -1)), _createElementVNode(\"circle\", {\n class: \"theme_toggle_circle1\",\n fill: \"black\",\n cx: $data.isDark ? '50%' : '100%',\n cy: $data.isDark ? '23%' : '0%',\n r: $data.isDark ? '9' : '5'\n }, null, 8, _hoisted_2)]), _createElementVNode(\"circle\", {\n class: \"theme_toggle_circle2\",\n cx: \"12\",\n cy: \"12\",\n r: $data.isDark ? '9' : '5',\n mask: \"url(#themeMaskAdmin)\"\n }, null, 8, _hoisted_3), _createElementVNode(\"g\", {\n class: \"theme_toggle_g\",\n stroke: \"currentColor\",\n opacity: $data.isDark ? 0 : 1\n }, [...(_cache[2] || (_cache[2] = [_createElementVNode(\"line\", {\n x1: \"12\",\n y1: \"1\",\n x2: \"12\",\n y2: \"3\"\n }, null, -1), _createElementVNode(\"line\", {\n x1: \"12\",\n y1: \"21\",\n x2: \"12\",\n y2: \"23\"\n }, null, -1), _createElementVNode(\"line\", {\n x1: \"4.22\",\n y1: \"4.22\",\n x2: \"5.64\",\n y2: \"5.64\"\n }, null, -1), _createElementVNode(\"line\", {\n x1: \"18.36\",\n y1: \"18.36\",\n x2: \"19.78\",\n y2: \"19.78\"\n }, null, -1), _createElementVNode(\"line\", {\n x1: \"1\",\n y1: \"12\",\n x2: \"3\",\n y2: \"12\"\n }, null, -1), _createElementVNode(\"line\", {\n x1: \"21\",\n y1: \"12\",\n x2: \"23\",\n y2: \"12\"\n }, null, -1), _createElementVNode(\"line\", {\n x1: \"4.22\",\n y1: \"19.78\",\n x2: \"5.64\",\n y2: \"18.36\"\n }, null, -1), _createElementVNode(\"line\", {\n x1: \"18.36\",\n y1: \"5.64\",\n x2: \"19.78\",\n y2: \"4.22\"\n }, null, -1)]))], 8, _hoisted_4)], 2)) : (_openBlock(), _createBlock(_component_font_awesome_icon, {\n key: \"auto-mode\",\n icon: \"circle-half-stroke\",\n class: \"auto-icon\",\n style: {\n \"font-size\": \"1.3em\",\n \"color\": \"var(--admin-theme-toggle-color)\"\n }\n }))]),\n _: 1\n })]);\n}","export default {\n name: 'ToggleDark',\n data() {\n return {\n isDark: this.$store.getters.useDarkMode,\n isAuto: !this.$store.getters.cusDarkMode\n };\n },\n methods: {\n handleToggleClick() {\n // 三种状态循环:亮色 -> 暗色 -> 跟随系统 -> 亮色\n if (this.isAuto) {\n // 当前是自动模式,切换到亮色\n this.isDark = false;\n this.isAuto = false;\n this.$store.commit('setCusDarkMode', true);\n this.$store.commit('setUseDarkMode', false);\n } else if (!this.isDark) {\n // 当前是亮色,切换到暗色\n this.isDark = true;\n this.$store.commit('setCusDarkMode', true);\n this.$store.commit('setUseDarkMode', true);\n } else {\n // 当前是暗色,切换到跟随系统\n this.isAuto = true;\n this.$store.commit('setCusDarkMode', false);\n }\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./AdminToggleDark.vue?vue&type=template&id=5c149ed5&scoped=true\"\nimport script from \"./AdminToggleDark.vue?vue&type=script&lang=js\"\nexport * from \"./AdminToggleDark.vue?vue&type=script&lang=js\"\n\nimport \"./AdminToggleDark.vue?vue&type=style&index=0&id=5c149ed5&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5c149ed5\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\";\nconst _hoisted_1 = {\n class: \"tabs\"\n};\nconst _hoisted_2 = [\"aria-expanded\"];\nconst _hoisted_3 = {\n class: \"page-switcher-title\"\n};\nconst _hoisted_4 = [\"onMouseenter\", \"onClick\"];\nconst _hoisted_5 = {\n class: \"page-switcher-title\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\");\n const _component_AdminToggleDark = _resolveComponent(\"AdminToggleDark\");\n const _component_LanguageSwitcher = _resolveComponent(\"LanguageSwitcher\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createElementVNode(\"div\", {\n class: _normalizeClass([\"page-switcher\", {\n 'is-open': $data.isPageMenuOpen\n }]),\n role: \"navigation\",\n onClick: _cache[3] || (_cache[3] = _withModifiers(() => {}, [\"stop\"])),\n onPointerdown: _cache[4] || (_cache[4] = _withModifiers(() => {}, [\"stop\"])),\n onMouseenter: _cache[5] || (_cache[5] = (...args) => $options.handlePageSwitcherEnter && $options.handlePageSwitcherEnter(...args)),\n onMouseleave: _cache[6] || (_cache[6] = (...args) => $options.handlePageSwitcherLeave && $options.handlePageSwitcherLeave(...args))\n }, [_createElementVNode(\"div\", {\n class: \"page-switcher-sheet\",\n role: \"menu\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(() => {}, [\"stop\"]))\n }, [_createElementVNode(\"button\", {\n class: \"page-option is-current\",\n type: \"button\",\n role: \"menuitem\",\n \"aria-current\": \"page\",\n \"aria-expanded\": $data.isPageMenuOpen,\n onClick: _cache[0] || (_cache[0] = _withModifiers($event => $options.handlePageOptionClick($options.activePageOption.name), [\"stop\"]))\n }, [_createVNode(_component_font_awesome_icon, {\n icon: $options.activePageOption.icon,\n class: \"page-option-icon\"\n }, null, 8, [\"icon\"]), _createElementVNode(\"span\", _hoisted_3, _toDisplayString(_ctx.$t($options.activePageOption.label)), 1), _createVNode(_component_font_awesome_icon, {\n icon: \"chevron-down\",\n class: \"page-switcher-arrow\"\n })], 8, _hoisted_2), _createElementVNode(\"div\", {\n class: \"page-option-list\",\n onMouseleave: _cache[1] || (_cache[1] = (...args) => $options.clearHoveredPageOption && $options.clearHoveredPageOption(...args))\n }, [_createElementVNode(\"span\", {\n class: _normalizeClass([\"page-option-highlight\", {\n 'is-visible': $data.hoveredPageOptionIndex !== null\n }]),\n style: _normalizeStyle({\n '--hovered-option-index': $data.hoveredPageOptionIndex === null ? 0 : $data.hoveredPageOptionIndex\n }),\n \"aria-hidden\": \"true\"\n }, null, 6), (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($options.inactivePageOptions, (option, index) => {\n return _openBlock(), _createElementBlock(\"button\", {\n key: option.name,\n class: \"page-option\",\n type: \"button\",\n role: \"menuitem\",\n onMouseenter: $event => $options.setHoveredPageOption(index),\n onClick: _withModifiers($event => $options.handlePageOptionClick(option.name), [\"stop\"])\n }, [_createVNode(_component_font_awesome_icon, {\n icon: option.icon,\n class: \"page-option-icon\"\n }, null, 8, [\"icon\"]), _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.$t(option.label)), 1)], 40, _hoisted_4);\n }), 128))], 32)])], 34), _createVNode(_component_AdminToggleDark), _createVNode(_component_LanguageSwitcher, {\n class: \"tabs-language-switcher\"\n })]);\n}","import \"core-js/modules/es.array.push.js\";\nimport \"core-js/modules/es.iterator.constructor.js\";\nimport \"core-js/modules/es.iterator.filter.js\";\nimport \"core-js/modules/es.iterator.find.js\";\nimport AdminToggleDark from './dashboard/AdminToggleDark.vue';\nimport LanguageSwitcher from '@/components/LanguageSwitcher.vue';\nexport default {\n name: 'DashboardTabs',\n props: {\n activeTab: {\n type: String,\n default: 'dashboard'\n }\n },\n components: {\n AdminToggleDark,\n LanguageSwitcher\n },\n data() {\n return {\n isPageMenuOpen: false,\n hoveredPageOptionIndex: null\n };\n },\n computed: {\n pageOptions() {\n return [{\n name: 'dashboard',\n icon: 'images',\n label: 'dashboardTabs.fileManagement'\n }, {\n name: 'customerConfig',\n icon: 'user-cog',\n label: 'dashboardTabs.userManagement'\n }, {\n name: 'systemConfig',\n icon: 'cogs',\n label: 'dashboardTabs.systemSettings'\n }, {\n name: '',\n icon: 'upload',\n label: 'dashboardTabs.fileUpload'\n }];\n },\n activePageOption() {\n return this.pageOptions.find(option => option.name === this.activeTab) || this.pageOptions[0];\n },\n inactivePageOptions() {\n return this.pageOptions.filter(option => option.name !== this.activePageOption.name);\n }\n },\n methods: {\n handleDocumentClick(event) {\n if (this.$el?.contains(event.target)) {\n return;\n }\n this.closePageMenu();\n },\n refreshDashboard() {\n location.reload();\n },\n handleTabClick(tab) {\n this.closePageMenu();\n if (tab === this.activeTab) {\n this.refreshDashboard();\n return;\n }\n this.$router.push(`/${tab}`);\n },\n isTouchViewport() {\n return window.matchMedia('(hover: none), (pointer: coarse)').matches;\n },\n handlePageOptionClick(tab) {\n if (this.isTouchViewport() && !this.isPageMenuOpen && tab !== this.activeTab) {\n this.openPageMenu();\n return;\n }\n if (tab === this.activeTab) {\n if (this.isTouchViewport()) {\n this.togglePageMenu();\n } else {\n this.openPageMenu();\n }\n return;\n }\n this.handleTabClick(tab);\n },\n handlePageSwitcherEnter() {\n if (!this.isTouchViewport()) {\n this.openPageMenu();\n }\n },\n handlePageSwitcherLeave() {\n if (!this.isTouchViewport()) {\n this.closePageMenu();\n }\n },\n setHoveredPageOption(index) {\n this.hoveredPageOptionIndex = index;\n },\n clearHoveredPageOption() {\n this.hoveredPageOptionIndex = null;\n },\n openPageMenu() {\n this.isPageMenuOpen = true;\n },\n togglePageMenu() {\n this.isPageMenuOpen = !this.isPageMenuOpen;\n },\n closePageMenu() {\n this.isPageMenuOpen = false;\n this.clearHoveredPageOption();\n }\n },\n mounted() {\n document.addEventListener('click', this.handleDocumentClick);\n },\n beforeUnmount() {\n document.removeEventListener('click', this.handleDocumentClick);\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./DashboardTabs.vue?vue&type=template&id=07e603fa&scoped=true\"\nimport script from \"./DashboardTabs.vue?vue&type=script&lang=js\"\nexport * from \"./DashboardTabs.vue?vue&type=script&lang=js\"\n\nimport \"./DashboardTabs.vue?vue&type=style&index=0&id=07e603fa&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-07e603fa\"]])\n\nexport default __exports__"],"names":["isRedirecting","async","fetchWithAuth","url","options","credentials","headers","response","fetch","status","store","commit","router","push","finally","_hoisted_1","id","_hoisted_2","_hoisted_3","_hoisted_4","render","_ctx","_cache","$props","$setup","$data","$options","_component_font_awesome_icon","onClick","args","handleToggleClick","name","mode","default","isAuto","key","icon","class","style","isDark","width","height","viewBox","fill","stroke","x","y","cx","cy","r","mask","opacity","x1","y1","x2","y2","_","data","this","$store","getters","useDarkMode","cusDarkMode","methods","__exports__","_hoisted_5","_component_AdminToggleDark","_component_LanguageSwitcher","isPageMenuOpen","role","onPointerdown","onMouseenter","handlePageSwitcherEnter","onMouseleave","handlePageSwitcherLeave","type","$event","handlePageOptionClick","activePageOption","$t","label","clearHoveredPageOption","hoveredPageOptionIndex","inactivePageOptions","option","index","setHoveredPageOption","props","activeTab","String","components","AdminToggleDark","LanguageSwitcher","computed","pageOptions","find","filter","handleDocumentClick","event","$el","contains","target","closePageMenu","refreshDashboard","location","reload","handleTabClick","tab","$router","isTouchViewport","window","matchMedia","matches","togglePageMenu","openPageMenu","mounted","document","addEventListener","beforeUnmount","removeEventListener"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/frontend-dist/js/22.f752503c.js.map.gz b/frontend-dist/js/22.f752503c.js.map.gz new file mode 100644 index 0000000000000000000000000000000000000000..60a314d352777fe47efa8c96dcdef6fa4333997b GIT binary patch literal 6346 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 M4-Oo*BV|+o0N2x5`~Uy| literal 0 HcmV?d00001 diff --git a/frontend-dist/js/227.8094852b.js b/frontend-dist/js/227.44709224.js similarity index 97% rename from frontend-dist/js/227.8094852b.js rename to frontend-dist/js/227.44709224.js index b43d5b09..4b24453c 100644 --- a/frontend-dist/js/227.8094852b.js +++ b/frontend-dist/js/227.44709224.js @@ -1,2 +1,2 @@ "use strict";(self["webpackChunksanyue_imghub"]=self["webpackChunksanyue_imghub"]||[]).push([[227],{16556:function(e,s,i){i.r(s),i.d(s,{default:function(){return h}});var t=i(48283),n=i(56768);function o(e,s,i,o,r,a){const l=t.A;return(0,n.uX)(),(0,n.Wv)(l,{title:e.$t("login.adminTitle"),fields:r.loginFields,"submit-text":e.$t("login.submit"),"background-key":"adminLoginBkImg","is-admin":!0,loading:r.isLoading,onSubmit:a.handleLogin},null,8,["title","fields","submit-text","loading","onSubmit"])}i(44114);var r=i(457),a={data(){return{isLoading:!1,loginFields:[]}},components:{BaseLogin:t.A},created(){this.updateLoginFields()},watch:{"$i18n.locale"(){this.updateLoginFields()}},methods:{updateLoginFields(){this.loginFields=[{key:"username",label:this.$t("login.username"),placeholder:this.$t("login.usernamePlaceholder"),type:"text",icon:"User"},{key:"password",label:this.$t("login.password"),placeholder:this.$t("login.adminPasswordPlaceholder"),type:"password",showPassword:!0,icon:"Lock"}]},async handleLogin(e){const{username:s,password:i}=e;this.isLoading=!0;const t=new Promise(e=>setTimeout(e,1e3)),n=r.A.post("/api/auth/adminLogin",{username:s,password:i},{withCredentials:!0}).then(e=>({response:e})).catch(e=>({error:e}));try{const[e]=await Promise.all([n,t]);if(e.response&&200===e.response.status)this.$store.commit("setAdminLoggedIn",!0),this.$router.push("/dashboard");else{const s=e.error||new Error("Unknown error");this.isLoading=!1,s.response&&401===s.response.status?this.$message.error(this.$t("login.adminFailed")):this.$message.error(this.$t("login.serverError"))}}catch(o){this.isLoading=!1,this.$message.error(this.$t("login.systemError"))}}}},l=i(71241);const d=(0,l.A)(a,[["render",o]]);var h=d}}]); -//# sourceMappingURL=227.8094852b.js.map \ No newline at end of file +//# sourceMappingURL=227.44709224.js.map \ No newline at end of file diff --git a/frontend-dist/js/227.44709224.js.gz b/frontend-dist/js/227.44709224.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..5b1a9a3355a999b27047359d5eeb7d66c5d22271 GIT binary patch literal 897 zcmV-{1AhD;iwFP!000023XN24Z`(Ey{=Q$~a794^7y6}6oXOCJv}l0>84zp@Ho!0j zTDn-ADN^83aScWPeURvvWJ|h!BYDp~_uLyG=A*-4SzF15qvn4d+%ZrQ4zX79q zRqAja@M~bte4~L0U@Mhv*51`NKi}YvC9J2t=}_-CpUX7^rs=$YWXahGj8nO`>%>b< zH}MS4{@(K?N*2oI27C7wY;6o&!GiVT8L+65Jr@RS&&hxtnAlRZnop&Y}&JH18EfWl50NEo2^5z?_RF6q;mRcA1k_)c^y>gBbp90ksXs?tMMhhliz0S2$cg=VWm@xfz` zHfUuiIUBV?h5~IDiZ>pqa+WZ`RtTAOgA@(uz4QI+JosHqZh^~GZIuoOxl$R!7Z$=& z%=JA-d7yjyb}|~JX?l8*6jZ25#GX)a9%bgrQU}fm!}UIwHRhi!gR_xjVIHw z*pFGB@(~z$Ex3Zkf_b#vXe7>?FIk setTimeout(resolve, 1000));\n // Request promise handling its own error to return it\n const loginPromise = axios.post('/api/auth/adminLogin', {\n username,\n password\n }, {\n withCredentials: true\n }).then(response => ({\n response\n })).catch(error => ({\n error\n }));\n try {\n const [result] = await Promise.all([loginPromise, minDelayPromise]);\n if (result.response && result.response.status === 200) {\n // 认证成功,标记已登录状态(不再存储密码)\n // 会话 Token 已通过 HttpOnly Cookie 由后端设置\n this.$store.commit('setAdminLoggedIn', true);\n this.$router.push('/dashboard');\n } else {\n const error = result.error || new Error('Unknown error');\n this.isLoading = false;\n if (error.response && error.response.status === 401) {\n this.$message.error(this.$t('login.adminFailed'));\n } else {\n this.$message.error(this.$t('login.serverError'));\n }\n }\n } catch (error) {\n // Should not reach here due to inner catch, but just in case\n this.isLoading = false;\n this.$message.error(this.$t('login.systemError'));\n }\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./AdminLogin.vue?vue&type=template&id=67ae5225\"\nimport script from \"./AdminLogin.vue?vue&type=script&lang=js\"\nexport * from \"./AdminLogin.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["render","_ctx","_cache","$props","$setup","$data","$options","_component_BaseLogin","title","$t","fields","loginFields","loading","isLoading","onSubmit","handleLogin","data","components","BaseLogin","created","this","updateLoginFields","watch","methods","key","label","placeholder","type","icon","showPassword","formData","username","password","minDelayPromise","Promise","resolve","setTimeout","loginPromise","axios","post","withCredentials","then","response","catch","error","result","all","status","$store","commit","$router","push","Error","$message","__exports__"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/227.44709224.js","mappings":"iMACO,SAASA,EAAOC,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,GAC1D,MAAMC,EAAuB,IAC7B,OAAO,WAAc,QAAaA,EAAsB,CACtDC,MAAOP,EAAKQ,GAAG,oBACfC,OAAQL,EAAMM,YACd,cAAeV,EAAKQ,GAAG,gBACvB,iBAAkB,kBAClB,YAAY,EACZG,QAASP,EAAMQ,UACfC,SAAUR,EAASS,aAClB,KAAM,EAAG,CAAC,QAAS,SAAU,cAAe,UAAW,YAC5D,C,sBCTA,GACE,IAAAC,GACE,MAAO,CACLH,WAAW,EACXF,YAAa,GAEjB,EACAM,WAAY,CACVC,UAAS,KAEX,OAAAC,GACEC,KAAKC,mBACP,EACAC,MAAO,CACL,iBACEF,KAAKC,mBACP,GAEFE,QAAS,CACP,iBAAAF,GACED,KAAKT,YAAc,CAAC,CAClBa,IAAK,WACLC,MAAOL,KAAKX,GAAG,kBACfiB,YAAaN,KAAKX,GAAG,6BACrBkB,KAAM,OACNC,KAAM,QACL,CACDJ,IAAK,WACLC,MAAOL,KAAKX,GAAG,kBACfiB,YAAaN,KAAKX,GAAG,kCACrBkB,KAAM,WACNE,cAAc,EACdD,KAAM,QAEV,EACA,iBAAMb,CAAYe,GAChB,MAAM,SACJC,EAAQ,SACRC,GACEF,EACJV,KAAKP,WAAY,EAGjB,MAAMoB,EAAkB,IAAIC,QAAQC,GAAWC,WAAWD,EAAS,MAE7DE,EAAeC,EAAA,EAAMC,KAAK,uBAAwB,CACtDR,WACAC,YACC,CACDQ,iBAAiB,IAChBC,KAAKC,IAAY,CAClBA,cACEC,MAAMC,IAAS,CACjBA,WAEF,IACE,MAAOC,SAAgBX,QAAQY,IAAI,CAACT,EAAcJ,IAClD,GAAIY,EAAOH,UAAuC,MAA3BG,EAAOH,SAASK,OAGrC3B,KAAK4B,OAAOC,OAAO,oBAAoB,GACvC7B,KAAK8B,QAAQC,KAAK,kBACb,CACL,MAAMP,EAAQC,EAAOD,OAAS,IAAIQ,MAAM,iBACxChC,KAAKP,WAAY,EACb+B,EAAMF,UAAsC,MAA1BE,EAAMF,SAASK,OACnC3B,KAAKiC,SAAST,MAAMxB,KAAKX,GAAG,sBAE5BW,KAAKiC,SAAST,MAAMxB,KAAKX,GAAG,qBAEhC,CACF,CAAE,MAAOmC,GAEPxB,KAAKP,WAAY,EACjBO,KAAKiC,SAAST,MAAMxB,KAAKX,GAAG,qBAC9B,CACF,I,WC1EJ,MAAM6C,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAAStD,KAEpE,O","sources":["webpack://sanyue_imghub/./src/views/AdminLogin.vue?ca55","webpack://sanyue_imghub/./src/views/AdminLogin.vue","webpack://sanyue_imghub/./src/views/AdminLogin.vue?06e1"],"sourcesContent":["import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock } from \"vue\";\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_BaseLogin = _resolveComponent(\"BaseLogin\");\n return _openBlock(), _createBlock(_component_BaseLogin, {\n title: _ctx.$t('login.adminTitle'),\n fields: $data.loginFields,\n \"submit-text\": _ctx.$t('login.submit'),\n \"background-key\": \"adminLoginBkImg\",\n \"is-admin\": true,\n loading: $data.isLoading,\n onSubmit: $options.handleLogin\n }, null, 8, [\"title\", \"fields\", \"submit-text\", \"loading\", \"onSubmit\"]);\n}","import \"core-js/modules/es.array.push.js\";\nimport BaseLogin from '@/components/BaseLogin.vue';\nimport axios from '@/utils/axios';\nexport default {\n data() {\n return {\n isLoading: false,\n loginFields: []\n };\n },\n components: {\n BaseLogin\n },\n created() {\n this.updateLoginFields();\n },\n watch: {\n '$i18n.locale'() {\n this.updateLoginFields();\n }\n },\n methods: {\n updateLoginFields() {\n this.loginFields = [{\n key: 'username',\n label: this.$t('login.username'),\n placeholder: this.$t('login.usernamePlaceholder'),\n type: 'text',\n icon: 'User'\n }, {\n key: 'password',\n label: this.$t('login.password'),\n placeholder: this.$t('login.adminPasswordPlaceholder'),\n type: 'password',\n showPassword: true,\n icon: 'Lock'\n }];\n },\n async handleLogin(formData) {\n const {\n username,\n password\n } = formData;\n this.isLoading = true;\n\n // Min delay promise\n const minDelayPromise = new Promise(resolve => setTimeout(resolve, 1000));\n // Request promise handling its own error to return it\n const loginPromise = axios.post('/api/auth/adminLogin', {\n username,\n password\n }, {\n withCredentials: true\n }).then(response => ({\n response\n })).catch(error => ({\n error\n }));\n try {\n const [result] = await Promise.all([loginPromise, minDelayPromise]);\n if (result.response && result.response.status === 200) {\n // 认证成功,标记已登录状态(不再存储密码)\n // 会话 Token 已通过 HttpOnly Cookie 由后端设置\n this.$store.commit('setAdminLoggedIn', true);\n this.$router.push('/dashboard');\n } else {\n const error = result.error || new Error('Unknown error');\n this.isLoading = false;\n if (error.response && error.response.status === 401) {\n this.$message.error(this.$t('login.adminFailed'));\n } else {\n this.$message.error(this.$t('login.serverError'));\n }\n }\n } catch (error) {\n // Should not reach here due to inner catch, but just in case\n this.isLoading = false;\n this.$message.error(this.$t('login.systemError'));\n }\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./AdminLogin.vue?vue&type=template&id=67ae5225\"\nimport script from \"./AdminLogin.vue?vue&type=script&lang=js\"\nexport * from \"./AdminLogin.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["render","_ctx","_cache","$props","$setup","$data","$options","_component_BaseLogin","title","$t","fields","loginFields","loading","isLoading","onSubmit","handleLogin","data","components","BaseLogin","created","this","updateLoginFields","watch","methods","key","label","placeholder","type","icon","showPassword","formData","username","password","minDelayPromise","Promise","resolve","setTimeout","loginPromise","axios","post","withCredentials","then","response","catch","error","result","all","status","$store","commit","$router","push","Error","$message","__exports__"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/frontend-dist/js/227.44709224.js.map.gz b/frontend-dist/js/227.44709224.js.map.gz new file mode 100644 index 0000000000000000000000000000000000000000..a9f1aad850e0b1e6bcf38aae5d19514aaa077cd0 GIT binary patch literal 2458 zcmV;L31#*liwFP!000023Y}P8ZydK3{VN1(cz0cTM^gNetguZvvm;rS6iJqBS=9;) zYKGb!?JPMNawH3hfTRye8Z<>7TA&S3G!K0!P}FYo&=jcC{+Y;jpYj)qOU~D>T-f!C zG(+Bdc<#BEoXhhrQ4MFlx}$NcisHmy7YI$Bg@pA?~(PwCUeOO^=`XlgVGJMOKCv1C}jpq zxx}NM?s;Iou?a(~TV$EiWg=bb9eLoiwPqGvCwtTjNkA!oP&XX9)H`uWH5f)yREHcVY3H zJ>n7NdOH+i^vMbZWAg~~A(XW{5aBK?{cs6bFtSYjV;2VKI?U~X*#i$ix5+B?A3}&Z zj0Z$kJu-2rw`p9w3K=5w{G}hW}YMA)e4)ZH0MWg;2gFzQ%=Wtjg_RlH zx7_7?2=?wO*`Uj*_m)w5^@iP!p52tvrBu2g+6in_FnHU|H8G(=`VMUs0^!Zte(wRq zwjs7Xs>-1*7QDwN;pJIBL-} z6tbWAWCIhdWR?b8;m$rj<%bCi#vR8|Oq^wW5KV@o?9gdDDh-^Ih@UElhLcFF$zdeg zCmDY?U^j1K@&=x7`Ek2JAO46PbnhOowqe&uDjXpprS28}~o}467aG?=XXfQiS zkW9F6V;PLieECLDkaDJZHC2BR}|M-LeQ0vX-3c$nShUKp%3~3p+E|y(I6-&4qT?Vi5zt=2hi-} za=wpSi-3@Fou#4{OtVF%_%~mMPVDjs=}5=CgMfScif%SyqdJ2G?7&o`MXcdb#N$wP zY#eQ4wq%C#`948PY@1~}rS9z!6JeZ7C=fa)NMvzL(Axy<_pyRYO^$DXYC|YqxP{f z1(jP@xi7tY#2!Ubl@6JXV&#~zMpdaHKVn&|ZO%ccW~<15UOxF7 zLZyNobi`s+=nP7i8SkL|13P@aXf?E@TyX6aa89ASZO!?}wgm+K_inG3Y6iCrQjr)qH zjbikipi9gXrqroS!&fseEnkVq-AjqM0%Q!$zw&v94zfbD&1^2EQuVJ>5)^N+70sm$~fh4 z8tIXj@{kK1u~^xZm!_?@9&rKTCQ>M)LbK*vj92!pb^s?w(*`+XZU$?%RT9&)Iwz~c ze#%uA>jTi>ltsEoNt?xSbHA<pL)KKt_G^FRFX^q0@R{`AG;zg~R%&GX;=^WwYTJpcUf&p!J2ho_%? z|Bo*&KKbI}FTcI``JXPHeDeJ3kAHajiy5fzpMLe?$?wsQ9CLv#zWwGuAAR-W-=Cs8 zS|=MKK0}_AIu6sH$RiGBGL(0iVe9X*?ieqxx}KFhmF=W$(Kd{ zT9}HbCp`6S+%uRpajP@U?3X;;sURE&ZI5IYhe$|`QqF=A8u65)FynB1L_+Y?x)XGm zX>^<^jUs^pR_(~wko$FlI#ZfYE(LX7|H${n`64FRxrQ>4#Mv+s*H1Ejy=qZV7%6rb z^AKHgYL^J;Li)cl4r zuv2Of1nuuPte_2I{~sK*faFY1T0@3A9(*s%wbc4x zg5e%v{=vNp6KpS5@L+CM@Bl3>{Lg!QV}1F~gNbeL!BS(AH~5&~T5o6GOmRXJUlb}P zWsi>uu5}Zb;C$_>v@pT-CG&HAxUv-ju*f`S%w9DubEN6DGKN%3BFQE&Gc?pvua00RSo$%+7qZO{82{ zG;=zF3VDELN870^24@ySeD?S>Ifc)N)zhk-e;;7EOaX+SLlmb3WP7@XqM?u}UyBs{ YMo|84a8F8&I~bq;7voju_kb1v0C5(?L;wH) literal 0 HcmV?d00001 diff --git a/frontend-dist/js/227.8094852b.js.gz b/frontend-dist/js/227.8094852b.js.gz deleted file mode 100644 index 45146e33509e0a4ddd3c6137bafc37d2b723ea1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 898 zcmV-|1AY7-iwFP!000023XN24Z`(Ey{=Q$~a794^7y6}6?8(rEv}l0>84zp@Ho!0j zTDn-ADN^83aScWPeUNC!$(D5eM)IC}?zuOzns7kD>nyMZCp33Uw!?L$vh9bWwp&tm zU*li8+!Xbit@ z@@f&8_z0}5{}fz6fBfTKa05-y!C->&P2kM9jkZ$drM6$XXC~lIqsb}pvbTNeZ@{Qt zmpYsW{2JIZ-)LY0*ji=Vjd!)p&$qZ|3F~REJJkE_=W@e7BY`2V9rGo3Qe-EauuRI z5^&MNPKB&U8umty=T;h*DTC}=9xap@3YSyTykL%gPei86W{dlT)r8)v5*Zk^Mw9fo zQ@b9`0xF|2ES$;FzlORwL70HBuP|Y;(mHcCVYh^ywGbm$ifHG2{z~LW^EV^+<8gC< zz7+lxg$lPjBD;BtlCE90W$mg3MSGhKo=g$P!;&<|^b&$2U836*7rmIrF-Xrwi?~%G zwYVGHcvosdj_J>Y;fpTO)qx|7@tx>a)XOVbISQN&Ri%fj4#n`a0}Nh?3(Zc4;)BN= zZP3b4ayDv(3tq?Nn1}PfQd*}PtMezHW+!9x*+9@55a-}kcFD-pNUeGz2Jw3u9zRYBWJgEYu(NcdJ7Z(>A)E1iQwsIoTe%LTktPY zMu|jfbBMxU8mv!B8_byy$#-}V`g`;rqcG97vGDG&de1a|58IvsmM6Bh1(Rw%8&9TV zaTv2abj{|bG&+u1ORoZTDf4fd6lbM{4 YewxlNCTsaO$x>DS03y33`|Sn*01h~@`v3p{ diff --git a/frontend-dist/js/227.8094852b.js.map.gz b/frontend-dist/js/227.8094852b.js.map.gz deleted file mode 100644 index c813c852095d33f508e0588991c2ca9526e9fc33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2458 zcmV;L31#*liwFP!000023Y}P8ZydK3{VN1(cz0cTN0KeuSz()UW>>N-$&xJDvZ@sp z)C{#d+F5ck+rh=@unjO4mL3yJr4wUiiE2ktOQQcF0<8le%P?dN*CNPU$+?q0}dvlrn>* zT;fqrcRVm(-+-Z&O|nGk5|J+T4n1(%Tr~@>kzMKq#HW-$s2UDj>K(fzbSWLVWaLsW za>*{GyQE9KpDn>+TLyV;liW9$Ta@0v2P0csgcH5f)yREHcVO}P z4)KU`y=@9HcF8gYWAg~~A(YkI5aA9i{csUjFtS9uM=lJ|HJIB4vj-l4Zjlw*eF!0D zFdh(D@yOVv-iC4UN@R%8>n={1EYa>_*V6Ui9Ymmu2CHKXw}FFiqw*kB2CP@e4)s%e_z815RjCY#&9#0Sy6r~|~8cg^;@4TY5& z+-vSqHUxWjg{;%1#JgscUb$|!qh~jzbSafCh;|Gc6%1~Qh4v+$42tCMPR55!&$eR4do0ykuwZU@CiSNnLlbdj$-08<^6Cx7^VkK(@}}<9EbcwIW!oDVpR@8 z(L7H1hd!I1$K*Xc-^=O4nHzi-?-!&!DKr-vxQF9dCK^3P30E>Y=AInKQgERWQ>Z^Z zNRW)Va3krD%zW`ike_g-c{x>mKSPI!9HSmSPI(V6^aOuoRy|CGuR|$N!bQN7df(TN z2)1tX5WPzz!Zm55`mhcYOMzQJhGC^Lh*YH_=c-d6K(NZ2L-ltI{8p@$Kii&J3A4 z6+Wu$`TC(u#vP_vCBgO(t_YJWUJWy&QLKd8D2G~@sFY#{p|+vC&=dK*<7>A+*vm162wUOW_D0{1C-viYC2~u2dhhr{NosSYUJ2NxWXe?A#yT?CD zxzhPsRtTULYK7#9Ks-rgg0#%fflyEKF?lS>n1iJmOQq{IhsB}8QayCaQ@cj~Ul}JH zPC`BO5*~1&Ll!BU^1`&y)I%;H+*k@_RH#>+^YPNY(e&ZusM{c?%*|lMwoGDjTIFPQ z*h{!dBfSqAoUl;mDQU7Os_#`*BGWnCFQE|%4^iDhHH$bdUq(|yO{JMm6>7KJXl`bv zQRQRu`s(Q)Up;&B;`6W0zxc!J=f8aM&1bKk{`LI3Z(siIpXcBI=H(ZEfAPta*Uvxy z;U8a~fBNP5Uw(W3^FN(G`}E~EPhLO&#T3*J&%b{4?DuF}j<`VQ-+lX^PriQj@6XU} zt>bkOogz=lQOMEDU;pj=t6#nR^Rrh^|Ml|wr&SQU>6MlVZ~AgP4t2ezxXzon0S}g; zFd&yzDRRd|rkW?_dsweI0aL>R$>5Nw*q$LCDLyHKO-z>CTtWN#@yBM{bm665yDvtf zsP)<#C{%Z>`RGlUK+25kM8+mZstLP3Gdq>AJkl{&iVe6WS%1@6xyZtZ2erl|$u~v+ zPMC@($2{rUxTi2H;+AKc*)LhR6G1o*+8W9<3XqT*C7k&~G~@|KLCWFy2!-H@btmW` z)#xZy8ifM+tlW|BAosfjb*eNUUkK`~`jPL6vjt4Ba|NX$j?zIWt{$iSYT2ToAXMxi z;sLtiR4x(F$Cv$nbNV83obt=?xoT@Zjw7b|{LgxPV}0??gNbeL!BS(AHTam|N^fW0OmRXJpBE}7 zMURgOu5=Ta;B4)(v@pTdC9{SX79WN%d7;;YOEGL5_`%cmrI_FmKLsw(hhc&%O%?#1 z#t;NFKya0>G)WLu)|9|X+4mO!N`tA-6DGKP%329PE&7XGpwh~80RSo$%uao^O{82{ zG;=zF3R!?=N87110%sOMeD?S>Ifc)N)zhk-eIH=CQ~^XcgUC+_$o6Cng##fIz8Wg{ YjiC75;GUEkw=h2YFTozn?SK{l03xNr9{>OV diff --git a/frontend-dist/js/278.397ef7d3.js b/frontend-dist/js/278.397ef7d3.js deleted file mode 100644 index fb4c1348..00000000 --- a/frontend-dist/js/278.397ef7d3.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self["webpackChunksanyue_imghub"]=self["webpackChunksanyue_imghub"]||[]).push([[278],{7835:function(e,t,a){e.exports=a.p+"img/background-light.f17603bc.jpg"},10732:function(e,t,a){e.exports=a.p+"img/background.ea1b7ee7.jpg"},18278:function(e,t,a){a.r(t),a.d(t,{default:function(){return x}});var n=a(80047),s=(a(85331),a(99648),a(56768)),i=a(24232);const o={class:"whitelist-container"},r=["innerHTML"],l={class:"whitelist-content"},c={class:"back-button-wrapper"},d={class:"status-animation"},u={class:"status-icon"},g={class:"status-badge"},m={class:"status-info"},h={class:"status-title"},p={class:"status-description"},k={class:"status-actions"},b={class:"help-info"},y={class:"help-text"},f={class:"quick-links"};function I(e,t,a,I,v,B){const w=(0,s.g2)("font-awesome-icon"),C=n.S2;return(0,s.uX)(),(0,s.CE)("div",o,[(0,s.Lk)("div",{class:"background-wrapper",innerHTML:e.backgroundImagesTemplate},null,8,r),(0,s.Lk)("div",l,[(0,s.Lk)("div",c,[(0,s.bF)(C,{class:"back-button",onClick:B.goHome,circle:"",size:"large"},{default:(0,s.k6)(()=>[(0,s.bF)(w,{icon:"home"})]),_:1},8,["onClick"])]),(0,s.Lk)("div",d,[(0,s.Lk)("div",u,[(0,s.bF)(w,{icon:"shield-alt",class:"shield-icon"}),(0,s.Lk)("div",g,[(0,s.bF)(w,{icon:"clock",class:"clock-icon"})])])]),(0,s.Lk)("div",m,[(0,s.Lk)("h1",h,(0,i.v_)(e.$t("whitelist.title")),1),(0,s.Lk)("p",p,(0,i.v_)(e.$t("whitelist.description")),1),(0,s.Lk)("div",k,[(0,s.bF)(C,{type:"primary",size:"large",class:"action-btn primary-btn",onClick:B.goHome},{default:(0,s.k6)(()=>[(0,s.bF)(w,{icon:"home",class:"btn-icon"}),(0,s.eW)(" "+(0,i.v_)(e.$t("whitelist.goHome")),1)]),_:1},8,["onClick"]),(0,s.bF)(C,{size:"large",class:"action-btn secondary-btn",onClick:B.goBack},{default:(0,s.k6)(()=>[(0,s.bF)(w,{icon:"arrow-left",class:"btn-icon"}),(0,s.eW)(" "+(0,i.v_)(e.$t("whitelist.goBack")),1)]),_:1},8,["onClick"])]),(0,s.Lk)("div",b,[(0,s.Lk)("p",y,(0,i.v_)(e.$t("whitelist.helpText")),1),(0,s.Lk)("div",f,[(0,s.Lk)("a",{href:"javascript:void(0)",onClick:t[0]||(t[0]=(...e)=>B.goHome&&B.goHome(...e)),class:"quick-link"},[(0,s.bF)(w,{icon:"cloud-upload-alt"}),(0,s.eW)(" "+(0,i.v_)(e.$t("whitelist.uploadImage")),1)]),(0,s.Lk)("a",{href:"javascript:void(0)",onClick:t[1]||(t[1]=(...e)=>B.refreshPage&&B.refreshPage(...e)),class:"quick-link"},[(0,s.bF)(w,{icon:"redo"}),(0,s.eW)(" "+(0,i.v_)(e.$t("whitelist.refreshPage")),1)])])]),t[2]||(t[2]=(0,s.Lk)("div",{class:"powered-by"},[(0,s.Lk)("p",null,[(0,s.eW)("Powered By: "),(0,s.Lk)("a",{href:"https://github.com/MarSeventh/CloudFlare-ImgBed",class:"project-link"}," CloudFlare-ImgBed ")])],-1))])]),t[3]||(t[3]=(0,s.Fv)('
',1))])}a(44114);var v=a(74354),B=a(60782),w=a(48903),C={name:"WhiteListOn",mixins:[w.A],computed:{...(0,B.L8)(["useDarkMode","userConfig"])},setup(){(0,v.u)({title:"White List On",meta:[{name:"robots",content:"noindex, nofollow"},{name:"viewport",content:"width=device-width, initial-scale=1"},{charset:"UTF-8"}]})},mounted(){this.initializeBackground("uploadBkImg",".whitelist-container",!1,!0)},beforeUnmount(){this.clearBackgroundInterval()},methods:{goHome(){this.$router.push("/")},goBack(){window.history.length>1?this.$router.go(-1):this.$router.push("/")},refreshPage(){window.location.reload()}}},W=a(71241);const P=(0,W.A)(C,[["render",I],["__scopeId","data-v-0c389049"]]);var x=P},48903:function(e,t,a){var n=a(60782);t.A={data(){return{bingWallPaperIndex:0,customWallPaperIndex:0,backgroundInterval:null,backgroundInitParams:null}},computed:{...(0,n.L8)(["userConfig","bingWallPapers","useDarkMode","wallpaperEnabled"]),bkInterval(){return this.userConfig?.bkInterval||3e3},bkOpacity(){return this.userConfig?.bkOpacity||1},backgroundImagesTemplate(){return'\n Background Image\n Background Image\n '},backgroundImagesStyles(){return"\n .background-image1 {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n z-index: -1;\n pointer-events: none;\n opacity: 0;\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\n transform: scale(1);\n transform-origin: center center;\n will-change: opacity, transform;\n filter: var(--background-image-filter, brightness(1));\n }\n .background-image2 {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n z-index: -1;\n pointer-events: none;\n opacity: 0;\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\n transform: scale(1);\n transform-origin: center center;\n will-change: opacity, transform;\n filter: var(--background-image-filter, brightness(1));\n }\n "}},watch:{useDarkMode(e,t){e!==t&&this.backgroundInitParams&&this.$nextTick(()=>{this.smoothThemeTransition(this.backgroundInitParams.configKey,this.backgroundInitParams.containerSelector,this.backgroundInitParams.useDefaultBackground,this.backgroundInitParams.autoCreateElements)})},wallpaperEnabled(e,t){e!==t&&this.backgroundInitParams&&this.$nextTick(()=>{e?this.reinitializeBackground(this.backgroundInitParams.configKey,this.backgroundInitParams.containerSelector,this.backgroundInitParams.useDefaultBackground,this.backgroundInitParams.autoCreateElements):this.clearBackgroundImages(!0)})}},mounted(){this.injectBackgroundStyles()},beforeUnmount(){this.backgroundInterval&&clearInterval(this.backgroundInterval),this.clearBackgroundImages(!0),this.removeBackgroundStyles()},methods:{injectBackgroundStyles(){const e="background-manager-styles";if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent=this.backgroundImagesStyles,document.head.appendChild(t)}},removeBackgroundStyles(){const e="background-manager-styles",t=document.getElementById(e);t&&t.remove()},createBackgroundElements(e){if(!e)return void console.warn("未提供有效的容器元素");if(document.getElementById("bg1")||document.getElementById("bg2"))return;const t=document.createElement("img");t.id="bg1",t.className="background-image1",t.alt="Background Image";const a=document.createElement("img");a.id="bg2",a.className="background-image2",a.alt="Background Image",e.insertBefore(t,e.firstChild),e.insertBefore(a,e.firstChild)},initializeBackground(e,t=".login",a=!1,n=!1){if(!this.wallpaperEnabled)return void this.clearBackgroundImages(!0);this.backgroundInitParams={configKey:e,containerSelector:t,useDefaultBackground:a,autoCreateElements:n};const s=document.querySelector(t);this.prepareBackgroundContainer(s),n&&(!s||document.getElementById("bg1")&&document.getElementById("bg2")||this.createBackgroundElements(s));const i=document.getElementById("bg1"),o=document.getElementById("bg2");if(!i||!o)return void console.warn("背景图元素 #bg1 或 #bg2 未找到,请确保页面中包含这些元素或启用 autoCreateElements");const r=this.userConfig?.[e];"bing"===r?this.setupBingWallpaper(i,o,t):Array.isArray(r)&&r.length>1?this.setupCustomWallpaperCarousel(i,o,r,t):Array.isArray(r)&&1===r.length?this.setupSingleCustomWallpaper(i,r[0],t):a&&this.setupDefaultWallpaper(i,t)},setupBingWallpaper(e,t,a){this.$store.dispatch("fetchBingWallPapers").then(()=>{0!==this.bingWallPapers.length&&(this.loadBackgroundImage(e,this.bingWallPapers[this.bingWallPaperIndex]?.url,a,!0),this.backgroundInterval=setInterval(()=>{this.switchBingWallpaper(e,t)},this.bkInterval))})},setupCustomWallpaperCarousel(e,t,a,n){this.loadBackgroundImage(e,a[this.customWallPaperIndex],n,!0),this.backgroundInterval=setInterval(()=>{this.switchCustomWallpaper(e,t,a)},this.bkInterval)},setupSingleCustomWallpaper(e,t,a){this.loadBackgroundImage(e,t,a)},setupDefaultWallpaper(e,t){const n=this.useDarkMode,s=a(n?10732:7835);this.loadBackgroundImage(e,s,t)},loadBackgroundImage(e,t,a,n=!1){e.style.zIndex=-1,e.style.opacity=0,this.prepareBackgroundMotion(e,n);const s=document.querySelector(a);this.prepareBackgroundContainer(s);const i=()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{e.style.opacity=this.bkOpacity,n&&(e.style.transform="scale(1.045)")})})},o=new Image;o.onload=()=>{e.src=t,i()},o.onerror=()=>{e.src=t,i()},o.src=t},prepareBackgroundMotion(e,t=!1){if(!e)return;const a=Math.max(this.bkInterval+1200,4200);e.style.transition=t?`opacity 1.2s ease-in-out, filter 0.3s ease, transform ${a}ms ease-out`:"opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease",e.style.transformOrigin="center center",e.style.transform="scale(1)"},prepareBackgroundContainer(e){if(!e)return;const t=window.getComputedStyle(e);"static"===t.position&&(e.style.position="relative"),"auto"===t.zIndex&&(e.style.zIndex="0"),e.style.isolation="isolate"},switchBingWallpaper(e,t){if(0===this.bingWallPapers.length)return;const a=0!=e.style.opacity,n=a?e:t,s=a?t:e;this.bingWallPaperIndex=(this.bingWallPaperIndex+1)%this.bingWallPapers.length;const i=this.bingWallPapers[this.bingWallPaperIndex]?.url;n.style.zIndex=-2,s.style.zIndex=-1,this.prepareBackgroundMotion(s,!0);const o=new Image;o.onload=()=>{s.src=i,setTimeout(()=>{s.style.opacity=this.bkOpacity,s.style.transform="scale(1.045)",setTimeout(()=>{n.style.opacity=0,this.prepareBackgroundMotion(n,!0)},1200)},50)},o.src=i},switchCustomWallpaper(e,t,a){const n=0!=e.style.opacity,s=n?e:t,i=n?t:e;this.customWallPaperIndex=(this.customWallPaperIndex+1)%a.length;const o=a[this.customWallPaperIndex];s.style.zIndex=-2,i.style.zIndex=-1,this.prepareBackgroundMotion(i,!0);const r=new Image;r.onload=()=>{i.src=o,setTimeout(()=>{i.style.opacity=this.bkOpacity,i.style.transform="scale(1.045)",setTimeout(()=>{s.style.opacity=0,this.prepareBackgroundMotion(s,!0)},1200)},50)},r.src=o},clearBackgroundInterval(){this.backgroundInterval&&(clearInterval(this.backgroundInterval),this.backgroundInterval=null)},clearBackgroundImages(e=!1){const t=document.getElementById("bg1"),a=document.getElementById("bg2");e?(t&&(t.style.transition="none",t.style.opacity=0,t.src="",setTimeout(()=>{t&&(t.style.transition="opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease")},50)),a&&(a.style.transition="none",a.style.opacity=0,a.src="",setTimeout(()=>{a&&(a.style.transition="opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease")},50))):(t&&(t.style.opacity=0,setTimeout(()=>{t&&(t.src="")},1200)),a&&(a.style.opacity=0,setTimeout(()=>{a&&(a.src="")},1200)))},smoothThemeTransition(e,t=".login",n=!1,s=!1){const i=this.userConfig?.[e];if(!n||void 0!==i)return void this.reinitializeBackground(e,t,n,s);const o=document.getElementById("bg1"),r=document.getElementById("bg2");if(!o||!r)return void this.reinitializeBackground(e,t,n,s);const l=0!=o.style.opacity?o:r,c=0!=o.style.opacity?r:o,d=this.useDarkMode,u=a(d?10732:7835),g=new Image;g.onload=()=>{c.src=u,c.onload=()=>{l.style.opacity=0,setTimeout(()=>{c.style.opacity=this.bkOpacity},50)}},g.onerror=()=>{console.warn("主题背景图预加载失败,回退到直接切换"),this.reinitializeBackground(e,t,n,s)},g.src=u},reinitializeBackground(e,t=".login",a=!1,n=!1){this.clearBackgroundInterval(),this.clearBackgroundImages(!0),this.bingWallPaperIndex=0,this.customWallPaperIndex=0,setTimeout(()=>{this.initializeBackground(e,t,a,n)},100)}}}}}]); -//# sourceMappingURL=278.397ef7d3.js.map \ No newline at end of file diff --git a/frontend-dist/js/278.397ef7d3.js.gz b/frontend-dist/js/278.397ef7d3.js.gz deleted file mode 100644 index 34a38fcaec5b89f888160d92dd665ac2fd55279a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3572 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 [_createVNode(_component_font_awesome_icon, {\n icon: \"home\"\n })]),\n _: 1\n }, 8, [\"onClick\"])]), _createElementVNode(\"div\", _hoisted_5, [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_font_awesome_icon, {\n icon: \"shield-alt\",\n class: \"shield-icon\"\n }), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_font_awesome_icon, {\n icon: \"clock\",\n class: \"clock-icon\"\n })])])]), _createElementVNode(\"div\", _hoisted_8, [_createElementVNode(\"h1\", _hoisted_9, _toDisplayString(_ctx.$t('whitelist.title')), 1), _createElementVNode(\"p\", _hoisted_10, _toDisplayString(_ctx.$t('whitelist.description')), 1), _createElementVNode(\"div\", _hoisted_11, [_createVNode(_component_el_button, {\n type: \"primary\",\n size: \"large\",\n class: \"action-btn primary-btn\",\n onClick: $options.goHome\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"home\",\n class: \"btn-icon\"\n }), _createTextVNode(\" \" + _toDisplayString(_ctx.$t('whitelist.goHome')), 1)]),\n _: 1\n }, 8, [\"onClick\"]), _createVNode(_component_el_button, {\n size: \"large\",\n class: \"action-btn secondary-btn\",\n onClick: $options.goBack\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"arrow-left\",\n class: \"btn-icon\"\n }), _createTextVNode(\" \" + _toDisplayString(_ctx.$t('whitelist.goBack')), 1)]),\n _: 1\n }, 8, [\"onClick\"])]), _createElementVNode(\"div\", _hoisted_12, [_createElementVNode(\"p\", _hoisted_13, _toDisplayString(_ctx.$t('whitelist.helpText')), 1), _createElementVNode(\"div\", _hoisted_14, [_createElementVNode(\"a\", {\n href: \"javascript:void(0)\",\n onClick: _cache[0] || (_cache[0] = (...args) => $options.goHome && $options.goHome(...args)),\n class: \"quick-link\"\n }, [_createVNode(_component_font_awesome_icon, {\n icon: \"cloud-upload-alt\"\n }), _createTextVNode(\" \" + _toDisplayString(_ctx.$t('whitelist.uploadImage')), 1)]), _createElementVNode(\"a\", {\n href: \"javascript:void(0)\",\n onClick: _cache[1] || (_cache[1] = (...args) => $options.refreshPage && $options.refreshPage(...args)),\n class: \"quick-link\"\n }, [_createVNode(_component_font_awesome_icon, {\n icon: \"redo\"\n }), _createTextVNode(\" \" + _toDisplayString(_ctx.$t('whitelist.refreshPage')), 1)])])]), _cache[2] || (_cache[2] = _createElementVNode(\"div\", {\n class: \"powered-by\"\n }, [_createElementVNode(\"p\", null, [_createTextVNode(\"Powered By: \"), _createElementVNode(\"a\", {\n href: \"https://github.com/MarSeventh/CloudFlare-ImgBed\",\n class: \"project-link\"\n }, \" CloudFlare-ImgBed \")])], -1))])]), _cache[3] || (_cache[3] = _createStaticVNode(\"
\", 1))]);\n}","import \"core-js/modules/es.array.push.js\";\nimport { useHead } from '@vueuse/head';\nimport { mapGetters } from 'vuex';\nimport backgroundManager from '@/mixins/backgroundManager';\nexport default {\n name: 'WhiteListOn',\n mixins: [backgroundManager],\n computed: {\n ...mapGetters(['useDarkMode', 'userConfig'])\n },\n setup() {\n useHead({\n title: 'White List On',\n meta: [{\n name: 'robots',\n content: 'noindex, nofollow'\n }, {\n name: 'viewport',\n content: 'width=device-width, initial-scale=1'\n }, {\n charset: 'UTF-8'\n }]\n });\n },\n mounted() {\n // 初始化背景图\n this.initializeBackground('uploadBkImg', '.whitelist-container', false, true);\n },\n beforeUnmount() {\n // 清理背景轮播定时器\n this.clearBackgroundInterval();\n },\n methods: {\n goHome() {\n this.$router.push('/');\n },\n goBack() {\n if (window.history.length > 1) {\n this.$router.go(-1);\n } else {\n this.$router.push('/');\n }\n },\n refreshPage() {\n window.location.reload();\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./WhiteListOn.vue?vue&type=template&id=0c389049&scoped=true\"\nimport script from \"./WhiteListOn.vue?vue&type=script&lang=js\"\nexport * from \"./WhiteListOn.vue?vue&type=script&lang=js\"\n\nimport \"./WhiteListOn.vue?vue&type=style&index=0&id=0c389049&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0c389049\"]])\n\nexport default __exports__","/**\r\n * 背景图管理 Mixin\r\n * 用于统一管理页面背景图的加载和轮播逻辑\r\n */\r\n\r\nimport { mapGetters } from 'vuex'\r\n\r\nexport default {\r\n data() {\r\n return {\r\n bingWallPaperIndex: 0,\r\n customWallPaperIndex: 0,\r\n backgroundInterval: null, // 存储轮播定时器\r\n // 存储初始化参数,用于主题切换时重新初始化\r\n backgroundInitParams: null,\r\n }\r\n },\r\n computed: {\r\n ...mapGetters(['userConfig', 'bingWallPapers', 'useDarkMode', 'wallpaperEnabled']),\r\n bkInterval() {\r\n return this.userConfig?.bkInterval || 3000\r\n },\r\n bkOpacity() {\r\n return this.userConfig?.bkOpacity || 1\r\n },\r\n // 提供背景图片元素的模板\r\n backgroundImagesTemplate() {\r\n return `\r\n \"Background\r\n \"Background\r\n `\r\n },\r\n // 提供背景图片的CSS样式\r\n backgroundImagesStyles() {\r\n return `\r\n .background-image1 {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n z-index: -1;\r\n pointer-events: none;\r\n opacity: 0;\r\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\r\n transform: scale(1);\r\n transform-origin: center center;\r\n will-change: opacity, transform;\r\n filter: var(--background-image-filter, brightness(1));\r\n }\r\n .background-image2 {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n z-index: -1;\r\n pointer-events: none;\r\n opacity: 0;\r\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\r\n transform: scale(1);\r\n transform-origin: center center;\r\n will-change: opacity, transform;\r\n filter: var(--background-image-filter, brightness(1));\r\n }\r\n `\r\n }\r\n },\r\n\r\n watch: {\r\n // 监听深色模式切换\r\n useDarkMode(newVal, oldVal) {\r\n // 只有在值真正改变且已经初始化过背景时才平滑切换主题\r\n if (newVal !== oldVal && this.backgroundInitParams) {\r\n this.$nextTick(() => {\r\n this.smoothThemeTransition(\r\n this.backgroundInitParams.configKey,\r\n this.backgroundInitParams.containerSelector,\r\n this.backgroundInitParams.useDefaultBackground,\r\n this.backgroundInitParams.autoCreateElements\r\n )\r\n })\r\n }\r\n },\r\n // 监听全局壁纸开关:开/关时重新初始化背景\r\n wallpaperEnabled(newVal, oldVal) {\r\n if (newVal === oldVal || !this.backgroundInitParams) return\r\n this.$nextTick(() => {\r\n if (newVal) {\r\n // 开启:重新初始化背景\r\n this.reinitializeBackground(\r\n this.backgroundInitParams.configKey,\r\n this.backgroundInitParams.containerSelector,\r\n this.backgroundInitParams.useDefaultBackground,\r\n this.backgroundInitParams.autoCreateElements\r\n )\r\n } else {\r\n // 关闭:清理背景\r\n this.clearBackgroundImages(true)\r\n }\r\n })\r\n }\r\n },\r\n\r\n mounted() {\r\n // 动态注入背景图片的CSS样式\r\n this.injectBackgroundStyles()\r\n },\r\n\r\n beforeUnmount() {\r\n // 组件销毁前清除定时器\r\n if (this.backgroundInterval) {\r\n clearInterval(this.backgroundInterval)\r\n }\r\n // 立即清除背景图片,不使用过渡效果\r\n this.clearBackgroundImages(true)\r\n // 移除动态注入的样式\r\n this.removeBackgroundStyles()\r\n },\r\n\r\n methods: {\r\n /**\r\n * 动态注入背景图片样式\r\n */\r\n injectBackgroundStyles() {\r\n const styleId = 'background-manager-styles'\r\n if (!document.getElementById(styleId)) {\r\n const style = document.createElement('style')\r\n style.id = styleId\r\n style.textContent = this.backgroundImagesStyles\r\n document.head.appendChild(style)\r\n }\r\n },\r\n\r\n /**\r\n * 移除动态注入的样式\r\n */\r\n removeBackgroundStyles() {\r\n const styleId = 'background-manager-styles'\r\n const existingStyle = document.getElementById(styleId)\r\n if (existingStyle) {\r\n existingStyle.remove()\r\n }\r\n },\r\n\r\n /**\r\n * 动态创建背景图片元素\r\n * @param {HTMLElement} container - 要插入背景图片的容器元素\r\n */\r\n createBackgroundElements(container) {\r\n if (!container) {\r\n console.warn('未提供有效的容器元素')\r\n return\r\n }\r\n\r\n // 检查是否已经存在背景图片元素\r\n if (document.getElementById('bg1') || document.getElementById('bg2')) {\r\n return\r\n }\r\n\r\n // 创建 bg1 元素\r\n const bg1 = document.createElement('img')\r\n bg1.id = 'bg1'\r\n bg1.className = 'background-image1'\r\n bg1.alt = 'Background Image'\r\n \r\n // 创建 bg2 元素\r\n const bg2 = document.createElement('img')\r\n bg2.id = 'bg2'\r\n bg2.className = 'background-image2'\r\n bg2.alt = 'Background Image'\r\n\r\n // 将元素插入到容器的开头\r\n container.insertBefore(bg1, container.firstChild)\r\n container.insertBefore(bg2, container.firstChild)\r\n },\r\n /**\r\n * 初始化背景图\r\n * @param {string} configKey - 用户配置中的背景图配置键名\r\n * @param {string} containerSelector - 容器选择器,用于设置透明背景\r\n * @param {boolean} useDefaultBackground - 是否使用默认背景图\r\n * @param {boolean} autoCreateElements - 是否自动创建背景元素\r\n */\r\n initializeBackground(configKey, containerSelector = '.login', useDefaultBackground = false, autoCreateElements = false) {\r\n // 如果全局壁纸开关关闭,直接清理背景并返回\r\n if (!this.wallpaperEnabled) {\r\n this.clearBackgroundImages(true);\r\n return;\r\n }\r\n // 保存初始化参数,用于主题切换时重新初始化\r\n this.backgroundInitParams = {\r\n configKey,\r\n containerSelector,\r\n useDefaultBackground,\r\n autoCreateElements\r\n }\r\n\r\n // 如果需要自动创建元素且元素不存在,则创建\r\n const container = document.querySelector(containerSelector)\r\n this.prepareBackgroundContainer(container)\r\n\r\n if (autoCreateElements) {\r\n if (container && (!document.getElementById('bg1') || !document.getElementById('bg2'))) {\r\n this.createBackgroundElements(container)\r\n }\r\n }\r\n\r\n const bg1 = document.getElementById('bg1')\r\n const bg2 = document.getElementById('bg2')\r\n \r\n if (!bg1 || !bg2) {\r\n console.warn('背景图元素 #bg1 或 #bg2 未找到,请确保页面中包含这些元素或启用 autoCreateElements')\r\n return\r\n }\r\n\r\n const backgroundConfig = this.userConfig?.[configKey]\r\n\r\n if (backgroundConfig === 'bing') {\r\n this.setupBingWallpaper(bg1, bg2, containerSelector)\r\n } else if (Array.isArray(backgroundConfig) && backgroundConfig.length > 1) {\r\n this.setupCustomWallpaperCarousel(bg1, bg2, backgroundConfig, containerSelector)\r\n } else if (Array.isArray(backgroundConfig) && backgroundConfig.length === 1) {\r\n this.setupSingleCustomWallpaper(bg1, backgroundConfig[0], containerSelector)\r\n } else if (useDefaultBackground) {\r\n this.setupDefaultWallpaper(bg1, containerSelector)\r\n }\r\n },\r\n\r\n /**\r\n * 设置 Bing 壁纸轮播\r\n */\r\n setupBingWallpaper(bg1, bg2, containerSelector) {\r\n this.$store.dispatch('fetchBingWallPapers').then(() => {\r\n if (this.bingWallPapers.length === 0) return\r\n\r\n this.loadBackgroundImage(bg1, this.bingWallPapers[this.bingWallPaperIndex]?.url, containerSelector, true)\r\n \r\n this.backgroundInterval = setInterval(() => {\r\n this.switchBingWallpaper(bg1, bg2)\r\n }, this.bkInterval)\r\n })\r\n },\r\n\r\n /**\r\n * 设置自定义壁纸轮播\r\n */\r\n setupCustomWallpaperCarousel(bg1, bg2, wallpapers, containerSelector) {\r\n this.loadBackgroundImage(bg1, wallpapers[this.customWallPaperIndex], containerSelector, true)\r\n \r\n this.backgroundInterval = setInterval(() => {\r\n this.switchCustomWallpaper(bg1, bg2, wallpapers)\r\n }, this.bkInterval)\r\n },\r\n\r\n /**\r\n * 设置单张自定义壁纸\r\n */\r\n setupSingleCustomWallpaper(bg1, wallpaperUrl, containerSelector) {\r\n this.loadBackgroundImage(bg1, wallpaperUrl, containerSelector)\r\n },\r\n\r\n /**\r\n * 设置默认壁纸\r\n */\r\n setupDefaultWallpaper(bg1, containerSelector) {\r\n // 根据当前深色模式状态选择背景图\r\n const isDark = this.useDarkMode\r\n const defaultImage = isDark \r\n ? require('@/assets/background.jpg') \r\n : require('@/assets/background-light.jpg')\r\n \r\n this.loadBackgroundImage(bg1, defaultImage, containerSelector)\r\n },\r\n\r\n /**\r\n * 加载背景图片\r\n */\r\n loadBackgroundImage(imgElement, imageSrc, containerSelector, enableZoom = false) {\r\n // 确保初始化时层级正确\r\n imgElement.style.zIndex = -1\r\n imgElement.style.opacity = 0\r\n this.prepareBackgroundMotion(imgElement, enableZoom)\r\n const container = document.querySelector(containerSelector)\r\n this.prepareBackgroundContainer(container)\r\n\r\n const showImage = () => {\r\n requestAnimationFrame(() => {\r\n requestAnimationFrame(() => {\r\n imgElement.style.opacity = this.bkOpacity\r\n if (enableZoom) {\r\n imgElement.style.transform = 'scale(1.045)'\r\n }\r\n })\r\n })\r\n }\r\n\r\n const preload = new Image()\r\n preload.onload = () => {\r\n imgElement.src = imageSrc\r\n showImage()\r\n }\r\n preload.onerror = () => {\r\n imgElement.src = imageSrc\r\n showImage()\r\n }\r\n preload.src = imageSrc\r\n },\r\n\r\n prepareBackgroundMotion(imgElement, enableZoom = false) {\r\n if (!imgElement) return\r\n\r\n const zoomDuration = Math.max(this.bkInterval + 1200, 4200)\r\n imgElement.style.transition = enableZoom\r\n ? `opacity 1.2s ease-in-out, filter 0.3s ease, transform ${zoomDuration}ms ease-out`\r\n : 'opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease'\r\n imgElement.style.transformOrigin = 'center center'\r\n imgElement.style.transform = 'scale(1)'\r\n },\r\n \r\n prepareBackgroundContainer(container) {\r\n if (!container) return\r\n\r\n const computedStyle = window.getComputedStyle(container)\r\n if (computedStyle.position === 'static') {\r\n container.style.position = 'relative'\r\n }\r\n\r\n if (computedStyle.zIndex === 'auto') {\r\n container.style.zIndex = '0'\r\n }\r\n\r\n container.style.isolation = 'isolate'\r\n },\r\n\r\n /**\r\n * 切换 Bing 壁纸\r\n */\r\n switchBingWallpaper(bg1, bg2) {\r\n if (this.bingWallPapers.length === 0) return\r\n\r\n const isBg1Current = bg1.style.opacity != 0\r\n const curBg = isBg1Current ? bg1 : bg2\r\n const nextBg = isBg1Current ? bg2 : bg1\r\n \r\n this.bingWallPaperIndex = (this.bingWallPaperIndex + 1) % this.bingWallPapers.length\r\n const nextUrl = this.bingWallPapers[this.bingWallPaperIndex]?.url\r\n\r\n // 【层级魔法】:让旧图垫底,新图置顶\r\n curBg.style.zIndex = -2\r\n nextBg.style.zIndex = -1\r\n this.prepareBackgroundMotion(nextBg, true)\r\n\r\n const preload = new Image()\r\n preload.onload = () => {\r\n nextBg.src = nextUrl\r\n \r\n // 稍微延迟 50ms,确保浏览器把新图渲染到 DOM 上且层级已更新\r\n setTimeout(() => {\r\n nextBg.style.opacity = this.bkOpacity // 新图直接在顶层优雅淡入\r\n nextBg.style.transform = 'scale(1.045)'\r\n \r\n // 等新图 1.2s 完全覆盖后,在底下默默把旧图透明度归零,毫无视觉断层\r\n setTimeout(() => { \r\n curBg.style.opacity = 0 \r\n this.prepareBackgroundMotion(curBg, true)\r\n }, 1200)\r\n }, 50)\r\n }\r\n preload.src = nextUrl\r\n },\r\n\r\n /**\r\n * 切换自定义壁纸\r\n */\r\n switchCustomWallpaper(bg1, bg2, wallpapers) {\r\n const isBg1Current = bg1.style.opacity != 0\r\n const curBg = isBg1Current ? bg1 : bg2\r\n const nextBg = isBg1Current ? bg2 : bg1\r\n \r\n this.customWallPaperIndex = (this.customWallPaperIndex + 1) % wallpapers.length\r\n const nextUrl = wallpapers[this.customWallPaperIndex]\r\n\r\n // 旧图垫底,新图置顶\r\n curBg.style.zIndex = -2\r\n nextBg.style.zIndex = -1\r\n this.prepareBackgroundMotion(nextBg, true)\r\n\r\n const preload = new Image()\r\n preload.onload = () => {\r\n nextBg.src = nextUrl\r\n \r\n setTimeout(() => {\r\n nextBg.style.opacity = this.bkOpacity\r\n nextBg.style.transform = 'scale(1.045)'\r\n \r\n setTimeout(() => { \r\n curBg.style.opacity = 0 \r\n this.prepareBackgroundMotion(curBg, true)\r\n }, 1200)\r\n }, 50)\r\n }\r\n preload.src = nextUrl\r\n },\r\n\r\n /**\r\n * 清除背景轮播定时器\r\n */\r\n clearBackgroundInterval() {\r\n if (this.backgroundInterval) {\r\n clearInterval(this.backgroundInterval)\r\n this.backgroundInterval = null\r\n }\r\n },\r\n\r\n /**\r\n * 清除背景图片显示(带过渡效果)\r\n * @param {boolean} immediate - 是否立即清除,不使用过渡效果\r\n */\r\n clearBackgroundImages(immediate = false) {\r\n const bg1 = document.getElementById('bg1')\r\n const bg2 = document.getElementById('bg2')\r\n \r\n if (immediate) {\r\n // 立即清除,不使用过渡效果\r\n if (bg1) {\r\n bg1.style.transition = 'none'\r\n bg1.style.opacity = 0\r\n bg1.src = ''\r\n // 恢复过渡效果\r\n setTimeout(() => {\r\n if (bg1) bg1.style.transition = 'opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease'\r\n }, 50)\r\n }\r\n if (bg2) {\r\n bg2.style.transition = 'none'\r\n bg2.style.opacity = 0\r\n bg2.src = ''\r\n // 恢复过渡效果\r\n setTimeout(() => {\r\n if (bg2) bg2.style.transition = 'opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease'\r\n }, 50)\r\n }\r\n } else {\r\n // 使用过渡效果淡出\r\n if (bg1) {\r\n bg1.style.opacity = 0\r\n setTimeout(() => {\r\n if (bg1) bg1.src = ''\r\n }, 1200)\r\n }\r\n if (bg2) {\r\n bg2.style.opacity = 0\r\n setTimeout(() => {\r\n if (bg2) bg2.src = ''\r\n }, 1200)\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * 平滑主题切换(用于响应主题模式变化)\r\n * @param {string} configKey - 用户配置中的背景图配置键名\r\n * @param {string} containerSelector - 容器选择器\r\n * @param {boolean} useDefaultBackground - 是否使用默认背景图\r\n * @param {boolean} autoCreateElements - 是否自动创建背景元素\r\n */\r\n smoothThemeTransition(configKey, containerSelector = '.login', useDefaultBackground = false, autoCreateElements = false) {\r\n const backgroundConfig = this.userConfig?.[configKey]\r\n \r\n // 如果不是默认背景配置,则直接重新初始化(自定义背景不受主题影响)\r\n if (!useDefaultBackground || backgroundConfig !== undefined) {\r\n this.reinitializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n return\r\n }\r\n\r\n // 对于默认背景,执行平滑过渡\r\n const bg1 = document.getElementById('bg1')\r\n const bg2 = document.getElementById('bg2')\r\n \r\n if (!bg1 || !bg2) {\r\n // 如果背景元素不存在,直接重新初始化\r\n this.reinitializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n return\r\n }\r\n\r\n // 确定当前显示的背景和下一个背景\r\n const currentBg = bg1.style.opacity != 0 ? bg1 : bg2\r\n const nextBg = bg1.style.opacity != 0 ? bg2 : bg1\r\n\r\n // 获取新主题对应的背景图\r\n const isDark = this.useDarkMode\r\n const newThemeImage = isDark \r\n ? require('@/assets/background.jpg') \r\n : require('@/assets/background-light.jpg')\r\n\r\n // 预加载新背景图\r\n const preloadImg = new Image()\r\n preloadImg.onload = () => {\r\n // 设置下一个背景的图片源\r\n nextBg.src = newThemeImage\r\n \r\n // 等待图片加载完成后执行淡入淡出过渡\r\n nextBg.onload = () => {\r\n // 淡出当前背景\r\n currentBg.style.opacity = 0\r\n \r\n // 稍微延迟后淡入新背景,确保过渡效果平滑\r\n setTimeout(() => {\r\n nextBg.style.opacity = this.bkOpacity\r\n }, 50) // 50ms 延迟,让淡出效果先开始\r\n }\r\n }\r\n \r\n preloadImg.onerror = () => {\r\n // 如果预加载失败,回退到直接重新初始化\r\n console.warn('主题背景图预加载失败,回退到直接切换')\r\n this.reinitializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n }\r\n \r\n preloadImg.src = newThemeImage\r\n },\r\n\r\n /**\r\n * 重新初始化背景图(用于响应配置变化)\r\n */\r\n reinitializeBackground(configKey, containerSelector = '.login', useDefaultBackground = false, autoCreateElements = false) {\r\n this.clearBackgroundInterval()\r\n this.clearBackgroundImages(true) // 使用立即清除\r\n this.bingWallPaperIndex = 0\r\n this.customWallPaperIndex = 0\r\n \r\n // 延迟一小段时间确保清理完成\r\n setTimeout(() => {\r\n this.initializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n }, 100)\r\n }\r\n }\r\n}\r\n"],"names":["_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","render","_ctx","_cache","$props","$setup","$data","$options","_component_font_awesome_icon","_component_el_button","innerHTML","backgroundImagesTemplate","onClick","goHome","circle","size","default","icon","_","$t","type","goBack","href","args","refreshPage","name","mixins","backgroundManager","computed","setup","u","title","meta","content","charset","mounted","this","initializeBackground","beforeUnmount","clearBackgroundInterval","methods","$router","push","window","history","length","go","location","reload","__exports__","data","bingWallPaperIndex","customWallPaperIndex","backgroundInterval","backgroundInitParams","mapGetters","bkInterval","userConfig","bkOpacity","backgroundImagesStyles","watch","useDarkMode","newVal","oldVal","$nextTick","smoothThemeTransition","configKey","containerSelector","useDefaultBackground","autoCreateElements","wallpaperEnabled","reinitializeBackground","clearBackgroundImages","injectBackgroundStyles","clearInterval","removeBackgroundStyles","styleId","document","getElementById","style","createElement","id","textContent","head","appendChild","existingStyle","remove","createBackgroundElements","container","console","warn","bg1","className","alt","bg2","insertBefore","firstChild","querySelector","prepareBackgroundContainer","backgroundConfig","setupBingWallpaper","Array","isArray","setupCustomWallpaperCarousel","setupSingleCustomWallpaper","setupDefaultWallpaper","$store","dispatch","then","bingWallPapers","loadBackgroundImage","url","setInterval","switchBingWallpaper","wallpapers","switchCustomWallpaper","wallpaperUrl","isDark","defaultImage","require","imgElement","imageSrc","enableZoom","zIndex","opacity","prepareBackgroundMotion","showImage","requestAnimationFrame","transform","preload","Image","onload","src","onerror","zoomDuration","Math","max","transition","transformOrigin","computedStyle","getComputedStyle","position","isolation","isBg1Current","curBg","nextBg","nextUrl","setTimeout","immediate","undefined","currentBg","newThemeImage","preloadImg"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/frontend-dist/js/278.397ef7d3.js.map.gz b/frontend-dist/js/278.397ef7d3.js.map.gz deleted file mode 100644 index a15018085645818a1fa9763ca8b67b84e53969ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9933 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[(0,s.bF)(w,{icon:"home"})]),_:1},8,["onClick"])]),(0,s.Lk)("div",d,[(0,s.Lk)("div",u,[(0,s.bF)(w,{icon:"shield-alt",class:"shield-icon"}),(0,s.Lk)("div",g,[(0,s.bF)(w,{icon:"clock",class:"clock-icon"})])])]),(0,s.Lk)("div",m,[(0,s.Lk)("h1",h,(0,i.v_)(e.$t("whitelist.title")),1),(0,s.Lk)("p",p,(0,i.v_)(e.$t("whitelist.description")),1),(0,s.Lk)("div",k,[(0,s.bF)(C,{type:"primary",size:"large",class:"action-btn primary-btn",onClick:B.goHome},{default:(0,s.k6)(()=>[(0,s.bF)(w,{icon:"home",class:"btn-icon"}),(0,s.eW)(" "+(0,i.v_)(e.$t("whitelist.goHome")),1)]),_:1},8,["onClick"]),(0,s.bF)(C,{size:"large",class:"action-btn secondary-btn",onClick:B.goBack},{default:(0,s.k6)(()=>[(0,s.bF)(w,{icon:"arrow-left",class:"btn-icon"}),(0,s.eW)(" "+(0,i.v_)(e.$t("whitelist.goBack")),1)]),_:1},8,["onClick"])]),(0,s.Lk)("div",b,[(0,s.Lk)("p",y,(0,i.v_)(e.$t("whitelist.helpText")),1),(0,s.Lk)("div",f,[(0,s.Lk)("a",{href:"javascript:void(0)",onClick:t[0]||(t[0]=(...e)=>B.goHome&&B.goHome(...e)),class:"quick-link"},[(0,s.bF)(w,{icon:"cloud-upload-alt"}),(0,s.eW)(" "+(0,i.v_)(e.$t("whitelist.uploadImage")),1)]),(0,s.Lk)("a",{href:"javascript:void(0)",onClick:t[1]||(t[1]=(...e)=>B.refreshPage&&B.refreshPage(...e)),class:"quick-link"},[(0,s.bF)(w,{icon:"redo"}),(0,s.eW)(" "+(0,i.v_)(e.$t("whitelist.refreshPage")),1)])])]),t[2]||(t[2]=(0,s.Lk)("div",{class:"powered-by"},[(0,s.Lk)("p",null,[(0,s.eW)("Powered By: "),(0,s.Lk)("a",{href:"https://github.com/MarSeventh/CloudFlare-ImgBed",class:"project-link"}," CloudFlare-ImgBed ")])],-1))])]),t[3]||(t[3]=(0,s.Fv)('
',1))])}a(44114);var I=a(74354),B=a(60782),w=a(48903),C={name:"WhiteListOn",mixins:[w.A],computed:{...(0,B.L8)(["useDarkMode","userConfig"])},setup(){(0,I.u)({title:"White List On",meta:[{name:"robots",content:"noindex, nofollow"},{name:"viewport",content:"width=device-width, initial-scale=1"},{charset:"UTF-8"}]})},mounted(){this.initializeBackground("uploadBkImg",".whitelist-container",!1,!0)},beforeUnmount(){this.clearBackgroundInterval()},methods:{goHome(){this.$router.push("/")},goBack(){window.history.length>1?this.$router.go(-1):this.$router.push("/")},refreshPage(){window.location.reload()}}},W=a(71241);const x=(0,W.A)(C,[["render",v],["__scopeId","data-v-0c389049"]]);var P=x},48903:function(e,t,a){var n=a(60782);t.A={data(){return{bingWallPaperIndex:0,customWallPaperIndex:0,backgroundInterval:null,backgroundInitParams:null}},computed:{...(0,n.L8)(["userConfig","bingWallPapers","useDarkMode"]),bkInterval(){return this.userConfig?.bkInterval||3e3},bkOpacity(){return this.userConfig?.bkOpacity||1},backgroundImagesTemplate(){return'\n Background Image\n Background Image\n '},backgroundImagesStyles(){return"\n .background-image1 {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n z-index: -1;\n pointer-events: none;\n opacity: 0;\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\n transform: scale(1);\n transform-origin: center center;\n will-change: opacity, transform;\n filter: var(--background-image-filter, brightness(1));\n }\n .background-image2 {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n z-index: -1;\n pointer-events: none;\n opacity: 0;\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\n transform: scale(1);\n transform-origin: center center;\n will-change: opacity, transform;\n filter: var(--background-image-filter, brightness(1));\n }\n "}},watch:{useDarkMode(e,t){e!==t&&this.backgroundInitParams&&this.$nextTick(()=>{this.smoothThemeTransition(this.backgroundInitParams.configKey,this.backgroundInitParams.containerSelector,this.backgroundInitParams.useDefaultBackground,this.backgroundInitParams.autoCreateElements)})}},mounted(){this.injectBackgroundStyles()},beforeUnmount(){this.backgroundInterval&&clearInterval(this.backgroundInterval),this.clearBackgroundImages(!0),this.removeBackgroundStyles()},methods:{injectBackgroundStyles(){const e="background-manager-styles";if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent=this.backgroundImagesStyles,document.head.appendChild(t)}},removeBackgroundStyles(){const e="background-manager-styles",t=document.getElementById(e);t&&t.remove()},createBackgroundElements(e){if(!e)return void console.warn("未提供有效的容器元素");if(document.getElementById("bg1")||document.getElementById("bg2"))return;const t=document.createElement("img");t.id="bg1",t.className="background-image1",t.alt="Background Image";const a=document.createElement("img");a.id="bg2",a.className="background-image2",a.alt="Background Image",e.insertBefore(t,e.firstChild),e.insertBefore(a,e.firstChild)},initializeBackground(e,t=".login",a=!1,n=!1){if(!1===this.userConfig?.wallpaperEnabled)return void this.clearBackgroundImages(!0);this.backgroundInitParams={configKey:e,containerSelector:t,useDefaultBackground:a,autoCreateElements:n};const s=document.querySelector(t);this.prepareBackgroundContainer(s),n&&(!s||document.getElementById("bg1")&&document.getElementById("bg2")||this.createBackgroundElements(s));const i=document.getElementById("bg1"),o=document.getElementById("bg2");if(!i||!o)return void console.warn("背景图元素 #bg1 或 #bg2 未找到,请确保页面中包含这些元素或启用 autoCreateElements");const r=this.userConfig?.[e];"bing"===r?this.setupBingWallpaper(i,o,t):Array.isArray(r)&&r.length>1?this.setupCustomWallpaperCarousel(i,o,r,t):Array.isArray(r)&&1===r.length?this.setupSingleCustomWallpaper(i,r[0],t):a&&this.setupDefaultWallpaper(i,t)},setupBingWallpaper(e,t,a){this.$store.dispatch("fetchBingWallPapers").then(()=>{0!==this.bingWallPapers.length&&(this.loadBackgroundImage(e,this.bingWallPapers[this.bingWallPaperIndex]?.url,a,!0),this.backgroundInterval=setInterval(()=>{this.switchBingWallpaper(e,t)},this.bkInterval))})},setupCustomWallpaperCarousel(e,t,a,n){this.loadBackgroundImage(e,a[this.customWallPaperIndex],n,!0),this.backgroundInterval=setInterval(()=>{this.switchCustomWallpaper(e,t,a)},this.bkInterval)},setupSingleCustomWallpaper(e,t,a){this.loadBackgroundImage(e,t,a)},setupDefaultWallpaper(e,t){const n=this.useDarkMode,s=a(n?10732:7835);this.loadBackgroundImage(e,s,t)},loadBackgroundImage(e,t,a,n=!1){e.style.zIndex=-1,e.style.opacity=0,this.prepareBackgroundMotion(e,n);const s=document.querySelector(a);this.prepareBackgroundContainer(s);const i=()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{e.style.opacity=this.bkOpacity,n&&(e.style.transform="scale(1.045)")})})},o=new Image;o.onload=()=>{e.src=t,i()},o.onerror=()=>{e.src=t,i()},o.src=t},prepareBackgroundMotion(e,t=!1){if(!e)return;const a=Math.max(this.bkInterval+1200,4200);e.style.transition=t?`opacity 1.2s ease-in-out, filter 0.3s ease, transform ${a}ms ease-out`:"opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease",e.style.transformOrigin="center center",e.style.transform="scale(1)"},prepareBackgroundContainer(e){if(!e)return;const t=window.getComputedStyle(e);"static"===t.position&&(e.style.position="relative"),"auto"===t.zIndex&&(e.style.zIndex="0"),e.style.isolation="isolate"},switchBingWallpaper(e,t){if(0===this.bingWallPapers.length)return;const a=0!=e.style.opacity,n=a?e:t,s=a?t:e;this.bingWallPaperIndex=(this.bingWallPaperIndex+1)%this.bingWallPapers.length;const i=this.bingWallPapers[this.bingWallPaperIndex]?.url;n.style.zIndex=-2,s.style.zIndex=-1,this.prepareBackgroundMotion(s,!0);const o=new Image;o.onload=()=>{s.src=i,setTimeout(()=>{s.style.opacity=this.bkOpacity,s.style.transform="scale(1.045)",setTimeout(()=>{n.style.opacity=0,this.prepareBackgroundMotion(n,!0)},1200)},50)},o.src=i},switchCustomWallpaper(e,t,a){const n=0!=e.style.opacity,s=n?e:t,i=n?t:e;this.customWallPaperIndex=(this.customWallPaperIndex+1)%a.length;const o=a[this.customWallPaperIndex];s.style.zIndex=-2,i.style.zIndex=-1,this.prepareBackgroundMotion(i,!0);const r=new Image;r.onload=()=>{i.src=o,setTimeout(()=>{i.style.opacity=this.bkOpacity,i.style.transform="scale(1.045)",setTimeout(()=>{s.style.opacity=0,this.prepareBackgroundMotion(s,!0)},1200)},50)},r.src=o},clearBackgroundInterval(){this.backgroundInterval&&(clearInterval(this.backgroundInterval),this.backgroundInterval=null)},clearBackgroundImages(e=!1){const t=document.getElementById("bg1"),a=document.getElementById("bg2");e?(t&&(t.style.transition="none",t.style.opacity=0,t.src="",setTimeout(()=>{t&&(t.style.transition="opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease")},50)),a&&(a.style.transition="none",a.style.opacity=0,a.src="",setTimeout(()=>{a&&(a.style.transition="opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease")},50))):(t&&(t.style.opacity=0,setTimeout(()=>{t&&(t.src="")},1200)),a&&(a.style.opacity=0,setTimeout(()=>{a&&(a.src="")},1200)))},smoothThemeTransition(e,t=".login",n=!1,s=!1){const i=this.userConfig?.[e];if(!n||void 0!==i)return void this.reinitializeBackground(e,t,n,s);const o=document.getElementById("bg1"),r=document.getElementById("bg2");if(!o||!r)return void this.reinitializeBackground(e,t,n,s);const l=0!=o.style.opacity?o:r,c=0!=o.style.opacity?r:o,d=this.useDarkMode,u=a(d?10732:7835),g=new Image;g.onload=()=>{c.src=u,c.onload=()=>{l.style.opacity=0,setTimeout(()=>{c.style.opacity=this.bkOpacity},50)}},g.onerror=()=>{console.warn("主题背景图预加载失败,回退到直接切换"),this.reinitializeBackground(e,t,n,s)},g.src=u},reinitializeBackground(e,t=".login",a=!1,n=!1){this.clearBackgroundInterval(),this.clearBackgroundImages(!0),this.bingWallPaperIndex=0,this.customWallPaperIndex=0,setTimeout(()=>{this.initializeBackground(e,t,a,n)},100)}}}}}]); +//# sourceMappingURL=278.66af4a0a.js.map \ No newline at end of file diff --git a/frontend-dist/js/278.66af4a0a.js.gz b/frontend-dist/js/278.66af4a0a.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..950975d3860e1f1d6269cbcc15f36a58ebb1eed2 GIT binary patch literal 3550 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 YZ{q$QZer&H>5TCBPZs@P91$%508cQ<7XSbN literal 0 HcmV?d00001 diff --git a/frontend-dist/js/278.66af4a0a.js.map b/frontend-dist/js/278.66af4a0a.js.map new file mode 100644 index 00000000..fc729148 --- /dev/null +++ b/frontend-dist/js/278.66af4a0a.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/278.66af4a0a.js","mappings":"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","sources":["webpack://sanyue_imghub/./src/views/WhiteListOn.vue?4bb2","webpack://sanyue_imghub/./src/views/WhiteListOn.vue","webpack://sanyue_imghub/./src/views/WhiteListOn.vue?05e5","webpack://sanyue_imghub/./src/mixins/backgroundManager.js"],"sourcesContent":["import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createStaticVNode as _createStaticVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\";\nconst _hoisted_1 = {\n class: \"whitelist-container\"\n};\nconst _hoisted_2 = [\"innerHTML\"];\nconst _hoisted_3 = {\n class: \"whitelist-content\"\n};\nconst _hoisted_4 = {\n class: \"back-button-wrapper\"\n};\nconst _hoisted_5 = {\n class: \"status-animation\"\n};\nconst _hoisted_6 = {\n class: \"status-icon\"\n};\nconst _hoisted_7 = {\n class: \"status-badge\"\n};\nconst _hoisted_8 = {\n class: \"status-info\"\n};\nconst _hoisted_9 = {\n class: \"status-title\"\n};\nconst _hoisted_10 = {\n class: \"status-description\"\n};\nconst _hoisted_11 = {\n class: \"status-actions\"\n};\nconst _hoisted_12 = {\n class: \"help-info\"\n};\nconst _hoisted_13 = {\n class: \"help-text\"\n};\nconst _hoisted_14 = {\n class: \"quick-links\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\");\n const _component_el_button = _resolveComponent(\"el-button\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createElementVNode(\"div\", {\n class: \"background-wrapper\",\n innerHTML: _ctx.backgroundImagesTemplate\n }, null, 8, _hoisted_2), _createElementVNode(\"div\", _hoisted_3, [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_el_button, {\n class: \"back-button\",\n onClick: $options.goHome,\n circle: \"\",\n size: \"large\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"home\"\n })]),\n _: 1\n }, 8, [\"onClick\"])]), _createElementVNode(\"div\", _hoisted_5, [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_font_awesome_icon, {\n icon: \"shield-alt\",\n class: \"shield-icon\"\n }), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_font_awesome_icon, {\n icon: \"clock\",\n class: \"clock-icon\"\n })])])]), _createElementVNode(\"div\", _hoisted_8, [_createElementVNode(\"h1\", _hoisted_9, _toDisplayString(_ctx.$t('whitelist.title')), 1), _createElementVNode(\"p\", _hoisted_10, _toDisplayString(_ctx.$t('whitelist.description')), 1), _createElementVNode(\"div\", _hoisted_11, [_createVNode(_component_el_button, {\n type: \"primary\",\n size: \"large\",\n class: \"action-btn primary-btn\",\n onClick: $options.goHome\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"home\",\n class: \"btn-icon\"\n }), _createTextVNode(\" \" + _toDisplayString(_ctx.$t('whitelist.goHome')), 1)]),\n _: 1\n }, 8, [\"onClick\"]), _createVNode(_component_el_button, {\n size: \"large\",\n class: \"action-btn secondary-btn\",\n onClick: $options.goBack\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"arrow-left\",\n class: \"btn-icon\"\n }), _createTextVNode(\" \" + _toDisplayString(_ctx.$t('whitelist.goBack')), 1)]),\n _: 1\n }, 8, [\"onClick\"])]), _createElementVNode(\"div\", _hoisted_12, [_createElementVNode(\"p\", _hoisted_13, _toDisplayString(_ctx.$t('whitelist.helpText')), 1), _createElementVNode(\"div\", _hoisted_14, [_createElementVNode(\"a\", {\n href: \"javascript:void(0)\",\n onClick: _cache[0] || (_cache[0] = (...args) => $options.goHome && $options.goHome(...args)),\n class: \"quick-link\"\n }, [_createVNode(_component_font_awesome_icon, {\n icon: \"cloud-upload-alt\"\n }), _createTextVNode(\" \" + _toDisplayString(_ctx.$t('whitelist.uploadImage')), 1)]), _createElementVNode(\"a\", {\n href: \"javascript:void(0)\",\n onClick: _cache[1] || (_cache[1] = (...args) => $options.refreshPage && $options.refreshPage(...args)),\n class: \"quick-link\"\n }, [_createVNode(_component_font_awesome_icon, {\n icon: \"redo\"\n }), _createTextVNode(\" \" + _toDisplayString(_ctx.$t('whitelist.refreshPage')), 1)])])]), _cache[2] || (_cache[2] = _createElementVNode(\"div\", {\n class: \"powered-by\"\n }, [_createElementVNode(\"p\", null, [_createTextVNode(\"Powered By: \"), _createElementVNode(\"a\", {\n href: \"https://github.com/MarSeventh/CloudFlare-ImgBed\",\n class: \"project-link\"\n }, \" CloudFlare-ImgBed \")])], -1))])]), _cache[3] || (_cache[3] = _createStaticVNode(\"
\", 1))]);\n}","import \"core-js/modules/es.array.push.js\";\nimport { useHead } from '@vueuse/head';\nimport { mapGetters } from 'vuex';\nimport backgroundManager from '@/mixins/backgroundManager';\nexport default {\n name: 'WhiteListOn',\n mixins: [backgroundManager],\n computed: {\n ...mapGetters(['useDarkMode', 'userConfig'])\n },\n setup() {\n useHead({\n title: 'White List On',\n meta: [{\n name: 'robots',\n content: 'noindex, nofollow'\n }, {\n name: 'viewport',\n content: 'width=device-width, initial-scale=1'\n }, {\n charset: 'UTF-8'\n }]\n });\n },\n mounted() {\n // 初始化背景图\n this.initializeBackground('uploadBkImg', '.whitelist-container', false, true);\n },\n beforeUnmount() {\n // 清理背景轮播定时器\n this.clearBackgroundInterval();\n },\n methods: {\n goHome() {\n this.$router.push('/');\n },\n goBack() {\n if (window.history.length > 1) {\n this.$router.go(-1);\n } else {\n this.$router.push('/');\n }\n },\n refreshPage() {\n window.location.reload();\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./WhiteListOn.vue?vue&type=template&id=0c389049&scoped=true\"\nimport script from \"./WhiteListOn.vue?vue&type=script&lang=js\"\nexport * from \"./WhiteListOn.vue?vue&type=script&lang=js\"\n\nimport \"./WhiteListOn.vue?vue&type=style&index=0&id=0c389049&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0c389049\"]])\n\nexport default __exports__","/**\r\n * 背景图管理 Mixin\r\n * 用于统一管理页面背景图的加载和轮播逻辑\r\n */\r\n\r\nimport { mapGetters } from 'vuex'\r\n\r\nexport default {\r\n data() {\r\n return {\r\n bingWallPaperIndex: 0,\r\n customWallPaperIndex: 0,\r\n backgroundInterval: null, // 存储轮播定时器\r\n // 存储初始化参数,用于主题切换时重新初始化\r\n backgroundInitParams: null,\r\n }\r\n },\r\n computed: {\r\n ...mapGetters(['userConfig', 'bingWallPapers', 'useDarkMode']),\n bkInterval() {\r\n return this.userConfig?.bkInterval || 3000\r\n },\r\n bkOpacity() {\r\n return this.userConfig?.bkOpacity || 1\r\n },\r\n // 提供背景图片元素的模板\r\n backgroundImagesTemplate() {\r\n return `\r\n \"Background\r\n \"Background\r\n `\r\n },\r\n // 提供背景图片的CSS样式\r\n backgroundImagesStyles() {\r\n return `\r\n .background-image1 {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n z-index: -1;\r\n pointer-events: none;\r\n opacity: 0;\r\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\r\n transform: scale(1);\r\n transform-origin: center center;\r\n will-change: opacity, transform;\r\n filter: var(--background-image-filter, brightness(1));\r\n }\r\n .background-image2 {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n z-index: -1;\r\n pointer-events: none;\r\n opacity: 0;\r\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\r\n transform: scale(1);\r\n transform-origin: center center;\r\n will-change: opacity, transform;\r\n filter: var(--background-image-filter, brightness(1));\r\n }\r\n `\r\n }\r\n },\r\n\r\n watch: {\r\n // 监听深色模式切换\r\n useDarkMode(newVal, oldVal) {\r\n // 只有在值真正改变且已经初始化过背景时才平滑切换主题\r\n if (newVal !== oldVal && this.backgroundInitParams) {\r\n this.$nextTick(() => {\r\n this.smoothThemeTransition(\r\n this.backgroundInitParams.configKey,\r\n this.backgroundInitParams.containerSelector,\r\n this.backgroundInitParams.useDefaultBackground,\r\n this.backgroundInitParams.autoCreateElements\r\n )\r\n })\r\n }\r\n }\n },\r\n\r\n mounted() {\r\n // 动态注入背景图片的CSS样式\r\n this.injectBackgroundStyles()\r\n },\r\n\r\n beforeUnmount() {\r\n // 组件销毁前清除定时器\r\n if (this.backgroundInterval) {\r\n clearInterval(this.backgroundInterval)\r\n }\r\n // 立即清除背景图片,不使用过渡效果\r\n this.clearBackgroundImages(true)\r\n // 移除动态注入的样式\r\n this.removeBackgroundStyles()\r\n },\r\n\r\n methods: {\r\n /**\r\n * 动态注入背景图片样式\r\n */\r\n injectBackgroundStyles() {\r\n const styleId = 'background-manager-styles'\r\n if (!document.getElementById(styleId)) {\r\n const style = document.createElement('style')\r\n style.id = styleId\r\n style.textContent = this.backgroundImagesStyles\r\n document.head.appendChild(style)\r\n }\r\n },\r\n\r\n /**\r\n * 移除动态注入的样式\r\n */\r\n removeBackgroundStyles() {\r\n const styleId = 'background-manager-styles'\r\n const existingStyle = document.getElementById(styleId)\r\n if (existingStyle) {\r\n existingStyle.remove()\r\n }\r\n },\r\n\r\n /**\r\n * 动态创建背景图片元素\r\n * @param {HTMLElement} container - 要插入背景图片的容器元素\r\n */\r\n createBackgroundElements(container) {\r\n if (!container) {\r\n console.warn('未提供有效的容器元素')\r\n return\r\n }\r\n\r\n // 检查是否已经存在背景图片元素\r\n if (document.getElementById('bg1') || document.getElementById('bg2')) {\r\n return\r\n }\r\n\r\n // 创建 bg1 元素\r\n const bg1 = document.createElement('img')\r\n bg1.id = 'bg1'\r\n bg1.className = 'background-image1'\r\n bg1.alt = 'Background Image'\r\n \r\n // 创建 bg2 元素\r\n const bg2 = document.createElement('img')\r\n bg2.id = 'bg2'\r\n bg2.className = 'background-image2'\r\n bg2.alt = 'Background Image'\r\n\r\n // 将元素插入到容器的开头\r\n container.insertBefore(bg1, container.firstChild)\r\n container.insertBefore(bg2, container.firstChild)\r\n },\r\n /**\r\n * 初始化背景图\r\n * @param {string} configKey - 用户配置中的背景图配置键名\r\n * @param {string} containerSelector - 容器选择器,用于设置透明背景\r\n * @param {boolean} useDefaultBackground - 是否使用默认背景图\r\n * @param {boolean} autoCreateElements - 是否自动创建背景元素\r\n */\r\n initializeBackground(configKey, containerSelector = '.login', useDefaultBackground = false, autoCreateElements = false) {\n // 如果全局壁纸开关关闭,直接清理背景并返回\n if (this.userConfig?.wallpaperEnabled === false) {\n this.clearBackgroundImages(true);\n return;\n }\n\n // 保存初始化参数,用于主题切换时重新初始化\n this.backgroundInitParams = {\n configKey,\n containerSelector,\n useDefaultBackground,\n autoCreateElements\n }\n\n // 如果需要自动创建元素且元素不存在,则创建\n const container = document.querySelector(containerSelector)\r\n this.prepareBackgroundContainer(container)\r\n\r\n if (autoCreateElements) {\r\n if (container && (!document.getElementById('bg1') || !document.getElementById('bg2'))) {\r\n this.createBackgroundElements(container)\r\n }\r\n }\r\n\r\n const bg1 = document.getElementById('bg1')\r\n const bg2 = document.getElementById('bg2')\r\n \r\n if (!bg1 || !bg2) {\r\n console.warn('背景图元素 #bg1 或 #bg2 未找到,请确保页面中包含这些元素或启用 autoCreateElements')\r\n return\r\n }\r\n\r\n const backgroundConfig = this.userConfig?.[configKey]\r\n\r\n if (backgroundConfig === 'bing') {\r\n this.setupBingWallpaper(bg1, bg2, containerSelector)\r\n } else if (Array.isArray(backgroundConfig) && backgroundConfig.length > 1) {\r\n this.setupCustomWallpaperCarousel(bg1, bg2, backgroundConfig, containerSelector)\r\n } else if (Array.isArray(backgroundConfig) && backgroundConfig.length === 1) {\r\n this.setupSingleCustomWallpaper(bg1, backgroundConfig[0], containerSelector)\r\n } else if (useDefaultBackground) {\r\n this.setupDefaultWallpaper(bg1, containerSelector)\r\n }\r\n },\r\n\r\n /**\r\n * 设置 Bing 壁纸轮播\r\n */\r\n setupBingWallpaper(bg1, bg2, containerSelector) {\r\n this.$store.dispatch('fetchBingWallPapers').then(() => {\r\n if (this.bingWallPapers.length === 0) return\r\n\r\n this.loadBackgroundImage(bg1, this.bingWallPapers[this.bingWallPaperIndex]?.url, containerSelector, true)\r\n \r\n this.backgroundInterval = setInterval(() => {\r\n this.switchBingWallpaper(bg1, bg2)\r\n }, this.bkInterval)\r\n })\r\n },\r\n\r\n /**\r\n * 设置自定义壁纸轮播\r\n */\r\n setupCustomWallpaperCarousel(bg1, bg2, wallpapers, containerSelector) {\r\n this.loadBackgroundImage(bg1, wallpapers[this.customWallPaperIndex], containerSelector, true)\r\n \r\n this.backgroundInterval = setInterval(() => {\r\n this.switchCustomWallpaper(bg1, bg2, wallpapers)\r\n }, this.bkInterval)\r\n },\r\n\r\n /**\r\n * 设置单张自定义壁纸\r\n */\r\n setupSingleCustomWallpaper(bg1, wallpaperUrl, containerSelector) {\r\n this.loadBackgroundImage(bg1, wallpaperUrl, containerSelector)\r\n },\r\n\r\n /**\r\n * 设置默认壁纸\r\n */\r\n setupDefaultWallpaper(bg1, containerSelector) {\r\n // 根据当前深色模式状态选择背景图\r\n const isDark = this.useDarkMode\r\n const defaultImage = isDark \r\n ? require('@/assets/background.jpg') \r\n : require('@/assets/background-light.jpg')\r\n \r\n this.loadBackgroundImage(bg1, defaultImage, containerSelector)\r\n },\r\n\r\n /**\r\n * 加载背景图片\r\n */\r\n loadBackgroundImage(imgElement, imageSrc, containerSelector, enableZoom = false) {\r\n // 确保初始化时层级正确\r\n imgElement.style.zIndex = -1\r\n imgElement.style.opacity = 0\r\n this.prepareBackgroundMotion(imgElement, enableZoom)\r\n const container = document.querySelector(containerSelector)\r\n this.prepareBackgroundContainer(container)\r\n\r\n const showImage = () => {\r\n requestAnimationFrame(() => {\r\n requestAnimationFrame(() => {\r\n imgElement.style.opacity = this.bkOpacity\r\n if (enableZoom) {\r\n imgElement.style.transform = 'scale(1.045)'\r\n }\r\n })\r\n })\r\n }\r\n\r\n const preload = new Image()\r\n preload.onload = () => {\r\n imgElement.src = imageSrc\r\n showImage()\r\n }\r\n preload.onerror = () => {\r\n imgElement.src = imageSrc\r\n showImage()\r\n }\r\n preload.src = imageSrc\r\n },\r\n\r\n prepareBackgroundMotion(imgElement, enableZoom = false) {\r\n if (!imgElement) return\r\n\r\n const zoomDuration = Math.max(this.bkInterval + 1200, 4200)\r\n imgElement.style.transition = enableZoom\r\n ? `opacity 1.2s ease-in-out, filter 0.3s ease, transform ${zoomDuration}ms ease-out`\r\n : 'opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease'\r\n imgElement.style.transformOrigin = 'center center'\r\n imgElement.style.transform = 'scale(1)'\r\n },\r\n \r\n prepareBackgroundContainer(container) {\r\n if (!container) return\r\n\r\n const computedStyle = window.getComputedStyle(container)\r\n if (computedStyle.position === 'static') {\r\n container.style.position = 'relative'\r\n }\r\n\r\n if (computedStyle.zIndex === 'auto') {\r\n container.style.zIndex = '0'\r\n }\r\n\r\n container.style.isolation = 'isolate'\r\n },\r\n\r\n /**\r\n * 切换 Bing 壁纸\r\n */\r\n switchBingWallpaper(bg1, bg2) {\r\n if (this.bingWallPapers.length === 0) return\r\n\r\n const isBg1Current = bg1.style.opacity != 0\r\n const curBg = isBg1Current ? bg1 : bg2\r\n const nextBg = isBg1Current ? bg2 : bg1\r\n \r\n this.bingWallPaperIndex = (this.bingWallPaperIndex + 1) % this.bingWallPapers.length\r\n const nextUrl = this.bingWallPapers[this.bingWallPaperIndex]?.url\r\n\r\n // 【层级魔法】:让旧图垫底,新图置顶\r\n curBg.style.zIndex = -2\r\n nextBg.style.zIndex = -1\r\n this.prepareBackgroundMotion(nextBg, true)\r\n\r\n const preload = new Image()\r\n preload.onload = () => {\r\n nextBg.src = nextUrl\r\n \r\n // 稍微延迟 50ms,确保浏览器把新图渲染到 DOM 上且层级已更新\r\n setTimeout(() => {\r\n nextBg.style.opacity = this.bkOpacity // 新图直接在顶层优雅淡入\r\n nextBg.style.transform = 'scale(1.045)'\r\n \r\n // 等新图 1.2s 完全覆盖后,在底下默默把旧图透明度归零,毫无视觉断层\r\n setTimeout(() => { \r\n curBg.style.opacity = 0 \r\n this.prepareBackgroundMotion(curBg, true)\r\n }, 1200)\r\n }, 50)\r\n }\r\n preload.src = nextUrl\r\n },\r\n\r\n /**\r\n * 切换自定义壁纸\r\n */\r\n switchCustomWallpaper(bg1, bg2, wallpapers) {\r\n const isBg1Current = bg1.style.opacity != 0\r\n const curBg = isBg1Current ? bg1 : bg2\r\n const nextBg = isBg1Current ? bg2 : bg1\r\n \r\n this.customWallPaperIndex = (this.customWallPaperIndex + 1) % wallpapers.length\r\n const nextUrl = wallpapers[this.customWallPaperIndex]\r\n\r\n // 旧图垫底,新图置顶\r\n curBg.style.zIndex = -2\r\n nextBg.style.zIndex = -1\r\n this.prepareBackgroundMotion(nextBg, true)\r\n\r\n const preload = new Image()\r\n preload.onload = () => {\r\n nextBg.src = nextUrl\r\n \r\n setTimeout(() => {\r\n nextBg.style.opacity = this.bkOpacity\r\n nextBg.style.transform = 'scale(1.045)'\r\n \r\n setTimeout(() => { \r\n curBg.style.opacity = 0 \r\n this.prepareBackgroundMotion(curBg, true)\r\n }, 1200)\r\n }, 50)\r\n }\r\n preload.src = nextUrl\r\n },\r\n\r\n /**\r\n * 清除背景轮播定时器\r\n */\r\n clearBackgroundInterval() {\r\n if (this.backgroundInterval) {\r\n clearInterval(this.backgroundInterval)\r\n this.backgroundInterval = null\r\n }\r\n },\r\n\r\n /**\r\n * 清除背景图片显示(带过渡效果)\r\n * @param {boolean} immediate - 是否立即清除,不使用过渡效果\r\n */\r\n clearBackgroundImages(immediate = false) {\r\n const bg1 = document.getElementById('bg1')\r\n const bg2 = document.getElementById('bg2')\r\n \r\n if (immediate) {\r\n // 立即清除,不使用过渡效果\r\n if (bg1) {\r\n bg1.style.transition = 'none'\r\n bg1.style.opacity = 0\r\n bg1.src = ''\r\n // 恢复过渡效果\r\n setTimeout(() => {\r\n if (bg1) bg1.style.transition = 'opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease'\r\n }, 50)\r\n }\r\n if (bg2) {\r\n bg2.style.transition = 'none'\r\n bg2.style.opacity = 0\r\n bg2.src = ''\r\n // 恢复过渡效果\r\n setTimeout(() => {\r\n if (bg2) bg2.style.transition = 'opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease'\r\n }, 50)\r\n }\r\n } else {\r\n // 使用过渡效果淡出\r\n if (bg1) {\r\n bg1.style.opacity = 0\r\n setTimeout(() => {\r\n if (bg1) bg1.src = ''\r\n }, 1200)\r\n }\r\n if (bg2) {\r\n bg2.style.opacity = 0\r\n setTimeout(() => {\r\n if (bg2) bg2.src = ''\r\n }, 1200)\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * 平滑主题切换(用于响应主题模式变化)\r\n * @param {string} configKey - 用户配置中的背景图配置键名\r\n * @param {string} containerSelector - 容器选择器\r\n * @param {boolean} useDefaultBackground - 是否使用默认背景图\r\n * @param {boolean} autoCreateElements - 是否自动创建背景元素\r\n */\r\n smoothThemeTransition(configKey, containerSelector = '.login', useDefaultBackground = false, autoCreateElements = false) {\r\n const backgroundConfig = this.userConfig?.[configKey]\r\n \r\n // 如果不是默认背景配置,则直接重新初始化(自定义背景不受主题影响)\r\n if (!useDefaultBackground || backgroundConfig !== undefined) {\r\n this.reinitializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n return\r\n }\r\n\r\n // 对于默认背景,执行平滑过渡\r\n const bg1 = document.getElementById('bg1')\r\n const bg2 = document.getElementById('bg2')\r\n \r\n if (!bg1 || !bg2) {\r\n // 如果背景元素不存在,直接重新初始化\r\n this.reinitializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n return\r\n }\r\n\r\n // 确定当前显示的背景和下一个背景\r\n const currentBg = bg1.style.opacity != 0 ? bg1 : bg2\r\n const nextBg = bg1.style.opacity != 0 ? bg2 : bg1\r\n\r\n // 获取新主题对应的背景图\r\n const isDark = this.useDarkMode\r\n const newThemeImage = isDark \r\n ? require('@/assets/background.jpg') \r\n : require('@/assets/background-light.jpg')\r\n\r\n // 预加载新背景图\r\n const preloadImg = new Image()\r\n preloadImg.onload = () => {\r\n // 设置下一个背景的图片源\r\n nextBg.src = newThemeImage\r\n \r\n // 等待图片加载完成后执行淡入淡出过渡\r\n nextBg.onload = () => {\r\n // 淡出当前背景\r\n currentBg.style.opacity = 0\r\n \r\n // 稍微延迟后淡入新背景,确保过渡效果平滑\r\n setTimeout(() => {\r\n nextBg.style.opacity = this.bkOpacity\r\n }, 50) // 50ms 延迟,让淡出效果先开始\r\n }\r\n }\r\n \r\n preloadImg.onerror = () => {\r\n // 如果预加载失败,回退到直接重新初始化\r\n console.warn('主题背景图预加载失败,回退到直接切换')\r\n this.reinitializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n }\r\n \r\n preloadImg.src = newThemeImage\r\n },\r\n\r\n /**\r\n * 重新初始化背景图(用于响应配置变化)\r\n */\r\n reinitializeBackground(configKey, containerSelector = '.login', useDefaultBackground = false, autoCreateElements = false) {\r\n this.clearBackgroundInterval()\r\n this.clearBackgroundImages(true) // 使用立即清除\r\n this.bingWallPaperIndex = 0\r\n this.customWallPaperIndex = 0\r\n \r\n // 延迟一小段时间确保清理完成\r\n setTimeout(() => {\r\n this.initializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n }, 100)\r\n }\r\n }\r\n}\r\n"],"names":["_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","render","_ctx","_cache","$props","$setup","$data","$options","_component_font_awesome_icon","_component_el_button","innerHTML","backgroundImagesTemplate","onClick","goHome","circle","size","default","icon","_","$t","type","goBack","href","args","refreshPage","name","mixins","backgroundManager","computed","setup","u","title","meta","content","charset","mounted","this","initializeBackground","beforeUnmount","clearBackgroundInterval","methods","$router","push","window","history","length","go","location","reload","__exports__","data","bingWallPaperIndex","customWallPaperIndex","backgroundInterval","backgroundInitParams","mapGetters","bkInterval","userConfig","bkOpacity","backgroundImagesStyles","watch","useDarkMode","newVal","oldVal","$nextTick","smoothThemeTransition","configKey","containerSelector","useDefaultBackground","autoCreateElements","injectBackgroundStyles","clearInterval","clearBackgroundImages","removeBackgroundStyles","styleId","document","getElementById","style","createElement","id","textContent","head","appendChild","existingStyle","remove","createBackgroundElements","container","console","warn","bg1","className","alt","bg2","insertBefore","firstChild","wallpaperEnabled","querySelector","prepareBackgroundContainer","backgroundConfig","setupBingWallpaper","Array","isArray","setupCustomWallpaperCarousel","setupSingleCustomWallpaper","setupDefaultWallpaper","$store","dispatch","then","bingWallPapers","loadBackgroundImage","url","setInterval","switchBingWallpaper","wallpapers","switchCustomWallpaper","wallpaperUrl","isDark","defaultImage","require","imgElement","imageSrc","enableZoom","zIndex","opacity","prepareBackgroundMotion","showImage","requestAnimationFrame","transform","preload","Image","onload","src","onerror","zoomDuration","Math","max","transition","transformOrigin","computedStyle","getComputedStyle","position","isolation","isBg1Current","curBg","nextBg","nextUrl","setTimeout","immediate","undefined","reinitializeBackground","currentBg","newThemeImage","preloadImg"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/frontend-dist/js/278.66af4a0a.js.map.gz b/frontend-dist/js/278.66af4a0a.js.map.gz new file mode 100644 index 0000000000000000000000000000000000000000..d333020c715aed076d5423f0376ae91b5dcd2f29 GIT binary patch literal 9799 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["_blank","_self","_parent","_top"].includes(e)},alt:{type:String,default:"Sanyue logo"},customSrc:{type:String,default:""},position:{type:String,default:"fixed",validator:e=>["fixed","relative","absolute","static"].includes(e)},size:{type:String,default:"normal",validator:e=>["small","normal","large"].includes(e)},enableHover:{type:Boolean,default:!0},useConfigLink:{type:Boolean,default:!1}},computed:{...(0,a.L8)(["userConfig"]),logoUrl(){return this.customSrc||this.userConfig?.logoUrl||i(33153)},logoHref(){return this.useConfigLink&&this.userConfig?.logoLink?this.userConfig.logoLink:this.href},logoClasses(){return{logo:!0,[`logo--${this.position}`]:!0,[`logo--${this.size}`]:!0,"logo--hover-enabled":this.enableHover}}}},d=i(71241);const c=(0,d.A)(u,[["render",r],["__scopeId","data-v-17f54292"]]);var h=c},33153:function(e,t,i){e.exports=i.p+"img/logo.e8dbfa27.png"},34896:function(e,t,i){i(85331)},48283:function(e,t,i){i.d(t,{A:function(){return C}});var o=i(86975),s=i(80047),n=(i(85331),i(99648),i(39623)),l=(i(29092),i(813)),r=(i(34896),i(732)),a=i(54047),u=i(91543),d=i(56768),c=i(24232),h=i(45130);const g={class:"login-container"},p={class:"login-title",tabindex:"0"},f={class:"input-wrapper"},k={key:0,class:"loading-ring"},m={key:1};function y(e,t,i,y,v,w){const b=u.A,L=a.A,_=r.A,C=l.tk,x=n.WK,D=s.S2,S=o.A;return(0,d.uX)(),(0,d.CE)("div",{class:"login",style:(0,c.Tr)(w.viewportStyle)},[(0,d.bF)(b,{class:"toggle-dark"}),(0,d.bF)(L,{class:"language-switcher"}),(0,d.bF)(_),(0,d.Lk)("div",g,[(0,d.Lk)("h1",p,(0,c.v_)(i.title),1),((0,d.uX)(!0),(0,d.CE)(d.FK,null,(0,d.pI)(i.fields,(e,t)=>((0,d.uX)(),(0,d.CE)("div",{key:e.key,class:"input-container"},[(0,d.Lk)("label",{class:"input-name",ref_for:!0,ref:`inputLabel${t}`,style:(0,c.Tr)({"--underline-width":v.labelUnderlineWidths[t]+"px"})},(0,c.v_)(e.label),5),(0,d.Lk)("div",f,[(0,d.bF)(x,{modelValue:v.formData[e.key],"onUpdate:modelValue":t=>v.formData[e.key]=t,placeholder:e.placeholder,type:e.type||"text","show-password":e.showPassword,class:"password-input",onKeyup:(0,h.jR)(w.handleSubmit,["enter","native"]),onFocus:w.handleInputFocus,onBlur:w.handleInputBlur},(0,d.eX)({_:2},[e.icon?{name:"prefix",fn:(0,d.k6)(()=>[(0,d.bF)(C,{class:"el-input__icon"},{default:(0,d.k6)(()=>[((0,d.uX)(),(0,d.Wv)((0,d.$y)(e.icon)))]),_:2},1024)]),key:"0"}:void 0]),1032,["modelValue","onUpdate:modelValue","placeholder","type","show-password","onKeyup","onFocus","onBlur"])])]))),128)),(0,d.bF)(D,{class:(0,c.C4)(["submit",{"is-loading":i.loading}]),type:"primary",onClick:w.handleSubmit,disabled:i.loading},{default:(0,d.k6)(()=>[i.loading?((0,d.uX)(),(0,d.CE)("div",k)):((0,d.uX)(),(0,d.CE)("span",m,(0,c.v_)(w.computedSubmitText),1))]),_:1},8,["class","onClick","disabled"])]),(0,d.bF)(S,{class:"footer"})],4)}i(18111),i(7588);var v=i(60782),w=i(48903),b={name:"BaseLogin",mixins:[w.A],props:{title:{type:String,required:!0},fields:{type:Array,required:!0},submitText:{type:String,default:""},backgroundKey:{type:String,required:!0},isAdmin:{type:Boolean,default:!1},loading:{type:Boolean,default:!1}},data(){return{formData:{},labelUnderlineWidths:[],isFocused:!1,viewportHeight:0}},computed:{...(0,v.L8)(["userConfig"]),computedSubmitText(){return this.submitText||this.$t("login.submit")},viewportStyle(){return this.viewportHeight>0?{height:`${this.viewportHeight}px`,minHeight:`${this.viewportHeight}px`}:{}}},watch:{fields:{handler(){this.$nextTick(()=>{this.calculateLabelWidths()})},deep:!0}},components:{Footer:o.A,ToggleDark:u.A,LanguageSwitcher:a.A,Logo:r.A},mounted(){this.initFormData(),this.initializeBackground(this.backgroundKey,".login",!this.isAdmin,!0),this.$nextTick(()=>{this.calculateLabelWidths()}),this._handleViewportResize=this.handleViewportResize.bind(this),window.visualViewport&&(this._initialHeight=window.visualViewport.height,window.visualViewport.addEventListener("resize",this._handleViewportResize))},beforeDestroy(){window.visualViewport&&this._handleViewportResize&&window.visualViewport.removeEventListener("resize",this._handleViewportResize)},methods:{initFormData(){const e={};this.fields.forEach(t=>{e[t.key]=""}),this.formData=e,this.labelUnderlineWidths=new Array(this.fields.length).fill(0)},calculateLabelWidths(){this.$nextTick(()=>{this.fields.forEach((e,t)=>{const i=this.$refs[`inputLabel${t}`];if(i&&i[0]){const o=document.createElement("canvas"),s=o.getContext("2d"),n=i[0],l=window.getComputedStyle(n);s.font=`${l.fontWeight} ${l.fontSize} ${l.fontFamily}`;const r=s.measureText(e.label).width;this.labelUnderlineWidths[t]=Math.ceil(r)+3}})})},handleSubmit(){this.loading||this.$emit("submit",{...this.formData})},handleViewportResize(){if(!window.visualViewport)return;const e=window.visualViewport.height,t=this._initialHeight-e,i=150;this.viewportHeight=t>i?e:0},handleInputFocus(e){this.isFocused=!0;const t=e.target.closest(".input-container");if(t){const e=t.querySelector(".input-wrapper");e&&e.classList.add("focused")}},handleInputBlur(e){this.isFocused=!1;const t=e.target.closest(".input-container");if(t){const e=t.querySelector(".input-wrapper");e&&e.classList.remove("focused")}}}},L=i(71241);const _=(0,L.A)(b,[["render",y],["__scopeId","data-v-583fe0d5"]]);var C=_},86975:function(e,t,i){i.d(t,{A:function(){return h}});var o=i(56768),s=i(24232);const n={key:0,class:"page-footer"},l=["href"];function r(e,t,i,r,a,u){const d=(0,o.g2)("font-awesome-icon");return u.disableFooter?(0,o.Q3)("",!0):((0,o.uX)(),(0,o.CE)("div",n,[(0,o.Lk)("p",null,[(0,o.eW)("© 2024-"+(0,s.v_)(u.thisYear)+" Designed by ",1),t[0]||(t[0]=(0,o.Lk)("a",{class:"footer-name",href:"https://github.com/MarSeventh",target:"_blank"},"SanyueQi",-1)),t[1]||(t[1]=(0,o.eW)(" for You! ",-1)),(0,o.Lk)("a",{href:u.footerLink,target:"_blank"},[(0,o.bF)(d,{icon:"paper-plane",class:"footer-link-icon"})],8,l)])]))}var a=i(60782),u={name:"Footer",computed:{...(0,a.L8)(["userConfig"]),footerLink(){return this.userConfig?.footerLink||"https://github.com/MarSeventh"},thisYear(){return(new Date).getFullYear()},disableFooter(){return this.userConfig?.disableFooter||!1}}},d=i(71241);const c=(0,d.A)(u,[["render",r],["__scopeId","data-v-08acbaa9"]]);var h=c},91543:function(e,t,i){i.d(t,{A:function(){return p}});var o=i(56768),s=i(45130),n=i(24232);const l={id:"themeMask"},r=["cx","cy","r"],a=["r"],u=["opacity"];function d(e,t,i,d,c,h){const g=(0,o.g2)("font-awesome-icon");return(0,o.uX)(),(0,o.CE)("div",{id:"themeToggle",onClick:t[0]||(t[0]=(...e)=>h.handleToggleClick&&h.handleToggleClick(...e))},[(0,o.bF)(s.eB,{name:"icon-fade",mode:"out-in"},{default:(0,o.k6)(()=>[c.isAuto?((0,o.uX)(),(0,o.Wv)(g,{key:"auto-mode",icon:"circle-half-stroke",class:"auto-icon",style:{"font-size":"1.5em",color:"var(--theme-toggle-color)"}})):((0,o.uX)(),(0,o.CE)("svg",{key:"sun-moon",class:(0,n.C4)(["theme_toggle_svg",{dark:c.isDark}]),width:"1.5em",height:"1.5em",viewBox:"0 0 24 24",fill:"none","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",stroke:"currentColor"},[(0,o.Lk)("mask",l,[t[1]||(t[1]=(0,o.Lk)("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:"white"},null,-1)),(0,o.Lk)("circle",{class:"theme_toggle_circle1",fill:"black",cx:c.isDark?"50%":"100%",cy:c.isDark?"23%":"0%",r:c.isDark?"9":"5"},null,8,r)]),(0,o.Lk)("circle",{class:"theme_toggle_circle2",cx:"12",cy:"12",r:c.isDark?"9":"5",mask:"url(#themeMask)"},null,8,a),(0,o.Lk)("g",{class:"theme_toggle_g",stroke:"currentColor",opacity:c.isDark?0:1},[...t[2]||(t[2]=[(0,o.Lk)("line",{x1:"12",y1:"1",x2:"12",y2:"3"},null,-1),(0,o.Lk)("line",{x1:"12",y1:"21",x2:"12",y2:"23"},null,-1),(0,o.Lk)("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"},null,-1),(0,o.Lk)("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"},null,-1),(0,o.Lk)("line",{x1:"1",y1:"12",x2:"3",y2:"12"},null,-1),(0,o.Lk)("line",{x1:"21",y1:"12",x2:"23",y2:"12"},null,-1),(0,o.Lk)("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"},null,-1),(0,o.Lk)("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"},null,-1)])],8,u)],2))]),_:1})])}var c={name:"ToggleDark",data(){return{isDark:this.$store.getters.useDarkMode,isAuto:!this.$store.getters.cusDarkMode}},methods:{handleToggleClick(){this.isAuto?(this.isDark=!1,this.isAuto=!1,this.$store.commit("setCusDarkMode",!0),this.$store.commit("setUseDarkMode",!1)):this.isDark?(this.isAuto=!0,this.$store.commit("setCusDarkMode",!1)):(this.isDark=!0,this.$store.commit("setCusDarkMode",!0),this.$store.commit("setUseDarkMode",!0))}}},h=i(71241);const g=(0,h.A)(c,[["render",d],["__scopeId","data-v-66e6a1f0"]]);var p=g}}]); -//# sourceMappingURL=283.efe323af.js.map \ No newline at end of file +//# sourceMappingURL=283.5d4f325d.js.map \ No newline at end of file diff --git a/frontend-dist/js/283.5d4f325d.js.gz b/frontend-dist/js/283.5d4f325d.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..1375052bb9bcfda1e981e97b602495ae2d6410f6 GIT binary patch literal 3483 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 ['_blank', '_self', '_parent', '_top'].includes(value)\n },\n // 图片alt文本\n alt: {\n type: String,\n default: 'Sanyue logo'\n },\n // 自定义logo图片URL(可选)\n customSrc: {\n type: String,\n default: ''\n },\n // Logo位置样式\n position: {\n type: String,\n default: 'fixed',\n // fixed, relative, absolute\n validator: value => ['fixed', 'relative', 'absolute', 'static'].includes(value)\n },\n // Logo大小\n size: {\n type: String,\n default: 'normal',\n // small, normal, large\n validator: value => ['small', 'normal', 'large'].includes(value)\n },\n // 是否启用悬停动画\n enableHover: {\n type: Boolean,\n default: true\n },\n // 是否允许使用用户配置的链接(仅上传页面启用)\n useConfigLink: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n ...mapGetters(['userConfig']),\n logoUrl() {\n // 优先级:customSrc > 用户配置 > 默认图片\n return this.customSrc || this.userConfig?.logoUrl || require('../assets/logo.png');\n },\n logoHref() {\n // 只有启用 useConfigLink 时才使用用户配置的链接\n if (this.useConfigLink && this.userConfig?.logoLink) {\n return this.userConfig.logoLink;\n }\n return this.href;\n },\n logoClasses() {\n return {\n 'logo': true,\n [`logo--${this.position}`]: true,\n [`logo--${this.size}`]: true,\n 'logo--hover-enabled': this.enableHover\n };\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./Logo.vue?vue&type=template&id=17f54292&scoped=true\"\nimport script from \"./Logo.vue?vue&type=script&lang=js\"\nexport * from \"./Logo.vue?vue&type=script&lang=js\"\n\nimport \"./Logo.vue?vue&type=style&index=0&id=17f54292&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-17f54292\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeStyle as _normalizeStyle, resolveDynamicComponent as _resolveDynamicComponent, createBlock as _createBlock, withCtx as _withCtx, withKeys as _withKeys, createSlots as _createSlots, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass } from \"vue\";\nconst _hoisted_1 = {\n class: \"login-container\"\n};\nconst _hoisted_2 = {\n class: \"login-title\",\n tabindex: \"0\"\n};\nconst _hoisted_3 = {\n class: \"input-wrapper\"\n};\nconst _hoisted_4 = {\n key: 0,\n class: \"loading-ring\"\n};\nconst _hoisted_5 = {\n key: 1\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ToggleDark = _resolveComponent(\"ToggleDark\");\n const _component_LanguageSwitcher = _resolveComponent(\"LanguageSwitcher\");\n const _component_Logo = _resolveComponent(\"Logo\");\n const _component_el_icon = _resolveComponent(\"el-icon\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_Footer = _resolveComponent(\"Footer\");\n return _openBlock(), _createElementBlock(\"div\", {\n class: \"login\",\n style: _normalizeStyle($options.viewportStyle)\n }, [_createVNode(_component_ToggleDark, {\n class: \"toggle-dark\"\n }), _createVNode(_component_LanguageSwitcher, {\n class: \"language-switcher\"\n }), _createVNode(_component_Logo), _createElementVNode(\"div\", _hoisted_1, [_createElementVNode(\"h1\", _hoisted_2, _toDisplayString($props.title), 1), (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($props.fields, (field, index) => {\n return _openBlock(), _createElementBlock(\"div\", {\n key: field.key,\n class: \"input-container\"\n }, [_createElementVNode(\"label\", {\n class: \"input-name\",\n ref_for: true,\n ref: `inputLabel${index}`,\n style: _normalizeStyle({\n '--underline-width': $data.labelUnderlineWidths[index] + 'px'\n })\n }, _toDisplayString(field.label), 5), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_input, {\n modelValue: $data.formData[field.key],\n \"onUpdate:modelValue\": $event => $data.formData[field.key] = $event,\n placeholder: field.placeholder,\n type: field.type || 'text',\n \"show-password\": field.showPassword,\n class: \"password-input\",\n onKeyup: _withKeys($options.handleSubmit, [\"enter\", \"native\"]),\n onFocus: $options.handleInputFocus,\n onBlur: $options.handleInputBlur\n }, _createSlots({\n _: 2\n }, [field.icon ? {\n name: \"prefix\",\n fn: _withCtx(() => [_createVNode(_component_el_icon, {\n class: \"el-input__icon\"\n }, {\n default: _withCtx(() => [(_openBlock(), _createBlock(_resolveDynamicComponent(field.icon)))]),\n _: 2\n }, 1024)]),\n key: \"0\"\n } : undefined]), 1032, [\"modelValue\", \"onUpdate:modelValue\", \"placeholder\", \"type\", \"show-password\", \"onKeyup\", \"onFocus\", \"onBlur\"])])]);\n }), 128)), _createVNode(_component_el_button, {\n class: _normalizeClass([\"submit\", {\n 'is-loading': $props.loading\n }]),\n type: \"primary\",\n onClick: $options.handleSubmit,\n disabled: $props.loading\n }, {\n default: _withCtx(() => [$props.loading ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4)) : (_openBlock(), _createElementBlock(\"span\", _hoisted_5, _toDisplayString($options.computedSubmitText), 1))]),\n _: 1\n }, 8, [\"class\", \"onClick\", \"disabled\"])]), _createVNode(_component_Footer, {\n class: \"footer\"\n })], 4);\n}","import \"core-js/modules/es.iterator.constructor.js\";\nimport \"core-js/modules/es.iterator.for-each.js\";\nimport Footer from '@/components/Footer.vue';\nimport ToggleDark from '@/components/ToggleDark.vue';\nimport LanguageSwitcher from '@/components/LanguageSwitcher.vue';\nimport Logo from '@/components/Logo.vue';\nimport { mapGetters } from 'vuex';\nimport backgroundManager from '@/mixins/backgroundManager';\nexport default {\n name: 'BaseLogin',\n mixins: [backgroundManager],\n props: {\n // 页面标题\n title: {\n type: String,\n required: true\n },\n // 输入字段配置\n fields: {\n type: Array,\n required: true\n // fields 格式: [{ key: 'username', label: '用户名', placeholder: '请输入用户名', type: 'text', showPassword: false }]\n },\n // 提交按钮文本\n submitText: {\n type: String,\n default: ''\n },\n // 背景图配置键名\n backgroundKey: {\n type: String,\n required: true\n },\n // 是否为管理端登录(影响背景样式)\n isAdmin: {\n type: Boolean,\n default: false\n },\n // 是否正在加载\n loading: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n formData: {},\n labelUnderlineWidths: [],\n isFocused: false,\n viewportHeight: 0\n };\n },\n computed: {\n ...mapGetters(['userConfig']),\n computedSubmitText() {\n return this.submitText || this.$t('login.submit');\n },\n viewportStyle() {\n // 当检测到虚拟键盘弹出时,将容器高度收缩到可见视口高度\n // 容器本身 flex 居中,高度缩小后登录卡片自然在可见区域内居中\n if (this.viewportHeight > 0) {\n return {\n height: `${this.viewportHeight}px`,\n minHeight: `${this.viewportHeight}px`\n };\n }\n return {};\n }\n },\n watch: {\n fields: {\n handler() {\n this.$nextTick(() => {\n this.calculateLabelWidths();\n });\n },\n deep: true\n }\n },\n components: {\n Footer,\n ToggleDark,\n LanguageSwitcher,\n Logo\n },\n mounted() {\n // 初始化表单数据\n this.initFormData();\n // 初始化背景图\n this.initializeBackground(this.backgroundKey, '.login', !this.isAdmin, true);\n // 在下一个tick计算标签宽度,确保DOM已经渲染\n this.$nextTick(() => {\n this.calculateLabelWidths();\n });\n // 监听 visualViewport 变化,检测虚拟键盘弹出\n this._handleViewportResize = this.handleViewportResize.bind(this);\n if (window.visualViewport) {\n this._initialHeight = window.visualViewport.height;\n window.visualViewport.addEventListener('resize', this._handleViewportResize);\n }\n },\n beforeDestroy() {\n if (window.visualViewport && this._handleViewportResize) {\n window.visualViewport.removeEventListener('resize', this._handleViewportResize);\n }\n },\n methods: {\n initFormData() {\n // 根据字段配置初始化表单数据\n const newFormData = {};\n this.fields.forEach(field => {\n newFormData[field.key] = '';\n });\n this.formData = newFormData;\n // 初始化下划线宽度数组\n this.labelUnderlineWidths = new Array(this.fields.length).fill(0);\n },\n calculateLabelWidths() {\n // 计算每个标签的文字宽度\n this.$nextTick(() => {\n this.fields.forEach((field, index) => {\n const labelRef = this.$refs[`inputLabel${index}`];\n if (labelRef && labelRef[0]) {\n // 创建一个临时的canvas来测量文字宽度\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n\n // 获取标签的计算样式\n const labelElement = labelRef[0];\n const computedStyle = window.getComputedStyle(labelElement);\n\n // 设置font样式以匹配标签\n context.font = `${computedStyle.fontWeight} ${computedStyle.fontSize} ${computedStyle.fontFamily}`;\n\n // 测量文字宽度\n const textWidth = context.measureText(field.label).width;\n\n // 添加一些额外的边距,确保下划线覆盖整个文字\n this.labelUnderlineWidths[index] = Math.ceil(textWidth) + 3;\n }\n });\n });\n },\n handleSubmit() {\n if (this.loading) return;\n // 触发父组件的提交事件,传递表单数据\n this.$emit('submit', {\n ...this.formData\n });\n },\n handleViewportResize() {\n if (!window.visualViewport) return;\n const currentHeight = window.visualViewport.height;\n // 键盘高度 = 初始视口高度 - 当前视口高度\n const keyboardHeight = this._initialHeight - currentHeight;\n // 设定阈值:视口缩小超过 150px 才认为是虚拟键盘弹出\n // 避免地址栏收缩等小幅变化误触发\n const KEYBOARD_THRESHOLD = 150;\n if (keyboardHeight > KEYBOARD_THRESHOLD) {\n // 将容器高度设为当前可见视口高度\n // flex 居中会让登录卡片自然在可见区域内居中,不会顶部溢出或底部留白\n this.viewportHeight = currentHeight;\n } else {\n this.viewportHeight = 0;\n }\n },\n handleInputFocus(event) {\n this.isFocused = true;\n const container = event.target.closest('.input-container');\n if (container) {\n const wrapper = container.querySelector('.input-wrapper');\n if (wrapper) {\n wrapper.classList.add('focused');\n }\n }\n },\n handleInputBlur(event) {\n this.isFocused = false;\n const container = event.target.closest('.input-container');\n if (container) {\n const wrapper = container.querySelector('.input-wrapper');\n if (wrapper) {\n wrapper.classList.remove('focused');\n }\n }\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./BaseLogin.vue?vue&type=template&id=583fe0d5&scoped=true\"\nimport script from \"./BaseLogin.vue?vue&type=script&lang=js\"\nexport * from \"./BaseLogin.vue?vue&type=script&lang=js\"\n\nimport \"./BaseLogin.vue?vue&type=style&index=0&id=583fe0d5&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-583fe0d5\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\";\nconst _hoisted_1 = {\n key: 0,\n class: \"page-footer\"\n};\nconst _hoisted_2 = [\"href\"];\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\");\n return !$options.disableFooter ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createElementVNode(\"p\", null, [_createTextVNode(\"© 2024-\" + _toDisplayString($options.thisYear) + \" Designed by \", 1), _cache[0] || (_cache[0] = _createElementVNode(\"a\", {\n class: \"footer-name\",\n href: \"https://github.com/MarSeventh\",\n target: \"_blank\"\n }, \"SanyueQi\", -1)), _cache[1] || (_cache[1] = _createTextVNode(\" for You! \", -1)), _createElementVNode(\"a\", {\n href: $options.footerLink,\n target: \"_blank\"\n }, [_createVNode(_component_font_awesome_icon, {\n icon: \"paper-plane\",\n class: \"footer-link-icon\"\n })], 8, _hoisted_2)])])) : _createCommentVNode(\"\", true);\n}","import { mapGetters } from 'vuex';\nexport default {\n name: 'Footer',\n computed: {\n ...mapGetters(['userConfig']),\n footerLink() {\n return this.userConfig?.footerLink || 'https://github.com/MarSeventh';\n },\n thisYear() {\n return new Date().getFullYear();\n },\n disableFooter() {\n return this.userConfig?.disableFooter || false;\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./Footer.vue?vue&type=template&id=08acbaa9&scoped=true\"\nimport script from \"./Footer.vue?vue&type=script&lang=js\"\nexport * from \"./Footer.vue?vue&type=script&lang=js\"\n\nimport \"./Footer.vue?vue&type=style&index=0&id=08acbaa9&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-08acbaa9\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, Transition as _Transition, withCtx as _withCtx, createVNode as _createVNode } from \"vue\";\nconst _hoisted_1 = {\n id: \"themeMask\"\n};\nconst _hoisted_2 = [\"cx\", \"cy\", \"r\"];\nconst _hoisted_3 = [\"r\"];\nconst _hoisted_4 = [\"opacity\"];\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\");\n return _openBlock(), _createElementBlock(\"div\", {\n id: \"themeToggle\",\n onClick: _cache[0] || (_cache[0] = (...args) => $options.handleToggleClick && $options.handleToggleClick(...args))\n }, [_createVNode(_Transition, {\n name: \"icon-fade\",\n mode: \"out-in\"\n }, {\n default: _withCtx(() => [!$data.isAuto ? (_openBlock(), _createElementBlock(\"svg\", {\n key: \"sun-moon\",\n class: _normalizeClass([\"theme_toggle_svg\", {\n 'dark': $data.isDark\n }]),\n width: \"1.5em\",\n height: \"1.5em\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n stroke: \"currentColor\"\n }, [_createElementVNode(\"mask\", _hoisted_1, [_cache[1] || (_cache[1] = _createElementVNode(\"rect\", {\n x: \"0\",\n y: \"0\",\n width: \"100%\",\n height: \"100%\",\n fill: \"white\"\n }, null, -1)), _createElementVNode(\"circle\", {\n class: \"theme_toggle_circle1\",\n fill: \"black\",\n cx: $data.isDark ? '50%' : '100%',\n cy: $data.isDark ? '23%' : '0%',\n r: $data.isDark ? '9' : '5'\n }, null, 8, _hoisted_2)]), _createElementVNode(\"circle\", {\n class: \"theme_toggle_circle2\",\n cx: \"12\",\n cy: \"12\",\n r: $data.isDark ? '9' : '5',\n mask: \"url(#themeMask)\"\n }, null, 8, _hoisted_3), _createElementVNode(\"g\", {\n class: \"theme_toggle_g\",\n stroke: \"currentColor\",\n opacity: $data.isDark ? 0 : 1\n }, [...(_cache[2] || (_cache[2] = [_createElementVNode(\"line\", {\n x1: \"12\",\n y1: \"1\",\n x2: \"12\",\n y2: \"3\"\n }, null, -1), _createElementVNode(\"line\", {\n x1: \"12\",\n y1: \"21\",\n x2: \"12\",\n y2: \"23\"\n }, null, -1), _createElementVNode(\"line\", {\n x1: \"4.22\",\n y1: \"4.22\",\n x2: \"5.64\",\n y2: \"5.64\"\n }, null, -1), _createElementVNode(\"line\", {\n x1: \"18.36\",\n y1: \"18.36\",\n x2: \"19.78\",\n y2: \"19.78\"\n }, null, -1), _createElementVNode(\"line\", {\n x1: \"1\",\n y1: \"12\",\n x2: \"3\",\n y2: \"12\"\n }, null, -1), _createElementVNode(\"line\", {\n x1: \"21\",\n y1: \"12\",\n x2: \"23\",\n y2: \"12\"\n }, null, -1), _createElementVNode(\"line\", {\n x1: \"4.22\",\n y1: \"19.78\",\n x2: \"5.64\",\n y2: \"18.36\"\n }, null, -1), _createElementVNode(\"line\", {\n x1: \"18.36\",\n y1: \"5.64\",\n x2: \"19.78\",\n y2: \"4.22\"\n }, null, -1)]))], 8, _hoisted_4)], 2)) : (_openBlock(), _createBlock(_component_font_awesome_icon, {\n key: \"auto-mode\",\n icon: \"circle-half-stroke\",\n class: \"auto-icon\",\n style: {\n \"font-size\": \"1.5em\",\n \"color\": \"var(--theme-toggle-color)\"\n }\n }))]),\n _: 1\n })]);\n}","export default {\n name: 'ToggleDark',\n data() {\n return {\n isDark: this.$store.getters.useDarkMode,\n isAuto: !this.$store.getters.cusDarkMode\n };\n },\n methods: {\n handleToggleClick() {\n // 三种状态循环:亮色 -> 暗色 -> 跟随系统 -> 亮色\n if (this.isAuto) {\n // 当前是自动模式,切换到亮色\n this.isDark = false;\n this.isAuto = false;\n this.$store.commit('setCusDarkMode', true);\n this.$store.commit('setUseDarkMode', false);\n } else if (!this.isDark) {\n // 当前是亮色,切换到暗色\n this.isDark = true;\n this.$store.commit('setCusDarkMode', true);\n this.$store.commit('setUseDarkMode', true);\n } else {\n // 当前是暗色,切换到跟随系统\n this.isAuto = true;\n this.$store.commit('setCusDarkMode', false);\n }\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./ToggleDark.vue?vue&type=template&id=66e6a1f0&scoped=true\"\nimport script from \"./ToggleDark.vue?vue&type=script&lang=js\"\nexport * from \"./ToggleDark.vue?vue&type=script&lang=js\"\n\nimport \"./ToggleDark.vue?vue&type=style&index=0&id=66e6a1f0&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-66e6a1f0\"]])\n\nexport default __exports__"],"names":["_hoisted_1","_hoisted_2","render","_ctx","_cache","$props","$setup","$data","$options","href","logoHref","target","class","logo","link","logoClasses","alt","src","logoUrl","name","props","type","String","default","validator","value","includes","customSrc","position","size","enableHover","Boolean","useConfigLink","computed","this","userConfig","logoLink","__exports__","tabindex","_hoisted_3","_hoisted_4","key","_hoisted_5","_component_ToggleDark","_component_LanguageSwitcher","_component_Logo","_component_el_icon","_component_el_input","_component_el_button","_component_Footer","style","viewportStyle","title","fields","field","index","ref_for","ref","labelUnderlineWidths","label","modelValue","formData","$event","placeholder","showPassword","onKeyup","handleSubmit","onFocus","handleInputFocus","onBlur","handleInputBlur","_","icon","fn","undefined","loading","onClick","disabled","computedSubmitText","mixins","backgroundManager","required","Array","submitText","backgroundKey","isAdmin","data","isFocused","viewportHeight","$t","height","minHeight","watch","handler","$nextTick","calculateLabelWidths","deep","components","Footer","ToggleDark","LanguageSwitcher","Logo","mounted","initFormData","initializeBackground","_handleViewportResize","handleViewportResize","bind","window","visualViewport","_initialHeight","addEventListener","beforeDestroy","removeEventListener","methods","newFormData","forEach","length","fill","labelRef","$refs","canvas","document","createElement","context","getContext","labelElement","computedStyle","getComputedStyle","font","fontWeight","fontSize","fontFamily","textWidth","measureText","width","Math","ceil","$emit","currentHeight","keyboardHeight","KEYBOARD_THRESHOLD","event","container","closest","wrapper","querySelector","classList","add","remove","_component_font_awesome_icon","disableFooter","thisYear","footerLink","Date","getFullYear","id","args","handleToggleClick","mode","isAuto","isDark","viewBox","stroke","x","y","cx","cy","r","mask","opacity","x1","y1","x2","y2","$store","getters","useDarkMode","cusDarkMode","commit"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/283.5d4f325d.js","mappings":"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","sources":["webpack://sanyue_imghub/./src/components/Logo.vue?a6d2","webpack://sanyue_imghub/./src/components/Logo.vue","webpack://sanyue_imghub/./src/components/Logo.vue?4125","webpack://sanyue_imghub/./src/components/BaseLogin.vue?f703","webpack://sanyue_imghub/./src/components/BaseLogin.vue","webpack://sanyue_imghub/./src/components/BaseLogin.vue?0ac4","webpack://sanyue_imghub/./src/components/Footer.vue?4f81","webpack://sanyue_imghub/./src/components/Footer.vue","webpack://sanyue_imghub/./src/components/Footer.vue?d468","webpack://sanyue_imghub/./src/components/ToggleDark.vue?0f43","webpack://sanyue_imghub/./src/components/ToggleDark.vue","webpack://sanyue_imghub/./src/components/ToggleDark.vue?0bce"],"sourcesContent":["import { normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\";\nconst _hoisted_1 = [\"href\", \"target\"];\nconst _hoisted_2 = [\"alt\", \"src\"];\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n return _openBlock(), _createElementBlock(\"a\", {\n href: $options.logoHref,\n target: $props.target,\n class: _normalizeClass(_ctx.logo - _ctx.link)\n }, [_createElementVNode(\"img\", {\n class: _normalizeClass($options.logoClasses),\n alt: $props.alt,\n src: $options.logoUrl\n }, null, 10, _hoisted_2)], 10, _hoisted_1);\n}","import { mapGetters } from 'vuex';\nexport default {\n name: 'Logo',\n props: {\n // Logo链接地址(可被用户配置覆盖)\n href: {\n type: String,\n default: 'https://github.com/MarSeventh/CloudFlare-ImgBed'\n },\n // 链接打开方式\n target: {\n type: String,\n default: '_blank',\n // _blank, _self, _parent, _top\n validator: value => ['_blank', '_self', '_parent', '_top'].includes(value)\n },\n // 图片alt文本\n alt: {\n type: String,\n default: 'Sanyue logo'\n },\n // 自定义logo图片URL(可选)\n customSrc: {\n type: String,\n default: ''\n },\n // Logo位置样式\n position: {\n type: String,\n default: 'fixed',\n // fixed, relative, absolute\n validator: value => ['fixed', 'relative', 'absolute', 'static'].includes(value)\n },\n // Logo大小\n size: {\n type: String,\n default: 'normal',\n // small, normal, large\n validator: value => ['small', 'normal', 'large'].includes(value)\n },\n // 是否启用悬停动画\n enableHover: {\n type: Boolean,\n default: true\n },\n // 是否允许使用用户配置的链接(仅上传页面启用)\n useConfigLink: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n ...mapGetters(['userConfig']),\n logoUrl() {\n // 优先级:customSrc > 用户配置 > 默认图片\n return this.customSrc || this.userConfig?.logoUrl || require('../assets/logo.png');\n },\n logoHref() {\n // 只有启用 useConfigLink 时才使用用户配置的链接\n if (this.useConfigLink && this.userConfig?.logoLink) {\n return this.userConfig.logoLink;\n }\n return this.href;\n },\n logoClasses() {\n return {\n 'logo': true,\n [`logo--${this.position}`]: true,\n [`logo--${this.size}`]: true,\n 'logo--hover-enabled': this.enableHover\n };\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./Logo.vue?vue&type=template&id=17f54292&scoped=true\"\nimport script from \"./Logo.vue?vue&type=script&lang=js\"\nexport * from \"./Logo.vue?vue&type=script&lang=js\"\n\nimport \"./Logo.vue?vue&type=style&index=0&id=17f54292&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-17f54292\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeStyle as _normalizeStyle, resolveDynamicComponent as _resolveDynamicComponent, createBlock as _createBlock, withCtx as _withCtx, withKeys as _withKeys, createSlots as _createSlots, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass } from \"vue\";\nconst _hoisted_1 = {\n class: \"login-container\"\n};\nconst _hoisted_2 = {\n class: \"login-title\",\n tabindex: \"0\"\n};\nconst _hoisted_3 = {\n class: \"input-wrapper\"\n};\nconst _hoisted_4 = {\n key: 0,\n class: \"loading-ring\"\n};\nconst _hoisted_5 = {\n key: 1\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ToggleDark = _resolveComponent(\"ToggleDark\");\n const _component_LanguageSwitcher = _resolveComponent(\"LanguageSwitcher\");\n const _component_Logo = _resolveComponent(\"Logo\");\n const _component_el_icon = _resolveComponent(\"el-icon\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_Footer = _resolveComponent(\"Footer\");\n return _openBlock(), _createElementBlock(\"div\", {\n class: \"login\",\n style: _normalizeStyle($options.viewportStyle)\n }, [_createVNode(_component_ToggleDark, {\n class: \"toggle-dark\"\n }), _createVNode(_component_LanguageSwitcher, {\n class: \"language-switcher\"\n }), _createVNode(_component_Logo), _createElementVNode(\"div\", _hoisted_1, [_createElementVNode(\"h1\", _hoisted_2, _toDisplayString($props.title), 1), (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($props.fields, (field, index) => {\n return _openBlock(), _createElementBlock(\"div\", {\n key: field.key,\n class: \"input-container\"\n }, [_createElementVNode(\"label\", {\n class: \"input-name\",\n ref_for: true,\n ref: `inputLabel${index}`,\n style: _normalizeStyle({\n '--underline-width': $data.labelUnderlineWidths[index] + 'px'\n })\n }, _toDisplayString(field.label), 5), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_input, {\n modelValue: $data.formData[field.key],\n \"onUpdate:modelValue\": $event => $data.formData[field.key] = $event,\n placeholder: field.placeholder,\n type: field.type || 'text',\n \"show-password\": field.showPassword,\n class: \"password-input\",\n onKeyup: _withKeys($options.handleSubmit, [\"enter\", \"native\"]),\n onFocus: $options.handleInputFocus,\n onBlur: $options.handleInputBlur\n }, _createSlots({\n _: 2\n }, [field.icon ? {\n name: \"prefix\",\n fn: _withCtx(() => [_createVNode(_component_el_icon, {\n class: \"el-input__icon\"\n }, {\n default: _withCtx(() => [(_openBlock(), _createBlock(_resolveDynamicComponent(field.icon)))]),\n _: 2\n }, 1024)]),\n key: \"0\"\n } : undefined]), 1032, [\"modelValue\", \"onUpdate:modelValue\", \"placeholder\", \"type\", \"show-password\", \"onKeyup\", \"onFocus\", \"onBlur\"])])]);\n }), 128)), _createVNode(_component_el_button, {\n class: _normalizeClass([\"submit\", {\n 'is-loading': $props.loading\n }]),\n type: \"primary\",\n onClick: $options.handleSubmit,\n disabled: $props.loading\n }, {\n default: _withCtx(() => [$props.loading ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4)) : (_openBlock(), _createElementBlock(\"span\", _hoisted_5, _toDisplayString($options.computedSubmitText), 1))]),\n _: 1\n }, 8, [\"class\", \"onClick\", \"disabled\"])]), _createVNode(_component_Footer, {\n class: \"footer\"\n })], 4);\n}","import \"core-js/modules/es.iterator.constructor.js\";\nimport \"core-js/modules/es.iterator.for-each.js\";\nimport Footer from '@/components/Footer.vue';\nimport ToggleDark from '@/components/ToggleDark.vue';\nimport LanguageSwitcher from '@/components/LanguageSwitcher.vue';\nimport Logo from '@/components/Logo.vue';\nimport { mapGetters } from 'vuex';\nimport backgroundManager from '@/mixins/backgroundManager';\nexport default {\n name: 'BaseLogin',\n mixins: [backgroundManager],\n props: {\n // 页面标题\n title: {\n type: String,\n required: true\n },\n // 输入字段配置\n fields: {\n type: Array,\n required: true\n // fields 格式: [{ key: 'username', label: '用户名', placeholder: '请输入用户名', type: 'text', showPassword: false }]\n },\n // 提交按钮文本\n submitText: {\n type: String,\n default: ''\n },\n // 背景图配置键名\n backgroundKey: {\n type: String,\n required: true\n },\n // 是否为管理端登录(影响背景样式)\n isAdmin: {\n type: Boolean,\n default: false\n },\n // 是否正在加载\n loading: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n formData: {},\n labelUnderlineWidths: [],\n isFocused: false,\n viewportHeight: 0\n };\n },\n computed: {\n ...mapGetters(['userConfig']),\n computedSubmitText() {\n return this.submitText || this.$t('login.submit');\n },\n viewportStyle() {\n // 当检测到虚拟键盘弹出时,将容器高度收缩到可见视口高度\n // 容器本身 flex 居中,高度缩小后登录卡片自然在可见区域内居中\n if (this.viewportHeight > 0) {\n return {\n height: `${this.viewportHeight}px`,\n minHeight: `${this.viewportHeight}px`\n };\n }\n return {};\n }\n },\n watch: {\n fields: {\n handler() {\n this.$nextTick(() => {\n this.calculateLabelWidths();\n });\n },\n deep: true\n }\n },\n components: {\n Footer,\n ToggleDark,\n LanguageSwitcher,\n Logo\n },\n mounted() {\n // 初始化表单数据\n this.initFormData();\n // 初始化背景图\n this.initializeBackground(this.backgroundKey, '.login', !this.isAdmin, true);\n // 在下一个tick计算标签宽度,确保DOM已经渲染\n this.$nextTick(() => {\n this.calculateLabelWidths();\n });\n // 监听 visualViewport 变化,检测虚拟键盘弹出\n this._handleViewportResize = this.handleViewportResize.bind(this);\n if (window.visualViewport) {\n this._initialHeight = window.visualViewport.height;\n window.visualViewport.addEventListener('resize', this._handleViewportResize);\n }\n },\n beforeDestroy() {\n if (window.visualViewport && this._handleViewportResize) {\n window.visualViewport.removeEventListener('resize', this._handleViewportResize);\n }\n },\n methods: {\n initFormData() {\n // 根据字段配置初始化表单数据\n const newFormData = {};\n this.fields.forEach(field => {\n newFormData[field.key] = '';\n });\n this.formData = newFormData;\n // 初始化下划线宽度数组\n this.labelUnderlineWidths = new Array(this.fields.length).fill(0);\n },\n calculateLabelWidths() {\n // 计算每个标签的文字宽度\n this.$nextTick(() => {\n this.fields.forEach((field, index) => {\n const labelRef = this.$refs[`inputLabel${index}`];\n if (labelRef && labelRef[0]) {\n // 创建一个临时的canvas来测量文字宽度\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n\n // 获取标签的计算样式\n const labelElement = labelRef[0];\n const computedStyle = window.getComputedStyle(labelElement);\n\n // 设置font样式以匹配标签\n context.font = `${computedStyle.fontWeight} ${computedStyle.fontSize} ${computedStyle.fontFamily}`;\n\n // 测量文字宽度\n const textWidth = context.measureText(field.label).width;\n\n // 添加一些额外的边距,确保下划线覆盖整个文字\n this.labelUnderlineWidths[index] = Math.ceil(textWidth) + 3;\n }\n });\n });\n },\n handleSubmit() {\n if (this.loading) return;\n // 触发父组件的提交事件,传递表单数据\n this.$emit('submit', {\n ...this.formData\n });\n },\n handleViewportResize() {\n if (!window.visualViewport) return;\n const currentHeight = window.visualViewport.height;\n // 键盘高度 = 初始视口高度 - 当前视口高度\n const keyboardHeight = this._initialHeight - currentHeight;\n // 设定阈值:视口缩小超过 150px 才认为是虚拟键盘弹出\n // 避免地址栏收缩等小幅变化误触发\n const KEYBOARD_THRESHOLD = 150;\n if (keyboardHeight > KEYBOARD_THRESHOLD) {\n // 将容器高度设为当前可见视口高度\n // flex 居中会让登录卡片自然在可见区域内居中,不会顶部溢出或底部留白\n this.viewportHeight = currentHeight;\n } else {\n this.viewportHeight = 0;\n }\n },\n handleInputFocus(event) {\n this.isFocused = true;\n const container = event.target.closest('.input-container');\n if (container) {\n const wrapper = container.querySelector('.input-wrapper');\n if (wrapper) {\n wrapper.classList.add('focused');\n }\n }\n },\n handleInputBlur(event) {\n this.isFocused = false;\n const container = event.target.closest('.input-container');\n if (container) {\n const wrapper = container.querySelector('.input-wrapper');\n if (wrapper) {\n wrapper.classList.remove('focused');\n }\n }\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./BaseLogin.vue?vue&type=template&id=583fe0d5&scoped=true\"\nimport script from \"./BaseLogin.vue?vue&type=script&lang=js\"\nexport * from \"./BaseLogin.vue?vue&type=script&lang=js\"\n\nimport \"./BaseLogin.vue?vue&type=style&index=0&id=583fe0d5&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-583fe0d5\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\";\nconst _hoisted_1 = {\n key: 0,\n class: \"page-footer\"\n};\nconst _hoisted_2 = [\"href\"];\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\");\n return !$options.disableFooter ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createElementVNode(\"p\", null, [_createTextVNode(\"© 2024-\" + _toDisplayString($options.thisYear) + \" Designed by \", 1), _cache[0] || (_cache[0] = _createElementVNode(\"a\", {\n class: \"footer-name\",\n href: \"https://github.com/MarSeventh\",\n target: \"_blank\"\n }, \"SanyueQi\", -1)), _cache[1] || (_cache[1] = _createTextVNode(\" for You! \", -1)), _createElementVNode(\"a\", {\n href: $options.footerLink,\n target: \"_blank\"\n }, [_createVNode(_component_font_awesome_icon, {\n icon: \"paper-plane\",\n class: \"footer-link-icon\"\n })], 8, _hoisted_2)])])) : _createCommentVNode(\"\", true);\n}","import { mapGetters } from 'vuex';\nexport default {\n name: 'Footer',\n computed: {\n ...mapGetters(['userConfig']),\n footerLink() {\n return this.userConfig?.footerLink || 'https://github.com/MarSeventh';\n },\n thisYear() {\n return new Date().getFullYear();\n },\n disableFooter() {\n return this.userConfig?.disableFooter || false;\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./Footer.vue?vue&type=template&id=08acbaa9&scoped=true\"\nimport script from \"./Footer.vue?vue&type=script&lang=js\"\nexport * from \"./Footer.vue?vue&type=script&lang=js\"\n\nimport \"./Footer.vue?vue&type=style&index=0&id=08acbaa9&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-08acbaa9\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, Transition as _Transition, withCtx as _withCtx, createVNode as _createVNode } from \"vue\";\nconst _hoisted_1 = {\n id: \"themeMask\"\n};\nconst _hoisted_2 = [\"cx\", \"cy\", \"r\"];\nconst _hoisted_3 = [\"r\"];\nconst _hoisted_4 = [\"opacity\"];\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\");\n return _openBlock(), _createElementBlock(\"div\", {\n id: \"themeToggle\",\n onClick: _cache[0] || (_cache[0] = (...args) => $options.handleToggleClick && $options.handleToggleClick(...args))\n }, [_createVNode(_Transition, {\n name: \"icon-fade\",\n mode: \"out-in\"\n }, {\n default: _withCtx(() => [!$data.isAuto ? (_openBlock(), _createElementBlock(\"svg\", {\n key: \"sun-moon\",\n class: _normalizeClass([\"theme_toggle_svg\", {\n 'dark': $data.isDark\n }]),\n width: \"1.5em\",\n height: \"1.5em\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n stroke: \"currentColor\"\n }, [_createElementVNode(\"mask\", _hoisted_1, [_cache[1] || (_cache[1] = _createElementVNode(\"rect\", {\n x: \"0\",\n y: \"0\",\n width: \"100%\",\n height: \"100%\",\n fill: \"white\"\n }, null, -1)), _createElementVNode(\"circle\", {\n class: \"theme_toggle_circle1\",\n fill: \"black\",\n cx: $data.isDark ? '50%' : '100%',\n cy: $data.isDark ? '23%' : '0%',\n r: $data.isDark ? '9' : '5'\n }, null, 8, _hoisted_2)]), _createElementVNode(\"circle\", {\n class: \"theme_toggle_circle2\",\n cx: \"12\",\n cy: \"12\",\n r: $data.isDark ? '9' : '5',\n mask: \"url(#themeMask)\"\n }, null, 8, _hoisted_3), _createElementVNode(\"g\", {\n class: \"theme_toggle_g\",\n stroke: \"currentColor\",\n opacity: $data.isDark ? 0 : 1\n }, [...(_cache[2] || (_cache[2] = [_createElementVNode(\"line\", {\n x1: \"12\",\n y1: \"1\",\n x2: \"12\",\n y2: \"3\"\n }, null, -1), _createElementVNode(\"line\", {\n x1: \"12\",\n y1: \"21\",\n x2: \"12\",\n y2: \"23\"\n }, null, -1), _createElementVNode(\"line\", {\n x1: \"4.22\",\n y1: \"4.22\",\n x2: \"5.64\",\n y2: \"5.64\"\n }, null, -1), _createElementVNode(\"line\", {\n x1: \"18.36\",\n y1: \"18.36\",\n x2: \"19.78\",\n y2: \"19.78\"\n }, null, -1), _createElementVNode(\"line\", {\n x1: \"1\",\n y1: \"12\",\n x2: \"3\",\n y2: \"12\"\n }, null, -1), _createElementVNode(\"line\", {\n x1: \"21\",\n y1: \"12\",\n x2: \"23\",\n y2: \"12\"\n }, null, -1), _createElementVNode(\"line\", {\n x1: \"4.22\",\n y1: \"19.78\",\n x2: \"5.64\",\n y2: \"18.36\"\n }, null, -1), _createElementVNode(\"line\", {\n x1: \"18.36\",\n y1: \"5.64\",\n x2: \"19.78\",\n y2: \"4.22\"\n }, null, -1)]))], 8, _hoisted_4)], 2)) : (_openBlock(), _createBlock(_component_font_awesome_icon, {\n key: \"auto-mode\",\n icon: \"circle-half-stroke\",\n class: \"auto-icon\",\n style: {\n \"font-size\": \"1.5em\",\n \"color\": \"var(--theme-toggle-color)\"\n }\n }))]),\n _: 1\n })]);\n}","export default {\n name: 'ToggleDark',\n data() {\n return {\n isDark: this.$store.getters.useDarkMode,\n isAuto: !this.$store.getters.cusDarkMode\n };\n },\n methods: {\n handleToggleClick() {\n // 三种状态循环:亮色 -> 暗色 -> 跟随系统 -> 亮色\n if (this.isAuto) {\n // 当前是自动模式,切换到亮色\n this.isDark = false;\n this.isAuto = false;\n this.$store.commit('setCusDarkMode', true);\n this.$store.commit('setUseDarkMode', false);\n } else if (!this.isDark) {\n // 当前是亮色,切换到暗色\n this.isDark = true;\n this.$store.commit('setCusDarkMode', true);\n this.$store.commit('setUseDarkMode', true);\n } else {\n // 当前是暗色,切换到跟随系统\n this.isAuto = true;\n this.$store.commit('setCusDarkMode', false);\n }\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./ToggleDark.vue?vue&type=template&id=66e6a1f0&scoped=true\"\nimport script from \"./ToggleDark.vue?vue&type=script&lang=js\"\nexport * from \"./ToggleDark.vue?vue&type=script&lang=js\"\n\nimport \"./ToggleDark.vue?vue&type=style&index=0&id=66e6a1f0&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-66e6a1f0\"]])\n\nexport default __exports__"],"names":["_hoisted_1","_hoisted_2","render","_ctx","_cache","$props","$setup","$data","$options","href","logoHref","target","class","logo","link","logoClasses","alt","src","logoUrl","name","props","type","String","default","validator","value","includes","customSrc","position","size","enableHover","Boolean","useConfigLink","computed","this","userConfig","logoLink","__exports__","tabindex","_hoisted_3","_hoisted_4","key","_hoisted_5","_component_ToggleDark","_component_LanguageSwitcher","_component_Logo","_component_el_icon","_component_el_input","_component_el_button","_component_Footer","style","viewportStyle","title","fields","field","index","ref_for","ref","labelUnderlineWidths","label","modelValue","formData","$event","placeholder","showPassword","onKeyup","handleSubmit","onFocus","handleInputFocus","onBlur","handleInputBlur","_","icon","fn","undefined","loading","onClick","disabled","computedSubmitText","mixins","backgroundManager","required","Array","submitText","backgroundKey","isAdmin","data","isFocused","viewportHeight","$t","height","minHeight","watch","handler","$nextTick","calculateLabelWidths","deep","components","Footer","ToggleDark","LanguageSwitcher","Logo","mounted","initFormData","initializeBackground","_handleViewportResize","handleViewportResize","bind","window","visualViewport","_initialHeight","addEventListener","beforeDestroy","removeEventListener","methods","newFormData","forEach","length","fill","labelRef","$refs","canvas","document","createElement","context","getContext","labelElement","computedStyle","getComputedStyle","font","fontWeight","fontSize","fontFamily","textWidth","measureText","width","Math","ceil","$emit","currentHeight","keyboardHeight","KEYBOARD_THRESHOLD","event","container","closest","wrapper","querySelector","classList","add","remove","_component_font_awesome_icon","disableFooter","thisYear","footerLink","Date","getFullYear","id","args","handleToggleClick","mode","isAuto","isDark","viewBox","stroke","x","y","cx","cy","r","mask","opacity","x1","y1","x2","y2","$store","getters","useDarkMode","cusDarkMode","commit"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/frontend-dist/js/283.5d4f325d.js.map.gz b/frontend-dist/js/283.5d4f325d.js.map.gz new file mode 100644 index 0000000000000000000000000000000000000000..b8235018dc50734a4a3232376928a8fc874bba9d GIT binary patch literal 9679 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 R$3$`ae*@j`yR&+I007^405|{u literal 0 HcmV?d00001 diff --git a/frontend-dist/js/283.efe323af.js.gz b/frontend-dist/js/283.efe323af.js.gz deleted file mode 100644 index d494e34c5a6c3b851b8d5d27e0c6bb1ca361f685..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3481 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 Hw<7=m!A0t? diff --git a/frontend-dist/js/283.efe323af.js.map.gz b/frontend-dist/js/283.efe323af.js.map.gz deleted file mode 100644 index d29c28997e125ec41da57f13888fdaf272c269f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9678 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 QiQ@ME2H5J8LwbDx06|6#LjV8( diff --git a/frontend-dist/js/320.c04c60ec.js b/frontend-dist/js/320.c04c60ec.js deleted file mode 100644 index e6333962..00000000 --- a/frontend-dist/js/320.c04c60ec.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self["webpackChunksanyue_imghub"]=self["webpackChunksanyue_imghub"]||[]).push([[320],{213:function(e,r,t){t(85331),t(19104)},4885:function(e,r,t){t(85331)},10456:function(e,r,t){t(85331)},13378:function(e,r,t){t(85331),t(38736),t(79899)},15616:function(e,r,t){t(85331),t(97197)},18785:function(e,r,t){t(85331)},19104:function(e,r,t){t(85331)},23597:function(e,r,t){t(85331)},30694:function(e,r,t){t(85331)},33892:function(e,r,t){t.d(r,{A:function(){return A}});var i=t(99114),o=(t(85331),t(30694),t(49385)),n=(t(37952),t(30650)),a=(t(19104),t(31802)),s=(t(13378),t(80047)),l=(t(99648),t(56768)),c=t(45130),d=t(24232);const u={class:"directory-tree-picker"},h={class:"tree-container"},p={key:0,class:"error-state"},f={class:"error-text"},y={class:"node-label"},v={class:"tree-container"},k={key:0,class:"error-state"},b={class:"error-text"},w={class:"node-label"};function m(e,r,t,m,g,C){const D=(0,l.g2)("font-awesome-icon"),$=s.S2,T=a.qk,A=n.Vc,V=o.pw,_=i.A;return(0,l.uX)(),(0,l.CE)("div",u,[C.isDesktop?((0,l.uX)(),(0,l.Wv)(A,{key:0,visible:g.popoverVisible,"onUpdate:visible":r[1]||(r[1]=e=>g.popoverVisible=e),placement:"bottom-start",width:320,trigger:"click","popper-class":"directory-tree-popover","show-arrow":!0,"hide-after":0,"show-after":50,transition:"el-zoom-in-top"},{reference:(0,l.k6)(()=>[(0,l.Lk)("span",{class:"popover-trigger-wrapper",onClick:r[0]||(r[0]=(0,c.D$)(()=>{},["stop"]))},[(0,l.RG)(e.$slots,"trigger",{},void 0,!0)])]),default:(0,l.k6)(()=>[(0,l.bo)(((0,l.uX)(),(0,l.CE)("div",h,[g.error?((0,l.uX)(),(0,l.CE)("div",p,[(0,l.bF)(D,{icon:"exclamation-circle",class:"error-icon"}),(0,l.Lk)("span",f,(0,d.v_)(g.error),1),(0,l.bF)($,{type:"primary",size:"small",onClick:C.fetchDirectoryTree},{default:(0,l.k6)(()=>[(0,l.eW)((0,d.v_)(e.$t("directoryTree.retry")),1)]),_:1},8,["onClick"])])):((0,l.uX)(),(0,l.Wv)(T,{key:1,ref:"treeRef",data:g.treeData,props:g.treeProps,"node-key":"path","default-expand-all":!1,"expand-on-click-node":!1,"highlight-current":!0,"current-node-key":t.currentDirectory,class:"directory-tree",onNodeClick:C.handleNodeClick},{default:(0,l.k6)(({node:e,data:r})=>[(0,l.Lk)("span",{class:(0,d.C4)(["tree-node",{"is-current":r.path===t.currentDirectory}])},[(0,l.bF)(D,{icon:e.expanded?"folder-open":"folder",class:"folder-icon"},null,8,["icon"]),(0,l.Lk)("span",y,(0,d.v_)(r.name),1)],2)]),_:1},8,["data","props","current-node-key","onNodeClick"]))])),[[_,g.loading]])]),_:3},8,["visible"])):((0,l.uX)(),(0,l.CE)(l.FK,{key:1},[(0,l.Lk)("span",{class:"drawer-trigger-wrapper",onClick:r[2]||(r[2]=(...e)=>C.openDrawer&&C.openDrawer(...e))},[(0,l.RG)(e.$slots,"trigger",{},void 0,!0)]),(0,l.bF)(V,{modelValue:g.drawerVisible,"onUpdate:modelValue":r[3]||(r[3]=e=>g.drawerVisible=e),direction:"btt",size:"60%","show-close":!0,"with-header":!0,"z-index":3e3,title:e.$t("directoryTree.selectDirectory"),class:"directory-tree-drawer"},{default:(0,l.k6)(()=>[(0,l.bo)(((0,l.uX)(),(0,l.CE)("div",v,[g.error?((0,l.uX)(),(0,l.CE)("div",k,[(0,l.bF)(D,{icon:"exclamation-circle",class:"error-icon"}),(0,l.Lk)("span",b,(0,d.v_)(g.error),1),(0,l.bF)($,{type:"primary",size:"small",onClick:C.fetchDirectoryTree},{default:(0,l.k6)(()=>[(0,l.eW)((0,d.v_)(e.$t("directoryTree.retry")),1)]),_:1},8,["onClick"])])):((0,l.uX)(),(0,l.Wv)(T,{key:1,ref:"treeRefMobile",data:g.treeData,props:g.treeProps,"node-key":"path","default-expand-all":!1,"expand-on-click-node":!1,"highlight-current":!0,"current-node-key":t.currentDirectory,class:"directory-tree mobile-tree",onNodeClick:C.handleNodeClick},{default:(0,l.k6)(({node:e,data:r})=>[(0,l.Lk)("span",{class:(0,d.C4)(["tree-node",{"is-current":r.path===t.currentDirectory}])},[(0,l.bF)(D,{icon:e.expanded?"folder-open":"folder",class:"folder-icon"},null,8,["icon"]),(0,l.Lk)("span",w,(0,d.v_)(r.name),1)],2)]),_:1},8,["data","props","current-node-key","onNodeClick"]))])),[[_,g.loading]])]),_:1},8,["modelValue","title"])],64))])}var g=t(457),C=t(70797),D={name:"DirectoryTreePicker",props:{currentDirectory:{type:String,default:""},source:{type:String,default:"upload",validator:e=>["upload","admin"].includes(e)}},data(){return{popoverVisible:!1,drawerVisible:!1,treeData:[],loading:!1,error:"",treeProps:{children:"children",label:"name"},windowWidth:window.innerWidth}},computed:{isDesktop(){return this.windowWidth>=769}},watch:{popoverVisible(e){e?this.fetchDirectoryTree():setTimeout(()=>{if(!this.popoverVisible&&this.$refs.treeRef){const e=this.$refs.treeRef.store;for(const r in e.nodesMap)e.nodesMap[r].expanded=!1}},200)},drawerVisible(e){e?this.fetchDirectoryTree():setTimeout(()=>{if(!this.drawerVisible&&this.$refs.treeRefMobile){const e=this.$refs.treeRefMobile.store;for(const r in e.nodesMap)e.nodesMap[r].expanded=!1}},300)},currentDirectory(e){this.$nextTick(()=>{this.$refs.treeRef&&e&&this.$refs.treeRef.setCurrentKey(e),this.$refs.treeRefMobile&&e&&this.$refs.treeRefMobile.setCurrentKey(e)})}},mounted(){window.addEventListener("resize",this.handleResize)},beforeUnmount(){window.removeEventListener("resize",this.handleResize)},methods:{handleResize(){this.windowWidth=window.innerWidth},openDrawer(){this.drawerVisible=!0},async fetchDirectoryTree(){this.loading=!0,this.error="";try{let e;if("admin"===this.source){const r=await(0,C.A)("/api/directoryTree",{method:"GET"});if(!r.ok)return void(401===r.status?this.error=this.$t("directoryTree.authFailed"):this.error=this.$t("directoryTree.serverError"));e=await r.json()}else{const r=await g.A.get("/api/directoryTree",{withAuthCode:!0});e=r.data}e.tree?this.treeData=[e.tree]:this.treeData=[]}catch(e){console.error("Failed to fetch directory tree:",e),401===e.response?.status?this.error=this.$t("directoryTree.authFailed"):this.error=this.$t("directoryTree.loadFailed")}finally{this.loading=!1}},handleNodeClick(e){let r=e.path;r&&!r.startsWith("/")?r="/"+r:r||(r="/"),this.$emit("select",r),this.popoverVisible=!1,this.drawerVisible=!1}}},$=t(71241);const T=(0,$.A)(D,[["render",m],["__scopeId","data-v-62eab69a"]]);var A=T},34396:function(e,r,t){t(85331),t(4885)},34896:function(e,r,t){t(85331)},37952:function(e,r,t){t(85331),t(97197)},38736:function(e,r,t){t(85331)},40670:function(e,r,t){t(85331),t(99648),t(19104),t(85970)},62388:function(e,r,t){t.d(r,{G:function(){return o}});var i=t(46638);function o(e,{strict:r=!0}={}){if(!e||""===e.trim())return{valid:!0};if("/"===e)return{valid:!0};if(!e.startsWith("/"))return{valid:!1,error:i.Ay.global.t("validation.pathMustStartWithSlash")};if(/(?:^|\/)\.\.(\/|$)/.test(e)||e.includes(".."))return{valid:!1,error:i.Ay.global.t("validation.pathTraversalNotAllowed")};const t=r?/\/\.(\/|$)/:/\/\.\//;if(t.test(e))return{valid:!1,error:i.Ay.global.t("validation.singleDotNotAllowed")};if(e.includes("//"))return{valid:!1,error:i.Ay.global.t("validation.consecutiveSlashNotAllowed")};const o=/[\\:\*\?"'<>\| \(\)\[\]\{\}#%\^`~;@&=\+\$,]/;return o.test(e)?{valid:!1,error:i.Ay.global.t("validation.invalidCharacters")}:{valid:!0}}},67819:function(e,r,t){t(85331)},70797:function(e,r,t){t.d(r,{A:function(){return a}});t(44114);var i=t(25507),o=t(16915);let n=!1;async function a(e,r={}){r.credentials="include",r.headers={...r.headers};const t=await fetch(e,r);return 401!==t.status||n||(n=!0,i.A.commit("setAdminLoggedIn",!1),o.A.push("/adminLogin").finally(()=>{n=!1})),t}},79899:function(e,r,t){t(85331)},85970:function(e,r,t){t(85331)},88830:function(e,r,t){t(85331)},95385:function(e,r,t){t(85331)},96808:function(e,r,t){t(85331),t(18785),t(67819),t(85970),t(19104)}}]); -//# sourceMappingURL=320.c04c60ec.js.map \ No newline at end of file diff --git a/frontend-dist/js/320.c04c60ec.js.gz b/frontend-dist/js/320.c04c60ec.js.gz deleted file mode 100644 index d9368882c4eb76c0e50f93c244ac74da479c1587..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2652 zcmV-i3ZwNOiwFP!000023hh~IbK|xZ{oY?8Bd!ZH5JZW3QsufHdy~mzHBzrv}iT`V7g2rEo6#;Dym7L zalhmHO+qzp4w_z@l(gONcU~M<(x%t$bdUA>ey@Mbj^FS3UGt|m=nn>FMyK2C9-A@f zH3vO2u-`lGnu*{@f6MO-dPn+wuRAz4-}n22*7JTAV?~RLeFrHN=%q?)7iCF?E3RrH z)OavxHrs^C5I;fDgmNQw3uL6tzSkmz=2mL*ZKQqA zYxfADiIENl-L{o>y1j0n5E_LVw>wSWBQy>*Znax}iwq-~=DM~FizwlF9-vq#h_qDq zb*%vEnTYN{p_0ybBdk1AS3 zmvnT=M1BSNotD`-eme5wir@=c#k&%@xJ@9Ku}o%i1?qznP$bhIvY2ZKsv#&)qvm9@ z!R9A~@YT~PArP7+Jc0$JIzYElYq>BvR2tE>i1j@1TOQR)%x0hh6eS|MLlk8)%Rtp_ zD$#S0I2(wfd@k2@u9RG(;KZY7E@G(jsRo4tZ`h<3R@^v^s7xMXqbnqXk3c_MXAQKb~oqNFP+;+jWKJTf5@LSvZnWugyx zc`FIVFQZ^iM>A&OdVXY7RylP06~R}uFc=IFe2Nmj;3jwVNT?_Q^tdi8RLe@)gKSNW zBxb7{f-BpEHmhOA!YM8EeFg!_lvr?ek7zD_h5+RYo+SHRUa~3ZXnwT?!nFb@X>lYM z@R8u1X<(-s?_p$SGX+}RBVyc{5PB0dOWLO+R9QqO*CaStDc7!2npDBm5yv~2A{uke zgBdgJE3P@sl+5x<@V)s@9Vy(wJql39^&C-DMNo%N8BgQ72|74wQdG4~x{W(^Gt>3V z#cZC4*<9D7rBaY;2mPv1-O=S{;s>=*g6jZGpI;&0x zPns^1#ICY!PoBf|eh*j0QoaBS588SJ5fii_DYK^NK;{im?$T#!d_o8vjc(|SC6dP? zolPcAq3;xK>GUAtOl2nQt8XjNZL@KJkz&Qy#|f$B2&pv*F=Gr!`0A3Gyj|IuXJ-#v zZp3Hu)4s4j&|)EDNIvjnY4#H5-1DtuKgjGRzH`v8c9Tbw%x2<{YZ?4j>n&Myz29#) zgD8KyZi{a!4TBBM_0pWm9*~q2o043zWS2 zRg`@9FQw$${}oDpD{qC#%6}^{*A_N_|C96+r`P{klCBg!AS#M1dl*2{Zre;P&7Esz zZ#+FhFGG!cUT@GN^eQZjhXHz2C*QkkPKCtcX+8s2fbX>u>1=o4L#U*=T&f6O=wD{W zb3|7>5i!?N1rWX(?Zk-33z4D;6KRwzW5_X(vb5;fT_B6c=XZnaM;vSf+d2wH6I!Lp zh%J)@2+>_x1w}L$Nvt3Z(Domq_D&QalNEDe5@{^gAMI7Z{bwRgL0L&z(nv0{rG_{t zcGs8vZCB4l&K_uZ752J=vZQOSqj~To77V0-b35fZabXhVps&ROn*KHKnPLgcYMclH4&+pTyb_i5%Mpf(K ziRaw21s@_b)at%SK-XX>rnq7mvrm{oj(|$)Bu3|nV)BkuMQ@Iqxa~E=FjUMu$1L;n2mZLFeRj0qOFjRJiv(gsf?pn4)BPoO8n$a%4}f=Dxg`GB|SAeceB-QZeJ>|&C|`P0qYeVjgW%W9$Xd^Izl%$ zc_cIV#_X+TCF`qtw*~yRJK$(CaqqAf;dM#h8Aue*dK>>8}qwNy~>%((P{7@00y|sKh`E_Z1>g zhK0hSBzDh&%?2S0R;|PWldAj+d$=(bWXYyshaBuXfv326GHiQf5$xig%@TRb6Q(h$ zPESIn7J_e=xqff-7&Y$`p3f1n`WyH>_;E9CkTDxGJZ@}GNrP#~H3qWT!2Xnl82gR3 zuN7Z`%6amg)E7x2*S4A}Wa?0zH^z;f?Z7t1jfQbfZ$0^JySYeb30z72*ru4`haok7 zOFE6;5G}P>flcJ0sASj}jmN?GkK=Rnhd;d_}9M=|9lpX zzZ{>^Nn^ML**4zuU+<1cZR2vz6^}Hi9Fa2EW2h`?x7TkDj+Bu-OgJSWRF@^S-{Fqr)pE_T{(j#-)<5X@M?c#Qx_$5H z7eo8q&-}3n*wf$sqh&cE!{0R;U)0 $data.popoverVisible = $event),\n placement: \"bottom-start\",\n width: 320,\n trigger: \"click\",\n \"popper-class\": \"directory-tree-popover\",\n \"show-arrow\": true,\n \"hide-after\": 0,\n \"show-after\": 50,\n transition: \"el-zoom-in-top\"\n }, {\n reference: _withCtx(() => [_createElementVNode(\"span\", {\n class: \"popover-trigger-wrapper\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(() => {}, [\"stop\"]))\n }, [_renderSlot(_ctx.$slots, \"trigger\", {}, undefined, true)])]),\n default: _withCtx(() => [_withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_2, [$data.error ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [_createVNode(_component_font_awesome_icon, {\n icon: \"exclamation-circle\",\n class: \"error-icon\"\n }), _createElementVNode(\"span\", _hoisted_4, _toDisplayString($data.error), 1), _createVNode(_component_el_button, {\n type: \"primary\",\n size: \"small\",\n onClick: $options.fetchDirectoryTree\n }, {\n default: _withCtx(() => [_createTextVNode(_toDisplayString(_ctx.$t('directoryTree.retry')), 1)]),\n _: 1\n }, 8, [\"onClick\"])])) : (_openBlock(), _createBlock(_component_el_tree, {\n key: 1,\n ref: \"treeRef\",\n data: $data.treeData,\n props: $data.treeProps,\n \"node-key\": \"path\",\n \"default-expand-all\": false,\n \"expand-on-click-node\": false,\n \"highlight-current\": true,\n \"current-node-key\": $props.currentDirectory,\n class: \"directory-tree\",\n onNodeClick: $options.handleNodeClick\n }, {\n default: _withCtx(({\n node,\n data\n }) => [_createElementVNode(\"span\", {\n class: _normalizeClass([\"tree-node\", {\n 'is-current': data.path === $props.currentDirectory\n }])\n }, [_createVNode(_component_font_awesome_icon, {\n icon: node.expanded ? 'folder-open' : 'folder',\n class: \"folder-icon\"\n }, null, 8, [\"icon\"]), _createElementVNode(\"span\", _hoisted_5, _toDisplayString(data.name), 1)], 2)]),\n _: 1\n }, 8, [\"data\", \"props\", \"current-node-key\", \"onNodeClick\"]))])), [[_directive_loading, $data.loading]])]),\n _: 3\n }, 8, [\"visible\"])) : (_openBlock(), _createElementBlock(_Fragment, {\n key: 1\n }, [_createElementVNode(\"span\", {\n class: \"drawer-trigger-wrapper\",\n onClick: _cache[2] || (_cache[2] = (...args) => $options.openDrawer && $options.openDrawer(...args))\n }, [_renderSlot(_ctx.$slots, \"trigger\", {}, undefined, true)]), _createVNode(_component_el_drawer, {\n modelValue: $data.drawerVisible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.drawerVisible = $event),\n direction: \"btt\",\n size: \"60%\",\n \"show-close\": true,\n \"with-header\": true,\n \"z-index\": 3000,\n title: _ctx.$t('directoryTree.selectDirectory'),\n class: \"directory-tree-drawer\"\n }, {\n default: _withCtx(() => [_withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_6, [$data.error ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [_createVNode(_component_font_awesome_icon, {\n icon: \"exclamation-circle\",\n class: \"error-icon\"\n }), _createElementVNode(\"span\", _hoisted_8, _toDisplayString($data.error), 1), _createVNode(_component_el_button, {\n type: \"primary\",\n size: \"small\",\n onClick: $options.fetchDirectoryTree\n }, {\n default: _withCtx(() => [_createTextVNode(_toDisplayString(_ctx.$t('directoryTree.retry')), 1)]),\n _: 1\n }, 8, [\"onClick\"])])) : (_openBlock(), _createBlock(_component_el_tree, {\n key: 1,\n ref: \"treeRefMobile\",\n data: $data.treeData,\n props: $data.treeProps,\n \"node-key\": \"path\",\n \"default-expand-all\": false,\n \"expand-on-click-node\": false,\n \"highlight-current\": true,\n \"current-node-key\": $props.currentDirectory,\n class: \"directory-tree mobile-tree\",\n onNodeClick: $options.handleNodeClick\n }, {\n default: _withCtx(({\n node,\n data\n }) => [_createElementVNode(\"span\", {\n class: _normalizeClass([\"tree-node\", {\n 'is-current': data.path === $props.currentDirectory\n }])\n }, [_createVNode(_component_font_awesome_icon, {\n icon: node.expanded ? 'folder-open' : 'folder',\n class: \"folder-icon\"\n }, null, 8, [\"icon\"]), _createElementVNode(\"span\", _hoisted_9, _toDisplayString(data.name), 1)], 2)]),\n _: 1\n }, 8, [\"data\", \"props\", \"current-node-key\", \"onNodeClick\"]))])), [[_directive_loading, $data.loading]])]),\n _: 1\n }, 8, [\"modelValue\", \"title\"])], 64))]);\n}","import axios from '@/utils/axios';\nimport fetchWithAuth from '@/utils/fetchWithAuth';\nexport default {\n name: 'DirectoryTreePicker',\n props: {\n currentDirectory: {\n type: String,\n default: ''\n },\n source: {\n type: String,\n default: 'upload',\n validator: value => ['upload', 'admin'].includes(value)\n }\n },\n data() {\n return {\n popoverVisible: false,\n drawerVisible: false,\n treeData: [],\n loading: false,\n error: '',\n treeProps: {\n children: 'children',\n label: 'name'\n },\n windowWidth: window.innerWidth\n };\n },\n computed: {\n isDesktop() {\n return this.windowWidth >= 769;\n }\n },\n watch: {\n popoverVisible(newVal) {\n if (newVal) {\n this.fetchDirectoryTree();\n } else {\n // 弹窗关闭后延迟折叠所有节点,避免下次打开时出现折叠动画\n setTimeout(() => {\n if (!this.popoverVisible && this.$refs.treeRef) {\n const store = this.$refs.treeRef.store;\n for (const key in store.nodesMap) {\n store.nodesMap[key].expanded = false;\n }\n }\n }, 200);\n }\n },\n drawerVisible(newVal) {\n if (newVal) {\n this.fetchDirectoryTree();\n } else {\n // 抽屉关闭后延迟折叠所有节点\n setTimeout(() => {\n if (!this.drawerVisible && this.$refs.treeRefMobile) {\n const store = this.$refs.treeRefMobile.store;\n for (const key in store.nodesMap) {\n store.nodesMap[key].expanded = false;\n }\n }\n }, 300);\n }\n },\n currentDirectory(newVal) {\n this.$nextTick(() => {\n if (this.$refs.treeRef && newVal) {\n this.$refs.treeRef.setCurrentKey(newVal);\n }\n if (this.$refs.treeRefMobile && newVal) {\n this.$refs.treeRefMobile.setCurrentKey(newVal);\n }\n });\n }\n },\n mounted() {\n window.addEventListener('resize', this.handleResize);\n },\n beforeUnmount() {\n window.removeEventListener('resize', this.handleResize);\n },\n methods: {\n handleResize() {\n this.windowWidth = window.innerWidth;\n },\n openDrawer() {\n this.drawerVisible = true;\n },\n async fetchDirectoryTree() {\n this.loading = true;\n this.error = '';\n try {\n let data;\n if (this.source === 'admin') {\n const response = await fetchWithAuth('/api/directoryTree', {\n method: 'GET'\n });\n if (!response.ok) {\n if (response.status === 401) {\n this.error = this.$t('directoryTree.authFailed');\n } else {\n this.error = this.$t('directoryTree.serverError');\n }\n return;\n }\n data = await response.json();\n } else {\n const response = await axios.get('/api/directoryTree', {\n withAuthCode: true\n });\n data = response.data;\n }\n if (data.tree) {\n this.treeData = [data.tree];\n } else {\n this.treeData = [];\n }\n } catch (err) {\n console.error('Failed to fetch directory tree:', err);\n if (err.response?.status === 401) {\n this.error = this.$t('directoryTree.authFailed');\n } else {\n this.error = this.$t('directoryTree.loadFailed');\n }\n } finally {\n this.loading = false;\n }\n },\n handleNodeClick(data) {\n let path = data.path;\n if (path && !path.startsWith('/')) {\n path = '/' + path;\n } else if (!path) {\n path = '/';\n }\n this.$emit('select', path);\n this.popoverVisible = false;\n this.drawerVisible = false;\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./DirectoryTreePicker.vue?vue&type=template&id=62eab69a&scoped=true\"\nimport script from \"./DirectoryTreePicker.vue?vue&type=script&lang=js\"\nexport * from \"./DirectoryTreePicker.vue?vue&type=script&lang=js\"\n\nimport \"./DirectoryTreePicker.vue?vue&type=style&index=0&id=62eab69a&scoped=true&lang=css\"\nimport \"./DirectoryTreePicker.vue?vue&type=style&index=1&id=62eab69a&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-62eab69a\"]])\n\nexport default __exports__","/**\r\n * 路径验证器模块\r\n * 提供共享的文件夹路径验证功能,供 AdminDashBoard 和 UploadHome 共同使用\r\n */\r\nimport i18n from '@/locales'\r\n\r\n/**\r\n * 验证文件夹路径的合法性\r\n * @param {string} path - 要验证的路径\r\n * @param {{ strict?: boolean }} options - 选项,strict 为 true 时检查末尾单独的 \".\"(默认 true)\r\n * @returns {{ valid: boolean, error?: string }} 验证结果\r\n */\r\nexport function validateFolderPath(path, { strict = true } = {}) {\r\n // 如果路径为空或仅为空白字符,返回有效(表示根目录)\r\n if (!path || path.trim() === '') {\r\n return { valid: true };\r\n }\r\n \r\n // 如果路径仅为 \"/\",返回有效(表示根目录)\r\n if (path === '/') {\r\n return { valid: true };\r\n }\r\n \r\n // 检查路径是否以 \"/\" 开头\r\n if (!path.startsWith('/')) {\r\n return { \r\n valid: false, \r\n error: i18n.global.t('validation.pathMustStartWithSlash') \r\n };\r\n }\r\n\r\n // 检查路径穿越:包含 .. 的路径段\r\n if (/(?:^|\\/)\\.\\.(\\/|$)/.test(path) || path.includes('..')) {\r\n return {\r\n valid: false,\r\n error: i18n.global.t('validation.pathTraversalNotAllowed')\r\n };\r\n }\r\n\r\n // 检查路径中单独的 . 段\r\n // strict 模式检查 /./ 和末尾 /.,非 strict 模式仅检查 /./ 以允许用户继续输入如 /.123\r\n const dotPattern = strict ? /\\/\\.(\\/|$)/ : /\\/\\.\\//;\r\n if (dotPattern.test(path)) {\r\n return {\r\n valid: false,\r\n error: i18n.global.t('validation.singleDotNotAllowed')\r\n };\r\n }\r\n\r\n // 检查路径是否包含连续的斜杠\r\n if (path.includes('//')) {\r\n return { \r\n valid: false, \r\n error: i18n.global.t('validation.consecutiveSlashNotAllowed') \r\n };\r\n }\r\n \r\n // 检查路径是否包含非法字符\r\n // 非法字符包括: \\ : * ? \" ' < > | 空格 ( ) [ ] { } # % ^ ` ~ ; @ & = + $ ,\r\n const invalidChars = /[\\\\:\\*\\?\"'<>\\| \\(\\)\\[\\]\\{\\}#%\\^`~;@&=\\+\\$,]/;\r\n if (invalidChars.test(path)) {\r\n return { \r\n valid: false, \r\n error: i18n.global.t('validation.invalidCharacters') \r\n };\r\n }\r\n \r\n return { valid: true };\r\n}\r\n","import store from '@/store'\r\nimport router from '@/router'\r\n\r\nlet isRedirecting = false;\r\n\r\nexport default async function fetchWithAuth(url, options = {}) {\r\n // 开发环境下添加 /api 前缀\r\n url = process.env.NODE_ENV === 'production' ? url : `/api${url}`;\r\n\r\n // 确保包含凭据(HttpOnly Cookie 会自动携带)\r\n options.credentials = 'include';\r\n\r\n options.headers = {\r\n ...options.headers,\r\n };\r\n\r\n const response = await fetch(url, options);\r\n\r\n if (response.status === 401 && !isRedirecting) {\r\n isRedirecting = true;\r\n store.commit('setAdminLoggedIn', false);\r\n // 静默跳转登录页,不弹出错误提示(路由守卫负责认证 UX)\r\n router.push('/adminLogin').finally(() => {\r\n isRedirecting = false;\r\n });\r\n }\r\n\r\n return response;\r\n}\r\n"],"names":["_hoisted_1","class","_hoisted_2","_hoisted_3","key","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","render","_ctx","_cache","$props","$setup","$data","$options","_component_font_awesome_icon","_component_el_button","_component_el_tree","_component_el_popover","_component_el_drawer","_directive_loading","isDesktop","visible","popoverVisible","$event","placement","width","trigger","transition","reference","onClick","$slots","undefined","default","error","icon","type","size","fetchDirectoryTree","$t","_","ref","data","treeData","props","treeProps","currentDirectory","onNodeClick","handleNodeClick","node","path","expanded","name","loading","args","openDrawer","modelValue","drawerVisible","direction","title","String","source","validator","value","includes","children","label","windowWidth","window","innerWidth","computed","this","watch","newVal","setTimeout","$refs","treeRef","store","nodesMap","treeRefMobile","$nextTick","setCurrentKey","mounted","addEventListener","handleResize","beforeUnmount","removeEventListener","methods","response","fetchWithAuth","method","ok","status","json","axios","get","withAuthCode","tree","err","console","startsWith","$emit","__exports__","validateFolderPath","strict","trim","valid","i18n","global","t","test","dotPattern","invalidChars","isRedirecting","async","url","options","credentials","headers","fetch","commit","router","push","finally"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/frontend-dist/js/320.c04c60ec.js.map.gz b/frontend-dist/js/320.c04c60ec.js.map.gz deleted file mode 100644 index 27985e6a368386b8449f8909534323b5faac26cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6983 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 Zv%xRcPuaF7[(0,s.bF)(f,{icon:"home"})]),_:1},8,["onClick"])]),(0,s.Lk)("div",c,[(0,s.Lk)("div",d,[(0,s.bF)(f,{icon:"ban",class:"ban-icon"}),(0,s.Lk)("div",u,[(0,s.bF)(f,{icon:"exclamation",class:"exclamation-icon"})])])]),(0,s.Lk)("div",g,[t[9]||(t[9]=(0,s.Lk)("h1",{class:"status-title"},"图片访问被禁止",-1)),t[10]||(t[10]=(0,s.Lk)("p",{class:"status-description"}," 抱歉,当前图片已被禁止访问。 ",-1)),t[11]||(t[11]=(0,s.Lk)("p",{class:"status-description-en"}," Sorry, current image is prohibited from being accessed. ",-1)),(0,s.Lk)("div",m,[(0,s.bF)(I,{type:"primary",size:"large",class:"action-btn primary-btn",onClick:y.goHome},{default:(0,s.k6)(()=>[(0,s.bF)(f,{icon:"home",class:"btn-icon"}),t[3]||(t[3]=(0,s.eW)(" 返回首页 ",-1))]),_:1},8,["onClick"]),(0,s.bF)(I,{size:"large",class:"action-btn secondary-btn",onClick:y.goBack},{default:(0,s.k6)(()=>[(0,s.bF)(f,{icon:"arrow-left",class:"btn-icon"}),t[4]||(t[4]=(0,s.eW)(" 返回上页 ",-1))]),_:1},8,["onClick"])]),(0,s.Lk)("div",p,[t[8]||(t[8]=(0,s.Lk)("p",{class:"help-text"},"您可以尝试:",-1)),(0,s.Lk)("div",h,[(0,s.Lk)("a",{href:"javascript:void(0)",onClick:t[0]||(t[0]=(...e)=>y.goHome&&y.goHome(...e)),class:"quick-link"},[(0,s.bF)(f,{icon:"cloud-upload-alt"}),t[5]||(t[5]=(0,s.eW)(" 图片上传 ",-1))]),(0,s.Lk)("a",{href:"javascript:void(0)",onClick:t[1]||(t[1]=(...e)=>y.refreshPage&&y.refreshPage(...e)),class:"quick-link"},[(0,s.bF)(f,{icon:"redo"}),t[6]||(t[6]=(0,s.eW)(" 刷新页面 ",-1))]),(0,s.Lk)("a",{href:"javascript:void(0)",onClick:t[2]||(t[2]=(...e)=>y.contactSupport&&y.contactSupport(...e)),class:"quick-link"},[(0,s.bF)(f,{icon:"question-circle"}),t[7]||(t[7]=(0,s.eW)(" 联系支持 ",-1))])])]),t[12]||(t[12]=(0,s.Lk)("div",{class:"powered-by"},[(0,s.Lk)("p",null,[(0,s.eW)("Powered By: "),(0,s.Lk)("a",{href:"https://github.com/MarSeventh/CloudFlare-ImgBed",class:"project-link"}," CloudFlare-ImgBed ")])],-1))])]),t[13]||(t[13]=(0,s.Fv)('
',1))])}a(44114);var b=a(74354),y=a(60782),f=a(48903),I={name:"BlockedImage",mixins:[f.A],computed:{...(0,y.L8)(["useDarkMode","userConfig"])},setup(){(0,b.u)({title:"Blocked Image",meta:[{name:"robots",content:"noindex, nofollow"},{name:"viewport",content:"width=device-width, initial-scale=1"},{charset:"UTF-8"}]})},mounted(){this.initializeBackground("uploadBkImg",".blocked-container",!1,!0)},beforeUnmount(){this.clearBackgroundInterval()},methods:{goHome(){this.$router.push("/")},goBack(){window.history.length>1?this.$router.go(-1):this.$router.push("/")},refreshPage(){window.location.reload()},contactSupport(){window.open("https://github.com/MarSeventh/CloudFlare-ImgBed/issues","_blank")}}},v=a(71241);const B=(0,v.A)(I,[["render",k],["__scopeId","data-v-98114f90"]]);var C=B},48903:function(e,t,a){var n=a(60782);t.A={data(){return{bingWallPaperIndex:0,customWallPaperIndex:0,backgroundInterval:null,backgroundInitParams:null}},computed:{...(0,n.L8)(["userConfig","bingWallPapers","useDarkMode"]),bkInterval(){return this.userConfig?.bkInterval||3e3},bkOpacity(){return this.userConfig?.bkOpacity||1},backgroundImagesTemplate(){return'\n Background Image\n Background Image\n '},backgroundImagesStyles(){return"\n .background-image1 {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n z-index: -1;\n pointer-events: none;\n opacity: 0;\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\n transform: scale(1);\n transform-origin: center center;\n will-change: opacity, transform;\n filter: var(--background-image-filter, brightness(1));\n }\n .background-image2 {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n z-index: -1;\n pointer-events: none;\n opacity: 0;\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\n transform: scale(1);\n transform-origin: center center;\n will-change: opacity, transform;\n filter: var(--background-image-filter, brightness(1));\n }\n "}},watch:{useDarkMode(e,t){e!==t&&this.backgroundInitParams&&this.$nextTick(()=>{this.smoothThemeTransition(this.backgroundInitParams.configKey,this.backgroundInitParams.containerSelector,this.backgroundInitParams.useDefaultBackground,this.backgroundInitParams.autoCreateElements)})}},mounted(){this.injectBackgroundStyles()},beforeUnmount(){this.backgroundInterval&&clearInterval(this.backgroundInterval),this.clearBackgroundImages(!0),this.removeBackgroundStyles()},methods:{injectBackgroundStyles(){const e="background-manager-styles";if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent=this.backgroundImagesStyles,document.head.appendChild(t)}},removeBackgroundStyles(){const e="background-manager-styles",t=document.getElementById(e);t&&t.remove()},createBackgroundElements(e){if(!e)return void console.warn("未提供有效的容器元素");if(document.getElementById("bg1")||document.getElementById("bg2"))return;const t=document.createElement("img");t.id="bg1",t.className="background-image1",t.alt="Background Image";const a=document.createElement("img");a.id="bg2",a.className="background-image2",a.alt="Background Image",e.insertBefore(t,e.firstChild),e.insertBefore(a,e.firstChild)},initializeBackground(e,t=".login",a=!1,n=!1){if(!1===this.userConfig?.wallpaperEnabled)return void this.clearBackgroundImages(!0);this.backgroundInitParams={configKey:e,containerSelector:t,useDefaultBackground:a,autoCreateElements:n};const s=document.querySelector(t);this.prepareBackgroundContainer(s),n&&(!s||document.getElementById("bg1")&&document.getElementById("bg2")||this.createBackgroundElements(s));const i=document.getElementById("bg1"),o=document.getElementById("bg2");if(!i||!o)return void console.warn("背景图元素 #bg1 或 #bg2 未找到,请确保页面中包含这些元素或启用 autoCreateElements");const r=this.userConfig?.[e];"bing"===r?this.setupBingWallpaper(i,o,t):Array.isArray(r)&&r.length>1?this.setupCustomWallpaperCarousel(i,o,r,t):Array.isArray(r)&&1===r.length?this.setupSingleCustomWallpaper(i,r[0],t):a&&this.setupDefaultWallpaper(i,t)},setupBingWallpaper(e,t,a){this.$store.dispatch("fetchBingWallPapers").then(()=>{0!==this.bingWallPapers.length&&(this.loadBackgroundImage(e,this.bingWallPapers[this.bingWallPaperIndex]?.url,a,!0),this.backgroundInterval=setInterval(()=>{this.switchBingWallpaper(e,t)},this.bkInterval))})},setupCustomWallpaperCarousel(e,t,a,n){this.loadBackgroundImage(e,a[this.customWallPaperIndex],n,!0),this.backgroundInterval=setInterval(()=>{this.switchCustomWallpaper(e,t,a)},this.bkInterval)},setupSingleCustomWallpaper(e,t,a){this.loadBackgroundImage(e,t,a)},setupDefaultWallpaper(e,t){const n=this.useDarkMode,s=a(n?10732:7835);this.loadBackgroundImage(e,s,t)},loadBackgroundImage(e,t,a,n=!1){e.style.zIndex=-1,e.style.opacity=0,this.prepareBackgroundMotion(e,n);const s=document.querySelector(a);this.prepareBackgroundContainer(s);const i=()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{e.style.opacity=this.bkOpacity,n&&(e.style.transform="scale(1.045)")})})},o=new Image;o.onload=()=>{e.src=t,i()},o.onerror=()=>{e.src=t,i()},o.src=t},prepareBackgroundMotion(e,t=!1){if(!e)return;const a=Math.max(this.bkInterval+1200,4200);e.style.transition=t?`opacity 1.2s ease-in-out, filter 0.3s ease, transform ${a}ms ease-out`:"opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease",e.style.transformOrigin="center center",e.style.transform="scale(1)"},prepareBackgroundContainer(e){if(!e)return;const t=window.getComputedStyle(e);"static"===t.position&&(e.style.position="relative"),"auto"===t.zIndex&&(e.style.zIndex="0"),e.style.isolation="isolate"},switchBingWallpaper(e,t){if(0===this.bingWallPapers.length)return;const a=0!=e.style.opacity,n=a?e:t,s=a?t:e;this.bingWallPaperIndex=(this.bingWallPaperIndex+1)%this.bingWallPapers.length;const i=this.bingWallPapers[this.bingWallPaperIndex]?.url;n.style.zIndex=-2,s.style.zIndex=-1,this.prepareBackgroundMotion(s,!0);const o=new Image;o.onload=()=>{s.src=i,setTimeout(()=>{s.style.opacity=this.bkOpacity,s.style.transform="scale(1.045)",setTimeout(()=>{n.style.opacity=0,this.prepareBackgroundMotion(n,!0)},1200)},50)},o.src=i},switchCustomWallpaper(e,t,a){const n=0!=e.style.opacity,s=n?e:t,i=n?t:e;this.customWallPaperIndex=(this.customWallPaperIndex+1)%a.length;const o=a[this.customWallPaperIndex];s.style.zIndex=-2,i.style.zIndex=-1,this.prepareBackgroundMotion(i,!0);const r=new Image;r.onload=()=>{i.src=o,setTimeout(()=>{i.style.opacity=this.bkOpacity,i.style.transform="scale(1.045)",setTimeout(()=>{s.style.opacity=0,this.prepareBackgroundMotion(s,!0)},1200)},50)},r.src=o},clearBackgroundInterval(){this.backgroundInterval&&(clearInterval(this.backgroundInterval),this.backgroundInterval=null)},clearBackgroundImages(e=!1){const t=document.getElementById("bg1"),a=document.getElementById("bg2");e?(t&&(t.style.transition="none",t.style.opacity=0,t.src="",setTimeout(()=>{t&&(t.style.transition="opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease")},50)),a&&(a.style.transition="none",a.style.opacity=0,a.src="",setTimeout(()=>{a&&(a.style.transition="opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease")},50))):(t&&(t.style.opacity=0,setTimeout(()=>{t&&(t.src="")},1200)),a&&(a.style.opacity=0,setTimeout(()=>{a&&(a.src="")},1200)))},smoothThemeTransition(e,t=".login",n=!1,s=!1){const i=this.userConfig?.[e];if(!n||void 0!==i)return void this.reinitializeBackground(e,t,n,s);const o=document.getElementById("bg1"),r=document.getElementById("bg2");if(!o||!r)return void this.reinitializeBackground(e,t,n,s);const l=0!=o.style.opacity?o:r,c=0!=o.style.opacity?r:o,d=this.useDarkMode,u=a(d?10732:7835),g=new Image;g.onload=()=>{c.src=u,c.onload=()=>{l.style.opacity=0,setTimeout(()=>{c.style.opacity=this.bkOpacity},50)}},g.onerror=()=>{console.warn("主题背景图预加载失败,回退到直接切换"),this.reinitializeBackground(e,t,n,s)},g.src=u},reinitializeBackground(e,t=".login",a=!1,n=!1){this.clearBackgroundInterval(),this.clearBackgroundImages(!0),this.bingWallPaperIndex=0,this.customWallPaperIndex=0,setTimeout(()=>{this.initializeBackground(e,t,a,n)},100)}}}}}]); +//# sourceMappingURL=331.0b44b778.js.map \ No newline at end of file diff --git a/frontend-dist/js/331.0b44b778.js.gz b/frontend-dist/js/331.0b44b778.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..cc4a4c9ae2e6f973c207fb704f05c152626ccb50 GIT binary patch literal 3771 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 literal 0 HcmV?d00001 diff --git a/frontend-dist/js/331.0b44b778.js.map b/frontend-dist/js/331.0b44b778.js.map new file mode 100644 index 00000000..c4132fc8 --- /dev/null +++ b/frontend-dist/js/331.0b44b778.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/331.0b44b778.js","mappings":"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","sources":["webpack://sanyue_imghub/./src/views/BlockImage.vue?6078","webpack://sanyue_imghub/./src/views/BlockImage.vue","webpack://sanyue_imghub/./src/views/BlockImage.vue?e417","webpack://sanyue_imghub/./src/mixins/backgroundManager.js"],"sourcesContent":["import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createTextVNode as _createTextVNode, createStaticVNode as _createStaticVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\";\nconst _hoisted_1 = {\n class: \"blocked-container\"\n};\nconst _hoisted_2 = [\"innerHTML\"];\nconst _hoisted_3 = {\n class: \"blocked-content\"\n};\nconst _hoisted_4 = {\n class: \"back-button-wrapper\"\n};\nconst _hoisted_5 = {\n class: \"status-animation\"\n};\nconst _hoisted_6 = {\n class: \"status-icon\"\n};\nconst _hoisted_7 = {\n class: \"status-badge\"\n};\nconst _hoisted_8 = {\n class: \"status-info\"\n};\nconst _hoisted_9 = {\n class: \"status-actions\"\n};\nconst _hoisted_10 = {\n class: \"help-info\"\n};\nconst _hoisted_11 = {\n class: \"quick-links\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\");\n const _component_el_button = _resolveComponent(\"el-button\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createElementVNode(\"div\", {\n class: \"background-wrapper\",\n innerHTML: _ctx.backgroundImagesTemplate\n }, null, 8, _hoisted_2), _createElementVNode(\"div\", _hoisted_3, [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_el_button, {\n class: \"back-button\",\n onClick: $options.goHome,\n circle: \"\",\n size: \"large\"\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"home\"\n })]),\n _: 1\n }, 8, [\"onClick\"])]), _createElementVNode(\"div\", _hoisted_5, [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_font_awesome_icon, {\n icon: \"ban\",\n class: \"ban-icon\"\n }), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_font_awesome_icon, {\n icon: \"exclamation\",\n class: \"exclamation-icon\"\n })])])]), _createElementVNode(\"div\", _hoisted_8, [_cache[9] || (_cache[9] = _createElementVNode(\"h1\", {\n class: \"status-title\"\n }, \"图片访问被禁止\", -1)), _cache[10] || (_cache[10] = _createElementVNode(\"p\", {\n class: \"status-description\"\n }, \" 抱歉,当前图片已被禁止访问。 \", -1)), _cache[11] || (_cache[11] = _createElementVNode(\"p\", {\n class: \"status-description-en\"\n }, \" Sorry, current image is prohibited from being accessed. \", -1)), _createElementVNode(\"div\", _hoisted_9, [_createVNode(_component_el_button, {\n type: \"primary\",\n size: \"large\",\n class: \"action-btn primary-btn\",\n onClick: $options.goHome\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"home\",\n class: \"btn-icon\"\n }), _cache[3] || (_cache[3] = _createTextVNode(\" 返回首页 \", -1))]),\n _: 1\n }, 8, [\"onClick\"]), _createVNode(_component_el_button, {\n size: \"large\",\n class: \"action-btn secondary-btn\",\n onClick: $options.goBack\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"arrow-left\",\n class: \"btn-icon\"\n }), _cache[4] || (_cache[4] = _createTextVNode(\" 返回上页 \", -1))]),\n _: 1\n }, 8, [\"onClick\"])]), _createElementVNode(\"div\", _hoisted_10, [_cache[8] || (_cache[8] = _createElementVNode(\"p\", {\n class: \"help-text\"\n }, \"您可以尝试:\", -1)), _createElementVNode(\"div\", _hoisted_11, [_createElementVNode(\"a\", {\n href: \"javascript:void(0)\",\n onClick: _cache[0] || (_cache[0] = (...args) => $options.goHome && $options.goHome(...args)),\n class: \"quick-link\"\n }, [_createVNode(_component_font_awesome_icon, {\n icon: \"cloud-upload-alt\"\n }), _cache[5] || (_cache[5] = _createTextVNode(\" 图片上传 \", -1))]), _createElementVNode(\"a\", {\n href: \"javascript:void(0)\",\n onClick: _cache[1] || (_cache[1] = (...args) => $options.refreshPage && $options.refreshPage(...args)),\n class: \"quick-link\"\n }, [_createVNode(_component_font_awesome_icon, {\n icon: \"redo\"\n }), _cache[6] || (_cache[6] = _createTextVNode(\" 刷新页面 \", -1))]), _createElementVNode(\"a\", {\n href: \"javascript:void(0)\",\n onClick: _cache[2] || (_cache[2] = (...args) => $options.contactSupport && $options.contactSupport(...args)),\n class: \"quick-link\"\n }, [_createVNode(_component_font_awesome_icon, {\n icon: \"question-circle\"\n }), _cache[7] || (_cache[7] = _createTextVNode(\" 联系支持 \", -1))])])]), _cache[12] || (_cache[12] = _createElementVNode(\"div\", {\n class: \"powered-by\"\n }, [_createElementVNode(\"p\", null, [_createTextVNode(\"Powered By: \"), _createElementVNode(\"a\", {\n href: \"https://github.com/MarSeventh/CloudFlare-ImgBed\",\n class: \"project-link\"\n }, \" CloudFlare-ImgBed \")])], -1))])]), _cache[13] || (_cache[13] = _createStaticVNode(\"
\", 1))]);\n}","import \"core-js/modules/es.array.push.js\";\nimport { useHead } from '@vueuse/head';\nimport { mapGetters } from 'vuex';\nimport backgroundManager from '@/mixins/backgroundManager';\nexport default {\n name: 'BlockedImage',\n mixins: [backgroundManager],\n computed: {\n ...mapGetters(['useDarkMode', 'userConfig'])\n },\n setup() {\n useHead({\n title: 'Blocked Image',\n meta: [{\n name: 'robots',\n content: 'noindex, nofollow'\n }, {\n name: 'viewport',\n content: 'width=device-width, initial-scale=1'\n }, {\n charset: 'UTF-8'\n }]\n });\n },\n mounted() {\n // 初始化背景图\n this.initializeBackground('uploadBkImg', '.blocked-container', false, true);\n },\n beforeUnmount() {\n // 清理背景轮播定时器\n this.clearBackgroundInterval();\n },\n methods: {\n goHome() {\n this.$router.push('/');\n },\n goBack() {\n if (window.history.length > 1) {\n this.$router.go(-1);\n } else {\n this.$router.push('/');\n }\n },\n refreshPage() {\n window.location.reload();\n },\n contactSupport() {\n // 可以实现联系支持的逻辑\n window.open('https://github.com/MarSeventh/CloudFlare-ImgBed/issues', '_blank');\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./BlockImage.vue?vue&type=template&id=98114f90&scoped=true\"\nimport script from \"./BlockImage.vue?vue&type=script&lang=js\"\nexport * from \"./BlockImage.vue?vue&type=script&lang=js\"\n\nimport \"./BlockImage.vue?vue&type=style&index=0&id=98114f90&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-98114f90\"]])\n\nexport default __exports__","/**\r\n * 背景图管理 Mixin\r\n * 用于统一管理页面背景图的加载和轮播逻辑\r\n */\r\n\r\nimport { mapGetters } from 'vuex'\r\n\r\nexport default {\r\n data() {\r\n return {\r\n bingWallPaperIndex: 0,\r\n customWallPaperIndex: 0,\r\n backgroundInterval: null, // 存储轮播定时器\r\n // 存储初始化参数,用于主题切换时重新初始化\r\n backgroundInitParams: null,\r\n }\r\n },\r\n computed: {\r\n ...mapGetters(['userConfig', 'bingWallPapers', 'useDarkMode']),\n bkInterval() {\r\n return this.userConfig?.bkInterval || 3000\r\n },\r\n bkOpacity() {\r\n return this.userConfig?.bkOpacity || 1\r\n },\r\n // 提供背景图片元素的模板\r\n backgroundImagesTemplate() {\r\n return `\r\n \"Background\r\n \"Background\r\n `\r\n },\r\n // 提供背景图片的CSS样式\r\n backgroundImagesStyles() {\r\n return `\r\n .background-image1 {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n z-index: -1;\r\n pointer-events: none;\r\n opacity: 0;\r\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\r\n transform: scale(1);\r\n transform-origin: center center;\r\n will-change: opacity, transform;\r\n filter: var(--background-image-filter, brightness(1));\r\n }\r\n .background-image2 {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n z-index: -1;\r\n pointer-events: none;\r\n opacity: 0;\r\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\r\n transform: scale(1);\r\n transform-origin: center center;\r\n will-change: opacity, transform;\r\n filter: var(--background-image-filter, brightness(1));\r\n }\r\n `\r\n }\r\n },\r\n\r\n watch: {\r\n // 监听深色模式切换\r\n useDarkMode(newVal, oldVal) {\r\n // 只有在值真正改变且已经初始化过背景时才平滑切换主题\r\n if (newVal !== oldVal && this.backgroundInitParams) {\r\n this.$nextTick(() => {\r\n this.smoothThemeTransition(\r\n this.backgroundInitParams.configKey,\r\n this.backgroundInitParams.containerSelector,\r\n this.backgroundInitParams.useDefaultBackground,\r\n this.backgroundInitParams.autoCreateElements\r\n )\r\n })\r\n }\r\n }\n },\r\n\r\n mounted() {\r\n // 动态注入背景图片的CSS样式\r\n this.injectBackgroundStyles()\r\n },\r\n\r\n beforeUnmount() {\r\n // 组件销毁前清除定时器\r\n if (this.backgroundInterval) {\r\n clearInterval(this.backgroundInterval)\r\n }\r\n // 立即清除背景图片,不使用过渡效果\r\n this.clearBackgroundImages(true)\r\n // 移除动态注入的样式\r\n this.removeBackgroundStyles()\r\n },\r\n\r\n methods: {\r\n /**\r\n * 动态注入背景图片样式\r\n */\r\n injectBackgroundStyles() {\r\n const styleId = 'background-manager-styles'\r\n if (!document.getElementById(styleId)) {\r\n const style = document.createElement('style')\r\n style.id = styleId\r\n style.textContent = this.backgroundImagesStyles\r\n document.head.appendChild(style)\r\n }\r\n },\r\n\r\n /**\r\n * 移除动态注入的样式\r\n */\r\n removeBackgroundStyles() {\r\n const styleId = 'background-manager-styles'\r\n const existingStyle = document.getElementById(styleId)\r\n if (existingStyle) {\r\n existingStyle.remove()\r\n }\r\n },\r\n\r\n /**\r\n * 动态创建背景图片元素\r\n * @param {HTMLElement} container - 要插入背景图片的容器元素\r\n */\r\n createBackgroundElements(container) {\r\n if (!container) {\r\n console.warn('未提供有效的容器元素')\r\n return\r\n }\r\n\r\n // 检查是否已经存在背景图片元素\r\n if (document.getElementById('bg1') || document.getElementById('bg2')) {\r\n return\r\n }\r\n\r\n // 创建 bg1 元素\r\n const bg1 = document.createElement('img')\r\n bg1.id = 'bg1'\r\n bg1.className = 'background-image1'\r\n bg1.alt = 'Background Image'\r\n \r\n // 创建 bg2 元素\r\n const bg2 = document.createElement('img')\r\n bg2.id = 'bg2'\r\n bg2.className = 'background-image2'\r\n bg2.alt = 'Background Image'\r\n\r\n // 将元素插入到容器的开头\r\n container.insertBefore(bg1, container.firstChild)\r\n container.insertBefore(bg2, container.firstChild)\r\n },\r\n /**\r\n * 初始化背景图\r\n * @param {string} configKey - 用户配置中的背景图配置键名\r\n * @param {string} containerSelector - 容器选择器,用于设置透明背景\r\n * @param {boolean} useDefaultBackground - 是否使用默认背景图\r\n * @param {boolean} autoCreateElements - 是否自动创建背景元素\r\n */\r\n initializeBackground(configKey, containerSelector = '.login', useDefaultBackground = false, autoCreateElements = false) {\n // 如果全局壁纸开关关闭,直接清理背景并返回\n if (this.userConfig?.wallpaperEnabled === false) {\n this.clearBackgroundImages(true);\n return;\n }\n\n // 保存初始化参数,用于主题切换时重新初始化\n this.backgroundInitParams = {\n configKey,\n containerSelector,\n useDefaultBackground,\n autoCreateElements\n }\n\n // 如果需要自动创建元素且元素不存在,则创建\n const container = document.querySelector(containerSelector)\r\n this.prepareBackgroundContainer(container)\r\n\r\n if (autoCreateElements) {\r\n if (container && (!document.getElementById('bg1') || !document.getElementById('bg2'))) {\r\n this.createBackgroundElements(container)\r\n }\r\n }\r\n\r\n const bg1 = document.getElementById('bg1')\r\n const bg2 = document.getElementById('bg2')\r\n \r\n if (!bg1 || !bg2) {\r\n console.warn('背景图元素 #bg1 或 #bg2 未找到,请确保页面中包含这些元素或启用 autoCreateElements')\r\n return\r\n }\r\n\r\n const backgroundConfig = this.userConfig?.[configKey]\r\n\r\n if (backgroundConfig === 'bing') {\r\n this.setupBingWallpaper(bg1, bg2, containerSelector)\r\n } else if (Array.isArray(backgroundConfig) && backgroundConfig.length > 1) {\r\n this.setupCustomWallpaperCarousel(bg1, bg2, backgroundConfig, containerSelector)\r\n } else if (Array.isArray(backgroundConfig) && backgroundConfig.length === 1) {\r\n this.setupSingleCustomWallpaper(bg1, backgroundConfig[0], containerSelector)\r\n } else if (useDefaultBackground) {\r\n this.setupDefaultWallpaper(bg1, containerSelector)\r\n }\r\n },\r\n\r\n /**\r\n * 设置 Bing 壁纸轮播\r\n */\r\n setupBingWallpaper(bg1, bg2, containerSelector) {\r\n this.$store.dispatch('fetchBingWallPapers').then(() => {\r\n if (this.bingWallPapers.length === 0) return\r\n\r\n this.loadBackgroundImage(bg1, this.bingWallPapers[this.bingWallPaperIndex]?.url, containerSelector, true)\r\n \r\n this.backgroundInterval = setInterval(() => {\r\n this.switchBingWallpaper(bg1, bg2)\r\n }, this.bkInterval)\r\n })\r\n },\r\n\r\n /**\r\n * 设置自定义壁纸轮播\r\n */\r\n setupCustomWallpaperCarousel(bg1, bg2, wallpapers, containerSelector) {\r\n this.loadBackgroundImage(bg1, wallpapers[this.customWallPaperIndex], containerSelector, true)\r\n \r\n this.backgroundInterval = setInterval(() => {\r\n this.switchCustomWallpaper(bg1, bg2, wallpapers)\r\n }, this.bkInterval)\r\n },\r\n\r\n /**\r\n * 设置单张自定义壁纸\r\n */\r\n setupSingleCustomWallpaper(bg1, wallpaperUrl, containerSelector) {\r\n this.loadBackgroundImage(bg1, wallpaperUrl, containerSelector)\r\n },\r\n\r\n /**\r\n * 设置默认壁纸\r\n */\r\n setupDefaultWallpaper(bg1, containerSelector) {\r\n // 根据当前深色模式状态选择背景图\r\n const isDark = this.useDarkMode\r\n const defaultImage = isDark \r\n ? require('@/assets/background.jpg') \r\n : require('@/assets/background-light.jpg')\r\n \r\n this.loadBackgroundImage(bg1, defaultImage, containerSelector)\r\n },\r\n\r\n /**\r\n * 加载背景图片\r\n */\r\n loadBackgroundImage(imgElement, imageSrc, containerSelector, enableZoom = false) {\r\n // 确保初始化时层级正确\r\n imgElement.style.zIndex = -1\r\n imgElement.style.opacity = 0\r\n this.prepareBackgroundMotion(imgElement, enableZoom)\r\n const container = document.querySelector(containerSelector)\r\n this.prepareBackgroundContainer(container)\r\n\r\n const showImage = () => {\r\n requestAnimationFrame(() => {\r\n requestAnimationFrame(() => {\r\n imgElement.style.opacity = this.bkOpacity\r\n if (enableZoom) {\r\n imgElement.style.transform = 'scale(1.045)'\r\n }\r\n })\r\n })\r\n }\r\n\r\n const preload = new Image()\r\n preload.onload = () => {\r\n imgElement.src = imageSrc\r\n showImage()\r\n }\r\n preload.onerror = () => {\r\n imgElement.src = imageSrc\r\n showImage()\r\n }\r\n preload.src = imageSrc\r\n },\r\n\r\n prepareBackgroundMotion(imgElement, enableZoom = false) {\r\n if (!imgElement) return\r\n\r\n const zoomDuration = Math.max(this.bkInterval + 1200, 4200)\r\n imgElement.style.transition = enableZoom\r\n ? `opacity 1.2s ease-in-out, filter 0.3s ease, transform ${zoomDuration}ms ease-out`\r\n : 'opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease'\r\n imgElement.style.transformOrigin = 'center center'\r\n imgElement.style.transform = 'scale(1)'\r\n },\r\n \r\n prepareBackgroundContainer(container) {\r\n if (!container) return\r\n\r\n const computedStyle = window.getComputedStyle(container)\r\n if (computedStyle.position === 'static') {\r\n container.style.position = 'relative'\r\n }\r\n\r\n if (computedStyle.zIndex === 'auto') {\r\n container.style.zIndex = '0'\r\n }\r\n\r\n container.style.isolation = 'isolate'\r\n },\r\n\r\n /**\r\n * 切换 Bing 壁纸\r\n */\r\n switchBingWallpaper(bg1, bg2) {\r\n if (this.bingWallPapers.length === 0) return\r\n\r\n const isBg1Current = bg1.style.opacity != 0\r\n const curBg = isBg1Current ? bg1 : bg2\r\n const nextBg = isBg1Current ? bg2 : bg1\r\n \r\n this.bingWallPaperIndex = (this.bingWallPaperIndex + 1) % this.bingWallPapers.length\r\n const nextUrl = this.bingWallPapers[this.bingWallPaperIndex]?.url\r\n\r\n // 【层级魔法】:让旧图垫底,新图置顶\r\n curBg.style.zIndex = -2\r\n nextBg.style.zIndex = -1\r\n this.prepareBackgroundMotion(nextBg, true)\r\n\r\n const preload = new Image()\r\n preload.onload = () => {\r\n nextBg.src = nextUrl\r\n \r\n // 稍微延迟 50ms,确保浏览器把新图渲染到 DOM 上且层级已更新\r\n setTimeout(() => {\r\n nextBg.style.opacity = this.bkOpacity // 新图直接在顶层优雅淡入\r\n nextBg.style.transform = 'scale(1.045)'\r\n \r\n // 等新图 1.2s 完全覆盖后,在底下默默把旧图透明度归零,毫无视觉断层\r\n setTimeout(() => { \r\n curBg.style.opacity = 0 \r\n this.prepareBackgroundMotion(curBg, true)\r\n }, 1200)\r\n }, 50)\r\n }\r\n preload.src = nextUrl\r\n },\r\n\r\n /**\r\n * 切换自定义壁纸\r\n */\r\n switchCustomWallpaper(bg1, bg2, wallpapers) {\r\n const isBg1Current = bg1.style.opacity != 0\r\n const curBg = isBg1Current ? bg1 : bg2\r\n const nextBg = isBg1Current ? bg2 : bg1\r\n \r\n this.customWallPaperIndex = (this.customWallPaperIndex + 1) % wallpapers.length\r\n const nextUrl = wallpapers[this.customWallPaperIndex]\r\n\r\n // 旧图垫底,新图置顶\r\n curBg.style.zIndex = -2\r\n nextBg.style.zIndex = -1\r\n this.prepareBackgroundMotion(nextBg, true)\r\n\r\n const preload = new Image()\r\n preload.onload = () => {\r\n nextBg.src = nextUrl\r\n \r\n setTimeout(() => {\r\n nextBg.style.opacity = this.bkOpacity\r\n nextBg.style.transform = 'scale(1.045)'\r\n \r\n setTimeout(() => { \r\n curBg.style.opacity = 0 \r\n this.prepareBackgroundMotion(curBg, true)\r\n }, 1200)\r\n }, 50)\r\n }\r\n preload.src = nextUrl\r\n },\r\n\r\n /**\r\n * 清除背景轮播定时器\r\n */\r\n clearBackgroundInterval() {\r\n if (this.backgroundInterval) {\r\n clearInterval(this.backgroundInterval)\r\n this.backgroundInterval = null\r\n }\r\n },\r\n\r\n /**\r\n * 清除背景图片显示(带过渡效果)\r\n * @param {boolean} immediate - 是否立即清除,不使用过渡效果\r\n */\r\n clearBackgroundImages(immediate = false) {\r\n const bg1 = document.getElementById('bg1')\r\n const bg2 = document.getElementById('bg2')\r\n \r\n if (immediate) {\r\n // 立即清除,不使用过渡效果\r\n if (bg1) {\r\n bg1.style.transition = 'none'\r\n bg1.style.opacity = 0\r\n bg1.src = ''\r\n // 恢复过渡效果\r\n setTimeout(() => {\r\n if (bg1) bg1.style.transition = 'opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease'\r\n }, 50)\r\n }\r\n if (bg2) {\r\n bg2.style.transition = 'none'\r\n bg2.style.opacity = 0\r\n bg2.src = ''\r\n // 恢复过渡效果\r\n setTimeout(() => {\r\n if (bg2) bg2.style.transition = 'opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease'\r\n }, 50)\r\n }\r\n } else {\r\n // 使用过渡效果淡出\r\n if (bg1) {\r\n bg1.style.opacity = 0\r\n setTimeout(() => {\r\n if (bg1) bg1.src = ''\r\n }, 1200)\r\n }\r\n if (bg2) {\r\n bg2.style.opacity = 0\r\n setTimeout(() => {\r\n if (bg2) bg2.src = ''\r\n }, 1200)\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * 平滑主题切换(用于响应主题模式变化)\r\n * @param {string} configKey - 用户配置中的背景图配置键名\r\n * @param {string} containerSelector - 容器选择器\r\n * @param {boolean} useDefaultBackground - 是否使用默认背景图\r\n * @param {boolean} autoCreateElements - 是否自动创建背景元素\r\n */\r\n smoothThemeTransition(configKey, containerSelector = '.login', useDefaultBackground = false, autoCreateElements = false) {\r\n const backgroundConfig = this.userConfig?.[configKey]\r\n \r\n // 如果不是默认背景配置,则直接重新初始化(自定义背景不受主题影响)\r\n if (!useDefaultBackground || backgroundConfig !== undefined) {\r\n this.reinitializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n return\r\n }\r\n\r\n // 对于默认背景,执行平滑过渡\r\n const bg1 = document.getElementById('bg1')\r\n const bg2 = document.getElementById('bg2')\r\n \r\n if (!bg1 || !bg2) {\r\n // 如果背景元素不存在,直接重新初始化\r\n this.reinitializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n return\r\n }\r\n\r\n // 确定当前显示的背景和下一个背景\r\n const currentBg = bg1.style.opacity != 0 ? bg1 : bg2\r\n const nextBg = bg1.style.opacity != 0 ? bg2 : bg1\r\n\r\n // 获取新主题对应的背景图\r\n const isDark = this.useDarkMode\r\n const newThemeImage = isDark \r\n ? require('@/assets/background.jpg') \r\n : require('@/assets/background-light.jpg')\r\n\r\n // 预加载新背景图\r\n const preloadImg = new Image()\r\n preloadImg.onload = () => {\r\n // 设置下一个背景的图片源\r\n nextBg.src = newThemeImage\r\n \r\n // 等待图片加载完成后执行淡入淡出过渡\r\n nextBg.onload = () => {\r\n // 淡出当前背景\r\n currentBg.style.opacity = 0\r\n \r\n // 稍微延迟后淡入新背景,确保过渡效果平滑\r\n setTimeout(() => {\r\n nextBg.style.opacity = this.bkOpacity\r\n }, 50) // 50ms 延迟,让淡出效果先开始\r\n }\r\n }\r\n \r\n preloadImg.onerror = () => {\r\n // 如果预加载失败,回退到直接重新初始化\r\n console.warn('主题背景图预加载失败,回退到直接切换')\r\n this.reinitializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n }\r\n \r\n preloadImg.src = newThemeImage\r\n },\r\n\r\n /**\r\n * 重新初始化背景图(用于响应配置变化)\r\n */\r\n reinitializeBackground(configKey, containerSelector = '.login', useDefaultBackground = false, autoCreateElements = false) {\r\n this.clearBackgroundInterval()\r\n this.clearBackgroundImages(true) // 使用立即清除\r\n this.bingWallPaperIndex = 0\r\n this.customWallPaperIndex = 0\r\n \r\n // 延迟一小段时间确保清理完成\r\n setTimeout(() => {\r\n this.initializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n }, 100)\r\n }\r\n }\r\n}\r\n"],"names":["_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","render","_ctx","_cache","$props","$setup","$data","$options","_component_font_awesome_icon","_component_el_button","innerHTML","backgroundImagesTemplate","onClick","goHome","circle","size","default","icon","_","type","goBack","href","args","refreshPage","contactSupport","name","mixins","backgroundManager","computed","setup","u","title","meta","content","charset","mounted","this","initializeBackground","beforeUnmount","clearBackgroundInterval","methods","$router","push","window","history","length","go","location","reload","open","__exports__","data","bingWallPaperIndex","customWallPaperIndex","backgroundInterval","backgroundInitParams","mapGetters","bkInterval","userConfig","bkOpacity","backgroundImagesStyles","watch","useDarkMode","newVal","oldVal","$nextTick","smoothThemeTransition","configKey","containerSelector","useDefaultBackground","autoCreateElements","injectBackgroundStyles","clearInterval","clearBackgroundImages","removeBackgroundStyles","styleId","document","getElementById","style","createElement","id","textContent","head","appendChild","existingStyle","remove","createBackgroundElements","container","console","warn","bg1","className","alt","bg2","insertBefore","firstChild","wallpaperEnabled","querySelector","prepareBackgroundContainer","backgroundConfig","setupBingWallpaper","Array","isArray","setupCustomWallpaperCarousel","setupSingleCustomWallpaper","setupDefaultWallpaper","$store","dispatch","then","bingWallPapers","loadBackgroundImage","url","setInterval","switchBingWallpaper","wallpapers","switchCustomWallpaper","wallpaperUrl","isDark","defaultImage","require","imgElement","imageSrc","enableZoom","zIndex","opacity","prepareBackgroundMotion","showImage","requestAnimationFrame","transform","preload","Image","onload","src","onerror","zoomDuration","Math","max","transition","transformOrigin","computedStyle","getComputedStyle","position","isolation","isBg1Current","curBg","nextBg","nextUrl","setTimeout","immediate","undefined","reinitializeBackground","currentBg","newThemeImage","preloadImg"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/frontend-dist/js/331.0b44b778.js.map.gz b/frontend-dist/js/331.0b44b778.js.map.gz new file mode 100644 index 0000000000000000000000000000000000000000..8f89858f66a7d86ad25f946b35e2f6e421b05b82 GIT binary patch literal 10076 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 literal 0 HcmV?d00001 diff --git a/frontend-dist/js/331.66294132.js b/frontend-dist/js/331.66294132.js deleted file mode 100644 index 055a38a5..00000000 --- a/frontend-dist/js/331.66294132.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self["webpackChunksanyue_imghub"]=self["webpackChunksanyue_imghub"]||[]).push([[331],{7835:function(e,t,a){e.exports=a.p+"img/background-light.f17603bc.jpg"},10732:function(e,t,a){e.exports=a.p+"img/background.ea1b7ee7.jpg"},16331:function(e,t,a){a.r(t),a.d(t,{default:function(){return C}});var n=a(80047),s=(a(85331),a(99648),a(56768));const i={class:"blocked-container"},o=["innerHTML"],r={class:"blocked-content"},c={class:"back-button-wrapper"},l={class:"status-animation"},d={class:"status-icon"},u={class:"status-badge"},g={class:"status-info"},m={class:"status-actions"},p={class:"help-info"},h={class:"quick-links"};function k(e,t,a,k,b,y){const f=(0,s.g2)("font-awesome-icon"),I=n.S2;return(0,s.uX)(),(0,s.CE)("div",i,[(0,s.Lk)("div",{class:"background-wrapper",innerHTML:e.backgroundImagesTemplate},null,8,o),(0,s.Lk)("div",r,[(0,s.Lk)("div",c,[(0,s.bF)(I,{class:"back-button",onClick:y.goHome,circle:"",size:"large"},{default:(0,s.k6)(()=>[(0,s.bF)(f,{icon:"home"})]),_:1},8,["onClick"])]),(0,s.Lk)("div",l,[(0,s.Lk)("div",d,[(0,s.bF)(f,{icon:"ban",class:"ban-icon"}),(0,s.Lk)("div",u,[(0,s.bF)(f,{icon:"exclamation",class:"exclamation-icon"})])])]),(0,s.Lk)("div",g,[t[9]||(t[9]=(0,s.Lk)("h1",{class:"status-title"},"图片访问被禁止",-1)),t[10]||(t[10]=(0,s.Lk)("p",{class:"status-description"}," 抱歉,当前图片已被禁止访问。 ",-1)),t[11]||(t[11]=(0,s.Lk)("p",{class:"status-description-en"}," Sorry, current image is prohibited from being accessed. ",-1)),(0,s.Lk)("div",m,[(0,s.bF)(I,{type:"primary",size:"large",class:"action-btn primary-btn",onClick:y.goHome},{default:(0,s.k6)(()=>[(0,s.bF)(f,{icon:"home",class:"btn-icon"}),t[3]||(t[3]=(0,s.eW)(" 返回首页 ",-1))]),_:1},8,["onClick"]),(0,s.bF)(I,{size:"large",class:"action-btn secondary-btn",onClick:y.goBack},{default:(0,s.k6)(()=>[(0,s.bF)(f,{icon:"arrow-left",class:"btn-icon"}),t[4]||(t[4]=(0,s.eW)(" 返回上页 ",-1))]),_:1},8,["onClick"])]),(0,s.Lk)("div",p,[t[8]||(t[8]=(0,s.Lk)("p",{class:"help-text"},"您可以尝试:",-1)),(0,s.Lk)("div",h,[(0,s.Lk)("a",{href:"javascript:void(0)",onClick:t[0]||(t[0]=(...e)=>y.goHome&&y.goHome(...e)),class:"quick-link"},[(0,s.bF)(f,{icon:"cloud-upload-alt"}),t[5]||(t[5]=(0,s.eW)(" 图片上传 ",-1))]),(0,s.Lk)("a",{href:"javascript:void(0)",onClick:t[1]||(t[1]=(...e)=>y.refreshPage&&y.refreshPage(...e)),class:"quick-link"},[(0,s.bF)(f,{icon:"redo"}),t[6]||(t[6]=(0,s.eW)(" 刷新页面 ",-1))]),(0,s.Lk)("a",{href:"javascript:void(0)",onClick:t[2]||(t[2]=(...e)=>y.contactSupport&&y.contactSupport(...e)),class:"quick-link"},[(0,s.bF)(f,{icon:"question-circle"}),t[7]||(t[7]=(0,s.eW)(" 联系支持 ",-1))])])]),t[12]||(t[12]=(0,s.Lk)("div",{class:"powered-by"},[(0,s.Lk)("p",null,[(0,s.eW)("Powered By: "),(0,s.Lk)("a",{href:"https://github.com/MarSeventh/CloudFlare-ImgBed",class:"project-link"}," CloudFlare-ImgBed ")])],-1))])]),t[13]||(t[13]=(0,s.Fv)('
',1))])}a(44114);var b=a(74354),y=a(60782),f=a(48903),I={name:"BlockedImage",mixins:[f.A],computed:{...(0,y.L8)(["useDarkMode","userConfig"])},setup(){(0,b.u)({title:"Blocked Image",meta:[{name:"robots",content:"noindex, nofollow"},{name:"viewport",content:"width=device-width, initial-scale=1"},{charset:"UTF-8"}]})},mounted(){this.initializeBackground("uploadBkImg",".blocked-container",!1,!0)},beforeUnmount(){this.clearBackgroundInterval()},methods:{goHome(){this.$router.push("/")},goBack(){window.history.length>1?this.$router.go(-1):this.$router.push("/")},refreshPage(){window.location.reload()},contactSupport(){window.open("https://github.com/MarSeventh/CloudFlare-ImgBed/issues","_blank")}}},v=a(71241);const B=(0,v.A)(I,[["render",k],["__scopeId","data-v-98114f90"]]);var C=B},48903:function(e,t,a){var n=a(60782);t.A={data(){return{bingWallPaperIndex:0,customWallPaperIndex:0,backgroundInterval:null,backgroundInitParams:null}},computed:{...(0,n.L8)(["userConfig","bingWallPapers","useDarkMode","wallpaperEnabled"]),bkInterval(){return this.userConfig?.bkInterval||3e3},bkOpacity(){return this.userConfig?.bkOpacity||1},backgroundImagesTemplate(){return'\n Background Image\n Background Image\n '},backgroundImagesStyles(){return"\n .background-image1 {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n z-index: -1;\n pointer-events: none;\n opacity: 0;\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\n transform: scale(1);\n transform-origin: center center;\n will-change: opacity, transform;\n filter: var(--background-image-filter, brightness(1));\n }\n .background-image2 {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n z-index: -1;\n pointer-events: none;\n opacity: 0;\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\n transform: scale(1);\n transform-origin: center center;\n will-change: opacity, transform;\n filter: var(--background-image-filter, brightness(1));\n }\n "}},watch:{useDarkMode(e,t){e!==t&&this.backgroundInitParams&&this.$nextTick(()=>{this.smoothThemeTransition(this.backgroundInitParams.configKey,this.backgroundInitParams.containerSelector,this.backgroundInitParams.useDefaultBackground,this.backgroundInitParams.autoCreateElements)})},wallpaperEnabled(e,t){e!==t&&this.backgroundInitParams&&this.$nextTick(()=>{e?this.reinitializeBackground(this.backgroundInitParams.configKey,this.backgroundInitParams.containerSelector,this.backgroundInitParams.useDefaultBackground,this.backgroundInitParams.autoCreateElements):this.clearBackgroundImages(!0)})}},mounted(){this.injectBackgroundStyles()},beforeUnmount(){this.backgroundInterval&&clearInterval(this.backgroundInterval),this.clearBackgroundImages(!0),this.removeBackgroundStyles()},methods:{injectBackgroundStyles(){const e="background-manager-styles";if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent=this.backgroundImagesStyles,document.head.appendChild(t)}},removeBackgroundStyles(){const e="background-manager-styles",t=document.getElementById(e);t&&t.remove()},createBackgroundElements(e){if(!e)return void console.warn("未提供有效的容器元素");if(document.getElementById("bg1")||document.getElementById("bg2"))return;const t=document.createElement("img");t.id="bg1",t.className="background-image1",t.alt="Background Image";const a=document.createElement("img");a.id="bg2",a.className="background-image2",a.alt="Background Image",e.insertBefore(t,e.firstChild),e.insertBefore(a,e.firstChild)},initializeBackground(e,t=".login",a=!1,n=!1){if(!this.wallpaperEnabled)return void this.clearBackgroundImages(!0);this.backgroundInitParams={configKey:e,containerSelector:t,useDefaultBackground:a,autoCreateElements:n};const s=document.querySelector(t);this.prepareBackgroundContainer(s),n&&(!s||document.getElementById("bg1")&&document.getElementById("bg2")||this.createBackgroundElements(s));const i=document.getElementById("bg1"),o=document.getElementById("bg2");if(!i||!o)return void console.warn("背景图元素 #bg1 或 #bg2 未找到,请确保页面中包含这些元素或启用 autoCreateElements");const r=this.userConfig?.[e];"bing"===r?this.setupBingWallpaper(i,o,t):Array.isArray(r)&&r.length>1?this.setupCustomWallpaperCarousel(i,o,r,t):Array.isArray(r)&&1===r.length?this.setupSingleCustomWallpaper(i,r[0],t):a&&this.setupDefaultWallpaper(i,t)},setupBingWallpaper(e,t,a){this.$store.dispatch("fetchBingWallPapers").then(()=>{0!==this.bingWallPapers.length&&(this.loadBackgroundImage(e,this.bingWallPapers[this.bingWallPaperIndex]?.url,a,!0),this.backgroundInterval=setInterval(()=>{this.switchBingWallpaper(e,t)},this.bkInterval))})},setupCustomWallpaperCarousel(e,t,a,n){this.loadBackgroundImage(e,a[this.customWallPaperIndex],n,!0),this.backgroundInterval=setInterval(()=>{this.switchCustomWallpaper(e,t,a)},this.bkInterval)},setupSingleCustomWallpaper(e,t,a){this.loadBackgroundImage(e,t,a)},setupDefaultWallpaper(e,t){const n=this.useDarkMode,s=a(n?10732:7835);this.loadBackgroundImage(e,s,t)},loadBackgroundImage(e,t,a,n=!1){e.style.zIndex=-1,e.style.opacity=0,this.prepareBackgroundMotion(e,n);const s=document.querySelector(a);this.prepareBackgroundContainer(s);const i=()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{e.style.opacity=this.bkOpacity,n&&(e.style.transform="scale(1.045)")})})},o=new Image;o.onload=()=>{e.src=t,i()},o.onerror=()=>{e.src=t,i()},o.src=t},prepareBackgroundMotion(e,t=!1){if(!e)return;const a=Math.max(this.bkInterval+1200,4200);e.style.transition=t?`opacity 1.2s ease-in-out, filter 0.3s ease, transform ${a}ms ease-out`:"opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease",e.style.transformOrigin="center center",e.style.transform="scale(1)"},prepareBackgroundContainer(e){if(!e)return;const t=window.getComputedStyle(e);"static"===t.position&&(e.style.position="relative"),"auto"===t.zIndex&&(e.style.zIndex="0"),e.style.isolation="isolate"},switchBingWallpaper(e,t){if(0===this.bingWallPapers.length)return;const a=0!=e.style.opacity,n=a?e:t,s=a?t:e;this.bingWallPaperIndex=(this.bingWallPaperIndex+1)%this.bingWallPapers.length;const i=this.bingWallPapers[this.bingWallPaperIndex]?.url;n.style.zIndex=-2,s.style.zIndex=-1,this.prepareBackgroundMotion(s,!0);const o=new Image;o.onload=()=>{s.src=i,setTimeout(()=>{s.style.opacity=this.bkOpacity,s.style.transform="scale(1.045)",setTimeout(()=>{n.style.opacity=0,this.prepareBackgroundMotion(n,!0)},1200)},50)},o.src=i},switchCustomWallpaper(e,t,a){const n=0!=e.style.opacity,s=n?e:t,i=n?t:e;this.customWallPaperIndex=(this.customWallPaperIndex+1)%a.length;const o=a[this.customWallPaperIndex];s.style.zIndex=-2,i.style.zIndex=-1,this.prepareBackgroundMotion(i,!0);const r=new Image;r.onload=()=>{i.src=o,setTimeout(()=>{i.style.opacity=this.bkOpacity,i.style.transform="scale(1.045)",setTimeout(()=>{s.style.opacity=0,this.prepareBackgroundMotion(s,!0)},1200)},50)},r.src=o},clearBackgroundInterval(){this.backgroundInterval&&(clearInterval(this.backgroundInterval),this.backgroundInterval=null)},clearBackgroundImages(e=!1){const t=document.getElementById("bg1"),a=document.getElementById("bg2");e?(t&&(t.style.transition="none",t.style.opacity=0,t.src="",setTimeout(()=>{t&&(t.style.transition="opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease")},50)),a&&(a.style.transition="none",a.style.opacity=0,a.src="",setTimeout(()=>{a&&(a.style.transition="opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease")},50))):(t&&(t.style.opacity=0,setTimeout(()=>{t&&(t.src="")},1200)),a&&(a.style.opacity=0,setTimeout(()=>{a&&(a.src="")},1200)))},smoothThemeTransition(e,t=".login",n=!1,s=!1){const i=this.userConfig?.[e];if(!n||void 0!==i)return void this.reinitializeBackground(e,t,n,s);const o=document.getElementById("bg1"),r=document.getElementById("bg2");if(!o||!r)return void this.reinitializeBackground(e,t,n,s);const c=0!=o.style.opacity?o:r,l=0!=o.style.opacity?r:o,d=this.useDarkMode,u=a(d?10732:7835),g=new Image;g.onload=()=>{l.src=u,l.onload=()=>{c.style.opacity=0,setTimeout(()=>{l.style.opacity=this.bkOpacity},50)}},g.onerror=()=>{console.warn("主题背景图预加载失败,回退到直接切换"),this.reinitializeBackground(e,t,n,s)},g.src=u},reinitializeBackground(e,t=".login",a=!1,n=!1){this.clearBackgroundInterval(),this.clearBackgroundImages(!0),this.bingWallPaperIndex=0,this.customWallPaperIndex=0,setTimeout(()=>{this.initializeBackground(e,t,a,n)},100)}}}}}]); -//# sourceMappingURL=331.66294132.js.map \ No newline at end of file diff --git a/frontend-dist/js/331.66294132.js.gz b/frontend-dist/js/331.66294132.js.gz deleted file mode 100644 index 160d5eff7967e0635867dcede9cec5b0175a8772..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3794 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 I0@yDA026X> [_createVNode(_component_font_awesome_icon, {\n icon: \"home\"\n })]),\n _: 1\n }, 8, [\"onClick\"])]), _createElementVNode(\"div\", _hoisted_5, [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_font_awesome_icon, {\n icon: \"ban\",\n class: \"ban-icon\"\n }), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_font_awesome_icon, {\n icon: \"exclamation\",\n class: \"exclamation-icon\"\n })])])]), _createElementVNode(\"div\", _hoisted_8, [_cache[9] || (_cache[9] = _createElementVNode(\"h1\", {\n class: \"status-title\"\n }, \"图片访问被禁止\", -1)), _cache[10] || (_cache[10] = _createElementVNode(\"p\", {\n class: \"status-description\"\n }, \" 抱歉,当前图片已被禁止访问。 \", -1)), _cache[11] || (_cache[11] = _createElementVNode(\"p\", {\n class: \"status-description-en\"\n }, \" Sorry, current image is prohibited from being accessed. \", -1)), _createElementVNode(\"div\", _hoisted_9, [_createVNode(_component_el_button, {\n type: \"primary\",\n size: \"large\",\n class: \"action-btn primary-btn\",\n onClick: $options.goHome\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"home\",\n class: \"btn-icon\"\n }), _cache[3] || (_cache[3] = _createTextVNode(\" 返回首页 \", -1))]),\n _: 1\n }, 8, [\"onClick\"]), _createVNode(_component_el_button, {\n size: \"large\",\n class: \"action-btn secondary-btn\",\n onClick: $options.goBack\n }, {\n default: _withCtx(() => [_createVNode(_component_font_awesome_icon, {\n icon: \"arrow-left\",\n class: \"btn-icon\"\n }), _cache[4] || (_cache[4] = _createTextVNode(\" 返回上页 \", -1))]),\n _: 1\n }, 8, [\"onClick\"])]), _createElementVNode(\"div\", _hoisted_10, [_cache[8] || (_cache[8] = _createElementVNode(\"p\", {\n class: \"help-text\"\n }, \"您可以尝试:\", -1)), _createElementVNode(\"div\", _hoisted_11, [_createElementVNode(\"a\", {\n href: \"javascript:void(0)\",\n onClick: _cache[0] || (_cache[0] = (...args) => $options.goHome && $options.goHome(...args)),\n class: \"quick-link\"\n }, [_createVNode(_component_font_awesome_icon, {\n icon: \"cloud-upload-alt\"\n }), _cache[5] || (_cache[5] = _createTextVNode(\" 图片上传 \", -1))]), _createElementVNode(\"a\", {\n href: \"javascript:void(0)\",\n onClick: _cache[1] || (_cache[1] = (...args) => $options.refreshPage && $options.refreshPage(...args)),\n class: \"quick-link\"\n }, [_createVNode(_component_font_awesome_icon, {\n icon: \"redo\"\n }), _cache[6] || (_cache[6] = _createTextVNode(\" 刷新页面 \", -1))]), _createElementVNode(\"a\", {\n href: \"javascript:void(0)\",\n onClick: _cache[2] || (_cache[2] = (...args) => $options.contactSupport && $options.contactSupport(...args)),\n class: \"quick-link\"\n }, [_createVNode(_component_font_awesome_icon, {\n icon: \"question-circle\"\n }), _cache[7] || (_cache[7] = _createTextVNode(\" 联系支持 \", -1))])])]), _cache[12] || (_cache[12] = _createElementVNode(\"div\", {\n class: \"powered-by\"\n }, [_createElementVNode(\"p\", null, [_createTextVNode(\"Powered By: \"), _createElementVNode(\"a\", {\n href: \"https://github.com/MarSeventh/CloudFlare-ImgBed\",\n class: \"project-link\"\n }, \" CloudFlare-ImgBed \")])], -1))])]), _cache[13] || (_cache[13] = _createStaticVNode(\"
\", 1))]);\n}","import \"core-js/modules/es.array.push.js\";\nimport { useHead } from '@vueuse/head';\nimport { mapGetters } from 'vuex';\nimport backgroundManager from '@/mixins/backgroundManager';\nexport default {\n name: 'BlockedImage',\n mixins: [backgroundManager],\n computed: {\n ...mapGetters(['useDarkMode', 'userConfig'])\n },\n setup() {\n useHead({\n title: 'Blocked Image',\n meta: [{\n name: 'robots',\n content: 'noindex, nofollow'\n }, {\n name: 'viewport',\n content: 'width=device-width, initial-scale=1'\n }, {\n charset: 'UTF-8'\n }]\n });\n },\n mounted() {\n // 初始化背景图\n this.initializeBackground('uploadBkImg', '.blocked-container', false, true);\n },\n beforeUnmount() {\n // 清理背景轮播定时器\n this.clearBackgroundInterval();\n },\n methods: {\n goHome() {\n this.$router.push('/');\n },\n goBack() {\n if (window.history.length > 1) {\n this.$router.go(-1);\n } else {\n this.$router.push('/');\n }\n },\n refreshPage() {\n window.location.reload();\n },\n contactSupport() {\n // 可以实现联系支持的逻辑\n window.open('https://github.com/MarSeventh/CloudFlare-ImgBed/issues', '_blank');\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./BlockImage.vue?vue&type=template&id=98114f90&scoped=true\"\nimport script from \"./BlockImage.vue?vue&type=script&lang=js\"\nexport * from \"./BlockImage.vue?vue&type=script&lang=js\"\n\nimport \"./BlockImage.vue?vue&type=style&index=0&id=98114f90&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-98114f90\"]])\n\nexport default __exports__","/**\r\n * 背景图管理 Mixin\r\n * 用于统一管理页面背景图的加载和轮播逻辑\r\n */\r\n\r\nimport { mapGetters } from 'vuex'\r\n\r\nexport default {\r\n data() {\r\n return {\r\n bingWallPaperIndex: 0,\r\n customWallPaperIndex: 0,\r\n backgroundInterval: null, // 存储轮播定时器\r\n // 存储初始化参数,用于主题切换时重新初始化\r\n backgroundInitParams: null,\r\n }\r\n },\r\n computed: {\r\n ...mapGetters(['userConfig', 'bingWallPapers', 'useDarkMode', 'wallpaperEnabled']),\r\n bkInterval() {\r\n return this.userConfig?.bkInterval || 3000\r\n },\r\n bkOpacity() {\r\n return this.userConfig?.bkOpacity || 1\r\n },\r\n // 提供背景图片元素的模板\r\n backgroundImagesTemplate() {\r\n return `\r\n \"Background\r\n \"Background\r\n `\r\n },\r\n // 提供背景图片的CSS样式\r\n backgroundImagesStyles() {\r\n return `\r\n .background-image1 {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n z-index: -1;\r\n pointer-events: none;\r\n opacity: 0;\r\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\r\n transform: scale(1);\r\n transform-origin: center center;\r\n will-change: opacity, transform;\r\n filter: var(--background-image-filter, brightness(1));\r\n }\r\n .background-image2 {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n z-index: -1;\r\n pointer-events: none;\r\n opacity: 0;\r\n transition: opacity 1.2s ease-in-out, filter 0.3s ease, transform 4.2s ease-out;\r\n transform: scale(1);\r\n transform-origin: center center;\r\n will-change: opacity, transform;\r\n filter: var(--background-image-filter, brightness(1));\r\n }\r\n `\r\n }\r\n },\r\n\r\n watch: {\r\n // 监听深色模式切换\r\n useDarkMode(newVal, oldVal) {\r\n // 只有在值真正改变且已经初始化过背景时才平滑切换主题\r\n if (newVal !== oldVal && this.backgroundInitParams) {\r\n this.$nextTick(() => {\r\n this.smoothThemeTransition(\r\n this.backgroundInitParams.configKey,\r\n this.backgroundInitParams.containerSelector,\r\n this.backgroundInitParams.useDefaultBackground,\r\n this.backgroundInitParams.autoCreateElements\r\n )\r\n })\r\n }\r\n },\r\n // 监听全局壁纸开关:开/关时重新初始化背景\r\n wallpaperEnabled(newVal, oldVal) {\r\n if (newVal === oldVal || !this.backgroundInitParams) return\r\n this.$nextTick(() => {\r\n if (newVal) {\r\n // 开启:重新初始化背景\r\n this.reinitializeBackground(\r\n this.backgroundInitParams.configKey,\r\n this.backgroundInitParams.containerSelector,\r\n this.backgroundInitParams.useDefaultBackground,\r\n this.backgroundInitParams.autoCreateElements\r\n )\r\n } else {\r\n // 关闭:清理背景\r\n this.clearBackgroundImages(true)\r\n }\r\n })\r\n }\r\n },\r\n\r\n mounted() {\r\n // 动态注入背景图片的CSS样式\r\n this.injectBackgroundStyles()\r\n },\r\n\r\n beforeUnmount() {\r\n // 组件销毁前清除定时器\r\n if (this.backgroundInterval) {\r\n clearInterval(this.backgroundInterval)\r\n }\r\n // 立即清除背景图片,不使用过渡效果\r\n this.clearBackgroundImages(true)\r\n // 移除动态注入的样式\r\n this.removeBackgroundStyles()\r\n },\r\n\r\n methods: {\r\n /**\r\n * 动态注入背景图片样式\r\n */\r\n injectBackgroundStyles() {\r\n const styleId = 'background-manager-styles'\r\n if (!document.getElementById(styleId)) {\r\n const style = document.createElement('style')\r\n style.id = styleId\r\n style.textContent = this.backgroundImagesStyles\r\n document.head.appendChild(style)\r\n }\r\n },\r\n\r\n /**\r\n * 移除动态注入的样式\r\n */\r\n removeBackgroundStyles() {\r\n const styleId = 'background-manager-styles'\r\n const existingStyle = document.getElementById(styleId)\r\n if (existingStyle) {\r\n existingStyle.remove()\r\n }\r\n },\r\n\r\n /**\r\n * 动态创建背景图片元素\r\n * @param {HTMLElement} container - 要插入背景图片的容器元素\r\n */\r\n createBackgroundElements(container) {\r\n if (!container) {\r\n console.warn('未提供有效的容器元素')\r\n return\r\n }\r\n\r\n // 检查是否已经存在背景图片元素\r\n if (document.getElementById('bg1') || document.getElementById('bg2')) {\r\n return\r\n }\r\n\r\n // 创建 bg1 元素\r\n const bg1 = document.createElement('img')\r\n bg1.id = 'bg1'\r\n bg1.className = 'background-image1'\r\n bg1.alt = 'Background Image'\r\n \r\n // 创建 bg2 元素\r\n const bg2 = document.createElement('img')\r\n bg2.id = 'bg2'\r\n bg2.className = 'background-image2'\r\n bg2.alt = 'Background Image'\r\n\r\n // 将元素插入到容器的开头\r\n container.insertBefore(bg1, container.firstChild)\r\n container.insertBefore(bg2, container.firstChild)\r\n },\r\n /**\r\n * 初始化背景图\r\n * @param {string} configKey - 用户配置中的背景图配置键名\r\n * @param {string} containerSelector - 容器选择器,用于设置透明背景\r\n * @param {boolean} useDefaultBackground - 是否使用默认背景图\r\n * @param {boolean} autoCreateElements - 是否自动创建背景元素\r\n */\r\n initializeBackground(configKey, containerSelector = '.login', useDefaultBackground = false, autoCreateElements = false) {\r\n // 如果全局壁纸开关关闭,直接清理背景并返回\r\n if (!this.wallpaperEnabled) {\r\n this.clearBackgroundImages(true);\r\n return;\r\n }\r\n // 保存初始化参数,用于主题切换时重新初始化\r\n this.backgroundInitParams = {\r\n configKey,\r\n containerSelector,\r\n useDefaultBackground,\r\n autoCreateElements\r\n }\r\n\r\n // 如果需要自动创建元素且元素不存在,则创建\r\n const container = document.querySelector(containerSelector)\r\n this.prepareBackgroundContainer(container)\r\n\r\n if (autoCreateElements) {\r\n if (container && (!document.getElementById('bg1') || !document.getElementById('bg2'))) {\r\n this.createBackgroundElements(container)\r\n }\r\n }\r\n\r\n const bg1 = document.getElementById('bg1')\r\n const bg2 = document.getElementById('bg2')\r\n \r\n if (!bg1 || !bg2) {\r\n console.warn('背景图元素 #bg1 或 #bg2 未找到,请确保页面中包含这些元素或启用 autoCreateElements')\r\n return\r\n }\r\n\r\n const backgroundConfig = this.userConfig?.[configKey]\r\n\r\n if (backgroundConfig === 'bing') {\r\n this.setupBingWallpaper(bg1, bg2, containerSelector)\r\n } else if (Array.isArray(backgroundConfig) && backgroundConfig.length > 1) {\r\n this.setupCustomWallpaperCarousel(bg1, bg2, backgroundConfig, containerSelector)\r\n } else if (Array.isArray(backgroundConfig) && backgroundConfig.length === 1) {\r\n this.setupSingleCustomWallpaper(bg1, backgroundConfig[0], containerSelector)\r\n } else if (useDefaultBackground) {\r\n this.setupDefaultWallpaper(bg1, containerSelector)\r\n }\r\n },\r\n\r\n /**\r\n * 设置 Bing 壁纸轮播\r\n */\r\n setupBingWallpaper(bg1, bg2, containerSelector) {\r\n this.$store.dispatch('fetchBingWallPapers').then(() => {\r\n if (this.bingWallPapers.length === 0) return\r\n\r\n this.loadBackgroundImage(bg1, this.bingWallPapers[this.bingWallPaperIndex]?.url, containerSelector, true)\r\n \r\n this.backgroundInterval = setInterval(() => {\r\n this.switchBingWallpaper(bg1, bg2)\r\n }, this.bkInterval)\r\n })\r\n },\r\n\r\n /**\r\n * 设置自定义壁纸轮播\r\n */\r\n setupCustomWallpaperCarousel(bg1, bg2, wallpapers, containerSelector) {\r\n this.loadBackgroundImage(bg1, wallpapers[this.customWallPaperIndex], containerSelector, true)\r\n \r\n this.backgroundInterval = setInterval(() => {\r\n this.switchCustomWallpaper(bg1, bg2, wallpapers)\r\n }, this.bkInterval)\r\n },\r\n\r\n /**\r\n * 设置单张自定义壁纸\r\n */\r\n setupSingleCustomWallpaper(bg1, wallpaperUrl, containerSelector) {\r\n this.loadBackgroundImage(bg1, wallpaperUrl, containerSelector)\r\n },\r\n\r\n /**\r\n * 设置默认壁纸\r\n */\r\n setupDefaultWallpaper(bg1, containerSelector) {\r\n // 根据当前深色模式状态选择背景图\r\n const isDark = this.useDarkMode\r\n const defaultImage = isDark \r\n ? require('@/assets/background.jpg') \r\n : require('@/assets/background-light.jpg')\r\n \r\n this.loadBackgroundImage(bg1, defaultImage, containerSelector)\r\n },\r\n\r\n /**\r\n * 加载背景图片\r\n */\r\n loadBackgroundImage(imgElement, imageSrc, containerSelector, enableZoom = false) {\r\n // 确保初始化时层级正确\r\n imgElement.style.zIndex = -1\r\n imgElement.style.opacity = 0\r\n this.prepareBackgroundMotion(imgElement, enableZoom)\r\n const container = document.querySelector(containerSelector)\r\n this.prepareBackgroundContainer(container)\r\n\r\n const showImage = () => {\r\n requestAnimationFrame(() => {\r\n requestAnimationFrame(() => {\r\n imgElement.style.opacity = this.bkOpacity\r\n if (enableZoom) {\r\n imgElement.style.transform = 'scale(1.045)'\r\n }\r\n })\r\n })\r\n }\r\n\r\n const preload = new Image()\r\n preload.onload = () => {\r\n imgElement.src = imageSrc\r\n showImage()\r\n }\r\n preload.onerror = () => {\r\n imgElement.src = imageSrc\r\n showImage()\r\n }\r\n preload.src = imageSrc\r\n },\r\n\r\n prepareBackgroundMotion(imgElement, enableZoom = false) {\r\n if (!imgElement) return\r\n\r\n const zoomDuration = Math.max(this.bkInterval + 1200, 4200)\r\n imgElement.style.transition = enableZoom\r\n ? `opacity 1.2s ease-in-out, filter 0.3s ease, transform ${zoomDuration}ms ease-out`\r\n : 'opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease'\r\n imgElement.style.transformOrigin = 'center center'\r\n imgElement.style.transform = 'scale(1)'\r\n },\r\n \r\n prepareBackgroundContainer(container) {\r\n if (!container) return\r\n\r\n const computedStyle = window.getComputedStyle(container)\r\n if (computedStyle.position === 'static') {\r\n container.style.position = 'relative'\r\n }\r\n\r\n if (computedStyle.zIndex === 'auto') {\r\n container.style.zIndex = '0'\r\n }\r\n\r\n container.style.isolation = 'isolate'\r\n },\r\n\r\n /**\r\n * 切换 Bing 壁纸\r\n */\r\n switchBingWallpaper(bg1, bg2) {\r\n if (this.bingWallPapers.length === 0) return\r\n\r\n const isBg1Current = bg1.style.opacity != 0\r\n const curBg = isBg1Current ? bg1 : bg2\r\n const nextBg = isBg1Current ? bg2 : bg1\r\n \r\n this.bingWallPaperIndex = (this.bingWallPaperIndex + 1) % this.bingWallPapers.length\r\n const nextUrl = this.bingWallPapers[this.bingWallPaperIndex]?.url\r\n\r\n // 【层级魔法】:让旧图垫底,新图置顶\r\n curBg.style.zIndex = -2\r\n nextBg.style.zIndex = -1\r\n this.prepareBackgroundMotion(nextBg, true)\r\n\r\n const preload = new Image()\r\n preload.onload = () => {\r\n nextBg.src = nextUrl\r\n \r\n // 稍微延迟 50ms,确保浏览器把新图渲染到 DOM 上且层级已更新\r\n setTimeout(() => {\r\n nextBg.style.opacity = this.bkOpacity // 新图直接在顶层优雅淡入\r\n nextBg.style.transform = 'scale(1.045)'\r\n \r\n // 等新图 1.2s 完全覆盖后,在底下默默把旧图透明度归零,毫无视觉断层\r\n setTimeout(() => { \r\n curBg.style.opacity = 0 \r\n this.prepareBackgroundMotion(curBg, true)\r\n }, 1200)\r\n }, 50)\r\n }\r\n preload.src = nextUrl\r\n },\r\n\r\n /**\r\n * 切换自定义壁纸\r\n */\r\n switchCustomWallpaper(bg1, bg2, wallpapers) {\r\n const isBg1Current = bg1.style.opacity != 0\r\n const curBg = isBg1Current ? bg1 : bg2\r\n const nextBg = isBg1Current ? bg2 : bg1\r\n \r\n this.customWallPaperIndex = (this.customWallPaperIndex + 1) % wallpapers.length\r\n const nextUrl = wallpapers[this.customWallPaperIndex]\r\n\r\n // 旧图垫底,新图置顶\r\n curBg.style.zIndex = -2\r\n nextBg.style.zIndex = -1\r\n this.prepareBackgroundMotion(nextBg, true)\r\n\r\n const preload = new Image()\r\n preload.onload = () => {\r\n nextBg.src = nextUrl\r\n \r\n setTimeout(() => {\r\n nextBg.style.opacity = this.bkOpacity\r\n nextBg.style.transform = 'scale(1.045)'\r\n \r\n setTimeout(() => { \r\n curBg.style.opacity = 0 \r\n this.prepareBackgroundMotion(curBg, true)\r\n }, 1200)\r\n }, 50)\r\n }\r\n preload.src = nextUrl\r\n },\r\n\r\n /**\r\n * 清除背景轮播定时器\r\n */\r\n clearBackgroundInterval() {\r\n if (this.backgroundInterval) {\r\n clearInterval(this.backgroundInterval)\r\n this.backgroundInterval = null\r\n }\r\n },\r\n\r\n /**\r\n * 清除背景图片显示(带过渡效果)\r\n * @param {boolean} immediate - 是否立即清除,不使用过渡效果\r\n */\r\n clearBackgroundImages(immediate = false) {\r\n const bg1 = document.getElementById('bg1')\r\n const bg2 = document.getElementById('bg2')\r\n \r\n if (immediate) {\r\n // 立即清除,不使用过渡效果\r\n if (bg1) {\r\n bg1.style.transition = 'none'\r\n bg1.style.opacity = 0\r\n bg1.src = ''\r\n // 恢复过渡效果\r\n setTimeout(() => {\r\n if (bg1) bg1.style.transition = 'opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease'\r\n }, 50)\r\n }\r\n if (bg2) {\r\n bg2.style.transition = 'none'\r\n bg2.style.opacity = 0\r\n bg2.src = ''\r\n // 恢复过渡效果\r\n setTimeout(() => {\r\n if (bg2) bg2.style.transition = 'opacity 1.2s ease-in-out, filter 0.3s ease, transform 0.3s ease'\r\n }, 50)\r\n }\r\n } else {\r\n // 使用过渡效果淡出\r\n if (bg1) {\r\n bg1.style.opacity = 0\r\n setTimeout(() => {\r\n if (bg1) bg1.src = ''\r\n }, 1200)\r\n }\r\n if (bg2) {\r\n bg2.style.opacity = 0\r\n setTimeout(() => {\r\n if (bg2) bg2.src = ''\r\n }, 1200)\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * 平滑主题切换(用于响应主题模式变化)\r\n * @param {string} configKey - 用户配置中的背景图配置键名\r\n * @param {string} containerSelector - 容器选择器\r\n * @param {boolean} useDefaultBackground - 是否使用默认背景图\r\n * @param {boolean} autoCreateElements - 是否自动创建背景元素\r\n */\r\n smoothThemeTransition(configKey, containerSelector = '.login', useDefaultBackground = false, autoCreateElements = false) {\r\n const backgroundConfig = this.userConfig?.[configKey]\r\n \r\n // 如果不是默认背景配置,则直接重新初始化(自定义背景不受主题影响)\r\n if (!useDefaultBackground || backgroundConfig !== undefined) {\r\n this.reinitializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n return\r\n }\r\n\r\n // 对于默认背景,执行平滑过渡\r\n const bg1 = document.getElementById('bg1')\r\n const bg2 = document.getElementById('bg2')\r\n \r\n if (!bg1 || !bg2) {\r\n // 如果背景元素不存在,直接重新初始化\r\n this.reinitializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n return\r\n }\r\n\r\n // 确定当前显示的背景和下一个背景\r\n const currentBg = bg1.style.opacity != 0 ? bg1 : bg2\r\n const nextBg = bg1.style.opacity != 0 ? bg2 : bg1\r\n\r\n // 获取新主题对应的背景图\r\n const isDark = this.useDarkMode\r\n const newThemeImage = isDark \r\n ? require('@/assets/background.jpg') \r\n : require('@/assets/background-light.jpg')\r\n\r\n // 预加载新背景图\r\n const preloadImg = new Image()\r\n preloadImg.onload = () => {\r\n // 设置下一个背景的图片源\r\n nextBg.src = newThemeImage\r\n \r\n // 等待图片加载完成后执行淡入淡出过渡\r\n nextBg.onload = () => {\r\n // 淡出当前背景\r\n currentBg.style.opacity = 0\r\n \r\n // 稍微延迟后淡入新背景,确保过渡效果平滑\r\n setTimeout(() => {\r\n nextBg.style.opacity = this.bkOpacity\r\n }, 50) // 50ms 延迟,让淡出效果先开始\r\n }\r\n }\r\n \r\n preloadImg.onerror = () => {\r\n // 如果预加载失败,回退到直接重新初始化\r\n console.warn('主题背景图预加载失败,回退到直接切换')\r\n this.reinitializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n }\r\n \r\n preloadImg.src = newThemeImage\r\n },\r\n\r\n /**\r\n * 重新初始化背景图(用于响应配置变化)\r\n */\r\n reinitializeBackground(configKey, containerSelector = '.login', useDefaultBackground = false, autoCreateElements = false) {\r\n this.clearBackgroundInterval()\r\n this.clearBackgroundImages(true) // 使用立即清除\r\n this.bingWallPaperIndex = 0\r\n this.customWallPaperIndex = 0\r\n \r\n // 延迟一小段时间确保清理完成\r\n setTimeout(() => {\r\n this.initializeBackground(configKey, containerSelector, useDefaultBackground, autoCreateElements)\r\n }, 100)\r\n }\r\n }\r\n}\r\n"],"names":["_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","render","_ctx","_cache","$props","$setup","$data","$options","_component_font_awesome_icon","_component_el_button","innerHTML","backgroundImagesTemplate","onClick","goHome","circle","size","default","icon","_","type","goBack","href","args","refreshPage","contactSupport","name","mixins","backgroundManager","computed","setup","u","title","meta","content","charset","mounted","this","initializeBackground","beforeUnmount","clearBackgroundInterval","methods","$router","push","window","history","length","go","location","reload","open","__exports__","data","bingWallPaperIndex","customWallPaperIndex","backgroundInterval","backgroundInitParams","mapGetters","bkInterval","userConfig","bkOpacity","backgroundImagesStyles","watch","useDarkMode","newVal","oldVal","$nextTick","smoothThemeTransition","configKey","containerSelector","useDefaultBackground","autoCreateElements","wallpaperEnabled","reinitializeBackground","clearBackgroundImages","injectBackgroundStyles","clearInterval","removeBackgroundStyles","styleId","document","getElementById","style","createElement","id","textContent","head","appendChild","existingStyle","remove","createBackgroundElements","container","console","warn","bg1","className","alt","bg2","insertBefore","firstChild","querySelector","prepareBackgroundContainer","backgroundConfig","setupBingWallpaper","Array","isArray","setupCustomWallpaperCarousel","setupSingleCustomWallpaper","setupDefaultWallpaper","$store","dispatch","then","bingWallPapers","loadBackgroundImage","url","setInterval","switchBingWallpaper","wallpapers","switchCustomWallpaper","wallpaperUrl","isDark","defaultImage","require","imgElement","imageSrc","enableZoom","zIndex","opacity","prepareBackgroundMotion","showImage","requestAnimationFrame","transform","preload","Image","onload","src","onerror","zoomDuration","Math","max","transition","transformOrigin","computedStyle","getComputedStyle","position","isolation","isBg1Current","curBg","nextBg","nextUrl","setTimeout","immediate","undefined","currentBg","newThemeImage","preloadImg"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/frontend-dist/js/331.66294132.js.map.gz b/frontend-dist/js/331.66294132.js.map.gz deleted file mode 100644 index d75b7f6aabaae2ed0d01e22e5db5a2e8f43c5540..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10200 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 Sr-oChv;Ph*`A@BkK diff --git a/frontend-dist/js/412.2e84fff1.js.map.gz b/frontend-dist/js/412.2e84fff1.js.map.gz deleted file mode 100644 index 5c1847074371f0967becca21d68c9009ee650266..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163538 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
p~2~ed!U%_vk}4 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%0D)n^ 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 B?c@Le diff --git a/frontend-dist/js/412.2e84fff1.js b/frontend-dist/js/412.2eefa4a8.js similarity index 99% rename from frontend-dist/js/412.2e84fff1.js rename to frontend-dist/js/412.2eefa4a8.js index 280566c0..6b05f165 100644 --- a/frontend-dist/js/412.2e84fff1.js +++ b/frontend-dist/js/412.2eefa4a8.js @@ -1,2 +1,2 @@ (self["webpackChunksanyue_imghub"]=self["webpackChunksanyue_imghub"]||[]).push([[412],{3975:function(e,t,i){i(44114),i(18111),i(22489),i(7588),i(61701),function(t,i){e.exports=i()}(0,function(){"use strict";function e(e,t){for(var i=0;it){var i=function(e){var t="".concat(e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0}(t);return parseFloat(e.toFixed(i))}return Math.round(e/t)*t}return function(){function t(e,i){(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,t),f(e)?this.element=e:p(e)&&(this.element=document.querySelector(e)),f(this.element)&&b(this.element.rangeTouch)&&(this.config=s({},n,{},i),this.init())}return i=t,o=[{key:"setup",value:function(e){var i=1(i=100/l.width*(n.clientX-l.left))?i=0:100i?i-=(100-2*i)*c:50w.onPointerDown&&w.onPointerDown(...e)),onPointermove:t[4]||(t[4]=(...e)=>w.onPointerMove&&w.onPointerMove(...e)),onPointerup:t[5]||(t[5]=(...e)=>w.onPointerUp&&w.onPointerUp(...e)),onPointercancel:t[6]||(t[6]=(...e)=>w.onPointerUp&&w.onPointerUp(...e)),onDblclick:t[7]||(t[7]=(0,n.D$)((...e)=>w.onDblClick&&w.onDblClick(...e),["prevent"]))},[i.isImage?((0,s.uX)(),(0,s.CE)("img",{key:0,class:"tm-media",src:i.src,draggable:"false",style:(0,a.Tr)(w.mediaStyle),onLoad:t[0]||(t[0]=(...e)=>w.onLoad&&w.onLoad(...e))},null,44,r)):i.isVideo&&i.isActive?((0,s.uX)(),(0,s.CE)("div",{key:1,class:"tm-video-wrap",onPointerdown:t[1]||(t[1]=(0,n.D$)(()=>{},["stop"]))},[(0,s.Lk)("video",{ref:"videoEl",class:"plyr-video",src:i.src,playsinline:""},null,8,o)],32)):i.isVideo?((0,s.uX)(),(0,s.CE)("div",l,[...t[8]||(t[8]=[(0,s.Lk)("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[(0,s.Lk)("path",{d:"M8 5v14l11-7z"})],-1)])])):i.isAudio&&i.isActive?((0,s.uX)(),(0,s.CE)("div",{key:3,class:"tm-audio-wrap",onPointerdown:t[2]||(t[2]=(0,n.D$)(()=>{},["stop"]))},[(0,s.Lk)("div",c,[v.audioCover?((0,s.uX)(),(0,s.CE)("img",{key:0,src:v.audioCover,class:"cover-img"},null,8,h)):((0,s.uX)(),(0,s.CE)("svg",d,[...t[9]||(t[9]=[(0,s.Lk)("path",{d:"M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z"},null,-1)])]))]),(0,s.Lk)("div",u,[(0,s.Lk)("div",p,(0,a.v_)(v.audioTitle),1),v.audioArtist?((0,s.uX)(),(0,s.CE)("div",m,(0,a.v_)(v.audioArtist),1)):(0,s.Q3)("",!0)]),(0,s.Lk)("audio",{ref:"audioEl",class:"plyr-audio",src:i.src},null,8,g)],32)):i.isAudio?((0,s.uX)(),(0,s.CE)("div",f,[t[10]||(t[10]=(0,s.Lk)("svg",{class:"audio-icon-large",viewBox:"0 0 24 24",fill:"currentColor"},[(0,s.Lk)("path",{d:"M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z"})],-1)),(0,s.Lk)("span",y,(0,a.v_)(v.audioTitle),1)])):(0,s.Q3)("",!0)],544)}i(18111),i(7588),i(79577),i(41549),i(49797),i(49631),i(35623);var v=i(91114),w=(i(22489),i(61701),i(81148),i(20116),i(44114),i(13579),i(3975));const k=e=>null!==e&&"undefined"!==typeof e?e.constructor:null,T=(e,t)=>Boolean(e&&t&&e instanceof t),C=e=>null===e||"undefined"===typeof e,A=e=>k(e)===Object,S=e=>k(e)===Number&&!Number.isNaN(e),x=e=>k(e)===String,M=e=>k(e)===Boolean,E=e=>"function"===typeof e,L=e=>Array.isArray(e),P=e=>T(e,WeakMap),I=e=>T(e,NodeList),$=e=>k(e)===Text,N=e=>T(e,Event),D=e=>T(e,KeyboardEvent),F=e=>T(e,window.TextTrackCue)||T(e,window.VTTCue),_=e=>T(e,TextTrack)||!C(e)&&x(e.kind),R=e=>T(e,Promise)&&E(e.then);function O(e){return null!==e&&"object"===typeof e&&1===e.nodeType&&"object"===typeof e.style&&"object"===typeof e.ownerDocument}function B(e){return C(e)||(x(e)||L(e)||I(e))&&!e.length||A(e)&&!Object.keys(e).length}function H(e){if(T(e,window.URL))return!0;if(!x(e))return!1;let t=e;e.startsWith("http://")&&e.startsWith("https://")||(t=`http://${e}`);try{return!B(new URL(t).hostname)}catch{return!1}}var V={nullOrUndefined:C,object:A,number:S,string:x,boolean:M,function:E,array:L,weakMap:P,nodeList:I,element:O,textNode:$,event:N,keyboardEvent:D,cue:F,track:_,promise:R,url:H,empty:B};const j=(()=>{const e=document.createElement("span"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},i=Object.keys(t).find(t=>void 0!==e.style[t]);return!!V.string(i)&&t[i]})();function q(e,t){setTimeout(()=>{try{e.hidden=!0,e.offsetHeight,e.hidden=!1}catch{}},t)}i(18237);function U(e){return JSON.parse(JSON.stringify(e))}function X(e,t){return t.split(".").reduce((e,t)=>e&&e[t],e)}function z(e={},...t){if(!t.length)return e;const i=t.shift();return V.object(i)?(Object.keys(i).forEach(t=>{V.object(i[t])?(Object.keys(e).includes(t)||Object.assign(e,{[t]:{}}),z(e[t],i[t])):Object.assign(e,{[t]:i[t]})}),z(e,...t)):e}function W(e,t){const i=e.length?e:[e];Array.from(i).reverse().forEach((e,i)=>{const s=i>0?t.cloneNode(!0):t,n=e.parentNode,a=e.nextSibling;s.appendChild(e),a?n.insertBefore(s,a):n.appendChild(s)})}function K(e,t){V.element(e)&&!V.empty(t)&&Object.entries(t).filter(([,e])=>!V.nullOrUndefined(e)).forEach(([t,i])=>e.setAttribute(t,i))}function Y(e,t,i){const s=document.createElement(e);return V.object(t)&&K(s,t),V.string(i)&&(s.textContent=i),s}function Q(e,t){V.element(e)&&V.element(t)&&t.parentNode.insertBefore(e,t.nextSibling)}function J(e,t,i,s){V.element(t)&&t.appendChild(Y(e,i,s))}function G(e){V.nodeList(e)||V.array(e)?Array.from(e).forEach(G):V.element(e)&&V.element(e.parentNode)&&e.parentNode.removeChild(e)}function Z(e){if(!V.element(e))return;let{length:t}=e.childNodes;while(t>0)e.removeChild(e.lastChild),t-=1}function ee(e,t){return V.element(t)&&V.element(t.parentNode)&&V.element(e)?(t.parentNode.replaceChild(e,t),e):null}function te(e,t){if(!V.string(e)||V.empty(e))return{};const i={},s=z({},t);return e.split(",").forEach(e=>{const t=e.trim(),n=t.replace(".",""),a=t.replace(/[[\]]/g,""),r=a.split("="),[o]=r,l=r.length>1?r[1].replace(/["']/g,""):"",c=t.charAt(0);switch(c){case".":V.string(s.class)?i.class=`${s.class} ${n}`:i.class=n;break;case"#":i.id=t.replace("#","");break;case"[":i[o]=l;break;default:break}}),z(s,i)}function ie(e,t){if(!V.element(e))return;let i=t;V.boolean(i)||(i=!e.hidden),e.hidden=i}function se(e,t,i){if(V.nodeList(e))return Array.from(e).map(e=>se(e,t,i));if(V.element(e)){let s="toggle";return"undefined"!==typeof i&&(s=i?"add":"remove"),e.classList[s](t),e.classList.contains(t)}return!1}function ne(e,t){return V.element(e)&&e.classList.contains(t)}function ae(e,t){const{prototype:i}=Element;function s(){return Array.from(document.querySelectorAll(t)).includes(this)}const n=i.matches||i.webkitMatchesSelector||i.mozMatchesSelector||i.msMatchesSelector||s;return n.call(e,t)}function re(e,t){const{prototype:i}=Element;function s(){let e=this;do{if(ae.matches(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null}const n=i.closest||s;return n.call(e,t)}function oe(e){return this.elements.container.querySelectorAll(e)}function le(e){return this.elements.container.querySelector(e)}function ce(e=null,t=!1){V.element(e)&&e.focus({preventScroll:!0,focusVisible:t})}const he={"audio/ogg":"vorbis","audio/wav":"1","video/webm":"vp8, vorbis","video/mp4":"avc1.42E01E, mp4a.40.2","video/ogg":"theora"},de={audio:"canPlayType"in document.createElement("audio"),video:"canPlayType"in document.createElement("video"),check(e,t){const i=de[e]||"html5"!==t,s=i&&de.rangeInput;return{api:i,ui:s}},pip:(()=>document.pictureInPictureEnabled&&!Y("video").disablePictureInPicture)(),airplay:V.function(window.WebKitPlaybackTargetAvailabilityEvent),playsinline:"playsInline"in document.createElement("video"),mime(e){if(V.empty(e))return!1;const[t]=e.split("/");let i=e;if(!this.isHTML5||t!==this.type)return!1;Object.keys(he).includes(i)&&(i+=`; codecs="${he[e]}"`);try{return Boolean(i&&this.media.canPlayType(i).replace(/no/,""))}catch{return!1}},textTracks:"textTracks"in document.createElement("video"),rangeInput:(()=>{const e=document.createElement("input");return e.type="range","range"===e.type})(),touch:"ontouchstart"in document.documentElement,transitions:!1!==j,reducedMotion:"matchMedia"in window&&window.matchMedia("(prefers-reduced-motion)").matches};var ue=de;const pe=(()=>{let e=!1;try{const t=Object.defineProperty({},"passive",{get(){return e=!0,null}});window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch{}return e})();function me(e,t,i,s=!1,n=!0,a=!1){if(!e||!("addEventListener"in e)||V.empty(t)||!V.function(i))return;const r=t.split(" ");let o=a;pe&&(o={passive:n,capture:a}),r.forEach(t=>{this&&this.eventListeners&&s&&this.eventListeners.push({element:e,type:t,callback:i,options:o}),e[s?"addEventListener":"removeEventListener"](t,i,o)})}function ge(e,t="",i,s=!0,n=!1){me.call(this,e,t,i,!0,s,n)}function fe(e,t="",i,s=!0,n=!1){me.call(this,e,t,i,!1,s,n)}function ye(e,t="",i,s=!0,n=!1){const a=(...r)=>{fe(e,t,a,s,n),i.apply(this,r)};me.call(this,e,t,a,!0,s,n)}function be(e,t="",i=!1,s={}){if(!V.element(e)||V.empty(t))return;const n=new CustomEvent(t,{bubbles:i,detail:{...s,plyr:this}});e.dispatchEvent(n)}function ve(){this&&this.eventListeners&&(this.eventListeners.forEach(e=>{const{element:t,type:i,callback:s,options:n}=e;t.removeEventListener(i,s,n)}),this.eventListeners=[])}function we(){return new Promise(e=>this.ready?setTimeout(e,0):ge.call(this,this.elements.container,"ready",e)).then(()=>{})}function ke(e){V.promise(e)&&e.then(null,()=>{})}function Te(e){return V.array(e)?e.filter((t,i)=>e.indexOf(t)===i):e}function Ce(e,t){return V.array(e)&&e.length?e.reduce((e,i)=>Math.abs(i-t)({...e,[t/i]:[t,i]}),{});function xe(e){if(!V.array(e)&&(!V.string(e)||!e.includes(":")))return!1;const t=V.array(e)?e:e.split(":");return t.map(Number).every(V.number)}function Me(e){if(!V.array(e)||!e.every(V.number))return null;const[t,i]=e,s=(e,t)=>0===t?e:s(t,e%t),n=s(t,i);return[t/n,i/n]}function Ee(e){const t=e=>xe(e)?e.split(":").map(Number):null;let i=t(e);if(null===i&&(i=t(this.config.ratio)),null===i&&!V.empty(this.embed)&&V.array(this.embed.ratio)&&({ratio:i}=this.embed),null===i&&this.isHTML5){const{videoWidth:e,videoHeight:t}=this.media;i=[e,t]}return Me(i)}function Le(e){if(!this.isVideo)return{};const{wrapper:t}=this.elements,i=Ee.call(this,e);if(!V.array(i))return{};const[s,n]=Me(i),a=Ae(`aspect-ratio: ${s}/${n}`),r=100/s*n;if(a?t.style.aspectRatio=`${s}/${n}`:t.style.paddingBottom=`${r}%`,this.isVimeo&&!this.config.vimeo.premium&&this.supported.ui){const e=100/this.media.offsetWidth*Number.parseInt(window.getComputedStyle(this.media).paddingBottom,10),i=(e-r)/(e/50);this.fullscreen.active?t.style.paddingBottom=null:this.media.style.transform=`translateY(-${i}%)`}else this.isHTML5&&t.classList.add(this.config.classNames.videoFixedRatio);return{padding:r,ratio:i}}function Pe(e,t,i=.05){const s=e/t,n=Ce(Object.keys(Se),s);return Math.abs(n-s)<=i?Se[n]:[e,t]}function Ie(){const e=Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),t=Math.max(document.documentElement.clientHeight||0,window.innerHeight||0);return[e,t]}const $e={getSources(){if(!this.isHTML5)return[];const e=Array.from(this.media.querySelectorAll("source"));return e.filter(e=>{const t=e.getAttribute("type");return!!V.empty(t)||ue.mime.call(this,t)})},getQualityOptions(){return this.config.quality.forced?this.config.quality.options:$e.getSources.call(this).map(e=>Number(e.getAttribute("size"))).filter(Boolean)},setup(){if(!this.isHTML5)return;const e=this;e.options.speed=e.config.speed.options,V.empty(this.config.ratio)||Le.call(e),Object.defineProperty(e.media,"quality",{get(){const t=$e.getSources.call(e),i=t.find(t=>t.getAttribute("src")===e.source);return i&&Number(i.getAttribute("size"))},set(t){if(e.quality!==t){if(e.config.quality.forced&&V.function(e.config.quality.onChange))e.config.quality.onChange(t);else{const i=$e.getSources.call(e),s=i.find(e=>Number(e.getAttribute("size"))===t);if(!s)return;const{currentTime:n,paused:a,preload:r,readyState:o,playbackRate:l}=e.media;e.media.src=s.getAttribute("src"),("none"!==r||o)&&(e.once("loadedmetadata",()=>{e.speed=l,e.currentTime=n,a||ke(e.play())}),e.media.load())}be.call(e,e.media,"qualitychange",!1,{quality:t})}}})},cancelRequests(){this.isHTML5&&(G($e.getSources.call(this)),this.media.setAttribute("src",this.config.blankVideo),this.media.load(),this.debug.log("Cancelled network requests"))}};var Ne=$e;const De=Boolean(window.document.documentMode),Fe=/Edge/.test(navigator.userAgent),_e="WebkitAppearance"in document.documentElement.style&&!/Edge/.test(navigator.userAgent),Re=/iPhone|iPod/i.test(navigator.userAgent)&&navigator.maxTouchPoints>1,Oe="MacIntel"===navigator.platform&&navigator.maxTouchPoints>1,Be=/iPad|iPhone|iPod/i.test(navigator.userAgent)&&navigator.maxTouchPoints>1;var He={isIE:De,isEdge:Fe,isWebKit:_e,isIPhone:Re,isIPadOS:Oe,isIos:Be};function Ve(e){return`${e}-${Math.floor(1e4*Math.random())}`}function je(e,...t){return V.empty(e)?e:e.toString().replace(/\{(\d+)\}/g,(e,i)=>t[i].toString())}function qe(e,t){return 0===e||0===t||Number.isNaN(e)||Number.isNaN(t)?0:(e/t*100).toFixed(2)}function Ue(e="",t="",i=""){return e.replace(new RegExp(t.toString().replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1"),"g"),i.toString())}function Xe(e=""){return e.toString().replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase())}function ze(e=""){let t=e.toString();return t=Ue(t,"-"," "),t=Ue(t,"_"," "),t=Xe(t),Ue(t," ","")}function We(e=""){let t=e.toString();return t=ze(t),t.charAt(0).toLowerCase()+t.slice(1)}function Ke(e){const t=document.createDocumentFragment(),i=document.createElement("div");return t.appendChild(i),i.innerHTML=e,t.firstChild.textContent}function Ye(e){const t=document.createElement("div");return t.appendChild(e),t.innerHTML}const Qe={pip:"PIP",airplay:"AirPlay",html5:"HTML5",vimeo:"Vimeo",youtube:"YouTube"},Je={get(e="",t={}){if(V.empty(e)||V.empty(t))return"";let i=X(t.i18n,e);if(V.empty(i))return Object.keys(Qe).includes(e)?Qe[e]:"";const s={"{seektime}":t.seekTime,"{title}":t.title};return Object.entries(s).forEach(([e,t])=>{i=Ue(i,e,t)}),i}};var Ge=Je;class Ze{constructor(e){(0,v.A)(this,"get",e=>{if(!Ze.supported||!this.enabled)return null;const t=window.localStorage.getItem(this.key);if(V.empty(t))return null;const i=JSON.parse(t);return V.string(e)&&e.length?i[e]:i}),(0,v.A)(this,"set",e=>{if(!Ze.supported||!this.enabled)return;if(!V.object(e))return;let t=this.get();V.empty(t)&&(t={}),z(t,e);try{window.localStorage.setItem(this.key,JSON.stringify(t))}catch{}}),this.enabled=e.config.storage.enabled,this.key=e.config.storage.key}static get supported(){try{if(!("localStorage"in window))return!1;const e="___test";return window.localStorage.setItem(e,e),window.localStorage.removeItem(e),!0}catch{return!1}}}var et=Ze;function tt(e,t="text",i=!1){return new Promise((s,n)=>{try{const n=new XMLHttpRequest;if(!("withCredentials"in n))return;i&&(n.withCredentials=!0),n.addEventListener("load",()=>{if("text"===t)try{s(JSON.parse(n.responseText))}catch{s(n.responseText)}else s(n.response)}),n.addEventListener("error",()=>{throw new Error(n.status)}),n.open("GET",e,!0),n.responseType=t,n.send()}catch(a){n(a)}})}function it(e,t){if(!V.string(e))return;const i="cache",s=V.string(t);let n=!1;const a=()=>null!==document.getElementById(t),r=(e,t)=>{e.innerHTML=t,s&&a()||document.body.insertAdjacentElement("afterbegin",e)};if(!s||!a()){const a=et.supported,o=document.createElement("div");if(o.setAttribute("hidden",""),s&&o.setAttribute("id",t),a){const e=window.localStorage.getItem(`${i}-${t}`);if(n=null!==e,n){const t=JSON.parse(e);r(o,t.content)}}tt(e).then(e=>{if(!V.empty(e)){if(a)try{window.localStorage.setItem(`${i}-${t}`,JSON.stringify({content:e}))}catch{}r(o,e)}}).catch(()=>{})}}const st=e=>Math.trunc(e/60/60%60,10),nt=e=>Math.trunc(e/60%60,10),at=e=>Math.trunc(e%60,10);function rt(e=0,t=!1,i=!1){if(!V.number(e))return rt(void 0,t,i);const s=e=>`0${e}`.slice(-2);let n=st(e);const a=nt(e),r=at(e);return n=t||n>0?`${n}:`:"",`${i&&e>0?"-":""}${n}${s(a)}:${s(r)}`}const ot={getIconUrl(){const e=new URL(this.config.iconUrl,window.location),t=window.location.host?window.location.host:window.top.location.host,i=e.host!==t||He.isIE&&!window.svg4everybody;return{url:this.config.iconUrl,cors:i}},findElements(){try{return this.elements.controls=le.call(this,this.config.selectors.controls.wrapper),this.elements.buttons={play:oe.call(this,this.config.selectors.buttons.play),pause:le.call(this,this.config.selectors.buttons.pause),restart:le.call(this,this.config.selectors.buttons.restart),rewind:le.call(this,this.config.selectors.buttons.rewind),fastForward:le.call(this,this.config.selectors.buttons.fastForward),mute:le.call(this,this.config.selectors.buttons.mute),pip:le.call(this,this.config.selectors.buttons.pip),airplay:le.call(this,this.config.selectors.buttons.airplay),settings:le.call(this,this.config.selectors.buttons.settings),captions:le.call(this,this.config.selectors.buttons.captions),fullscreen:le.call(this,this.config.selectors.buttons.fullscreen)},this.elements.progress=le.call(this,this.config.selectors.progress),this.elements.inputs={seek:le.call(this,this.config.selectors.inputs.seek),volume:le.call(this,this.config.selectors.inputs.volume)},this.elements.display={buffer:le.call(this,this.config.selectors.display.buffer),currentTime:le.call(this,this.config.selectors.display.currentTime),duration:le.call(this,this.config.selectors.display.duration)},V.element(this.elements.progress)&&(this.elements.display.seekTooltip=this.elements.progress.querySelector(`.${this.config.classNames.tooltip}`)),!0}catch(e){return this.debug.warn("It looks like there is a problem with your custom controls HTML",e),this.toggleNativeControls(!0),!1}},createIcon(e,t){const i="http://www.w3.org/2000/svg",s=ot.getIconUrl.call(this),n=`${s.cors?"":s.url}#${this.config.iconPrefix}`,a=document.createElementNS(i,"svg");K(a,z(t,{"aria-hidden":"true",focusable:"false"}));const r=document.createElementNS(i,"use"),o=`${n}-${e}`;return"href"in r&&r.setAttributeNS("http://www.w3.org/1999/xlink","href",o),r.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",o),a.appendChild(r),a},createLabel(e,t={}){const i=Ge.get(e,this.config),s={...t,class:[t.class,this.config.classNames.hidden].filter(Boolean).join(" ")};return Y("span",s,i)},createBadge(e){if(V.empty(e))return null;const t=Y("span",{class:this.config.classNames.menu.value});return t.appendChild(Y("span",{class:this.config.classNames.menu.badge},e)),t},createButton(e,t){const i=z({},t);let s=We(e);const n={element:"button",toggle:!1,label:null,icon:null,labelPressed:null,iconPressed:null};switch(["element","icon","label"].forEach(e=>{Object.keys(i).includes(e)&&(n[e]=i[e],delete i[e])}),"button"!==n.element||Object.keys(i).includes("type")||(i.type="button"),Object.keys(i).includes("class")?i.class.split(" ").includes(this.config.classNames.control)||z(i,{class:`${i.class} ${this.config.classNames.control}`}):i.class=this.config.classNames.control,e){case"play":n.toggle=!0,n.label="play",n.labelPressed="pause",n.icon="play",n.iconPressed="pause";break;case"mute":n.toggle=!0,n.label="mute",n.labelPressed="unmute",n.icon="volume",n.iconPressed="muted";break;case"captions":n.toggle=!0,n.label="enableCaptions",n.labelPressed="disableCaptions",n.icon="captions-off",n.iconPressed="captions-on";break;case"fullscreen":n.toggle=!0,n.label="enterFullscreen",n.labelPressed="exitFullscreen",n.icon="enter-fullscreen",n.iconPressed="exit-fullscreen";break;case"play-large":i.class+=` ${this.config.classNames.control}--overlaid`,s="play",n.label="play",n.icon="play";break;default:V.empty(n.label)&&(n.label=s),V.empty(n.icon)&&(n.icon=e)}const a=Y(n.element);return n.toggle?(a.appendChild(ot.createIcon.call(this,n.iconPressed,{class:"icon--pressed"})),a.appendChild(ot.createIcon.call(this,n.icon,{class:"icon--not-pressed"})),a.appendChild(ot.createLabel.call(this,n.labelPressed,{class:"label--pressed"})),a.appendChild(ot.createLabel.call(this,n.label,{class:"label--not-pressed"}))):(a.appendChild(ot.createIcon.call(this,n.icon)),a.appendChild(ot.createLabel.call(this,n.label))),z(i,te(this.config.selectors.buttons[s],i)),K(a,i),"play"===s?(V.array(this.elements.buttons[s])||(this.elements.buttons[s]=[]),this.elements.buttons[s].push(a)):this.elements.buttons[s]=a,a},createRange(e,t){const i=Y("input",z(te(this.config.selectors.inputs[e]),{type:"range",min:0,max:100,step:.01,value:0,autocomplete:"off",role:"slider","aria-label":Ge.get(e,this.config),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":0},t));return this.elements.inputs[e]=i,ot.updateRangeFill.call(this,i),w.setup(i),i},createProgress(e,t){const i=Y("progress",z(te(this.config.selectors.display[e]),{min:0,max:100,value:0,role:"progressbar","aria-hidden":!0},t));if("volume"!==e){i.appendChild(Y("span",null,"0"));const t={played:"played",buffer:"buffered"}[e],s=t?Ge.get(t,this.config):"";i.textContent=`% ${s.toLowerCase()}`}return this.elements.display[e]=i,i},createTime(e,t){const i=te(this.config.selectors.display[e],t),s=Y("div",z(i,{class:`${i.class?i.class:""} ${this.config.classNames.display.time} `.trim(),"aria-label":Ge.get(e,this.config),role:"timer"}),"00:00");return this.elements.display[e]=s,s},bindMenuItemShortcuts(e,t){ge.call(this,e,"keydown keyup",i=>{if(![" ","ArrowUp","ArrowDown","ArrowRight"].includes(i.key))return;if(i.preventDefault(),i.stopPropagation(),"keydown"===i.type)return;const s=ae(e,'[role="menuitemradio"]');if(!s&&[" ","ArrowRight"].includes(i.key))ot.showMenuPanel.call(this,t,!0);else{let t;" "!==i.key&&("ArrowDown"===i.key||s&&"ArrowRight"===i.key?(t=e.nextElementSibling,V.element(t)||(t=e.parentNode.firstElementChild)):(t=e.previousElementSibling,V.element(t)||(t=e.parentNode.lastElementChild)),ce.call(this,t,!0))}},!1),ge.call(this,e,"keyup",e=>{"Return"===e.key&&ot.focusFirstMenuItem.call(this,null,!0)})},createMenuItem({value:e,list:t,type:i,title:s,badge:n=null,checked:a=!1}){const r=te(this.config.selectors.inputs[i]),o=Y("button",z(r,{type:"button",role:"menuitemradio",class:`${this.config.classNames.control} ${r.class?r.class:""}`.trim(),"aria-checked":a,value:e})),l=Y("span");l.innerHTML=s,V.element(n)&&l.appendChild(n),o.appendChild(l),Object.defineProperty(o,"checked",{enumerable:!0,get(){return"true"===o.getAttribute("aria-checked")},set(e){e&&Array.from(o.parentNode.children).filter(e=>ae(e,'[role="menuitemradio"]')).forEach(e=>e.setAttribute("aria-checked","false")),o.setAttribute("aria-checked",e?"true":"false")}}),this.listeners.bind(o,"click keyup",t=>{if(!V.keyboardEvent(t)||" "===t.key){switch(t.preventDefault(),t.stopPropagation(),o.checked=!0,i){case"language":this.currentTrack=Number(e);break;case"quality":this.quality=e;break;case"speed":this.speed=Number.parseFloat(e);break;default:break}ot.showMenuPanel.call(this,"home",V.keyboardEvent(t))}},i,!1),ot.bindMenuItemShortcuts.call(this,o,i),t.appendChild(o)},formatTime(e=0,t=!1){if(!V.number(e))return e;const i=st(this.duration)>0;return rt(e,i,t)},updateTimeDisplay(e=null,t=0,i=!1){V.element(e)&&V.number(t)&&(e.textContent=ot.formatTime(t,i))},updateVolume(){this.supported.ui&&(V.element(this.elements.inputs.volume)&&ot.setRange.call(this,this.elements.inputs.volume,this.muted?0:this.volume),V.element(this.elements.buttons.mute)&&(this.elements.buttons.mute.pressed=this.muted||0===this.volume))},setRange(e,t=0){V.element(e)&&(e.value=t,ot.updateRangeFill.call(this,e))},updateProgress(e){if(!this.supported.ui||!V.event(e))return;let t=0;const i=(e,t)=>{const i=V.number(t)?t:0,s=V.element(e)?e:this.elements.display.buffer;if(V.element(s)){s.value=i;const e=s.getElementsByTagName("span")[0];V.element(e)&&(e.childNodes[0].nodeValue=i)}};if(e)switch(e.type){case"timeupdate":case"seeking":case"seeked":t=qe(this.currentTime,this.duration),"timeupdate"===e.type&&ot.setRange.call(this,this.elements.inputs.seek,t);break;case"playing":case"progress":i(this.elements.display.buffer,100*this.buffered);break;default:break}},updateRangeFill(e){const t=V.event(e)?e.target:e;if(V.element(t)&&"range"===t.getAttribute("type")){if(ae(t,this.config.selectors.inputs.seek)){t.setAttribute("aria-valuenow",this.currentTime);const e=ot.formatTime(this.currentTime),i=ot.formatTime(this.duration),s=Ge.get("seekLabel",this.config);t.setAttribute("aria-valuetext",s.replace("{currentTime}",e).replace("{duration}",i))}else if(ae(t,this.config.selectors.inputs.volume)){const e=100*t.value;t.setAttribute("aria-valuenow",e),t.setAttribute("aria-valuetext",`${e.toFixed(1)}%`)}else t.setAttribute("aria-valuenow",t.value);(He.isWebKit||He.isIPadOS)&&t.style.setProperty("--value",t.value/t.max*100+"%")}},updateSeekTooltip(e){if(!this.config.tooltips.seek||!V.element(this.elements.inputs.seek)||!V.element(this.elements.display.seekTooltip)||0===this.duration)return;const t=this.elements.display.seekTooltip,i=`${this.config.classNames.tooltip}--visible`,s=e=>se(t,i,e);if(this.touch)return void s(!1);let n=0;const a=this.elements.progress.getBoundingClientRect();if(V.event(e)){const t=e.pageX-e.clientX;n=100/a.width*(e.pageX-a.left-t)}else{if(!ne(t,i))return;n=Number.parseFloat(t.style.left,10)}n<0?n=0:n>100&&(n=100);const r=this.duration/100*n;t.textContent=ot.formatTime(r);const o=this.config.markers?.points?.find(({time:e})=>e===Math.round(r));o&&t.insertAdjacentHTML("afterbegin",`${o.label}
`),t.style.left=`${n}%`,V.event(e)&&["mouseenter","mouseleave"].includes(e.type)&&s("mouseenter"===e.type)},timeUpdate(e){const t=!V.element(this.elements.display.duration)&&this.config.invertTime;ot.updateTimeDisplay.call(this,this.elements.display.currentTime,t?this.duration-this.currentTime:this.currentTime,t),e&&"timeupdate"===e.type&&this.media.seeking||ot.updateProgress.call(this,e)},durationUpdate(){if(!this.supported.ui||!this.config.invertTime&&this.currentTime)return;if(this.duration>=2**32)return ie(this.elements.display.currentTime,!0),void ie(this.elements.progress,!0);V.element(this.elements.inputs.seek)&&this.elements.inputs.seek.setAttribute("aria-valuemax",this.duration);const e=V.element(this.elements.display.duration);!e&&this.config.displayDuration&&this.paused&&ot.updateTimeDisplay.call(this,this.elements.display.currentTime,this.duration),e&&ot.updateTimeDisplay.call(this,this.elements.display.duration,this.duration),this.config.markers.enabled&&ot.setMarkers.call(this),ot.updateSeekTooltip.call(this)},toggleMenuButton(e,t){ie(this.elements.settings.buttons[e],!t)},updateSetting(e,t,i){const s=this.elements.settings.panels[e];let n=null,a=t;if("captions"===e)n=this.currentTrack;else{if(n=V.empty(i)?this[e]:i,V.empty(n)&&(n=this.config[e].default),!V.empty(this.options[e])&&!this.options[e].includes(n))return void this.debug.warn(`Unsupported value of '${n}' for ${e}`);if(!this.config[e].options.includes(n))return void this.debug.warn(`Disabled value of '${n}' for ${e}`)}if(V.element(a)||(a=s&&s.querySelector('[role="menu"]')),!V.element(a))return;const r=this.elements.settings.buttons[e].querySelector(`.${this.config.classNames.menu.value}`);r.innerHTML=ot.getLabel.call(this,e,n);const o=a&&a.querySelector(`[value="${n}"]`);V.element(o)&&(o.checked=!0)},getLabel(e,t){switch(e){case"speed":return 1===t?Ge.get("normal",this.config):`${t}×`;case"quality":if(V.number(t)){const e=Ge.get(`qualityLabel.${t}`,this.config);return e.length?e:`${t}p`}return Xe(t);case"captions":return ut.getLabel.call(this);default:return null}},setQualityMenu(e){if(!V.element(this.elements.settings.panels.quality))return;const t="quality",i=this.elements.settings.panels.quality.querySelector('[role="menu"]');V.array(e)&&(this.options.quality=Te(e).filter(e=>this.config.quality.options.includes(e)));const s=!V.empty(this.options.quality)&&this.options.quality.length>1;if(ot.toggleMenuButton.call(this,t,s),Z(i),ot.checkMenu.call(this),!s)return;const n=e=>{const t=Ge.get(`qualityBadge.${e}`,this.config);return t.length?ot.createBadge.call(this,t):null};this.options.quality.sort((e,t)=>{const i=this.config.quality.options;return i.indexOf(e)>i.indexOf(t)?1:-1}).forEach(e=>{ot.createMenuItem.call(this,{value:e,list:i,type:t,title:ot.getLabel.call(this,"quality",e),badge:n(e)})}),ot.updateSetting.call(this,t,i)},setCaptionsMenu(){if(!V.element(this.elements.settings.panels.captions))return;const e="captions",t=this.elements.settings.panels.captions.querySelector('[role="menu"]'),i=ut.getTracks.call(this),s=Boolean(i.length);if(ot.toggleMenuButton.call(this,e,s),Z(t),ot.checkMenu.call(this),!s)return;const n=i.map((e,i)=>({value:i,checked:this.captions.toggled&&this.currentTrack===i,title:ut.getLabel.call(this,e),badge:e.language&&ot.createBadge.call(this,e.language.toUpperCase()),list:t,type:"language"}));n.unshift({value:-1,checked:!this.captions.toggled,title:Ge.get("disabled",this.config),list:t,type:"language"}),n.forEach(ot.createMenuItem.bind(this)),ot.updateSetting.call(this,e,t)},setSpeedMenu(){if(!V.element(this.elements.settings.panels.speed))return;const e="speed",t=this.elements.settings.panels.speed.querySelector('[role="menu"]');this.options.speed=this.options.speed.filter(e=>e>=this.minimumSpeed&&e<=this.maximumSpeed);const i=!V.empty(this.options.speed)&&this.options.speed.length>1;ot.toggleMenuButton.call(this,e,i),Z(t),ot.checkMenu.call(this),i&&(this.options.speed.forEach(i=>{ot.createMenuItem.call(this,{value:i,list:t,type:e,title:ot.getLabel.call(this,"speed",i)})}),ot.updateSetting.call(this,e,t))},checkMenu(){const{buttons:e}=this.elements.settings,t=!V.empty(e)&&Object.values(e).some(e=>!e.hidden);ie(this.elements.settings.menu,!t)},focusFirstMenuItem(e,t=!1){if(this.elements.settings.popup.hidden)return;let i=e;V.element(i)||(i=Object.values(this.elements.settings.panels).find(e=>!e.hidden));const s=i.querySelector('[role^="menuitem"]');ce.call(this,s,t)},toggleMenu(e){const{popup:t}=this.elements.settings,i=this.elements.buttons.settings;if(!V.element(t)||!V.element(i))return;const{hidden:s}=t;let n=s;if(V.boolean(e))n=e;else if(V.keyboardEvent(e)&&"Escape"===e.key)n=!1;else if(V.event(e)){const s=V.function(e.composedPath)?e.composedPath()[0]:e.target,a=t.contains(s);if(a||!a&&e.target!==i&&n)return}i.setAttribute("aria-expanded",n),ie(t,!n),se(this.elements.container,this.config.classNames.menu.open,n),n&&V.keyboardEvent(e)?ot.focusFirstMenuItem.call(this,null,!0):n||s||ce.call(this,i,V.keyboardEvent(e))},getMenuSize(e){const t=e.cloneNode(!0);t.style.position="absolute",t.style.opacity=0,t.removeAttribute("hidden"),e.parentNode.appendChild(t);const i=t.scrollWidth,s=t.scrollHeight;return G(t),{width:i,height:s}},showMenuPanel(e="",t=!1){const i=this.elements.container.querySelector(`#plyr-settings-${this.id}-${e}`);if(!V.element(i))return;const s=i.parentNode,n=Array.from(s.children).find(e=>!e.hidden);if(ue.transitions&&!ue.reducedMotion){s.style.width=`${n.scrollWidth}px`,s.style.height=`${n.scrollHeight}px`;const e=ot.getMenuSize.call(this,i),t=e=>{e.target===s&&["width","height"].includes(e.propertyName)&&(s.style.width="",s.style.height="",fe.call(this,s,j,t))};ge.call(this,s,j,t),s.style.width=`${e.width}px`,s.style.height=`${e.height}px`}ie(n,!0),ie(i,!1),ot.focusFirstMenuItem.call(this,i,t)},setDownloadUrl(){const e=this.elements.buttons.download;V.element(e)&&e.setAttribute("href",this.download)},create(e){const{bindMenuItemShortcuts:t,createButton:i,createProgress:s,createRange:n,createTime:a,setQualityMenu:r,setSpeedMenu:o,showMenuPanel:l}=ot;this.elements.controls=null,V.array(this.config.controls)&&this.config.controls.includes("play-large")&&this.elements.container.appendChild(i.call(this,"play-large"));const c=Y("div",te(this.config.selectors.controls.wrapper));this.elements.controls=c;const h={class:"plyr__controls__item"};return Te(V.array(this.config.controls)?this.config.controls:[]).forEach(r=>{if("restart"===r&&c.appendChild(i.call(this,"restart",h)),"rewind"===r&&c.appendChild(i.call(this,"rewind",h)),"play"===r&&c.appendChild(i.call(this,"play",h)),"fast-forward"===r&&c.appendChild(i.call(this,"fast-forward",h)),"progress"===r){const t=Y("div",{class:`${h.class} plyr__progress__container`}),i=Y("div",te(this.config.selectors.progress));if(i.appendChild(n.call(this,"seek",{id:`plyr-seek-${e.id}`})),i.appendChild(s.call(this,"buffer")),this.config.tooltips.seek){const e=Y("span",{class:this.config.classNames.tooltip},"00:00");i.appendChild(e),this.elements.display.seekTooltip=e}this.elements.progress=i,t.appendChild(this.elements.progress),c.appendChild(t)}if("current-time"===r&&c.appendChild(a.call(this,"currentTime",h)),"duration"===r&&c.appendChild(a.call(this,"duration",h)),"mute"===r||"volume"===r){let{volume:t}=this.elements;if(V.element(t)&&c.contains(t)||(t=Y("div",z({},h,{class:`${h.class} plyr__volume`.trim()})),this.elements.volume=t,c.appendChild(t)),"mute"===r&&t.appendChild(i.call(this,"mute")),"volume"===r&&!He.isIos&&!He.isIPadOS){const i={max:1,step:.05,value:this.config.volume};t.appendChild(n.call(this,"volume",z(i,{id:`plyr-volume-${e.id}`})))}}if("captions"===r&&c.appendChild(i.call(this,"captions",h)),"settings"===r&&!V.empty(this.config.settings)){const s=Y("div",z({},h,{class:`${h.class} plyr__menu`.trim(),hidden:""}));s.appendChild(i.call(this,"settings",{"aria-haspopup":!0,"aria-controls":`plyr-settings-${e.id}`,"aria-expanded":!1}));const n=Y("div",{class:"plyr__menu__container",id:`plyr-settings-${e.id}`,hidden:""}),a=Y("div"),r=Y("div",{id:`plyr-settings-${e.id}-home`}),o=Y("div",{role:"menu"});r.appendChild(o),a.appendChild(r),this.elements.settings.panels.home=r,this.config.settings.forEach(i=>{const s=Y("button",z(te(this.config.selectors.buttons.settings),{type:"button",class:`${this.config.classNames.control} ${this.config.classNames.control}--forward`,role:"menuitem","aria-haspopup":!0,hidden:""}));t.call(this,s,i),ge.call(this,s,"click",()=>{l.call(this,i,!1)});const n=Y("span",null,Ge.get(i,this.config)),r=Y("span",{class:this.config.classNames.menu.value});r.innerHTML=e[i],n.appendChild(r),s.appendChild(n),o.appendChild(s);const c=Y("div",{id:`plyr-settings-${e.id}-${i}`,hidden:""}),h=Y("button",{type:"button",class:`${this.config.classNames.control} ${this.config.classNames.control}--back`});h.appendChild(Y("span",{"aria-hidden":!0},Ge.get(i,this.config))),h.appendChild(Y("span",{class:this.config.classNames.hidden},Ge.get("menuBack",this.config))),ge.call(this,c,"keydown",e=>{"ArrowLeft"===e.key&&(e.preventDefault(),e.stopPropagation(),l.call(this,"home",!0))},!1),ge.call(this,h,"click",()=>{l.call(this,"home",!1)}),c.appendChild(h),c.appendChild(Y("div",{role:"menu"})),a.appendChild(c),this.elements.settings.buttons[i]=s,this.elements.settings.panels[i]=c}),n.appendChild(a),s.appendChild(n),c.appendChild(s),this.elements.settings.popup=n,this.elements.settings.menu=s}if("pip"===r&&ue.pip&&c.appendChild(i.call(this,"pip",h)),"airplay"===r&&ue.airplay&&c.appendChild(i.call(this,"airplay",h)),"download"===r){const e=z({},h,{element:"a",href:this.download,target:"_blank"});this.isHTML5&&(e.download="");const{download:t}=this.config.urls;!V.url(t)&&this.isEmbed&&z(e,{icon:`logo-${this.provider}`,label:this.provider}),c.appendChild(i.call(this,"download",e))}"fullscreen"===r&&c.appendChild(i.call(this,"fullscreen",h))}),this.isHTML5&&r.call(this,Ne.getQualityOptions.call(this)),o.call(this),c},inject(){if(this.config.loadSprite){const e=ot.getIconUrl.call(this);e.cors&&it(e.url,"sprite-plyr")}this.id=Math.floor(1e4*Math.random());let e=null;this.elements.controls=null;const t={id:this.id,seektime:this.config.seekTime,title:this.config.title};let i=!0;V.function(this.config.controls)&&(this.config.controls=this.config.controls.call(this,t)),this.config.controls||(this.config.controls=[]),V.element(this.config.controls)||V.string(this.config.controls)?e=this.config.controls:(e=ot.create.call(this,{id:this.id,seektime:this.config.seekTime,speed:this.speed,quality:this.quality,captions:ut.getLabel.call(this)}),i=!1);const s=e=>{let i=e;return Object.entries(t).forEach(([e,t])=>{i=Ue(i,`{${e}}`,t)}),i};let n;i&&V.string(this.config.controls)&&(e=s(e)),V.string(this.config.selectors.controls.container)&&(n=document.querySelector(this.config.selectors.controls.container)),V.element(n)||(n=this.elements.container);const a=V.element(e)?"insertAdjacentElement":"insertAdjacentHTML";if(n[a]("afterbegin",e),V.element(this.elements.controls)||ot.findElements.call(this),!V.empty(this.elements.buttons)){const e=e=>{const t=this.config.classNames.controlPressed;e.setAttribute("aria-pressed","false"),Object.defineProperty(e,"pressed",{configurable:!0,enumerable:!0,get(){return ne(e,t)},set(i=!1){se(e,t,i),e.setAttribute("aria-pressed",i?"true":"false")}})};Object.values(this.elements.buttons).filter(Boolean).forEach(t=>{V.array(t)||V.nodeList(t)?Array.from(t).filter(Boolean).forEach(e):e(t)})}if(He.isEdge&&q(n),this.config.tooltips.controls){const{classNames:e,selectors:t}=this.config,i=`${t.controls.wrapper} ${t.labels} .${e.hidden}`,s=oe.call(this,i);Array.from(s).forEach(e=>{se(e,this.config.classNames.hidden,!1),se(e,this.config.classNames.tooltip,!0)})}},setMediaMetadata(){try{"mediaSession"in navigator&&(navigator.mediaSession.metadata=new window.MediaMetadata({title:this.config.mediaMetadata.title,artist:this.config.mediaMetadata.artist,album:this.config.mediaMetadata.album,artwork:this.config.mediaMetadata.artwork}))}catch{}},setMarkers(){if(!this.duration||this.elements.markers)return;const e=this.config.markers?.points?.filter(({time:e})=>e>0&&ese(s,n,e);e.forEach(e=>{const t=Y("span",{class:this.config.classNames.marker},""),n=e.time/this.duration*100+"%";s&&(t.addEventListener("mouseenter",()=>{e.label||(s.style.left=n,s.innerHTML=e.label,a(!0))}),t.addEventListener("mouseleave",()=>{a(!1)})),t.addEventListener("click",()=>{this.currentTime=e.time}),t.style.left=n,i.appendChild(t)}),t.appendChild(i),this.config.tooltips.seek||(s=Y("span",{class:this.config.classNames.tooltip},""),t.appendChild(s)),this.elements.markers={points:i,tip:s},this.elements.progress.appendChild(t)}};var lt=ot;function ct(e,t=!0){let i=e;if(t){const e=document.createElement("a");e.href=i,i=e.href}try{return new URL(i)}catch{return null}}function ht(e){const t=new URLSearchParams;return V.object(e)&&Object.entries(e).forEach(([e,i])=>{t.set(e,i)}),t}const dt={setup(){if(!this.supported.ui)return;if(!this.isVideo||this.isYouTube||this.isHTML5&&!ue.textTracks)return void(V.array(this.config.controls)&&this.config.controls.includes("settings")&&this.config.settings.includes("captions")&<.setCaptionsMenu.call(this));if(V.element(this.elements.captions)||(this.elements.captions=Y("div",te(this.config.selectors.captions)),this.elements.captions.setAttribute("dir","auto"),Q(this.elements.captions,this.elements.wrapper)),He.isIE&&window.URL){const e=this.media.querySelectorAll("track");Array.from(e).forEach(e=>{const t=e.getAttribute("src"),i=ct(t);null!==i&&i.hostname!==window.location.href.hostname&&["http:","https:"].includes(i.protocol)&&tt(t,"blob").then(t=>{e.setAttribute("src",window.URL.createObjectURL(t))}).catch(()=>{G(e)})})}const e=navigator.languages||[navigator.language||navigator.userLanguage||"en"],t=Te(e.map(e=>e.split("-")[0]));let i=(this.storage.get("language")||this.captions.language||this.config.captions.language||"auto").toLowerCase();"auto"===i&&([i]=t);let s=this.storage.get("captions")||this.captions.active;if(V.boolean(s)||({active:s}=this.config.captions),Object.assign(this.captions,{toggled:!1,active:s,language:i,languages:t}),this.isHTML5){const e=this.config.captions.update?"addtrack removetrack":"removetrack";ge.call(this,this.media.textTracks,e,dt.update.bind(this))}setTimeout(dt.update.bind(this),0)},update(){const e=dt.getTracks.call(this,!0),{active:t,language:i,meta:s,currentTrackNode:n}=this.captions,a=Boolean(e.find(e=>e.language===i));this.isHTML5&&this.isVideo&&e.filter(e=>!s.get(e)).forEach(e=>{this.debug.log("Track added",e),s.set(e,{default:"showing"===e.mode}),"showing"===e.mode&&(e.mode="hidden"),ge.call(this,e,"cuechange",()=>dt.updateCues.call(this))}),(a&&this.language!==i||!e.includes(n))&&(dt.setLanguage.call(this,i),dt.toggle.call(this,t&&a)),this.elements&&se(this.elements.container,this.config.classNames.captions.enabled,!V.empty(e)),V.array(this.config.controls)&&this.config.controls.includes("settings")&&this.config.settings.includes("captions")&<.setCaptionsMenu.call(this)},toggle(e,t=!0){if(!this.supported.ui)return;const{toggled:i}=this.captions,s=this.config.classNames.captions.active,n=V.nullOrUndefined(e)?!i:e;if(n!==i){if(t||(this.captions.active=n,this.storage.set({captions:n})),!this.language&&n&&!t){const e=dt.getTracks.call(this),t=dt.findTrack.call(this,[this.captions.language,...this.captions.languages],!0);return this.captions.language=t.language,void dt.set.call(this,e.indexOf(t))}this.elements.buttons.captions&&(this.elements.buttons.captions.pressed=n),se(this.elements.container,s,n),this.captions.toggled=n,lt.updateSetting.call(this,"captions"),be.call(this,this.media,n?"captionsenabled":"captionsdisabled")}setTimeout(()=>{n&&this.captions.toggled&&(this.captions.currentTrackNode.mode="hidden")})},set(e,t=!0){const i=dt.getTracks.call(this);if(-1!==e)if(V.number(e))if(e in i){if(this.captions.currentTrack!==e){this.captions.currentTrack=e;const s=i[e],{language:n}=s||{};this.captions.currentTrackNode=s,lt.updateSetting.call(this,"captions"),t||(this.captions.language=n,this.storage.set({language:n})),this.isVimeo&&this.embed.enableTextTrack(n),be.call(this,this.media,"languagechange")}dt.toggle.call(this,!0,t),this.isHTML5&&this.isVideo&&dt.updateCues.call(this)}else this.debug.warn("Track not found",e);else this.debug.warn("Invalid caption argument",e);else dt.toggle.call(this,!1,t)},setLanguage(e,t=!0){if(!V.string(e))return void this.debug.warn("Invalid language argument",e);const i=e.toLowerCase();this.captions.language=i;const s=dt.getTracks.call(this),n=dt.findTrack.call(this,[i]);dt.set.call(this,s.indexOf(n),t)},getTracks(e=!1){const t=Array.from((this.media||{}).textTracks||[]);return t.filter(t=>!this.isHTML5||e||this.captions.meta.has(t)).filter(e=>["captions","subtitles"].includes(e.kind))},findTrack(e,t=!1){const i=dt.getTracks.call(this),s=e=>Number((this.captions.meta.get(e)||{}).default),n=Array.from(i).sort((e,t)=>s(t)-s(e));let a;return e.every(e=>(a=n.find(t=>t.language===e),!a)),a||(t?n[0]:void 0)},getCurrentTrack(){return dt.getTracks.call(this)[this.currentTrack]},getLabel(e){let t=e;return!V.track(t)&&ue.textTracks&&this.captions.toggled&&(t=dt.getCurrentTrack.call(this)),V.track(t)?V.empty(t.label)?V.empty(t.language)?Ge.get("enabled",this.config):e.language.toUpperCase():t.label:Ge.get("disabled",this.config)},updateCues(e){if(!this.supported.ui)return;if(!V.element(this.elements.captions))return void this.debug.warn("No captions element to render to");if(!V.nullOrUndefined(e)&&!Array.isArray(e))return void this.debug.warn("updateCues: Invalid input",e);let t=e;if(!t){const e=dt.getCurrentTrack.call(this);t=Array.from((e||{}).activeCues||[]).map(e=>e.getCueAsHTML()).map(Ye)}const i=t.map(e=>e.trim()).join("\n"),s=i!==this.elements.captions.innerHTML;if(s){Z(this.elements.captions);const e=Y("span",te(this.config.selectors.caption));e.innerHTML=i,this.elements.captions.appendChild(e),be.call(this,this.media,"cuechange")}}};var ut=dt;const pt={enabled:!0,title:"",debug:!1,autoplay:!1,autopause:!0,playsinline:!0,seekTime:10,volume:1,muted:!1,duration:null,displayDuration:!0,invertTime:!0,toggleInvert:!0,ratio:null,clickToPlay:!0,hideControls:!0,resetOnEnd:!1,disableContextMenu:!0,loadSprite:!0,iconPrefix:"plyr",iconUrl:"https://cdn.plyr.io/3.8.3/plyr.svg",blankVideo:"https://cdn.plyr.io/static/blank.mp4",quality:{default:576,options:[4320,2880,2160,1440,1080,720,576,480,360,240],forced:!1,onChange:null},loop:{active:!1},speed:{selected:1,options:[.5,.75,1,1.25,1.5,1.75,2,4]},keyboard:{focused:!0,global:!1},tooltips:{controls:!1,seek:!0},captions:{active:!1,language:"auto",update:!1},fullscreen:{enabled:!0,fallback:!0,iosNative:!1},storage:{enabled:!0,key:"plyr"},controls:["play-large","play","progress","current-time","mute","volume","captions","settings","pip","airplay","fullscreen"],settings:["captions","quality","speed"],i18n:{restart:"Restart",rewind:"Rewind {seektime}s",play:"Play",pause:"Pause",fastForward:"Forward {seektime}s",seek:"Seek",seekLabel:"{currentTime} of {duration}",played:"Played",buffered:"Buffered",currentTime:"Current time",duration:"Duration",volume:"Volume",mute:"Mute",unmute:"Unmute",enableCaptions:"Enable captions",disableCaptions:"Disable captions",download:"Download",enterFullscreen:"Enter fullscreen",exitFullscreen:"Exit fullscreen",frameTitle:"Player for {title}",captions:"Captions",settings:"Settings",pip:"PIP",menuBack:"Go back to previous menu",speed:"Speed",normal:"Normal",quality:"Quality",loop:"Loop",start:"Start",end:"End",all:"All",reset:"Reset",disabled:"Disabled",enabled:"Enabled",advertisement:"Ad",qualityBadge:{2160:"4K",1440:"HD",1080:"HD",720:"HD",576:"SD",480:"SD"}},urls:{download:null,vimeo:{sdk:"https://player.vimeo.com/api/player.js",iframe:"https://player.vimeo.com/video/{0}?{1}",api:"https://vimeo.com/api/oembed.json?url={0}"},youtube:{sdk:"https://www.youtube.com/iframe_api",api:"https://noembed.com/embed?url=https://www.youtube.com/watch?v={0}"},googleIMA:{sdk:"https://imasdk.googleapis.com/js/sdkloader/ima3.js"}},listeners:{seek:null,play:null,pause:null,restart:null,rewind:null,fastForward:null,mute:null,volume:null,captions:null,download:null,fullscreen:null,pip:null,airplay:null,speed:null,quality:null,loop:null,language:null},events:["ended","progress","stalled","playing","waiting","canplay","canplaythrough","loadstart","loadeddata","loadedmetadata","timeupdate","volumechange","play","pause","error","seeking","seeked","emptied","ratechange","cuechange","download","enterfullscreen","exitfullscreen","captionsenabled","captionsdisabled","languagechange","controlshidden","controlsshown","ready","statechange","qualitychange","adsloaded","adscontentpause","adscontentresume","adstarted","adsmidpoint","adscomplete","adsallcomplete","adsimpression","adsclick"],selectors:{editable:"input, textarea, select, [contenteditable]",container:".plyr",controls:{container:null,wrapper:".plyr__controls"},labels:"[data-plyr]",buttons:{play:'[data-plyr="play"]',pause:'[data-plyr="pause"]',restart:'[data-plyr="restart"]',rewind:'[data-plyr="rewind"]',fastForward:'[data-plyr="fast-forward"]',mute:'[data-plyr="mute"]',captions:'[data-plyr="captions"]',download:'[data-plyr="download"]',fullscreen:'[data-plyr="fullscreen"]',pip:'[data-plyr="pip"]',airplay:'[data-plyr="airplay"]',settings:'[data-plyr="settings"]',loop:'[data-plyr="loop"]'},inputs:{seek:'[data-plyr="seek"]',volume:'[data-plyr="volume"]',speed:'[data-plyr="speed"]',language:'[data-plyr="language"]',quality:'[data-plyr="quality"]'},display:{currentTime:".plyr__time--current",duration:".plyr__time--duration",buffer:".plyr__progress__buffer",loop:".plyr__progress__loop",volume:".plyr__volume--display"},progress:".plyr__progress",captions:".plyr__captions",caption:".plyr__caption"},classNames:{type:"plyr--{0}",provider:"plyr--{0}",video:"plyr__video-wrapper",embed:"plyr__video-embed",videoFixedRatio:"plyr__video-wrapper--fixed-ratio",embedContainer:"plyr__video-embed__container",poster:"plyr__poster",posterEnabled:"plyr__poster-enabled",ads:"plyr__ads",control:"plyr__control",controlPressed:"plyr__control--pressed",playing:"plyr--playing",paused:"plyr--paused",stopped:"plyr--stopped",loading:"plyr--loading",hover:"plyr--hover",tooltip:"plyr__tooltip",cues:"plyr__cues",marker:"plyr__progress__marker",hidden:"plyr__sr-only",hideControls:"plyr--hide-controls",isTouch:"plyr--is-touch",uiSupported:"plyr--full-ui",noTransition:"plyr--no-transition",display:{time:"plyr__time"},menu:{value:"plyr__menu__value",badge:"plyr__badge",open:"plyr--menu-open"},captions:{enabled:"plyr--captions-enabled",active:"plyr--captions-active"},fullscreen:{enabled:"plyr--fullscreen-enabled",fallback:"plyr--fullscreen-fallback"},pip:{supported:"plyr--pip-supported",active:"plyr--pip-active"},airplay:{supported:"plyr--airplay-supported",active:"plyr--airplay-active"},previewThumbnails:{thumbContainer:"plyr__preview-thumb",thumbContainerShown:"plyr__preview-thumb--is-shown",imageContainer:"plyr__preview-thumb__image-container",timeContainer:"plyr__preview-thumb__time-container",scrubbingContainer:"plyr__preview-scrubbing",scrubbingContainerShown:"plyr__preview-scrubbing--is-shown"}},attributes:{embed:{provider:"data-plyr-provider",id:"data-plyr-embed-id",hash:"data-plyr-embed-hash"}},ads:{enabled:!1,publisherId:"",tagUrl:""},previewThumbnails:{enabled:!1,src:"",withCredentials:!1},vimeo:{byline:!1,portrait:!1,title:!1,speed:!0,transparent:!1,customControls:!0,referrerPolicy:null,premium:!1},youtube:{rel:0,showinfo:0,iv_load_policy:3,modestbranding:1,customControls:!0,noCookie:!1},mediaMetadata:{title:"",artist:"",album:"",artwork:[]},markers:{enabled:!1,points:[]}};var mt=pt;const gt={active:"picture-in-picture",inactive:"inline"};const ft={html5:"html5",youtube:"youtube",vimeo:"vimeo"},yt={audio:"audio",video:"video"};function bt(e){return/^(?:https?:\/\/)?(?:www\.)?(?:youtube\.com|youtube-nocookie\.com|youtu\.?be)\/.+$/.test(e)?ft.youtube:/^https?:\/\/player.vimeo.com\/video\/\d{0,9}(?=\b|\/)/.test(e)?ft.vimeo:null}function vt(){}class wt{constructor(e=!1){this.enabled=window.console&&e,this.enabled&&this.log("Debugging enabled")}get log(){return this.enabled?Function.prototype.bind.call(console.log,console):vt}get warn(){return this.enabled?Function.prototype.bind.call(console.warn,console):vt}get error(){return this.enabled?Function.prototype.bind.call(console.error,console):vt}}class kt{constructor(e){(0,v.A)(this,"onChange",()=>{if(!this.supported)return;const e=this.player.elements.buttons.fullscreen;V.element(e)&&(e.pressed=this.active);const t=this.target===this.player.media?this.target:this.player.elements.container;be.call(this.player,t,this.active?"enterfullscreen":"exitfullscreen",!0)}),(0,v.A)(this,"toggleFallback",(e=!1)=>{if(e?this.scrollPosition={x:window.scrollX??0,y:window.scrollY??0}:window.scrollTo(this.scrollPosition.x,this.scrollPosition.y),document.body.style.overflow=e?"hidden":"",se(this.target,this.player.config.classNames.fullscreen.fallback,e),He.isIos){let t=document.head.querySelector('meta[name="viewport"]');const i="viewport-fit=cover";t||(t=document.createElement("meta"),t.setAttribute("name","viewport"));const s=V.string(t.content)&&t.content.includes(i);e?(this.cleanupViewport=!s,s||(t.content+=`,${i}`)):this.cleanupViewport&&(t.content=t.content.split(",").filter(e=>e.trim()!==i).join(","))}this.onChange()}),(0,v.A)(this,"trapFocus",e=>{if(He.isIos||He.isIPadOS||!this.active||"Tab"!==e.key)return;const t=document.activeElement,i=oe.call(this.player,"a[href], button:not(:disabled), input:not(:disabled), [tabindex]"),[s]=i,n=i[i.length-1];t!==n||e.shiftKey?t===s&&e.shiftKey&&(n.focus(),e.preventDefault()):(s.focus(),e.preventDefault())}),(0,v.A)(this,"update",()=>{if(this.supported){let e;e=this.forceFallback?"Fallback (forced)":kt.nativeSupported?"Native":"Fallback",this.player.debug.log(`${e} fullscreen enabled`)}else this.player.debug.log("Fullscreen not supported and fallback disabled");se(this.player.elements.container,this.player.config.classNames.fullscreen.enabled,this.supported)}),(0,v.A)(this,"enter",()=>{this.supported&&(He.isIos&&this.player.config.fullscreen.iosNative?this.player.isVimeo?this.player.embed.requestFullscreen():this.target.webkitEnterFullscreen():!kt.nativeSupported||this.forceFallback?this.toggleFallback(!0):this.prefix?V.empty(this.prefix)||this.target[`${this.prefix}Request${this.property}`]():this.target.requestFullscreen({navigationUI:"hide"}))}),(0,v.A)(this,"exit",()=>{if(this.supported)if(He.isIos&&this.player.config.fullscreen.iosNative)this.player.isVimeo?this.player.embed.exitFullscreen():this.target.webkitEnterFullscreen(),ke(this.player.play());else if(!kt.nativeSupported||this.forceFallback)this.toggleFallback(!1);else if(this.prefix){if(!V.empty(this.prefix)){const e="moz"===this.prefix?"Cancel":"Exit";document[`${this.prefix}${e}${this.property}`]()}}else(document.cancelFullScreen||document.exitFullscreen).call(document)}),(0,v.A)(this,"toggle",()=>{this.active?this.exit():this.enter()}),this.player=e,this.prefix=kt.prefix,this.property=kt.property,this.scrollPosition={x:0,y:0},this.forceFallback="force"===e.config.fullscreen.fallback,this.player.elements.fullscreen=e.config.fullscreen.container&&re(this.player.elements.container,e.config.fullscreen.container),ge.call(this.player,document,"ms"===this.prefix?"MSFullscreenChange":`${this.prefix}fullscreenchange`,()=>{this.onChange()}),ge.call(this.player,this.player.elements.container,"dblclick",e=>{V.element(this.player.elements.controls)&&this.player.elements.controls.contains(e.target)||this.player.listeners.proxy(e,this.toggle,"fullscreen")}),ge.call(this,this.player.elements.container,"keydown",e=>this.trapFocus(e)),this.update()}static get nativeSupported(){return!!(document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled)}get useNative(){return kt.nativeSupported&&!this.forceFallback}static get prefix(){if(V.function(document.exitFullscreen))return"";let e="";const t=["webkit","moz","ms"];return t.some(t=>!(!V.function(document[`${t}ExitFullscreen`])&&!V.function(document[`${t}CancelFullScreen`]))&&(e=t,!0)),e}static get property(){return"moz"===this.prefix?"FullScreen":"Fullscreen"}get supported(){return[this.player.config.fullscreen.enabled,this.player.isVideo,kt.nativeSupported||this.player.config.fullscreen.fallback,!this.player.isYouTube||kt.nativeSupported||!He.isIos||this.player.config.playsinline&&!this.player.config.fullscreen.iosNative].every(Boolean)}get active(){if(!this.supported)return!1;if(!kt.nativeSupported||this.forceFallback)return ne(this.target,this.player.config.classNames.fullscreen.fallback);const e=this.prefix?this.target.getRootNode()[`${this.prefix}${this.property}Element`]:this.target.getRootNode().fullscreenElement;return e&&e.shadowRoot?e===this.target.getRootNode().host:e===this.target}get target(){return He.isIos&&this.player.config.fullscreen.iosNative?this.player.media:this.player.elements.fullscreen??this.player.elements.container}}var Tt=kt;function Ct(e,t=1){return new Promise((i,s)=>{const n=new Image,a=()=>{delete n.onload,delete n.onerror,(n.naturalWidth>=t?i:s)(n)};Object.assign(n,{onload:a,onerror:a,src:e})})}const At={addStyleHook(){se(this.elements.container,this.config.selectors.container.replace(".",""),!0),se(this.elements.container,this.config.classNames.uiSupported,this.supported.ui)},toggleNativeControls(e=!1){e&&this.isHTML5?this.media.setAttribute("controls",""):this.media.removeAttribute("controls")},build(){if(this.listeners.media(),!this.supported.ui)return this.debug.warn(`Basic support only for ${this.provider} ${this.type}`),void At.toggleNativeControls.call(this,!0);V.element(this.elements.controls)||(lt.inject.call(this),this.listeners.controls()),At.toggleNativeControls.call(this),this.isHTML5&&ut.setup.call(this),this.volume=null,this.muted=null,this.loop=null,this.quality=null,this.speed=null,lt.updateVolume.call(this),lt.timeUpdate.call(this),lt.durationUpdate.call(this),At.checkPlaying.call(this),se(this.elements.container,this.config.classNames.pip.supported,ue.pip&&this.isHTML5&&this.isVideo),se(this.elements.container,this.config.classNames.airplay.supported,ue.airplay&&this.isHTML5),se(this.elements.container,this.config.classNames.isTouch,this.touch),this.ready=!0,setTimeout(()=>{be.call(this,this.media,"ready")},0),At.setTitle.call(this),this.poster&&At.setPoster.call(this,this.poster,!1).catch(()=>{}),this.config.duration&<.durationUpdate.call(this),this.config.mediaMetadata&<.setMediaMetadata.call(this)},setTitle(){let e=Ge.get("play",this.config);if(V.string(this.config.title)&&!V.empty(this.config.title)&&(e+=`, ${this.config.title}`),Array.from(this.elements.buttons.play||[]).forEach(t=>{t.setAttribute("aria-label",e)}),this.isEmbed){const e=le.call(this,"iframe");if(!V.element(e))return;const t=V.empty(this.config.title)?"video":this.config.title,i=Ge.get("frameTitle",this.config);e.setAttribute("title",i.replace("{title}",t))}},togglePoster(e){se(this.elements.container,this.config.classNames.posterEnabled,e)},setPoster(e,t=!0){return t&&this.poster?Promise.reject(new Error("Poster already set")):(this.media.setAttribute("data-poster",e),this.elements.poster.removeAttribute("hidden"),we.call(this).then(()=>Ct(e)).catch(t=>{throw e===this.poster&&At.togglePoster.call(this,!1),t}).then(()=>{if(e!==this.poster)throw new Error("setPoster cancelled by later call to setPoster")}).then(()=>(Object.assign(this.elements.poster.style,{backgroundImage:`url('${e}')`,backgroundSize:""}),At.togglePoster.call(this,!0),e)))},checkPlaying(e){se(this.elements.container,this.config.classNames.playing,this.playing),se(this.elements.container,this.config.classNames.paused,this.paused),se(this.elements.container,this.config.classNames.stopped,this.stopped),Array.from(this.elements.buttons.play||[]).forEach(e=>{Object.assign(e,{pressed:this.playing}),e.setAttribute("aria-label",Ge.get(this.playing?"pause":"play",this.config))}),V.event(e)&&"timeupdate"===e.type||At.toggleControls.call(this)},checkLoading(e){this.loading=["stalled","waiting"].includes(e.type),clearTimeout(this.timers.loading),this.timers.loading=setTimeout(()=>{se(this.elements.container,this.config.classNames.loading,this.loading),At.toggleControls.call(this)},this.loading?250:0)},toggleControls(e){const{controls:t}=this.elements;if(t&&this.config.hideControls){const i=this.touch&&this.lastSeekTime+2e3>Date.now();this.toggleControls(Boolean(e||this.loading||this.paused||t.pressed||t.hover||i))}},migrateStyles(){Object.values({...this.media.style}).filter(e=>!V.empty(e)&&V.string(e)&&e.startsWith("--plyr")).forEach(e=>{this.elements.container.style.setProperty(e,this.media.style.getPropertyValue(e)),this.media.style.removeProperty(e)}),V.empty(this.media.style)&&this.media.removeAttribute("style")}};var St=At;class xt{constructor(e){(0,v.A)(this,"firstTouch",()=>{const{player:e}=this,{elements:t}=e;e.touch=!0,se(t.container,e.config.classNames.isTouch,!0)}),(0,v.A)(this,"global",(e=!0)=>{const{player:t}=this;t.config.keyboard.global&&me.call(t,window,"keydown keyup",this.handleKey,e,!1),me.call(t,document.body,"click",this.toggleMenu,e),ye.call(t,document.body,"touchstart",this.firstTouch)}),(0,v.A)(this,"container",()=>{const{player:e}=this,{config:t,elements:i,timers:s}=e;!t.keyboard.global&&t.keyboard.focused&&ge.call(e,i.container,"keydown keyup",this.handleKey,!1),ge.call(e,i.container,"mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen",t=>{const{controls:n}=i;n&&"enterfullscreen"===t.type&&(n.pressed=!1,n.hover=!1);const a=["touchstart","touchmove","mousemove"].includes(t.type);let r=0;a&&(St.toggleControls.call(e,!0),r=e.touch?3e3:2e3),clearTimeout(s.controls),s.controls=setTimeout(()=>St.toggleControls.call(e,!1),r)});const n=()=>{if(!e.isVimeo||e.config.vimeo.premium)return;const t=i.wrapper,{active:s}=e.fullscreen,[n,a]=Ee.call(e),r=Ae(`aspect-ratio: ${n} / ${a}`);if(!s)return void(r?(t.style.width=null,t.style.height=null):(t.style.maxWidth=null,t.style.margin=null));const[o,l]=Ie(),c=o/l>n/a;r?(t.style.width=c?"auto":"100%",t.style.height=c?"100%":"auto"):(t.style.maxWidth=c?l/a*n+"px":null,t.style.margin=c?"0 auto":null)},a=()=>{clearTimeout(s.resized),s.resized=setTimeout(n,50)};ge.call(e,i.container,"enterfullscreen exitfullscreen",t=>{const{target:s}=e.fullscreen;if(s!==i.container)return;if(!e.isEmbed&&V.empty(e.config.ratio))return;n();const r="enterfullscreen"===t.type?ge:fe;r.call(e,window,"resize",a)})}),(0,v.A)(this,"media",()=>{const{player:e}=this,{elements:t}=e;if(ge.call(e,e.media,"timeupdate seeking seeked",t=>lt.timeUpdate.call(e,t)),ge.call(e,e.media,"durationchange loadeddata loadedmetadata",t=>lt.durationUpdate.call(e,t)),ge.call(e,e.media,"ended",()=>{e.isHTML5&&e.isVideo&&e.config.resetOnEnd&&(e.restart(),e.pause())}),ge.call(e,e.media,"progress playing seeking seeked",t=>lt.updateProgress.call(e,t)),ge.call(e,e.media,"volumechange",t=>lt.updateVolume.call(e,t)),ge.call(e,e.media,"playing play pause ended emptied timeupdate",t=>St.checkPlaying.call(e,t)),ge.call(e,e.media,"waiting canplay seeked playing",t=>St.checkLoading.call(e,t)),e.supported.ui&&e.config.clickToPlay&&!e.isAudio){const i=le.call(e,`.${e.config.classNames.video}`);if(!V.element(i))return;ge.call(e,t.container,"click",s=>{const n=[t.container,i];(n.includes(s.target)||i.contains(s.target))&&(e.touch&&e.config.hideControls||(e.ended?(this.proxy(s,e.restart,"restart"),this.proxy(s,()=>{ke(e.play())},"play")):this.proxy(s,()=>{ke(e.togglePlay())},"play")))})}e.supported.ui&&e.config.disableContextMenu&&ge.call(e,t.wrapper,"contextmenu",e=>{e.preventDefault()},!1),ge.call(e,e.media,"volumechange",()=>{e.storage.set({volume:e.volume,muted:e.muted})}),ge.call(e,e.media,"ratechange",()=>{lt.updateSetting.call(e,"speed"),e.storage.set({speed:e.speed})}),ge.call(e,e.media,"qualitychange",t=>{lt.updateSetting.call(e,"quality",null,t.detail.quality)}),ge.call(e,e.media,"ready qualitychange",()=>{lt.setDownloadUrl.call(e)});const i=e.config.events.concat(["keyup","keydown"]).join(" ");ge.call(e,e.media,i,i=>{let{detail:s={}}=i;"error"===i.type&&(s=e.media.error),be.call(e,t.container,i.type,!0,s)})}),(0,v.A)(this,"proxy",(e,t,i)=>{const{player:s}=this,n=s.config.listeners[i],a=V.function(n);let r=!0;a&&(r=n.call(s,e)),!1!==r&&V.function(t)&&t.call(s,e)}),(0,v.A)(this,"bind",(e,t,i,s,n=!0)=>{const{player:a}=this,r=a.config.listeners[s],o=V.function(r);ge.call(a,e,t,e=>this.proxy(e,i,s),n&&!o)}),(0,v.A)(this,"controls",()=>{const{player:e}=this,{elements:t}=e,i=He.isIE?"change":"input";if(t.buttons.play&&Array.from(t.buttons.play).forEach(t=>{this.bind(t,"click",()=>{ke(e.togglePlay())},"play")}),this.bind(t.buttons.restart,"click",e.restart,"restart"),this.bind(t.buttons.rewind,"click",()=>{e.lastSeekTime=Date.now(),e.rewind()},"rewind"),this.bind(t.buttons.fastForward,"click",()=>{e.lastSeekTime=Date.now(),e.forward()},"fastForward"),this.bind(t.buttons.mute,"click",()=>{e.muted=!e.muted},"mute"),this.bind(t.buttons.captions,"click",()=>e.toggleCaptions()),this.bind(t.buttons.download,"click",()=>{be.call(e,e.media,"download")},"download"),this.bind(t.buttons.fullscreen,"click",()=>{e.fullscreen.toggle()},"fullscreen"),this.bind(t.buttons.pip,"click",()=>{e.pip="toggle"},"pip"),this.bind(t.buttons.airplay,"click",e.airplay,"airplay"),this.bind(t.buttons.settings,"click",t=>{t.stopPropagation(),t.preventDefault(),lt.toggleMenu.call(e,t)},null,!1),this.bind(t.buttons.settings,"keyup",t=>{[" ","Enter"].includes(t.key)&&("Enter"!==t.key?(t.preventDefault(),t.stopPropagation(),lt.toggleMenu.call(e,t)):lt.focusFirstMenuItem.call(e,null,!0))},null,!1),this.bind(t.settings.menu,"keydown",t=>{"Escape"===t.key&<.toggleMenu.call(e,t)}),this.bind(t.inputs.seek,"mousedown mousemove",e=>{const i=t.progress.getBoundingClientRect(),s=e.pageX-e.clientX,n=100/i.width*(e.pageX-i.left-s);e.currentTarget.setAttribute("seek-value",n)}),this.bind(t.inputs.seek,"mousedown mouseup keydown keyup touchstart touchend",t=>{const i=t.currentTarget,s="play-on-seeked";if(V.keyboardEvent(t)&&!["ArrowLeft","ArrowRight"].includes(t.key))return;e.lastSeekTime=Date.now();const n=i.hasAttribute(s),a=["mouseup","touchend","keyup"].includes(t.type);n&&a?(i.removeAttribute(s),ke(e.play())):!a&&e.playing&&(i.setAttribute(s,""),e.pause())}),He.isIos){const t=oe.call(e,'input[type="range"]');Array.from(t).forEach(e=>this.bind(e,i,e=>q(e.target)))}this.bind(t.inputs.seek,i,t=>{const i=t.currentTarget;let s=i.getAttribute("seek-value");V.empty(s)&&(s=i.value),i.removeAttribute("seek-value"),e.currentTime=s/i.max*e.duration},"seek"),this.bind(t.progress,"mouseenter mouseleave mousemove",t=>lt.updateSeekTooltip.call(e,t)),this.bind(t.progress,"mousemove touchmove",t=>{const{previewThumbnails:i}=e;i&&i.loaded&&i.startMove(t)}),this.bind(t.progress,"mouseleave touchend click",()=>{const{previewThumbnails:t}=e;t&&t.loaded&&t.endMove(!1,!0)}),this.bind(t.progress,"mousedown touchstart",t=>{const{previewThumbnails:i}=e;i&&i.loaded&&i.startScrubbing(t)}),this.bind(t.progress,"mouseup touchend",t=>{const{previewThumbnails:i}=e;i&&i.loaded&&i.endScrubbing(t)}),He.isWebKit&&Array.from(oe.call(e,'input[type="range"]')).forEach(t=>{this.bind(t,"input",t=>lt.updateRangeFill.call(e,t.target))}),e.config.toggleInvert&&!V.element(t.display.duration)&&this.bind(t.display.currentTime,"click",()=>{0!==e.currentTime&&(e.config.invertTime=!e.config.invertTime,lt.timeUpdate.call(e))}),this.bind(t.inputs.volume,i,t=>{e.volume=t.target.value},"volume"),this.bind(t.controls,"mouseenter mouseleave",i=>{t.controls.hover=!e.touch&&"mouseenter"===i.type}),t.fullscreen&&Array.from(t.fullscreen.children).filter(e=>!e.contains(t.container)).forEach(i=>{this.bind(i,"mouseenter mouseleave",i=>{t.controls&&(t.controls.hover=!e.touch&&"mouseenter"===i.type)})}),this.bind(t.controls,"mousedown mouseup touchstart touchend touchcancel",e=>{t.controls.pressed=["mousedown","touchstart"].includes(e.type)}),this.bind(t.controls,"focusin",()=>{const{config:i,timers:s}=e;se(t.controls,i.classNames.noTransition,!0),St.toggleControls.call(e,!0),setTimeout(()=>{se(t.controls,i.classNames.noTransition,!1)},0);const n=this.touch?3e3:4e3;clearTimeout(s.controls),s.controls=setTimeout(()=>St.toggleControls.call(e,!1),n)}),this.bind(t.inputs.volume,"wheel",t=>{const i=t.webkitDirectionInvertedFromDevice,[s,n]=[t.deltaX,-t.deltaY].map(e=>i?-e:e),a=Math.sign(Math.abs(s)>Math.abs(n)?s:n);e.increaseVolume(a/50);const{volume:r}=e.media;(1===a&&r<1||-1===a&&r>0)&&t.preventDefault()},"volume",!1)}),this.player=e,this.lastKey=null,this.focusTimer=null,this.lastKeyDown=null,this.handleKey=this.handleKey.bind(this),this.toggleMenu=this.toggleMenu.bind(this),this.firstTouch=this.firstTouch.bind(this)}handleKey(e){const{player:t}=this,{elements:i}=t,{key:s,type:n,altKey:a,ctrlKey:r,metaKey:o,shiftKey:l}=e,c="keydown"===n,h=c&&s===this.lastKey;if(a||r||o||l)return;if(!s)return;const d=e=>{t.currentTime=t.duration/10*e};if(c){const n=document.activeElement;if(V.element(n)){const{editable:s}=t.config.selectors,{seek:a}=i.inputs;if(n!==a&&ae(n,s))return;if(" "===e.key&&ae(n,'button, [role^="menuitem"]'))return}const a=[" ","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","0","1","2","3","4","5","6","7","8","9","c","f","k","l","m"];switch(a.includes(s)&&(e.preventDefault(),e.stopPropagation()),s){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":h||d(Number.parseInt(s,10));break;case" ":case"k":h||ke(t.togglePlay());break;case"ArrowUp":t.increaseVolume(.1);break;case"ArrowDown":t.decreaseVolume(.1);break;case"m":h||(t.muted=!t.muted);break;case"ArrowRight":t.forward();break;case"ArrowLeft":t.rewind();break;case"f":t.fullscreen.toggle();break;case"c":h||t.toggleCaptions();break;case"l":t.loop=!t.loop;break;default:break}"Escape"===s&&!t.fullscreen.usingNative&&t.fullscreen.active&&t.fullscreen.toggle(),this.lastKey=s}else this.lastKey=null}toggleMenu(e){lt.toggleMenu.call(this.player,e)}}var Mt=xt,Et=i(51583);function Lt(e){return new Promise((t,i)=>{Et(e,{success:t,error:i})})}function Pt(e){if(V.empty(e))return null;if(V.number(Number(e)))return e;const t=/^.*(vimeo.com\/|video\/)(\d+).*/,i=e.match(t);return i?i[2]:e}function It(e){const t=/^.*(vimeo.com\/|video\/)(\d+)(\?.*h=|\/)+([\d,a-f]+)/,i=e.match(t);return i&&5===i.length?i[4]:null}function $t(e){e&&!this.embed.hasPlayed&&(this.embed.hasPlayed=!0),this.media.paused===e&&(this.media.paused=!e,be.call(this,this.media,e?"play":"pause"))}const Nt={setup(){const e=this;se(e.elements.wrapper,e.config.classNames.embed,!0),e.options.speed=e.config.speed.options,Le.call(e),V.object(window.Vimeo)?Nt.ready.call(e):Lt(e.config.urls.vimeo.sdk).then(()=>{Nt.ready.call(e)}).catch(t=>{e.debug.warn("Vimeo SDK (player.js) failed to load",t)})},ready(){const e=this,t=e.config.vimeo,{premium:i,referrerPolicy:s,...n}=t;let a=e.media.getAttribute("src"),r="";V.empty(a)?(a=e.media.getAttribute(e.config.attributes.embed.id),r=e.media.getAttribute(e.config.attributes.embed.hash)):r=It(a);const o=r?{h:r}:{};i&&Object.assign(n,{controls:!1,sidedock:!1});const l=ht({loop:e.config.loop.active,autoplay:e.autoplay,muted:e.muted,gesture:"media",playsinline:e.config.playsinline,...o,...n}),c=Pt(a),h=Y("iframe"),d=je(e.config.urls.vimeo.iframe,c,l);if(h.setAttribute("src",d),h.setAttribute("allowfullscreen",""),h.setAttribute("allow",["autoplay","fullscreen","picture-in-picture","encrypted-media","accelerometer","gyroscope"].join("; ")),V.empty(s)||h.setAttribute("referrerPolicy",s),i||!t.customControls)h.setAttribute("data-poster",e.poster),e.media=ee(h,e.media);else{const t=Y("div",{class:e.config.classNames.embedContainer,"data-poster":e.poster});t.appendChild(h),e.media=ee(t,e.media)}t.customControls||tt(je(e.config.urls.vimeo.api,d)).then(t=>{!V.empty(t)&&t.thumbnail_url&&St.setPoster.call(e,t.thumbnail_url).catch(()=>{})}),e.embed=new window.Vimeo.Player(h,{autopause:e.config.autopause,muted:e.muted}),e.media.paused=!0,e.media.currentTime=0,e.supported.ui&&e.embed.disableTextTrack(),e.media.play=()=>($t.call(e,!0),e.embed.play()),e.media.pause=()=>($t.call(e,!1),e.embed.pause()),e.media.stop=()=>{e.pause(),e.currentTime=0};let{currentTime:u}=e.media;Object.defineProperty(e.media,"currentTime",{get(){return u},set(t){const{embed:i,media:s,paused:n,volume:a}=e,r=n&&!i.hasPlayed;s.seeking=!0,be.call(e,s,"seeking"),Promise.resolve(r&&i.setVolume(0)).then(()=>i.setCurrentTime(t)).then(()=>r&&i.pause()).then(()=>r&&i.setVolume(a)).catch(()=>{})}});let p=e.config.speed.selected;Object.defineProperty(e.media,"playbackRate",{get(){return p},set(t){e.embed.setPlaybackRate(t).then(()=>{p=t,be.call(e,e.media,"ratechange")}).catch(()=>{e.options.speed=[1]})}});let{volume:m}=e.config;Object.defineProperty(e.media,"volume",{get(){return m},set(t){e.embed.setVolume(t).then(()=>{m=t,be.call(e,e.media,"volumechange")})}});let{muted:g}=e.config;Object.defineProperty(e.media,"muted",{get(){return g},set(t){const i=!!V.boolean(t)&&t;e.embed.setMuted(!!i||e.config.muted).then(()=>{g=i,be.call(e,e.media,"volumechange")})}});let f,{loop:y}=e.config;Object.defineProperty(e.media,"loop",{get(){return y},set(t){const i=V.boolean(t)?t:e.config.loop.active;e.embed.setLoop(i).then(()=>{y=i})}}),e.embed.getVideoUrl().then(t=>{f=t,lt.setDownloadUrl.call(e)}).catch(e=>{this.debug.warn(e)}),Object.defineProperty(e.media,"currentSrc",{get(){return f}}),Object.defineProperty(e.media,"ended",{get(){return e.currentTime===e.duration}}),Promise.all([e.embed.getVideoWidth(),e.embed.getVideoHeight()]).then(t=>{const[i,s]=t;e.embed.ratio=Pe(i,s),Le.call(this)}),e.embed.setAutopause(e.config.autopause).then(t=>{e.config.autopause=t}),e.embed.getVideoTitle().then(t=>{e.config.title=t,St.setTitle.call(this)}),e.embed.getCurrentTime().then(t=>{u=t,be.call(e,e.media,"timeupdate")}),e.embed.getDuration().then(t=>{e.media.duration=t,be.call(e,e.media,"durationchange")}),e.embed.getTextTracks().then(t=>{e.media.textTracks=t,ut.setup.call(e)}),e.embed.on("cuechange",({cues:t=[]})=>{const i=t.map(e=>Ke(e.text));ut.updateCues.call(e,i)}),e.embed.on("loaded",()=>{if(e.embed.getPaused().then(t=>{$t.call(e,!t),t||be.call(e,e.media,"playing")}),V.element(e.embed.element)&&e.supported.ui){const t=e.embed.element;t.setAttribute("tabindex",-1)}}),e.embed.on("bufferstart",()=>{be.call(e,e.media,"waiting")}),e.embed.on("bufferend",()=>{be.call(e,e.media,"playing")}),e.embed.on("play",()=>{$t.call(e,!0),be.call(e,e.media,"playing")}),e.embed.on("pause",()=>{$t.call(e,!1)}),e.embed.on("timeupdate",t=>{e.media.seeking=!1,u=t.seconds,be.call(e,e.media,"timeupdate")}),e.embed.on("progress",t=>{e.media.buffered=t.percent,be.call(e,e.media,"progress"),1===Number.parseInt(t.percent,10)&&be.call(e,e.media,"canplaythrough"),e.embed.getDuration().then(t=>{t!==e.media.duration&&(e.media.duration=t,be.call(e,e.media,"durationchange"))})}),e.embed.on("seeked",()=>{e.media.seeking=!1,be.call(e,e.media,"seeked")}),e.embed.on("ended",()=>{e.media.paused=!0,be.call(e,e.media,"ended")}),e.embed.on("error",t=>{e.media.error=t,be.call(e,e.media,"error")}),t.customControls&&setTimeout(()=>St.build.call(e),0)}};var Dt=Nt;function Ft(e){if(V.empty(e))return null;const t=/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/,i=e.match(t);return i&&i[2]?i[2]:e}function _t(e){e&&!this.embed.hasPlayed&&(this.embed.hasPlayed=!0),this.media.paused===e&&(this.media.paused=!e,be.call(this,this.media,e?"play":"pause"))}function Rt(e){return e.noCookie?"https://www.youtube-nocookie.com":"http:"===window.location.protocol?"http://www.youtube.com":void 0}const Ot={setup(){if(se(this.elements.wrapper,this.config.classNames.embed,!0),V.object(window.YT)&&V.function(window.YT.Player))Ot.ready.call(this);else{const e=window.onYouTubeIframeAPIReady;window.onYouTubeIframeAPIReady=()=>{V.function(e)&&e(),Ot.ready.call(this)},Lt(this.config.urls.youtube.sdk).catch(e=>{this.debug.warn("YouTube API failed to load",e)})}},getTitle(e){const t=je(this.config.urls.youtube.api,e);tt(t).then(e=>{if(V.object(e)){const{title:t,height:i,width:s}=e;this.config.title=t,St.setTitle.call(this),this.embed.ratio=Pe(s,i)}Le.call(this)}).catch(()=>{Le.call(this)})},ready(){const e=this,t=e.config.youtube,i=e.media&&e.media.getAttribute("id");if(!V.empty(i)&&i.startsWith("youtube-"))return;let s=e.media.getAttribute("src");V.empty(s)&&(s=e.media.getAttribute(this.config.attributes.embed.id));const n=Ft(s),a=Ve(e.provider),r=Y("div",{id:a,"data-poster":t.customControls?e.poster:void 0});if(e.media=ee(r,e.media),t.customControls){const t=e=>`https://i.ytimg.com/vi/${n}/${e}default.jpg`;Ct(t("maxres"),121).catch(()=>Ct(t("sd"),121)).catch(()=>Ct(t("hq"))).then(t=>St.setPoster.call(e,t.src)).then(t=>{t.includes("maxres")||(e.elements.poster.style.backgroundSize="cover")}).catch(()=>{})}e.embed=new window.YT.Player(e.media,{videoId:n,host:Rt(t),playerVars:z({},{autoplay:e.config.autoplay?1:0,hl:e.config.hl,controls:e.supported.ui&&t.customControls?0:1,disablekb:1,playsinline:e.config.playsinline&&!e.config.fullscreen.iosNative?1:0,cc_load_policy:e.captions.active?1:0,cc_lang_pref:e.config.captions.language,widget_referrer:window?window.location.href:null},t),events:{onError(t){if(!e.media.error){const i=t.data,s={2:"The request contains an invalid parameter value. For example, this error occurs if you specify a video ID that does not have 11 characters, or if the video ID contains invalid characters, such as exclamation points or asterisks.",5:"The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.",100:"The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.",101:"The owner of the requested video does not allow it to be played in embedded players.",150:"The owner of the requested video does not allow it to be played in embedded players."}[i]||"An unknown error occurred";e.media.error={code:i,message:s},be.call(e,e.media,"error")}},onPlaybackRateChange(t){const i=t.target;e.media.playbackRate=i.getPlaybackRate(),be.call(e,e.media,"ratechange")},onReady(i){if(V.function(e.media.play))return;const s=i.target;Ot.getTitle.call(e,n),e.media.play=()=>{_t.call(e,!0),s.playVideo()},e.media.pause=()=>{_t.call(e,!1),s.pauseVideo()},e.media.stop=()=>{s.stopVideo()},e.media.duration=s.getDuration(),e.media.paused=!0,e.media.currentTime=0,Object.defineProperty(e.media,"currentTime",{get(){return Number(s.getCurrentTime())},set(t){e.paused&&!e.embed.hasPlayed&&e.embed.mute(),e.media.seeking=!0,be.call(e,e.media,"seeking"),s.seekTo(t)}}),Object.defineProperty(e.media,"playbackRate",{get(){return s.getPlaybackRate()},set(e){s.setPlaybackRate(e)}});let{volume:a}=e.config;Object.defineProperty(e.media,"volume",{get(){return a},set(t){a=t,s.setVolume(100*a),be.call(e,e.media,"volumechange")}});let{muted:r}=e.config;Object.defineProperty(e.media,"muted",{get(){return r},set(t){const i=V.boolean(t)?t:r;r=i,s[i?"mute":"unMute"](),s.setVolume(100*a),be.call(e,e.media,"volumechange")}}),Object.defineProperty(e.media,"currentSrc",{get(){return s.getVideoUrl()}}),Object.defineProperty(e.media,"ended",{get(){return e.currentTime===e.duration}});const o=s.getAvailablePlaybackRates();e.options.speed=o.filter(t=>e.config.speed.options.includes(t)),e.supported.ui&&t.customControls&&e.media.setAttribute("tabindex",-1),be.call(e,e.media,"timeupdate"),be.call(e,e.media,"durationchange"),clearInterval(e.timers.buffering),e.timers.buffering=setInterval(()=>{e.media.buffered=s.getVideoLoadedFraction(),(null===e.media.lastBuffered||e.media.lastBufferedSt.build.call(e),50)},onStateChange(i){const s=i.target;clearInterval(e.timers.playing);const n=e.media.seeking&&[1,2].includes(i.data);switch(n&&(e.media.seeking=!1,be.call(e,e.media,"seeked")),i.data){case-1:be.call(e,e.media,"timeupdate"),e.media.buffered=s.getVideoLoadedFraction(),be.call(e,e.media,"progress");break;case 0:_t.call(e,!1),e.media.loop?(s.stopVideo(),s.playVideo()):be.call(e,e.media,"ended");break;case 1:t.customControls&&!e.config.autoplay&&e.media.paused&&!e.embed.hasPlayed?e.media.pause():(_t.call(e,!0),be.call(e,e.media,"playing"),e.timers.playing=setInterval(()=>{be.call(e,e.media,"timeupdate")},50),e.media.duration!==s.getDuration()&&(e.media.duration=s.getDuration(),be.call(e,e.media,"durationchange")));break;case 2:e.muted||e.embed.unMute(),_t.call(e,!1);break;case 3:be.call(e,e.media,"waiting");break;default:break}be.call(e,e.elements.container,"statechange",!1,{code:i.data})}}})}};var Bt=Ot;const Ht={setup(){this.media?(se(this.elements.container,this.config.classNames.type.replace("{0}",this.type),!0),se(this.elements.container,this.config.classNames.provider.replace("{0}",this.provider),!0),this.isEmbed&&se(this.elements.container,this.config.classNames.type.replace("{0}","video"),!0),this.isVideo&&(this.elements.wrapper=Y("div",{class:this.config.classNames.video}),W(this.media,this.elements.wrapper),this.elements.poster=Y("div",{class:this.config.classNames.poster}),this.elements.wrapper.appendChild(this.elements.poster)),this.isHTML5?Ne.setup.call(this):this.isYouTube?Bt.setup.call(this):this.isVimeo&&Dt.setup.call(this)):this.debug.warn("No media element found!")}};var Vt=Ht;function jt(e){e.manager&&e.manager.destroy(),e.elements.displayContainer&&e.elements.displayContainer.destroy(),e.elements.container.remove()}class qt{constructor(e){(0,v.A)(this,"load",()=>{this.enabled&&(V.object(window.google)&&V.object(window.google.ima)?this.ready():Lt(this.player.config.urls.googleIMA.sdk).then(()=>{this.ready()}).catch(()=>{this.trigger("error",new Error("Google IMA SDK failed to load"))}))}),(0,v.A)(this,"ready",()=>{this.enabled||jt(this),this.startSafetyTimer(12e3,"ready()"),this.managerPromise.then(()=>{this.clearSafetyTimer("onAdsManagerLoaded()")}),this.listeners(),this.setupIMA()}),(0,v.A)(this,"setupIMA",()=>{this.elements.container=Y("div",{class:this.player.config.classNames.ads}),this.player.elements.container.appendChild(this.elements.container),google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED),google.ima.settings.setLocale(this.player.config.ads.language),google.ima.settings.setDisableCustomPlaybackForIOS10Plus(this.player.config.playsinline),this.elements.displayContainer=new google.ima.AdDisplayContainer(this.elements.container,this.player.media),this.loader=new google.ima.AdsLoader(this.elements.displayContainer),this.loader.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,e=>this.onAdsManagerLoaded(e),!1),this.loader.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,e=>this.onAdError(e),!1),this.requestAds()}),(0,v.A)(this,"requestAds",()=>{const{container:e}=this.player.elements;try{const t=new google.ima.AdsRequest;t.adTagUrl=this.tagUrl,t.linearAdSlotWidth=e.offsetWidth,t.linearAdSlotHeight=e.offsetHeight,t.nonLinearAdSlotWidth=e.offsetWidth,t.nonLinearAdSlotHeight=e.offsetHeight,t.forceNonLinearFullSlot=!1,t.setAdWillPlayMuted(!this.player.muted),this.loader.requestAds(t)}catch(t){this.onAdError(t)}}),(0,v.A)(this,"pollCountdown",(e=!1)=>{if(!e)return clearInterval(this.countdownTimer),void this.elements.container.removeAttribute("data-badge-text");const t=()=>{const e=rt(Math.max(this.manager.getRemainingTime(),0)),t=`${Ge.get("advertisement",this.player.config)} - ${e}`;this.elements.container.setAttribute("data-badge-text",t)};this.countdownTimer=setInterval(t,100)}),(0,v.A)(this,"onAdsManagerLoaded",e=>{if(!this.enabled)return;const t=new google.ima.AdsRenderingSettings;t.restoreCustomPlaybackStateOnAdBreakComplete=!0,t.enablePreloading=!0,this.manager=e.getAdsManager(this.player,t),this.cuePoints=this.manager.getCuePoints(),this.manager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,e=>this.onAdError(e)),Object.keys(google.ima.AdEvent.Type).forEach(e=>{this.manager.addEventListener(google.ima.AdEvent.Type[e],e=>this.onAdEvent(e))}),this.trigger("loaded")}),(0,v.A)(this,"addCuePoints",()=>{V.empty(this.cuePoints)||this.cuePoints.forEach(e=>{if(0!==e&&-1!==e&&e{const{container:t}=this.player.elements,i=e.getAd(),s=e.getAdData(),n=e=>{be.call(this.player,this.player.media,`ads${e.replace(/_/g,"").toLowerCase()}`)};switch(n(e.type),e.type){case google.ima.AdEvent.Type.LOADED:this.trigger("loaded"),this.pollCountdown(!0),i.isLinear()||(i.width=t.offsetWidth,i.height=t.offsetHeight);break;case google.ima.AdEvent.Type.STARTED:this.manager.setVolume(this.player.volume);break;case google.ima.AdEvent.Type.ALL_ADS_COMPLETED:this.player.ended?this.loadAds():this.loader.contentComplete();break;case google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED:this.pauseContent();break;case google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED:this.pollCountdown(),this.resumeContent();break;case google.ima.AdEvent.Type.LOG:s.adError&&this.player.debug.warn(`Non-fatal ad error: ${s.adError.getMessage()}`);break;default:break}}),(0,v.A)(this,"onAdError",e=>{this.cancel(),this.player.debug.warn("Ads error",e)}),(0,v.A)(this,"listeners",()=>{const{container:e}=this.player.elements;let t;this.player.on("canplay",()=>{this.addCuePoints()}),this.player.on("ended",()=>{this.loader.contentComplete()}),this.player.on("timeupdate",()=>{t=this.player.currentTime}),this.player.on("seeked",()=>{const e=this.player.currentTime;V.empty(this.cuePoints)||this.cuePoints.forEach((i,s)=>{t{this.manager&&this.manager.resize(e.offsetWidth,e.offsetHeight,google.ima.ViewMode.NORMAL)})}),(0,v.A)(this,"play",()=>{const{container:e}=this.player.elements;this.managerPromise||this.resumeContent(),this.managerPromise.then(()=>{this.manager.setVolume(this.player.volume),this.elements.displayContainer.initialize();try{this.initialized||(this.manager.init(e.offsetWidth,e.offsetHeight,google.ima.ViewMode.NORMAL),this.manager.start()),this.initialized=!0}catch(t){this.onAdError(t)}}).catch(()=>{})}),(0,v.A)(this,"resumeContent",()=>{this.elements.container.style.zIndex="",this.playing=!1,ke(this.player.media.play())}),(0,v.A)(this,"pauseContent",()=>{this.elements.container.style.zIndex=3,this.playing=!0,this.player.media.pause()}),(0,v.A)(this,"cancel",()=>{this.initialized&&this.resumeContent(),this.trigger("error"),this.loadAds()}),(0,v.A)(this,"loadAds",()=>{this.managerPromise.then(()=>{this.manager&&this.manager.destroy(),this.managerPromise=new Promise(e=>{this.on("loaded",e),this.player.debug.log(this.manager)}),this.initialized=!1,this.requestAds()}).catch(()=>{})}),(0,v.A)(this,"trigger",(e,...t)=>{const i=this.events[e];V.array(i)&&i.forEach(e=>{V.function(e)&&e.apply(this,t)})}),(0,v.A)(this,"on",(e,t)=>(V.array(this.events[e])||(this.events[e]=[]),this.events[e].push(t),this)),(0,v.A)(this,"startSafetyTimer",(e,t)=>{this.player.debug.log(`Safety timer invoked from: ${t}`),this.safetyTimer=setTimeout(()=>{this.cancel(),this.clearSafetyTimer("startSafetyTimer()")},e)}),(0,v.A)(this,"clearSafetyTimer",e=>{V.nullOrUndefined(this.safetyTimer)||(this.player.debug.log(`Safety timer cleared from: ${e}`),clearTimeout(this.safetyTimer),this.safetyTimer=null)}),this.player=e,this.config=e.config.ads,this.playing=!1,this.initialized=!1,this.elements={container:null,displayContainer:null},this.manager=null,this.loader=null,this.cuePoints=null,this.events={},this.safetyTimer=null,this.countdownTimer=null,this.managerPromise=new Promise((e,t)=>{this.on("loaded",e),this.on("error",t)}),this.load()}get enabled(){const{config:e}=this;return this.player.isHTML5&&this.player.isVideo&&e.enabled&&(!V.empty(e.publisherId)||V.url(e.tagUrl))}get tagUrl(){const{config:e}=this;if(V.url(e.tagUrl))return e.tagUrl;const t={AV_PUBLISHERID:"58c25bb0073ef448b1087ad6",AV_CHANNELID:"5a0458dc28a06145e4519d21",AV_URL:window.location.hostname,cb:Date.now(),AV_WIDTH:640,AV_HEIGHT:480,AV_CDIM2:e.publisherId},i="https://go.aniview.com/api/adserver6/vast/";return`${i}?${ht(t)}`}}var Ut=qt;function Xt(e=0,t=0,i=255){return Math.min(Math.max(e,t),i)}function zt(e){const t=[],i=e.split(/\r\n\r\n|\n\n|\r\r/);return i.forEach(e=>{const i={},s=e.split(/\r\n|\n|\r/);s.forEach(e=>{if(V.number(i.startTime)){if(!V.empty(e.trim())&&V.empty(i.text)){const t=e.trim().split("#xywh=");[i.text]=t,t[1]&&([i.x,i.y,i.w,i.h]=t[1].split(","))}}else{const t=e.match(/(\d{2})?:?(\d{2}):(\d{2}).(\d{2,3})( ?--> ?)(\d{2})?:?(\d{2}):(\d{2}).(\d{2,3})/);t&&(i.startTime=60*Number(t[1]||0)*60+60*Number(t[2])+Number(t[3])+Number(`0.${t[4]}`),i.endTime=60*Number(t[6]||0)*60+60*Number(t[7])+Number(t[8])+Number(`0.${t[9]}`))}}),i.text&&t.push(i)}),t}function Wt(e,t){const i=t.width/t.height,s={};return e>i?(s.width=t.width,s.height=1/e*t.width):(s.height=t.height,s.width=e*t.height),s}class Kt{constructor(e){(0,v.A)(this,"load",()=>{this.player.elements.display.seekTooltip&&(this.player.elements.display.seekTooltip.hidden=this.enabled),this.enabled&&this.getThumbnails().then(()=>{this.enabled&&(this.render(),this.determineContainerAutoSizing(),this.listeners(),this.loaded=!0)})}),(0,v.A)(this,"getThumbnails",()=>new Promise(e=>{const{src:t}=this.player.config.previewThumbnails;if(V.empty(t))throw new Error("Missing previewThumbnails.src config attribute");const i=()=>{this.thumbnails.sort((e,t)=>e.height-t.height),this.player.debug.log("Preview thumbnails",this.thumbnails),e()};if(V.function(t))t(e=>{this.thumbnails=e,i()});else{const e=V.string(t)?[t]:t,s=e.map(e=>this.getThumbnail(e));Promise.all(s).then(i)}})),(0,v.A)(this,"getThumbnail",e=>new Promise(t=>{tt(e,void 0,this.player.config.previewThumbnails.withCredentials).then(i=>{const s={frames:zt(i),height:null,urlPrefix:""};s.frames[0].text.startsWith("/")||s.frames[0].text.startsWith("http://")||s.frames[0].text.startsWith("https://")||(s.urlPrefix=e.substring(0,e.lastIndexOf("/")+1));const n=new Image;n.onload=()=>{s.height=n.naturalHeight,s.width=n.naturalWidth,this.thumbnails.push(s),t()},n.src=s.urlPrefix+s.frames[0].text})})),(0,v.A)(this,"startMove",e=>{if(this.loaded&&V.event(e)&&["touchmove","mousemove"].includes(e.type)&&this.player.media.duration){if("touchmove"===e.type)this.seekTime=this.player.media.duration*(this.player.elements.inputs.seek.value/100);else{const t=this.player.elements.progress.getBoundingClientRect(),i=100/t.width*(e.pageX-t.left);this.seekTime=this.player.media.duration*(i/100),this.seekTime<0&&(this.seekTime=0),this.seekTime>this.player.media.duration-1&&(this.seekTime=this.player.media.duration-1),this.mousePosX=e.pageX,this.elements.thumb.time.textContent=rt(this.seekTime);const s=this.player.config.markers?.points?.find(({time:e})=>e===Math.round(this.seekTime));s&&this.elements.thumb.time.insertAdjacentHTML("afterbegin",`${s.label}
`)}this.showImageAtCurrentTime()}}),(0,v.A)(this,"endMove",()=>{this.toggleThumbContainer(!1,!0)}),(0,v.A)(this,"startScrubbing",e=>{(V.nullOrUndefined(e.button)||!1===e.button||0===e.button)&&(this.mouseDown=!0,this.player.media.duration&&(this.toggleScrubbingContainer(!0),this.toggleThumbContainer(!1,!0),this.showImageAtCurrentTime()))}),(0,v.A)(this,"endScrubbing",()=>{this.mouseDown=!1,Math.ceil(this.lastTime)===Math.ceil(this.player.media.currentTime)?this.toggleScrubbingContainer(!1):ye.call(this.player,this.player.media,"timeupdate",()=>{this.mouseDown||this.toggleScrubbingContainer(!1)})}),(0,v.A)(this,"listeners",()=>{this.player.on("play",()=>{this.toggleThumbContainer(!1,!0)}),this.player.on("seeked",()=>{this.toggleThumbContainer(!1)}),this.player.on("timeupdate",()=>{this.lastTime=this.player.media.currentTime})}),(0,v.A)(this,"render",()=>{this.elements.thumb.container=Y("div",{class:this.player.config.classNames.previewThumbnails.thumbContainer}),this.elements.thumb.imageContainer=Y("div",{class:this.player.config.classNames.previewThumbnails.imageContainer}),this.elements.thumb.container.appendChild(this.elements.thumb.imageContainer);const e=Y("div",{class:this.player.config.classNames.previewThumbnails.timeContainer});this.elements.thumb.time=Y("span",{},"00:00"),e.appendChild(this.elements.thumb.time),this.elements.thumb.imageContainer.appendChild(e),V.element(this.player.elements.progress)&&this.player.elements.progress.appendChild(this.elements.thumb.container),this.elements.scrubbing.container=Y("div",{class:this.player.config.classNames.previewThumbnails.scrubbingContainer}),this.player.elements.wrapper.appendChild(this.elements.scrubbing.container)}),(0,v.A)(this,"destroy",()=>{this.elements.thumb.container&&this.elements.thumb.container.remove(),this.elements.scrubbing.container&&this.elements.scrubbing.container.remove()}),(0,v.A)(this,"showImageAtCurrentTime",()=>{this.mouseDown?this.setScrubbingContainerSize():this.setThumbContainerSizeAndPos();const e=this.thumbnails[0].frames.findIndex(e=>this.seekTime>=e.startTime&&this.seekTime<=e.endTime),t=e>=0;let i=0;this.mouseDown||this.toggleThumbContainer(t),t&&(this.thumbnails.forEach((t,s)=>{this.loadedImages.includes(t.frames[e].text)&&(i=s)}),e!==this.showingThumb&&(this.showingThumb=e,this.loadImage(i)))}),(0,v.A)(this,"loadImage",(e=0)=>{const t=this.showingThumb,i=this.thumbnails[e],{urlPrefix:s}=i,n=i.frames[t],a=i.frames[t].text,r=s+a;if(this.currentImageElement&&this.currentImageElement.dataset.filename===a)this.showImage(this.currentImageElement,n,e,t,a,!1),this.currentImageElement.dataset.index=t,this.removeOldImages(this.currentImageElement);else{this.loadingImage&&this.usingSprites&&(this.loadingImage.onload=null);const i=new Image;i.src=r,i.dataset.index=t,i.dataset.filename=a,this.showingThumbFilename=a,this.player.debug.log(`Loading image: ${r}`),i.onload=()=>this.showImage(i,n,e,t,a,!0),this.loadingImage=i,this.removeOldImages(i)}}),(0,v.A)(this,"showImage",(e,t,i,s,n,a=!0)=>{this.player.debug.log(`Showing thumb: ${n}. num: ${s}. qual: ${i}. newimg: ${a}`),this.setImageSizeAndOffset(e,t),a&&(this.currentImageContainer.appendChild(e),this.currentImageElement=e,this.loadedImages.includes(n)||this.loadedImages.push(n)),this.preloadNearby(s,!0).then(this.preloadNearby(s,!1)).then(this.getHigherQuality(i,e,t,n))}),(0,v.A)(this,"removeOldImages",e=>{Array.from(this.currentImageContainer.children).forEach(t=>{if("img"!==t.tagName.toLowerCase())return;const i=this.usingSprites?500:1e3;if(t.dataset.index!==e.dataset.index&&!t.dataset.deleting){t.dataset.deleting=!0;const{currentImageContainer:e}=this;setTimeout(()=>{e.removeChild(t),this.player.debug.log(`Removing thumb: ${t.dataset.filename}`)},i)}})}),(0,v.A)(this,"preloadNearby",(e,t=!0)=>new Promise(i=>{setTimeout(()=>{const s=this.thumbnails[0].frames[e].text;if(this.showingThumbFilename===s){let n;n=t?this.thumbnails[0].frames.slice(e):this.thumbnails[0].frames.slice(0,e).reverse();let a=!1;n.forEach(e=>{const t=e.text;if(t!==s&&!this.loadedImages.includes(t)){a=!0,this.player.debug.log(`Preloading thumb filename: ${t}`);const{urlPrefix:e}=this.thumbnails[0],s=e+t,n=new Image;n.src=s,n.onload=()=>{this.player.debug.log(`Preloaded thumb filename: ${t}`),this.loadedImages.includes(t)||this.loadedImages.push(t),i()}}}),a||i()}},300)})),(0,v.A)(this,"getHigherQuality",(e,t,i,s)=>{if(e{this.showingThumbFilename===s&&(this.player.debug.log(`Showing higher quality thumb for: ${s}`),this.loadImage(e+1))},300)}}),(0,v.A)(this,"toggleThumbContainer",(e=!1,t=!1)=>{const i=this.player.config.classNames.previewThumbnails.thumbContainerShown;this.elements.thumb.container.classList.toggle(i,e),!e&&t&&(this.showingThumb=null,this.showingThumbFilename=null)}),(0,v.A)(this,"toggleScrubbingContainer",(e=!1)=>{const t=this.player.config.classNames.previewThumbnails.scrubbingContainerShown;this.elements.scrubbing.container.classList.toggle(t,e),e||(this.showingThumb=null,this.showingThumbFilename=null)}),(0,v.A)(this,"determineContainerAutoSizing",()=>{(this.elements.thumb.imageContainer.clientHeight>20||this.elements.thumb.imageContainer.clientWidth>20)&&(this.sizeSpecifiedInCSS=!0)}),(0,v.A)(this,"setThumbContainerSizeAndPos",()=>{const{imageContainer:e}=this.elements.thumb;if(this.sizeSpecifiedInCSS){if(e.clientHeight>20&&e.clientWidth<20){const t=Math.floor(e.clientHeight*this.thumbAspectRatio);e.style.width=`${t}px`}else if(e.clientHeight<20&&e.clientWidth>20){const t=Math.floor(e.clientWidth/this.thumbAspectRatio);e.style.height=`${t}px`}}else{const t=Math.floor(this.thumbContainerHeight*this.thumbAspectRatio);e.style.height=`${this.thumbContainerHeight}px`,e.style.width=`${t}px`}this.setThumbContainerPos()}),(0,v.A)(this,"setThumbContainerPos",()=>{const e=this.player.elements.progress.getBoundingClientRect(),t=this.player.elements.container.getBoundingClientRect(),{container:i}=this.elements.thumb,s=t.left-e.left+10,n=t.right-e.left-i.clientWidth-10,a=this.mousePosX-e.left-i.clientWidth/2,r=Xt(a,s,n);i.style.left=`${r}px`,i.style.setProperty("--preview-arrow-offset",a-r+"px")}),(0,v.A)(this,"setScrubbingContainerSize",()=>{const{width:e,height:t}=Wt(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight});this.elements.scrubbing.container.style.width=`${e}px`,this.elements.scrubbing.container.style.height=`${t}px`}),(0,v.A)(this,"setImageSizeAndOffset",(e,t)=>{if(!this.usingSprites)return;const i=this.thumbContainerHeight/t.h;e.style.height=e.naturalHeight*i+"px",e.style.width=e.naturalWidth*i+"px",e.style.left=`-${t.x*i}px`,e.style.top=`-${t.y*i}px`}),this.player=e,this.thumbnails=[],this.loaded=!1,this.lastMouseMoveTime=Date.now(),this.mouseDown=!1,this.loadedImages=[],this.elements={thumb:{},scrubbing:{}},this.load()}get enabled(){return this.player.isHTML5&&this.player.isVideo&&this.player.config.previewThumbnails.enabled}get currentImageContainer(){return this.mouseDown?this.elements.scrubbing.container:this.elements.thumb.imageContainer}get usingSprites(){return Object.keys(this.thumbnails[0].frames[0]).includes("w")}get thumbAspectRatio(){return this.usingSprites?this.thumbnails[0].frames[0].w/this.thumbnails[0].frames[0].h:this.thumbnails[0].width/this.thumbnails[0].height}get thumbContainerHeight(){if(this.mouseDown){const{height:e}=Wt(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight});return e}return this.sizeSpecifiedInCSS?this.elements.thumb.imageContainer.clientHeight:Math.floor(this.player.media.clientWidth/this.thumbAspectRatio/4)}get currentImageElement(){return this.mouseDown?this.currentScrubbingImageElement:this.currentThumbnailImageElement}set currentImageElement(e){this.mouseDown?this.currentScrubbingImageElement=e:this.currentThumbnailImageElement=e}}var Yt=Kt;const Qt={insertElements(e,t){V.string(t)?J(e,this.media,{src:t}):V.array(t)&&t.forEach(t=>{J(e,this.media,t)})},change(e){X(e,"sources.length")?(Ne.cancelRequests.call(this),this.destroy(()=>{this.options.quality=[],G(this.media),this.media=null,V.element(this.elements.container)&&this.elements.container.removeAttribute("class");const{sources:t,type:i}=e,[{provider:s=ft.html5,src:n}]=t,a="html5"===s?i:"div",r="html5"===s?{}:{src:n};Object.assign(this,{provider:s,type:i,supported:ue.check(i,s,this.config.playsinline),media:Y(a,r)}),this.elements.container.appendChild(this.media),V.boolean(e.autoplay)&&(this.config.autoplay=e.autoplay),this.isHTML5&&(this.config.crossorigin&&this.media.setAttribute("crossorigin",""),this.config.autoplay&&this.media.setAttribute("autoplay",""),V.empty(e.poster)||(this.poster=e.poster),this.config.loop.active&&this.media.setAttribute("loop",""),this.config.muted&&this.media.setAttribute("muted",""),this.config.playsinline&&this.media.setAttribute("playsinline","")),St.addStyleHook.call(this),this.isHTML5&&Qt.insertElements.call(this,"source",t),this.config.title=e.title,Vt.setup.call(this),this.isHTML5&&Object.keys(e).includes("tracks")&&Qt.insertElements.call(this,"track",e.tracks),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&St.build.call(this),this.isHTML5&&this.media.load(),V.empty(e.previewThumbnails)||(Object.assign(this.config.previewThumbnails,e.previewThumbnails),this.previewThumbnails&&this.previewThumbnails.loaded&&(this.previewThumbnails.destroy(),this.previewThumbnails=null),this.config.previewThumbnails.enabled&&(this.previewThumbnails=new Yt(this))),this.fullscreen.update()},!0)):this.debug.warn("Invalid source format")}};var Jt=Qt;class Gt{constructor(e,t){if((0,v.A)(this,"play",()=>V.function(this.media.play)?(this.ads&&this.ads.enabled&&this.ads.managerPromise.then(()=>this.ads.play()).catch(()=>ke(this.media.play())),this.media.play()):null),(0,v.A)(this,"pause",()=>this.playing&&V.function(this.media.pause)?this.media.pause():null),(0,v.A)(this,"togglePlay",e=>{const t=V.boolean(e)?e:!this.playing;return t?this.play():this.pause()}),(0,v.A)(this,"stop",()=>{this.isHTML5?(this.pause(),this.restart()):V.function(this.media.stop)&&this.media.stop()}),(0,v.A)(this,"restart",()=>{this.currentTime=0}),(0,v.A)(this,"rewind",e=>{this.currentTime-=V.number(e)?e:this.config.seekTime}),(0,v.A)(this,"forward",e=>{this.currentTime+=V.number(e)?e:this.config.seekTime}),(0,v.A)(this,"increaseVolume",e=>{const t=this.media.muted?0:this.volume;this.volume=t+(V.number(e)?e:0)}),(0,v.A)(this,"decreaseVolume",e=>{this.increaseVolume(-e)}),(0,v.A)(this,"airplay",()=>{ue.airplay&&this.media.webkitShowPlaybackTargetPicker()}),(0,v.A)(this,"toggleControls",e=>{if(this.supported.ui&&!this.isAudio){const t=ne(this.elements.container,this.config.classNames.hideControls),i="undefined"===typeof e?void 0:!e,s=se(this.elements.container,this.config.classNames.hideControls,i);if(s&&V.array(this.config.controls)&&this.config.controls.includes("settings")&&!V.empty(this.config.settings)&<.toggleMenu.call(this,!1),s!==t){const e=s?"controlshidden":"controlsshown";be.call(this,this.media,e)}return!s}return!1}),(0,v.A)(this,"on",(e,t)=>{ge.call(this,this.elements.container,e,t)}),(0,v.A)(this,"once",(e,t)=>{ye.call(this,this.elements.container,e,t)}),(0,v.A)(this,"off",(e,t)=>{fe(this.elements.container,e,t)}),(0,v.A)(this,"destroy",(e,t=!1)=>{if(!this.ready)return;const i=()=>{document.body.style.overflow="",this.embed=null,t?(Object.keys(this.elements).length&&(G(this.elements.buttons.play),G(this.elements.captions),G(this.elements.controls),G(this.elements.wrapper),this.elements.buttons.play=null,this.elements.captions=null,this.elements.controls=null,this.elements.wrapper=null),V.function(e)&&e()):(ve.call(this),Ne.cancelRequests.call(this),ee(this.elements.original,this.elements.container),be.call(this,this.elements.original,"destroyed",!0),V.function(e)&&e.call(this.elements.original),this.ready=!1,setTimeout(()=>{this.elements=null,this.media=null},200))};this.stop(),clearTimeout(this.timers.loading),clearTimeout(this.timers.controls),clearTimeout(this.timers.resized),this.isHTML5?(St.toggleNativeControls.call(this,!0),i()):this.isYouTube?(clearInterval(this.timers.buffering),clearInterval(this.timers.playing),null!==this.embed&&V.function(this.embed.destroy)&&this.embed.destroy(),i()):this.isVimeo&&(null!==this.embed&&this.embed.unload().then(i),setTimeout(i,200))}),(0,v.A)(this,"supports",e=>ue.mime.call(this,e)),this.timers={},this.ready=!1,this.loading=!1,this.failed=!1,this.touch=ue.touch,this.media=e,V.string(this.media)&&(this.media=document.querySelectorAll(this.media)),(window.jQuery&&this.media instanceof jQuery||V.nodeList(this.media)||V.array(this.media))&&(this.media=this.media[0]),this.config=z({},mt,Gt.defaults,t||{},(()=>{try{return JSON.parse(this.media.getAttribute("data-plyr-config"))}catch{return{}}})()),this.elements={container:null,fullscreen:null,captions:null,buttons:{},display:{},progress:{},inputs:{},settings:{popup:null,menu:null,panels:{},buttons:{}}},this.captions={active:null,currentTrack:-1,meta:new WeakMap},this.fullscreen={active:!1},this.options={speed:[],quality:[]},this.debug=new wt(this.config.debug),this.debug.log("Config",this.config),this.debug.log("Support",ue),V.nullOrUndefined(this.media)||!V.element(this.media))return void this.debug.error("Setup failed: no suitable element passed");if(this.media.plyr)return void this.debug.warn("Target already setup");if(!this.config.enabled)return void this.debug.error("Setup failed: disabled by config");if(!ue.check().api)return void this.debug.error("Setup failed: no support");const i=this.media.cloneNode(!0);i.autoplay=!1,this.elements.original=i;const s=this.media.tagName.toLowerCase();let n=null,a=null;switch(s){case"div":if(n=this.media.querySelector("iframe"),V.element(n)){if(a=ct(n.getAttribute("src")),this.provider=bt(a.toString()),this.elements.container=this.media,this.media=n,this.elements.container.className="",a.search.length){const e=["1","true"];e.includes(a.searchParams.get("autoplay"))&&(this.config.autoplay=!0),e.includes(a.searchParams.get("loop"))&&(this.config.loop.active=!0),this.isYouTube?(this.config.playsinline=e.includes(a.searchParams.get("playsinline")),this.config.youtube.hl=a.searchParams.get("hl")):this.config.playsinline=!0}}else this.provider=this.media.getAttribute(this.config.attributes.embed.provider),this.media.removeAttribute(this.config.attributes.embed.provider);if(V.empty(this.provider)||!Object.values(ft).includes(this.provider))return void this.debug.error("Setup failed: Invalid provider");this.type=yt.video;break;case"video":case"audio":this.type=s,this.provider=ft.html5,this.media.hasAttribute("crossorigin")&&(this.config.crossorigin=!0),this.media.hasAttribute("autoplay")&&(this.config.autoplay=!0),(this.media.hasAttribute("playsinline")||this.media.hasAttribute("webkit-playsinline"))&&(this.config.playsinline=!0),this.media.hasAttribute("muted")&&(this.config.muted=!0),this.media.hasAttribute("loop")&&(this.config.loop.active=!0);break;default:return void this.debug.error("Setup failed: unsupported type")}this.supported=ue.check(this.type,this.provider),this.supported.api?(this.eventListeners=[],this.listeners=new Mt(this),this.storage=new et(this),this.media.plyr=this,V.element(this.elements.container)||(this.elements.container=Y("div"),W(this.media,this.elements.container)),St.migrateStyles.call(this),St.addStyleHook.call(this),Vt.setup.call(this),this.config.debug&&ge.call(this,this.elements.container,this.config.events.join(" "),e=>{this.debug.log(`event: ${e.type}`)}),this.fullscreen=new Tt(this),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&St.build.call(this),this.listeners.container(),this.listeners.global(),this.config.ads.enabled&&(this.ads=new Ut(this)),this.isHTML5&&this.config.autoplay&&this.once("canplay",()=>ke(this.play())),this.lastSeekTime=0,this.config.previewThumbnails.enabled&&(this.previewThumbnails=new Yt(this))):this.debug.error("Setup failed: no support")}get isHTML5(){return this.provider===ft.html5}get isEmbed(){return this.isYouTube||this.isVimeo}get isYouTube(){return this.provider===ft.youtube}get isVimeo(){return this.provider===ft.vimeo}get isVideo(){return this.type===yt.video}get isAudio(){return this.type===yt.audio}get playing(){return Boolean(this.ready&&!this.paused&&!this.ended)}get paused(){return Boolean(this.media.paused)}get stopped(){return Boolean(this.paused&&0===this.currentTime)}get ended(){return Boolean(this.media.ended)}set currentTime(e){if(!this.duration)return;const t=V.number(e)&&e>0;this.media.currentTime=t?Math.min(e,this.duration):0,this.debug.log(`Seeking to ${this.currentTime} seconds`)}get currentTime(){return Number(this.media.currentTime)}get buffered(){const{buffered:e}=this.media;return V.number(e)?e:e&&e.length&&this.duration>0?e.end(0)/this.duration:0}get seeking(){return Boolean(this.media.seeking)}get duration(){const e=Number.parseFloat(this.config.duration),t=(this.media||{}).duration,i=V.number(t)&&t!==1/0?t:0;return e||i}set volume(e){let t=e;const i=1,s=0;V.string(t)&&(t=Number(t)),V.number(t)||(t=this.storage.get("volume")),V.number(t)||({volume:t}=this.config),t>i&&(t=i),t0&&(this.muted=!1)}get volume(){return Number(this.media.volume)}set muted(e){let t=e;V.boolean(t)||(t=this.storage.get("muted")),V.boolean(t)||(t=this.config.muted),this.config.muted=t,this.media.muted=t}get muted(){return Boolean(this.media.muted)}get hasAudio(){return!this.isHTML5||(!!this.isAudio||(Boolean(this.media.mozHasAudio)||Boolean(this.media.webkitAudioDecodedByteCount)||Boolean(this.media.audioTracks&&this.media.audioTracks.length)))}set speed(e){let t=null;V.number(e)&&(t=e),V.number(t)||(t=this.storage.get("speed")),V.number(t)||(t=this.config.speed.selected);const{minimumSpeed:i,maximumSpeed:s}=this;t=Xt(t,i,s),this.config.speed.selected=t,setTimeout(()=>{this.media&&(this.media.playbackRate=t)},0)}get speed(){return Number(this.media.playbackRate)}get minimumSpeed(){return this.isYouTube?Math.min(...this.options.speed):this.isVimeo?.5:.0625}get maximumSpeed(){return this.isYouTube?Math.max(...this.options.speed):this.isVimeo?2:16}set quality(e){const t=this.config.quality,i=this.options.quality;if(!i.length)return;let s=[!V.empty(e)&&Number(e),this.storage.get("quality"),t.selected,t.default].find(V.number),n=!0;if(!i.includes(s)){const e=Ce(i,s);this.debug.warn(`Unsupported quality option: ${s}, using ${e} instead`),s=e,n=!1}t.selected=s,this.media.quality=s,n&&this.storage.set({quality:s})}get quality(){return this.media.quality}set loop(e){const t=V.boolean(e)?e:this.config.loop.active;this.config.loop.active=t,this.media.loop=t}get loop(){return Boolean(this.media.loop)}set source(e){Jt.change.call(this,e)}get source(){return this.media.currentSrc}get download(){const{download:e}=this.config.urls;return V.url(e)?e:this.source}set download(e){V.url(e)&&(this.config.urls.download=e,lt.setDownloadUrl.call(this))}set poster(e){this.isVideo?St.setPoster.call(this,e,!1).catch(()=>{}):this.debug.warn("Poster can only be set for video")}get poster(){return this.isVideo?this.media.getAttribute("poster")||this.media.getAttribute("data-poster"):null}get ratio(){if(!this.isVideo)return null;const e=Me(Ee.call(this));return V.array(e)?e.join(":"):e}set ratio(e){this.isVideo?V.string(e)&&xe(e)?(this.config.ratio=Me(e),Le.call(this)):this.debug.error(`Invalid aspect ratio specified (${e})`):this.debug.warn("Aspect ratio can only be set for video")}set autoplay(e){this.config.autoplay=V.boolean(e)?e:this.config.autoplay}get autoplay(){return Boolean(this.config.autoplay)}toggleCaptions(e){ut.toggle.call(this,e,!1)}set currentTrack(e){ut.set.call(this,e,!1),ut.setup.call(this)}get currentTrack(){const{toggled:e,currentTrack:t}=this.captions;return e?t:-1}set language(e){ut.setLanguage.call(this,e,!1)}get language(){return(ut.getCurrentTrack.call(this)||{}).language}set pip(e){if(!ue.pip)return;const t=V.boolean(e)?e:!this.pip;V.function(this.media.webkitSetPresentationMode)&&this.media.webkitSetPresentationMode(t?gt.active:gt.inactive),V.function(this.media.requestPictureInPicture)&&(!this.pip&&t?this.media.requestPictureInPicture():this.pip&&!t&&document.exitPictureInPicture())}get pip(){return ue.pip?V.empty(this.media.webkitPresentationMode)?this.media===document.pictureInPictureElement:this.media.webkitPresentationMode===gt.active:null}setPreviewThumbnails(e){this.previewThumbnails&&this.previewThumbnails.loaded&&(this.previewThumbnails.destroy(),this.previewThumbnails=null),Object.assign(this.config.previewThumbnails,e),this.config.previewThumbnails.enabled&&(this.previewThumbnails=new Yt(this))}static supported(e,t){return ue.check(e,t)}static loadSprite(e,t){return it(e,t)}static setup(e,t={}){let i=null;return V.string(e)?i=Array.from(document.querySelectorAll(e)):V.nodeList(e)?i=Array.from(e):V.array(e)&&(i=e.filter(V.element)),V.empty(i)?null:i.map(e=>new Gt(e,t))}}Gt.defaults=U(mt);var Zt=Gt;i(17642),i(58004),i(33853),i(45876),i(32475),i(15024),i(31698);const ei=new Set;let ti=null,ii="stop";function si(e){return e&&("AUDIO"===e.tagName||"VIDEO"===e.tagName)}function ni(e){if(si(e)){try{e.pause()}catch(t){}try{e.currentTime=0}catch(t){}try{e.removeAttribute("src")}catch(t){}try{e.load?.()}catch(t){}}}function ai(e=null){for(const t of ei)e&&t===e||ni(t);ti=e||null}let ri=!1;function oi(){ri||(ri=!0,document.addEventListener("visibilitychange",()=>{document.hidden&&ai(null)}),window.addEventListener("pagehide",()=>ai(null)))}function li(){return ii}function ci(e){["stop","sequence","loop"].includes(e)&&(ii=e)}var hi={name:"TransformMedia",props:{file:{type:Object,required:!0},src:{type:String,required:!0},isImage:{type:Boolean,default:!0},isVideo:{type:Boolean,default:!1},isAudio:{type:Boolean,default:!1},isActive:{type:Boolean,default:!1}},data(){return{pointers:new Map,scale:1,rotation:0,rotatePreview:0,tx:0,ty:0,naturalWidth:0,naturalHeight:0,startScale:1,startRotation:0,startTx:0,startTy:0,startCenter:null,startDist:0,startAngle:0,dragging:!1,dragStart:null,viewportRect:null,minScale:1,maxScale:4,gestureMode:null,edgeOverflow:0,edgeDir:0,player:null,audioCover:null,audioTitle:"",audioArtist:"",menuAdded:!1}},computed:{isActiveTransform(){return this.scale>1.001||this.pointers.size>=2||this.dragging},displayRotation(){return this.rotation+this.rotatePreview},rotateShrink(){const e=Math.min(1,Math.abs(this.rotatePreview)/90),t=Math.sin(Math.PI*e);return 1-.12*t},mediaStyle(){const e=this.scale*this.rotateShrink,t=this.pointers.size>0;return{transform:`translate3d(${this.tx}px, ${this.ty}px, 0) scale(${e}) rotate(${this.displayRotation}deg)`,transition:t?"none":"transform 0.25s ease",transformOrigin:"center center"}}},watch:{isActiveTransform(e){this.$emit(e?"lock":"unlock")},isActive(e){e?this.$nextTick(()=>this.initPlayer()):this.destroyPlayer()}},mounted(){this.isAudio&&this.initAudioInfo(),this.isActive&&this.$nextTick(()=>this.initPlayer())},beforeUnmount(){this.destroyPlayer(),this.audioCover&&(URL.revokeObjectURL(this.audioCover),this.audioCover=null)},methods:{initPlayer(){if(this.player)return;const e=this.$refs.videoEl||this.$refs.audioEl;if(!e)return;this.retryCount=0,this.maxRetries=3;const t=this.isAudio?["play","progress","current-time","mute","volume"]:["play","progress","current-time","mute","volume","fullscreen"];this.player=new Zt(e,{controls:t,autoplay:this.isVideo,resetOnEnd:!0}),e.addEventListener("error",()=>{this.retryCount{if(e&&this.src&&this.player){const t=this.src.split("?_retry=")[0],i=t+(t.includes("?")?"&":"?")+"_retry="+Date.now();e.src=i,e.load()}},500*this.retryCount))}),this.player.on("ready",()=>{this.tryAddCustomMenu()}),this.scheduleMenuRetry(),this.isAudio&&this.player.on("ended",this.onAudioEnded)},scheduleMenuRetry(){const e=t=>{t>=5||this.menuAdded||setTimeout(()=>{this.menuAdded||(this.tryAddCustomMenu(),e(t+1))},200*(t+1))};e(0)},tryAddCustomMenu(){if(this.menuAdded)return;if(!this.player?.elements?.controls)return;const e=this.player.elements.controls;e&&!e.querySelector(".plyr-custom-menu")&&(this.addCustomMenu(e),this.menuAdded=!0)},addCustomMenu(e){const t=li(),i=this.isAudio?`\n
\n \n \n \n ${this.$t("transformMedia.playMode")}\n \n \n \n
\n
\n
${this.$t("transformMedia.stopAfterPlay")}
\n
${this.$t("transformMedia.sequentialPlay")}
\n
${this.$t("transformMedia.loopSingle")}
\n
\n `:"",s=document.createElement("div");s.className="plyr-custom-menu",s.innerHTML=`\n \n
\n
\n \n \n \n ${this.$t("transformMedia.download")}\n
\n
\n \n \n \n \n ${this.$t("transformMedia.playbackSpeed")}\n \n \n \n
\n
\n
0.5x
\n
0.75x
\n
${this.$t("transformMedia.normalSpeed")}
\n
1.25x
\n
1.5x
\n
2x
\n
\n ${i}\n
\n `,e.appendChild(s),this.bindMenuEvents(s)},bindMenuEvents(e){const t=e.querySelector(".plyr-menu-btn"),i=e.querySelector(".plyr-menu-dropdown"),s=e.querySelector(".plyr-menu-speed"),n=e.querySelector(".plyr-speed-submenu"),a=e.querySelector('[data-action="download"]'),r=e.querySelector(".plyr-menu-playmode"),o=e.querySelector(".plyr-playmode-submenu");t.addEventListener("click",e=>{e.stopPropagation(),i.classList.toggle("show"),n.classList.remove("show"),o&&o.classList.remove("show")}),a.addEventListener("click",()=>{this.downloadMedia(),i.classList.remove("show")}),s.addEventListener("click",e=>{e.stopPropagation(),n.classList.toggle("show"),o&&o.classList.remove("show")}),e.querySelectorAll(".plyr-speed-option").forEach(t=>{t.addEventListener("click",()=>{const s=parseFloat(t.dataset.speed);this.player?.media&&(this.player.media.playbackRate=s),e.querySelectorAll(".plyr-speed-option").forEach(e=>e.classList.remove("active")),t.classList.add("active"),i.classList.remove("show"),n.classList.remove("show")})}),r&&o&&(r.addEventListener("click",e=>{e.stopPropagation(),o.classList.toggle("show"),n.classList.remove("show")}),e.querySelectorAll(".plyr-playmode-option").forEach(t=>{t.addEventListener("click",()=>{const s=t.dataset.mode;ci(s),e.querySelectorAll(".plyr-playmode-option").forEach(e=>e.classList.remove("active")),t.classList.add("active"),i.classList.remove("show"),o.classList.remove("show")})})),document.addEventListener("click",()=>{i.classList.remove("show"),n.classList.remove("show"),o&&o.classList.remove("show")})},downloadMedia(){const e=document.createElement("a");e.href=this.src,e.download=this.file?.name?.split("/").pop()||"download",e.click()},onAudioEnded(){const e=li();"loop"===e?this.player?.media&&(this.player.media.currentTime=0,this.player.play()):"sequence"===e&&this.$emit("audio-ended","next")},destroyPlayer(){const e=this.$refs.videoEl||this.$refs.audioEl;if(this.player){try{this.player.pause(),this.player.destroy()}catch(t){}this.player=null}if(e)try{e.pause(),e.currentTime=0,e.src="",e.load()}catch(t){}},stopAndCleanMedia(){this.destroyPlayer()},initAudioInfo(){const e=this.file?.name||this.src,t=e.split("/").pop().replace(/\.[^.]+$/,"");this.audioTitle=t,this.audioArtist="",this.audioCover=null,this.isActive&&this.tryReadMetadata()},async tryReadMetadata(){try{const e=await fetch(this.src),t=await e.blob(),i=await t.slice(0,131072).arrayBuffer(),s=new DataView(i);73===s.getUint8(0)&&68===s.getUint8(1)&&51===s.getUint8(2)&&this.parseID3v2(s,i)}catch(e){}},parseID3v2(e,t){const i=(127&e.getUint8(6))<<21|(127&e.getUint8(7))<<14|(127&e.getUint8(8))<<7|127&e.getUint8(9);let s=10;while(st.byteLength)break;const a=new Uint8Array(t,s+10,Math.min(n,t.byteLength-s-10));"TIT2"===i?this.audioTitle=this.decodeText(a)||this.audioTitle:"TPE1"===i?this.audioArtist=this.decodeText(a):"APIC"===i&&this.extractCover(a),s+=10+n}},decodeText(e){if(e.length<2)return"";const t=e[0],i=e.slice(1);try{if(0===t)return new TextDecoder("iso-8859-1").decode(i).replace(/\0/g,"");if(1===t)return new TextDecoder("utf-16").decode(i).replace(/\0/g,"");if(3===t)return new TextDecoder("utf-8").decode(i).replace(/\0/g,"")}catch(s){}return""},extractCover(e){try{let t=1;while(tt?t+this.rubberBand(e-t,i,.55):e<-t?-t-this.rubberBand(-t-e,i,.55):e},calcTwoPointer(){const e=Array.from(this.pointers.entries()).sort((e,t)=>e[0]-t[0]),t=e[0][1],i=e[1][1],s=i.x-t.x,n=i.y-t.y,a=Math.hypot(s,n),r=Math.atan2(n,s)*(180/Math.PI),o={x:(t.x+i.x)/2,y:(t.y+i.y)/2};return{dist:a,angle:r,center:o}},normalizeAngle(e){return e=(e%360+360)%360,e>180?e-360:e},onPointerDown(e){if(this.isImage){if(e.currentTarget.setPointerCapture?.(e.pointerId),this.viewportRect=this.getViewportRect(),this.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY}),2===this.pointers.size){const{dist:e,angle:t,center:i}=this.calcTwoPointer();return this.startDist=e,this.startAngle=t,this.startCenter=i,this.startScale=this.scale,this.startRotation=this.rotation,this.startTx=this.tx,this.startTy=this.ty,this.dragging=!1,this.gestureMode=null,void(this.rotatePreview=0)}this.scale>1.001&&(this.dragging=!0,this.dragStart={x:e.clientX,y:e.clientY},this.startTx=this.tx,this.startTy=this.ty)}},onPointerMove(e){if(this.isImage&&this.pointers.has(e.pointerId)){if(this.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY}),2===this.pointers.size){e.preventDefault();const{dist:t,angle:i,center:s}=this.calcTwoPointer(),n=t/(this.startDist||t),a=Math.abs(n-1),r=this.normalizeAngle(i-this.startAngle),o=Math.abs(r);if(!this.gestureMode)if(o>=8)this.gestureMode="rotate";else{if(!(a>=.08))return;this.gestureMode="pinch"}if("rotate"===this.gestureMode)return this.scale=this.startScale,void(this.rotatePreview=this.clamp(r,-90,90));if("pinch"===this.gestureMode&&(this.scale=this.clamp(this.startScale*n,this.minScale,this.maxScale),this.rotatePreview=0),this.startCenter&&this.viewportRect){const e=this.startCenter.x-this.viewportRect.left-this.viewportRect.width/2,t=this.startCenter.y-this.viewportRect.top-this.viewportRect.height/2,i=s.x-this.viewportRect.left-this.viewportRect.width/2,n=s.y-this.viewportRect.top-this.viewportRect.height/2;this.tx=this.startTx+(i-e),this.ty=this.startTy+(n-t)}return}if(this.dragging&&this.scale>1.001){e.preventDefault();const t=e.clientX-this.dragStart.x,i=e.clientY-this.dragStart.y,s=this.startTx+t,n=this.startTy+i,{maxX:a,maxY:r,vw:o,vh:l}=this.getPanBounds();let c=0,h=0;s>a?(c=s-a,h=-1):s<-a&&(c=-a-s,h=1),this.edgeOverflow=c,this.edgeDir=h,this.tx=this.applyBoundWithRubber(s,a,o),this.ty=this.applyBoundWithRubber(n,r,l)}}},onPointerUp(e){if(this.isImage&&(this.pointers.has(e.pointerId)&&this.pointers.delete(e.pointerId),this.pointers.size<2&&"rotate"===this.gestureMode&&(this.finishRotate(),this.gestureMode=null),this.pointers.size<2&&(this.startCenter=null,this.startDist=0,this.startAngle=0,this.gestureMode=null),0===this.pointers.size)){if(this.dragging=!1,this.edgeOverflow>60&&0!==this.edgeDir){const e=this.edgeDir;return this.reset(),void this.$emit("edge-swipe",e)}if(this.edgeOverflow=0,this.edgeDir=0,this.scale<=1.001)this.scale=1,this.tx=0,this.ty=0;else{const{maxX:e,maxY:t}=this.getPanBounds();this.tx=Math.max(-e,Math.min(e,this.tx)),this.ty=Math.max(-t,Math.min(t,this.ty))}}},finishRotate(){const e=this.rotatePreview;let t=0;Math.abs(e)>=30&&(t=e>0?90:-90);const i=((this.rotation+t)%360+360)%360;this.rotation=i,this.rotatePreview=0,this.updateFillScale()},updateFillScale(){const e=this.rotation%360,t=90===e||270===e;t?(this.scale=2,this.tx=0,this.ty=0):(this.scale=1,this.tx=0,this.ty=0)},onDblClick(){this.isImage&&(this.scale>1.001?(this.scale=1,this.tx=0,this.ty=0):this.scale=2)}}},di=i(71241);const ui=(0,di.A)(hi,[["render",b],["__scopeId","data-v-53b527ba"]]);var pi=ui,mi=i(91543);const gi={class:"public-browse"},fi={class:"header"},yi={class:"header-left"},bi={class:"logo",href:"https://github.com/MarSeventh/CloudFlare-ImgBed",target:"_blank",rel:"noopener"},vi={class:"header-center"},wi={class:"breadcrumb"},ki=["onClick"],Ti={class:"header-right"},Ci=["placeholder"],Ai={class:"file-count"},Si={key:0,class:"loading-container"},xi={key:1,class:"error-container"},Mi={class:"error-credit"},Ei={key:2,class:"gallery-container",ref:"galleryContainer"},Li={key:0,class:"folders-section"},Pi={class:"folders-grid"},Ii=["onClick"],$i={class:"folder-name"},Ni={class:"waterfall",ref:"waterfall"},Di=["onClick"],Fi=["src","alt","onLoad"],_i=["src","onLoadedmetadata"],Ri={key:2,class:"audio-placeholder"},Oi={class:"audio-name"},Bi={key:3,class:"file-placeholder"},Hi={class:"file-name"},Vi={class:"overlay"},ji={class:"overlay-actions"},qi=["onClick","title"],Ui=["onClick","title"],Xi={key:1,class:"floating-page-indicator"},zi={ref:"loadTrigger",class:"load-trigger"},Wi={key:0,class:"loading-more"},Ki={key:1,class:"no-more"},Yi={key:2,class:"credit-link",href:"https://github.com/axibayuit-a11y",target:"_blank",rel:"noopener"},Qi=["src"],Ji=["src"],Gi=["src"],Zi={class:"swipe-hint"},es={key:2,class:"other-file-preview"},ts={class:"file-name"},is=["title"],ss={class:"page-indicator"};function ns(e,t,i,r,o,l){const c=mi.A,h=pi;return(0,s.uX)(),(0,s.CE)("div",gi,[(0,s.Lk)("header",fi,[(0,s.Lk)("div",yi,[(0,s.Lk)("a",bi,(0,a.v_)(l.siteName),1)]),(0,s.Lk)("div",vi,[(0,s.Lk)("div",wi,[(0,s.Lk)("span",{class:"breadcrumb-item",onClick:t[0]||(t[0]=(...e)=>l.goToRoot&&l.goToRoot(...e))},(0,a.v_)(l.rootDirName),1),((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(l.pathParts,(e,i)=>((0,s.uX)(),(0,s.CE)(s.FK,{key:i},[t[32]||(t[32]=(0,s.Lk)("span",{class:"breadcrumb-sep"},"/",-1)),(0,s.Lk)("span",{class:"breadcrumb-item",onClick:e=>l.goToPath(i)},(0,a.v_)(e),9,ki)],64))),128))])]),(0,s.Lk)("div",Ti,[(0,s.Lk)("div",{class:(0,a.C4)(["search-box",{expanded:o.searchExpanded}])},[o.searchExpanded?((0,s.uX)(),(0,s.CE)(s.FK,{key:1},[(0,s.bo)((0,s.Lk)("input",{type:"text","onUpdate:modelValue":t[2]||(t[2]=e=>o.searchInput=e),onKeyup:t[3]||(t[3]=(0,n.jR)((...e)=>l.handleSearch&&l.handleSearch(...e),["enter"])),placeholder:e.$t("publicBrowse.searchPlaceholder"),class:"search-input",ref:"searchInputRef"},null,40,Ci),[[n.Jo,o.searchInput]]),(0,s.Lk)("span",{class:"search-icon",onClick:t[4]||(t[4]=(...e)=>l.handleSearch&&l.handleSearch(...e))},[...t[34]||(t[34]=[(0,s.Lk)("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:"16",height:"16"},[(0,s.Lk)("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"})],-1)])])],64)):((0,s.uX)(),(0,s.CE)("span",{key:0,class:"search-icon",onClick:t[1]||(t[1]=(...e)=>l.toggleSearch&&l.toggleSearch(...e))},[...t[33]||(t[33]=[(0,s.Lk)("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:"20",height:"20"},[(0,s.Lk)("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"})],-1)])]))],2),(0,s.bF)(c,{class:"theme-toggle-btn"}),(0,s.Lk)("span",Ai,(0,a.v_)(e.$t("publicBrowse.fileCount",{count:o.totalCount})),1)])]),o.loading&&0===o.files.length?((0,s.uX)(),(0,s.CE)("div",Si,[t[35]||(t[35]=(0,s.Lk)("div",{class:"loading-spinner"},null,-1)),(0,s.Lk)("p",null,(0,a.v_)(e.$t("publicBrowse.loading")),1)])):o.error?((0,s.uX)(),(0,s.CE)("div",xi,[(0,s.Lk)("p",null,(0,a.v_)(o.error),1),o.canRetry?((0,s.uX)(),(0,s.CE)("button",{key:0,onClick:t[5]||(t[5]=(...e)=>l.loadFiles&&l.loadFiles(...e)),class:"retry-btn"},(0,a.v_)(e.$t("publicBrowse.retry")),1)):(0,s.Q3)("",!0),(0,s.Lk)("div",Mi,[(0,s.Lk)("p",null,(0,a.v_)(e.$t("publicBrowse.creditText")),1),t[36]||(t[36]=(0,s.Fv)('
',1))])])):((0,s.uX)(),(0,s.CE)("div",Ei,[l.folders.length>0?((0,s.uX)(),(0,s.CE)("div",Li,[(0,s.Lk)("div",Pi,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(l.folders,e=>((0,s.uX)(),(0,s.CE)("div",{key:e.name,class:"folder-card",onClick:t=>l.enterFolder(e.name)},[t[37]||(t[37]=(0,s.Lk)("div",{class:"folder-icon"},[(0,s.Lk)("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[(0,s.Lk)("path",{d:"M10 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"})])],-1)),(0,s.Lk)("span",$i,(0,a.v_)(l.getFolderName(e.name)),1)],8,Ii))),128))])])):(0,s.Q3)("",!0),(0,s.Lk)("div",Ni,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(l.columns,(i,r)=>((0,s.uX)(),(0,s.CE)("div",{key:r,class:"waterfall-column"},[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(i,i=>((0,s.uX)(),(0,s.CE)("div",{key:i.name,class:"waterfall-item",onClick:e=>l.openPreview(i)},[(0,s.Lk)("div",{class:(0,a.C4)(["image-wrapper",{loaded:i.loaded}])},[l.isImage(i)?((0,s.uX)(),(0,s.CE)("img",{key:0,src:l.getFileUrl(i.name),alt:i.name,loading:"lazy",onLoad:e=>l.onImageLoad(e,i),onError:t[6]||(t[6]=(...e)=>l.handleImageError&&l.handleImageError(...e))},null,40,Fi)):l.isVideo(i)?((0,s.uX)(),(0,s.CE)("video",{key:1,src:l.getFileUrl(i.name),muted:"",loop:"",preload:"metadata",onLoadedmetadata:e=>l.onVideoLoad(e,i),onPointerenter:t[7]||(t[7]=e=>"mouse"===e.pointerType&&e.target.play()),onPointerleave:t[8]||(t[8]=e=>"mouse"===e.pointerType&&e.target.pause())},null,40,_i)):l.isAudio(i)?((0,s.uX)(),(0,s.CE)("div",Ri,[t[38]||(t[38]=(0,s.Lk)("svg",{class:"audio-icon",viewBox:"0 0 24 24",fill:"currentColor"},[(0,s.Lk)("path",{d:"M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z"})],-1)),(0,s.Lk)("span",Oi,(0,a.v_)(l.getFileName(i.name)),1)])):((0,s.uX)(),(0,s.CE)("div",Bi,[t[39]||(t[39]=(0,s.Lk)("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[(0,s.Lk)("path",{d:"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm-1 7V3.5L18.5 9H13z"})],-1)),(0,s.Lk)("span",Hi,(0,a.v_)(l.getFileName(i.name)),1)])),(0,s.Lk)("div",Vi,[(0,s.Lk)("div",ji,[(0,s.Lk)("button",{class:"action-btn",onClick:(0,n.D$)(e=>l.copyLink(i.name),["stop"]),title:e.$t("publicBrowse.copyLink")},[...t[40]||(t[40]=[(0,s.Lk)("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[(0,s.Lk)("path",{d:"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"})],-1)])],8,qi),(0,s.Lk)("button",{class:"action-btn",onClick:(0,n.D$)(e=>l.downloadFile(i.name),["stop"]),title:e.$t("publicBrowse.downloadBtn")},[...t[41]||(t[41]=[(0,s.Lk)("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[(0,s.Lk)("path",{d:"M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"})],-1)])],8,Ui)])])],2)],8,Di))),128))]))),128))],512),l.mediaFiles.length>o.pageSize?((0,s.uX)(),(0,s.CE)("div",Xi,[(0,s.Lk)("span",null,(0,a.v_)(l.displayCurrentPage)+" / "+(0,a.v_)(l.totalPages),1)])):(0,s.Q3)("",!0),(0,s.Lk)("div",zi,[o.loading&&o.files.length>0?((0,s.uX)(),(0,s.CE)("div",Wi,[t[42]||(t[42]=(0,s.Lk)("div",{class:"loading-spinner-small"},null,-1)),(0,s.Lk)("span",null,(0,a.v_)(e.$t("publicBrowse.loadingMore")),1)])):!o.hasMore&&l.mediaFiles.length>0?((0,s.uX)(),(0,s.CE)("div",Ki,(0,a.v_)(e.$t("publicBrowse.allLoaded")),1)):(0,s.Q3)("",!0),!o.hasMore&&l.mediaFiles.length>0?((0,s.uX)(),(0,s.CE)("a",Yi,(0,a.v_)(e.$t("publicBrowse.creditLink")),1)):(0,s.Q3)("",!0)],512)],512)),o.previewVisible?((0,s.uX)(),(0,s.CE)("div",{key:3,class:"preview-modal",onClick:t[31]||(t[31]=(0,n.D$)((...e)=>l.closePreview&&l.closePreview(...e),["self"]))},[(0,s.Lk)("button",{class:"preview-close",onClick:t[9]||(t[9]=(0,n.D$)((...e)=>l.closePreview&&l.closePreview(...e),["stop"]))},[...t[43]||(t[43]=[(0,s.Lk)("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[(0,s.Lk)("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})],-1)])]),o.isMobile?(0,s.Q3)("",!0):((0,s.uX)(),(0,s.CE)("div",{key:0,class:"preview-content",onClick:t[15]||(t[15]=(0,n.D$)(()=>{},["stop"])),onWheel:t[16]||(t[16]=(0,n.D$)((...e)=>l.handleWheel&&l.handleWheel(...e),["prevent"]))},[l.currentPreviewFile&&l.isImage(l.currentPreviewFile)?((0,s.uX)(),(0,s.CE)("img",{key:"img-"+l.currentPreviewFile.name,src:l.getFileUrl(l.currentPreviewFile.name),class:"preview-image",style:(0,a.Tr)(l.desktopImageStyle),draggable:"false",onMousedown:t[10]||(t[10]=(...e)=>l.onImageMouseDown&&l.onImageMouseDown(...e)),onMousemove:t[11]||(t[11]=(...e)=>l.onImageMouseMove&&l.onImageMouseMove(...e)),onMouseup:t[12]||(t[12]=(...e)=>l.onImageMouseUp&&l.onImageMouseUp(...e)),onMouseleave:t[13]||(t[13]=(...e)=>l.onImageMouseUp&&l.onImageMouseUp(...e))},null,44,Qi)):l.currentPreviewFile&&l.isVideo(l.currentPreviewFile)?((0,s.uX)(),(0,s.CE)("video",{ref:"desktopVideo",key:"video-"+l.currentPreviewFile.name,src:l.getFileUrl(l.currentPreviewFile.name),controls:"",class:"preview-video",style:(0,a.Tr)(l.desktopImageStyle),onPlay:t[14]||(t[14]=(...e)=>l.onDesktopVideoPlay&&l.onDesktopVideoPlay(...e))},null,44,Ji)):l.currentPreviewFile&&l.isAudio(l.currentPreviewFile)?((0,s.uX)(),(0,s.Wv)(h,{ref:"desktopAudio",key:"audio-"+l.currentPreviewFile.name,file:l.currentPreviewFile,src:l.getFileUrl(l.currentPreviewFile.name),"is-image":!1,"is-video":!1,"is-audio":!0,"is-active":!0,onAudioEnded:l.onAudioEnded},null,8,["file","src","onAudioEnded"])):(0,s.Q3)("",!0)],32)),o.isMobile?((0,s.uX)(),(0,s.CE)("div",{key:1,class:"preview-content preview-content-mobile",onClick:t[27]||(t[27]=(0,n.D$)(()=>{},["stop"]))},[l.currentPreviewFile&&l.isVideo(l.currentPreviewFile)?((0,s.uX)(),(0,s.CE)("video",{ref:"mobileVideo",key:"m-video-"+l.currentPreviewFile.name,src:l.getFileUrl(l.currentPreviewFile.name),controls:"",playsinline:"","webkit-playsinline":"","x5-video-player-type":"h5","x5-video-player-fullscreen":"true",class:"mobile-video-native",onPlay:t[17]||(t[17]=(...e)=>l.onMobileMediaPlay&&l.onMobileMediaPlay(...e))},null,40,Gi)):l.currentPreviewFile&&l.isAudio(l.currentPreviewFile)?((0,s.uX)(),(0,s.CE)("div",{key:1,class:"mobile-audio-wrap",onTouchstart:t[18]||(t[18]=(...e)=>l.onAudioSwipeStart&&l.onAudioSwipeStart(...e)),onTouchmove:t[19]||(t[19]=(...e)=>l.onAudioSwipeMove&&l.onAudioSwipeMove(...e)),onTouchend:t[20]||(t[20]=(...e)=>l.onAudioSwipeEnd&&l.onAudioSwipeEnd(...e))},[((0,s.uX)(),(0,s.Wv)(h,{ref:"mobileAudio",key:"m-audio-"+l.currentPreviewFile.name,file:l.currentPreviewFile,src:l.getFileUrl(l.currentPreviewFile.name),"is-image":!1,"is-video":!1,"is-audio":!0,"is-active":!0,onAudioEnded:l.onAudioEnded},null,8,["file","src","onAudioEnded"])),(0,s.Lk)("div",Zi,(0,a.v_)(e.$t("publicBrowse.swipeHint")),1)],32)):l.currentPreviewFile&&!l.isImage(l.currentPreviewFile)?((0,s.uX)(),(0,s.CE)("div",es,[t[44]||(t[44]=(0,s.Lk)("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[(0,s.Lk)("path",{d:"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm-1 7V3.5L18.5 9H13z"})],-1)),(0,s.Lk)("span",ts,(0,a.v_)(l.getFileName(l.currentPreviewFile.name)),1)])):((0,s.uX)(),(0,s.CE)("div",{key:3,class:"swipe-viewport",ref:"mobileViewport",onTouchstart:t[24]||(t[24]=(...e)=>l.onSwipeStart&&l.onSwipeStart(...e)),onTouchmove:t[25]||(t[25]=(...e)=>l.onSwipeMove&&l.onSwipeMove(...e)),onTouchend:t[26]||(t[26]=(...e)=>l.onSwipeEnd&&l.onSwipeEnd(...e))},[(0,s.Lk)("div",{class:"swipe-track",style:(0,a.Tr)(l.swipeTrackStyle),onTransitionend:t[23]||(t[23]=(...e)=>l.onSwipeTransitionEnd&&l.onSwipeTransitionEnd(...e))},[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(l.swipeWindow,(e,i)=>((0,s.uX)(),(0,s.CE)("div",{class:"swipe-slide",key:l.getSlideKey(e,i)},[e?((0,s.uX)(),(0,s.Wv)(h,{key:0,file:e,src:l.getFileUrl(e.name),"is-image":l.isImage(e),"is-video":!1,"is-audio":!1,"is-active":1===i,onLock:t[21]||(t[21]=e=>o.gestureLocked=!0),onUnlock:t[22]||(t[22]=e=>o.gestureLocked=!1),onEdgeSwipe:l.onEdgeSwipe},null,8,["file","src","is-image","is-active","onEdgeSwipe"])):(0,s.Q3)("",!0)]))),128))],36)],544))])):(0,s.Q3)("",!0),!o.isMobile&&o.previewIndex>0?((0,s.uX)(),(0,s.CE)("button",{key:2,class:"preview-prev",onClick:t[28]||(t[28]=(0,n.D$)((...e)=>l.prevImage&&l.prevImage(...e),["stop"]))},[...t[45]||(t[45]=[(0,s.Lk)("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[(0,s.Lk)("path",{d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"})],-1)])])):(0,s.Q3)("",!0),!o.isMobile&&o.previewIndexl.nextImage&&l.nextImage(...e),["stop"]))},[...t[46]||(t[46]=[(0,s.Lk)("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[(0,s.Lk)("path",{d:"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"})],-1)])])):(0,s.Q3)("",!0),o.isMobile?(0,s.Q3)("",!0):((0,s.uX)(),(0,s.CE)("button",{key:4,class:"rotate-btn",onClick:t[30]||(t[30]=(0,n.D$)((...e)=>l.rotateImage&&l.rotateImage(...e),["stop"])),title:e.$t("publicBrowse.rotate90")},[...t[47]||(t[47]=[(0,s.Lk)("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[(0,s.Lk)("path",{d:"M16.89 8.53l1.41-1.42C19.2 8.27 19.76 9.61 19.93 11h-2.02c-.14-.87-.49-1.72-1.02-2.47zM17.91 13h2.02c-.17 1.39-.72 2.73-1.62 3.89l-1.41-1.42c.52-.75.87-1.59 1.01-2.47zm-1.01 5.32c-1.16.9-2.51 1.44-3.9 1.61V17.9c.87-.15 1.71-.49 2.46-1.03l1.44 1.45zM11 4.07V1l4.55 4.55L11 10V6.09c-2.84.48-5 2.94-5 5.91s2.16 5.43 5 5.91v2.02c-3.95-.49-7-3.85-7-7.93s3.05-7.44 7-7.93z"})],-1)])],8,is)),(0,s.Lk)("div",ss,(0,a.v_)(o.previewIndex+1)+" / "+(0,a.v_)(l.mediaFiles.length),1)])):(0,s.Q3)("",!0)])}var as=i(94373),rs=i(60782),os={name:"PublicBrowse",components:{TransformMedia:pi,ToggleDark:mi.A},data(){return{files:[],allowedDirs:[],rootDir:"",currentPath:"",totalCount:0,loading:!1,error:null,canRetry:!0,hasMore:!0,previewVisible:!1,previewIndex:0,observer:null,pageSize:24,searchInput:"",searchKeyword:"",currentStartIndex:0,searchExpanded:!1,filterType:"",lastScrollY:0,scrollPage:0,columnCount:4,columnHeights:[0,0,0,0],imageRotation:0,imageScale:1,imageTx:0,imageTy:0,imageDragging:!1,imageDragStart:null,imageStartTx:0,imageStartTy:0,swipeX:0,swipeStartX:0,swipeStartY:0,swipeStartT:0,swipeActive:!1,swipeAnimating:!1,swipeDir:0,viewportW:0,gestureLocked:!1,audioSwipeStartX:0,audioSwipeStartT:0,audioSwipeActive:!1,isMobile:!1}},computed:{...(0,rs.L8)(["userConfig"]),siteName(){return this.userConfig?.siteTitle||"Sanyue ImgHub"},rootDirName(){return this.rootDir.split("/").filter(Boolean).pop()||this.$t("publicBrowse.rootDirectory")},pathParts(){if(!this.currentPath||!this.rootDir)return[];const e=this.currentPath.replace(this.rootDir,"").replace(/^\/+/,"");return e.split("/").filter(Boolean)},folders(){return this.files.filter(e=>e.isFolder)},mediaFiles(){return this.files.filter(e=>!e.isFolder)},totalPages(){return Math.ceil(this.totalCount/this.pageSize)},displayCurrentPage(){const e=Math.floor(this.currentStartIndex/this.pageSize)+1,t=Math.ceil(this.mediaFiles.length/this.pageSize);return Math.min(e+Math.floor(this.scrollPage*t),this.totalPages)},columns(){const e=Array.from({length:this.columnCount},()=>[]);for(const t of this.mediaFiles){const i=t.columnIndex??0;i0?this.mediaFiles[this.previewIndex-1]:null},nextPreviewFile(){return this.previewIndex1?this.imageDragging?"grabbing":"grab":"default"}},swipeWindow(){return[this.prevPreviewFile,this.currentPreviewFile,this.nextPreviewFile]},swipeTrackStyle(){const e=-this.viewportW,t=e+this.swipeX;return{transform:`translate3d(${t}px, 0, 0)`,transition:this.swipeAnimating?"transform 0.28s ease":"none"}}},watch:{"$route.params.dir":{handler(){this.initFromRoute()}}},mounted(){oi(),this.checkMobile(),this.initFromRoute(),this.setupIntersectionObserver(),this.updateColumnCount(),window.addEventListener("resize",this.updateColumnCount),window.addEventListener("resize",this.checkMobile),window.addEventListener("scroll",this.handleScroll)},beforeUnmount(){this.observer&&this.observer.disconnect(),window.removeEventListener("resize",this.updateColumnCount),window.removeEventListener("resize",this.checkMobile),window.removeEventListener("scroll",this.handleScroll)},methods:{handleSearch(){const e=this.searchInput.trim();if(!e)return this.searchKeyword="",this.filterType="",this.currentStartIndex=0,void this.resetAndLoad();const t=e.match(/^#(\d+)$/);if(t){const e=parseInt(t[1],10),i=Math.ceil(this.totalCount/this.pageSize),s=Math.min(Math.max(1,e),i||1);return this.currentStartIndex=(s-1)*this.pageSize,this.searchKeyword="",this.filterType="",this.searchInput="",void this.resetAndLoad()}const i={"图片":"image","图":"image",image:"image",img:"image","照片":"image","视频":"video",video:"video","影片":"video","电影":"video","音乐":"audio","音频":"audio",audio:"audio",music:"audio","歌曲":"audio"},s=e.toLowerCase();if(i[s])return this.filterType=i[s],this.searchKeyword="",this.currentStartIndex=0,void this.resetAndLoad();this.filterType="",this.searchKeyword=e,this.currentStartIndex=0,this.resetAndLoad()},resetAndLoad(){this.files=[],this.hasMore=!0,this.columnHeights=new Array(this.columnCount).fill(0),this.loadFiles().then(()=>{this.observeLoadTrigger()})},toggleSearch(){this.searchExpanded=!this.searchExpanded,this.searchExpanded&&this.$nextTick(()=>{this.$refs.searchInputRef?.focus()})},handleScroll(){const e=window.scrollY;this.searchExpanded&&e>this.lastScrollY+20&&(this.searchExpanded=!1),this.lastScrollY=e;const t=this.$refs.galleryContainer;if(t&&this.mediaFiles.length>0){t.getBoundingClientRect();const i=t.offsetTop,s=t.scrollHeight-window.innerHeight;if(s>0){const t=Math.max(0,e-i);this.scrollPage=Math.min(1,t/s)}else this.scrollPage=0}},checkMobile(){this.isMobile=window.innerWidth<=600},getSlideKey(e,t){return e?1===t?`${e.name}-${this.previewIndex}`:e.name:`empty-${t}`},updateColumnCount(){const e=window.innerWidth;let t;t=e<600?2:e<900?3:4,t!==this.columnCount&&(this.columnCount=t,this.columnHeights=new Array(this.columnCount).fill(0),this.mediaFiles.forEach(e=>{e.columnIndex=void 0,this.assignToColumn(e)}))},getShortestColumn(){let e=0,t=this.columnHeights[0];for(let i=1;i{const t=e[0];t.isIntersecting&&this.hasMore&&!this.loading&&this.loadMore()},{rootMargin:"200px"})},observeLoadTrigger(){this.$nextTick(()=>{this.$refs.loadTrigger&&this.observer&&this.observer.observe(this.$refs.loadTrigger)})},async initFromRoute(){const e=this.$route.params.dir||"",t=Array.isArray(e)?e.join("/"):e,i=t.split("/").filter(Boolean);this.rootDir=i[0]||"",this.currentPath=t,this.files=[],this.hasMore=!0,this.columnHeights=new Array(this.columnCount).fill(0),this.searchInput="",this.searchKeyword="",this.filterType="",this.currentStartIndex=0,await this.loadFiles(),this.observeLoadTrigger()},async loadFiles(){this.loading=!0,this.error=null,this.canRetry=!0;try{let e=`/api/public/list?dir=${encodeURIComponent(this.currentPath)}&start=${this.currentStartIndex}&count=${this.pageSize}`;this.searchKeyword&&(e+=`&search=${encodeURIComponent(this.searchKeyword)}`),this.filterType&&(e+=`&type=${this.filterType}`);const t=await as.A.get(e);t.data.allowedDirs&&(this.allowedDirs=t.data.allowedDirs);const i=(t.data.directories||[]).map(e=>({name:e,isFolder:!0})),s=(t.data.files||[]).map(e=>({name:e.name,isFolder:!1,metadata:e.metadata,columnIndex:void 0}));s.forEach(e=>this.assignToColumn(e)),this.files=[...i,...s],this.totalCount=t.data.totalCount||this.files.length,this.hasMore=this.currentStartIndex+this.mediaFiles.length({name:e.name,isFolder:!1,metadata:e.metadata,columnIndex:void 0}));s.forEach(e=>this.assignToColumn(e)),this.files.push(...s),this.hasMore=this.currentStartIndex+this.mediaFiles.length{t.src=e+"?_retry="+Date.now()},500*(i+1))}else t.style.display="none"},copyLink(e){const t=this.getFileUrl(e);navigator.clipboard?.writeText(t).then(()=>{this.showToast(this.$t("publicBrowse.copied"))}).catch(()=>{const e=document.createElement("input");e.value=t,document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e),this.showToast(this.$t("publicBrowse.copied"))})},showToast(e){const t=document.querySelector(".copy-toast");t&&t.remove();const i=document.createElement("div");i.className="copy-toast",i.textContent=e,document.body.appendChild(i),setTimeout(()=>i.classList.add("show"),10),setTimeout(()=>{i.classList.remove("show"),setTimeout(()=>i.remove(),300)},1500)},downloadFile(e){const t=document.createElement("a");t.href=this.getFileUrl(e),t.download=e.split("/").pop(),t.click()},openPreview(e){if(e.isFolder)return;ai(null);const t=this.mediaFiles.findIndex(t=>t.name===e.name);t>=0&&(this.previewIndex=t,this.previewVisible=!0,this.imageRotation=0,this.imageScale=1,this.imageTx=0,this.imageTy=0,this.gestureLocked=!1,document.body.style.overflow="hidden",this.$nextTick(()=>{this.viewportW=this.$refs.mobileViewport?.getBoundingClientRect().width||window.innerWidth}))},closePreview(){ai(null),this.previewVisible=!1,this.imageRotation=0,this.imageScale=1,this.imageTx=0,this.imageTy=0,this.gestureLocked=!1,document.body.style.overflow=""},prevImage(){ai(null),this.previewIndex>0&&(this.previewIndex--,this.imageRotation=0,this.imageScale=1,this.imageTx=0,this.imageTy=0)},nextImage(){ai(null),this.previewIndex0?-.1:.1;let i=this.imageScale+t;i=Math.max(.5,Math.min(4,i)),this.imageScale=i,i<=1&&(this.imageTx=0,this.imageTy=0)},onImageMouseDown(e){this.imageScale<=1||(e.preventDefault(),this.imageDragging=!0,this.imageDragStart={x:e.clientX,y:e.clientY},this.imageStartTx=this.imageTx,this.imageStartTy=this.imageTy)},onImageMouseMove(e){if(!this.imageDragging)return;const t=e.clientX-this.imageDragStart.x,i=e.clientY-this.imageDragStart.y;this.imageTx=this.imageStartTx+t,this.imageTy=this.imageStartTy+i},onImageMouseUp(){this.imageDragging=!1},onSwipeStart(e){if(this.gestureLocked)return;if(this.swipeAnimating)return;const t=e.touches[0];this.swipeStartX=t.clientX,this.swipeStartY=t.clientY,this.swipeStartT=performance.now(),this.swipeX=0,this.swipeActive=!1,this.viewportW=this.$refs.mobileViewport?.getBoundingClientRect().width||window.innerWidth},onSwipeMove(e){if(this.gestureLocked)return;if(this.swipeAnimating)return;const t=e.touches[0],i=t.clientX-this.swipeStartX,s=t.clientY-this.swipeStartY;if(!this.swipeActive){if(Math.abs(i)<8)return;if(Math.abs(i)<=Math.abs(s))return;this.swipeActive=!0}e.preventDefault();let n=i;0===this.previewIndex&&n>0?n=this.rubberBand(n,this.viewportW,.55):this.previewIndex===this.mediaFiles.length-1&&n<0&&(n=-this.rubberBand(-n,this.viewportW,.55)),this.swipeX=n},onSwipeEnd(){if(this.gestureLocked)return;if(this.swipeAnimating)return;if(!this.swipeActive)return void(this.swipeX=0);const e=Math.max(1,performance.now()-this.swipeStartT),t=this.swipeX/e,i=.2*this.viewportW;let s=0;(this.swipeX<=-i||t<=-.8)&&(s=1),(this.swipeX>=i||t>=.8)&&(s=-1),(-1===s&&0===this.previewIndex||1===s&&this.previewIndex===this.mediaFiles.length-1)&&(s=0),this.swipeDir=s,this.swipeAnimating=!0,this.swipeX=1===s?-this.viewportW:-1===s?+this.viewportW:0},onSwipeTransitionEnd(){this.swipeAnimating&&(1===this.swipeDir&&this.previewIndex++,-1===this.swipeDir&&this.previewIndex--,this.swipeAnimating=!1,this.swipeDir=0,this.swipeX=0)},rubberBand(e,t,i=.55){return e*t*i/(t+i*e)},onEdgeSwipe(e){-1===e&&0===this.previewIndex||1===e&&this.previewIndex===this.mediaFiles.length-1||(this.swipeDir=e,this.swipeAnimating=!0,1===e?this.swipeX=-this.viewportW:-1===e&&(this.swipeX=+this.viewportW))},onAudioSwipeStart(e){const t=e.touches[0];this.audioSwipeStartX=t.clientX,this.audioSwipeStartT=performance.now(),this.audioSwipeActive=!1},onAudioSwipeMove(e){if(!this.audioSwipeStartX)return;const t=e.touches[0],i=t.clientX-this.audioSwipeStartX;Math.abs(i)>30&&(this.audioSwipeActive=!0)},onAudioSwipeEnd(e){if(!this.audioSwipeActive)return void(this.audioSwipeStartX=0);const t=e.changedTouches[0],i=t.clientX-this.audioSwipeStartX,s=Math.max(1,performance.now()-this.audioSwipeStartT),n=i/s,a=80;i>a||n>.5?this.prevImage():(i<-a||n<-.5)&&this.nextImage(),this.audioSwipeStartX=0,this.audioSwipeActive=!1},onDesktopVideoPlay(e){ai(e.target)},onMobileMediaPlay(e){ai(e.target)},onAudioEnded(e){"next"===e&&this.previewIndex{setTimeout(()=>{const e=this.isMobile?this.$refs.mobileAudio:this.$refs.desktopAudio;e?.player&&e.player.play()},100)}))}}};const ls=(0,di.A)(os,[["render",ns],["__scopeId","data-v-58d060c5"]]);var cs=ls},51583:function(e,t,i){var s,n,a;i(44114),function(i,r){n=[],s=r,a="function"===typeof s?s.apply(t,n):s,void 0===a||(e.exports=a)}(0,function(){var e=function(){},t={},i={},s={};function n(e,t){e=e.push?e:[e];var n,a,r,o,l=[],c=e.length,h=c;n=function(e,i){i.length&&l.push(e),h--,h||t(l)};while(c--)a=e[c],r=i[a],r?n(a,r):(o=s[a]=s[a]||[],o.push(n))}function a(e,t){if(e){var n=s[e];if(i[e]=t,n)while(n.length)n[0](e,t),n.splice(0,1)}}function r(t,i){t.call&&(t={success:t}),i.length?(t.error||e)(i):(t.success||e)(t)}function o(t,i,s,n){var a,r,l,c=document,h=s.async,d=(s.numRetries||0)+1,u=s.before||e,p=t.replace(/[\?|#].*$/,""),m=t.replace(/^(css|img|module|nomodule)!/,"");if(n=n||0,/(^css!|\.css$)/.test(p))l=c.createElement("link"),l.rel="stylesheet",l.href=m,a="hideFocus"in l,a&&l.relList&&(a=0,l.rel="preload",l.as="style");else if(/(^img!|\.(png|gif|jpg|svg|webp)$)/.test(p))l=c.createElement("img"),l.src=m;else if(l=c.createElement("script"),l.src=m,l.async=void 0===h||h,r="noModule"in l,/^module!/.test(p)){if(!r)return i(t,"l");l.type="module"}else if(/^nomodule!/.test(p)&&r)return i(t,"l");l.onload=l.onerror=l.onbeforeload=function(e){var r=e.type[0];if(a)try{l.sheet.cssText.length||(r="e")}catch(c){18!=c.code&&(r="e")}if("e"==r){if(n+=1,nu.handleToggleClick&&u.handleToggleClick(...e))},[(0,s.bF)(n.eB,{name:"icon-fade",mode:"out-in"},{default:(0,s.k6)(()=>[d.isAuto?((0,s.uX)(),(0,s.Wv)(p,{key:"auto-mode",icon:"circle-half-stroke",class:"auto-icon",style:{"font-size":"1.5em",color:"var(--theme-toggle-color)"}})):((0,s.uX)(),(0,s.CE)("svg",{key:"sun-moon",class:(0,a.C4)(["theme_toggle_svg",{dark:d.isDark}]),width:"1.5em",height:"1.5em",viewBox:"0 0 24 24",fill:"none","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",stroke:"currentColor"},[(0,s.Lk)("mask",r,[t[1]||(t[1]=(0,s.Lk)("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:"white"},null,-1)),(0,s.Lk)("circle",{class:"theme_toggle_circle1",fill:"black",cx:d.isDark?"50%":"100%",cy:d.isDark?"23%":"0%",r:d.isDark?"9":"5"},null,8,o)]),(0,s.Lk)("circle",{class:"theme_toggle_circle2",cx:"12",cy:"12",r:d.isDark?"9":"5",mask:"url(#themeMask)"},null,8,l),(0,s.Lk)("g",{class:"theme_toggle_g",stroke:"currentColor",opacity:d.isDark?0:1},[...t[2]||(t[2]=[(0,s.Lk)("line",{x1:"12",y1:"1",x2:"12",y2:"3"},null,-1),(0,s.Lk)("line",{x1:"12",y1:"21",x2:"12",y2:"23"},null,-1),(0,s.Lk)("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"},null,-1),(0,s.Lk)("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"},null,-1),(0,s.Lk)("line",{x1:"1",y1:"12",x2:"3",y2:"12"},null,-1),(0,s.Lk)("line",{x1:"21",y1:"12",x2:"23",y2:"12"},null,-1),(0,s.Lk)("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"},null,-1),(0,s.Lk)("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"},null,-1)])],8,c)],2))]),_:1})])}var d={name:"ToggleDark",data(){return{isDark:this.$store.getters.useDarkMode,isAuto:!this.$store.getters.cusDarkMode}},methods:{handleToggleClick(){this.isAuto?(this.isDark=!1,this.isAuto=!1,this.$store.commit("setCusDarkMode",!0),this.$store.commit("setUseDarkMode",!1)):this.isDark?(this.isAuto=!0,this.$store.commit("setCusDarkMode",!1)):(this.isDark=!0,this.$store.commit("setCusDarkMode",!0),this.$store.commit("setUseDarkMode",!0))}}},u=i(71241);const p=(0,u.A)(d,[["render",h],["__scopeId","data-v-66e6a1f0"]]);var m=p}}]); -//# sourceMappingURL=412.2e84fff1.js.map \ No newline at end of file +//# sourceMappingURL=412.2eefa4a8.js.map \ No newline at end of file diff --git a/frontend-dist/js/412.2e84fff1.js.gz b/frontend-dist/js/412.2eefa4a8.js.gz similarity index 99% rename from frontend-dist/js/412.2e84fff1.js.gz rename to frontend-dist/js/412.2eefa4a8.js.gz index ab6485bf741ac166c5c19785ad28a20dbb04beff..d9d488518344688ce91c66e6d945ba1af1bc70d0 100644 GIT binary patch delta 31 ncmeDG%GCFjX+z~M(J65*Z(khvYsxPA>^}#?#Dz{ZwM+~E|2qzO delta 32 ocmeDC%GCdrX+z~Mu`dg13kx6a-v4aDp+EAB9p;;jYigMo048M+R{#J2 diff --git a/frontend-dist/js/412.2e84fff1.js.map b/frontend-dist/js/412.2eefa4a8.js.map similarity index 99% rename from frontend-dist/js/412.2e84fff1.js.map rename to frontend-dist/js/412.2eefa4a8.js.map index 7ea9e27b..a4c6054d 100644 --- a/frontend-dist/js/412.2e84fff1.js.map +++ b/frontend-dist/js/412.2eefa4a8.js.map @@ -1 +1 @@ -{"version":3,"file":"js/412.2e84fff1.js","mappings":"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","sources":["webpack://sanyue_imghub/src/js/rangetouch.js","webpack://sanyue_imghub/src/js/config.js","webpack://sanyue_imghub/src/js/utils/css.js","webpack://sanyue_imghub/src/js/utils/is.js","webpack://sanyue_imghub/src/js/utils/numbers.js","webpack://sanyue_imghub/src/js/utils/events.js","webpack://sanyue_imghub/./src/components/browse/TransformMedia.vue?4d8d","webpack://sanyue_imghub/./node_modules/plyr/src/js/utils/is.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/utils/animation.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/utils/objects.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/utils/elements.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/support.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/utils/events.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/utils/promise.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/utils/arrays.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/utils/style.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/html5.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/utils/browser.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/utils/strings.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/utils/i18n.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/storage.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/utils/fetch.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/utils/load-sprite.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/utils/time.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/controls.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/utils/urls.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/captions.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/config/defaults.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/config/states.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/config/types.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/console.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/fullscreen.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/utils/load-image.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/ui.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/listeners.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/utils/load-script.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/plugins/vimeo.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/plugins/youtube.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/media.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/plugins/ads.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/utils/numbers.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/plugins/preview-thumbnails.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/source.js","webpack://sanyue_imghub/./node_modules/plyr/src/js/plyr.js","webpack://sanyue_imghub/./src/utils/mediaManager.js","webpack://sanyue_imghub/./src/components/browse/TransformMedia.vue","webpack://sanyue_imghub/./src/components/browse/TransformMedia.vue?1938","webpack://sanyue_imghub/./src/views/PublicBrowse.vue?9973","webpack://sanyue_imghub/./src/views/PublicBrowse.vue","webpack://sanyue_imghub/./src/views/PublicBrowse.vue?bab5","webpack://sanyue_imghub/./node_modules/loadjs/dist/loadjs.umd.js","webpack://sanyue_imghub/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://sanyue_imghub/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://sanyue_imghub/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://sanyue_imghub/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://sanyue_imghub/./src/components/ToggleDark.vue?0f43","webpack://sanyue_imghub/./src/components/ToggleDark.vue","webpack://sanyue_imghub/./src/components/ToggleDark.vue?0bce"],"sourcesContent":["// ==========================================================================\n// rangetouch.js v2.0.0\n// Making work on touch devices\n// https://github.com/sampotts/rangetouch\n// License: The MIT License (MIT)\n// ==========================================================================\n\nimport defaults from './config';\nimport { matches } from './utils/css';\nimport { trigger } from './utils/events';\nimport is from './utils/is';\nimport { round } from './utils/numbers';\n\nclass RangeTouch {\n /**\n * Setup a new instance\n * @param {String|Element} target\n * @param {Object} options\n */\n constructor(target, options) {\n if (is.element(target)) {\n // An Element is passed, use it directly\n this.element = target;\n } else if (is.string(target)) {\n // A CSS Selector is passed, fetch it from the DOM\n this.element = document.querySelector(target);\n }\n\n if (!is.element(this.element) || !is.empty(this.element.rangeTouch)) {\n return;\n }\n\n this.config = { ...defaults, ...options };\n\n this.init();\n }\n\n static get enabled() {\n return 'ontouchstart' in document.documentElement;\n }\n\n /**\n * Setup multiple instances\n * @param {String|Element|NodeList|Array} target\n * @param {Object} options\n */\n static setup(target, options = {}) {\n let targets = null;\n\n if (is.empty(target) || is.string(target)) {\n targets = Array.from(document.querySelectorAll(is.string(target) ? target : 'input[type=\"range\"]'));\n } else if (is.element(target)) {\n targets = [target];\n } else if (is.nodeList(target)) {\n targets = Array.from(target);\n } else if (is.array(target)) {\n targets = target.filter(is.element);\n }\n\n if (is.empty(targets)) {\n return null;\n }\n\n const config = { ...defaults, ...options };\n\n if (is.string(target) && config.watch) {\n // Create an observer instance\n const observer = new MutationObserver(mutations => {\n Array.from(mutations).forEach(mutation => {\n Array.from(mutation.addedNodes).forEach(node => {\n if (!is.element(node) || !matches(node, target)) {\n return;\n }\n\n // eslint-disable-next-line no-unused-vars\n const range = new RangeTouch(node, config);\n });\n });\n });\n\n // Pass in the target node, as well as the observer options\n observer.observe(document.body, {\n childList: true,\n subtree: true,\n });\n }\n\n return targets.map(t => new RangeTouch(t, options));\n }\n\n init() {\n // Bail if not a touch enabled device\n if (!RangeTouch.enabled) {\n return;\n }\n\n // Add useful CSS\n if (this.config.addCSS) {\n this.element.style.userSelect = 'none';\n this.element.style.webKitUserSelect = 'none';\n this.element.style.touchAction = 'manipulation';\n }\n\n this.listeners(true);\n\n this.element.rangeTouch = this;\n }\n\n destroy() {\n // Bail if not a touch enabled device\n if (!RangeTouch.enabled) {\n return;\n }\n\n // Remove useful CSS\n if (this.config.addCSS) {\n this.element.style.userSelect = '';\n this.element.style.webKitUserSelect = '';\n this.element.style.touchAction = '';\n }\n\n this.listeners(false);\n\n this.element.rangeTouch = null;\n }\n\n listeners(toggle) {\n const method = toggle ? 'addEventListener' : 'removeEventListener';\n\n // Listen for events\n ['touchstart', 'touchmove', 'touchend'].forEach(type => {\n this.element[method](type, event => this.set(event), false);\n });\n }\n\n /**\n * Get the value based on touch position\n * @param {Event} event\n */\n get(event) {\n if (!RangeTouch.enabled || !is.event(event)) {\n return null;\n }\n\n const input = event.target;\n const touch = event.changedTouches[0];\n const min = parseFloat(input.getAttribute('min')) || 0;\n const max = parseFloat(input.getAttribute('max')) || 100;\n const step = parseFloat(input.getAttribute('step')) || 1;\n const delta = max - min;\n\n // Calculate percentage\n let percent;\n const clientRect = input.getBoundingClientRect();\n const thumbWidth = ((100 / clientRect.width) * (this.config.thumbWidth / 2)) / 100;\n\n // Determine left percentage\n percent = (100 / clientRect.width) * (touch.clientX - clientRect.left);\n\n // Don't allow outside bounds\n if (percent < 0) {\n percent = 0;\n } else if (percent > 100) {\n percent = 100;\n }\n\n // Factor in the thumb offset\n if (percent < 50) {\n percent -= (100 - percent * 2) * thumbWidth;\n } else if (percent > 50) {\n percent += (percent - 50) * 2 * thumbWidth;\n }\n\n // Find the closest step to the mouse position\n return min + round(delta * (percent / 100), step);\n }\n\n /**\n * Update range value based on position\n * @param {Event} event\n */\n set(event) {\n if (!RangeTouch.enabled || !is.event(event) || event.target.disabled) {\n return;\n }\n\n // Prevent text highlight on iOS\n event.preventDefault();\n\n // Set value\n // eslint-disable-next-line no-param-reassign\n event.target.value = this.get(event);\n\n // Trigger event\n trigger(event.target, event.type === 'touchend' ? 'change' : 'input');\n }\n}\n\nexport default RangeTouch;\n","const defaults = {\n addCSS: true, // Add CSS to the element to improve usability (required here or in your CSS!)\n thumbWidth: 15, // The width of the thumb handle\n watch: true, // Watch for new elements that match a string target\n};\n\nexport default defaults;","// Element matches a selector\nexport function matches(element, selector) {\n const prototype = { Element };\n\n function match() {\n return Array.from(document.querySelectorAll(selector)).includes(this);\n }\n\n const method =\n prototype.matches ||\n prototype.webkitMatchesSelector ||\n prototype.mozMatchesSelector ||\n prototype.msMatchesSelector ||\n match;\n\n return method.call(element, selector);\n}\n\nexport default { matches };\n","// ==========================================================================\n// Type checking utils\n// ==========================================================================\n\nconst getConstructor = input => (input !== null && typeof input !== 'undefined' ? input.constructor : null);\nconst instanceOf = (input, constructor) => Boolean(input && constructor && input instanceof constructor);\n\nconst isNullOrUndefined = input => input === null || typeof input === 'undefined';\nconst isObject = input => getConstructor(input) === Object;\nconst isNumber = input => getConstructor(input) === Number && !Number.isNaN(input);\nconst isString = input => getConstructor(input) === String;\nconst isBoolean = input => getConstructor(input) === Boolean;\nconst isFunction = input => getConstructor(input) === Function;\nconst isArray = input => Array.isArray(input);\nconst isNodeList = input => instanceOf(input, NodeList);\nconst isElement = input => instanceOf(input, Element);\nconst isEvent = input => instanceOf(input, Event);\nconst isEmpty = input =>\n isNullOrUndefined(input) ||\n ((isString(input) || isArray(input) || isNodeList(input)) && !input.length) ||\n (isObject(input) && !Object.keys(input).length);\n\nexport default {\n nullOrUndefined: isNullOrUndefined,\n object: isObject,\n number: isNumber,\n string: isString,\n boolean: isBoolean,\n function: isFunction,\n array: isArray,\n nodeList: isNodeList,\n element: isElement,\n event: isEvent,\n empty: isEmpty,\n};\n","// Get the number of decimal places\nexport function getDecimalPlaces(value) {\n const match = `${value}`.match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n\n if (!match) {\n return 0;\n }\n\n return Math.max(\n 0,\n // Number of digits right of decimal point.\n (match[1] ? match[1].length : 0) -\n // Adjust for scientific notation.\n (match[2] ? +match[2] : 0),\n );\n}\n\n// Round to the nearest step\nexport function round(number, step) {\n if (step < 1) {\n const places = getDecimalPlaces(step);\n return parseFloat(number.toFixed(places));\n }\n return Math.round(number / step) * step;\n}\n\nexport default { getDecimalPlaces, round };\n","// Trigger event\nexport function trigger(element, type) {\n if (!element || !type) {\n return;\n }\n\n // Create and dispatch the event\n const event = new Event(type, { bubbles: true });\n\n // Dispatch the event\n element.dispatchEvent(event);\n}\n\nexport default { trigger };\n","import { normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, withModifiers as _withModifiers, toDisplayString as _toDisplayString } from \"vue\";\nconst _hoisted_1 = [\"src\"];\nconst _hoisted_2 = [\"src\"];\nconst _hoisted_3 = {\n key: 2,\n class: \"video-placeholder\"\n};\nconst _hoisted_4 = {\n class: \"audio-cover\"\n};\nconst _hoisted_5 = [\"src\"];\nconst _hoisted_6 = {\n key: 1,\n class: \"audio-icon-large\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\"\n};\nconst _hoisted_7 = {\n class: \"audio-info\"\n};\nconst _hoisted_8 = {\n class: \"audio-title\"\n};\nconst _hoisted_9 = {\n key: 0,\n class: \"audio-artist\"\n};\nconst _hoisted_10 = [\"src\"];\nconst _hoisted_11 = {\n key: 4,\n class: \"audio-placeholder\"\n};\nconst _hoisted_12 = {\n class: \"audio-name\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n return _openBlock(), _createElementBlock(\"div\", {\n class: \"tm-viewport\",\n ref: \"viewport\",\n onPointerdown: _cache[3] || (_cache[3] = (...args) => $options.onPointerDown && $options.onPointerDown(...args)),\n onPointermove: _cache[4] || (_cache[4] = (...args) => $options.onPointerMove && $options.onPointerMove(...args)),\n onPointerup: _cache[5] || (_cache[5] = (...args) => $options.onPointerUp && $options.onPointerUp(...args)),\n onPointercancel: _cache[6] || (_cache[6] = (...args) => $options.onPointerUp && $options.onPointerUp(...args)),\n onDblclick: _cache[7] || (_cache[7] = _withModifiers((...args) => $options.onDblClick && $options.onDblClick(...args), [\"prevent\"]))\n }, [$props.isImage ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"tm-media\",\n src: $props.src,\n draggable: \"false\",\n style: _normalizeStyle($options.mediaStyle),\n onLoad: _cache[0] || (_cache[0] = (...args) => $options.onLoad && $options.onLoad(...args))\n }, null, 44, _hoisted_1)) : $props.isVideo && $props.isActive ? (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"tm-video-wrap\",\n onPointerdown: _cache[1] || (_cache[1] = _withModifiers(() => {}, [\"stop\"]))\n }, [_createElementVNode(\"video\", {\n ref: \"videoEl\",\n class: \"plyr-video\",\n src: $props.src,\n playsinline: \"\"\n }, null, 8, _hoisted_2)], 32)) : $props.isVideo ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [...(_cache[8] || (_cache[8] = [_createElementVNode(\"svg\", {\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\"\n }, [_createElementVNode(\"path\", {\n d: \"M8 5v14l11-7z\"\n })], -1)]))])) : $props.isAudio && $props.isActive ? (_openBlock(), _createElementBlock(\"div\", {\n key: 3,\n class: \"tm-audio-wrap\",\n onPointerdown: _cache[2] || (_cache[2] = _withModifiers(() => {}, [\"stop\"]))\n }, [_createElementVNode(\"div\", _hoisted_4, [$data.audioCover ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: $data.audioCover,\n class: \"cover-img\"\n }, null, 8, _hoisted_5)) : (_openBlock(), _createElementBlock(\"svg\", _hoisted_6, [...(_cache[9] || (_cache[9] = [_createElementVNode(\"path\", {\n d: \"M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z\"\n }, null, -1)]))]))]), _createElementVNode(\"div\", _hoisted_7, [_createElementVNode(\"div\", _hoisted_8, _toDisplayString($data.audioTitle), 1), $data.audioArtist ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, _toDisplayString($data.audioArtist), 1)) : _createCommentVNode(\"\", true)]), _createElementVNode(\"audio\", {\n ref: \"audioEl\",\n class: \"plyr-audio\",\n src: $props.src\n }, null, 8, _hoisted_10)], 32)) : $props.isAudio ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [_cache[10] || (_cache[10] = _createElementVNode(\"svg\", {\n class: \"audio-icon-large\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\"\n }, [_createElementVNode(\"path\", {\n d: \"M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z\"\n })], -1)), _createElementVNode(\"span\", _hoisted_12, _toDisplayString($data.audioTitle), 1)])) : _createCommentVNode(\"\", true)], 544);\n}","// ==========================================================================\n// Type checking utils\n// ==========================================================================\n\nconst getConstructor = input => (input !== null && typeof input !== 'undefined' ? input.constructor : null);\nconst instanceOf = (input, constructor) => Boolean(input && constructor && input instanceof constructor);\nconst isNullOrUndefined = input => input === null || typeof input === 'undefined';\nconst isObject = input => getConstructor(input) === Object;\nconst isNumber = input => getConstructor(input) === Number && !Number.isNaN(input);\nconst isString = input => getConstructor(input) === String;\nconst isBoolean = input => getConstructor(input) === Boolean;\nconst isFunction = input => typeof input === 'function';\nconst isArray = input => Array.isArray(input);\nconst isWeakMap = input => instanceOf(input, WeakMap);\nconst isNodeList = input => instanceOf(input, NodeList);\nconst isTextNode = input => getConstructor(input) === Text;\nconst isEvent = input => instanceOf(input, Event);\nconst isKeyboardEvent = input => instanceOf(input, KeyboardEvent);\nconst isCue = input => instanceOf(input, window.TextTrackCue) || instanceOf(input, window.VTTCue);\nconst isTrack = input => instanceOf(input, TextTrack) || (!isNullOrUndefined(input) && isString(input.kind));\nconst isPromise = input => instanceOf(input, Promise) && isFunction(input.then);\n\nfunction isElement(input) {\n return input !== null\n && typeof input === 'object'\n && input.nodeType === 1\n && typeof input.style === 'object'\n && typeof input.ownerDocument === 'object';\n}\n\nfunction isEmpty(input) {\n return isNullOrUndefined(input)\n || ((isString(input) || isArray(input) || isNodeList(input)) && !input.length)\n || (isObject(input) && !Object.keys(input).length);\n}\n\nfunction isUrl(input) {\n // Accept a URL object\n if (instanceOf(input, window.URL)) {\n return true;\n }\n\n // Must be string from here\n if (!isString(input)) {\n return false;\n }\n\n // Add the protocol if required\n let string = input;\n if (!input.startsWith('http://') || !input.startsWith('https://')) {\n string = `http://${input}`;\n }\n\n try {\n return !isEmpty(new URL(string).hostname);\n }\n catch {\n return false;\n }\n}\n\nexport default {\n nullOrUndefined: isNullOrUndefined,\n object: isObject,\n number: isNumber,\n string: isString,\n boolean: isBoolean,\n function: isFunction,\n array: isArray,\n weakMap: isWeakMap,\n nodeList: isNodeList,\n element: isElement,\n textNode: isTextNode,\n event: isEvent,\n keyboardEvent: isKeyboardEvent,\n cue: isCue,\n track: isTrack,\n promise: isPromise,\n url: isUrl,\n empty: isEmpty,\n};\n","// ==========================================================================\n// Animation utils\n// ==========================================================================\n\nimport is from './is';\n\nexport const transitionEndEvent = (() => {\n const element = document.createElement('span');\n\n const events = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend',\n };\n\n const type = Object.keys(events).find(event => element.style[event] !== undefined);\n\n return is.string(type) ? events[type] : false;\n})();\n\n// Force repaint of element\nexport function repaint(element, delay) {\n setTimeout(() => {\n try {\n element.hidden = true;\n // eslint-disable-next-line no-unused-expressions\n element.offsetHeight;\n element.hidden = false;\n }\n catch {}\n }, delay);\n}\n","// ==========================================================================\n// Object utils\n// ==========================================================================\n\nimport is from './is';\n\n// Clone nested objects\nexport function cloneDeep(object) {\n return JSON.parse(JSON.stringify(object));\n}\n\n// Get a nested value in an object\nexport function getDeep(object, path) {\n return path.split('.').reduce((obj, key) => obj && obj[key], object);\n}\n\n// Deep extend destination object with N more objects\nexport function extend(target = {}, ...sources) {\n if (!sources.length) {\n return target;\n }\n\n const source = sources.shift();\n\n if (!is.object(source)) {\n return target;\n }\n\n Object.keys(source).forEach((key) => {\n if (is.object(source[key])) {\n if (!Object.keys(target).includes(key)) {\n Object.assign(target, { [key]: {} });\n }\n\n extend(target[key], source[key]);\n }\n else {\n Object.assign(target, { [key]: source[key] });\n }\n });\n\n return extend(target, ...sources);\n}\n","// ==========================================================================\n// Element utils\n// ==========================================================================\n\nimport is from './is';\nimport { extend } from './objects';\n\n// Wrap an element\nexport function wrap(elements, wrapper) {\n // Convert `elements` to an array, if necessary.\n const targets = elements.length ? elements : [elements];\n\n // Loops backwards to prevent having to clone the wrapper on the\n // first element (see `child` below).\n Array.from(targets)\n .reverse()\n .forEach((element, index) => {\n const child = index > 0 ? wrapper.cloneNode(true) : wrapper;\n // Cache the current parent and sibling.\n const parent = element.parentNode;\n const sibling = element.nextSibling;\n\n // Wrap the element (is automatically removed from its current\n // parent).\n child.appendChild(element);\n\n // If the element had a sibling, insert the wrapper before\n // the sibling to maintain the HTML structure; otherwise, just\n // append it to the parent.\n if (sibling) {\n parent.insertBefore(child, sibling);\n }\n else {\n parent.appendChild(child);\n }\n });\n}\n\n// Set attributes\nexport function setAttributes(element, attributes) {\n if (!is.element(element) || is.empty(attributes)) return;\n\n // Assume null and undefined attributes should be left out,\n // Setting them would otherwise convert them to \"null\" and \"undefined\"\n Object.entries(attributes)\n .filter(([, value]) => !is.nullOrUndefined(value))\n .forEach(([key, value]) => element.setAttribute(key, value));\n}\n\n// Create a DocumentFragment\nexport function createElement(type, attributes, text) {\n // Create a new \n const element = document.createElement(type);\n\n // Set all passed attributes\n if (is.object(attributes)) {\n setAttributes(element, attributes);\n }\n\n // Add text node\n if (is.string(text)) {\n element.textContent = text;\n }\n\n // Return built element\n return element;\n}\n\n// Insert an element after another\nexport function insertAfter(element, target) {\n if (!is.element(element) || !is.element(target)) return;\n\n target.parentNode.insertBefore(element, target.nextSibling);\n}\n\n// Insert a DocumentFragment\nexport function insertElement(type, parent, attributes, text) {\n if (!is.element(parent)) return;\n\n parent.appendChild(createElement(type, attributes, text));\n}\n\n// Remove element(s)\nexport function removeElement(element) {\n if (is.nodeList(element) || is.array(element)) {\n Array.from(element).forEach(removeElement);\n return;\n }\n\n if (!is.element(element) || !is.element(element.parentNode)) {\n return;\n }\n\n element.parentNode.removeChild(element);\n}\n\n// Remove all child elements\nexport function emptyElement(element) {\n if (!is.element(element)) return;\n\n let { length } = element.childNodes;\n\n while (length > 0) {\n element.removeChild(element.lastChild);\n length -= 1;\n }\n}\n\n// Replace element\nexport function replaceElement(newChild, oldChild) {\n if (!is.element(oldChild) || !is.element(oldChild.parentNode) || !is.element(newChild)) return null;\n\n oldChild.parentNode.replaceChild(newChild, oldChild);\n\n return newChild;\n}\n\n// Get an attribute object from a string selector\nexport function getAttributesFromSelector(sel, existingAttributes) {\n // For example:\n // '.test' to { class: 'test' }\n // '#test' to { id: 'test' }\n // '[data-test=\"test\"]' to { 'data-test': 'test' }\n\n if (!is.string(sel) || is.empty(sel)) return {};\n\n const attributes = {};\n const existing = extend({}, existingAttributes);\n\n sel.split(',').forEach((s) => {\n // Remove whitespace\n const selector = s.trim();\n const className = selector.replace('.', '');\n const stripped = selector.replace(/[[\\]]/g, '');\n // Get the parts and value\n const parts = stripped.split('=');\n const [key] = parts;\n const value = parts.length > 1 ? parts[1].replace(/[\"']/g, '') : '';\n // Get the first character\n const start = selector.charAt(0);\n\n switch (start) {\n case '.':\n // Add to existing classname\n if (is.string(existing.class)) {\n attributes.class = `${existing.class} ${className}`;\n }\n else {\n attributes.class = className;\n }\n break;\n\n case '#':\n // ID selector\n attributes.id = selector.replace('#', '');\n break;\n\n case '[':\n // Attribute selector\n attributes[key] = value;\n\n break;\n\n default:\n break;\n }\n });\n\n return extend(existing, attributes);\n}\n\n// Toggle hidden\nexport function toggleHidden(element, hidden) {\n if (!is.element(element)) return;\n\n let hide = hidden;\n\n if (!is.boolean(hide)) {\n hide = !element.hidden;\n }\n\n element.hidden = hide;\n}\n\n// Mirror Element.classList.toggle, with IE compatibility for \"force\" argument\nexport function toggleClass(element, className, force) {\n if (is.nodeList(element)) {\n return Array.from(element).map(e => toggleClass(e, className, force));\n }\n\n if (is.element(element)) {\n let method = 'toggle';\n if (typeof force !== 'undefined') {\n method = force ? 'add' : 'remove';\n }\n\n element.classList[method](className);\n return element.classList.contains(className);\n }\n\n return false;\n}\n\n// Has class name\nexport function hasClass(element, className) {\n return is.element(element) && element.classList.contains(className);\n}\n\n// Element matches selector\nexport function matches(element, selector) {\n const { prototype } = Element;\n\n function match() {\n return Array.from(document.querySelectorAll(selector)).includes(this);\n }\n\n const method\n = prototype.matches\n || prototype.webkitMatchesSelector\n || prototype.mozMatchesSelector\n || prototype.msMatchesSelector\n || match;\n\n return method.call(element, selector);\n}\n\n// Closest ancestor element matching selector (also tests element itself)\nexport function closest(element, selector) {\n const { prototype } = Element;\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill\n function closestElement() {\n let el = this;\n\n do {\n if (matches.matches(el, selector)) return el;\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n return null;\n }\n\n const method = prototype.closest || closestElement;\n\n return method.call(element, selector);\n}\n\n// Find all elements\nexport function getElements(selector) {\n return this.elements.container.querySelectorAll(selector);\n}\n\n// Find a single element\nexport function getElement(selector) {\n return this.elements.container.querySelector(selector);\n}\n\n// Set focus and tab focus class\nexport function setFocus(element = null, focusVisible = false) {\n if (!is.element(element)) return;\n\n // Set regular focus\n element.focus({ preventScroll: true, focusVisible });\n}\n","// ==========================================================================\n// Plyr support checks\n// ==========================================================================\n\nimport { transitionEndEvent } from './utils/animation';\nimport { createElement } from './utils/elements';\nimport is from './utils/is';\n\n// Default codecs for checking mimetype support\nconst defaultCodecs = {\n 'audio/ogg': 'vorbis',\n 'audio/wav': '1',\n 'video/webm': 'vp8, vorbis',\n 'video/mp4': 'avc1.42E01E, mp4a.40.2',\n 'video/ogg': 'theora',\n};\n\n// Check for feature support\nconst support = {\n // Basic support\n audio: 'canPlayType' in document.createElement('audio'),\n video: 'canPlayType' in document.createElement('video'),\n\n // Check for support\n // Basic functionality vs full UI\n check(type, provider) {\n const api = support[type] || provider !== 'html5';\n const ui = api && support.rangeInput;\n\n return {\n api,\n ui,\n };\n },\n\n // Picture-in-picture support\n pip: (() => {\n return (document.pictureInPictureEnabled && !createElement('video').disablePictureInPicture);\n })(),\n\n // Airplay support\n // Safari only currently\n airplay: is.function(window.WebKitPlaybackTargetAvailabilityEvent),\n\n // Inline playback support\n // https://webkit.org/blog/6784/new-video-policies-for-ios/\n playsinline: 'playsInline' in document.createElement('video'),\n\n // Check for mime type support against a player instance\n // Credits: http://diveintohtml5.info/everything.html\n // Related: http://www.leanbackplayer.com/test/h5mt.html\n mime(input) {\n if (is.empty(input)) {\n return false;\n }\n\n const [mediaType] = input.split('/');\n let type = input;\n\n // Verify we're using HTML5 and there's no media type mismatch\n if (!this.isHTML5 || mediaType !== this.type) {\n return false;\n }\n\n // Add codec if required\n if (Object.keys(defaultCodecs).includes(type)) {\n type += `; codecs=\"${defaultCodecs[input]}\"`;\n }\n\n try {\n return Boolean(type && this.media.canPlayType(type).replace(/no/, ''));\n }\n catch {\n return false;\n }\n },\n\n // Check for textTracks support\n textTracks: 'textTracks' in document.createElement('video'),\n\n // Sliders\n rangeInput: (() => {\n const range = document.createElement('input');\n range.type = 'range';\n return range.type === 'range';\n })(),\n\n // Touch\n // NOTE: Remember a device can be mouse + touch enabled so we check on first touch event\n touch: 'ontouchstart' in document.documentElement,\n\n // Detect transitions support\n transitions: transitionEndEvent !== false,\n\n // Reduced motion iOS & MacOS setting\n // https://webkit.org/blog/7551/responsive-design-for-motion/\n reducedMotion: 'matchMedia' in window && window.matchMedia('(prefers-reduced-motion)').matches,\n};\n\nexport default support;\n","// ==========================================================================\n// Event utils\n// ==========================================================================\n\nimport is from './is';\n\n// Check for passive event listener support\n// https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n// https://www.youtube.com/watch?v=NPM6172J22g\nconst supportsPassiveListeners = (() => {\n // Test via a getter in the options object to see if the passive property is accessed\n let supported = false;\n try {\n const options = Object.defineProperty({}, 'passive', {\n get() {\n supported = true;\n return null;\n },\n });\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n }\n catch {}\n\n return supported;\n})();\n\n// Toggle event listener\nexport function toggleListener(element, event, callback, toggle = false, passive = true, capture = false) {\n // Bail if no element, event, or callback\n if (!element || !('addEventListener' in element) || is.empty(event) || !is.function(callback)) {\n return;\n }\n\n // Allow multiple events\n const events = event.split(' ');\n // Build options\n // Default to just the capture boolean for browsers with no passive listener support\n let options = capture;\n\n // If passive events listeners are supported\n if (supportsPassiveListeners) {\n options = {\n // Whether the listener can be passive (i.e. default never prevented)\n passive,\n // Whether the listener is a capturing listener or not\n capture,\n };\n }\n\n // If a single node is passed, bind the event listener\n events.forEach((type) => {\n if (this && this.eventListeners && toggle) {\n // Cache event listener\n this.eventListeners.push({ element, type, callback, options });\n }\n\n element[toggle ? 'addEventListener' : 'removeEventListener'](type, callback, options);\n });\n}\n\n// Bind event handler\nexport function on(element, events = '', callback, passive = true, capture = false) {\n toggleListener.call(this, element, events, callback, true, passive, capture);\n}\n\n// Unbind event handler\nexport function off(element, events = '', callback, passive = true, capture = false) {\n toggleListener.call(this, element, events, callback, false, passive, capture);\n}\n\n// Bind once-only event handler\nexport function once(element, events = '', callback, passive = true, capture = false) {\n const onceCallback = (...args) => {\n off(element, events, onceCallback, passive, capture);\n callback.apply(this, args);\n };\n\n toggleListener.call(this, element, events, onceCallback, true, passive, capture);\n}\n\n// Trigger event\nexport function triggerEvent(element, type = '', bubbles = false, detail = {}) {\n // Bail if no element\n if (!is.element(element) || is.empty(type)) {\n return;\n }\n\n // Create and dispatch the event\n const event = new CustomEvent(type, {\n bubbles,\n detail: { ...detail, plyr: this },\n });\n\n // Dispatch the event\n element.dispatchEvent(event);\n}\n\n// Unbind all cached event listeners\nexport function unbindListeners() {\n if (this && this.eventListeners) {\n this.eventListeners.forEach((item) => {\n const { element, type, callback, options } = item;\n element.removeEventListener(type, callback, options);\n });\n\n this.eventListeners = [];\n }\n}\n\n// Run method when / if player is ready\nexport function ready() {\n return new Promise(resolve =>\n this.ready ? setTimeout(resolve, 0) : on.call(this, this.elements.container, 'ready', resolve),\n ).then(() => {});\n}\n","import is from './is';\n/**\n * Silence a Promise-like object.\n * This is useful for avoiding non-harmful, but potentially confusing \"uncaught\n * play promise\" rejection error messages.\n * @param {object} value An object that may or may not be `Promise`-like.\n */\nexport function silencePromise(value) {\n if (is.promise(value)) {\n value.then(null, () => {});\n }\n}\n\nexport default { silencePromise };\n","// ==========================================================================\n// Array utils\n// ==========================================================================\n\nimport is from './is';\n\n// Remove duplicates in an array\nexport function dedupe(array) {\n if (!is.array(array)) {\n return array;\n }\n\n return array.filter((item, index) => array.indexOf(item) === index);\n}\n\n// Get the closest value in an array\nexport function closest(array, value) {\n if (!is.array(array) || !array.length) {\n return null;\n }\n\n return array.reduce((prev, curr) => (Math.abs(curr - value) < Math.abs(prev - value) ? curr : prev));\n}\n","// ==========================================================================\n// Style utils\n// ==========================================================================\n\nimport { closest } from './arrays';\nimport is from './is';\n\n// Check support for a CSS declaration\nexport function supportsCSS(declaration) {\n if (!window || !window.CSS) {\n return false;\n }\n\n return window.CSS.supports(declaration);\n}\n\n// Standard/common aspect ratios\nconst standardRatios = [\n [1, 1],\n [4, 3],\n [3, 4],\n [5, 4],\n [4, 5],\n [3, 2],\n [2, 3],\n [16, 10],\n [10, 16],\n [16, 9],\n [9, 16],\n [21, 9],\n [9, 21],\n [32, 9],\n [9, 32],\n].reduce((out, [x, y]) => ({ ...out, [x / y]: [x, y] }), {});\n\n// Validate an aspect ratio\nexport function validateAspectRatio(input) {\n if (!is.array(input) && (!is.string(input) || !input.includes(':'))) {\n return false;\n }\n\n const ratio = is.array(input) ? input : input.split(':');\n\n return ratio.map(Number).every(is.number);\n}\n\n// Reduce an aspect ratio to it's lowest form\nexport function reduceAspectRatio(ratio) {\n if (!is.array(ratio) || !ratio.every(is.number)) {\n return null;\n }\n\n const [width, height] = ratio;\n const getDivider = (w, h) => (h === 0 ? w : getDivider(h, w % h));\n const divider = getDivider(width, height);\n\n return [width / divider, height / divider];\n}\n\n// Calculate an aspect ratio\nexport function getAspectRatio(input) {\n const parse = ratio => (validateAspectRatio(ratio) ? ratio.split(':').map(Number) : null);\n // Try provided ratio\n let ratio = parse(input);\n\n // Get from config\n if (ratio === null) {\n ratio = parse(this.config.ratio);\n }\n\n // Get from embed\n if (ratio === null && !is.empty(this.embed) && is.array(this.embed.ratio)) {\n ({ ratio } = this.embed);\n }\n\n // Get from HTML5 video\n if (ratio === null && this.isHTML5) {\n const { videoWidth, videoHeight } = this.media;\n ratio = [videoWidth, videoHeight];\n }\n\n return reduceAspectRatio(ratio);\n}\n\n// Set aspect ratio for responsive container\nexport function setAspectRatio(input) {\n if (!this.isVideo) {\n return {};\n }\n\n const { wrapper } = this.elements;\n const ratio = getAspectRatio.call(this, input);\n\n if (!is.array(ratio)) {\n return {};\n }\n\n const [x, y] = reduceAspectRatio(ratio);\n const useNative = supportsCSS(`aspect-ratio: ${x}/${y}`);\n const padding = (100 / x) * y;\n\n if (useNative) {\n wrapper.style.aspectRatio = `${x}/${y}`;\n }\n else {\n wrapper.style.paddingBottom = `${padding}%`;\n }\n\n // For Vimeo we have an extra
to hide the standard controls and UI\n if (this.isVimeo && !this.config.vimeo.premium && this.supported.ui) {\n const height = (100 / this.media.offsetWidth) * Number.parseInt(window.getComputedStyle(this.media).paddingBottom, 10);\n const offset = (height - padding) / (height / 50);\n\n if (this.fullscreen.active) {\n wrapper.style.paddingBottom = null;\n }\n else {\n this.media.style.transform = `translateY(-${offset}%)`;\n }\n }\n else if (this.isHTML5) {\n wrapper.classList.add(this.config.classNames.videoFixedRatio);\n }\n\n return { padding, ratio };\n}\n\n// Round an aspect ratio to closest standard ratio\nexport function roundAspectRatio(x, y, tolerance = 0.05) {\n const ratio = x / y;\n const closestRatio = closest(Object.keys(standardRatios), ratio);\n\n // Check match is within tolerance\n if (Math.abs(closestRatio - ratio) <= tolerance) {\n return standardRatios[closestRatio];\n }\n\n // No match\n return [x, y];\n}\n\n// Get the size of the viewport\n// https://stackoverflow.com/questions/1248081/how-to-get-the-browser-viewport-dimensions\nexport function getViewportSize() {\n const width = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);\n const height = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);\n return [width, height];\n}\n","// ==========================================================================\n// Plyr HTML5 helpers\n// ==========================================================================\n\nimport support from './support';\nimport { removeElement } from './utils/elements';\nimport { triggerEvent } from './utils/events';\nimport is from './utils/is';\nimport { silencePromise } from './utils/promise';\nimport { setAspectRatio } from './utils/style';\n\nconst html5 = {\n getSources() {\n if (!this.isHTML5) {\n return [];\n }\n\n const sources = Array.from(this.media.querySelectorAll('source'));\n\n // Filter out unsupported sources (if type is specified)\n return sources.filter((source) => {\n const type = source.getAttribute('type');\n\n if (is.empty(type)) {\n return true;\n }\n\n return support.mime.call(this, type);\n });\n },\n\n // Get quality levels\n getQualityOptions() {\n // Whether we're forcing all options (e.g. for streaming)\n if (this.config.quality.forced) {\n return this.config.quality.options;\n }\n\n // Get sizes from elements\n return html5.getSources\n .call(this)\n .map(source => Number(source.getAttribute('size')))\n .filter(Boolean);\n },\n\n setup() {\n if (!this.isHTML5) {\n return;\n }\n\n const player = this;\n\n // Set speed options from config\n player.options.speed = player.config.speed.options;\n\n // Set aspect ratio if fixed\n if (!is.empty(this.config.ratio)) {\n setAspectRatio.call(player);\n }\n\n // Quality\n Object.defineProperty(player.media, 'quality', {\n get() {\n // Get sources\n const sources = html5.getSources.call(player);\n const source = sources.find(s => s.getAttribute('src') === player.source);\n\n // Return size, if match is found\n return source && Number(source.getAttribute('size'));\n },\n set(input) {\n if (player.quality === input) {\n return;\n }\n\n // If we're using an external handler...\n if (player.config.quality.forced && is.function(player.config.quality.onChange)) {\n player.config.quality.onChange(input);\n }\n else {\n // Get sources\n const sources = html5.getSources.call(player);\n // Get first match for requested size\n const source = sources.find(s => Number(s.getAttribute('size')) === input);\n\n // No matching source found\n if (!source) {\n return;\n }\n\n // Get current state\n const { currentTime, paused, preload, readyState, playbackRate } = player.media;\n\n // Set new source\n player.media.src = source.getAttribute('src');\n\n // Prevent loading if preload=\"none\" and the current source isn't loaded (#1044)\n if (preload !== 'none' || readyState) {\n // Restore time\n player.once('loadedmetadata', () => {\n player.speed = playbackRate;\n player.currentTime = currentTime;\n\n // Resume playing\n if (!paused) {\n silencePromise(player.play());\n }\n });\n\n // Load new source\n player.media.load();\n }\n }\n\n // Trigger change event\n triggerEvent.call(player, player.media, 'qualitychange', false, {\n quality: input,\n });\n },\n });\n },\n\n // Cancel current network requests\n // See https://github.com/sampotts/plyr/issues/174\n cancelRequests() {\n if (!this.isHTML5) {\n return;\n }\n\n // Remove child sources\n removeElement(html5.getSources.call(this));\n\n // Set blank video src attribute\n // This is to prevent a MEDIA_ERR_SRC_NOT_SUPPORTED error\n // Info: http://stackoverflow.com/questions/32231579/how-to-properly-dispose-of-an-html5-video-and-close-socket-or-connection\n this.media.setAttribute('src', this.config.blankVideo);\n\n // Load the new empty source\n // This will cancel existing requests\n // See https://github.com/sampotts/plyr/issues/174\n this.media.load();\n\n // Debugging\n this.debug.log('Cancelled network requests');\n },\n};\n\nexport default html5;\n","// ==========================================================================\n// Browser sniffing\n// Unfortunately, due to mixed support, UA sniffing is required\n// ==========================================================================\n\nconst isIE = Boolean(window.document.documentMode);\nconst isEdge = /Edge/.test(navigator.userAgent);\nconst isWebKit = 'WebkitAppearance' in document.documentElement.style && !/Edge/.test(navigator.userAgent);\nconst isIPhone = /iPhone|iPod/i.test(navigator.userAgent) && navigator.maxTouchPoints > 1;\n// navigator.platform may be deprecated but this check is still required\nconst isIPadOS = navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;\nconst isIos = /iPad|iPhone|iPod/i.test(navigator.userAgent) && navigator.maxTouchPoints > 1;\n\nexport default {\n isIE,\n isEdge,\n isWebKit,\n isIPhone,\n isIPadOS,\n isIos,\n};\n","// ==========================================================================\n// String utils\n// ==========================================================================\n\nimport is from './is';\n\n// Generate a random ID\nexport function generateId(prefix) {\n return `${prefix}-${Math.floor(Math.random() * 10000)}`;\n}\n\n// Format string\nexport function format(input, ...args) {\n if (is.empty(input)) return input;\n\n return input.toString().replace(/\\{(\\d+)\\}/g, (_, i) => args[i].toString());\n}\n\n// Get percentage\nexport function getPercentage(current, max) {\n if (current === 0 || max === 0 || Number.isNaN(current) || Number.isNaN(max)) {\n return 0;\n }\n\n return ((current / max) * 100).toFixed(2);\n}\n\n// Replace all occurrences of a string in a string\nexport function replaceAll(input = '', find = '', replace = '') {\n return input.replace(new RegExp(find.toString().replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1'), 'g'), replace.toString());\n}\n\n// Convert to title case\nexport function toTitleCase(input = '') {\n return input.toString().replace(/\\w\\S*/g, text => text.charAt(0).toUpperCase() + text.slice(1).toLowerCase());\n}\n\n// Convert string to pascalCase\nexport function toPascalCase(input = '') {\n let string = input.toString();\n\n // Convert kebab case\n string = replaceAll(string, '-', ' ');\n\n // Convert snake case\n string = replaceAll(string, '_', ' ');\n\n // Convert to title case\n string = toTitleCase(string);\n\n // Convert to pascal case\n return replaceAll(string, ' ', '');\n}\n\n// Convert string to pascalCase\nexport function toCamelCase(input = '') {\n let string = input.toString();\n\n // Convert to pascal case\n string = toPascalCase(string);\n\n // Convert first character to lowercase\n return string.charAt(0).toLowerCase() + string.slice(1);\n}\n\n// Remove HTML from a string\nexport function stripHTML(source) {\n const fragment = document.createDocumentFragment();\n const element = document.createElement('div');\n fragment.appendChild(element);\n element.innerHTML = source;\n return fragment.firstChild.textContent;\n}\n\n// Like outerHTML, but also works for DocumentFragment\nexport function getHTML(element) {\n const wrapper = document.createElement('div');\n wrapper.appendChild(element);\n return wrapper.innerHTML;\n}\n","// ==========================================================================\n// Plyr internationalization\n// ==========================================================================\n\nimport is from './is';\nimport { getDeep } from './objects';\nimport { replaceAll } from './strings';\n\n// Skip i18n for abbreviations and brand names\nconst resources = {\n pip: 'PIP',\n airplay: 'AirPlay',\n html5: 'HTML5',\n vimeo: 'Vimeo',\n youtube: 'YouTube',\n};\n\nconst i18n = {\n get(key = '', config = {}) {\n if (is.empty(key) || is.empty(config)) {\n return '';\n }\n\n let string = getDeep(config.i18n, key);\n\n if (is.empty(string)) {\n if (Object.keys(resources).includes(key)) {\n return resources[key];\n }\n\n return '';\n }\n\n const replace = {\n '{seektime}': config.seekTime,\n '{title}': config.title,\n };\n\n Object.entries(replace).forEach(([k, v]) => {\n string = replaceAll(string, k, v);\n });\n\n return string;\n },\n};\n\nexport default i18n;\n","// ==========================================================================\n// Plyr storage\n// ==========================================================================\n\nimport is from './utils/is';\nimport { extend } from './utils/objects';\n\nclass Storage {\n constructor(player) {\n this.enabled = player.config.storage.enabled;\n this.key = player.config.storage.key;\n }\n\n // Check for actual support (see if we can use it)\n static get supported() {\n try {\n if (!('localStorage' in window)) return false;\n const test = '___test';\n // Try to use it (it might be disabled, e.g. user is in private mode)\n // see: https://github.com/sampotts/plyr/issues/131\n window.localStorage.setItem(test, test);\n window.localStorage.removeItem(test);\n return true;\n }\n catch {\n return false;\n }\n }\n\n get = (key) => {\n if (!Storage.supported || !this.enabled) {\n return null;\n }\n const store = window.localStorage.getItem(this.key);\n if (is.empty(store)) return null;\n const json = JSON.parse(store);\n return is.string(key) && key.length ? json[key] : json;\n };\n\n set = (object) => {\n // Bail if we don't have localStorage support or it's disabled\n if (!Storage.supported || !this.enabled) {\n return;\n }\n\n // Can only store objects\n if (!is.object(object)) {\n return;\n }\n\n // Get current storage\n let storage = this.get();\n\n // Default to empty object\n if (is.empty(storage)) {\n storage = {};\n }\n\n // Update the working copy of the values\n extend(storage, object);\n\n // Update storage\n try {\n window.localStorage.setItem(this.key, JSON.stringify(storage));\n }\n catch { }\n };\n}\n\nexport default Storage;\n","// ==========================================================================\n// Fetch wrapper\n// Using XHR to avoid issues with older browsers\n// ==========================================================================\n\nexport default function fetch(url, responseType = 'text', withCredentials = false) {\n return new Promise((resolve, reject) => {\n try {\n const request = new XMLHttpRequest();\n\n // Check for CORS support\n if (!('withCredentials' in request)) return;\n\n // Set to true if needed for CORS\n if (withCredentials) {\n request.withCredentials = true;\n }\n\n request.addEventListener('load', () => {\n if (responseType === 'text') {\n try {\n resolve(JSON.parse(request.responseText));\n }\n catch {\n resolve(request.responseText);\n }\n }\n else {\n resolve(request.response);\n }\n });\n\n request.addEventListener('error', () => {\n throw new Error(request.status);\n });\n\n request.open('GET', url, true);\n request.responseType = responseType;\n request.send();\n }\n catch (error) {\n reject(error);\n }\n });\n}\n","// ==========================================================================\n// Sprite loader\n// ==========================================================================\n\nimport Storage from '../storage';\nimport fetch from './fetch';\nimport is from './is';\n\n// Load an external SVG sprite\nexport default function loadSprite(url, id) {\n if (!is.string(url)) {\n return;\n }\n\n const prefix = 'cache';\n const hasId = is.string(id);\n let isCached = false;\n const exists = () => document.getElementById(id) !== null;\n\n const update = (container, data) => {\n container.innerHTML = data;\n\n // Check again incase of race condition\n if (hasId && exists()) {\n return;\n }\n\n // Inject the SVG to the body\n document.body.insertAdjacentElement('afterbegin', container);\n };\n\n // Only load once if ID set\n if (!hasId || !exists()) {\n const useStorage = Storage.supported;\n // Create container\n const container = document.createElement('div');\n container.setAttribute('hidden', '');\n\n if (hasId) {\n container.setAttribute('id', id);\n }\n\n // Check in cache\n if (useStorage) {\n const cached = window.localStorage.getItem(`${prefix}-${id}`);\n isCached = cached !== null;\n\n if (isCached) {\n const data = JSON.parse(cached);\n update(container, data.content);\n }\n }\n\n // Get the sprite\n fetch(url)\n .then((result) => {\n if (is.empty(result)) {\n return;\n }\n\n if (useStorage) {\n try {\n window.localStorage.setItem(\n `${prefix}-${id}`,\n JSON.stringify({\n content: result,\n }),\n );\n }\n catch {}\n }\n\n update(container, result);\n })\n .catch(() => {});\n }\n}\n","// ==========================================================================\n// Time utils\n// ==========================================================================\n\nimport is from './is';\n\n// Time helpers\nexport const getHours = value => Math.trunc((value / 60 / 60) % 60, 10);\nexport const getMinutes = value => Math.trunc((value / 60) % 60, 10);\nexport const getSeconds = value => Math.trunc(value % 60, 10);\n\n// Format time to UI friendly string\nexport function formatTime(time = 0, displayHours = false, inverted = false) {\n // Bail if the value isn't a number\n if (!is.number(time)) {\n return formatTime(undefined, displayHours, inverted);\n }\n\n // Format time component to add leading zero\n const format = value => `0${value}`.slice(-2);\n // Breakdown to hours, mins, secs\n let hours = getHours(time);\n const mins = getMinutes(time);\n const secs = getSeconds(time);\n\n // Do we need to display hours?\n if (displayHours || hours > 0) {\n hours = `${hours}:`;\n }\n else {\n hours = '';\n }\n\n // Render\n return `${inverted && time > 0 ? '-' : ''}${hours}${format(mins)}:${format(secs)}`;\n}\n","// ==========================================================================\n// Plyr controls\n// TODO: This needs to be split into smaller files and cleaned up\n// ==========================================================================\n\nimport RangeTouch from 'rangetouch';\n\nimport captions from './captions';\nimport html5 from './html5';\nimport support from './support';\nimport { repaint, transitionEndEvent } from './utils/animation';\nimport { dedupe } from './utils/arrays';\nimport browser from './utils/browser';\nimport {\n createElement,\n emptyElement,\n getAttributesFromSelector,\n getElement,\n getElements,\n hasClass,\n matches,\n removeElement,\n setAttributes,\n setFocus,\n toggleClass,\n toggleHidden,\n} from './utils/elements';\nimport { off, on } from './utils/events';\nimport i18n from './utils/i18n';\nimport is from './utils/is';\nimport loadSprite from './utils/load-sprite';\nimport { extend } from './utils/objects';\nimport { getPercentage, replaceAll, toCamelCase, toTitleCase } from './utils/strings';\nimport { formatTime, getHours } from './utils/time';\n\n// TODO: Don't export a massive object - break down and create class\nconst controls = {\n // Get icon URL\n getIconUrl() {\n const url = new URL(this.config.iconUrl, window.location);\n const host = window.location.host ? window.location.host : window.top.location.host;\n const cors = url.host !== host || (browser.isIE && !window.svg4everybody);\n\n return {\n url: this.config.iconUrl,\n cors,\n };\n },\n\n // Find the UI controls\n findElements() {\n try {\n this.elements.controls = getElement.call(this, this.config.selectors.controls.wrapper);\n\n // Buttons\n this.elements.buttons = {\n play: getElements.call(this, this.config.selectors.buttons.play),\n pause: getElement.call(this, this.config.selectors.buttons.pause),\n restart: getElement.call(this, this.config.selectors.buttons.restart),\n rewind: getElement.call(this, this.config.selectors.buttons.rewind),\n fastForward: getElement.call(this, this.config.selectors.buttons.fastForward),\n mute: getElement.call(this, this.config.selectors.buttons.mute),\n pip: getElement.call(this, this.config.selectors.buttons.pip),\n airplay: getElement.call(this, this.config.selectors.buttons.airplay),\n settings: getElement.call(this, this.config.selectors.buttons.settings),\n captions: getElement.call(this, this.config.selectors.buttons.captions),\n fullscreen: getElement.call(this, this.config.selectors.buttons.fullscreen),\n };\n\n // Progress\n this.elements.progress = getElement.call(this, this.config.selectors.progress);\n\n // Inputs\n this.elements.inputs = {\n seek: getElement.call(this, this.config.selectors.inputs.seek),\n volume: getElement.call(this, this.config.selectors.inputs.volume),\n };\n\n // Display\n this.elements.display = {\n buffer: getElement.call(this, this.config.selectors.display.buffer),\n currentTime: getElement.call(this, this.config.selectors.display.currentTime),\n duration: getElement.call(this, this.config.selectors.display.duration),\n };\n\n // Seek tooltip\n if (is.element(this.elements.progress)) {\n this.elements.display.seekTooltip = this.elements.progress.querySelector(`.${this.config.classNames.tooltip}`);\n }\n\n return true;\n }\n catch (error) {\n // Log it\n this.debug.warn('It looks like there is a problem with your custom controls HTML', error);\n\n // Restore native video controls\n this.toggleNativeControls(true);\n\n return false;\n }\n },\n\n // Create icon\n createIcon(type, attributes) {\n const namespace = 'http://www.w3.org/2000/svg';\n const iconUrl = controls.getIconUrl.call(this);\n const iconPath = `${!iconUrl.cors ? iconUrl.url : ''}#${this.config.iconPrefix}`;\n // Create \n const icon = document.createElementNS(namespace, 'svg');\n setAttributes(\n icon,\n extend(attributes, {\n 'aria-hidden': 'true',\n 'focusable': 'false',\n }),\n );\n\n // Create the to reference sprite\n const use = document.createElementNS(namespace, 'use');\n const path = `${iconPath}-${type}`;\n\n // Set `href` attributes\n // https://github.com/sampotts/plyr/issues/460\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/xlink:href\n if ('href' in use) {\n use.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n }\n\n // Always set the older attribute even though it's \"deprecated\" (it'll be around for ages)\n use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', path);\n\n // Add to \n icon.appendChild(use);\n\n return icon;\n },\n\n // Create hidden text label\n createLabel(key, attr = {}) {\n const text = i18n.get(key, this.config);\n const attributes = { ...attr, class: [attr.class, this.config.classNames.hidden].filter(Boolean).join(' ') };\n\n return createElement('span', attributes, text);\n },\n\n // Create a badge\n createBadge(text) {\n if (is.empty(text)) {\n return null;\n }\n\n const badge = createElement('span', {\n class: this.config.classNames.menu.value,\n });\n\n badge.appendChild(\n createElement(\n 'span',\n {\n class: this.config.classNames.menu.badge,\n },\n text,\n ),\n );\n\n return badge;\n },\n\n // Create a
`);\n }\n\n // Set position\n tipElement.style.left = `${percent}%`;\n\n // Show/hide the tooltip\n // If the event is a moues in/out and percentage is inside bounds\n if (is.event(event) && ['mouseenter', 'mouseleave'].includes(event.type)) {\n toggle(event.type === 'mouseenter');\n }\n },\n\n // Handle time change event\n timeUpdate(event) {\n // Only invert if only one time element is displayed and used for both duration and currentTime\n const invert = !is.element(this.elements.display.duration) && this.config.invertTime;\n\n // Duration\n controls.updateTimeDisplay.call(\n this,\n this.elements.display.currentTime,\n invert ? this.duration - this.currentTime : this.currentTime,\n invert,\n );\n\n // Ignore updates while seeking\n if (event && event.type === 'timeupdate' && this.media.seeking) {\n return;\n }\n\n // Playing progress\n controls.updateProgress.call(this, event);\n },\n\n // Show the duration on metadataloaded or durationchange events\n durationUpdate() {\n // Bail if no UI or durationchange event triggered after playing/seek when invertTime is false\n if (!this.supported.ui || (!this.config.invertTime && this.currentTime)) {\n return;\n }\n\n // If duration is the 2**32 (shaka), Infinity (HLS), DASH-IF (Number.MAX_SAFE_INTEGER || Number.MAX_VALUE) indicating live we hide the currentTime and progressbar.\n // https://github.com/video-dev/hls.js/blob/5820d29d3c4c8a46e8b75f1e3afa3e68c1a9a2db/src/controller/buffer-controller.js#L415\n // https://github.com/google/shaka-player/blob/4d889054631f4e1cf0fbd80ddd2b71887c02e232/lib/media/streaming_engine.js#L1062\n // https://github.com/Dash-Industry-Forum/dash.js/blob/69859f51b969645b234666800d4cb596d89c602d/src/dash/models/DashManifestModel.js#L338\n if (this.duration >= 2 ** 32) {\n toggleHidden(this.elements.display.currentTime, true);\n toggleHidden(this.elements.progress, true);\n return;\n }\n\n // Update ARIA values\n if (is.element(this.elements.inputs.seek)) {\n this.elements.inputs.seek.setAttribute('aria-valuemax', this.duration);\n }\n\n // If there's a spot to display duration\n const hasDuration = is.element(this.elements.display.duration);\n\n // If there's only one time display, display duration there\n if (!hasDuration && this.config.displayDuration && this.paused) {\n controls.updateTimeDisplay.call(this, this.elements.display.currentTime, this.duration);\n }\n\n // If there's a duration element, update content\n if (hasDuration) {\n controls.updateTimeDisplay.call(this, this.elements.display.duration, this.duration);\n }\n\n if (this.config.markers.enabled) {\n controls.setMarkers.call(this);\n }\n\n // Update the tooltip (if visible)\n controls.updateSeekTooltip.call(this);\n },\n\n // Hide/show a tab\n toggleMenuButton(setting, toggle) {\n toggleHidden(this.elements.settings.buttons[setting], !toggle);\n },\n\n // Update the selected setting\n updateSetting(setting, container, input) {\n const pane = this.elements.settings.panels[setting];\n let value = null;\n let list = container;\n\n if (setting === 'captions') {\n value = this.currentTrack;\n }\n else {\n value = !is.empty(input) ? input : this[setting];\n\n // Get default\n if (is.empty(value)) {\n value = this.config[setting].default;\n }\n\n // Unsupported value\n if (!is.empty(this.options[setting]) && !this.options[setting].includes(value)) {\n this.debug.warn(`Unsupported value of '${value}' for ${setting}`);\n return;\n }\n\n // Disabled value\n if (!this.config[setting].options.includes(value)) {\n this.debug.warn(`Disabled value of '${value}' for ${setting}`);\n return;\n }\n }\n\n // Get the list if we need to\n if (!is.element(list)) {\n list = pane && pane.querySelector('[role=\"menu\"]');\n }\n\n // If there's no list it means it's not been rendered...\n if (!is.element(list)) {\n return;\n }\n\n // Update the label\n const label = this.elements.settings.buttons[setting].querySelector(`.${this.config.classNames.menu.value}`);\n label.innerHTML = controls.getLabel.call(this, setting, value);\n\n // Find the radio option and check it\n const target = list && list.querySelector(`[value=\"${value}\"]`);\n\n if (is.element(target)) {\n target.checked = true;\n }\n },\n\n // Translate a value into a nice label\n getLabel(setting, value) {\n switch (setting) {\n case 'speed':\n return value === 1 ? i18n.get('normal', this.config) : `${value}×`;\n\n case 'quality':\n if (is.number(value)) {\n const label = i18n.get(`qualityLabel.${value}`, this.config);\n\n if (!label.length) {\n return `${value}p`;\n }\n\n return label;\n }\n\n return toTitleCase(value);\n\n case 'captions':\n return captions.getLabel.call(this);\n\n default:\n return null;\n }\n },\n\n // Set the quality menu\n setQualityMenu(options) {\n // Menu required\n if (!is.element(this.elements.settings.panels.quality)) {\n return;\n }\n\n const type = 'quality';\n const list = this.elements.settings.panels.quality.querySelector('[role=\"menu\"]');\n\n // Set options if passed and filter based on uniqueness and config\n if (is.array(options)) {\n this.options.quality = dedupe(options).filter(quality => this.config.quality.options.includes(quality));\n }\n\n // Toggle the pane and tab\n const toggle = !is.empty(this.options.quality) && this.options.quality.length > 1;\n controls.toggleMenuButton.call(this, type, toggle);\n\n // Empty the menu\n emptyElement(list);\n\n // Check if we need to toggle the parent\n controls.checkMenu.call(this);\n\n // If we're hiding, nothing more to do\n if (!toggle) {\n return;\n }\n\n // Get the badge HTML for HD, 4K etc\n const getBadge = (quality) => {\n const label = i18n.get(`qualityBadge.${quality}`, this.config);\n\n if (!label.length) {\n return null;\n }\n\n return controls.createBadge.call(this, label);\n };\n\n // Sort options by the config and then render options\n this.options.quality\n .sort((a, b) => {\n const sorting = this.config.quality.options;\n return sorting.indexOf(a) > sorting.indexOf(b) ? 1 : -1;\n })\n .forEach((quality) => {\n controls.createMenuItem.call(this, {\n value: quality,\n list,\n type,\n title: controls.getLabel.call(this, 'quality', quality),\n badge: getBadge(quality),\n });\n });\n\n controls.updateSetting.call(this, type, list);\n },\n\n // Set the looping options\n /* setLoopMenu() {\n // Menu required\n if (!is.element(this.elements.settings.panels.loop)) {\n return;\n }\n\n const options = ['start', 'end', 'all', 'reset'];\n const list = this.elements.settings.panels.loop.querySelector('[role=\"menu\"]');\n\n // Show the pane and tab\n toggleHidden(this.elements.settings.buttons.loop, false);\n toggleHidden(this.elements.settings.panels.loop, false);\n\n // Toggle the pane and tab\n const toggle = !is.empty(this.loop.options);\n controls.toggleMenuButton.call(this, 'loop', toggle);\n\n // Empty the menu\n emptyElement(list);\n\n options.forEach(option => {\n const item = createElement('li');\n\n const button = createElement(\n 'button',\n extend(getAttributesFromSelector(this.config.selectors.buttons.loop), {\n type: 'button',\n class: this.config.classNames.control,\n 'data-plyr-loop-action': option,\n }),\n i18n.get(option, this.config)\n );\n\n if (['start', 'end'].includes(option)) {\n const badge = controls.createBadge.call(this, '00:00');\n button.appendChild(badge);\n }\n\n item.appendChild(button);\n list.appendChild(item);\n });\n }, */\n\n // Get current selected caption language\n // TODO: rework this to user the getter in the API?\n\n // Set a list of available captions languages\n setCaptionsMenu() {\n // Menu required\n if (!is.element(this.elements.settings.panels.captions)) {\n return;\n }\n\n // TODO: Captions or language? Currently it's mixed\n const type = 'captions';\n const list = this.elements.settings.panels.captions.querySelector('[role=\"menu\"]');\n const tracks = captions.getTracks.call(this);\n const toggle = Boolean(tracks.length);\n\n // Toggle the pane and tab\n controls.toggleMenuButton.call(this, type, toggle);\n\n // Empty the menu\n emptyElement(list);\n\n // Check if we need to toggle the parent\n controls.checkMenu.call(this);\n\n // If there's no captions, bail\n if (!toggle) {\n return;\n }\n\n // Generate options data\n const options = tracks.map((track, value) => ({\n value,\n checked: this.captions.toggled && this.currentTrack === value,\n title: captions.getLabel.call(this, track),\n badge: track.language && controls.createBadge.call(this, track.language.toUpperCase()),\n list,\n type: 'language',\n }));\n\n // Add the \"Disabled\" option to turn off captions\n options.unshift({\n value: -1,\n checked: !this.captions.toggled,\n title: i18n.get('disabled', this.config),\n list,\n type: 'language',\n });\n\n // Generate options\n options.forEach(controls.createMenuItem.bind(this));\n\n controls.updateSetting.call(this, type, list);\n },\n\n // Set a list of available captions languages\n setSpeedMenu() {\n // Menu required\n if (!is.element(this.elements.settings.panels.speed)) {\n return;\n }\n\n const type = 'speed';\n const list = this.elements.settings.panels.speed.querySelector('[role=\"menu\"]');\n\n // Filter out invalid speeds\n this.options.speed = this.options.speed.filter(o => o >= this.minimumSpeed && o <= this.maximumSpeed);\n\n // Toggle the pane and tab\n const toggle = !is.empty(this.options.speed) && this.options.speed.length > 1;\n controls.toggleMenuButton.call(this, type, toggle);\n\n // Empty the menu\n emptyElement(list);\n\n // Check if we need to toggle the parent\n controls.checkMenu.call(this);\n\n // If we're hiding, nothing more to do\n if (!toggle) {\n return;\n }\n\n // Create items\n this.options.speed.forEach((speed) => {\n controls.createMenuItem.call(this, {\n value: speed,\n list,\n type,\n title: controls.getLabel.call(this, 'speed', speed),\n });\n });\n\n controls.updateSetting.call(this, type, list);\n },\n\n // Check if we need to hide/show the settings menu\n checkMenu() {\n const { buttons } = this.elements.settings;\n const visible = !is.empty(buttons) && Object.values(buttons).some(button => !button.hidden);\n\n toggleHidden(this.elements.settings.menu, !visible);\n },\n\n // Focus the first menu item in a given (or visible) menu\n focusFirstMenuItem(pane, focusVisible = false) {\n if (this.elements.settings.popup.hidden) {\n return;\n }\n\n let target = pane;\n\n if (!is.element(target)) {\n target = Object.values(this.elements.settings.panels).find(p => !p.hidden);\n }\n\n const firstItem = target.querySelector('[role^=\"menuitem\"]');\n\n setFocus.call(this, firstItem, focusVisible);\n },\n\n // Show/hide menu\n toggleMenu(input) {\n const { popup } = this.elements.settings;\n const button = this.elements.buttons.settings;\n\n // Menu and button are required\n if (!is.element(popup) || !is.element(button)) {\n return;\n }\n\n // True toggle by default\n const { hidden } = popup;\n let show = hidden;\n\n if (is.boolean(input)) {\n show = input;\n }\n else if (is.keyboardEvent(input) && input.key === 'Escape') {\n show = false;\n }\n else if (is.event(input)) {\n // If Plyr is in a shadowDOM, the event target is set to the component, instead of the\n // Element in the shadowDOM. The path, if available, is complete.\n const target = is.function(input.composedPath) ? input.composedPath()[0] : input.target;\n const isMenuItem = popup.contains(target);\n\n // If the click was inside the menu or if the click\n // wasn't the button or menu item and we're trying to\n // show the menu (a doc click shouldn't show the menu)\n if (isMenuItem || (!isMenuItem && input.target !== button && show)) {\n return;\n }\n }\n\n // Set button attributes\n button.setAttribute('aria-expanded', show);\n\n // Show the actual popup\n toggleHidden(popup, !show);\n\n // Add class hook\n toggleClass(this.elements.container, this.config.classNames.menu.open, show);\n\n // Focus the first item if key interaction\n if (show && is.keyboardEvent(input)) {\n controls.focusFirstMenuItem.call(this, null, true);\n }\n else if (!show && !hidden) {\n // If closing, re-focus the button\n setFocus.call(this, button, is.keyboardEvent(input));\n }\n },\n\n // Get the natural size of a menu panel\n getMenuSize(tab) {\n const clone = tab.cloneNode(true);\n clone.style.position = 'absolute';\n clone.style.opacity = 0;\n clone.removeAttribute('hidden');\n\n // Append to parent so we get the \"real\" size\n tab.parentNode.appendChild(clone);\n\n // Get the sizes before we remove\n const width = clone.scrollWidth;\n const height = clone.scrollHeight;\n\n // Remove from the DOM\n removeElement(clone);\n\n return {\n width,\n height,\n };\n },\n\n // Show a panel in the menu\n showMenuPanel(type = '', focusVisible = false) {\n const target = this.elements.container.querySelector(`#plyr-settings-${this.id}-${type}`);\n\n // Nothing to show, bail\n if (!is.element(target)) {\n return;\n }\n\n // Hide all other panels\n const container = target.parentNode;\n const current = Array.from(container.children).find(node => !node.hidden);\n\n // If we can do fancy animations, we'll animate the height/width\n if (support.transitions && !support.reducedMotion) {\n // Set the current width as a base\n container.style.width = `${current.scrollWidth}px`;\n container.style.height = `${current.scrollHeight}px`;\n\n // Get potential sizes\n const size = controls.getMenuSize.call(this, target);\n\n // Restore auto height/width\n const restore = (event) => {\n // We're only bothered about height and width on the container\n if (event.target !== container || !['width', 'height'].includes(event.propertyName)) {\n return;\n }\n\n // Revert back to auto\n container.style.width = '';\n container.style.height = '';\n\n // Only listen once\n off.call(this, container, transitionEndEvent, restore);\n };\n\n // Listen for the transition finishing and restore auto height/width\n on.call(this, container, transitionEndEvent, restore);\n\n // Set dimensions to target\n container.style.width = `${size.width}px`;\n container.style.height = `${size.height}px`;\n }\n\n // Set attributes on current tab\n toggleHidden(current, true);\n\n // Set attributes on target\n toggleHidden(target, false);\n\n // Focus the first item\n controls.focusFirstMenuItem.call(this, target, focusVisible);\n },\n\n // Set the download URL\n setDownloadUrl() {\n const button = this.elements.buttons.download;\n\n // Bail if no button\n if (!is.element(button)) {\n return;\n }\n\n // Set attribute\n button.setAttribute('href', this.download);\n },\n\n // Build the default HTML\n create(data) {\n const {\n bindMenuItemShortcuts,\n createButton,\n createProgress,\n createRange,\n createTime,\n setQualityMenu,\n setSpeedMenu,\n showMenuPanel,\n } = controls;\n this.elements.controls = null;\n\n // Larger overlaid play button\n if (is.array(this.config.controls) && this.config.controls.includes('play-large')) {\n this.elements.container.appendChild(createButton.call(this, 'play-large'));\n }\n\n // Create the container\n const container = createElement('div', getAttributesFromSelector(this.config.selectors.controls.wrapper));\n this.elements.controls = container;\n\n // Default item attributes\n const defaultAttributes = { class: 'plyr__controls__item' };\n\n // Loop through controls in order\n dedupe(is.array(this.config.controls) ? this.config.controls : []).forEach((control) => {\n // Restart button\n if (control === 'restart') {\n container.appendChild(createButton.call(this, 'restart', defaultAttributes));\n }\n\n // Rewind button\n if (control === 'rewind') {\n container.appendChild(createButton.call(this, 'rewind', defaultAttributes));\n }\n\n // Play/Pause button\n if (control === 'play') {\n container.appendChild(createButton.call(this, 'play', defaultAttributes));\n }\n\n // Fast forward button\n if (control === 'fast-forward') {\n container.appendChild(createButton.call(this, 'fast-forward', defaultAttributes));\n }\n\n // Progress\n if (control === 'progress') {\n const progressContainer = createElement('div', {\n class: `${defaultAttributes.class} plyr__progress__container`,\n });\n\n const progress = createElement('div', getAttributesFromSelector(this.config.selectors.progress));\n\n // Seek range slider\n progress.appendChild(\n createRange.call(this, 'seek', {\n id: `plyr-seek-${data.id}`,\n }),\n );\n\n // Buffer progress\n progress.appendChild(createProgress.call(this, 'buffer'));\n\n // TODO: Add loop display indicator\n\n // Seek tooltip\n if (this.config.tooltips.seek) {\n const tooltip = createElement(\n 'span',\n {\n class: this.config.classNames.tooltip,\n },\n '00:00',\n );\n\n progress.appendChild(tooltip);\n this.elements.display.seekTooltip = tooltip;\n }\n\n this.elements.progress = progress;\n progressContainer.appendChild(this.elements.progress);\n container.appendChild(progressContainer);\n }\n\n // Media current time display\n if (control === 'current-time') {\n container.appendChild(createTime.call(this, 'currentTime', defaultAttributes));\n }\n\n // Media duration display\n if (control === 'duration') {\n container.appendChild(createTime.call(this, 'duration', defaultAttributes));\n }\n\n // Volume controls\n if (control === 'mute' || control === 'volume') {\n let { volume } = this.elements;\n\n // Create the volume container if needed\n if (!is.element(volume) || !container.contains(volume)) {\n volume = createElement(\n 'div',\n extend({}, defaultAttributes, {\n class: `${defaultAttributes.class} plyr__volume`.trim(),\n }),\n );\n\n this.elements.volume = volume;\n\n container.appendChild(volume);\n }\n\n // Toggle mute button\n if (control === 'mute') {\n volume.appendChild(createButton.call(this, 'mute'));\n }\n\n // Volume range control\n // Ignored on iOS as it's handled globally\n // https://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Device-SpecificConsiderations/Device-SpecificConsiderations.html\n if (control === 'volume' && !browser.isIos && !browser.isIPadOS) {\n // Set the attributes\n const attributes = {\n max: 1,\n step: 0.05,\n value: this.config.volume,\n };\n\n // Create the volume range slider\n volume.appendChild(\n createRange.call(\n this,\n 'volume',\n extend(attributes, {\n id: `plyr-volume-${data.id}`,\n }),\n ),\n );\n }\n }\n\n // Toggle captions button\n if (control === 'captions') {\n container.appendChild(createButton.call(this, 'captions', defaultAttributes));\n }\n\n // Settings button / menu\n if (control === 'settings' && !is.empty(this.config.settings)) {\n const wrapper = createElement(\n 'div',\n extend({}, defaultAttributes, {\n class: `${defaultAttributes.class} plyr__menu`.trim(),\n hidden: '',\n }),\n );\n\n wrapper.appendChild(\n createButton.call(this, 'settings', {\n 'aria-haspopup': true,\n 'aria-controls': `plyr-settings-${data.id}`,\n 'aria-expanded': false,\n }),\n );\n\n const popup = createElement('div', {\n class: 'plyr__menu__container',\n id: `plyr-settings-${data.id}`,\n hidden: '',\n });\n\n const inner = createElement('div');\n\n const home = createElement('div', {\n id: `plyr-settings-${data.id}-home`,\n });\n\n // Create the menu\n const menu = createElement('div', {\n role: 'menu',\n });\n\n home.appendChild(menu);\n inner.appendChild(home);\n this.elements.settings.panels.home = home;\n\n // Build the menu items\n this.config.settings.forEach((type) => {\n // TODO: bundle this with the createMenuItem helper and bindings\n const menuItem = createElement(\n 'button',\n extend(getAttributesFromSelector(this.config.selectors.buttons.settings), {\n 'type': 'button',\n 'class': `${this.config.classNames.control} ${this.config.classNames.control}--forward`,\n 'role': 'menuitem',\n 'aria-haspopup': true,\n 'hidden': '',\n }),\n );\n\n // Bind menu shortcuts for keyboard users\n bindMenuItemShortcuts.call(this, menuItem, type);\n\n // Show menu on click\n on.call(this, menuItem, 'click', () => {\n showMenuPanel.call(this, type, false);\n });\n\n const flex = createElement('span', null, i18n.get(type, this.config));\n\n const value = createElement('span', {\n class: this.config.classNames.menu.value,\n });\n\n // Speed contains HTML entities\n value.innerHTML = data[type];\n\n flex.appendChild(value);\n menuItem.appendChild(flex);\n menu.appendChild(menuItem);\n\n // Build the panes\n const pane = createElement('div', {\n id: `plyr-settings-${data.id}-${type}`,\n hidden: '',\n });\n\n // Back button\n const backButton = createElement('button', {\n type: 'button',\n class: `${this.config.classNames.control} ${this.config.classNames.control}--back`,\n });\n\n // Visible label\n backButton.appendChild(\n createElement(\n 'span',\n {\n 'aria-hidden': true,\n },\n i18n.get(type, this.config),\n ),\n );\n\n // Screen reader label\n backButton.appendChild(\n createElement(\n 'span',\n {\n class: this.config.classNames.hidden,\n },\n i18n.get('menuBack', this.config),\n ),\n );\n\n // Go back via keyboard\n on.call(\n this,\n pane,\n 'keydown',\n (event) => {\n if (event.key !== 'ArrowLeft') return;\n\n // Prevent seek\n event.preventDefault();\n event.stopPropagation();\n\n // Show the respective menu\n showMenuPanel.call(this, 'home', true);\n },\n false,\n );\n\n // Go back via button click\n on.call(this, backButton, 'click', () => {\n showMenuPanel.call(this, 'home', false);\n });\n\n // Add to pane\n pane.appendChild(backButton);\n\n // Menu\n pane.appendChild(\n createElement('div', {\n role: 'menu',\n }),\n );\n\n inner.appendChild(pane);\n\n this.elements.settings.buttons[type] = menuItem;\n this.elements.settings.panels[type] = pane;\n });\n\n popup.appendChild(inner);\n wrapper.appendChild(popup);\n container.appendChild(wrapper);\n\n this.elements.settings.popup = popup;\n this.elements.settings.menu = wrapper;\n }\n\n // Picture in picture button\n if (control === 'pip' && support.pip) {\n container.appendChild(createButton.call(this, 'pip', defaultAttributes));\n }\n\n // Airplay button\n if (control === 'airplay' && support.airplay) {\n container.appendChild(createButton.call(this, 'airplay', defaultAttributes));\n }\n\n // Download button\n if (control === 'download') {\n const attributes = extend({}, defaultAttributes, {\n element: 'a',\n href: this.download,\n target: '_blank',\n });\n\n // Set download attribute for HTML5 only\n if (this.isHTML5) {\n attributes.download = '';\n }\n\n const { download } = this.config.urls;\n\n if (!is.url(download) && this.isEmbed) {\n extend(attributes, {\n icon: `logo-${this.provider}`,\n label: this.provider,\n });\n }\n\n container.appendChild(createButton.call(this, 'download', attributes));\n }\n\n // Toggle fullscreen button\n if (control === 'fullscreen') {\n container.appendChild(createButton.call(this, 'fullscreen', defaultAttributes));\n }\n });\n\n // Set available quality levels\n if (this.isHTML5) {\n setQualityMenu.call(this, html5.getQualityOptions.call(this));\n }\n\n setSpeedMenu.call(this);\n\n return container;\n },\n\n // Insert controls\n inject() {\n // Sprite\n if (this.config.loadSprite) {\n const icon = controls.getIconUrl.call(this);\n\n // Only load external sprite using AJAX\n if (icon.cors) {\n loadSprite(icon.url, 'sprite-plyr');\n }\n }\n\n // Create a unique ID\n this.id = Math.floor(Math.random() * 10000);\n\n // Null by default\n let container = null;\n this.elements.controls = null;\n\n // Set template properties\n const props = {\n id: this.id,\n seektime: this.config.seekTime,\n title: this.config.title,\n };\n let update = true;\n\n // If function, run it and use output\n if (is.function(this.config.controls)) {\n this.config.controls = this.config.controls.call(this, props);\n }\n\n // Convert falsy controls to empty array (primarily for empty strings)\n if (!this.config.controls) {\n this.config.controls = [];\n }\n\n if (is.element(this.config.controls) || is.string(this.config.controls)) {\n // HTMLElement or Non-empty string passed as the option\n container = this.config.controls;\n }\n else {\n // Create controls\n container = controls.create.call(this, {\n id: this.id,\n seektime: this.config.seekTime,\n speed: this.speed,\n quality: this.quality,\n captions: captions.getLabel.call(this),\n // TODO: Looping\n // loop: 'None',\n });\n update = false;\n }\n\n // Replace props with their value\n const replace = (input) => {\n let result = input;\n\n Object.entries(props).forEach(([key, value]) => {\n result = replaceAll(result, `{${key}}`, value);\n });\n\n return result;\n };\n\n // Update markup\n if (update) {\n if (is.string(this.config.controls)) {\n container = replace(container);\n }\n }\n\n // Controls container\n let target;\n\n // Inject to custom location\n if (is.string(this.config.selectors.controls.container)) {\n target = document.querySelector(this.config.selectors.controls.container);\n }\n\n // Inject into the container by default\n if (!is.element(target)) {\n target = this.elements.container;\n }\n\n // Inject controls HTML (needs to be before captions, hence \"afterbegin\")\n const insertMethod = is.element(container) ? 'insertAdjacentElement' : 'insertAdjacentHTML';\n target[insertMethod]('afterbegin', container);\n\n // Find the elements if need be\n if (!is.element(this.elements.controls)) {\n controls.findElements.call(this);\n }\n\n // Add pressed property to buttons\n if (!is.empty(this.elements.buttons)) {\n const addProperty = (button) => {\n const className = this.config.classNames.controlPressed;\n button.setAttribute('aria-pressed', 'false');\n\n Object.defineProperty(button, 'pressed', {\n configurable: true,\n enumerable: true,\n get() {\n return hasClass(button, className);\n },\n set(pressed = false) {\n toggleClass(button, className, pressed);\n button.setAttribute('aria-pressed', pressed ? 'true' : 'false');\n },\n });\n };\n\n // Toggle classname when pressed property is set\n Object.values(this.elements.buttons)\n .filter(Boolean)\n .forEach((button) => {\n if (is.array(button) || is.nodeList(button)) {\n Array.from(button).filter(Boolean).forEach(addProperty);\n }\n else {\n addProperty(button);\n }\n });\n }\n\n // Edge sometimes doesn't finish the paint so force a repaint\n if (browser.isEdge) {\n repaint(target);\n }\n\n // Setup tooltips\n if (this.config.tooltips.controls) {\n const { classNames, selectors } = this.config;\n const selector = `${selectors.controls.wrapper} ${selectors.labels} .${classNames.hidden}`;\n const labels = getElements.call(this, selector);\n\n Array.from(labels).forEach((label) => {\n toggleClass(label, this.config.classNames.hidden, false);\n toggleClass(label, this.config.classNames.tooltip, true);\n });\n }\n },\n\n // Set media metadata\n setMediaMetadata() {\n try {\n if ('mediaSession' in navigator) {\n navigator.mediaSession.metadata = new window.MediaMetadata({\n title: this.config.mediaMetadata.title,\n artist: this.config.mediaMetadata.artist,\n album: this.config.mediaMetadata.album,\n artwork: this.config.mediaMetadata.artwork,\n });\n }\n }\n catch {\n // Do nothing\n }\n },\n\n // Add markers\n setMarkers() {\n if (!this.duration || this.elements.markers) return;\n\n // Get valid points\n const points = this.config.markers?.points?.filter(({ time }) => time > 0 && time < this.duration);\n if (!points?.length) return;\n\n const containerFragment = document.createDocumentFragment();\n const pointsFragment = document.createDocumentFragment();\n let tipElement = null;\n const tipVisible = `${this.config.classNames.tooltip}--visible`;\n const toggleTip = show => toggleClass(tipElement, tipVisible, show);\n\n // Inject markers to progress container\n points.forEach((point) => {\n const markerElement = createElement(\n 'span',\n {\n class: this.config.classNames.marker,\n },\n '',\n );\n\n const left = `${(point.time / this.duration) * 100}%`;\n\n if (tipElement) {\n // Show on hover\n markerElement.addEventListener('mouseenter', () => {\n if (point.label) return;\n tipElement.style.left = left;\n tipElement.innerHTML = point.label;\n toggleTip(true);\n });\n\n // Hide on leave\n markerElement.addEventListener('mouseleave', () => {\n toggleTip(false);\n });\n }\n\n markerElement.addEventListener('click', () => {\n this.currentTime = point.time;\n });\n\n markerElement.style.left = left;\n pointsFragment.appendChild(markerElement);\n });\n\n containerFragment.appendChild(pointsFragment);\n\n // Inject a tooltip if needed\n if (!this.config.tooltips.seek) {\n tipElement = createElement(\n 'span',\n {\n class: this.config.classNames.tooltip,\n },\n '',\n );\n\n containerFragment.appendChild(tipElement);\n }\n\n this.elements.markers = {\n points: pointsFragment,\n tip: tipElement,\n };\n\n this.elements.progress.appendChild(containerFragment);\n },\n};\n\nexport default controls;\n","// ==========================================================================\n// URL utils\n// ==========================================================================\n\nimport is from './is';\n\n/**\n * Parse a string to a URL object\n * @param {string} input - the URL to be parsed\n * @param {boolean} safe - failsafe parsing\n */\nexport function parseUrl(input, safe = true) {\n let url = input;\n\n if (safe) {\n const parser = document.createElement('a');\n parser.href = url;\n url = parser.href;\n }\n\n try {\n return new URL(url);\n }\n catch {\n return null;\n }\n}\n\n// Convert object to URLSearchParams\nexport function buildUrlParams(input) {\n const params = new URLSearchParams();\n\n if (is.object(input)) {\n Object.entries(input).forEach(([key, value]) => {\n params.set(key, value);\n });\n }\n\n return params;\n}\n","// ==========================================================================\n// Plyr Captions\n// TODO: Create as class\n// ==========================================================================\n\nimport controls from './controls';\nimport support from './support';\nimport { dedupe } from './utils/arrays';\nimport browser from './utils/browser';\nimport {\n createElement,\n emptyElement,\n getAttributesFromSelector,\n insertAfter,\n removeElement,\n toggleClass,\n} from './utils/elements';\nimport { on, triggerEvent } from './utils/events';\nimport fetch from './utils/fetch';\nimport i18n from './utils/i18n';\nimport is from './utils/is';\nimport { getHTML } from './utils/strings';\nimport { parseUrl } from './utils/urls';\n\nconst captions = {\n // Setup captions\n setup() {\n // Requires UI support\n if (!this.supported.ui) {\n return;\n }\n\n // Only Vimeo and HTML5 video supported at this point\n if (!this.isVideo || this.isYouTube || (this.isHTML5 && !support.textTracks)) {\n // Clear menu and hide\n if (\n is.array(this.config.controls)\n && this.config.controls.includes('settings')\n && this.config.settings.includes('captions')\n ) {\n controls.setCaptionsMenu.call(this);\n }\n\n return;\n }\n\n // Inject the container\n if (!is.element(this.elements.captions)) {\n this.elements.captions = createElement('div', getAttributesFromSelector(this.config.selectors.captions));\n this.elements.captions.setAttribute('dir', 'auto');\n\n insertAfter(this.elements.captions, this.elements.wrapper);\n }\n\n // Fix IE captions if CORS is used\n // Fetch captions and inject as blobs instead (data URIs not supported!)\n if (browser.isIE && window.URL) {\n const elements = this.media.querySelectorAll('track');\n\n Array.from(elements).forEach((track) => {\n const src = track.getAttribute('src');\n const url = parseUrl(src);\n\n if (\n url !== null\n && url.hostname !== window.location.href.hostname\n && ['http:', 'https:'].includes(url.protocol)\n ) {\n fetch(src, 'blob')\n .then((blob) => {\n track.setAttribute('src', window.URL.createObjectURL(blob));\n })\n .catch(() => {\n removeElement(track);\n });\n }\n });\n }\n\n // Get and set initial data\n // The \"preferred\" options are not realized unless / until the wanted language has a match\n // * languages: Array of user's browser languages.\n // * language: The language preferred by user settings or config\n // * active: The state preferred by user settings or config\n // * toggled: The real captions state\n\n const browserLanguages = navigator.languages || [navigator.language || navigator.userLanguage || 'en'];\n const languages = dedupe(browserLanguages.map(language => language.split('-')[0]));\n let language = (this.storage.get('language') || this.captions.language || this.config.captions.language || 'auto').toLowerCase();\n\n // Use first browser language when language is 'auto'\n if (language === 'auto') {\n [language] = languages;\n }\n\n let active = this.storage.get('captions') || this.captions.active;\n if (!is.boolean(active)) {\n ({ active } = this.config.captions);\n }\n\n Object.assign(this.captions, {\n toggled: false,\n active,\n language,\n languages,\n });\n\n // Watch changes to textTracks and update captions menu\n if (this.isHTML5) {\n const trackEvents = this.config.captions.update ? 'addtrack removetrack' : 'removetrack';\n on.call(this, this.media.textTracks, trackEvents, captions.update.bind(this));\n }\n\n // Update available languages in list next tick (the event must not be triggered before the listeners)\n setTimeout(captions.update.bind(this), 0);\n },\n\n // Update available language options in settings based on tracks\n update() {\n const tracks = captions.getTracks.call(this, true);\n // Get the wanted language\n const { active, language, meta, currentTrackNode } = this.captions;\n const languageExists = Boolean(tracks.find(track => track.language === language));\n\n // Handle tracks (add event listener and \"pseudo\"-default)\n if (this.isHTML5 && this.isVideo) {\n tracks\n .filter(track => !meta.get(track))\n .forEach((track) => {\n this.debug.log('Track added', track);\n\n // Attempt to store if the original dom element was \"default\"\n meta.set(track, {\n default: track.mode === 'showing',\n });\n\n // Turn off native caption rendering to avoid double captions\n // Note: mode='hidden' forces a track to download. To ensure every track\n // isn't downloaded at once, only 'showing' tracks should be reassigned\n\n if (track.mode === 'showing') {\n track.mode = 'hidden';\n }\n\n // Add event listener for cue changes\n on.call(this, track, 'cuechange', () => captions.updateCues.call(this));\n });\n }\n\n // Update language first time it matches, or if the previous matching track was removed\n if ((languageExists && this.language !== language) || !tracks.includes(currentTrackNode)) {\n captions.setLanguage.call(this, language);\n captions.toggle.call(this, active && languageExists);\n }\n\n // Enable or disable captions based on track length\n if (this.elements) {\n toggleClass(this.elements.container, this.config.classNames.captions.enabled, !is.empty(tracks));\n }\n\n // Update available languages in list\n if (\n is.array(this.config.controls)\n && this.config.controls.includes('settings')\n && this.config.settings.includes('captions')\n ) {\n controls.setCaptionsMenu.call(this);\n }\n },\n\n // Toggle captions display\n // Used internally for the toggleCaptions method, with the passive option forced to false\n toggle(input, passive = true) {\n // If there's no full support\n if (!this.supported.ui) {\n return;\n }\n\n const { toggled } = this.captions; // Current state\n const activeClass = this.config.classNames.captions.active;\n // Get the next state\n // If the method is called without parameter, toggle based on current value\n const active = is.nullOrUndefined(input) ? !toggled : input;\n\n // Update state and trigger event\n if (active !== toggled) {\n // When passive, don't override user preferences\n if (!passive) {\n this.captions.active = active;\n this.storage.set({ captions: active });\n }\n\n // Force language if the call isn't passive and there is no matching language to toggle to\n if (!this.language && active && !passive) {\n const tracks = captions.getTracks.call(this);\n const track = captions.findTrack.call(this, [this.captions.language, ...this.captions.languages], true);\n\n // Override user preferences to avoid switching languages if a matching track is added\n this.captions.language = track.language;\n\n // Set caption, but don't store in localStorage as user preference\n captions.set.call(this, tracks.indexOf(track));\n return;\n }\n\n // Toggle button if it's enabled\n if (this.elements.buttons.captions) {\n this.elements.buttons.captions.pressed = active;\n }\n\n // Add class hook\n toggleClass(this.elements.container, activeClass, active);\n\n this.captions.toggled = active;\n\n // Update settings menu\n controls.updateSetting.call(this, 'captions');\n\n // Trigger event (not used internally)\n triggerEvent.call(this, this.media, active ? 'captionsenabled' : 'captionsdisabled');\n }\n\n // Wait for the call stack to clear before setting mode='hidden'\n // on the active track - forcing the browser to download it\n setTimeout(() => {\n if (active && this.captions.toggled) {\n this.captions.currentTrackNode.mode = 'hidden';\n }\n });\n },\n\n // Set captions by track index\n // Used internally for the currentTrack setter with the passive option forced to false\n set(index, passive = true) {\n const tracks = captions.getTracks.call(this);\n\n // Disable captions if setting to -1\n if (index === -1) {\n captions.toggle.call(this, false, passive);\n return;\n }\n\n if (!is.number(index)) {\n this.debug.warn('Invalid caption argument', index);\n return;\n }\n\n if (!(index in tracks)) {\n this.debug.warn('Track not found', index);\n return;\n }\n\n if (this.captions.currentTrack !== index) {\n this.captions.currentTrack = index;\n const track = tracks[index];\n const { language } = track || {};\n\n // Store reference to node for invalidation on remove\n this.captions.currentTrackNode = track;\n\n // Update settings menu\n controls.updateSetting.call(this, 'captions');\n\n // When passive, don't override user preferences\n if (!passive) {\n this.captions.language = language;\n this.storage.set({ language });\n }\n\n // Handle Vimeo captions\n if (this.isVimeo) {\n this.embed.enableTextTrack(language);\n }\n\n // Trigger event\n triggerEvent.call(this, this.media, 'languagechange');\n }\n\n // Show captions\n captions.toggle.call(this, true, passive);\n\n if (this.isHTML5 && this.isVideo) {\n // If we change the active track while a cue is already displayed we need to update it\n captions.updateCues.call(this);\n }\n },\n\n // Set captions by language\n // Used internally for the language setter with the passive option forced to false\n setLanguage(input, passive = true) {\n if (!is.string(input)) {\n this.debug.warn('Invalid language argument', input);\n return;\n }\n // Normalize\n const language = input.toLowerCase();\n this.captions.language = language;\n\n // Set currentTrack\n const tracks = captions.getTracks.call(this);\n const track = captions.findTrack.call(this, [language]);\n captions.set.call(this, tracks.indexOf(track), passive);\n },\n\n // Get current valid caption tracks\n // If update is false it will also ignore tracks without metadata\n // This is used to \"freeze\" the language options when captions.update is false\n getTracks(update = false) {\n // Handle media or textTracks missing or null\n const tracks = Array.from((this.media || {}).textTracks || []);\n // For HTML5, use cache instead of current tracks when it exists (if captions.update is false)\n // Filter out removed tracks and tracks that aren't captions/subtitles (for example metadata)\n return tracks\n .filter(track => !this.isHTML5 || update || this.captions.meta.has(track))\n .filter(track => ['captions', 'subtitles'].includes(track.kind));\n },\n\n // Match tracks based on languages and get the first\n findTrack(languages, force = false) {\n const tracks = captions.getTracks.call(this);\n const sortIsDefault = track => Number((this.captions.meta.get(track) || {}).default);\n const sorted = Array.from(tracks).sort((a, b) => sortIsDefault(b) - sortIsDefault(a));\n let track;\n\n languages.every((language) => {\n track = sorted.find(t => t.language === language);\n return !track; // Break iteration if there is a match\n });\n\n // If no match is found but is required, get first\n return track || (force ? sorted[0] : undefined);\n },\n\n // Get the current track\n getCurrentTrack() {\n return captions.getTracks.call(this)[this.currentTrack];\n },\n\n // Get UI label for track\n getLabel(track) {\n let currentTrack = track;\n\n if (!is.track(currentTrack) && support.textTracks && this.captions.toggled) {\n currentTrack = captions.getCurrentTrack.call(this);\n }\n\n if (is.track(currentTrack)) {\n if (!is.empty(currentTrack.label)) {\n return currentTrack.label;\n }\n\n if (!is.empty(currentTrack.language)) {\n return track.language.toUpperCase();\n }\n\n return i18n.get('enabled', this.config);\n }\n\n return i18n.get('disabled', this.config);\n },\n\n // Update captions using current track's active cues\n // Also optional array argument in case there isn't any track (ex: vimeo)\n updateCues(input) {\n // Requires UI\n if (!this.supported.ui) {\n return;\n }\n\n if (!is.element(this.elements.captions)) {\n this.debug.warn('No captions element to render to');\n return;\n }\n\n // Only accept array or empty input\n if (!is.nullOrUndefined(input) && !Array.isArray(input)) {\n this.debug.warn('updateCues: Invalid input', input);\n return;\n }\n\n let cues = input;\n\n // Get cues from track\n if (!cues) {\n const track = captions.getCurrentTrack.call(this);\n\n cues = Array.from((track || {}).activeCues || [])\n .map(cue => cue.getCueAsHTML())\n .map(getHTML);\n }\n\n // Set new caption text\n const content = cues.map(cueText => cueText.trim()).join('\\n');\n const changed = content !== this.elements.captions.innerHTML;\n\n if (changed) {\n // Empty the container and create a new child element\n emptyElement(this.elements.captions);\n const caption = createElement('span', getAttributesFromSelector(this.config.selectors.caption));\n caption.innerHTML = content;\n this.elements.captions.appendChild(caption);\n\n // Trigger event\n triggerEvent.call(this, this.media, 'cuechange');\n }\n },\n};\n\nexport default captions;\n","// ==========================================================================\n// Plyr default config\n// ==========================================================================\n\nconst defaults = {\n // Disable\n enabled: true,\n\n // Custom media title\n title: '',\n\n // Logging to console\n debug: false,\n\n // Auto play (if supported)\n autoplay: false,\n\n // Only allow one media playing at once (vimeo only)\n autopause: true,\n\n // Allow inline playback on iOS\n playsinline: true,\n\n // Default time to skip when rewind/fast forward\n seekTime: 10,\n\n // Default volume\n volume: 1,\n muted: false,\n\n // Pass a custom duration\n duration: null,\n\n // Display the media duration on load in the current time position\n // If you have opted to display both duration and currentTime, this is ignored\n displayDuration: true,\n\n // Invert the current time to be a countdown\n invertTime: true,\n\n // Clicking the currentTime inverts it's value to show time left rather than elapsed\n toggleInvert: true,\n\n // Force an aspect ratio\n // The format must be `'w:h'` (e.g. `'16:9'`)\n ratio: null,\n\n // Click video container to play/pause\n clickToPlay: true,\n\n // Auto hide the controls\n hideControls: true,\n\n // Reset to start when playback ended\n resetOnEnd: false,\n\n // Disable the standard context menu\n disableContextMenu: true,\n\n // Sprite (for icons)\n loadSprite: true,\n iconPrefix: 'plyr',\n iconUrl: 'https://cdn.plyr.io/3.8.3/plyr.svg',\n\n // Blank video (used to prevent errors on source change)\n blankVideo: 'https://cdn.plyr.io/static/blank.mp4',\n\n // Quality default\n quality: {\n default: 576,\n // The options to display in the UI, if available for the source media\n options: [4320, 2880, 2160, 1440, 1080, 720, 576, 480, 360, 240],\n forced: false,\n onChange: null,\n },\n\n // Set loops\n loop: {\n active: false,\n // start: null,\n // end: null,\n },\n\n // Speed default and options to display\n speed: {\n selected: 1,\n // The options to display in the UI, if available for the source media (e.g. Vimeo and YouTube only support 0.5x-4x)\n options: [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 4],\n },\n\n // Keyboard shortcut settings\n keyboard: {\n focused: true,\n global: false,\n },\n\n // Display tooltips\n tooltips: {\n controls: false,\n seek: true,\n },\n\n // Captions settings\n captions: {\n active: false,\n language: 'auto',\n // Listen to new tracks added after Plyr is initialized.\n // This is needed for streaming captions, but may result in unselectable options\n update: false,\n },\n\n // Fullscreen settings\n fullscreen: {\n enabled: true, // Allow fullscreen?\n fallback: true, // Fallback using full viewport/window\n iosNative: false, // Use the native fullscreen in iOS (disables custom controls)\n // Selector for the fullscreen container so contextual / non-player content can remain visible in fullscreen mode\n // Non-ancestors of the player element will be ignored\n // container: null, // defaults to the player element\n },\n\n // Local storage\n storage: {\n enabled: true,\n key: 'plyr',\n },\n\n // Default controls\n controls: [\n 'play-large',\n // 'restart',\n // 'rewind',\n 'play',\n // 'fast-forward',\n 'progress',\n 'current-time',\n // 'duration',\n 'mute',\n 'volume',\n 'captions',\n 'settings',\n 'pip',\n 'airplay',\n // 'download',\n 'fullscreen',\n ],\n settings: ['captions', 'quality', 'speed'],\n\n // Localisation\n i18n: {\n restart: 'Restart',\n rewind: 'Rewind {seektime}s',\n play: 'Play',\n pause: 'Pause',\n fastForward: 'Forward {seektime}s',\n seek: 'Seek',\n seekLabel: '{currentTime} of {duration}',\n played: 'Played',\n buffered: 'Buffered',\n currentTime: 'Current time',\n duration: 'Duration',\n volume: 'Volume',\n mute: 'Mute',\n unmute: 'Unmute',\n enableCaptions: 'Enable captions',\n disableCaptions: 'Disable captions',\n download: 'Download',\n enterFullscreen: 'Enter fullscreen',\n exitFullscreen: 'Exit fullscreen',\n frameTitle: 'Player for {title}',\n captions: 'Captions',\n settings: 'Settings',\n pip: 'PIP',\n menuBack: 'Go back to previous menu',\n speed: 'Speed',\n normal: 'Normal',\n quality: 'Quality',\n loop: 'Loop',\n start: 'Start',\n end: 'End',\n all: 'All',\n reset: 'Reset',\n disabled: 'Disabled',\n enabled: 'Enabled',\n advertisement: 'Ad',\n qualityBadge: {\n 2160: '4K',\n 1440: 'HD',\n 1080: 'HD',\n 720: 'HD',\n 576: 'SD',\n 480: 'SD',\n },\n },\n\n // URLs\n urls: {\n download: null,\n vimeo: {\n sdk: 'https://player.vimeo.com/api/player.js',\n iframe: 'https://player.vimeo.com/video/{0}?{1}',\n api: 'https://vimeo.com/api/oembed.json?url={0}',\n },\n youtube: {\n sdk: 'https://www.youtube.com/iframe_api',\n api: 'https://noembed.com/embed?url=https://www.youtube.com/watch?v={0}',\n },\n googleIMA: {\n sdk: 'https://imasdk.googleapis.com/js/sdkloader/ima3.js',\n },\n },\n\n // Custom control listeners\n listeners: {\n seek: null,\n play: null,\n pause: null,\n restart: null,\n rewind: null,\n fastForward: null,\n mute: null,\n volume: null,\n captions: null,\n download: null,\n fullscreen: null,\n pip: null,\n airplay: null,\n speed: null,\n quality: null,\n loop: null,\n language: null,\n },\n\n // Events to watch and bubble\n events: [\n // Events to watch on HTML5 media elements and bubble\n // https://developer.mozilla.org/en/docs/Web/Guide/Events/Media_events\n 'ended',\n 'progress',\n 'stalled',\n 'playing',\n 'waiting',\n 'canplay',\n 'canplaythrough',\n 'loadstart',\n 'loadeddata',\n 'loadedmetadata',\n 'timeupdate',\n 'volumechange',\n 'play',\n 'pause',\n 'error',\n 'seeking',\n 'seeked',\n 'emptied',\n 'ratechange',\n 'cuechange',\n\n // Custom events\n 'download',\n 'enterfullscreen',\n 'exitfullscreen',\n 'captionsenabled',\n 'captionsdisabled',\n 'languagechange',\n 'controlshidden',\n 'controlsshown',\n 'ready',\n\n // YouTube\n 'statechange',\n\n // Quality\n 'qualitychange',\n\n // Ads\n 'adsloaded',\n 'adscontentpause',\n 'adscontentresume',\n 'adstarted',\n 'adsmidpoint',\n 'adscomplete',\n 'adsallcomplete',\n 'adsimpression',\n 'adsclick',\n ],\n\n // Selectors\n // Change these to match your template if using custom HTML\n selectors: {\n editable: 'input, textarea, select, [contenteditable]',\n container: '.plyr',\n controls: {\n container: null,\n wrapper: '.plyr__controls',\n },\n labels: '[data-plyr]',\n buttons: {\n play: '[data-plyr=\"play\"]',\n pause: '[data-plyr=\"pause\"]',\n restart: '[data-plyr=\"restart\"]',\n rewind: '[data-plyr=\"rewind\"]',\n fastForward: '[data-plyr=\"fast-forward\"]',\n mute: '[data-plyr=\"mute\"]',\n captions: '[data-plyr=\"captions\"]',\n download: '[data-plyr=\"download\"]',\n fullscreen: '[data-plyr=\"fullscreen\"]',\n pip: '[data-plyr=\"pip\"]',\n airplay: '[data-plyr=\"airplay\"]',\n settings: '[data-plyr=\"settings\"]',\n loop: '[data-plyr=\"loop\"]',\n },\n inputs: {\n seek: '[data-plyr=\"seek\"]',\n volume: '[data-plyr=\"volume\"]',\n speed: '[data-plyr=\"speed\"]',\n language: '[data-plyr=\"language\"]',\n quality: '[data-plyr=\"quality\"]',\n },\n display: {\n currentTime: '.plyr__time--current',\n duration: '.plyr__time--duration',\n buffer: '.plyr__progress__buffer',\n loop: '.plyr__progress__loop', // Used later\n volume: '.plyr__volume--display',\n },\n progress: '.plyr__progress',\n captions: '.plyr__captions',\n caption: '.plyr__caption',\n },\n\n // Class hooks added to the player in different states\n classNames: {\n type: 'plyr--{0}',\n provider: 'plyr--{0}',\n video: 'plyr__video-wrapper',\n embed: 'plyr__video-embed',\n videoFixedRatio: 'plyr__video-wrapper--fixed-ratio',\n embedContainer: 'plyr__video-embed__container',\n poster: 'plyr__poster',\n posterEnabled: 'plyr__poster-enabled',\n ads: 'plyr__ads',\n control: 'plyr__control',\n controlPressed: 'plyr__control--pressed',\n playing: 'plyr--playing',\n paused: 'plyr--paused',\n stopped: 'plyr--stopped',\n loading: 'plyr--loading',\n hover: 'plyr--hover',\n tooltip: 'plyr__tooltip',\n cues: 'plyr__cues',\n marker: 'plyr__progress__marker',\n hidden: 'plyr__sr-only',\n hideControls: 'plyr--hide-controls',\n isTouch: 'plyr--is-touch',\n uiSupported: 'plyr--full-ui',\n noTransition: 'plyr--no-transition',\n display: {\n time: 'plyr__time',\n },\n menu: {\n value: 'plyr__menu__value',\n badge: 'plyr__badge',\n open: 'plyr--menu-open',\n },\n captions: {\n enabled: 'plyr--captions-enabled',\n active: 'plyr--captions-active',\n },\n fullscreen: {\n enabled: 'plyr--fullscreen-enabled',\n fallback: 'plyr--fullscreen-fallback',\n },\n pip: {\n supported: 'plyr--pip-supported',\n active: 'plyr--pip-active',\n },\n airplay: {\n supported: 'plyr--airplay-supported',\n active: 'plyr--airplay-active',\n },\n previewThumbnails: {\n // Tooltip thumbs\n thumbContainer: 'plyr__preview-thumb',\n thumbContainerShown: 'plyr__preview-thumb--is-shown',\n imageContainer: 'plyr__preview-thumb__image-container',\n timeContainer: 'plyr__preview-thumb__time-container',\n // Scrubbing\n scrubbingContainer: 'plyr__preview-scrubbing',\n scrubbingContainerShown: 'plyr__preview-scrubbing--is-shown',\n },\n },\n\n // Embed attributes\n attributes: {\n embed: {\n provider: 'data-plyr-provider',\n id: 'data-plyr-embed-id',\n hash: 'data-plyr-embed-hash',\n },\n },\n\n // Advertisements plugin\n // Register for an account here: http://vi.ai/publisher-video-monetization/?aid=plyrio\n ads: {\n enabled: false,\n publisherId: '',\n tagUrl: '',\n },\n\n // Preview Thumbnails plugin\n previewThumbnails: {\n enabled: false,\n src: '',\n withCredentials: false,\n },\n\n // Vimeo plugin\n vimeo: {\n byline: false,\n portrait: false,\n title: false,\n speed: true,\n transparent: false,\n // Custom settings from Plyr\n customControls: true,\n referrerPolicy: null, // https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/referrerPolicy\n // Whether the owner of the video has a Pro or Business account\n // (which allows us to properly hide controls without CSS hacks, etc)\n premium: false,\n },\n\n // YouTube plugin\n youtube: {\n rel: 0, // No related vids\n showinfo: 0, // Hide info\n iv_load_policy: 3, // Hide annotations\n modestbranding: 1, // Hide logos as much as possible (they still show one in the corner when paused)\n // Custom settings from Plyr\n customControls: true,\n noCookie: false, // Whether to use an alternative version of YouTube without cookies\n },\n\n // Media Metadata\n mediaMetadata: {\n title: '',\n artist: '',\n album: '',\n artwork: [],\n },\n\n // Markers\n markers: {\n enabled: false,\n points: [],\n },\n};\n\nexport default defaults;\n","// ==========================================================================\n// Plyr states\n// ==========================================================================\n\nexport const pip = {\n active: 'picture-in-picture',\n inactive: 'inline',\n};\n\nexport default { pip };\n","// ==========================================================================\n// Plyr supported types and providers\n// ==========================================================================\n\nexport const providers = {\n html5: 'html5',\n youtube: 'youtube',\n vimeo: 'vimeo',\n};\n\nexport const types = {\n audio: 'audio',\n video: 'video',\n};\n\n/**\n * Get provider by URL\n * @param {string} url\n */\nexport function getProviderByUrl(url) {\n // YouTube\n if (/^(?:https?:\\/\\/)?(?:www\\.)?(?:youtube\\.com|youtube-nocookie\\.com|youtu\\.?be)\\/.+$/.test(url)) {\n return providers.youtube;\n }\n\n // Vimeo\n if (/^https?:\\/\\/player.vimeo.com\\/video\\/\\d{0,9}(?=\\b|\\/)/.test(url)) {\n return providers.vimeo;\n }\n\n return null;\n}\n\nexport default { providers, types };\n","// ==========================================================================\n// Console wrapper\n// ==========================================================================\n\nfunction noop() {}\n\nexport default class Console {\n constructor(enabled = false) {\n this.enabled = window.console && enabled;\n\n if (this.enabled) {\n this.log('Debugging enabled');\n }\n }\n\n get log() {\n // eslint-disable-next-line no-console\n return this.enabled ? Function.prototype.bind.call(console.log, console) : noop;\n }\n\n get warn() {\n return this.enabled ? Function.prototype.bind.call(console.warn, console) : noop;\n }\n\n get error() {\n return this.enabled ? Function.prototype.bind.call(console.error, console) : noop;\n }\n}\n","// ==========================================================================\n// Fullscreen wrapper\n// https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API#prefixing\n// https://webkit.org/blog/7929/designing-websites-for-iphone-x/\n// ==========================================================================\n\nimport browser from './utils/browser';\nimport { closest, getElements, hasClass, toggleClass } from './utils/elements';\nimport { on, triggerEvent } from './utils/events';\nimport is from './utils/is';\nimport { silencePromise } from './utils/promise';\n\nclass Fullscreen {\n constructor(player) {\n // Keep reference to parent\n this.player = player;\n\n // Get prefix\n this.prefix = Fullscreen.prefix;\n this.property = Fullscreen.property;\n\n // Scroll position\n this.scrollPosition = { x: 0, y: 0 };\n\n // Force the use of 'full window/browser' rather than fullscreen\n this.forceFallback = player.config.fullscreen.fallback === 'force';\n\n // Get the fullscreen element\n // Checks container is an ancestor, defaults to null\n this.player.elements.fullscreen\n = player.config.fullscreen.container && closest(this.player.elements.container, player.config.fullscreen.container);\n\n // Register event listeners\n // Handle event (incase user presses escape etc)\n on.call(\n this.player,\n document,\n this.prefix === 'ms' ? 'MSFullscreenChange' : `${this.prefix}fullscreenchange`,\n () => {\n // TODO: Filter for target??\n this.onChange();\n },\n );\n\n // Fullscreen toggle on double click\n on.call(this.player, this.player.elements.container, 'dblclick', (event) => {\n // Ignore double click in controls\n if (is.element(this.player.elements.controls) && this.player.elements.controls.contains(event.target)) {\n return;\n }\n\n this.player.listeners.proxy(event, this.toggle, 'fullscreen');\n });\n\n // Tap focus when in fullscreen\n on.call(this, this.player.elements.container, 'keydown', event => this.trapFocus(event));\n\n // Update the UI\n this.update();\n }\n\n // Determine if native supported\n static get nativeSupported() {\n return !!(\n document.fullscreenEnabled\n || document.webkitFullscreenEnabled\n || document.mozFullScreenEnabled\n || document.msFullscreenEnabled\n );\n }\n\n // If we're actually using native\n get useNative() {\n return Fullscreen.nativeSupported && !this.forceFallback;\n }\n\n // Get the prefix for handlers\n static get prefix() {\n // No prefix\n if (is.function(document.exitFullscreen)) return '';\n\n // Check for fullscreen support by vendor prefix\n let value = '';\n const prefixes = ['webkit', 'moz', 'ms'];\n\n prefixes.some((pre) => {\n if (is.function(document[`${pre}ExitFullscreen`]) || is.function(document[`${pre}CancelFullScreen`])) {\n value = pre;\n return true;\n }\n\n return false;\n });\n\n return value;\n }\n\n static get property() {\n return this.prefix === 'moz' ? 'FullScreen' : 'Fullscreen';\n }\n\n // Determine if fullscreen is supported\n get supported() {\n return [\n // Fullscreen is enabled in config\n this.player.config.fullscreen.enabled,\n // Must be a video\n this.player.isVideo,\n // Either native is supported or fallback enabled\n Fullscreen.nativeSupported || this.player.config.fullscreen.fallback,\n // YouTube has no way to trigger fullscreen, so on devices with no native support, playsinline\n // must be enabled and iosNative fullscreen must be disabled to offer the fullscreen fallback\n !this.player.isYouTube\n || Fullscreen.nativeSupported\n || !browser.isIos\n || (this.player.config.playsinline && !this.player.config.fullscreen.iosNative),\n ].every(Boolean);\n }\n\n // Get active state\n get active() {\n if (!this.supported) return false;\n\n // Fallback using classname\n if (!Fullscreen.nativeSupported || this.forceFallback) {\n return hasClass(this.target, this.player.config.classNames.fullscreen.fallback);\n }\n\n const element = !this.prefix\n ? this.target.getRootNode().fullscreenElement\n : this.target.getRootNode()[`${this.prefix}${this.property}Element`];\n\n return element && element.shadowRoot ? element === this.target.getRootNode().host : element === this.target;\n }\n\n // Get target element\n get target() {\n return browser.isIos && this.player.config.fullscreen.iosNative\n ? this.player.media\n : this.player.elements.fullscreen ?? this.player.elements.container;\n }\n\n onChange = () => {\n if (!this.supported) return;\n\n // Update toggle button\n const button = this.player.elements.buttons.fullscreen;\n if (is.element(button)) {\n button.pressed = this.active;\n }\n\n // Always trigger events on the plyr / media element (not a fullscreen container) and let them bubble up\n const target = this.target === this.player.media ? this.target : this.player.elements.container;\n // Trigger an event\n triggerEvent.call(this.player, target, this.active ? 'enterfullscreen' : 'exitfullscreen', true);\n };\n\n toggleFallback = (toggle = false) => {\n // Store or restore scroll position\n if (toggle) {\n this.scrollPosition = {\n x: window.scrollX ?? 0,\n y: window.scrollY ?? 0,\n };\n }\n else {\n window.scrollTo(this.scrollPosition.x, this.scrollPosition.y);\n }\n\n // Toggle scroll\n document.body.style.overflow = toggle ? 'hidden' : '';\n\n // Toggle class hook\n toggleClass(this.target, this.player.config.classNames.fullscreen.fallback, toggle);\n\n // Force full viewport on iPhone X+\n if (browser.isIos) {\n let viewport = document.head.querySelector('meta[name=\"viewport\"]');\n const property = 'viewport-fit=cover';\n\n // Inject the viewport meta if required\n if (!viewport) {\n viewport = document.createElement('meta');\n viewport.setAttribute('name', 'viewport');\n }\n\n // Check if the property already exists\n const hasProperty = is.string(viewport.content) && viewport.content.includes(property);\n\n if (toggle) {\n this.cleanupViewport = !hasProperty;\n if (!hasProperty) viewport.content += `,${property}`;\n }\n else if (this.cleanupViewport) {\n viewport.content = viewport.content\n .split(',')\n .filter(part => part.trim() !== property)\n .join(',');\n }\n }\n\n // Toggle button and fire events\n this.onChange();\n };\n\n // Trap focus inside container\n trapFocus = (event) => {\n // Bail if iOS/iPadOS, not active, not the tab key\n if (browser.isIos || browser.isIPadOS || !this.active || event.key !== 'Tab') return;\n\n // Get the current focused element\n const focused = document.activeElement;\n const focusable = getElements.call(this.player, 'a[href], button:not(:disabled), input:not(:disabled), [tabindex]');\n const [first] = focusable;\n const last = focusable[focusable.length - 1];\n\n if (focused === last && !event.shiftKey) {\n // Move focus to first element that can be tabbed if Shift isn't used\n first.focus();\n event.preventDefault();\n }\n else if (focused === first && event.shiftKey) {\n // Move focus to last element that can be tabbed if Shift is used\n last.focus();\n event.preventDefault();\n }\n };\n\n // Update UI\n update = () => {\n if (this.supported) {\n let mode;\n\n if (this.forceFallback) mode = 'Fallback (forced)';\n else if (Fullscreen.nativeSupported) mode = 'Native';\n else mode = 'Fallback';\n\n this.player.debug.log(`${mode} fullscreen enabled`);\n }\n else {\n this.player.debug.log('Fullscreen not supported and fallback disabled');\n }\n\n // Add styling hook to show button\n toggleClass(this.player.elements.container, this.player.config.classNames.fullscreen.enabled, this.supported);\n };\n\n // Make an element fullscreen\n enter = () => {\n if (!this.supported) return;\n\n // iOS native fullscreen doesn't need the request step\n if (browser.isIos && this.player.config.fullscreen.iosNative) {\n if (this.player.isVimeo) {\n this.player.embed.requestFullscreen();\n }\n else {\n this.target.webkitEnterFullscreen();\n }\n }\n else if (!Fullscreen.nativeSupported || this.forceFallback) {\n this.toggleFallback(true);\n }\n else if (!this.prefix) {\n this.target.requestFullscreen({ navigationUI: 'hide' });\n }\n else if (!is.empty(this.prefix)) {\n this.target[`${this.prefix}Request${this.property}`]();\n }\n };\n\n // Bail from fullscreen\n exit = () => {\n if (!this.supported) return;\n\n // iOS native fullscreen\n if (browser.isIos && this.player.config.fullscreen.iosNative) {\n if (this.player.isVimeo) {\n this.player.embed.exitFullscreen();\n }\n else {\n this.target.webkitEnterFullscreen();\n }\n silencePromise(this.player.play());\n }\n else if (!Fullscreen.nativeSupported || this.forceFallback) {\n this.toggleFallback(false);\n }\n else if (!this.prefix) {\n (document.cancelFullScreen || document.exitFullscreen).call(document);\n }\n else if (!is.empty(this.prefix)) {\n const action = this.prefix === 'moz' ? 'Cancel' : 'Exit';\n document[`${this.prefix}${action}${this.property}`]();\n }\n };\n\n // Toggle state\n toggle = () => {\n if (!this.active) this.enter();\n else this.exit();\n };\n}\n\nexport default Fullscreen;\n","// ==========================================================================\n// Load image avoiding xhr/fetch CORS issues\n// Server status can't be obtained this way unfortunately, so this uses \"naturalWidth\" to determine if the image has loaded\n// By default it checks if it is at least 1px, but you can add a second argument to change this\n// ==========================================================================\n\nexport default function loadImage(src, minWidth = 1) {\n return new Promise((resolve, reject) => {\n const image = new Image();\n\n const handler = () => {\n delete image.onload;\n delete image.onerror;\n (image.naturalWidth >= minWidth ? resolve : reject)(image);\n };\n\n Object.assign(image, { onload: handler, onerror: handler, src });\n });\n}\n","// ==========================================================================\n// Plyr UI\n// ==========================================================================\n\nimport captions from './captions';\nimport controls from './controls';\nimport support from './support';\nimport { getElement, toggleClass } from './utils/elements';\nimport { ready, triggerEvent } from './utils/events';\nimport i18n from './utils/i18n';\nimport is from './utils/is';\nimport loadImage from './utils/load-image';\n\nconst ui = {\n addStyleHook() {\n toggleClass(this.elements.container, this.config.selectors.container.replace('.', ''), true);\n toggleClass(this.elements.container, this.config.classNames.uiSupported, this.supported.ui);\n },\n\n // Toggle native HTML5 media controls\n toggleNativeControls(toggle = false) {\n if (toggle && this.isHTML5) {\n this.media.setAttribute('controls', '');\n }\n else {\n this.media.removeAttribute('controls');\n }\n },\n\n // Setup the UI\n build() {\n // Re-attach media element listeners\n // TODO: Use event bubbling?\n this.listeners.media();\n\n // Don't setup interface if no support\n if (!this.supported.ui) {\n this.debug.warn(`Basic support only for ${this.provider} ${this.type}`);\n\n // Restore native controls\n ui.toggleNativeControls.call(this, true);\n\n // Bail\n return;\n }\n\n // Inject custom controls if not present\n if (!is.element(this.elements.controls)) {\n // Inject custom controls\n controls.inject.call(this);\n\n // Re-attach control listeners\n this.listeners.controls();\n }\n\n // Remove native controls\n ui.toggleNativeControls.call(this);\n\n // Setup captions for HTML5\n if (this.isHTML5) {\n captions.setup.call(this);\n }\n\n // Reset volume\n this.volume = null;\n\n // Reset mute state\n this.muted = null;\n\n // Reset loop state\n this.loop = null;\n\n // Reset quality setting\n this.quality = null;\n\n // Reset speed\n this.speed = null;\n\n // Reset volume display\n controls.updateVolume.call(this);\n\n // Reset time display\n controls.timeUpdate.call(this);\n\n // Reset duration display\n controls.durationUpdate.call(this);\n\n // Update the UI\n ui.checkPlaying.call(this);\n\n // Check for picture-in-picture support\n toggleClass(\n this.elements.container,\n this.config.classNames.pip.supported,\n support.pip && this.isHTML5 && this.isVideo,\n );\n\n // Check for airplay support\n toggleClass(this.elements.container, this.config.classNames.airplay.supported, support.airplay && this.isHTML5);\n\n // Add touch class\n toggleClass(this.elements.container, this.config.classNames.isTouch, this.touch);\n\n // Ready for API calls\n this.ready = true;\n\n // Ready event at end of execution stack\n setTimeout(() => {\n triggerEvent.call(this, this.media, 'ready');\n }, 0);\n\n // Set the title\n ui.setTitle.call(this);\n\n // Assure the poster image is set, if the property was added before the element was created\n if (this.poster) {\n ui.setPoster.call(this, this.poster, false).catch(() => {});\n }\n\n // Manually set the duration if user has overridden it.\n // The event listeners for it doesn't get called if preload is disabled (#701)\n if (this.config.duration) {\n controls.durationUpdate.call(this);\n }\n\n // Media metadata\n if (this.config.mediaMetadata) {\n controls.setMediaMetadata.call(this);\n }\n },\n\n // Setup aria attribute for play and iframe title\n setTitle() {\n // Find the current text\n let label = i18n.get('play', this.config);\n\n // If there's a media title set, use that for the label\n if (is.string(this.config.title) && !is.empty(this.config.title)) {\n label += `, ${this.config.title}`;\n }\n\n // If there's a play button, set label\n Array.from(this.elements.buttons.play || []).forEach((button) => {\n button.setAttribute('aria-label', label);\n });\n\n // Set iframe title\n // https://github.com/sampotts/plyr/issues/124\n if (this.isEmbed) {\n const iframe = getElement.call(this, 'iframe');\n\n if (!is.element(iframe)) {\n return;\n }\n\n // Default to media type\n const title = !is.empty(this.config.title) ? this.config.title : 'video';\n const format = i18n.get('frameTitle', this.config);\n\n iframe.setAttribute('title', format.replace('{title}', title));\n }\n },\n\n // Toggle poster\n togglePoster(enable) {\n toggleClass(this.elements.container, this.config.classNames.posterEnabled, enable);\n },\n\n // Set the poster image (async)\n // Used internally for the poster setter, with the passive option forced to false\n setPoster(poster, passive = true) {\n // Don't override if call is passive\n if (passive && this.poster) {\n return Promise.reject(new Error('Poster already set'));\n }\n\n // Set property synchronously to respect the call order\n this.media.setAttribute('data-poster', poster);\n\n // Show the poster\n this.elements.poster.removeAttribute('hidden');\n\n // Wait until ui is ready\n return (\n ready\n .call(this)\n // Load image\n .then(() => loadImage(poster))\n .catch((error) => {\n // Hide poster on error unless it's been set by another call\n if (poster === this.poster) {\n ui.togglePoster.call(this, false);\n }\n // Rethrow\n throw error;\n })\n .then(() => {\n // Prevent race conditions\n if (poster !== this.poster) {\n throw new Error('setPoster cancelled by later call to setPoster');\n }\n })\n .then(() => {\n Object.assign(this.elements.poster.style, {\n backgroundImage: `url('${poster}')`,\n // Reset backgroundSize as well (since it can be set to \"cover\" for padded thumbnails for youtube)\n backgroundSize: '',\n });\n\n ui.togglePoster.call(this, true);\n\n return poster;\n })\n );\n },\n\n // Check playing state\n checkPlaying(event) {\n // Class hooks\n toggleClass(this.elements.container, this.config.classNames.playing, this.playing);\n toggleClass(this.elements.container, this.config.classNames.paused, this.paused);\n toggleClass(this.elements.container, this.config.classNames.stopped, this.stopped);\n\n // Set state\n Array.from(this.elements.buttons.play || []).forEach((target) => {\n Object.assign(target, { pressed: this.playing });\n target.setAttribute('aria-label', i18n.get(this.playing ? 'pause' : 'play', this.config));\n });\n\n // Only update controls on non timeupdate events\n if (is.event(event) && event.type === 'timeupdate') {\n return;\n }\n\n // Toggle controls\n ui.toggleControls.call(this);\n },\n\n // Check if media is loading\n checkLoading(event) {\n this.loading = ['stalled', 'waiting'].includes(event.type);\n\n // Clear timer\n clearTimeout(this.timers.loading);\n\n // Timer to prevent flicker when seeking\n this.timers.loading = setTimeout(\n () => {\n // Update progress bar loading class state\n toggleClass(this.elements.container, this.config.classNames.loading, this.loading);\n\n // Update controls visibility\n ui.toggleControls.call(this);\n },\n this.loading ? 250 : 0,\n );\n },\n\n // Toggle controls based on state and `force` argument\n toggleControls(force) {\n const { controls: controlsElement } = this.elements;\n\n if (controlsElement && this.config.hideControls) {\n // Don't hide controls if a touch-device user recently seeked. (Must be limited to touch devices, or it occasionally prevents desktop controls from hiding.)\n const recentTouchSeek = this.touch && this.lastSeekTime + 2000 > Date.now();\n\n // Show controls if force, loading, paused, button interaction, or recent seek, otherwise hide\n this.toggleControls(\n Boolean(\n force || this.loading || this.paused || controlsElement.pressed || controlsElement.hover || recentTouchSeek,\n ),\n );\n }\n },\n\n // Migrate any custom properties from the media to the parent\n migrateStyles() {\n // Loop through values (as they are the keys when the object is spread 🤔)\n Object.values({ ...this.media.style })\n // We're only fussed about Plyr specific properties\n .filter(key => !is.empty(key) && is.string(key) && key.startsWith('--plyr'))\n .forEach((key) => {\n // Set on the container\n this.elements.container.style.setProperty(key, this.media.style.getPropertyValue(key));\n\n // Clean up from media element\n this.media.style.removeProperty(key);\n });\n\n // Remove attribute if empty\n if (is.empty(this.media.style)) {\n this.media.removeAttribute('style');\n }\n },\n};\n\nexport default ui;\n","// ==========================================================================\n// Plyr Event Listeners\n// ==========================================================================\n\nimport controls from './controls';\nimport ui from './ui';\nimport { repaint } from './utils/animation';\nimport browser from './utils/browser';\nimport { getElement, getElements, matches, toggleClass } from './utils/elements';\nimport { off, on, once, toggleListener, triggerEvent } from './utils/events';\nimport is from './utils/is';\nimport { silencePromise } from './utils/promise';\nimport { getAspectRatio, getViewportSize, supportsCSS } from './utils/style';\n\nclass Listeners {\n constructor(player) {\n this.player = player;\n this.lastKey = null;\n this.focusTimer = null;\n this.lastKeyDown = null;\n\n this.handleKey = this.handleKey.bind(this);\n this.toggleMenu = this.toggleMenu.bind(this);\n this.firstTouch = this.firstTouch.bind(this);\n }\n\n // Handle key presses\n handleKey(event) {\n const { player } = this;\n const { elements } = player;\n const { key, type, altKey, ctrlKey, metaKey, shiftKey } = event;\n const pressed = type === 'keydown';\n const repeat = pressed && key === this.lastKey;\n\n // Bail if a modifier key is set\n if (altKey || ctrlKey || metaKey || shiftKey) {\n return;\n }\n\n // If the event is bubbled from the media element\n // Firefox doesn't get the key for whatever reason\n if (!key) {\n return;\n }\n\n // Seek by increment\n const seekByIncrement = (increment) => {\n // Divide the max duration into 10th's and times by the number value\n player.currentTime = (player.duration / 10) * increment;\n };\n\n // Handle the key on keydown\n // Reset on keyup\n if (pressed) {\n // Check focused element\n // and if the focused element is not editable (e.g. text input)\n // and any that accept key input http://webaim.org/techniques/keyboard/\n const focused = document.activeElement;\n if (is.element(focused)) {\n const { editable } = player.config.selectors;\n const { seek } = elements.inputs;\n\n if (focused !== seek && matches(focused, editable)) {\n return;\n }\n\n if (event.key === ' ' && matches(focused, 'button, [role^=\"menuitem\"]')) {\n return;\n }\n }\n\n // Which keys should we prevent default\n const preventDefault = [\n ' ',\n 'ArrowLeft',\n 'ArrowUp',\n 'ArrowRight',\n 'ArrowDown',\n\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n\n 'c',\n 'f',\n 'k',\n 'l',\n 'm',\n ];\n\n // If the key is found prevent default (e.g. prevent scrolling for arrows)\n if (preventDefault.includes(key)) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n switch (key) {\n case '0':\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n if (!repeat) {\n seekByIncrement(Number.parseInt(key, 10));\n }\n break;\n\n case ' ':\n case 'k':\n if (!repeat) {\n silencePromise(player.togglePlay());\n }\n break;\n\n case 'ArrowUp':\n player.increaseVolume(0.1);\n break;\n\n case 'ArrowDown':\n player.decreaseVolume(0.1);\n break;\n\n case 'm':\n if (!repeat) {\n player.muted = !player.muted;\n }\n break;\n\n case 'ArrowRight':\n player.forward();\n break;\n\n case 'ArrowLeft':\n player.rewind();\n break;\n\n case 'f':\n player.fullscreen.toggle();\n break;\n\n case 'c':\n if (!repeat) {\n player.toggleCaptions();\n }\n break;\n\n case 'l':\n player.loop = !player.loop;\n break;\n\n default:\n break;\n }\n\n // Escape is handle natively when in full screen\n // So we only need to worry about non native\n if (key === 'Escape' && !player.fullscreen.usingNative && player.fullscreen.active) {\n player.fullscreen.toggle();\n }\n\n // Store last key for next cycle\n this.lastKey = key;\n }\n else {\n this.lastKey = null;\n }\n }\n\n // Toggle menu\n toggleMenu(event) {\n controls.toggleMenu.call(this.player, event);\n }\n\n // Device is touch enabled\n firstTouch = () => {\n const { player } = this;\n const { elements } = player;\n\n player.touch = true;\n\n // Add touch class\n toggleClass(elements.container, player.config.classNames.isTouch, true);\n };\n\n // Global window & document listeners\n global = (toggle = true) => {\n const { player } = this;\n\n // Keyboard shortcuts\n if (player.config.keyboard.global) {\n toggleListener.call(player, window, 'keydown keyup', this.handleKey, toggle, false);\n }\n\n // Click anywhere closes menu\n toggleListener.call(player, document.body, 'click', this.toggleMenu, toggle);\n\n // Detect touch by events\n once.call(player, document.body, 'touchstart', this.firstTouch);\n };\n\n // Container listeners\n container = () => {\n const { player } = this;\n const { config, elements, timers } = player;\n\n // Keyboard shortcuts\n if (!config.keyboard.global && config.keyboard.focused) {\n on.call(player, elements.container, 'keydown keyup', this.handleKey, false);\n }\n\n // Toggle controls on mouse events and entering fullscreen\n on.call(\n player,\n elements.container,\n 'mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen',\n (event) => {\n const { controls: controlsElement } = elements;\n\n // Remove button states for fullscreen\n if (controlsElement && event.type === 'enterfullscreen') {\n controlsElement.pressed = false;\n controlsElement.hover = false;\n }\n\n // Show, then hide after a timeout unless another control event occurs\n const show = ['touchstart', 'touchmove', 'mousemove'].includes(event.type);\n let delay = 0;\n\n if (show) {\n ui.toggleControls.call(player, true);\n // Use longer timeout for touch devices\n delay = player.touch ? 3000 : 2000;\n }\n\n // Clear timer\n clearTimeout(timers.controls);\n\n // Set new timer to prevent flicker when seeking\n timers.controls = setTimeout(() => ui.toggleControls.call(player, false), delay);\n },\n );\n\n // Set a gutter for Vimeo\n const setGutter = () => {\n if (!player.isVimeo || player.config.vimeo.premium) {\n return;\n }\n\n const target = elements.wrapper;\n const { active } = player.fullscreen;\n const [videoWidth, videoHeight] = getAspectRatio.call(player);\n const useNativeAspectRatio = supportsCSS(`aspect-ratio: ${videoWidth} / ${videoHeight}`);\n\n // If not active, remove styles\n if (!active) {\n if (useNativeAspectRatio) {\n target.style.width = null;\n target.style.height = null;\n }\n else {\n target.style.maxWidth = null;\n target.style.margin = null;\n }\n return;\n }\n\n // Determine which dimension will overflow and constrain view\n const [viewportWidth, viewportHeight] = getViewportSize();\n const overflow = viewportWidth / viewportHeight > videoWidth / videoHeight;\n\n if (useNativeAspectRatio) {\n target.style.width = overflow ? 'auto' : '100%';\n target.style.height = overflow ? '100%' : 'auto';\n }\n else {\n target.style.maxWidth = overflow ? `${(viewportHeight / videoHeight) * videoWidth}px` : null;\n target.style.margin = overflow ? '0 auto' : null;\n }\n };\n\n // Handle resizing\n const resized = () => {\n clearTimeout(timers.resized);\n timers.resized = setTimeout(setGutter, 50);\n };\n\n on.call(player, elements.container, 'enterfullscreen exitfullscreen', (event) => {\n const { target } = player.fullscreen;\n\n // Ignore events not from target\n if (target !== elements.container) {\n return;\n }\n\n // If it's not an embed and no ratio specified\n if (!player.isEmbed && is.empty(player.config.ratio)) {\n return;\n }\n\n // Set Vimeo gutter\n setGutter();\n\n // Watch for resizes\n const method = event.type === 'enterfullscreen' ? on : off;\n method.call(player, window, 'resize', resized);\n });\n };\n\n // Listen for media events\n media = () => {\n const { player } = this;\n const { elements } = player;\n\n // Time change on media\n on.call(player, player.media, 'timeupdate seeking seeked', event => controls.timeUpdate.call(player, event));\n\n // Display duration\n on.call(player, player.media, 'durationchange loadeddata loadedmetadata', event =>\n controls.durationUpdate.call(player, event));\n\n // Handle the media finishing\n on.call(player, player.media, 'ended', () => {\n // Show poster on end\n if (player.isHTML5 && player.isVideo && player.config.resetOnEnd) {\n // Restart\n player.restart();\n\n // Call pause otherwise IE11 will start playing the video again\n player.pause();\n }\n });\n\n // Check for buffer progress\n on.call(player, player.media, 'progress playing seeking seeked', event =>\n controls.updateProgress.call(player, event));\n\n // Handle volume changes\n on.call(player, player.media, 'volumechange', event => controls.updateVolume.call(player, event));\n\n // Handle play/pause\n on.call(player, player.media, 'playing play pause ended emptied timeupdate', event =>\n ui.checkPlaying.call(player, event));\n\n // Loading state\n on.call(player, player.media, 'waiting canplay seeked playing', event => ui.checkLoading.call(player, event));\n\n // Click video\n if (player.supported.ui && player.config.clickToPlay && !player.isAudio) {\n // Re-fetch the wrapper\n const wrapper = getElement.call(player, `.${player.config.classNames.video}`);\n\n // Bail if there's no wrapper (this should never happen)\n if (!is.element(wrapper)) {\n return;\n }\n\n // On click play, pause or restart\n on.call(player, elements.container, 'click', (event) => {\n const targets = [elements.container, wrapper];\n\n // Ignore if click if not container or in video wrapper\n if (!targets.includes(event.target) && !wrapper.contains(event.target)) {\n return;\n }\n\n // Touch devices will just show controls (if hidden)\n if (player.touch && player.config.hideControls) {\n return;\n }\n\n if (player.ended) {\n this.proxy(event, player.restart, 'restart');\n this.proxy(\n event,\n () => {\n silencePromise(player.play());\n },\n 'play',\n );\n }\n else {\n this.proxy(\n event,\n () => {\n silencePromise(player.togglePlay());\n },\n 'play',\n );\n }\n });\n }\n\n // Disable right click\n if (player.supported.ui && player.config.disableContextMenu) {\n on.call(\n player,\n elements.wrapper,\n 'contextmenu',\n (event) => {\n event.preventDefault();\n },\n false,\n );\n }\n\n // Volume change\n on.call(player, player.media, 'volumechange', () => {\n // Save to storage\n player.storage.set({\n volume: player.volume,\n muted: player.muted,\n });\n });\n\n // Speed change\n on.call(player, player.media, 'ratechange', () => {\n // Update UI\n controls.updateSetting.call(player, 'speed');\n\n // Save to storage\n player.storage.set({ speed: player.speed });\n });\n\n // Quality change\n on.call(player, player.media, 'qualitychange', (event) => {\n // Update UI\n controls.updateSetting.call(player, 'quality', null, event.detail.quality);\n });\n\n // Update download link when ready and if quality changes\n on.call(player, player.media, 'ready qualitychange', () => {\n controls.setDownloadUrl.call(player);\n });\n\n // Proxy events to container\n // Bubble up key events for Edge\n const proxyEvents = player.config.events.concat(['keyup', 'keydown']).join(' ');\n\n on.call(player, player.media, proxyEvents, (event) => {\n let { detail = {} } = event;\n\n // Get error details from media\n if (event.type === 'error') {\n detail = player.media.error;\n }\n\n triggerEvent.call(player, elements.container, event.type, true, detail);\n });\n };\n\n // Run default and custom handlers\n proxy = (event, defaultHandler, customHandlerKey) => {\n const { player } = this;\n const customHandler = player.config.listeners[customHandlerKey];\n const hasCustomHandler = is.function(customHandler);\n let returned = true;\n\n // Execute custom handler\n if (hasCustomHandler) {\n returned = customHandler.call(player, event);\n }\n\n // Only call default handler if not prevented in custom handler\n if (returned !== false && is.function(defaultHandler)) {\n defaultHandler.call(player, event);\n }\n };\n\n // Trigger custom and default handlers\n bind = (element, type, defaultHandler, customHandlerKey, passive = true) => {\n const { player } = this;\n const customHandler = player.config.listeners[customHandlerKey];\n const hasCustomHandler = is.function(customHandler);\n\n on.call(\n player,\n element,\n type,\n event => this.proxy(event, defaultHandler, customHandlerKey),\n passive && !hasCustomHandler,\n );\n };\n\n // Listen for control events\n controls = () => {\n const { player } = this;\n const { elements } = player;\n // IE doesn't support input event, so we fallback to change\n const inputEvent = browser.isIE ? 'change' : 'input';\n\n // Play/pause toggle\n if (elements.buttons.play) {\n Array.from(elements.buttons.play).forEach((button) => {\n this.bind(\n button,\n 'click',\n () => {\n silencePromise(player.togglePlay());\n },\n 'play',\n );\n });\n }\n\n // Pause\n this.bind(elements.buttons.restart, 'click', player.restart, 'restart');\n\n // Rewind\n this.bind(\n elements.buttons.rewind,\n 'click',\n () => {\n // Record seek time so we can prevent hiding controls for a few seconds after rewind\n player.lastSeekTime = Date.now();\n player.rewind();\n },\n 'rewind',\n );\n\n // Rewind\n this.bind(\n elements.buttons.fastForward,\n 'click',\n () => {\n // Record seek time so we can prevent hiding controls for a few seconds after fast forward\n player.lastSeekTime = Date.now();\n player.forward();\n },\n 'fastForward',\n );\n\n // Mute toggle\n this.bind(\n elements.buttons.mute,\n 'click',\n () => {\n player.muted = !player.muted;\n },\n 'mute',\n );\n\n // Captions toggle\n this.bind(elements.buttons.captions, 'click', () => player.toggleCaptions());\n\n // Download\n this.bind(\n elements.buttons.download,\n 'click',\n () => {\n triggerEvent.call(player, player.media, 'download');\n },\n 'download',\n );\n\n // Fullscreen toggle\n this.bind(\n elements.buttons.fullscreen,\n 'click',\n () => {\n player.fullscreen.toggle();\n },\n 'fullscreen',\n );\n\n // Picture-in-Picture\n this.bind(\n elements.buttons.pip,\n 'click',\n () => {\n player.pip = 'toggle';\n },\n 'pip',\n );\n\n // Airplay\n this.bind(elements.buttons.airplay, 'click', player.airplay, 'airplay');\n\n // Settings menu - click toggle\n this.bind(\n elements.buttons.settings,\n 'click',\n (event) => {\n // Prevent the document click listener closing the menu\n event.stopPropagation();\n event.preventDefault();\n\n controls.toggleMenu.call(player, event);\n },\n null,\n false,\n ); // Can't be passive as we're preventing default\n\n // Settings menu - keyboard toggle\n // We have to bind to keyup otherwise Firefox triggers a click when a keydown event handler shifts focus\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1220143\n this.bind(\n elements.buttons.settings,\n 'keyup',\n (event) => {\n if (![' ', 'Enter'].includes(event.key)) {\n return;\n }\n\n // Because return triggers a click anyway, all we need to do is set focus\n if (event.key === 'Enter') {\n controls.focusFirstMenuItem.call(player, null, true);\n return;\n }\n\n // Prevent scroll\n event.preventDefault();\n\n // Prevent playing video (Firefox)\n event.stopPropagation();\n\n // Toggle menu\n controls.toggleMenu.call(player, event);\n },\n null,\n false, // Can't be passive as we're preventing default\n );\n\n // Escape closes menu\n this.bind(elements.settings.menu, 'keydown', (event) => {\n if (event.key === 'Escape') {\n controls.toggleMenu.call(player, event);\n }\n });\n\n // Set range input alternative \"value\", which matches the tooltip time (#954)\n this.bind(elements.inputs.seek, 'mousedown mousemove', (event) => {\n const rect = elements.progress.getBoundingClientRect();\n const scrollLeft = event.pageX - event.clientX;\n const percent = (100 / rect.width) * (event.pageX - rect.left - scrollLeft);\n event.currentTarget.setAttribute('seek-value', percent);\n });\n\n // Pause while seeking\n this.bind(elements.inputs.seek, 'mousedown mouseup keydown keyup touchstart touchend', (event) => {\n const seek = event.currentTarget;\n const attribute = 'play-on-seeked';\n\n if (is.keyboardEvent(event) && !['ArrowLeft', 'ArrowRight'].includes(event.key)) {\n return;\n }\n\n // Record seek time so we can prevent hiding controls for a few seconds after seek\n player.lastSeekTime = Date.now();\n\n // Was playing before?\n const play = seek.hasAttribute(attribute);\n // Done seeking\n const done = ['mouseup', 'touchend', 'keyup'].includes(event.type);\n\n // If we're done seeking and it was playing, resume playback\n if (play && done) {\n seek.removeAttribute(attribute);\n silencePromise(player.play());\n }\n else if (!done && player.playing) {\n seek.setAttribute(attribute, '');\n player.pause();\n }\n });\n\n // Fix range inputs on iOS\n // Super weird iOS bug where after you interact with an ,\n // it takes over further interactions on the page. This is a hack\n if (browser.isIos) {\n const inputs = getElements.call(player, 'input[type=\"range\"]');\n Array.from(inputs).forEach(input => this.bind(input, inputEvent, event => repaint(event.target)));\n }\n\n // Seek\n this.bind(\n elements.inputs.seek,\n inputEvent,\n (event) => {\n const seek = event.currentTarget;\n // If it exists, use seek-value instead of \"value\" for consistency with tooltip time (#954)\n let seekTo = seek.getAttribute('seek-value');\n\n if (is.empty(seekTo)) {\n seekTo = seek.value;\n }\n\n seek.removeAttribute('seek-value');\n\n player.currentTime = (seekTo / seek.max) * player.duration;\n },\n 'seek',\n );\n\n // Seek tooltip\n this.bind(elements.progress, 'mouseenter mouseleave mousemove', event =>\n controls.updateSeekTooltip.call(player, event));\n\n // Preview thumbnails plugin\n // TODO: Really need to work on some sort of plug-in wide event bus or pub-sub for this\n this.bind(elements.progress, 'mousemove touchmove', (event) => {\n const { previewThumbnails } = player;\n\n if (previewThumbnails && previewThumbnails.loaded) {\n previewThumbnails.startMove(event);\n }\n });\n\n // Hide thumbnail preview - on mouse click, mouse leave, and video play/seek. All four are required, e.g., for buffering\n this.bind(elements.progress, 'mouseleave touchend click', () => {\n const { previewThumbnails } = player;\n\n if (previewThumbnails && previewThumbnails.loaded) {\n previewThumbnails.endMove(false, true);\n }\n });\n\n // Show scrubbing preview\n this.bind(elements.progress, 'mousedown touchstart', (event) => {\n const { previewThumbnails } = player;\n\n if (previewThumbnails && previewThumbnails.loaded) {\n previewThumbnails.startScrubbing(event);\n }\n });\n\n this.bind(elements.progress, 'mouseup touchend', (event) => {\n const { previewThumbnails } = player;\n\n if (previewThumbnails && previewThumbnails.loaded) {\n previewThumbnails.endScrubbing(event);\n }\n });\n\n // Polyfill for lower fill in for webkit\n if (browser.isWebKit) {\n Array.from(getElements.call(player, 'input[type=\"range\"]')).forEach((element) => {\n this.bind(element, 'input', event => controls.updateRangeFill.call(player, event.target));\n });\n }\n\n // Current time invert\n // Only if one time element is used for both currentTime and duration\n if (player.config.toggleInvert && !is.element(elements.display.duration)) {\n this.bind(elements.display.currentTime, 'click', () => {\n // Do nothing if we're at the start\n if (player.currentTime === 0) {\n return;\n }\n\n player.config.invertTime = !player.config.invertTime;\n\n controls.timeUpdate.call(player);\n });\n }\n\n // Volume\n this.bind(\n elements.inputs.volume,\n inputEvent,\n (event) => {\n player.volume = event.target.value;\n },\n 'volume',\n );\n\n // Update controls.hover state (used for ui.toggleControls to avoid hiding when interacting)\n this.bind(elements.controls, 'mouseenter mouseleave', (event) => {\n elements.controls.hover = !player.touch && event.type === 'mouseenter';\n });\n\n // Also update controls.hover state for any non-player children of fullscreen element (as above)\n if (elements.fullscreen) {\n Array.from(elements.fullscreen.children)\n .filter(c => !c.contains(elements.container))\n .forEach((child) => {\n this.bind(child, 'mouseenter mouseleave', (event) => {\n if (elements.controls) {\n elements.controls.hover = !player.touch && event.type === 'mouseenter';\n }\n });\n });\n }\n\n // Update controls.pressed state (used for ui.toggleControls to avoid hiding when interacting)\n this.bind(elements.controls, 'mousedown mouseup touchstart touchend touchcancel', (event) => {\n elements.controls.pressed = ['mousedown', 'touchstart'].includes(event.type);\n });\n\n // Show controls when they receive focus (e.g., when using keyboard tab key)\n this.bind(elements.controls, 'focusin', () => {\n const { config, timers } = player;\n\n // Skip transition to prevent focus from scrolling the parent element\n toggleClass(elements.controls, config.classNames.noTransition, true);\n\n // Toggle\n ui.toggleControls.call(player, true);\n\n // Restore transition\n setTimeout(() => {\n toggleClass(elements.controls, config.classNames.noTransition, false);\n }, 0);\n\n // Delay a little more for mouse users\n const delay = this.touch ? 3000 : 4000;\n\n // Clear timer\n clearTimeout(timers.controls);\n\n // Hide again after delay\n timers.controls = setTimeout(() => ui.toggleControls.call(player, false), delay);\n });\n\n // Mouse wheel for volume\n this.bind(\n elements.inputs.volume,\n 'wheel',\n (event) => {\n // Detect \"natural\" scroll - supported on OS X Safari only\n // Other browsers on OS X will be inverted until support improves\n const inverted = event.webkitDirectionInvertedFromDevice;\n // Get delta from event. Invert if `inverted` is true\n const [x, y] = [event.deltaX, -event.deltaY].map(value => (inverted ? -value : value));\n // Using the biggest delta, normalize to 1 or -1 (or 0 if no delta)\n const direction = Math.sign(Math.abs(x) > Math.abs(y) ? x : y);\n\n // Change the volume by 2%\n player.increaseVolume(direction / 50);\n\n // Don't break page scrolling at max and min\n const { volume } = player.media;\n if ((direction === 1 && volume < 1) || (direction === -1 && volume > 0)) {\n event.preventDefault();\n }\n },\n 'volume',\n false,\n );\n };\n}\n\nexport default Listeners;\n","// ==========================================================================\n// Load an external script\n// ==========================================================================\n\nimport loadjs from 'loadjs';\n\nexport default function loadScript(url) {\n return new Promise((resolve, reject) => {\n loadjs(url, {\n success: resolve,\n error: reject,\n });\n });\n}\n","// ==========================================================================\n// Vimeo plugin\n// ==========================================================================\n\nimport captions from '../captions';\nimport controls from '../controls';\nimport ui from '../ui';\nimport { createElement, replaceElement, toggleClass } from '../utils/elements';\nimport { triggerEvent } from '../utils/events';\nimport fetch from '../utils/fetch';\nimport is from '../utils/is';\nimport loadScript from '../utils/load-script';\nimport { format, stripHTML } from '../utils/strings';\nimport { roundAspectRatio, setAspectRatio } from '../utils/style';\nimport { buildUrlParams } from '../utils/urls';\n\n// Parse Vimeo ID from URL\nfunction parseId(url) {\n if (is.empty(url)) {\n return null;\n }\n\n if (is.number(Number(url))) {\n return url;\n }\n\n // eslint-disable-next-line regexp/optimal-quantifier-concatenation\n const regex = /^.*(vimeo.com\\/|video\\/)(\\d+).*/;\n const match = url.match(regex);\n return match ? match[2] : url;\n}\n\n// Try to extract a hash for private videos from the URL\nfunction parseHash(url) {\n /* This regex matches a hexadecimal hash if given in any of these forms:\n * - [https://player.]vimeo.com/video/{id}/{hash}[?params]\n * - [https://player.]vimeo.com/video/{id}?h={hash}[¶ms]\n * - [https://player.]vimeo.com/video/{id}?[params]&h={hash}\n * - video/{id}/{hash}\n * If matched, the hash is available in capture group 4\n */\n const regex = /^.*(vimeo.com\\/|video\\/)(\\d+)(\\?.*h=|\\/)+([\\d,a-f]+)/;\n const found = url.match(regex);\n\n return found && found.length === 5 ? found[4] : null;\n}\n\n// Set playback state and trigger change (only on actual change)\nfunction assurePlaybackState(play) {\n if (play && !this.embed.hasPlayed) {\n this.embed.hasPlayed = true;\n }\n if (this.media.paused === play) {\n this.media.paused = !play;\n triggerEvent.call(this, this.media, play ? 'play' : 'pause');\n }\n}\n\nconst vimeo = {\n setup() {\n const player = this;\n\n // Add embed class for responsive\n toggleClass(player.elements.wrapper, player.config.classNames.embed, true);\n\n // Set speed options from config\n player.options.speed = player.config.speed.options;\n\n // Set initial ratio\n setAspectRatio.call(player);\n\n // Load the SDK if not already\n if (!is.object(window.Vimeo)) {\n loadScript(player.config.urls.vimeo.sdk)\n .then(() => {\n vimeo.ready.call(player);\n })\n .catch((error) => {\n player.debug.warn('Vimeo SDK (player.js) failed to load', error);\n });\n }\n else {\n vimeo.ready.call(player);\n }\n },\n\n // API Ready\n ready() {\n const player = this;\n const config = player.config.vimeo;\n const { premium, referrerPolicy, ...frameParams } = config;\n // Get the source URL or ID\n let source = player.media.getAttribute('src');\n let hash = '';\n // Get from
if needed\n if (is.empty(source)) {\n source = player.media.getAttribute(player.config.attributes.embed.id);\n // hash can also be set as attribute on the
\n hash = player.media.getAttribute(player.config.attributes.embed.hash);\n }\n else {\n hash = parseHash(source);\n }\n const hashParam = hash ? { h: hash } : {};\n\n // If the owner has a pro or premium account then we can hide controls etc\n if (premium) {\n Object.assign(frameParams, {\n controls: false,\n sidedock: false,\n });\n }\n\n // Get Vimeo params for the iframe\n const params = buildUrlParams({\n loop: player.config.loop.active,\n autoplay: player.autoplay,\n muted: player.muted,\n gesture: 'media',\n playsinline: player.config.playsinline,\n // hash has to be added to iframe-URL\n ...hashParam,\n ...frameParams,\n });\n\n const id = parseId(source);\n // Build an iframe\n const iframe = createElement('iframe');\n const src = format(player.config.urls.vimeo.iframe, id, params);\n iframe.setAttribute('src', src);\n iframe.setAttribute('allowfullscreen', '');\n iframe.setAttribute(\n 'allow',\n ['autoplay', 'fullscreen', 'picture-in-picture', 'encrypted-media', 'accelerometer', 'gyroscope'].join('; '),\n );\n\n // Set the referrer policy if required\n if (!is.empty(referrerPolicy)) {\n iframe.setAttribute('referrerPolicy', referrerPolicy);\n }\n\n // Inject the package\n if (premium || !config.customControls) {\n iframe.setAttribute('data-poster', player.poster);\n player.media = replaceElement(iframe, player.media);\n }\n else {\n const wrapper = createElement('div', {\n 'class': player.config.classNames.embedContainer,\n 'data-poster': player.poster,\n });\n wrapper.appendChild(iframe);\n player.media = replaceElement(wrapper, player.media);\n }\n\n // Get poster image\n if (!config.customControls) {\n fetch(format(player.config.urls.vimeo.api, src)).then((response) => {\n if (is.empty(response) || !response.thumbnail_url) {\n return;\n }\n\n // Set and show poster\n ui.setPoster.call(player, response.thumbnail_url).catch(() => {});\n });\n }\n\n // Setup instance\n // https://github.com/vimeo/player.js\n player.embed = new window.Vimeo.Player(iframe, {\n autopause: player.config.autopause,\n muted: player.muted,\n });\n\n player.media.paused = true;\n player.media.currentTime = 0;\n\n // Disable native text track rendering\n if (player.supported.ui) {\n player.embed.disableTextTrack();\n }\n\n // Create a faux HTML5 API using the Vimeo API\n player.media.play = () => {\n assurePlaybackState.call(player, true);\n return player.embed.play();\n };\n\n player.media.pause = () => {\n assurePlaybackState.call(player, false);\n return player.embed.pause();\n };\n\n player.media.stop = () => {\n player.pause();\n player.currentTime = 0;\n };\n\n // Seeking\n let { currentTime } = player.media;\n Object.defineProperty(player.media, 'currentTime', {\n get() {\n return currentTime;\n },\n set(time) {\n // Vimeo will automatically play on seek if the video hasn't been played before\n\n // Get current paused state and volume etc\n const { embed, media, paused, volume } = player;\n const restorePause = paused && !embed.hasPlayed;\n\n // Set seeking state and trigger event\n media.seeking = true;\n triggerEvent.call(player, media, 'seeking');\n\n // If paused, mute until seek is complete\n Promise.resolve(restorePause && embed.setVolume(0))\n // Seek\n .then(() => embed.setCurrentTime(time))\n // Restore paused\n .then(() => restorePause && embed.pause())\n // Restore volume\n .then(() => restorePause && embed.setVolume(volume))\n .catch(() => {\n // Do nothing\n });\n },\n });\n\n // Playback speed\n let speed = player.config.speed.selected;\n Object.defineProperty(player.media, 'playbackRate', {\n get() {\n return speed;\n },\n set(input) {\n player.embed\n .setPlaybackRate(input)\n .then(() => {\n speed = input;\n triggerEvent.call(player, player.media, 'ratechange');\n })\n .catch(() => {\n // Cannot set Playback Rate, Video is probably not on Pro account\n player.options.speed = [1];\n });\n },\n });\n\n // Volume\n let { volume } = player.config;\n Object.defineProperty(player.media, 'volume', {\n get() {\n return volume;\n },\n set(input) {\n player.embed.setVolume(input).then(() => {\n volume = input;\n triggerEvent.call(player, player.media, 'volumechange');\n });\n },\n });\n\n // Muted\n let { muted } = player.config;\n Object.defineProperty(player.media, 'muted', {\n get() {\n return muted;\n },\n set(input) {\n const toggle = is.boolean(input) ? input : false;\n\n player.embed.setMuted(toggle ? true : player.config.muted).then(() => {\n muted = toggle;\n triggerEvent.call(player, player.media, 'volumechange');\n });\n },\n });\n\n // Loop\n let { loop } = player.config;\n Object.defineProperty(player.media, 'loop', {\n get() {\n return loop;\n },\n set(input) {\n const toggle = is.boolean(input) ? input : player.config.loop.active;\n\n player.embed.setLoop(toggle).then(() => {\n loop = toggle;\n });\n },\n });\n\n // Source\n let currentSrc;\n player.embed\n .getVideoUrl()\n .then((value) => {\n currentSrc = value;\n controls.setDownloadUrl.call(player);\n })\n .catch((error) => {\n this.debug.warn(error);\n });\n\n Object.defineProperty(player.media, 'currentSrc', {\n get() {\n return currentSrc;\n },\n });\n\n // Ended\n Object.defineProperty(player.media, 'ended', {\n get() {\n return player.currentTime === player.duration;\n },\n });\n\n // Set aspect ratio based on video size\n Promise.all([player.embed.getVideoWidth(), player.embed.getVideoHeight()]).then((dimensions) => {\n const [width, height] = dimensions;\n player.embed.ratio = roundAspectRatio(width, height);\n setAspectRatio.call(this);\n });\n\n // Set autopause\n player.embed.setAutopause(player.config.autopause).then((state) => {\n player.config.autopause = state;\n });\n\n // Get title\n player.embed.getVideoTitle().then((title) => {\n player.config.title = title;\n ui.setTitle.call(this);\n });\n\n // Get current time\n player.embed.getCurrentTime().then((value) => {\n currentTime = value;\n triggerEvent.call(player, player.media, 'timeupdate');\n });\n\n // Get duration\n player.embed.getDuration().then((value) => {\n player.media.duration = value;\n triggerEvent.call(player, player.media, 'durationchange');\n });\n\n // Get captions\n player.embed.getTextTracks().then((tracks) => {\n player.media.textTracks = tracks;\n captions.setup.call(player);\n });\n\n player.embed.on('cuechange', ({ cues = [] }) => {\n const strippedCues = cues.map(cue => stripHTML(cue.text));\n captions.updateCues.call(player, strippedCues);\n });\n\n player.embed.on('loaded', () => {\n // Assure state and events are updated on autoplay\n player.embed.getPaused().then((paused) => {\n assurePlaybackState.call(player, !paused);\n if (!paused) {\n triggerEvent.call(player, player.media, 'playing');\n }\n });\n\n if (is.element(player.embed.element) && player.supported.ui) {\n const frame = player.embed.element;\n\n // Fix keyboard focus issues\n // https://github.com/sampotts/plyr/issues/317\n frame.setAttribute('tabindex', -1);\n }\n });\n\n player.embed.on('bufferstart', () => {\n triggerEvent.call(player, player.media, 'waiting');\n });\n\n player.embed.on('bufferend', () => {\n triggerEvent.call(player, player.media, 'playing');\n });\n\n player.embed.on('play', () => {\n assurePlaybackState.call(player, true);\n triggerEvent.call(player, player.media, 'playing');\n });\n\n player.embed.on('pause', () => {\n assurePlaybackState.call(player, false);\n });\n\n player.embed.on('timeupdate', (data) => {\n player.media.seeking = false;\n currentTime = data.seconds;\n triggerEvent.call(player, player.media, 'timeupdate');\n });\n\n player.embed.on('progress', (data) => {\n player.media.buffered = data.percent;\n triggerEvent.call(player, player.media, 'progress');\n\n // Check all loaded\n if (Number.parseInt(data.percent, 10) === 1) {\n triggerEvent.call(player, player.media, 'canplaythrough');\n }\n\n // Get duration as if we do it before load, it gives an incorrect value\n // https://github.com/sampotts/plyr/issues/891\n player.embed.getDuration().then((value) => {\n if (value !== player.media.duration) {\n player.media.duration = value;\n triggerEvent.call(player, player.media, 'durationchange');\n }\n });\n });\n\n player.embed.on('seeked', () => {\n player.media.seeking = false;\n triggerEvent.call(player, player.media, 'seeked');\n });\n\n player.embed.on('ended', () => {\n player.media.paused = true;\n triggerEvent.call(player, player.media, 'ended');\n });\n\n player.embed.on('error', (detail) => {\n player.media.error = detail;\n triggerEvent.call(player, player.media, 'error');\n });\n\n // Rebuild UI\n if (config.customControls) {\n setTimeout(() => ui.build.call(player), 0);\n }\n },\n};\n\nexport default vimeo;\n","// ==========================================================================\n// YouTube plugin\n// ==========================================================================\n\nimport ui from '../ui';\nimport { createElement, replaceElement, toggleClass } from '../utils/elements';\nimport { triggerEvent } from '../utils/events';\nimport fetch from '../utils/fetch';\nimport is from '../utils/is';\nimport loadImage from '../utils/load-image';\nimport loadScript from '../utils/load-script';\nimport { extend } from '../utils/objects';\nimport { format, generateId } from '../utils/strings';\nimport { roundAspectRatio, setAspectRatio } from '../utils/style';\n\n// Parse YouTube ID from URL\nfunction parseId(url) {\n if (is.empty(url)) {\n return null;\n }\n\n const regex = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|&v=)([^#&?]*).*/;\n const match = url.match(regex);\n return match && match[2] ? match[2] : url;\n}\n\n// Set playback state and trigger change (only on actual change)\nfunction assurePlaybackState(play) {\n if (play && !this.embed.hasPlayed) {\n this.embed.hasPlayed = true;\n }\n if (this.media.paused === play) {\n this.media.paused = !play;\n triggerEvent.call(this, this.media, play ? 'play' : 'pause');\n }\n}\n\nfunction getHost(config) {\n if (config.noCookie) {\n return 'https://www.youtube-nocookie.com';\n }\n\n if (window.location.protocol === 'http:') {\n return 'http://www.youtube.com';\n }\n\n // Use YouTube's default\n return undefined;\n}\n\nconst youtube = {\n setup() {\n // Add embed class for responsive\n toggleClass(this.elements.wrapper, this.config.classNames.embed, true);\n\n // Setup API\n if (is.object(window.YT) && is.function(window.YT.Player)) {\n youtube.ready.call(this);\n }\n else {\n // Reference current global callback\n const callback = window.onYouTubeIframeAPIReady;\n\n // Set callback to process queue\n window.onYouTubeIframeAPIReady = () => {\n // Call global callback if set\n if (is.function(callback)) {\n callback();\n }\n\n youtube.ready.call(this);\n };\n\n // Load the SDK\n loadScript(this.config.urls.youtube.sdk).catch((error) => {\n this.debug.warn('YouTube API failed to load', error);\n });\n }\n },\n\n // Get the media title\n getTitle(videoId) {\n const url = format(this.config.urls.youtube.api, videoId);\n\n fetch(url)\n .then((data) => {\n if (is.object(data)) {\n const { title, height, width } = data;\n\n // Set title\n this.config.title = title;\n ui.setTitle.call(this);\n\n // Set aspect ratio\n this.embed.ratio = roundAspectRatio(width, height);\n }\n\n setAspectRatio.call(this);\n })\n .catch(() => {\n // Set aspect ratio\n setAspectRatio.call(this);\n });\n },\n\n // API ready\n ready() {\n const player = this;\n const config = player.config.youtube;\n // Ignore already setup (race condition)\n const currentId = player.media && player.media.getAttribute('id');\n if (!is.empty(currentId) && currentId.startsWith('youtube-')) {\n return;\n }\n\n // Get the source URL or ID\n let source = player.media.getAttribute('src');\n\n // Get from
if needed\n if (is.empty(source)) {\n source = player.media.getAttribute(this.config.attributes.embed.id);\n }\n\n // Replace the