diff --git a/app/Http/Controllers/Admin/UploadController.php b/app/Http/Controllers/Admin/UploadController.php index cdcdd36..40eee57 100644 --- a/app/Http/Controllers/Admin/UploadController.php +++ b/app/Http/Controllers/Admin/UploadController.php @@ -64,4 +64,20 @@ class UploadController extends Controller return $this->ok(['url' => $url], '已上传'); } + + /** 富文本编辑器内嵌图片上传 */ + public function editorImage(Request $request): JsonResponse + { + $data = $request->validate([ + 'file' => ['required', 'file', 'image', 'max:5120'], + 'scope' => ['nullable', 'string', 'in:courses,activities,news,banners,common'], + ]); + + $scope = $data['scope'] ?? 'common'; + $uploaded = $request->file('file'); + $path = $uploaded->store("editor/{$scope}", 'public'); + $url = CourseMedia::publicAssetUrl($path) ?? ''; + + return $this->ok(['url' => $url], '已上传'); + } } diff --git a/app/Http/Controllers/Miniapp/BannerController.php b/app/Http/Controllers/Miniapp/BannerController.php index 7c73b65..3caa499 100644 --- a/app/Http/Controllers/Miniapp/BannerController.php +++ b/app/Http/Controllers/Miniapp/BannerController.php @@ -29,4 +29,14 @@ class BannerController extends Controller return $this->ok(['items' => $items]); } + + public function show(int $banner): JsonResponse + { + $model = Banner::query() + ->where('status', 1) + ->where('type', Banner::TYPE_CUSTOM) + ->findOrFail($banner); + + return $this->ok(MiniappPresenter::serializeBanner($model)); + } } diff --git a/public/admin/assets/AdminLayout-GdqXtBlK.js b/public/admin/assets/AdminLayout-CSNnRLa5.js similarity index 97% rename from public/admin/assets/AdminLayout-GdqXtBlK.js rename to public/admin/assets/AdminLayout-CSNnRLa5.js index a5e0711..85181ba 100644 --- a/public/admin/assets/AdminLayout-GdqXtBlK.js +++ b/public/admin/assets/AdminLayout-CSNnRLa5.js @@ -1 +1 @@ -import{C as e,Ct as t,D as n,E as r,G as i,S as a,T as o,Y as s,Z as c,at as l,b as u,f as d,h as f,ht as p,m,q as h,tn as g,x as _,y as v}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{a as y,d as b,h as x,l as S,n as C,o as w,s as T,t as E,v as D}from"./index-j1gM0XLI.js";var O={class:`user-link`},k=T(n({__name:`AdminLayout`,setup(n){let T=y(),k=w(),A=E(),j=v(()=>T.path),M=p(!1),N=p(!1),P=p({password:``,password_confirmation:``}),F=v(()=>A.user?.username||`—`);function I(e){return e&&x[e]||D}function L(e){e&&e!==T.path&&k.push(e)}async function R(e){e===`out`&&(await A.logout(),await k.replace({name:`login`})),e===`pwd`&&(P.value={password:``,password_confirmation:``},M.value=!0)}async function z(){N.value=!0;try{await C(P.value),S.success(`密码已更新`),M.value=!1}finally{N.value=!1}}return(n,p)=>{let v=s(`el-icon`),y=s(`el-dropdown-item`),x=s(`el-dropdown-menu`),S=s(`el-dropdown`),C=s(`el-header`),w=s(`el-menu-item`),E=s(`el-sub-menu`),D=s(`el-menu`),k=s(`el-aside`),B=s(`router-view`),V=s(`el-main`),H=s(`el-container`),U=s(`el-input`),W=s(`el-form-item`),G=s(`el-form`),K=s(`el-button`),q=s(`el-dialog`);return i(),e(m,null,[r(H,{class:`admin-layout`,direction:`vertical`},{default:l(()=>[r(C,{class:`layout-topbar`,height:`52px`},{default:l(()=>[p[7]||=u(`div`,{class:`brand`},`S-lake高校雷达网`,-1),p[8]||=u(`div`,{class:`spacer`},null,-1),r(S,{class:`topbar-user`,trigger:`click`,onCommand:R},{dropdown:l(()=>[r(x,null,{default:l(()=>[r(y,{command:`pwd`},{default:l(()=>[...p[5]||=[o(`修改密码`,-1)]]),_:1}),r(y,{command:`out`,divided:``,class:`dropdown-logout`},{default:l(()=>[...p[6]||=[o(` 退出登录 `,-1)]]),_:1})]),_:1})]),default:l(()=>[u(`span`,O,[o(g(t(A).user?.real_name||t(A).user?.username)+` `,1),r(v,{class:`el-icon--right`},{default:l(()=>[r(t(b))]),_:1})])]),_:1})]),_:1}),r(H,{class:`layout-body`},{default:l(()=>[r(k,{width:`260px`,class:`aside`},{default:l(()=>[r(D,{"default-active":j.value,class:`menu slake-menu`,"background-color":`#ffffff`,"text-color":`#495057`,"active-text-color":`#ffffff`},{default:l(()=>[(i(!0),e(m,null,h(t(A).menus,t=>(i(),e(m,{key:t.id},[t.children?.length?(i(),_(E,{key:0,index:String(t.id)},{title:l(()=>[r(v,null,{default:l(()=>[(i(),_(c(I(t.icon))))]),_:2},1024),u(`span`,null,g(t.title),1)]),default:l(()=>[(i(!0),e(m,null,h(t.children,e=>(i(),_(w,{key:e.id,index:e.path,onClick:t=>L(e.path)},{default:l(()=>[r(v,null,{default:l(()=>[(i(),_(c(I(e.icon))))]),_:2},1024),u(`span`,null,g(e.title),1)]),_:2},1032,[`index`,`onClick`]))),128))]),_:2},1032,[`index`])):(i(),_(w,{key:1,index:t.path,onClick:e=>L(t.path)},{default:l(()=>[r(v,null,{default:l(()=>[(i(),_(c(I(t.icon))))]),_:2},1024),u(`span`,null,g(t.title),1)]),_:2},1032,[`index`,`onClick`]))],64))),128))]),_:1},8,[`default-active`])]),_:1}),r(V,{class:`main`},{default:l(()=>[r(B,null,{default:l(({Component:e})=>[(i(),_(f,null,[t(T).meta.keepAlive&&e?(i(),_(c(e),{key:t(T).fullPath})):a(``,!0)],1024)),!t(T).meta.keepAlive&&e?(i(),_(c(e),{key:t(T).fullPath})):a(``,!0)]),_:1})]),_:1})]),_:1})]),_:1}),r(q,{modelValue:M.value,"onUpdate:modelValue":p[3]||=e=>M.value=e,class:`pwd-dialog`,title:`修改密码`,width:`480px`,"append-to-body":``,"destroy-on-close":``,onClosed:p[4]||=e=>P.value={password:``,password_confirmation:``}},{footer:l(()=>[r(K,{onClick:p[2]||=e=>M.value=!1},{default:l(()=>[...p[9]||=[o(`取消`,-1)]]),_:1}),r(K,{type:`primary`,loading:N.value,onClick:z},{default:l(()=>[...p[10]||=[o(`保存`,-1)]]),_:1},8,[`loading`])]),default:l(()=>[r(G,{class:`pwd-dialog-form`,"label-width":`100px`,onSubmit:d(z,[`prevent`])},{default:l(()=>[r(W,{label:`账号`},{default:l(()=>[r(U,{"model-value":F.value,readonly:``},null,8,[`model-value`])]),_:1}),r(W,{label:`新密码`,required:``},{default:l(()=>[r(U,{modelValue:P.value.password,"onUpdate:modelValue":p[0]||=e=>P.value.password=e,type:`password`,"show-password":``,placeholder:`至少 6 位`,autocomplete:`new-password`},null,8,[`modelValue`])]),_:1}),r(W,{label:`确认新密码`,required:``},{default:l(()=>[r(U,{modelValue:P.value.password_confirmation,"onUpdate:modelValue":p[1]||=e=>P.value.password_confirmation=e,type:`password`,"show-password":``,placeholder:`再次输入新密码`,autocomplete:`new-password`},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])],64)}}}),[[`__scopeId`,`data-v-54fb5ddb`]]);export{k as default}; \ No newline at end of file +import{C as e,Ct as t,D as n,E as r,G as i,S as a,T as o,Y as s,Z as c,at as l,b as u,f as d,h as f,ht as p,m,q as h,tn as g,x as _,y as v}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{a as y,d as b,h as x,l as S,n as C,o as w,s as T,t as E,v as D}from"./index-spAvC8uC.js";var O={class:`user-link`},k=T(n({__name:`AdminLayout`,setup(n){let T=y(),k=w(),A=E(),j=v(()=>T.path),M=p(!1),N=p(!1),P=p({password:``,password_confirmation:``}),F=v(()=>A.user?.username||`—`);function I(e){return e&&x[e]||D}function L(e){e&&e!==T.path&&k.push(e)}async function R(e){e===`out`&&(await A.logout(),await k.replace({name:`login`})),e===`pwd`&&(P.value={password:``,password_confirmation:``},M.value=!0)}async function z(){N.value=!0;try{await C(P.value),S.success(`密码已更新`),M.value=!1}finally{N.value=!1}}return(n,p)=>{let v=s(`el-icon`),y=s(`el-dropdown-item`),x=s(`el-dropdown-menu`),S=s(`el-dropdown`),C=s(`el-header`),w=s(`el-menu-item`),E=s(`el-sub-menu`),D=s(`el-menu`),k=s(`el-aside`),B=s(`router-view`),V=s(`el-main`),H=s(`el-container`),U=s(`el-input`),W=s(`el-form-item`),G=s(`el-form`),K=s(`el-button`),q=s(`el-dialog`);return i(),e(m,null,[r(H,{class:`admin-layout`,direction:`vertical`},{default:l(()=>[r(C,{class:`layout-topbar`,height:`52px`},{default:l(()=>[p[7]||=u(`div`,{class:`brand`},`S-lake高校雷达网`,-1),p[8]||=u(`div`,{class:`spacer`},null,-1),r(S,{class:`topbar-user`,trigger:`click`,onCommand:R},{dropdown:l(()=>[r(x,null,{default:l(()=>[r(y,{command:`pwd`},{default:l(()=>[...p[5]||=[o(`修改密码`,-1)]]),_:1}),r(y,{command:`out`,divided:``,class:`dropdown-logout`},{default:l(()=>[...p[6]||=[o(` 退出登录 `,-1)]]),_:1})]),_:1})]),default:l(()=>[u(`span`,O,[o(g(t(A).user?.real_name||t(A).user?.username)+` `,1),r(v,{class:`el-icon--right`},{default:l(()=>[r(t(b))]),_:1})])]),_:1})]),_:1}),r(H,{class:`layout-body`},{default:l(()=>[r(k,{width:`260px`,class:`aside`},{default:l(()=>[r(D,{"default-active":j.value,class:`menu slake-menu`,"background-color":`#ffffff`,"text-color":`#495057`,"active-text-color":`#ffffff`},{default:l(()=>[(i(!0),e(m,null,h(t(A).menus,t=>(i(),e(m,{key:t.id},[t.children?.length?(i(),_(E,{key:0,index:String(t.id)},{title:l(()=>[r(v,null,{default:l(()=>[(i(),_(c(I(t.icon))))]),_:2},1024),u(`span`,null,g(t.title),1)]),default:l(()=>[(i(!0),e(m,null,h(t.children,e=>(i(),_(w,{key:e.id,index:e.path,onClick:t=>L(e.path)},{default:l(()=>[r(v,null,{default:l(()=>[(i(),_(c(I(e.icon))))]),_:2},1024),u(`span`,null,g(e.title),1)]),_:2},1032,[`index`,`onClick`]))),128))]),_:2},1032,[`index`])):(i(),_(w,{key:1,index:t.path,onClick:e=>L(t.path)},{default:l(()=>[r(v,null,{default:l(()=>[(i(),_(c(I(t.icon))))]),_:2},1024),u(`span`,null,g(t.title),1)]),_:2},1032,[`index`,`onClick`]))],64))),128))]),_:1},8,[`default-active`])]),_:1}),r(V,{class:`main`},{default:l(()=>[r(B,null,{default:l(({Component:e})=>[(i(),_(f,null,[t(T).meta.keepAlive&&e?(i(),_(c(e),{key:t(T).fullPath})):a(``,!0)],1024)),!t(T).meta.keepAlive&&e?(i(),_(c(e),{key:t(T).fullPath})):a(``,!0)]),_:1})]),_:1})]),_:1})]),_:1}),r(q,{modelValue:M.value,"onUpdate:modelValue":p[3]||=e=>M.value=e,class:`pwd-dialog`,title:`修改密码`,width:`480px`,"append-to-body":``,"destroy-on-close":``,onClosed:p[4]||=e=>P.value={password:``,password_confirmation:``}},{footer:l(()=>[r(K,{onClick:p[2]||=e=>M.value=!1},{default:l(()=>[...p[9]||=[o(`取消`,-1)]]),_:1}),r(K,{type:`primary`,loading:N.value,onClick:z},{default:l(()=>[...p[10]||=[o(`保存`,-1)]]),_:1},8,[`loading`])]),default:l(()=>[r(G,{class:`pwd-dialog-form`,"label-width":`100px`,onSubmit:d(z,[`prevent`])},{default:l(()=>[r(W,{label:`账号`},{default:l(()=>[r(U,{"model-value":F.value,readonly:``},null,8,[`model-value`])]),_:1}),r(W,{label:`新密码`,required:``},{default:l(()=>[r(U,{modelValue:P.value.password,"onUpdate:modelValue":p[0]||=e=>P.value.password=e,type:`password`,"show-password":``,placeholder:`至少 6 位`,autocomplete:`new-password`},null,8,[`modelValue`])]),_:1}),r(W,{label:`确认新密码`,required:``},{default:l(()=>[r(U,{modelValue:P.value.password_confirmation,"onUpdate:modelValue":p[1]||=e=>P.value.password_confirmation=e,type:`password`,"show-password":``,placeholder:`再次输入新密码`,autocomplete:`new-password`},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])],64)}}}),[[`__scopeId`,`data-v-54fb5ddb`]]);export{k as default}; \ No newline at end of file diff --git a/public/admin/assets/HomeView-D1leC-8Q.js b/public/admin/assets/HomeView-CKdBDMEU.js similarity index 94% rename from public/admin/assets/HomeView-D1leC-8Q.js rename to public/admin/assets/HomeView-CKdBDMEU.js index e774653..1f8752d 100644 --- a/public/admin/assets/HomeView-D1leC-8Q.js +++ b/public/admin/assets/HomeView-CKdBDMEU.js @@ -1 +1 @@ -import{C as e,Ct as t,D as n,E as r,G as i,T as a,Y as o,at as s,b as c,tn as l,y as u}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{g as d,s as f}from"./index-j1gM0XLI.js";var p={class:`page`},m={class:`card-head`},h=f(n({__name:`HomeView`,setup(n){let f=u(()=>`/api`);return(n,u)=>{let h=o(`el-icon`),g=o(`el-descriptions-item`),_=o(`el-descriptions`),v=o(`el-card`);return i(),e(`div`,p,[r(v,{class:`card`,shadow:`hover`},{header:s(()=>[c(`div`,m,[r(h,{size:22},{default:s(()=>[r(t(d))]),_:1}),u[0]||=c(`span`,null,`高校雷达网 · 管理后台`,-1)])]),default:s(()=>[u[2]||=c(`p`,{class:`desc`},[a(`技术栈:Vue 3、Vite、TypeScript、Element Plus。本地已配置对接 `),c(`code`,null,`slake-school-service`),a(` 的 API 代理。`)],-1),r(_,{column:1,border:``},{default:s(()=>[r(g,{label:`VITE_API_BASE_URL`},{default:s(()=>[c(`code`,null,l(f.value),1)]),_:1}),r(g,{label:`说明`},{default:s(()=>[...u[1]||=[a(` 开发时请求 `,-1),c(`code`,null,`/api/*`,-1),a(` 由 Vite 转发至 `,-1),c(`code`,null,`VITE_PROXY_TARGET`,-1),a(`(默认 `,-1),c(`code`,null,`http://127.0.0.1:8000`,-1),a(`),与 Laravel 的 `,-1),c(`code`,null,`/api`,-1),a(` 前缀一致。 `,-1)]]),_:1})]),_:1})]),_:1})])}}}),[[`__scopeId`,`data-v-436e6398`]]);export{h as default}; \ No newline at end of file +import{C as e,Ct as t,D as n,E as r,G as i,T as a,Y as o,at as s,b as c,tn as l,y as u}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{g as d,s as f}from"./index-spAvC8uC.js";var p={class:`page`},m={class:`card-head`},h=f(n({__name:`HomeView`,setup(n){let f=u(()=>`/api`);return(n,u)=>{let h=o(`el-icon`),g=o(`el-descriptions-item`),_=o(`el-descriptions`),v=o(`el-card`);return i(),e(`div`,p,[r(v,{class:`card`,shadow:`hover`},{header:s(()=>[c(`div`,m,[r(h,{size:22},{default:s(()=>[r(t(d))]),_:1}),u[0]||=c(`span`,null,`高校雷达网 · 管理后台`,-1)])]),default:s(()=>[u[2]||=c(`p`,{class:`desc`},[a(`技术栈:Vue 3、Vite、TypeScript、Element Plus。本地已配置对接 `),c(`code`,null,`slake-school-service`),a(` 的 API 代理。`)],-1),r(_,{column:1,border:``},{default:s(()=>[r(g,{label:`VITE_API_BASE_URL`},{default:s(()=>[c(`code`,null,l(f.value),1)]),_:1}),r(g,{label:`说明`},{default:s(()=>[...u[1]||=[a(` 开发时请求 `,-1),c(`code`,null,`/api/*`,-1),a(` 由 Vite 转发至 `,-1),c(`code`,null,`VITE_PROXY_TARGET`,-1),a(`(默认 `,-1),c(`code`,null,`http://127.0.0.1:8000`,-1),a(`),与 Laravel 的 `,-1),c(`code`,null,`/api`,-1),a(` 前缀一致。 `,-1)]]),_:1})]),_:1})]),_:1})])}}}),[[`__scopeId`,`data-v-436e6398`]]);export{h as default}; \ No newline at end of file diff --git a/public/admin/assets/vue-quill-D2NUA52G.css b/public/admin/assets/RichTextEditor-B7FsLORh.css similarity index 98% rename from public/admin/assets/vue-quill-D2NUA52G.css rename to public/admin/assets/RichTextEditor-B7FsLORh.css index c33e9b2..c385048 100644 --- a/public/admin/assets/vue-quill-D2NUA52G.css +++ b/public/admin/assets/RichTextEditor-B7FsLORh.css @@ -1 +1 @@ -.ql-container{box-sizing:border-box;height:100%;margin:0;font-family:Helvetica,Arial,sans-serif;font-size:13px;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{height:1px;position:absolute;top:50%;left:-100000px;overflow-y:hidden}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word;outline:none;height:100%;padding:12px 15px;line-height:1.42;overflow-y:auto}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor ul,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;margin:0;padding:0}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:"•"}.ql-editor ul[data-checked=true],.ql-editor ul[data-checked=false]{pointer-events:none}.ql-editor ul[data-checked=true]>li *,.ql-editor ul[data-checked=false]>li *{pointer-events:all}.ql-editor ul[data-checked=true]>li:before,.ql-editor ul[data-checked=false]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:"☑"}.ql-editor ul[data-checked=false]>li:before{content:"☐"}.ql-editor li:before{white-space:nowrap;width:1.2em;display:inline-block}.ql-editor li:not(.ql-direction-rtl):before{text-align:right;margin-left:-1.5em;margin-right:.3em}.ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0, decimal) ". "}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1, lower-alpha) ". "}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2, lower-roman) ". "}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3, decimal) ". "}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4, lower-alpha) ". "}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5, lower-roman) ". "}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6, decimal) ". "}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7, lower-alpha) ". "}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8, lower-roman) ". "}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9, decimal) ". "}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{max-width:100%;display:block}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{text-align:inherit;direction:rtl}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);pointer-events:none;font-style:italic;position:absolute;left:15px;right:15px}.ql-snow.ql-toolbar:after,.ql-snow .ql-toolbar:after{clear:both;content:"";display:table}.ql-snow.ql-toolbar button,.ql-snow .ql-toolbar button{cursor:pointer;float:left;background:0 0;border:none;width:28px;height:24px;margin-left:1px;margin-right:1px;padding:3px 5px;display:inline-block}.ql-snow.ql-toolbar button svg,.ql-snow .ql-toolbar button svg{float:left;height:100%}.ql-snow.ql-toolbar button:active:hover,.ql-snow .ql-toolbar button:active:hover{outline:none}.ql-snow.ql-toolbar input.ql-image[type=file],.ql-snow .ql-toolbar input.ql-image[type=file]{display:none}.ql-snow.ql-toolbar button:hover,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar button:focus,.ql-snow .ql-toolbar button:focus,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-item:hover{background-color:#f3f4f6}.ql-snow.ql-toolbar button.ql-active,.ql-snow .ql-toolbar button.ql-active,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item.ql-selected{color:#2563eb;background-color:#dbeafe}.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill{fill:#2563eb}.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter{stroke:#2563eb}@media (pointer:coarse){.ql-snow.ql-toolbar button:hover:not(.ql-active),.ql-snow .ql-toolbar button:hover:not(.ql-active){color:#4b5563}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#4b5563}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#4b5563}}.ql-snow,.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{vertical-align:middle;display:inline-block}.ql-snow .ql-formats:after{clear:both;content:"";display:table}.ql-snow .ql-stroke{fill:none;stroke:#4b5563;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px}.ql-snow .ql-stroke-miter{fill:none;stroke:#4b5563;stroke-miterlimit:10;stroke-width:2px}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#4b5563}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-thin,.ql-snow .ql-stroke.ql-thin{stroke-width:1px}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-top:5px;margin-bottom:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor pre{white-space:pre-wrap;margin-top:5px;margin-bottom:5px;padding:5px 10px}.ql-snow .ql-editor code{padding:2px 4px;font-size:85%}.ql-snow .ql-editor pre.ql-syntax{color:#f8f8f2;background-color:#23241f;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#4b5563;float:left;vertical-align:middle;height:24px;margin-left:1px;margin-right:1px;font-size:14px;font-weight:500;display:inline-block;position:relative}.ql-snow .ql-picker-label{cursor:pointer;width:100%;height:100%;padding-left:8px;padding-right:2px;display:flex;position:relative}.ql-snow .ql-picker-label:before{line-height:22px;display:inline-block}.ql-snow .ql-picker-options{white-space:nowrap;background-color:#fff;min-width:100%;display:none;position:absolute}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;padding:5px 8px;display:block}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#d1d5db;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#d1d5db}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#d1d5db}.ql-snow .ql-picker.ql-expanded .ql-picker-options{z-index:1;margin-top:-1px;display:block;top:100%}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:3px}.ql-snow .ql-icon-picker .ql-picker-item{width:24px;height:24px;margin:2px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{width:152px;padding:3px 5px}.ql-snow .ql-color-picker .ql-picker-item{float:left;border:1px solid #0000;width:16px;height:16px;margin:2px;padding:0}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{width:18px;margin-top:-9px;position:absolute;top:50%;right:0}.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=""]):before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-label:before,.ql-snow .ql-picker.ql-header .ql-picker-item:before{content:"Normal"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{content:"Heading 1"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{content:"Heading 2"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{content:"Heading 3"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{content:"Heading 4"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{content:"Heading 5"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{content:"Heading 6"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-label:before,.ql-snow .ql-picker.ql-font .ql-picker-item:before{content:"Sans Serif"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{content:"Serif"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{content:"Monospace"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-label:before,.ql-snow .ql-picker.ql-size .ql-picker-item:before{content:"Normal"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{content:"Small"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{content:"Large"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{content:"Huge"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-toolbar.ql-snow{box-sizing:border-box;border:1px solid #d1d5db;padding:8px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid #0000}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid #0000;box-shadow:0 2px 8px #0003}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#d1d5db}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0}.ql-snow .ql-tooltip{color:#4b5563;white-space:nowrap;background-color:#fff;border:1px solid #d1d5db;padding:5px 12px;box-shadow:0 0 5px #d1d5db}.ql-snow .ql-tooltip:before{content:"Visit URL:";margin-right:8px;line-height:26px}.ql-snow .ql-tooltip input[type=text]{border:1px solid #d1d5db;width:170px;height:26px;margin:0;padding:3px 5px;font-size:13px;display:none}.ql-snow .ql-tooltip a.ql-preview{text-overflow:ellipsis;vertical-align:top;max-width:200px;display:inline-block;overflow-x:hidden}.ql-snow .ql-tooltip a.ql-action:after{content:"Edit";border-right:1px solid #d1d5db;margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:"Remove";margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{content:"Save";border-right:0;padding-right:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:"Enter link:"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:"Enter formula:"}.ql-snow .ql-tooltip[data-mode=video]:before{content:"Enter video:"}.ql-snow a{color:#2563eb}.ql-container.ql-snow{border:1px solid #d1d5db} +.ql-container{box-sizing:border-box;height:100%;margin:0;font-family:Helvetica,Arial,sans-serif;font-size:13px;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{height:1px;position:absolute;top:50%;left:-100000px;overflow-y:hidden}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word;outline:none;height:100%;padding:12px 15px;line-height:1.42;overflow-y:auto}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor ul,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;margin:0;padding:0}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:"•"}.ql-editor ul[data-checked=true],.ql-editor ul[data-checked=false]{pointer-events:none}.ql-editor ul[data-checked=true]>li *,.ql-editor ul[data-checked=false]>li *{pointer-events:all}.ql-editor ul[data-checked=true]>li:before,.ql-editor ul[data-checked=false]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:"☑"}.ql-editor ul[data-checked=false]>li:before{content:"☐"}.ql-editor li:before{white-space:nowrap;width:1.2em;display:inline-block}.ql-editor li:not(.ql-direction-rtl):before{text-align:right;margin-left:-1.5em;margin-right:.3em}.ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0, decimal) ". "}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1, lower-alpha) ". "}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2, lower-roman) ". "}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3, decimal) ". "}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4, lower-alpha) ". "}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5, lower-roman) ". "}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6, decimal) ". "}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7, lower-alpha) ". "}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8, lower-roman) ". "}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9, decimal) ". "}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{max-width:100%;display:block}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{text-align:inherit;direction:rtl}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);pointer-events:none;font-style:italic;position:absolute;left:15px;right:15px}.ql-snow.ql-toolbar:after,.ql-snow .ql-toolbar:after{clear:both;content:"";display:table}.ql-snow.ql-toolbar button,.ql-snow .ql-toolbar button{cursor:pointer;float:left;background:0 0;border:none;width:28px;height:24px;margin-left:1px;margin-right:1px;padding:3px 5px;display:inline-block}.ql-snow.ql-toolbar button svg,.ql-snow .ql-toolbar button svg{float:left;height:100%}.ql-snow.ql-toolbar button:active:hover,.ql-snow .ql-toolbar button:active:hover{outline:none}.ql-snow.ql-toolbar input.ql-image[type=file],.ql-snow .ql-toolbar input.ql-image[type=file]{display:none}.ql-snow.ql-toolbar button:hover,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar button:focus,.ql-snow .ql-toolbar button:focus,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-item:hover{background-color:#f3f4f6}.ql-snow.ql-toolbar button.ql-active,.ql-snow .ql-toolbar button.ql-active,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item.ql-selected{color:#2563eb;background-color:#dbeafe}.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill{fill:#2563eb}.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter{stroke:#2563eb}@media (pointer:coarse){.ql-snow.ql-toolbar button:hover:not(.ql-active),.ql-snow .ql-toolbar button:hover:not(.ql-active){color:#4b5563}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#4b5563}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#4b5563}}.ql-snow,.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{vertical-align:middle;display:inline-block}.ql-snow .ql-formats:after{clear:both;content:"";display:table}.ql-snow .ql-stroke{fill:none;stroke:#4b5563;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px}.ql-snow .ql-stroke-miter{fill:none;stroke:#4b5563;stroke-miterlimit:10;stroke-width:2px}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#4b5563}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-thin,.ql-snow .ql-stroke.ql-thin{stroke-width:1px}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-top:5px;margin-bottom:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor pre{white-space:pre-wrap;margin-top:5px;margin-bottom:5px;padding:5px 10px}.ql-snow .ql-editor code{padding:2px 4px;font-size:85%}.ql-snow .ql-editor pre.ql-syntax{color:#f8f8f2;background-color:#23241f;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#4b5563;float:left;vertical-align:middle;height:24px;margin-left:1px;margin-right:1px;font-size:14px;font-weight:500;display:inline-block;position:relative}.ql-snow .ql-picker-label{cursor:pointer;width:100%;height:100%;padding-left:8px;padding-right:2px;display:flex;position:relative}.ql-snow .ql-picker-label:before{line-height:22px;display:inline-block}.ql-snow .ql-picker-options{white-space:nowrap;background-color:#fff;min-width:100%;display:none;position:absolute}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;padding:5px 8px;display:block}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#d1d5db;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#d1d5db}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#d1d5db}.ql-snow .ql-picker.ql-expanded .ql-picker-options{z-index:1;margin-top:-1px;display:block;top:100%}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:3px}.ql-snow .ql-icon-picker .ql-picker-item{width:24px;height:24px;margin:2px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{width:152px;padding:3px 5px}.ql-snow .ql-color-picker .ql-picker-item{float:left;border:1px solid #0000;width:16px;height:16px;margin:2px;padding:0}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{width:18px;margin-top:-9px;position:absolute;top:50%;right:0}.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=""]):before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-label:before,.ql-snow .ql-picker.ql-header .ql-picker-item:before{content:"Normal"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{content:"Heading 1"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{content:"Heading 2"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{content:"Heading 3"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{content:"Heading 4"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{content:"Heading 5"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{content:"Heading 6"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-label:before,.ql-snow .ql-picker.ql-font .ql-picker-item:before{content:"Sans Serif"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{content:"Serif"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{content:"Monospace"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-label:before,.ql-snow .ql-picker.ql-size .ql-picker-item:before{content:"Normal"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{content:"Small"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{content:"Large"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{content:"Huge"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-toolbar.ql-snow{box-sizing:border-box;border:1px solid #d1d5db;padding:8px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid #0000}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid #0000;box-shadow:0 2px 8px #0003}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#d1d5db}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0}.ql-snow .ql-tooltip{color:#4b5563;white-space:nowrap;background-color:#fff;border:1px solid #d1d5db;padding:5px 12px;box-shadow:0 0 5px #d1d5db}.ql-snow .ql-tooltip:before{content:"Visit URL:";margin-right:8px;line-height:26px}.ql-snow .ql-tooltip input[type=text]{border:1px solid #d1d5db;width:170px;height:26px;margin:0;padding:3px 5px;font-size:13px;display:none}.ql-snow .ql-tooltip a.ql-preview{text-overflow:ellipsis;vertical-align:top;max-width:200px;display:inline-block;overflow-x:hidden}.ql-snow .ql-tooltip a.ql-action:after{content:"Edit";border-right:1px solid #d1d5db;margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:"Remove";margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{content:"Save";border-right:0;padding-right:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:"Enter link:"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:"Enter formula:"}.ql-snow .ql-tooltip[data-mode=video]:before{content:"Enter video:"}.ql-snow a{color:#2563eb}.ql-container.ql-snow{border:1px solid #d1d5db}.rich-text-editor[data-v-f46336b8],.rich-text-editor[data-v-f46336b8] .ql-toolbar,.rich-text-editor[data-v-f46336b8] .ql-container{width:100%}.rich-text-editor[data-v-f46336b8] .ql-container{height:calc(100% - 42px)}.rich-text-editor[data-v-f46336b8] .ql-editor img{max-width:100%;height:auto;margin:8px 0;display:block} diff --git a/public/admin/assets/vue-quill.snow-CU-IQtel.js b/public/admin/assets/RichTextEditor-DmYY0g1b.js similarity index 95% rename from public/admin/assets/vue-quill.snow-CU-IQtel.js rename to public/admin/assets/RichTextEditor-DmYY0g1b.js index 857c7b4..73f9120 100644 --- a/public/admin/assets/vue-quill.snow-CU-IQtel.js +++ b/public/admin/assets/RichTextEditor-DmYY0g1b.js @@ -1,4 +1,4 @@ -import{a as e,t}from"./rolldown-runtime-BYbx6iT9.js";import{A as n,D as r,H as i,I as a,ht as o,rt as s,z as c}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";var l=t(((e,t)=>{(function(n,r){typeof e==`object`&&typeof t==`object`?t.exports=r():typeof define==`function`&&define.amd?define([],r):typeof e==`object`?e.Quill=r():n.Quill=r()})(typeof self<`u`?self:e,function(){return(function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,`a`,t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=``,n(n.s=109)})([(function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0});var r=n(17),i=n(18),a=n(19),o=n(45),s=n(46),c=n(47),l=n(48),u=n(49),d=n(12),f=n(32),p=n(33),m=n(31),h=n(1);t.default={Scope:h.Scope,create:h.create,find:h.find,query:h.query,register:h.register,Container:r.default,Format:i.default,Leaf:a.default,Embed:l.default,Scroll:o.default,Block:c.default,Inline:s.default,Text:u.default,Attributor:{Attribute:d.default,Class:f.default,Style:p.default,Store:m.default}}}),(function(e,t,n){var r=this&&this.__extends||(function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}})();Object.defineProperty(t,`__esModule`,{value:!0});var i=function(e){r(t,e);function t(t){var n=this;return t=`[Parchment] `+t,n=e.call(this,t)||this,n.message=t,n.name=n.constructor.name,n}return t}(Error);t.ParchmentError=i;var a={},o={},s={},c={};t.DATA_KEY=`__blot`;var l;(function(e){e[e.TYPE=3]=`TYPE`,e[e.LEVEL=12]=`LEVEL`,e[e.ATTRIBUTE=13]=`ATTRIBUTE`,e[e.BLOT=14]=`BLOT`,e[e.INLINE=7]=`INLINE`,e[e.BLOCK=11]=`BLOCK`,e[e.BLOCK_BLOT=10]=`BLOCK_BLOT`,e[e.INLINE_BLOT=6]=`INLINE_BLOT`,e[e.BLOCK_ATTRIBUTE=9]=`BLOCK_ATTRIBUTE`,e[e.INLINE_ATTRIBUTE=5]=`INLINE_ATTRIBUTE`,e[e.ANY=15]=`ANY`})(l=t.Scope||={});function u(e,t){var n=f(e);if(n==null)throw new i(`Unable to create `+e+` blot`);var r=n;return new r(e instanceof Node||e.nodeType===Node.TEXT_NODE?e:r.create(t),t)}t.create=u;function d(e,n){return n===void 0&&(n=!1),e==null?null:e[t.DATA_KEY]==null?n?d(e.parentNode,n):null:e[t.DATA_KEY].blot}t.find=d;function f(e,t){t===void 0&&(t=l.ANY);var n;if(typeof e==`string`)n=c[e]||a[e];else if(e instanceof Text||e.nodeType===Node.TEXT_NODE)n=c.text;else if(typeof e==`number`)e&l.LEVEL&l.BLOCK?n=c.block:e&l.LEVEL&l.INLINE&&(n=c.inline);else if(e instanceof HTMLElement){var r=(e.getAttribute(`class`)||``).split(/\s+/);for(var i in r)if(n=o[r[i]],n)break;n||=s[e.tagName]}return n==null?null:t&l.LEVEL&n.scope&&t&l.TYPE&n.scope?n:null}t.query=f;function p(){var e=[...arguments];if(e.length>1)return e.map(function(e){return p(e)});var t=e[0];if(typeof t.blotName!=`string`&&typeof t.attrName!=`string`)throw new i(`Invalid definition`);if(t.blotName===`abstract`)throw new i(`Cannot register abstract class`);return c[t.blotName||t.attrName]=t,typeof t.keyName==`string`?a[t.keyName]=t:(t.className!=null&&(o[t.className]=t),t.tagName!=null&&(Array.isArray(t.tagName)?t.tagName=t.tagName.map(function(e){return e.toUpperCase()}):t.tagName=t.tagName.toUpperCase(),(Array.isArray(t.tagName)?t.tagName:[t.tagName]).forEach(function(e){(s[e]==null||t.className==null)&&(s[e]=t)}))),t}t.register=p}),(function(e,t,n){var r=n(51),i=n(11),a=n(3),o=n(20),s=`\0`,c=function(e){Array.isArray(e)?this.ops=e:e!=null&&Array.isArray(e.ops)?this.ops=e.ops:this.ops=[]};c.prototype.insert=function(e,t){var n={};return e.length===0?this:(n.insert=e,typeof t==`object`&&t&&Object.keys(t).length>0&&(n.attributes=t),this.push(n))},c.prototype.delete=function(e){return e<=0?this:this.push({delete:e})},c.prototype.retain=function(e,t){if(e<=0)return this;var n={retain:e};return typeof t==`object`&&t&&Object.keys(t).length>0&&(n.attributes=t),this.push(n)},c.prototype.push=function(e){var t=this.ops.length,n=this.ops[t-1];if(e=a(!0,{},e),typeof n==`object`){if(typeof e.delete==`number`&&typeof n.delete==`number`)return this.ops[t-1]={delete:n.delete+e.delete},this;if(typeof n.delete==`number`&&e.insert!=null&&(--t,n=this.ops[t-1],typeof n!=`object`))return this.ops.unshift(e),this;if(i(e.attributes,n.attributes)){if(typeof e.insert==`string`&&typeof n.insert==`string`)return this.ops[t-1]={insert:n.insert+e.insert},typeof e.attributes==`object`&&(this.ops[t-1].attributes=e.attributes),this;if(typeof e.retain==`number`&&typeof n.retain==`number`)return this.ops[t-1]={retain:n.retain+e.retain},typeof e.attributes==`object`&&(this.ops[t-1].attributes=e.attributes),this}}return t===this.ops.length?this.ops.push(e):this.ops.splice(t,0,e),this},c.prototype.chop=function(){var e=this.ops[this.ops.length-1];return e&&e.retain&&!e.attributes&&this.ops.pop(),this},c.prototype.filter=function(e){return this.ops.filter(e)},c.prototype.forEach=function(e){this.ops.forEach(e)},c.prototype.map=function(e){return this.ops.map(e)},c.prototype.partition=function(e){var t=[],n=[];return this.forEach(function(r){(e(r)?t:n).push(r)}),[t,n]},c.prototype.reduce=function(e,t){return this.ops.reduce(e,t)},c.prototype.changeLength=function(){return this.reduce(function(e,t){return t.insert?e+o.length(t):t.delete?e-t.delete:e},0)},c.prototype.length=function(){return this.reduce(function(e,t){return e+o.length(t)},0)},c.prototype.slice=function(e,t){e||=0,typeof t!=`number`&&(t=1/0);for(var n=[],r=o.iterator(this.ops),i=0;i0&&n.next(a.retain-s)}for(var l=new c(r);t.hasNext()||n.hasNext();)if(n.peekType()===`insert`)l.push(n.next());else if(t.peekType()===`delete`)l.push(t.next());else{var u=Math.min(t.peekLength(),n.peekLength()),d=t.next(u),f=n.next(u);if(typeof f.retain==`number`){var p={};typeof d.retain==`number`?p.retain=u:p.insert=d.insert;var m=o.attributes.compose(d.attributes,f.attributes,typeof d.retain==`number`);if(m&&(p.attributes=m),l.push(p),!n.hasNext()&&i(l.ops[l.ops.length-1],p)){var h=new c(t.rest());return l.concat(h).chop()}}else typeof f.delete==`number`&&typeof d.retain==`number`&&l.push(f)}return l.chop()},c.prototype.concat=function(e){var t=new c(this.ops.slice());return e.ops.length>0&&(t.push(e.ops[0]),t.ops=t.ops.concat(e.ops.slice(1))),t},c.prototype.diff=function(e,t){if(this.ops===e.ops)return new c;var n=[this,e].map(function(t){return t.map(function(n){if(n.insert!=null)return typeof n.insert==`string`?n.insert:s;throw Error(`diff() called `+(t===e?`on`:`with`)+` non-document`)}).join(``)}),a=new c,l=r(n[0],n[1],t),u=o.iterator(this.ops),d=o.iterator(e.ops);return l.forEach(function(e){for(var t=e[1].length;t>0;){var n=0;switch(e[0]){case r.INSERT:n=Math.min(d.peekLength(),t),a.push(d.next(n));break;case r.DELETE:n=Math.min(t,u.peekLength()),u.next(n),a.delete(n);break;case r.EQUAL:n=Math.min(u.peekLength(),d.peekLength(),t);var s=u.next(n),c=d.next(n);i(s.insert,c.insert)?a.retain(n,o.attributes.diff(s.attributes,c.attributes)):a.push(c).delete(n);break}t-=n}}),a.chop()},c.prototype.eachLine=function(e,t){t||=` +import{a as e,t}from"./rolldown-runtime-BYbx6iT9.js";import{A as n,C as r,Ct as i,D as a,E as o,G as s,H as c,I as l,P as u,Qt as d,et as f,ht as p,rt as m,z as h}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{l as g,r as _,s as v}from"./index-spAvC8uC.js";var y=t(((e,t)=>{(function(n,r){typeof e==`object`&&typeof t==`object`?t.exports=r():typeof define==`function`&&define.amd?define([],r):typeof e==`object`?e.Quill=r():n.Quill=r()})(typeof self<`u`?self:e,function(){return(function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,`a`,t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=``,n(n.s=109)})([(function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0});var r=n(17),i=n(18),a=n(19),o=n(45),s=n(46),c=n(47),l=n(48),u=n(49),d=n(12),f=n(32),p=n(33),m=n(31),h=n(1);t.default={Scope:h.Scope,create:h.create,find:h.find,query:h.query,register:h.register,Container:r.default,Format:i.default,Leaf:a.default,Embed:l.default,Scroll:o.default,Block:c.default,Inline:s.default,Text:u.default,Attributor:{Attribute:d.default,Class:f.default,Style:p.default,Store:m.default}}}),(function(e,t,n){var r=this&&this.__extends||(function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}})();Object.defineProperty(t,`__esModule`,{value:!0});var i=function(e){r(t,e);function t(t){var n=this;return t=`[Parchment] `+t,n=e.call(this,t)||this,n.message=t,n.name=n.constructor.name,n}return t}(Error);t.ParchmentError=i;var a={},o={},s={},c={};t.DATA_KEY=`__blot`;var l;(function(e){e[e.TYPE=3]=`TYPE`,e[e.LEVEL=12]=`LEVEL`,e[e.ATTRIBUTE=13]=`ATTRIBUTE`,e[e.BLOT=14]=`BLOT`,e[e.INLINE=7]=`INLINE`,e[e.BLOCK=11]=`BLOCK`,e[e.BLOCK_BLOT=10]=`BLOCK_BLOT`,e[e.INLINE_BLOT=6]=`INLINE_BLOT`,e[e.BLOCK_ATTRIBUTE=9]=`BLOCK_ATTRIBUTE`,e[e.INLINE_ATTRIBUTE=5]=`INLINE_ATTRIBUTE`,e[e.ANY=15]=`ANY`})(l=t.Scope||={});function u(e,t){var n=f(e);if(n==null)throw new i(`Unable to create `+e+` blot`);var r=n;return new r(e instanceof Node||e.nodeType===Node.TEXT_NODE?e:r.create(t),t)}t.create=u;function d(e,n){return n===void 0&&(n=!1),e==null?null:e[t.DATA_KEY]==null?n?d(e.parentNode,n):null:e[t.DATA_KEY].blot}t.find=d;function f(e,t){t===void 0&&(t=l.ANY);var n;if(typeof e==`string`)n=c[e]||a[e];else if(e instanceof Text||e.nodeType===Node.TEXT_NODE)n=c.text;else if(typeof e==`number`)e&l.LEVEL&l.BLOCK?n=c.block:e&l.LEVEL&l.INLINE&&(n=c.inline);else if(e instanceof HTMLElement){var r=(e.getAttribute(`class`)||``).split(/\s+/);for(var i in r)if(n=o[r[i]],n)break;n||=s[e.tagName]}return n==null?null:t&l.LEVEL&n.scope&&t&l.TYPE&n.scope?n:null}t.query=f;function p(){var e=[...arguments];if(e.length>1)return e.map(function(e){return p(e)});var t=e[0];if(typeof t.blotName!=`string`&&typeof t.attrName!=`string`)throw new i(`Invalid definition`);if(t.blotName===`abstract`)throw new i(`Cannot register abstract class`);return c[t.blotName||t.attrName]=t,typeof t.keyName==`string`?a[t.keyName]=t:(t.className!=null&&(o[t.className]=t),t.tagName!=null&&(Array.isArray(t.tagName)?t.tagName=t.tagName.map(function(e){return e.toUpperCase()}):t.tagName=t.tagName.toUpperCase(),(Array.isArray(t.tagName)?t.tagName:[t.tagName]).forEach(function(e){(s[e]==null||t.className==null)&&(s[e]=t)}))),t}t.register=p}),(function(e,t,n){var r=n(51),i=n(11),a=n(3),o=n(20),s=`\0`,c=function(e){Array.isArray(e)?this.ops=e:e!=null&&Array.isArray(e.ops)?this.ops=e.ops:this.ops=[]};c.prototype.insert=function(e,t){var n={};return e.length===0?this:(n.insert=e,typeof t==`object`&&t&&Object.keys(t).length>0&&(n.attributes=t),this.push(n))},c.prototype.delete=function(e){return e<=0?this:this.push({delete:e})},c.prototype.retain=function(e,t){if(e<=0)return this;var n={retain:e};return typeof t==`object`&&t&&Object.keys(t).length>0&&(n.attributes=t),this.push(n)},c.prototype.push=function(e){var t=this.ops.length,n=this.ops[t-1];if(e=a(!0,{},e),typeof n==`object`){if(typeof e.delete==`number`&&typeof n.delete==`number`)return this.ops[t-1]={delete:n.delete+e.delete},this;if(typeof n.delete==`number`&&e.insert!=null&&(--t,n=this.ops[t-1],typeof n!=`object`))return this.ops.unshift(e),this;if(i(e.attributes,n.attributes)){if(typeof e.insert==`string`&&typeof n.insert==`string`)return this.ops[t-1]={insert:n.insert+e.insert},typeof e.attributes==`object`&&(this.ops[t-1].attributes=e.attributes),this;if(typeof e.retain==`number`&&typeof n.retain==`number`)return this.ops[t-1]={retain:n.retain+e.retain},typeof e.attributes==`object`&&(this.ops[t-1].attributes=e.attributes),this}}return t===this.ops.length?this.ops.push(e):this.ops.splice(t,0,e),this},c.prototype.chop=function(){var e=this.ops[this.ops.length-1];return e&&e.retain&&!e.attributes&&this.ops.pop(),this},c.prototype.filter=function(e){return this.ops.filter(e)},c.prototype.forEach=function(e){this.ops.forEach(e)},c.prototype.map=function(e){return this.ops.map(e)},c.prototype.partition=function(e){var t=[],n=[];return this.forEach(function(r){(e(r)?t:n).push(r)}),[t,n]},c.prototype.reduce=function(e,t){return this.ops.reduce(e,t)},c.prototype.changeLength=function(){return this.reduce(function(e,t){return t.insert?e+o.length(t):t.delete?e-t.delete:e},0)},c.prototype.length=function(){return this.reduce(function(e,t){return e+o.length(t)},0)},c.prototype.slice=function(e,t){e||=0,typeof t!=`number`&&(t=1/0);for(var n=[],r=o.iterator(this.ops),i=0;i0&&n.next(a.retain-s)}for(var l=new c(r);t.hasNext()||n.hasNext();)if(n.peekType()===`insert`)l.push(n.next());else if(t.peekType()===`delete`)l.push(t.next());else{var u=Math.min(t.peekLength(),n.peekLength()),d=t.next(u),f=n.next(u);if(typeof f.retain==`number`){var p={};typeof d.retain==`number`?p.retain=u:p.insert=d.insert;var m=o.attributes.compose(d.attributes,f.attributes,typeof d.retain==`number`);if(m&&(p.attributes=m),l.push(p),!n.hasNext()&&i(l.ops[l.ops.length-1],p)){var h=new c(t.rest());return l.concat(h).chop()}}else typeof f.delete==`number`&&typeof d.retain==`number`&&l.push(f)}return l.chop()},c.prototype.concat=function(e){var t=new c(this.ops.slice());return e.ops.length>0&&(t.push(e.ops[0]),t.ops=t.ops.concat(e.ops.slice(1))),t},c.prototype.diff=function(e,t){if(this.ops===e.ops)return new c;var n=[this,e].map(function(t){return t.map(function(n){if(n.insert!=null)return typeof n.insert==`string`?n.insert:s;throw Error(`diff() called `+(t===e?`on`:`with`)+` non-document`)}).join(``)}),a=new c,l=r(n[0],n[1],t),u=o.iterator(this.ops),d=o.iterator(e.ops);return l.forEach(function(e){for(var t=e[1].length;t>0;){var n=0;switch(e[0]){case r.INSERT:n=Math.min(d.peekLength(),t),a.push(d.next(n));break;case r.DELETE:n=Math.min(t,u.peekLength()),u.next(n),a.delete(n);break;case r.EQUAL:n=Math.min(u.peekLength(),d.peekLength(),t);var s=u.next(n),c=d.next(n);i(s.insert,c.insert)?a.retain(n,o.attributes.diff(s.attributes,c.attributes)):a.push(c).delete(n);break}t-=n}}),a.chop()},c.prototype.eachLine=function(e,t){t||=` `;for(var n=o.iterator(this.ops),r=new c,i=0;n.hasNext();){if(n.peekType()!==`insert`)return;var a=n.peek(),s=o.length(a)-n.peekLength(),l=typeof a.insert==`string`?a.insert.indexOf(t,s)-s:-1;if(l<0)r.push(n.next());else if(l>0)r.push(n.next(l));else{if(e(r,n.next(1).attributes||{},i)===!1)return;i+=1,r=new c}}r.length()>0&&e(r,{},i)},c.prototype.transform=function(e,t){if(t=!!t,typeof e==`number`)return this.transformPosition(e,t);for(var n=o.iterator(this.ops),r=o.iterator(e.ops),i=new c;n.hasNext()||r.hasNext();)if(n.peekType()===`insert`&&(t||r.peekType()!==`insert`))i.retain(o.length(n.next()));else if(r.peekType()===`insert`)i.push(r.next());else{var a=Math.min(n.peekLength(),r.peekLength()),s=n.next(a),l=r.next(a);if(s.delete)continue;l.delete?i.push(l):i.retain(a,o.attributes.transform(s.attributes,l.attributes,t))}return i.chop()},c.prototype.transformPosition=function(e,t){t=!!t;for(var n=o.iterator(this.ops),r=0;n.hasNext()&&r<=e;){var i=n.peekLength(),a=n.peekType();if(n.next(),a===`delete`){e-=Math.min(i,e-r);continue}else a===`insert`&&(re.offsetTop+n*1.5&&t.insert(` -`)}return t}function ae(e,t){var n={},r=e.style||{};return r.fontStyle&&j(e).fontStyle===`italic`&&(n.italic=!0),r.fontWeight&&(j(e).fontWeight.startsWith(`bold`)||parseInt(j(e).fontWeight)>=700)&&(n.bold=!0),Object.keys(n).length>0&&(t=A(t,n)),parseFloat(r.textIndent||0)>0&&(t=new s.default().insert(` `).concat(t)),t}function R(e,t){var n=e.data;if(e.parentNode.tagName===`O:P`)return t.insert(n.trim());if(n.trim().length===0&&e.parentNode.classList.contains(`ql-clipboard`))return t;if(!j(e.parentNode).whiteSpace.startsWith(`pre`)){var r=function(e,t){return t=t.replace(/[^\u00a0]/g,``),t.length<1&&e?` `:t};n=n.replace(/\r\n/g,` `).replace(/\n/g,` `),n=n.replace(/\s\s+/g,r.bind(r,!0)),(e.previousSibling==null&&N(e.parentNode)||e.previousSibling!=null&&N(e.previousSibling))&&(n=n.replace(/^\s+/,r.bind(r,!1))),(e.nextSibling==null&&N(e.parentNode)||e.nextSibling!=null&&N(e.nextSibling))&&(n=n.replace(/\s+$/,r.bind(r,!1)))}return t.insert(n)}t.default=k,t.matchAttributor=F,t.matchBlot=te,t.matchNewline=L,t.matchSpacing=ie,t.matchText=R}),(function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0});var r=function(){function e(e,t){for(var n=0;n `}),(function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0});var r=function(){function e(e,t){for(var n=0;nr.right&&(a=r.right-i.right,this.root.style.left=t+a+`px`),i.leftr.bottom){var o=i.bottom-i.top,s=e.bottom-e.top+o;this.root.style.top=n-s+`px`,this.root.classList.add(`ql-flip`)}return a}},{key:`show`,value:function(){this.root.classList.remove(`ql-editing`),this.root.classList.remove(`ql-hidden`)}}]),e}()}),(function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0});var r=function(){function e(e,t){var n=[],r=!0,i=!1,a=void 0;try{for(var o=e[Symbol.iterator](),s;!(r=(s=o.next()).done)&&(n.push(s.value),!(t&&n.length===t));r=!0);}catch(e){i=!0,a=e}finally{try{!r&&o.return&&o.return()}finally{if(i)throw a}}return n}return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,n);throw TypeError(`Invalid attempt to destructure non-iterable instance`)}}(),i=function e(t,n,r){t===null&&(t=Function.prototype);var i=Object.getOwnPropertyDescriptor(t,n);if(i===void 0){var a=Object.getPrototypeOf(t);return a===null?void 0:e(a,n,r)}else if(`value`in i)return i.value;else{var o=i.get;return o===void 0?void 0:o.call(r)}},a=function(){function e(e,t){for(var n=0;n`,``,``,``].join(``),t.default=v}),(function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0});var r=P(n(29)),i=n(36),a=n(38),o=n(64),s=P(n(65)),c=P(n(66)),l=n(67),u=P(l),d=n(37),f=n(26),p=n(39),m=n(40),h=P(n(56)),g=P(n(68)),_=P(n(27)),v=P(n(69)),y=P(n(70)),b=P(n(71)),x=P(n(72)),S=P(n(73)),C=n(13),w=P(C),T=P(n(74)),E=P(n(75)),D=P(n(57)),O=P(n(41)),k=P(n(28)),A=P(n(59)),j=P(n(60)),M=P(n(61)),N=P(n(108)),ee=P(n(62));function P(e){return e&&e.__esModule?e:{default:e}}r.default.register({"attributors/attribute/direction":a.DirectionAttribute,"attributors/class/align":i.AlignClass,"attributors/class/background":d.BackgroundClass,"attributors/class/color":f.ColorClass,"attributors/class/direction":a.DirectionClass,"attributors/class/font":p.FontClass,"attributors/class/size":m.SizeClass,"attributors/style/align":i.AlignStyle,"attributors/style/background":d.BackgroundStyle,"attributors/style/color":f.ColorStyle,"attributors/style/direction":a.DirectionStyle,"attributors/style/font":p.FontStyle,"attributors/style/size":m.SizeStyle},!0),r.default.register({"formats/align":i.AlignClass,"formats/direction":a.DirectionClass,"formats/indent":o.IndentClass,"formats/background":d.BackgroundStyle,"formats/color":f.ColorStyle,"formats/font":p.FontClass,"formats/size":m.SizeClass,"formats/blockquote":s.default,"formats/code-block":w.default,"formats/header":c.default,"formats/list":u.default,"formats/bold":h.default,"formats/code":C.Code,"formats/italic":g.default,"formats/link":_.default,"formats/script":v.default,"formats/strike":y.default,"formats/underline":b.default,"formats/image":x.default,"formats/video":S.default,"formats/list/item":l.ListItem,"modules/formula":T.default,"modules/syntax":E.default,"modules/toolbar":D.default,"themes/bubble":N.default,"themes/snow":ee.default,"ui/icons":O.default,"ui/picker":k.default,"ui/icon-picker":j.default,"ui/color-picker":A.default,"ui/tooltip":M.default},!0),t.default=r.default}),(function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0}),t.IndentClass=void 0;var r=function(){function e(e,t){for(var n=0;n0&&this.children.tail.format(e,t)}},{key:`formats`,value:function(){return l({},this.statics.blotName,this.statics.formats(this.domNode))}},{key:`insertBefore`,value:function(e,n){if(e instanceof p)i(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),`insertBefore`,this).call(this,e,n);else{var r=n==null?this.length():n.offset(this),a=this.split(r);a.parent.insertBefore(e,a)}}},{key:`optimize`,value:function(e){i(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),`optimize`,this).call(this,e);var n=this.next;n!=null&&n.prev===this&&n.statics.blotName===this.statics.blotName&&n.domNode.tagName===this.domNode.tagName&&n.domNode.getAttribute(`data-checked`)===this.domNode.getAttribute(`data-checked`)&&(n.moveChildren(this),n.remove())}},{key:`replace`,value:function(e){if(e.statics.blotName!==this.statics.blotName){var n=a.default.create(this.statics.defaultChild);e.moveChildren(n),this.appendChild(n)}i(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),`replace`,this).call(this,e)}}]),t}(s.default);m.blotName=`list`,m.scope=a.default.Scope.BLOCK_BLOT,m.tagName=[`OL`,`UL`],m.defaultChild=`list-item`,m.allowedChildren=[p],t.ListItem=p,t.default=m}),(function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0});var r=i(n(56));function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function o(e,t){if(!e)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return t&&(typeof t==`object`||typeof t==`function`)?t:e}function s(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Super expression must either be null or a function, not `+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var c=function(e){s(t,e);function t(){return a(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return t}(r.default);c.blotName=`italic`,c.tagName=[`EM`,`I`],t.default=c}),(function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0});var r=function(){function e(e,t){for(var n=0;n-1?n?this.domNode.setAttribute(e,n):this.domNode.removeAttribute(e):i(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),`format`,this).call(this,e,n)}}],[{key:`create`,value:function(e){var n=i(t.__proto__||Object.getPrototypeOf(t),`create`,this).call(this,e);return typeof e==`string`&&n.setAttribute(`src`,this.sanitize(e)),n}},{key:`formats`,value:function(e){return d.reduce(function(t,n){return e.hasAttribute(n)&&(t[n]=e.getAttribute(n)),t},{})}},{key:`match`,value:function(e){return/\.(jpe?g|gif|png)$/.test(e)||/^data:image\/.+;base64/.test(e)}},{key:`sanitize`,value:function(e){return(0,o.sanitize)(e,[`http`,`https`,`data`])?e:`//:0`}},{key:`value`,value:function(e){return e.getAttribute(`src`)}}]),t}(a.default.Embed);f.blotName=`image`,f.tagName=`IMG`,t.default=f}),(function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0});var r=function(){function e(e,t){for(var n=0;n-1?n?this.domNode.setAttribute(e,n):this.domNode.removeAttribute(e):i(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),`format`,this).call(this,e,n)}}],[{key:`create`,value:function(e){var n=i(t.__proto__||Object.getPrototypeOf(t),`create`,this).call(this,e);return n.setAttribute(`frameborder`,`0`),n.setAttribute(`allowfullscreen`,!0),n.setAttribute(`src`,this.sanitize(e)),n}},{key:`formats`,value:function(e){return d.reduce(function(t,n){return e.hasAttribute(n)&&(t[n]=e.getAttribute(n)),t},{})}},{key:`sanitize`,value:function(e){return o.default.sanitize(e)}},{key:`value`,value:function(e){return e.getAttribute(`src`)}}]),t}(a.BlockEmbed);f.blotName=`video`,f.className=`ql-video`,f.tagName=`IFRAME`,t.default=f}),(function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0}),t.default=t.FormulaBlot=void 0;var r=function(){function e(e,t){for(var n=0;n0||this.cachedText==null)&&(this.domNode.innerHTML=e(t),this.domNode.normalize(),this.attach()),this.cachedText=t)}}]),t}(c.default);p.className=`ql-syntax`;var m=new a.default.Attributor.Class(`token`,`hljs`,{scope:a.default.Scope.INLINE}),h=function(e){f(t,e),r(t,null,[{key:`register`,value:function(){o.default.register(m,!0),o.default.register(p,!0)}}]);function t(e,n){u(this,t);var r=d(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n));if(typeof r.options.highlight!=`function`)throw Error(`Syntax module requires highlight.js. Please include the library on the page before Quill.`);var i=null;return r.quill.on(o.default.events.SCROLL_OPTIMIZE,function(){clearTimeout(i),i=setTimeout(function(){r.highlight(),i=null},r.options.interval)}),r.highlight(),r}return r(t,[{key:`highlight`,value:function(){var e=this;if(!this.quill.selection.composing){this.quill.update(o.default.sources.USER);var t=this.quill.getSelection();this.quill.scroll.descendants(p).forEach(function(t){t.highlight(e.options.highlight)}),this.quill.update(o.default.sources.SILENT),t!=null&&this.quill.setSelection(t,o.default.sources.SILENT)}}}]),t}(s.default);h.DEFAULTS={highlight:function(){return window.hljs==null?null:function(e){return window.hljs.highlightAuto(e).value}}(),interval:1e3},t.CodeBlock=p,t.CodeToken=m,t.default=h}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0}),t.default=t.BubbleTooltip=void 0;var r=function e(t,n,r){t===null&&(t=Function.prototype);var i=Object.getOwnPropertyDescriptor(t,n);if(i===void 0){var a=Object.getPrototypeOf(t);return a===null?void 0:e(a,n,r)}else if(`value`in i)return i.value;else{var o=i.get;return o===void 0?void 0:o.call(r)}},i=function(){function e(e,t){for(var n=0;n0&&i===o.default.sources.USER){r.show(),r.root.style.left=`0px`,r.root.style.width=``,r.root.style.width=r.root.offsetWidth+`px`;var a=r.quill.getLines(t.index,t.length);if(a.length===1)r.position(r.quill.getBounds(t));else{var s=a[a.length-1],c=r.quill.getIndex(s),u=Math.min(s.length()-1,t.index+t.length-c),d=r.quill.getBounds(new l.Range(c,u));r.position(d)}}else document.activeElement!==r.textbox&&r.quill.hasFocus()&&r.hide()}),r}return i(t,[{key:`listen`,value:function(){var e=this;r(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),`listen`,this).call(this),this.root.querySelector(`.ql-close`).addEventListener(`click`,function(){e.root.classList.remove(`ql-editing`)}),this.quill.on(o.default.events.SCROLL_OPTIMIZE,function(){setTimeout(function(){if(!e.root.classList.contains(`ql-hidden`)){var t=e.quill.getSelection();t!=null&&e.position(e.quill.getBounds(t))}},1)})}},{key:`cancel`,value:function(){this.show()}},{key:`position`,value:function(e){var n=r(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),`position`,this).call(this,e),i=this.root.querySelector(`.ql-tooltip-arrow`);if(i.style.marginLeft=``,n===0)return n;i.style.marginLeft=-1*n-i.offsetWidth/2+`px`}}]),t}(s.BaseTooltip);_.TEMPLATE=[``,`
`,``,``,`
`].join(``),t.BubbleTooltip=_,t.default=g}),(function(e,t,n){e.exports=n(63)})]).default})})),u=t(((e,t)=>{var n=-1,r=1,i=0;function a(e,t,n,r){if(e===t)return e?[[i,e]]:[];if(n!=null){var a=y(e,t,n);if(a)return a}var s=l(e,t),c=e.substring(0,s);e=e.substring(s),t=t.substring(s),s=u(e,t);var d=e.substring(e.length-s);e=e.substring(0,e.length-s),t=t.substring(0,t.length-s);var p=o(e,t);return c&&p.unshift([i,c]),d&&p.push([i,d]),f(p,r),p}function o(e,t){var o;if(!e)return[[r,t]];if(!t)return[[n,e]];var c=e.length>t.length?e:t,l=e.length>t.length?t:e,u=c.indexOf(l);if(u!==-1)return o=[[r,c.substring(0,u)],[i,l],[r,c.substring(u+l.length)]],e.length>t.length&&(o[0][0]=o[2][0]=n),o;if(l.length===1)return[[n,e],[r,t]];var f=d(e,t);if(f){var p=f[0],m=f[1],h=f[2],g=f[3],_=f[4],v=a(p,h),y=a(m,g);return v.concat([[i,_]],y)}return s(e,t)}function s(e,t){for(var i=e.length,a=t.length,o=Math.ceil((i+a)/2),s=o,l=2*o,u=Array(l),d=Array(l),f=0;fi)g+=2;else if(C>a)h+=2;else if(m){var w=s+p-b;if(w>=0&&w=T)return c(e,t,S,C)}}}for(var E=-y+_;E<=y-v;E+=2){for(var w=s+E,T=E===-y||E!==y&&d[w-1]i)v+=2;else if(D>a)_+=2;else if(!m){var x=s+p-E;if(x>=0&&x=T)return c(e,t,S,C)}}}}return[[n,e],[r,t]]}function c(e,t,n,r){var i=e.substring(0,n),o=t.substring(0,r),s=e.substring(n),c=t.substring(r),l=a(i,o),u=a(s,c);return l.concat(u)}function l(e,t){if(!e||!t||e.charAt(0)!==t.charAt(0))return 0;for(var n=0,r=Math.min(e.length,t.length),i=r,a=0;nt.length?e:t,r=e.length>t.length?t:e;if(n.length<4||r.length*2=e.length?[o,s,c,d,a]:null}var a=i(n,r,Math.ceil(n.length/4)),o=i(n,r,Math.ceil(n.length/2)),s;if(!a&&!o)return null;s=o?a&&a[4].length>o[4].length?a:o:a;var c,d,f,p;e.length>t.length?(c=s[0],d=s[1],f=s[2],p=s[3]):(f=s[0],p=s[1],c=s[2],d=s[3]);var m=s[4];return[c,d,f,p,m]}function f(e,t){e.push([i,``]);for(var a=0,o=0,s=0,c=``,d=``,p;a=0&&g(e[m][1])){var _=e[m][1].slice(-1);if(e[m][1]=e[m][1].slice(0,-1),c=_+c,d=_+d,!e[m][1]){e.splice(m,1),a--;var v=m-1;e[v]&&e[v][0]===r&&(s++,d=e[v][1]+d,v--),e[v]&&e[v][0]===n&&(o++,c=e[v][1]+c,v--),m=v}}if(h(e[a][1])){var _=e[a][1].charAt(0);e[a][1]=e[a][1].slice(1),c+=_,d+=_}}if(a0||d.length>0){c.length>0&&d.length>0&&(p=l(d,c),p!==0&&(m>=0?e[m][1]+=d.substring(0,p):(e.splice(0,0,[i,d.substring(0,p)]),a++),d=d.substring(p),c=c.substring(p)),p=u(d,c),p!==0&&(e[a][1]=d.substring(d.length-p)+e[a][1],d=d.substring(0,d.length-p),c=c.substring(0,c.length-p)));var y=s+o;c.length===0&&d.length===0?(e.splice(a-y,y),a-=y):c.length===0?(e.splice(a-y,y,[r,d]),a=a-y+1):d.length===0?(e.splice(a-y,y,[n,c]),a=a-y+1):(e.splice(a-y,y,[n,c],[r,d]),a=a-y+2)}a!==0&&e[a-1][0]===i?(e[a-1][1]+=e[a][1],e.splice(a,1)):a++,s=0,o=0,c=``,d=``;break}}e[e.length-1][1]===``&&e.pop();var b=!1;for(a=1;a=55296&&e<=56319}function m(e){return e>=56320&&e<=57343}function h(e){return m(e.charCodeAt(0))}function g(e){return p(e.charCodeAt(e.length-1))}function _(e){for(var t=[],n=0;n0&&t.push(e[n]);return t}function v(e,t,a,o){return g(e)||h(o)?null:_([[i,e],[n,t],[r,a],[i,o]])}function y(e,t,n){var r=typeof n==`number`?{index:n,length:0}:n.oldRange,i=typeof n==`number`?null:n.newRange,a=e.length,o=t.length;if(r.length===0&&(i===null||i.length===0)){var s=r.index,c=e.slice(0,s),l=e.slice(s),u=i?i.index:null;editBefore:{var d=s+o-a;if(u!==null&&u!==d||d<0||d>o)break editBefore;var f=t.slice(0,d),p=t.slice(d);if(p!==l)break editBefore;var m=Math.min(s,d),h=c.slice(0,m),g=f.slice(0,m);if(h!==g)break editBefore;var _=c.slice(m),y=f.slice(m);return v(h,_,y,l)}editAfter:{if(u!==null&&u!==s)break editAfter;var b=s,f=t.slice(0,b),p=t.slice(b);if(f!==c)break editAfter;var x=Math.min(a-b,o-b),S=l.slice(l.length-x),C=p.slice(p.length-x);if(S!==C)break editAfter;var _=l.slice(0,l.length-x),y=p.slice(0,p.length-x);return v(c,_,y,S)}}if(r.length>0&&i&&i.length===0)replaceRange:{var h=e.slice(0,r.index),S=e.slice(r.index+r.length),m=h.length,x=S.length;if(o{var n=200,r=`__lodash_hash_undefined__`,i=9007199254740991,a=`[object Arguments]`,o=`[object Array]`,s=`[object Boolean]`,c=`[object Date]`,l=`[object Error]`,u=`[object Function]`,d=`[object GeneratorFunction]`,f=`[object Map]`,p=`[object Number]`,m=`[object Object]`,h=`[object Promise]`,g=`[object RegExp]`,_=`[object Set]`,v=`[object String]`,y=`[object Symbol]`,b=`[object WeakMap]`,x=`[object ArrayBuffer]`,S=`[object DataView]`,C=`[object Float32Array]`,w=`[object Float64Array]`,T=`[object Int8Array]`,E=`[object Int16Array]`,D=`[object Int32Array]`,O=`[object Uint8Array]`,k=`[object Uint8ClampedArray]`,A=`[object Uint16Array]`,j=`[object Uint32Array]`,M=/[\\^$.*+?()[\]{}|]/g,N=/\w*$/,ee=/^\[object .+?Constructor\]$/,P=/^(?:0|[1-9]\d*)$/,F={};F[a]=F[o]=F[x]=F[S]=F[s]=F[c]=F[C]=F[w]=F[T]=F[E]=F[D]=F[f]=F[p]=F[m]=F[g]=F[_]=F[v]=F[y]=F[O]=F[k]=F[A]=F[j]=!0,F[l]=F[u]=F[b]=!1;var te=typeof global==`object`&&global&&global.Object===Object&&global,ne=typeof self==`object`&&self&&self.Object===Object&&self,I=te||ne||Function(`return this`)(),re=typeof e==`object`&&e&&!e.nodeType&&e,L=re&&typeof t==`object`&&t&&!t.nodeType&&t,ie=L&&L.exports===re;function ae(e,t){return e.set(t[0],t[1]),e}function R(e,t){return e.add(t),e}function oe(e,t){for(var n=-1,r=e?e.length:0;++n-1}function Qe(e,t){var n=this.__data__,r=dt(n,e);return r<0?n.push([e,t]):n[r][1]=t,this}W.prototype.clear=Je,W.prototype.delete=Ye,W.prototype.get=Xe,W.prototype.has=Ze,W.prototype.set=Qe;function G(e){var t=-1,n=e?e.length:0;for(this.clear();++t-1&&e%1==0&&e-1&&e%1==0&&e<=i}function $(e){var t=typeof e;return!!e&&(t==`object`||t==`function`)}function Kt(e){return!!e&&typeof e==`object`}function qt(e){return Vt(e)?lt(e):_t(e)}function Jt(){return[]}function Yt(){return!1}t.exports=Lt})),f=t(((e,t)=>{var n=200,r=`__lodash_hash_undefined__`,i=1,a=2,o=9007199254740991,s=`[object Arguments]`,c=`[object Array]`,l=`[object AsyncFunction]`,u=`[object Boolean]`,d=`[object Date]`,f=`[object Error]`,p=`[object Function]`,m=`[object GeneratorFunction]`,h=`[object Map]`,g=`[object Number]`,_=`[object Null]`,v=`[object Object]`,y=`[object Promise]`,b=`[object Proxy]`,x=`[object RegExp]`,S=`[object Set]`,C=`[object String]`,w=`[object Symbol]`,T=`[object Undefined]`,E=`[object WeakMap]`,D=`[object ArrayBuffer]`,O=`[object DataView]`,k=`[object Float32Array]`,A=`[object Float64Array]`,j=`[object Int8Array]`,M=`[object Int16Array]`,N=`[object Int32Array]`,ee=`[object Uint8Array]`,P=`[object Uint8ClampedArray]`,F=`[object Uint16Array]`,te=`[object Uint32Array]`,ne=/[\\^$.*+?()[\]{}|]/g,I=/^\[object .+?Constructor\]$/,re=/^(?:0|[1-9]\d*)$/,L={};L[k]=L[A]=L[j]=L[M]=L[N]=L[ee]=L[P]=L[F]=L[te]=!0,L[s]=L[c]=L[D]=L[u]=L[O]=L[d]=L[f]=L[p]=L[h]=L[g]=L[v]=L[x]=L[S]=L[C]=L[E]=!1;var ie=typeof global==`object`&&global&&global.Object===Object&&global,ae=typeof self==`object`&&self&&self.Object===Object&&self,R=ie||ae||Function(`return this`)(),oe=typeof e==`object`&&e&&!e.nodeType&&e,se=oe&&typeof t==`object`&&t&&!t.nodeType&&t,ce=se&&se.exports===oe,le=ce&&ie.process,ue=function(){try{return le&&le.binding&&le.binding(`util`)}catch{}}(),de=ue&&ue.isTypedArray;function fe(e,t){for(var n=-1,r=e==null?0:e.length,i=0,a=[];++n-1}function rt(e,t){var n=this.__data__,r=vt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}G.prototype.clear=$e,G.prototype.delete=et,G.prototype.get=tt,G.prototype.has=nt,G.prototype.set=rt;function K(e){var t=-1,n=e==null?0:e.length;for(this.clear();++tl))return!1;var d=s.get(e);if(d&&s.get(t))return d==t;var f=-1,p=!0,m=n&a?new lt:void 0;for(s.set(e,t),s.set(t,e);++f-1&&e%1==0&&e-1&&e%1==0&&e<=o}function Gt(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}function $(e){return typeof e==`object`&&!!e}var Kt=de?ge(de):Tt;function qt(e){return Bt(e)?_t(e):Et(e)}function Jt(){return[]}function Yt(){return!1}t.exports=Ht})),p=t((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});var n=t(d()),r=t(f()),i;(function(e){function t(e,t,r){e===void 0&&(e={}),t===void 0&&(t={}),typeof e!=`object`&&(e={}),typeof t!=`object`&&(t={});var i=n.default(t);for(var a in r||(i=Object.keys(i).reduce(function(e,t){return i[t]!=null&&(e[t]=i[t]),e},{})),e)e[a]!==void 0&&t[a]===void 0&&(i[a]=e[a]);return Object.keys(i).length>0?i:void 0}e.compose=t;function i(e,t){e===void 0&&(e={}),t===void 0&&(t={}),typeof e!=`object`&&(e={}),typeof t!=`object`&&(t={});var n=Object.keys(e).concat(Object.keys(t)).reduce(function(n,i){return r.default(e[i],t[i])||(n[i]=t[i]===void 0?null:t[i]),n},{});return Object.keys(n).length>0?n:void 0}e.diff=i;function a(e,t){e===void 0&&(e={}),t===void 0&&(t={}),e||={};var n=Object.keys(t).reduce(function(n,r){return t[r]!==e[r]&&e[r]!==void 0&&(n[r]=t[r]),n},{});return Object.keys(e).reduce(function(n,r){return e[r]!==t[r]&&t[r]===void 0&&(n[r]=null),n},n)}e.invert=a;function o(e,t,n){if(n===void 0&&(n=!1),typeof e!=`object`)return t;if(typeof t==`object`){if(!n)return t;var r=Object.keys(t).reduce(function(n,r){return e[r]===void 0&&(n[r]=t[r]),n},{});return Object.keys(r).length>0?r:void 0}}e.transform=o})(i||={}),e.default=i})),m=t((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});var n=t(h());e.default=function(){function e(e){this.ops=e,this.index=0,this.offset=0}return e.prototype.hasNext=function(){return this.peekLength()<1/0},e.prototype.next=function(e){e||=1/0;var t=this.ops[this.index];if(t){var r=this.offset,i=n.default.length(t);if(e>=i-r?(e=i-r,this.index+=1,this.offset=0):this.offset+=e,typeof t.delete==`number`)return{delete:e};var a={};return t.attributes&&(a.attributes=t.attributes),typeof t.retain==`number`?a.retain=e:typeof t.insert==`string`?a.insert=t.insert.substr(r,e):a.insert=t.insert,a}else return{retain:1/0}},e.prototype.peek=function(){return this.ops[this.index]},e.prototype.peekLength=function(){return this.ops[this.index]?n.default.length(this.ops[this.index])-this.offset:1/0},e.prototype.peekType=function(){return this.ops[this.index]?typeof this.ops[this.index].delete==`number`?`delete`:typeof this.ops[this.index].retain==`number`?`retain`:`insert`:`retain`},e.prototype.rest=function(){if(!this.hasNext())return[];if(this.offset===0)return this.ops.slice(this.index);var e=this.offset,t=this.index,n=this.next(),r=this.ops.slice(this.index);return this.offset=e,this.index=t,[n].concat(r)},e}()})),h=t((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});var n=t(m()),r;(function(e){function t(e){return new n.default(e)}e.iterator=t;function r(e){return typeof e.delete==`number`?e.delete:typeof e.retain==`number`?e.retain:typeof e.insert==`string`?e.insert.length:1}e.length=r})(r||={}),e.default=r})),g=t(((e,t)=>{var n=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},r=n(u()),i=n(d()),a=n(f()),o=n(p()),s=n(h()),c=`\0`;t.exports=function(){function e(e){Array.isArray(e)?this.ops=e:e!=null&&Array.isArray(e.ops)?this.ops=e.ops:this.ops=[]}return e.prototype.insert=function(e,t){var n={};return typeof e==`string`&&e.length===0?this:(n.insert=e,typeof t==`object`&&t&&Object.keys(t).length>0&&(n.attributes=t),this.push(n))},e.prototype.delete=function(e){return e<=0?this:this.push({delete:e})},e.prototype.retain=function(e,t){if(e<=0)return this;var n={retain:e};return typeof t==`object`&&t&&Object.keys(t).length>0&&(n.attributes=t),this.push(n)},e.prototype.push=function(e){var t=this.ops.length,n=this.ops[t-1];if(e=i.default(e),typeof n==`object`){if(typeof e.delete==`number`&&typeof n.delete==`number`)return this.ops[t-1]={delete:n.delete+e.delete},this;if(typeof n.delete==`number`&&e.insert!=null&&(--t,n=this.ops[t-1],typeof n!=`object`))return this.ops.unshift(e),this;if(a.default(e.attributes,n.attributes)){if(typeof e.insert==`string`&&typeof n.insert==`string`)return this.ops[t-1]={insert:n.insert+e.insert},typeof e.attributes==`object`&&(this.ops[t-1].attributes=e.attributes),this;if(typeof e.retain==`number`&&typeof n.retain==`number`)return this.ops[t-1]={retain:n.retain+e.retain},typeof e.attributes==`object`&&(this.ops[t-1].attributes=e.attributes),this}}return t===this.ops.length?this.ops.push(e):this.ops.splice(t,0,e),this},e.prototype.chop=function(){var e=this.ops[this.ops.length-1];return e&&e.retain&&!e.attributes&&this.ops.pop(),this},e.prototype.filter=function(e){return this.ops.filter(e)},e.prototype.forEach=function(e){this.ops.forEach(e)},e.prototype.map=function(e){return this.ops.map(e)},e.prototype.partition=function(e){var t=[],n=[];return this.forEach(function(r){(e(r)?t:n).push(r)}),[t,n]},e.prototype.reduce=function(e,t){return this.ops.reduce(e,t)},e.prototype.changeLength=function(){return this.reduce(function(e,t){return t.insert?e+s.default.length(t):t.delete?e-t.delete:e},0)},e.prototype.length=function(){return this.reduce(function(e,t){return e+s.default.length(t)},0)},e.prototype.slice=function(t,n){t===void 0&&(t=0),n===void 0&&(n=1/0);for(var r=[],i=s.default.iterator(this.ops),a=0;a0&&r.next(c.retain-l)}for(var u=new e(i);n.hasNext()||r.hasNext();)if(r.peekType()===`insert`)u.push(r.next());else if(n.peekType()===`delete`)u.push(n.next());else{var d=Math.min(n.peekLength(),r.peekLength()),f=n.next(d),p=r.next(d);if(typeof p.retain==`number`){var m={};typeof f.retain==`number`?m.retain=d:m.insert=f.insert;var h=o.default.compose(f.attributes,p.attributes,typeof f.retain==`number`);if(h&&(m.attributes=h),u.push(m),!r.hasNext()&&a.default(u.ops[u.ops.length-1],m)){var g=new e(n.rest());return u.concat(g).chop()}}else typeof p.delete==`number`&&typeof f.retain==`number`&&u.push(p)}return u.chop()},e.prototype.concat=function(t){var n=new e(this.ops.slice());return t.ops.length>0&&(n.push(t.ops[0]),n.ops=n.ops.concat(t.ops.slice(1))),n},e.prototype.diff=function(t,n){if(this.ops===t.ops)return new e;var i=[this,t].map(function(e){return e.map(function(n){if(n.insert!=null)return typeof n.insert==`string`?n.insert:c;throw Error(`diff() called `+(e===t?`on`:`with`)+` non-document`)}).join(``)}),l=new e,u=r.default(i[0],i[1],n),d=s.default.iterator(this.ops),f=s.default.iterator(t.ops);return u.forEach(function(e){for(var t=e[1].length;t>0;){var n=0;switch(e[0]){case r.default.INSERT:n=Math.min(f.peekLength(),t),l.push(f.next(n));break;case r.default.DELETE:n=Math.min(t,d.peekLength()),d.next(n),l.delete(n);break;case r.default.EQUAL:n=Math.min(d.peekLength(),f.peekLength(),t);var i=d.next(n),s=f.next(n);a.default(i.insert,s.insert)?l.retain(n,o.default.diff(i.attributes,s.attributes)):l.push(s).delete(n);break}t-=n}}),l.chop()},e.prototype.eachLine=function(t,n){n===void 0&&(n=` -`);for(var r=s.default.iterator(this.ops),i=new e,a=0;r.hasNext();){if(r.peekType()!==`insert`)return;var o=r.peek(),c=s.default.length(o)-r.peekLength(),l=typeof o.insert==`string`?o.insert.indexOf(n,c)-c:-1;if(l<0)i.push(r.next());else if(l>0)i.push(r.next(l));else{if(t(i,r.next(1).attributes||{},a)===!1)return;a+=1,i=new e}}i.length()>0&&t(i,{},a)},e.prototype.invert=function(t){var n=new e;return this.reduce(function(e,r){if(r.insert)n.delete(s.default.length(r));else if(r.retain&&r.attributes==null)return n.retain(r.retain),e+r.retain;else if(r.delete||r.retain&&r.attributes){var i=r.delete||r.retain;return t.slice(e,e+i).forEach(function(e){r.delete?n.push(e):r.retain&&r.attributes&&n.retain(s.default.length(e),o.default.invert(r.attributes,e.attributes))}),e+i}return e},0),n.chop()},e.prototype.transform=function(t,n){if(n===void 0&&(n=!1),n=!!n,typeof t==`number`)return this.transformPosition(t,n);for(var r=t,i=s.default.iterator(this.ops),a=s.default.iterator(r.ops),c=new e;i.hasNext()||a.hasNext();)if(i.peekType()===`insert`&&(n||a.peekType()!==`insert`))c.retain(s.default.length(i.next()));else if(a.peekType()===`insert`)c.push(a.next());else{var l=Math.min(i.peekLength(),a.peekLength()),u=i.next(l),d=a.next(l);if(u.delete)continue;d.delete?c.push(d):c.retain(l,o.default.transform(u.attributes,d.attributes,n))}return c.chop()},e.prototype.transformPosition=function(e,t){t===void 0&&(t=!1),t=!!t;for(var n=s.default.iterator(this.ops),r=0;n.hasNext()&&r<=e;){var i=n.peekLength(),a=n.peekType();if(n.next(),a===`delete`){e-=Math.min(i,e-r);continue}else a===`insert`&&(r[`delta`,`html`,`text`].includes(e)},enable:{type:Boolean,default:!0},readOnly:{type:Boolean,default:!1},placeholder:{type:String,required:!1},theme:{type:String,default:`snow`,validator:e=>[`snow`,`bubble`,``].includes(e)},toolbar:{type:[String,Array,Object],required:!1,validator:e=>typeof e==`string`&&e!==``?e.charAt(0)===`#`?!0:Object.keys(y).indexOf(e)!==-1:!0},modules:{type:Object,required:!1},options:{type:Object,required:!1},globalOptions:{type:Object,required:!1}},emits:[`textChange`,`selectionChange`,`editorChange`,`update:content`,`focus`,`blur`,`ready`],setup:(e,t)=>{i(()=>{u()}),c(()=>{n=null});let n,r,l=o(),u=()=>{var i;if(l.value){if(r=d(),e.modules)if(Array.isArray(e.modules))for(let t of e.modules)_.default.register(`modules/${t.name}`,t.module);else _.default.register(`modules/${e.modules.name}`,e.modules.module);n=new _.default(l.value,r),D(e.content),n.on(`text-change`,g),n.on(`selection-change`,x),n.on(`editor-change`,S),e.theme!==`bubble`&&l.value.classList.remove(`ql-bubble`),e.theme!==`snow`&&l.value.classList.remove(`ql-snow`),(i=n.getModule(`toolbar`))==null||i.container.addEventListener(`mousedown`,e=>{e.preventDefault()}),t.emit(`ready`,n)}},d=()=>{let t={};if(e.theme!==``&&(t.theme=e.theme),e.readOnly&&(t.readOnly=e.readOnly),e.placeholder&&(t.placeholder=e.placeholder),e.toolbar&&e.toolbar!==``&&(t.modules={toolbar:(()=>{if(typeof e.toolbar==`object`)return e.toolbar;if(typeof e.toolbar==`string`)return e.toolbar.charAt(0)===`#`?e.toolbar:y[e.toolbar]})()}),e.modules){let n=(()=>{let t={};if(Array.isArray(e.modules))for(let n of e.modules)t[n.name]=n.options??{};else t[e.modules.name]=e.modules.options??{};return t})();t.modules=Object.assign({},t.modules,n)}return Object.assign({},e.globalOptions,e.options,t)},f=e=>typeof e==`object`&&e?e.slice():e,p=e=>Object.values(e.ops).some(e=>!e.retain||Object.keys(e).length!==1),m,h=e=>{if(typeof m==typeof e){if(e===m)return!0;if(typeof e==`object`&&e&&typeof m==`object`&&m)return!p(m.diff(e))}return!1},g=(n,r,i)=>{m=f(E()),h(e.content)||t.emit(`update:content`,m),t.emit(`textChange`,{delta:n,oldContents:r,source:i})},b=o(),x=(e,r,i)=>{b.value=!!n?.hasFocus(),t.emit(`selectionChange`,{range:e,oldRange:r,source:i})};s(b,e=>{e?t.emit(`focus`,l):t.emit(`blur`,l)});let S=(...e)=>{e[0]===`text-change`&&t.emit(`editorChange`,{name:e[0],delta:e[1],oldContents:e[2],source:e[3]}),e[0]===`selection-change`&&t.emit(`editorChange`,{name:e[0],range:e[1],oldRange:e[2],source:e[3]})},C=()=>l.value,w=()=>n?.getModule(`toolbar`)?.container,T=()=>{if(n)return n;throw`The quill editor hasn't been instantiated yet, +`)}return t}function ae(e,t){var n={},r=e.style||{};return r.fontStyle&&j(e).fontStyle===`italic`&&(n.italic=!0),r.fontWeight&&(j(e).fontWeight.startsWith(`bold`)||parseInt(j(e).fontWeight)>=700)&&(n.bold=!0),Object.keys(n).length>0&&(t=A(t,n)),parseFloat(r.textIndent||0)>0&&(t=new s.default().insert(` `).concat(t)),t}function R(e,t){var n=e.data;if(e.parentNode.tagName===`O:P`)return t.insert(n.trim());if(n.trim().length===0&&e.parentNode.classList.contains(`ql-clipboard`))return t;if(!j(e.parentNode).whiteSpace.startsWith(`pre`)){var r=function(e,t){return t=t.replace(/[^\u00a0]/g,``),t.length<1&&e?` `:t};n=n.replace(/\r\n/g,` `).replace(/\n/g,` `),n=n.replace(/\s\s+/g,r.bind(r,!0)),(e.previousSibling==null&&N(e.parentNode)||e.previousSibling!=null&&N(e.previousSibling))&&(n=n.replace(/^\s+/,r.bind(r,!1))),(e.nextSibling==null&&N(e.parentNode)||e.nextSibling!=null&&N(e.nextSibling))&&(n=n.replace(/\s+$/,r.bind(r,!1)))}return t.insert(n)}t.default=k,t.matchAttributor=F,t.matchBlot=te,t.matchNewline=L,t.matchSpacing=ie,t.matchText=R}),(function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0});var r=function(){function e(e,t){for(var n=0;n `}),(function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0});var r=function(){function e(e,t){for(var n=0;nr.right&&(a=r.right-i.right,this.root.style.left=t+a+`px`),i.leftr.bottom){var o=i.bottom-i.top,s=e.bottom-e.top+o;this.root.style.top=n-s+`px`,this.root.classList.add(`ql-flip`)}return a}},{key:`show`,value:function(){this.root.classList.remove(`ql-editing`),this.root.classList.remove(`ql-hidden`)}}]),e}()}),(function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0});var r=function(){function e(e,t){var n=[],r=!0,i=!1,a=void 0;try{for(var o=e[Symbol.iterator](),s;!(r=(s=o.next()).done)&&(n.push(s.value),!(t&&n.length===t));r=!0);}catch(e){i=!0,a=e}finally{try{!r&&o.return&&o.return()}finally{if(i)throw a}}return n}return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,n);throw TypeError(`Invalid attempt to destructure non-iterable instance`)}}(),i=function e(t,n,r){t===null&&(t=Function.prototype);var i=Object.getOwnPropertyDescriptor(t,n);if(i===void 0){var a=Object.getPrototypeOf(t);return a===null?void 0:e(a,n,r)}else if(`value`in i)return i.value;else{var o=i.get;return o===void 0?void 0:o.call(r)}},a=function(){function e(e,t){for(var n=0;n`,``,``,``].join(``),t.default=v}),(function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0});var r=P(n(29)),i=n(36),a=n(38),o=n(64),s=P(n(65)),c=P(n(66)),l=n(67),u=P(l),d=n(37),f=n(26),p=n(39),m=n(40),h=P(n(56)),g=P(n(68)),_=P(n(27)),v=P(n(69)),y=P(n(70)),b=P(n(71)),x=P(n(72)),S=P(n(73)),C=n(13),w=P(C),T=P(n(74)),E=P(n(75)),D=P(n(57)),O=P(n(41)),k=P(n(28)),A=P(n(59)),j=P(n(60)),M=P(n(61)),N=P(n(108)),ee=P(n(62));function P(e){return e&&e.__esModule?e:{default:e}}r.default.register({"attributors/attribute/direction":a.DirectionAttribute,"attributors/class/align":i.AlignClass,"attributors/class/background":d.BackgroundClass,"attributors/class/color":f.ColorClass,"attributors/class/direction":a.DirectionClass,"attributors/class/font":p.FontClass,"attributors/class/size":m.SizeClass,"attributors/style/align":i.AlignStyle,"attributors/style/background":d.BackgroundStyle,"attributors/style/color":f.ColorStyle,"attributors/style/direction":a.DirectionStyle,"attributors/style/font":p.FontStyle,"attributors/style/size":m.SizeStyle},!0),r.default.register({"formats/align":i.AlignClass,"formats/direction":a.DirectionClass,"formats/indent":o.IndentClass,"formats/background":d.BackgroundStyle,"formats/color":f.ColorStyle,"formats/font":p.FontClass,"formats/size":m.SizeClass,"formats/blockquote":s.default,"formats/code-block":w.default,"formats/header":c.default,"formats/list":u.default,"formats/bold":h.default,"formats/code":C.Code,"formats/italic":g.default,"formats/link":_.default,"formats/script":v.default,"formats/strike":y.default,"formats/underline":b.default,"formats/image":x.default,"formats/video":S.default,"formats/list/item":l.ListItem,"modules/formula":T.default,"modules/syntax":E.default,"modules/toolbar":D.default,"themes/bubble":N.default,"themes/snow":ee.default,"ui/icons":O.default,"ui/picker":k.default,"ui/icon-picker":j.default,"ui/color-picker":A.default,"ui/tooltip":M.default},!0),t.default=r.default}),(function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0}),t.IndentClass=void 0;var r=function(){function e(e,t){for(var n=0;n0&&this.children.tail.format(e,t)}},{key:`formats`,value:function(){return l({},this.statics.blotName,this.statics.formats(this.domNode))}},{key:`insertBefore`,value:function(e,n){if(e instanceof p)i(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),`insertBefore`,this).call(this,e,n);else{var r=n==null?this.length():n.offset(this),a=this.split(r);a.parent.insertBefore(e,a)}}},{key:`optimize`,value:function(e){i(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),`optimize`,this).call(this,e);var n=this.next;n!=null&&n.prev===this&&n.statics.blotName===this.statics.blotName&&n.domNode.tagName===this.domNode.tagName&&n.domNode.getAttribute(`data-checked`)===this.domNode.getAttribute(`data-checked`)&&(n.moveChildren(this),n.remove())}},{key:`replace`,value:function(e){if(e.statics.blotName!==this.statics.blotName){var n=a.default.create(this.statics.defaultChild);e.moveChildren(n),this.appendChild(n)}i(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),`replace`,this).call(this,e)}}]),t}(s.default);m.blotName=`list`,m.scope=a.default.Scope.BLOCK_BLOT,m.tagName=[`OL`,`UL`],m.defaultChild=`list-item`,m.allowedChildren=[p],t.ListItem=p,t.default=m}),(function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0});var r=i(n(56));function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function o(e,t){if(!e)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return t&&(typeof t==`object`||typeof t==`function`)?t:e}function s(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Super expression must either be null or a function, not `+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var c=function(e){s(t,e);function t(){return a(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return t}(r.default);c.blotName=`italic`,c.tagName=[`EM`,`I`],t.default=c}),(function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0});var r=function(){function e(e,t){for(var n=0;n-1?n?this.domNode.setAttribute(e,n):this.domNode.removeAttribute(e):i(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),`format`,this).call(this,e,n)}}],[{key:`create`,value:function(e){var n=i(t.__proto__||Object.getPrototypeOf(t),`create`,this).call(this,e);return typeof e==`string`&&n.setAttribute(`src`,this.sanitize(e)),n}},{key:`formats`,value:function(e){return d.reduce(function(t,n){return e.hasAttribute(n)&&(t[n]=e.getAttribute(n)),t},{})}},{key:`match`,value:function(e){return/\.(jpe?g|gif|png)$/.test(e)||/^data:image\/.+;base64/.test(e)}},{key:`sanitize`,value:function(e){return(0,o.sanitize)(e,[`http`,`https`,`data`])?e:`//:0`}},{key:`value`,value:function(e){return e.getAttribute(`src`)}}]),t}(a.default.Embed);f.blotName=`image`,f.tagName=`IMG`,t.default=f}),(function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0});var r=function(){function e(e,t){for(var n=0;n-1?n?this.domNode.setAttribute(e,n):this.domNode.removeAttribute(e):i(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),`format`,this).call(this,e,n)}}],[{key:`create`,value:function(e){var n=i(t.__proto__||Object.getPrototypeOf(t),`create`,this).call(this,e);return n.setAttribute(`frameborder`,`0`),n.setAttribute(`allowfullscreen`,!0),n.setAttribute(`src`,this.sanitize(e)),n}},{key:`formats`,value:function(e){return d.reduce(function(t,n){return e.hasAttribute(n)&&(t[n]=e.getAttribute(n)),t},{})}},{key:`sanitize`,value:function(e){return o.default.sanitize(e)}},{key:`value`,value:function(e){return e.getAttribute(`src`)}}]),t}(a.BlockEmbed);f.blotName=`video`,f.className=`ql-video`,f.tagName=`IFRAME`,t.default=f}),(function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0}),t.default=t.FormulaBlot=void 0;var r=function(){function e(e,t){for(var n=0;n0||this.cachedText==null)&&(this.domNode.innerHTML=e(t),this.domNode.normalize(),this.attach()),this.cachedText=t)}}]),t}(c.default);p.className=`ql-syntax`;var m=new a.default.Attributor.Class(`token`,`hljs`,{scope:a.default.Scope.INLINE}),h=function(e){f(t,e),r(t,null,[{key:`register`,value:function(){o.default.register(m,!0),o.default.register(p,!0)}}]);function t(e,n){u(this,t);var r=d(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n));if(typeof r.options.highlight!=`function`)throw Error(`Syntax module requires highlight.js. Please include the library on the page before Quill.`);var i=null;return r.quill.on(o.default.events.SCROLL_OPTIMIZE,function(){clearTimeout(i),i=setTimeout(function(){r.highlight(),i=null},r.options.interval)}),r.highlight(),r}return r(t,[{key:`highlight`,value:function(){var e=this;if(!this.quill.selection.composing){this.quill.update(o.default.sources.USER);var t=this.quill.getSelection();this.quill.scroll.descendants(p).forEach(function(t){t.highlight(e.options.highlight)}),this.quill.update(o.default.sources.SILENT),t!=null&&this.quill.setSelection(t,o.default.sources.SILENT)}}}]),t}(s.default);h.DEFAULTS={highlight:function(){return window.hljs==null?null:function(e){return window.hljs.highlightAuto(e).value}}(),interval:1e3},t.CodeBlock=p,t.CodeToken=m,t.default=h}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t){e.exports=` `}),(function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0}),t.default=t.BubbleTooltip=void 0;var r=function e(t,n,r){t===null&&(t=Function.prototype);var i=Object.getOwnPropertyDescriptor(t,n);if(i===void 0){var a=Object.getPrototypeOf(t);return a===null?void 0:e(a,n,r)}else if(`value`in i)return i.value;else{var o=i.get;return o===void 0?void 0:o.call(r)}},i=function(){function e(e,t){for(var n=0;n0&&i===o.default.sources.USER){r.show(),r.root.style.left=`0px`,r.root.style.width=``,r.root.style.width=r.root.offsetWidth+`px`;var a=r.quill.getLines(t.index,t.length);if(a.length===1)r.position(r.quill.getBounds(t));else{var s=a[a.length-1],c=r.quill.getIndex(s),u=Math.min(s.length()-1,t.index+t.length-c),d=r.quill.getBounds(new l.Range(c,u));r.position(d)}}else document.activeElement!==r.textbox&&r.quill.hasFocus()&&r.hide()}),r}return i(t,[{key:`listen`,value:function(){var e=this;r(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),`listen`,this).call(this),this.root.querySelector(`.ql-close`).addEventListener(`click`,function(){e.root.classList.remove(`ql-editing`)}),this.quill.on(o.default.events.SCROLL_OPTIMIZE,function(){setTimeout(function(){if(!e.root.classList.contains(`ql-hidden`)){var t=e.quill.getSelection();t!=null&&e.position(e.quill.getBounds(t))}},1)})}},{key:`cancel`,value:function(){this.show()}},{key:`position`,value:function(e){var n=r(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),`position`,this).call(this,e),i=this.root.querySelector(`.ql-tooltip-arrow`);if(i.style.marginLeft=``,n===0)return n;i.style.marginLeft=-1*n-i.offsetWidth/2+`px`}}]),t}(s.BaseTooltip);_.TEMPLATE=[``,`
`,``,``,`
`].join(``),t.BubbleTooltip=_,t.default=g}),(function(e,t,n){e.exports=n(63)})]).default})})),b=t(((e,t)=>{var n=-1,r=1,i=0;function a(e,t,n,r){if(e===t)return e?[[i,e]]:[];if(n!=null){var a=y(e,t,n);if(a)return a}var s=l(e,t),c=e.substring(0,s);e=e.substring(s),t=t.substring(s),s=u(e,t);var d=e.substring(e.length-s);e=e.substring(0,e.length-s),t=t.substring(0,t.length-s);var p=o(e,t);return c&&p.unshift([i,c]),d&&p.push([i,d]),f(p,r),p}function o(e,t){var o;if(!e)return[[r,t]];if(!t)return[[n,e]];var c=e.length>t.length?e:t,l=e.length>t.length?t:e,u=c.indexOf(l);if(u!==-1)return o=[[r,c.substring(0,u)],[i,l],[r,c.substring(u+l.length)]],e.length>t.length&&(o[0][0]=o[2][0]=n),o;if(l.length===1)return[[n,e],[r,t]];var f=d(e,t);if(f){var p=f[0],m=f[1],h=f[2],g=f[3],_=f[4],v=a(p,h),y=a(m,g);return v.concat([[i,_]],y)}return s(e,t)}function s(e,t){for(var i=e.length,a=t.length,o=Math.ceil((i+a)/2),s=o,l=2*o,u=Array(l),d=Array(l),f=0;fi)g+=2;else if(C>a)h+=2;else if(m){var w=s+p-b;if(w>=0&&w=T)return c(e,t,S,C)}}}for(var E=-y+_;E<=y-v;E+=2){for(var w=s+E,T=E===-y||E!==y&&d[w-1]i)v+=2;else if(D>a)_+=2;else if(!m){var x=s+p-E;if(x>=0&&x=T)return c(e,t,S,C)}}}}return[[n,e],[r,t]]}function c(e,t,n,r){var i=e.substring(0,n),o=t.substring(0,r),s=e.substring(n),c=t.substring(r),l=a(i,o),u=a(s,c);return l.concat(u)}function l(e,t){if(!e||!t||e.charAt(0)!==t.charAt(0))return 0;for(var n=0,r=Math.min(e.length,t.length),i=r,a=0;nt.length?e:t,r=e.length>t.length?t:e;if(n.length<4||r.length*2=e.length?[o,s,c,d,a]:null}var a=i(n,r,Math.ceil(n.length/4)),o=i(n,r,Math.ceil(n.length/2)),s;if(!a&&!o)return null;s=o?a&&a[4].length>o[4].length?a:o:a;var c,d,f,p;e.length>t.length?(c=s[0],d=s[1],f=s[2],p=s[3]):(f=s[0],p=s[1],c=s[2],d=s[3]);var m=s[4];return[c,d,f,p,m]}function f(e,t){e.push([i,``]);for(var a=0,o=0,s=0,c=``,d=``,p;a=0&&g(e[m][1])){var _=e[m][1].slice(-1);if(e[m][1]=e[m][1].slice(0,-1),c=_+c,d=_+d,!e[m][1]){e.splice(m,1),a--;var v=m-1;e[v]&&e[v][0]===r&&(s++,d=e[v][1]+d,v--),e[v]&&e[v][0]===n&&(o++,c=e[v][1]+c,v--),m=v}}if(h(e[a][1])){var _=e[a][1].charAt(0);e[a][1]=e[a][1].slice(1),c+=_,d+=_}}if(a0||d.length>0){c.length>0&&d.length>0&&(p=l(d,c),p!==0&&(m>=0?e[m][1]+=d.substring(0,p):(e.splice(0,0,[i,d.substring(0,p)]),a++),d=d.substring(p),c=c.substring(p)),p=u(d,c),p!==0&&(e[a][1]=d.substring(d.length-p)+e[a][1],d=d.substring(0,d.length-p),c=c.substring(0,c.length-p)));var y=s+o;c.length===0&&d.length===0?(e.splice(a-y,y),a-=y):c.length===0?(e.splice(a-y,y,[r,d]),a=a-y+1):d.length===0?(e.splice(a-y,y,[n,c]),a=a-y+1):(e.splice(a-y,y,[n,c],[r,d]),a=a-y+2)}a!==0&&e[a-1][0]===i?(e[a-1][1]+=e[a][1],e.splice(a,1)):a++,s=0,o=0,c=``,d=``;break}}e[e.length-1][1]===``&&e.pop();var b=!1;for(a=1;a=55296&&e<=56319}function m(e){return e>=56320&&e<=57343}function h(e){return m(e.charCodeAt(0))}function g(e){return p(e.charCodeAt(e.length-1))}function _(e){for(var t=[],n=0;n0&&t.push(e[n]);return t}function v(e,t,a,o){return g(e)||h(o)?null:_([[i,e],[n,t],[r,a],[i,o]])}function y(e,t,n){var r=typeof n==`number`?{index:n,length:0}:n.oldRange,i=typeof n==`number`?null:n.newRange,a=e.length,o=t.length;if(r.length===0&&(i===null||i.length===0)){var s=r.index,c=e.slice(0,s),l=e.slice(s),u=i?i.index:null;editBefore:{var d=s+o-a;if(u!==null&&u!==d||d<0||d>o)break editBefore;var f=t.slice(0,d),p=t.slice(d);if(p!==l)break editBefore;var m=Math.min(s,d),h=c.slice(0,m),g=f.slice(0,m);if(h!==g)break editBefore;var _=c.slice(m),y=f.slice(m);return v(h,_,y,l)}editAfter:{if(u!==null&&u!==s)break editAfter;var b=s,f=t.slice(0,b),p=t.slice(b);if(f!==c)break editAfter;var x=Math.min(a-b,o-b),S=l.slice(l.length-x),C=p.slice(p.length-x);if(S!==C)break editAfter;var _=l.slice(0,l.length-x),y=p.slice(0,p.length-x);return v(c,_,y,S)}}if(r.length>0&&i&&i.length===0)replaceRange:{var h=e.slice(0,r.index),S=e.slice(r.index+r.length),m=h.length,x=S.length;if(o{var n=200,r=`__lodash_hash_undefined__`,i=9007199254740991,a=`[object Arguments]`,o=`[object Array]`,s=`[object Boolean]`,c=`[object Date]`,l=`[object Error]`,u=`[object Function]`,d=`[object GeneratorFunction]`,f=`[object Map]`,p=`[object Number]`,m=`[object Object]`,h=`[object Promise]`,g=`[object RegExp]`,_=`[object Set]`,v=`[object String]`,y=`[object Symbol]`,b=`[object WeakMap]`,x=`[object ArrayBuffer]`,S=`[object DataView]`,C=`[object Float32Array]`,w=`[object Float64Array]`,T=`[object Int8Array]`,E=`[object Int16Array]`,D=`[object Int32Array]`,O=`[object Uint8Array]`,k=`[object Uint8ClampedArray]`,A=`[object Uint16Array]`,j=`[object Uint32Array]`,M=/[\\^$.*+?()[\]{}|]/g,N=/\w*$/,ee=/^\[object .+?Constructor\]$/,P=/^(?:0|[1-9]\d*)$/,F={};F[a]=F[o]=F[x]=F[S]=F[s]=F[c]=F[C]=F[w]=F[T]=F[E]=F[D]=F[f]=F[p]=F[m]=F[g]=F[_]=F[v]=F[y]=F[O]=F[k]=F[A]=F[j]=!0,F[l]=F[u]=F[b]=!1;var te=typeof global==`object`&&global&&global.Object===Object&&global,ne=typeof self==`object`&&self&&self.Object===Object&&self,I=te||ne||Function(`return this`)(),re=typeof e==`object`&&e&&!e.nodeType&&e,L=re&&typeof t==`object`&&t&&!t.nodeType&&t,ie=L&&L.exports===re;function ae(e,t){return e.set(t[0],t[1]),e}function R(e,t){return e.add(t),e}function oe(e,t){for(var n=-1,r=e?e.length:0;++n-1}function Qe(e,t){var n=this.__data__,r=dt(n,e);return r<0?n.push([e,t]):n[r][1]=t,this}W.prototype.clear=Je,W.prototype.delete=Ye,W.prototype.get=Xe,W.prototype.has=Ze,W.prototype.set=Qe;function G(e){var t=-1,n=e?e.length:0;for(this.clear();++t-1&&e%1==0&&e-1&&e%1==0&&e<=i}function $(e){var t=typeof e;return!!e&&(t==`object`||t==`function`)}function Kt(e){return!!e&&typeof e==`object`}function qt(e){return Vt(e)?lt(e):_t(e)}function Jt(){return[]}function Yt(){return!1}t.exports=Lt})),S=t(((e,t)=>{var n=200,r=`__lodash_hash_undefined__`,i=1,a=2,o=9007199254740991,s=`[object Arguments]`,c=`[object Array]`,l=`[object AsyncFunction]`,u=`[object Boolean]`,d=`[object Date]`,f=`[object Error]`,p=`[object Function]`,m=`[object GeneratorFunction]`,h=`[object Map]`,g=`[object Number]`,_=`[object Null]`,v=`[object Object]`,y=`[object Promise]`,b=`[object Proxy]`,x=`[object RegExp]`,S=`[object Set]`,C=`[object String]`,w=`[object Symbol]`,T=`[object Undefined]`,E=`[object WeakMap]`,D=`[object ArrayBuffer]`,O=`[object DataView]`,k=`[object Float32Array]`,A=`[object Float64Array]`,j=`[object Int8Array]`,M=`[object Int16Array]`,N=`[object Int32Array]`,ee=`[object Uint8Array]`,P=`[object Uint8ClampedArray]`,F=`[object Uint16Array]`,te=`[object Uint32Array]`,ne=/[\\^$.*+?()[\]{}|]/g,I=/^\[object .+?Constructor\]$/,re=/^(?:0|[1-9]\d*)$/,L={};L[k]=L[A]=L[j]=L[M]=L[N]=L[ee]=L[P]=L[F]=L[te]=!0,L[s]=L[c]=L[D]=L[u]=L[O]=L[d]=L[f]=L[p]=L[h]=L[g]=L[v]=L[x]=L[S]=L[C]=L[E]=!1;var ie=typeof global==`object`&&global&&global.Object===Object&&global,ae=typeof self==`object`&&self&&self.Object===Object&&self,R=ie||ae||Function(`return this`)(),oe=typeof e==`object`&&e&&!e.nodeType&&e,se=oe&&typeof t==`object`&&t&&!t.nodeType&&t,ce=se&&se.exports===oe,le=ce&&ie.process,ue=function(){try{return le&&le.binding&&le.binding(`util`)}catch{}}(),de=ue&&ue.isTypedArray;function fe(e,t){for(var n=-1,r=e==null?0:e.length,i=0,a=[];++n-1}function rt(e,t){var n=this.__data__,r=vt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}G.prototype.clear=$e,G.prototype.delete=et,G.prototype.get=tt,G.prototype.has=nt,G.prototype.set=rt;function K(e){var t=-1,n=e==null?0:e.length;for(this.clear();++tl))return!1;var d=s.get(e);if(d&&s.get(t))return d==t;var f=-1,p=!0,m=n&a?new lt:void 0;for(s.set(e,t),s.set(t,e);++f-1&&e%1==0&&e-1&&e%1==0&&e<=o}function Gt(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}function $(e){return typeof e==`object`&&!!e}var Kt=de?ge(de):Tt;function qt(e){return Bt(e)?_t(e):Et(e)}function Jt(){return[]}function Yt(){return!1}t.exports=Ht})),C=t((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});var n=t(x()),r=t(S()),i;(function(e){function t(e,t,r){e===void 0&&(e={}),t===void 0&&(t={}),typeof e!=`object`&&(e={}),typeof t!=`object`&&(t={});var i=n.default(t);for(var a in r||(i=Object.keys(i).reduce(function(e,t){return i[t]!=null&&(e[t]=i[t]),e},{})),e)e[a]!==void 0&&t[a]===void 0&&(i[a]=e[a]);return Object.keys(i).length>0?i:void 0}e.compose=t;function i(e,t){e===void 0&&(e={}),t===void 0&&(t={}),typeof e!=`object`&&(e={}),typeof t!=`object`&&(t={});var n=Object.keys(e).concat(Object.keys(t)).reduce(function(n,i){return r.default(e[i],t[i])||(n[i]=t[i]===void 0?null:t[i]),n},{});return Object.keys(n).length>0?n:void 0}e.diff=i;function a(e,t){e===void 0&&(e={}),t===void 0&&(t={}),e||={};var n=Object.keys(t).reduce(function(n,r){return t[r]!==e[r]&&e[r]!==void 0&&(n[r]=t[r]),n},{});return Object.keys(e).reduce(function(n,r){return e[r]!==t[r]&&t[r]===void 0&&(n[r]=null),n},n)}e.invert=a;function o(e,t,n){if(n===void 0&&(n=!1),typeof e!=`object`)return t;if(typeof t==`object`){if(!n)return t;var r=Object.keys(t).reduce(function(n,r){return e[r]===void 0&&(n[r]=t[r]),n},{});return Object.keys(r).length>0?r:void 0}}e.transform=o})(i||={}),e.default=i})),w=t((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});var n=t(T());e.default=function(){function e(e){this.ops=e,this.index=0,this.offset=0}return e.prototype.hasNext=function(){return this.peekLength()<1/0},e.prototype.next=function(e){e||=1/0;var t=this.ops[this.index];if(t){var r=this.offset,i=n.default.length(t);if(e>=i-r?(e=i-r,this.index+=1,this.offset=0):this.offset+=e,typeof t.delete==`number`)return{delete:e};var a={};return t.attributes&&(a.attributes=t.attributes),typeof t.retain==`number`?a.retain=e:typeof t.insert==`string`?a.insert=t.insert.substr(r,e):a.insert=t.insert,a}else return{retain:1/0}},e.prototype.peek=function(){return this.ops[this.index]},e.prototype.peekLength=function(){return this.ops[this.index]?n.default.length(this.ops[this.index])-this.offset:1/0},e.prototype.peekType=function(){return this.ops[this.index]?typeof this.ops[this.index].delete==`number`?`delete`:typeof this.ops[this.index].retain==`number`?`retain`:`insert`:`retain`},e.prototype.rest=function(){if(!this.hasNext())return[];if(this.offset===0)return this.ops.slice(this.index);var e=this.offset,t=this.index,n=this.next(),r=this.ops.slice(this.index);return this.offset=e,this.index=t,[n].concat(r)},e}()})),T=t((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});var n=t(w()),r;(function(e){function t(e){return new n.default(e)}e.iterator=t;function r(e){return typeof e.delete==`number`?e.delete:typeof e.retain==`number`?e.retain:typeof e.insert==`string`?e.insert.length:1}e.length=r})(r||={}),e.default=r})),E=t(((e,t)=>{var n=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},r=n(b()),i=n(x()),a=n(S()),o=n(C()),s=n(T()),c=`\0`;t.exports=function(){function e(e){Array.isArray(e)?this.ops=e:e!=null&&Array.isArray(e.ops)?this.ops=e.ops:this.ops=[]}return e.prototype.insert=function(e,t){var n={};return typeof e==`string`&&e.length===0?this:(n.insert=e,typeof t==`object`&&t&&Object.keys(t).length>0&&(n.attributes=t),this.push(n))},e.prototype.delete=function(e){return e<=0?this:this.push({delete:e})},e.prototype.retain=function(e,t){if(e<=0)return this;var n={retain:e};return typeof t==`object`&&t&&Object.keys(t).length>0&&(n.attributes=t),this.push(n)},e.prototype.push=function(e){var t=this.ops.length,n=this.ops[t-1];if(e=i.default(e),typeof n==`object`){if(typeof e.delete==`number`&&typeof n.delete==`number`)return this.ops[t-1]={delete:n.delete+e.delete},this;if(typeof n.delete==`number`&&e.insert!=null&&(--t,n=this.ops[t-1],typeof n!=`object`))return this.ops.unshift(e),this;if(a.default(e.attributes,n.attributes)){if(typeof e.insert==`string`&&typeof n.insert==`string`)return this.ops[t-1]={insert:n.insert+e.insert},typeof e.attributes==`object`&&(this.ops[t-1].attributes=e.attributes),this;if(typeof e.retain==`number`&&typeof n.retain==`number`)return this.ops[t-1]={retain:n.retain+e.retain},typeof e.attributes==`object`&&(this.ops[t-1].attributes=e.attributes),this}}return t===this.ops.length?this.ops.push(e):this.ops.splice(t,0,e),this},e.prototype.chop=function(){var e=this.ops[this.ops.length-1];return e&&e.retain&&!e.attributes&&this.ops.pop(),this},e.prototype.filter=function(e){return this.ops.filter(e)},e.prototype.forEach=function(e){this.ops.forEach(e)},e.prototype.map=function(e){return this.ops.map(e)},e.prototype.partition=function(e){var t=[],n=[];return this.forEach(function(r){(e(r)?t:n).push(r)}),[t,n]},e.prototype.reduce=function(e,t){return this.ops.reduce(e,t)},e.prototype.changeLength=function(){return this.reduce(function(e,t){return t.insert?e+s.default.length(t):t.delete?e-t.delete:e},0)},e.prototype.length=function(){return this.reduce(function(e,t){return e+s.default.length(t)},0)},e.prototype.slice=function(t,n){t===void 0&&(t=0),n===void 0&&(n=1/0);for(var r=[],i=s.default.iterator(this.ops),a=0;a0&&r.next(c.retain-l)}for(var u=new e(i);n.hasNext()||r.hasNext();)if(r.peekType()===`insert`)u.push(r.next());else if(n.peekType()===`delete`)u.push(n.next());else{var d=Math.min(n.peekLength(),r.peekLength()),f=n.next(d),p=r.next(d);if(typeof p.retain==`number`){var m={};typeof f.retain==`number`?m.retain=d:m.insert=f.insert;var h=o.default.compose(f.attributes,p.attributes,typeof f.retain==`number`);if(h&&(m.attributes=h),u.push(m),!r.hasNext()&&a.default(u.ops[u.ops.length-1],m)){var g=new e(n.rest());return u.concat(g).chop()}}else typeof p.delete==`number`&&typeof f.retain==`number`&&u.push(p)}return u.chop()},e.prototype.concat=function(t){var n=new e(this.ops.slice());return t.ops.length>0&&(n.push(t.ops[0]),n.ops=n.ops.concat(t.ops.slice(1))),n},e.prototype.diff=function(t,n){if(this.ops===t.ops)return new e;var i=[this,t].map(function(e){return e.map(function(n){if(n.insert!=null)return typeof n.insert==`string`?n.insert:c;throw Error(`diff() called `+(e===t?`on`:`with`)+` non-document`)}).join(``)}),l=new e,u=r.default(i[0],i[1],n),d=s.default.iterator(this.ops),f=s.default.iterator(t.ops);return u.forEach(function(e){for(var t=e[1].length;t>0;){var n=0;switch(e[0]){case r.default.INSERT:n=Math.min(f.peekLength(),t),l.push(f.next(n));break;case r.default.DELETE:n=Math.min(t,d.peekLength()),d.next(n),l.delete(n);break;case r.default.EQUAL:n=Math.min(d.peekLength(),f.peekLength(),t);var i=d.next(n),s=f.next(n);a.default(i.insert,s.insert)?l.retain(n,o.default.diff(i.attributes,s.attributes)):l.push(s).delete(n);break}t-=n}}),l.chop()},e.prototype.eachLine=function(t,n){n===void 0&&(n=` +`);for(var r=s.default.iterator(this.ops),i=new e,a=0;r.hasNext();){if(r.peekType()!==`insert`)return;var o=r.peek(),c=s.default.length(o)-r.peekLength(),l=typeof o.insert==`string`?o.insert.indexOf(n,c)-c:-1;if(l<0)i.push(r.next());else if(l>0)i.push(r.next(l));else{if(t(i,r.next(1).attributes||{},a)===!1)return;a+=1,i=new e}}i.length()>0&&t(i,{},a)},e.prototype.invert=function(t){var n=new e;return this.reduce(function(e,r){if(r.insert)n.delete(s.default.length(r));else if(r.retain&&r.attributes==null)return n.retain(r.retain),e+r.retain;else if(r.delete||r.retain&&r.attributes){var i=r.delete||r.retain;return t.slice(e,e+i).forEach(function(e){r.delete?n.push(e):r.retain&&r.attributes&&n.retain(s.default.length(e),o.default.invert(r.attributes,e.attributes))}),e+i}return e},0),n.chop()},e.prototype.transform=function(t,n){if(n===void 0&&(n=!1),n=!!n,typeof t==`number`)return this.transformPosition(t,n);for(var r=t,i=s.default.iterator(this.ops),a=s.default.iterator(r.ops),c=new e;i.hasNext()||a.hasNext();)if(i.peekType()===`insert`&&(n||a.peekType()!==`insert`))c.retain(s.default.length(i.next()));else if(a.peekType()===`insert`)c.push(a.next());else{var l=Math.min(i.peekLength(),a.peekLength()),u=i.next(l),d=a.next(l);if(u.delete)continue;d.delete?c.push(d):c.retain(l,o.default.transform(u.attributes,d.attributes,n))}return c.chop()},e.prototype.transformPosition=function(e,t){t===void 0&&(t=!1),t=!!t;for(var n=s.default.iterator(this.ops),r=0;n.hasNext()&&r<=e;){var i=n.peekLength(),a=n.peekType();if(n.next(),a===`delete`){e-=Math.min(i,e-r);continue}else a===`insert`&&(r[`delta`,`html`,`text`].includes(e)},enable:{type:Boolean,default:!0},readOnly:{type:Boolean,default:!1},placeholder:{type:String,required:!1},theme:{type:String,default:`snow`,validator:e=>[`snow`,`bubble`,``].includes(e)},toolbar:{type:[String,Array,Object],required:!1,validator:e=>typeof e==`string`&&e!==``?e.charAt(0)===`#`?!0:Object.keys(k).indexOf(e)!==-1:!0},modules:{type:Object,required:!1},options:{type:Object,required:!1},globalOptions:{type:Object,required:!1}},emits:[`textChange`,`selectionChange`,`editorChange`,`update:content`,`focus`,`blur`,`ready`],setup:(e,t)=>{c(()=>{a()}),h(()=>{n=null});let n,r,i=p(),a=()=>{var a;if(i.value){if(r=o(),e.modules)if(Array.isArray(e.modules))for(let t of e.modules)D.default.register(`modules/${t.name}`,t.module);else D.default.register(`modules/${e.modules.name}`,e.modules.module);n=new D.default(i.value,r),w(e.content),n.on(`text-change`,g),n.on(`selection-change`,v),n.on(`editor-change`,y),e.theme!==`bubble`&&i.value.classList.remove(`ql-bubble`),e.theme!==`snow`&&i.value.classList.remove(`ql-snow`),(a=n.getModule(`toolbar`))==null||a.container.addEventListener(`mousedown`,e=>{e.preventDefault()}),t.emit(`ready`,n)}},o=()=>{let t={};if(e.theme!==``&&(t.theme=e.theme),e.readOnly&&(t.readOnly=e.readOnly),e.placeholder&&(t.placeholder=e.placeholder),e.toolbar&&e.toolbar!==``&&(t.modules={toolbar:(()=>{if(typeof e.toolbar==`object`)return e.toolbar;if(typeof e.toolbar==`string`)return e.toolbar.charAt(0)===`#`?e.toolbar:k[e.toolbar]})()}),e.modules){let n=(()=>{let t={};if(Array.isArray(e.modules))for(let n of e.modules)t[n.name]=n.options??{};else t[e.modules.name]=e.modules.options??{};return t})();t.modules=Object.assign({},t.modules,n)}return Object.assign({},e.globalOptions,e.options,t)},s=e=>typeof e==`object`&&e?e.slice():e,u=e=>Object.values(e.ops).some(e=>!e.retain||Object.keys(e).length!==1),d,f=e=>{if(typeof d==typeof e){if(e===d)return!0;if(typeof e==`object`&&e&&typeof d==`object`&&d)return!u(d.diff(e))}return!1},g=(n,r,i)=>{d=s(C()),f(e.content)||t.emit(`update:content`,d),t.emit(`textChange`,{delta:n,oldContents:r,source:i})},_=p(),v=(e,r,i)=>{_.value=!!n?.hasFocus(),t.emit(`selectionChange`,{range:e,oldRange:r,source:i})};m(_,e=>{e?t.emit(`focus`,i):t.emit(`blur`,i)});let y=(...e)=>{e[0]===`text-change`&&t.emit(`editorChange`,{name:e[0],delta:e[1],oldContents:e[2],source:e[3]}),e[0]===`selection-change`&&t.emit(`editorChange`,{name:e[0],range:e[1],oldRange:e[2],source:e[3]})},b=()=>i.value,x=()=>n?.getModule(`toolbar`)?.container,S=()=>{if(n)return n;throw`The quill editor hasn't been instantiated yet, make sure to call this method when the editor ready - or use v-on:ready="onReady(quill)" event instead.`},E=(t,r)=>e.contentType===`html`?A():e.contentType===`text`?O(t,r):n?.getContents(t,r),D=(t,r=`api`)=>{let i=t||(e.contentType===`delta`?new v.default:``);e.contentType===`html`?j(i):e.contentType===`text`?k(i,r):n?.setContents(i,r),m=f(i)},O=(e,t)=>n?.getText(e,t)??``,k=(e,t=`api`)=>{n?.setText(e,t)},A=()=>n?.root.innerHTML??``,j=e=>{n&&(n.root.innerHTML=e)};return s(()=>e.content,e=>{if(!n||!e||h(e))return;let t=n.getSelection();t&&a(()=>n?.setSelection(t)),D(e)},{deep:!0}),s(()=>e.enable,e=>{n&&n.enable(e)}),{editor:l,getEditor:C,getToolbar:w,getQuill:T,getContents:E,setContents:D,getHTML:A,setHTML:j,pasteHTML:(e,t=`api`)=>{let r=n?.clipboard.convert(e);r&&n?.setContents(r,t)},focus:()=>{n?.focus()},getText:O,setText:k,reinit:()=>{a(()=>{var e;!t.slots.toolbar&&n&&((e=n.getModule(`toolbar`))==null||e.container.remove()),u()})}}},render(){var e;return[(e=this.$slots).toolbar?.call(e),n(`div`,{ref:`editor`,...this.$attrs})]}});export{b as t}; \ No newline at end of file + or use v-on:ready="onReady(quill)" event instead.`},C=(t,r)=>e.contentType===`html`?A():e.contentType===`text`?T(t,r):n?.getContents(t,r),w=(t,r=`api`)=>{let i=t||(e.contentType===`delta`?new O.default:``);e.contentType===`html`?j(i):e.contentType===`text`?E(i,r):n?.setContents(i,r),d=s(i)},T=(e,t)=>n?.getText(e,t)??``,E=(e,t=`api`)=>{n?.setText(e,t)},A=()=>n?.root.innerHTML??``,j=e=>{n&&(n.root.innerHTML=e)};return m(()=>e.content,e=>{if(!n||!e||f(e))return;let t=n.getSelection();t&&l(()=>n?.setSelection(t)),w(e)},{deep:!0}),m(()=>e.enable,e=>{n&&n.enable(e)}),{editor:i,getEditor:b,getToolbar:x,getQuill:S,getContents:C,setContents:w,getHTML:A,setHTML:j,pasteHTML:(e,t=`api`)=>{let r=n?.clipboard.convert(e);r&&n?.setContents(r,t)},focus:()=>{n?.focus()},getText:T,setText:E,reinit:()=>{l(()=>{var e;!t.slots.toolbar&&n&&((e=n.getModule(`toolbar`))==null||e.container.remove()),a()})}}},render(){var e;return[(e=this.$slots).toolbar?.call(e),n(`div`,{ref:`editor`,...this.$attrs})]}});async function j(e,t){let n=new FormData;n.append(`file`,e),n.append(`subdir`,t);let{data:r}=await _.post(`/admin/v1/uploads/course-asset`,n);return r.data}async function M(e){let t=new FormData;t.append(`file`,e);let{data:n}=await _.post(`/admin/v1/uploads/news-cover`,t);return n.data}async function N(e){let t=new FormData;t.append(`file`,e);let{data:n}=await _.post(`/admin/v1/uploads/banner-cover`,t);return n.data}async function ee(e,t=`common`){let n=new FormData;n.append(`file`,e),n.append(`scope`,t);let{data:r}=await _.post(`/admin/v1/uploads/editor-image`,n);return r.data}var P=v(a({__name:`RichTextEditor`,props:u({height:{default:260},scope:{default:`common`}},{modelValue:{default:``},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=e,n=f(e,`modelValue`),a=[[`bold`,`italic`,`underline`],[{header:[2,3,!1]}],[{list:`ordered`},{list:`bullet`}],[`link`,`image`],[`clean`]];function c(e){let n=document.createElement(`input`);n.type=`file`,n.accept=`image/*`,n.onchange=async()=>{let r=n.files?.[0];if(r)try{let n=await ee(r,t.scope);if(!n.url){g.error(`图片上传失败`);return}let i=e.getSelection(!0)?.index??Math.max(0,e.getLength()-1);e.insertEmbed(i,`image`,n.url),e.setSelection(i+1)}catch(e){let t=e?.response?.data?.message||`图片上传失败`;g.error(typeof t==`string`?t:`图片上传失败`)}},n.click()}function l(e){e.getModule(`toolbar`).addHandler(`image`,()=>c(e))}return(t,c)=>(s(),r(`div`,{class:`rich-text-editor`,style:d({height:`${e.height}px`})},[o(i(A),{content:n.value,"onUpdate:content":c[0]||=e=>n.value=e,"content-type":`html`,theme:`snow`,toolbar:a,onReady:l},null,8,[`content`])],4))}}),[[`__scopeId`,`data-v-f46336b8`]]);export{M as i,N as n,j as r,P as t}; \ No newline at end of file diff --git a/public/admin/assets/TeacherDetailDialog-vyw-G-Ds.js b/public/admin/assets/TeacherDetailDialog-BrcCyUnJ.js similarity index 97% rename from public/admin/assets/TeacherDetailDialog-vyw-G-Ds.js rename to public/admin/assets/TeacherDetailDialog-BrcCyUnJ.js index c4d486d..6b6da0c 100644 --- a/public/admin/assets/TeacherDetailDialog-vyw-G-Ds.js +++ b/public/admin/assets/TeacherDetailDialog-BrcCyUnJ.js @@ -1 +1 @@ -import{r as e}from"./rolldown-runtime-BYbx6iT9.js";import{C as t,Ct as n,D as r,E as i,G as a,P as o,S as s,T as c,X as ee,Y as l,at as u,b as d,d as te,et as f,ht as p,m,ot as ne,q as h,rt as g,tn as _,x as v,y}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{c as b,l as x,s as S,t as C}from"./index-j1gM0XLI.js";import{l as w}from"./assets-BATlskhA.js";import{a as T,c as E,h as D,i as O,m as k,o as A,p as j,s as M,u as N}from"./teachers-D3SgHBN2.js";import{a as P}from"./dict-8GwTIJdx.js";import{i as F,o as I,s as L}from"./demands-RFwmlyix.js";import{a as R,n as z,o as re}from"./teacherStar-DhP_EdY6.js";var B={class:`library-toolbar`},V={key:1,class:`text-mute`},H={key:0,class:`library-pager`},ie=S(r({__name:`TeacherPaperDialog`,props:o({teacherId:{},defaultAuthors:{},defaultSchoolName:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:o([`saved`],[`update:modelValue`]),setup(e,{emit:n}){let r=f(e,`modelValue`),o=e,m=n,h=p(`manual`),y=p(!1),b=p({title:``,authors:``,school_name:``,published_at:``,url:``,summary:``}),S=p(``),C=p(!1),T=p([]),E=p(1),D=p({current_page:1,per_page:10,total:0}),A=p([]),j=p();function M(){b.value={title:``,authors:o.defaultAuthors||``,school_name:o.defaultSchoolName||``,published_at:``,url:``,summary:``}}async function P(){o.teacherId&&(A.value=(await N(o.teacherId)).map(e=>e.id))}async function F(e=E.value){C.value=!0;try{let t=await w({page:e,page_size:D.value.per_page,keyword:S.value.trim()||void 0});T.value=t.items,D.value=t.meta,E.value=t.meta.current_page,j.value&&!t.items.some(e=>e.id===j.value)&&(j.value=void 0)}finally{C.value=!1}}function I(){E.value=1,F(1)}function L(e){A.value.includes(e.id)||(j.value=e.id)}async function R(){if(o.teacherId){if(!b.value.title.trim()||!b.value.authors.trim()){x.warning(`请填写标题与作者`);return}if(!b.value.published_at){x.warning(`请选择发表时间`);return}y.value=!0;try{await O(o.teacherId,{...b.value}),x.success(`已添加论文`),r.value=!1,m(`saved`)}finally{y.value=!1}}}async function z(){if(o.teacherId){if(!j.value){x.warning(`请选择要关联的论文`);return}if(A.value.includes(j.value)){x.warning(`该论文已关联此老师`);return}y.value=!0;try{await k(o.teacherId,j.value),x.success(`已关联论文`),r.value=!1,m(`saved`)}finally{y.value=!1}}}async function re(){h.value===`manual`?await R():await z()}return g(()=>[r.value,o.teacherId],([e])=>{e&&o.teacherId&&(h.value=`manual`,j.value=void 0,S.value=``,E.value=1,M(),P(),F(1))}),g(h,e=>{e===`library`&&r.value&&o.teacherId&&F(E.value)}),(e,n)=>{let o=l(`el-input`),f=l(`el-form-item`),p=l(`el-col`),m=l(`el-date-picker`),g=l(`el-row`),x=l(`el-form`),w=l(`el-tab-pane`),O=l(`el-button`),k=l(`el-table-column`),j=l(`el-tag`),M=l(`el-table`),N=l(`el-pagination`),P=l(`el-tabs`),R=l(`el-dialog`),z=ee(`loading`);return a(),v(R,{modelValue:r.value,"onUpdate:modelValue":n[10]||=e=>r.value=e,title:`论文`,width:`720px`,"destroy-on-close":``,"append-to-body":``},{footer:u(()=>[i(O,{onClick:n[9]||=e=>r.value=!1},{default:u(()=>[...n[13]||=[c(`取消`,-1)]]),_:1}),i(O,{type:`primary`,loading:y.value,onClick:re},{default:u(()=>[c(_(h.value===`manual`?`保存`:`确认关联`),1)]),_:1},8,[`loading`])]),default:u(()=>[i(P,{modelValue:h.value,"onUpdate:modelValue":n[8]||=e=>h.value=e},{default:u(()=>[i(w,{label:`手动录入`,name:`manual`},{default:u(()=>[i(x,{"label-position":`top`,class:`form-small`},{default:u(()=>[i(f,{label:`标题`,required:``},{default:u(()=>[i(o,{modelValue:b.value.title,"onUpdate:modelValue":n[0]||=e=>b.value.title=e,placeholder:`请输入论文标题`},null,8,[`modelValue`])]),_:1}),i(g,{gutter:12},{default:u(()=>[i(p,{span:12},{default:u(()=>[i(f,{label:`作者`,required:``},{default:u(()=>[i(o,{modelValue:b.value.authors,"onUpdate:modelValue":n[1]||=e=>b.value.authors=e},null,8,[`modelValue`])]),_:1})]),_:1}),i(p,{span:12},{default:u(()=>[i(f,{label:`学校`},{default:u(()=>[i(o,{modelValue:b.value.school_name,"onUpdate:modelValue":n[2]||=e=>b.value.school_name=e},null,8,[`modelValue`])]),_:1})]),_:1}),i(p,{span:12},{default:u(()=>[i(f,{label:`发表时间`,required:``},{default:u(()=>[i(m,{modelValue:b.value.published_at,"onUpdate:modelValue":n[3]||=e=>b.value.published_at=e,type:`date`,"value-format":`YYYY-MM-DD`,style:{width:`100%`}},null,8,[`modelValue`])]),_:1})]),_:1}),i(p,{span:12},{default:u(()=>[i(f,{label:`链接`},{default:u(()=>[i(o,{modelValue:b.value.url,"onUpdate:modelValue":n[4]||=e=>b.value.url=e,placeholder:`https://example.com/paper`},null,8,[`modelValue`])]),_:1})]),_:1}),i(p,{span:24},{default:u(()=>[i(f,{label:`摘要`},{default:u(()=>[i(o,{modelValue:b.value.summary,"onUpdate:modelValue":n[5]||=e=>b.value.summary=e,type:`textarea`,rows:4,placeholder:`请输入论文摘要`},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),i(w,{label:`从论文库选择`,name:`library`},{default:u(()=>[d(`div`,B,[i(o,{modelValue:S.value,"onUpdate:modelValue":n[6]||=e=>S.value=e,clearable:``,placeholder:`搜索标题、作者、学校…`,style:{width:`260px`},onKeyup:te(I,[`enter`])},null,8,[`modelValue`]),i(O,{type:`primary`,onClick:I},{default:u(()=>[...n[11]||=[c(`搜索`,-1)]]),_:1})]),ne((a(),v(M,{data:T.value,size:`small`,"highlight-current-row":``,class:`library-table`,"row-class-name":({row:e})=>A.value.includes(e.id)?`is-linked-row`:``,onRowClick:L,onCurrentChange:n[7]||=e=>{e&&L(e)}},{default:u(()=>[i(k,{prop:`title`,label:`标题`,"min-width":`200`,"show-overflow-tooltip":``}),i(k,{prop:`authors`,label:`作者`,width:`120`,"show-overflow-tooltip":``}),i(k,{prop:`school_name`,label:`学校`,width:`120`,"show-overflow-tooltip":``}),i(k,{label:`状态`,width:`80`,align:`center`},{default:u(({row:e})=>[A.value.includes(e.id)?(a(),v(j,{key:0,size:`small`,type:`info`},{default:u(()=>[...n[12]||=[c(`已关联`,-1)]]),_:1})):(a(),t(`span`,V,`—`))]),_:1})]),_:1},8,[`data`,`row-class-name`])),[[z,C.value]]),D.value.total>0?(a(),t(`div`,H,[i(N,{layout:`total, prev, pager, next`,total:D.value.total,"page-size":D.value.per_page,"current-page":E.value,onCurrentChange:F},null,8,[`total`,`page-size`,`current-page`])])):s(``,!0)]),_:1})]),_:1},8,[`modelValue`])]),_:1},8,[`modelValue`])}}}),[[`__scopeId`,`data-v-d91269f1`]]),ae={class:`detail-body`},oe={key:0,class:`basic-info-block`},se={key:1,class:`basic-info-block`},ce={key:0,class:`crawl-uni-hint`},le={class:`uni-row`},ue={class:`star-preview`},de={key:0,class:`star-follow-rule`},fe={class:`section`},pe={class:`section-head`},me={class:`muted`},he={class:`section`},ge={class:`section-head`},_e={class:`muted`},ve={class:`summary-body`},ye={class:`follow-summary`},be={class:`log-head`},U=r({__name:`TeacherDetailDialog`,props:{modelValue:{type:Boolean},teacherId:{},readonly:{type:Boolean}},emits:[`update:modelValue`,`saved`],setup(e,{emit:r}){let o=C(),te=y(()=>o.isGridMember),f=e,S=y(()=>f.readonly===!0),w=y(()=>{let e=H.value?.name;return S.value?e?`查看 · ${e}`:`老师详情`:e?`编辑 · ${e}`:`编辑老师`});function O(e){return e.university_name?e.university_name:e.university_text?`${e.university_text}(未关联高校库)`:`—`}function k(e){return e.research_direction?e.research_direction:e.research_directions?.map(e=>e.name).join(`、`)||`—`}let B=r,V=p(!1),H=p(null),U=p(null),W=y(()=>R(q.value.find(e=>e.id===Y.value.star_level_dict_item_id)?.value)),G=p([]),K=p([]),q=p([]),xe=p([]),J=p([]),Se=p([]),Y=p({name:``,university_id:void 0,city:``,title:``,research_direction_ids:[],phone:``,email:``,star_level_dict_item_id:void 0,status_dict_item_id:void 0,next_follow_date:``}),X=p(!1),Z=p(!1),Q=p({name:``,city:``,province:``,longitude:``,latitude:``}),$=p(!1),Ce=p(!1),we=p(``),Te=p(!1),Ee=p(``),De=p([]);async function Oe(){let e=await j({page:1,page_size:200}),t=o.user?.grid_scope?.university_ids;J.value=t?.length?e.items.filter(e=>t.includes(e.id)):e.items}async function ke(){let e=await E(),t=o.user?.grid_scope?.research_direction_ids;Se.value=t?.length?e.research_directions.filter(e=>t.includes(e.id)):e.research_directions}function Ae(){Q.value={name:``,city:Y.value.city||``,province:``,longitude:``,latitude:``},X.value=!0}async function je(){let e=Q.value;if(!e.name.trim()){x.warning(`请填写高校名称`);return}if(!e.longitude.trim()||!e.latitude.trim()){x.warning(`请填写经度与纬度`);return}let t=Number(e.longitude),n=Number(e.latitude);if(Number.isNaN(t)||Number.isNaN(n)){x.warning(`经纬度须为有效数字`);return}Z.value=!0;try{let r=await T({name:e.name.trim(),city:e.city.trim()||null,province:e.province.trim()||null,longitude:t,latitude:n});J.value.some(e=>e.id===r.id)||J.value.push(r),Y.value.university_id=r.id,r.city&&(Y.value.city=r.city),X.value=!1,x.success(`高校已创建`)}finally{Z.value=!1}}async function Me(){if(f.teacherId){V.value=!0;try{let e=await M(f.teacherId);H.value=e,U.value=e.star_level_dict_item_id??null,Y.value={name:e.name||``,university_id:e.university_id??void 0,research_direction_ids:e.research_direction_ids?.length?[...e.research_direction_ids]:e.research_directions?.map(e=>e.id)||[],city:e.city||``,title:e.title||``,phone:e.phone||``,email:e.email||``,star_level_dict_item_id:e.star_level_dict_item_id??void 0,status_dict_item_id:e.status_dict_item_id??void 0,next_follow_date:e.next_follow_date||``};let[t,n]=await Promise.all([N(f.teacherId),L({teacher_id:f.teacherId,page:1,page_size:50})]);G.value=t,K.value=n.items}finally{V.value=!1}}}function Ne(){let e=Y.value;return e.name.trim()?e.university_id?e.city.trim()?e.title.trim()?e.research_direction_ids.length?e.status_dict_item_id?!0:(x.warning(`请选择状态`),!1):(x.warning(`请至少选择一个研究方向`),!1):(x.warning(`请填写职称`),!1):(x.warning(`请填写城市`),!1):(x.warning(`请选择高校,或点击「新建高校」`),!1):(x.warning(`请填写姓名`),!1)}async function Pe(){if(!f.teacherId||!H.value||!Ne())return;let e=(Y.value.star_level_dict_item_id??null)!==U.value;await D(f.teacherId,{name:Y.value.name.trim(),university_id:Y.value.university_id,city:Y.value.city.trim(),title:Y.value.title.trim(),research_direction_ids:Y.value.research_direction_ids,phone:Y.value.phone||null,email:Y.value.email||null,star_level_dict_item_id:Y.value.star_level_dict_item_id??null,status_dict_item_id:Y.value.status_dict_item_id,...e?{recalc_next_follow_date:!0}:{next_follow_date:Y.value.next_follow_date||null,recalc_next_follow_date:!1}}),x.success(`已保存`),B(`saved`),B(`update:modelValue`,!1)}function Fe(){let e=q.value.find(e=>e.id===Y.value.star_level_dict_item_id);Y.value.next_follow_date=re(e?.value)||``}function Ie(e){if(!e)return;let t=J.value.find(t=>t.id===e);t?.city&&!Y.value.city&&(Y.value.city=t.city)}function Le(){$.value=!0}async function Re(){f.teacherId&&(G.value=await N(f.teacherId))}async function ze(e){await b.confirm(`确定删除论文「${e.title}」?`,`确认删除`,{type:`warning`}),await A(f.teacherId,e.id),G.value=await N(f.teacherId)}function Be(e){we.value=e.summary||`暂无摘要`,Ce.value=!0}async function Ve(e){Ee.value=e.title,De.value=await I(e.id),Te.value=!0}return g(()=>[f.modelValue,f.teacherId],async([e,t])=>{if(e&&t){if(!q.value.length){let[e,t]=await Promise.all([P(`teacher_level`),P(`teacher_status`)]);q.value=e.items,xe.value=t.items,await Oe()}await ke(),await Me()}}),g(()=>Y.value.university_id,e=>Ie(e)),(r,o)=>{let f=l(`el-descriptions-item`),p=l(`el-descriptions`),g=l(`el-input`),y=l(`el-form-item`),b=l(`el-col`),x=l(`el-option`),C=l(`el-select`),T=l(`el-button`),E=l(`el-date-picker`),D=l(`el-row`),A=l(`el-form`),j=l(`el-table-column`),M=l(`el-link`),N=l(`el-table`),P=l(`el-tag`),I=l(`el-empty`),L=l(`el-dialog`),R=ee(`loading`);return a(),v(L,{"model-value":e.modelValue,title:w.value,width:`960px`,top:`4vh`,"destroy-on-close":``,"onUpdate:modelValue":o[21]||=e=>B(`update:modelValue`,e)},{footer:u(()=>[i(T,{onClick:o[10]||=e=>B(`update:modelValue`,!1)},{default:u(()=>[...o[31]||=[c(`关闭`,-1)]]),_:1}),S.value?s(``,!0):(a(),v(T,{key:0,type:`primary`,class:`teachers-primary-btn`,onClick:Pe},{default:u(()=>[...o[32]||=[c(` 保存 `,-1)]]),_:1}))]),default:u(()=>[ne((a(),t(`div`,ae,[S.value&&H.value?(a(),t(`div`,oe,[o[22]||=d(`h3`,{class:`basic-info-title`},`基本信息`,-1),i(p,{column:3,border:``,size:`small`,class:`view-desc`},{default:u(()=>[i(f,{label:`姓名`},{default:u(()=>[c(_(H.value.name),1)]),_:1}),i(f,{label:`高校`},{default:u(()=>[c(_(O(H.value)),1)]),_:1}),i(f,{label:`城市`},{default:u(()=>[c(_(H.value.city||`—`),1)]),_:1}),i(f,{label:`职称`},{default:u(()=>[c(_(H.value.title||`—`),1)]),_:1}),i(f,{label:`研究方向`,span:2},{default:u(()=>[c(_(k(H.value)),1)]),_:1}),i(f,{label:`电话`},{default:u(()=>[c(_(H.value.phone||`—`),1)]),_:1}),i(f,{label:`邮箱`},{default:u(()=>[c(_(H.value.email||`—`),1)]),_:1}),i(f,{label:`星级`},{default:u(()=>[c(_(n(z)(H.value.star_level_item?.value,H.value.star_level_item?.label)),1)]),_:1}),i(f,{label:`状态`},{default:u(()=>[c(_(H.value.status_item?.label||`—`),1)]),_:1}),i(f,{label:`下次跟进日期`},{default:u(()=>[c(_(H.value.next_follow_date||`—`),1)]),_:1}),H.value.source_item?.label?(a(),v(f,{key:0,label:`来源`},{default:u(()=>[c(_(H.value.source_item.label),1)]),_:1})):s(``,!0)]),_:1})])):(a(),t(`div`,se,[o[24]||=d(`h3`,{class:`basic-info-title`},`基本信息`,-1),i(A,{"label-position":`top`,class:`form-small`},{default:u(()=>[i(D,{gutter:12},{default:u(()=>[i(b,{xs:24,md:4},{default:u(()=>[i(y,{label:`姓名`,required:``},{default:u(()=>[i(g,{modelValue:Y.value.name,"onUpdate:modelValue":o[0]||=e=>Y.value.name=e},null,8,[`modelValue`])]),_:1})]),_:1}),i(b,{xs:24,md:8},{default:u(()=>[i(y,{label:`高校`,required:``},{default:u(()=>[H.value?.university_text&&!Y.value.university_id?(a(),t(`p`,ce,` 论文抓取高校:`+_(H.value.university_text)+`(请在下拉中选择或新建以关联) `,1)):s(``,!0),d(`div`,le,[i(C,{modelValue:Y.value.university_id,"onUpdate:modelValue":o[1]||=e=>Y.value.university_id=e,filterable:``,placeholder:`选择高校`,style:{flex:`1`}},{default:u(()=>[(a(!0),t(m,null,h(J.value,e=>(a(),v(x,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`]),te.value?s(``,!0):(a(),v(T,{key:0,type:`primary`,size:`small`,class:`teachers-primary-btn`,onClick:Ae},{default:u(()=>[...o[23]||=[c(` 新建高校 `,-1)]]),_:1}))])]),_:1})]),_:1}),i(b,{xs:24,md:4},{default:u(()=>[i(y,{label:`城市`,required:``},{default:u(()=>[i(g,{modelValue:Y.value.city,"onUpdate:modelValue":o[2]||=e=>Y.value.city=e},null,8,[`modelValue`])]),_:1})]),_:1}),i(b,{xs:24,md:8},{default:u(()=>[i(y,{label:`职称`,required:``},{default:u(()=>[i(g,{modelValue:Y.value.title,"onUpdate:modelValue":o[3]||=e=>Y.value.title=e},null,8,[`modelValue`])]),_:1})]),_:1}),i(b,{xs:24,md:8},{default:u(()=>[i(y,{label:`研究方向`,required:``},{default:u(()=>[i(C,{modelValue:Y.value.research_direction_ids,"onUpdate:modelValue":o[4]||=e=>Y.value.research_direction_ids=e,multiple:``,filterable:``,"collapse-tags":``,"collapse-tags-tooltip":``,placeholder:`选择研究方向(可多选)`,style:{width:`100%`}},{default:u(()=>[(a(!0),t(m,null,h(Se.value,e=>(a(),v(x,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1})]),_:1}),i(b,{xs:24,md:6},{default:u(()=>[i(y,{label:`电话`},{default:u(()=>[i(g,{modelValue:Y.value.phone,"onUpdate:modelValue":o[5]||=e=>Y.value.phone=e},null,8,[`modelValue`])]),_:1})]),_:1}),i(b,{xs:24,md:6},{default:u(()=>[i(y,{label:`邮箱`},{default:u(()=>[i(g,{modelValue:Y.value.email,"onUpdate:modelValue":o[6]||=e=>Y.value.email=e,type:`email`},null,8,[`modelValue`])]),_:1})]),_:1}),i(b,{xs:24,md:4},{default:u(()=>[i(y,{label:`星级`},{default:u(()=>[i(C,{modelValue:Y.value.star_level_dict_item_id,"onUpdate:modelValue":o[7]||=e=>Y.value.star_level_dict_item_id=e,style:{width:`100%`},onChange:Fe},{default:u(()=>[(a(!0),t(m,null,h(q.value,e=>(a(),v(x,{key:e.id,label:e.label,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`]),d(`span`,ue,_(n(z)(q.value.find(e=>e.id===Y.value.star_level_dict_item_id)?.value,q.value.find(e=>e.id===Y.value.star_level_dict_item_id)?.label)),1)]),_:1})]),_:1}),i(b,{xs:24,md:6},{default:u(()=>[i(y,{label:`状态`,required:``},{default:u(()=>[i(C,{modelValue:Y.value.status_dict_item_id,"onUpdate:modelValue":o[8]||=e=>Y.value.status_dict_item_id=e,placeholder:`请选择状态`,style:{width:`100%`}},{default:u(()=>[(a(!0),t(m,null,h(xe.value,e=>(a(),v(x,{key:e.id,label:e.label,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1})]),_:1}),i(b,{xs:24,md:6},{default:u(()=>[i(y,{label:`下次跟进日期`},{default:u(()=>[i(E,{modelValue:Y.value.next_follow_date,"onUpdate:modelValue":o[9]||=e=>Y.value.next_follow_date=e,type:`date`,"value-format":`YYYY-MM-DD`,placeholder:`选择日期`,style:{width:`100%`}},null,8,[`modelValue`]),W.value?(a(),t(`p`,de,_(W.value),1)):s(``,!0)]),_:1})]),_:1})]),_:1})]),_:1})])),d(`div`,fe,[d(`div`,pe,[o[26]||=d(`h3`,null,`论文列表`,-1),d(`span`,me,`共 `+_(G.value.length)+` 篇`,1),S.value?s(``,!0):(a(),v(T,{key:0,size:`small`,type:`primary`,plain:``,onClick:Le},{default:u(()=>[...o[25]||=[c(` 添加论文 `,-1)]]),_:1}))]),i(N,{data:G.value,size:`small`,"row-key":`id`},{default:u(()=>[i(j,{prop:`title`,label:`标题`,"min-width":`200`,"show-overflow-tooltip":``}),i(j,{prop:`authors`,label:`作者`,width:`140`}),i(j,{prop:`school_name`,label:`学校`,width:`120`}),i(j,{prop:`published_at`,label:`发表时间`,width:`110`}),i(j,{label:`链接`,width:`70`},{default:u(({row:e})=>[e.url?(a(),v(M,{key:0,href:e.url,target:`_blank`},{default:u(()=>[...o[27]||=[c(`查看`,-1)]]),_:1},8,[`href`])):s(``,!0)]),_:1}),i(j,{label:`操作`,width:S.value?70:120},{default:u(({row:e})=>[i(T,{link:``,type:`primary`,onClick:t=>Be(e)},{default:u(()=>[...o[28]||=[c(`摘要`,-1)]]),_:1},8,[`onClick`]),S.value?s(``,!0):(a(),v(T,{key:0,link:``,type:`danger`,onClick:t=>ze(e)},{default:u(()=>[...o[29]||=[c(`删除`,-1)]]),_:1},8,[`onClick`]))]),_:1},8,[`width`])]),_:1},8,[`data`])]),d(`div`,he,[d(`div`,ge,[o[30]||=d(`h3`,null,`需求列表`,-1),d(`span`,_e,`共 `+_(K.value.length)+` 条`,1)]),i(N,{data:K.value,size:`small`,"row-key":`id`},{default:u(()=>[i(j,{label:`类型`,width:`100`},{default:u(({row:e})=>[i(P,{size:`small`,effect:`dark`},{default:u(()=>[c(_(e.type_item?.label),1)]),_:2},1024)]),_:1}),i(j,{prop:`title`,label:`标题`,"min-width":`180`,"show-overflow-tooltip":``}),i(j,{prop:`submitted_at`,label:`时间`,width:`110`}),i(j,{label:`处理状态`,width:`100`},{default:u(({row:e})=>[i(P,{type:n(F)(e.status_item?.value),size:`small`,effect:`dark`},{default:u(()=>[c(_(e.status_item?.label),1)]),_:2},1032,[`type`])]),_:1}),i(j,{label:`跟进记录`,width:`100`},{default:u(({row:e})=>[i(T,{size:`small`,onClick:t=>Ve(e)},{default:u(()=>[c(_(e.handle_logs_count||0)+`条记录 `,1)]),_:2},1032,[`onClick`])]),_:1})]),_:1},8,[`data`]),K.value.length?s(``,!0):(a(),v(I,{key:0,description:`暂无关联需求`,"image-size":64}))])])),[[R,V.value]]),i(L,{modelValue:X.value,"onUpdate:modelValue":o[17]||=e=>X.value=e,title:`新建高校`,width:`480px`,"append-to-body":``,"destroy-on-close":``},{footer:u(()=>[i(T,{onClick:o[16]||=e=>X.value=!1},{default:u(()=>[...o[33]||=[c(`取消`,-1)]]),_:1}),i(T,{type:`primary`,class:`teachers-primary-btn`,loading:Z.value,onClick:je},{default:u(()=>[...o[34]||=[c(` 保存 `,-1)]]),_:1},8,[`loading`])]),default:u(()=>[i(A,{"label-position":`top`,class:`form-small`},{default:u(()=>[i(y,{label:`高校名称`,required:``},{default:u(()=>[i(g,{modelValue:Q.value.name,"onUpdate:modelValue":o[11]||=e=>Q.value.name=e,placeholder:`如:复旦大学`},null,8,[`modelValue`])]),_:1}),i(D,{gutter:12},{default:u(()=>[i(b,{span:12},{default:u(()=>[i(y,{label:`经度`,required:``},{default:u(()=>[i(g,{modelValue:Q.value.longitude,"onUpdate:modelValue":o[12]||=e=>Q.value.longitude=e,placeholder:`如:121.5031`},null,8,[`modelValue`])]),_:1})]),_:1}),i(b,{span:12},{default:u(()=>[i(y,{label:`纬度`,required:``},{default:u(()=>[i(g,{modelValue:Q.value.latitude,"onUpdate:modelValue":o[13]||=e=>Q.value.latitude=e,placeholder:`如:31.2970`},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1}),i(D,{gutter:12},{default:u(()=>[i(b,{span:12},{default:u(()=>[i(y,{label:`省份`},{default:u(()=>[i(g,{modelValue:Q.value.province,"onUpdate:modelValue":o[14]||=e=>Q.value.province=e,placeholder:`如:上海市`},null,8,[`modelValue`])]),_:1})]),_:1}),i(b,{span:12},{default:u(()=>[i(y,{label:`城市`},{default:u(()=>[i(g,{modelValue:Q.value.city,"onUpdate:modelValue":o[15]||=e=>Q.value.city=e,placeholder:`如:上海`},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),i(L,{modelValue:Ce.value,"onUpdate:modelValue":o[18]||=e=>Ce.value=e,title:`论文摘要`,width:`520px`,"append-to-body":``},{default:u(()=>[d(`p`,ve,_(we.value),1)]),_:1},8,[`modelValue`]),i(ie,{modelValue:$.value,"onUpdate:modelValue":o[19]||=e=>$.value=e,"teacher-id":e.teacherId,"default-authors":H.value?.name||Y.value.name,"default-school-name":J.value.find(e=>e.id===Y.value.university_id)?.name||H.value?.university_name||``,onSaved:Re},null,8,[`modelValue`,`teacher-id`,`default-authors`,`default-school-name`]),i(L,{modelValue:Te.value,"onUpdate:modelValue":o[20]||=e=>Te.value=e,title:`需求跟进记录`,width:`640px`,"append-to-body":``},{default:u(()=>[d(`p`,ye,_(Ee.value),1),(a(!0),t(m,null,h(De.value,e=>(a(),t(`div`,{key:e.id,class:`log-card`},[d(`div`,be,[d(`strong`,null,_(e.operator_name),1),d(`span`,null,_(e.handled_at),1),e.status_item?(a(),v(P,{key:0,size:`small`,type:n(F)(e.status_item.value)},{default:u(()=>[c(_(e.status_item.label),1)]),_:2},1032,[`type`])):s(``,!0)]),d(`p`,null,_(e.content),1)]))),128)),De.value.length?s(``,!0):(a(),v(I,{key:0,description:`暂无记录`}))]),_:1},8,[`modelValue`])]),_:1},8,[`model-value`,`title`])}}}),W=e({default:()=>G}),G=S(U,[[`__scopeId`,`data-v-287a1810`]]);export{W as n,ie as r,G as t}; \ No newline at end of file +import{r as e}from"./rolldown-runtime-BYbx6iT9.js";import{C as t,Ct as n,D as r,E as i,G as a,P as o,S as s,T as c,X as ee,Y as l,at as u,b as d,d as te,et as f,ht as p,m,ot as ne,q as h,rt as g,tn as _,x as v,y}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{c as b,l as x,s as S,t as C}from"./index-spAvC8uC.js";import{l as w}from"./assets-Crd2wFUi.js";import{a as T,c as E,h as D,i as O,m as k,o as A,p as j,s as M,u as N}from"./teachers-DKRkEeCz.js";import{a as P}from"./dict-BUAS3PXv.js";import{i as F,o as I,s as L}from"./demands-BSO0rFMS.js";import{a as R,n as z,o as re}from"./teacherStar-By0_CBs7.js";var B={class:`library-toolbar`},V={key:1,class:`text-mute`},H={key:0,class:`library-pager`},ie=S(r({__name:`TeacherPaperDialog`,props:o({teacherId:{},defaultAuthors:{},defaultSchoolName:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:o([`saved`],[`update:modelValue`]),setup(e,{emit:n}){let r=f(e,`modelValue`),o=e,m=n,h=p(`manual`),y=p(!1),b=p({title:``,authors:``,school_name:``,published_at:``,url:``,summary:``}),S=p(``),C=p(!1),T=p([]),E=p(1),D=p({current_page:1,per_page:10,total:0}),A=p([]),j=p();function M(){b.value={title:``,authors:o.defaultAuthors||``,school_name:o.defaultSchoolName||``,published_at:``,url:``,summary:``}}async function P(){o.teacherId&&(A.value=(await N(o.teacherId)).map(e=>e.id))}async function F(e=E.value){C.value=!0;try{let t=await w({page:e,page_size:D.value.per_page,keyword:S.value.trim()||void 0});T.value=t.items,D.value=t.meta,E.value=t.meta.current_page,j.value&&!t.items.some(e=>e.id===j.value)&&(j.value=void 0)}finally{C.value=!1}}function I(){E.value=1,F(1)}function L(e){A.value.includes(e.id)||(j.value=e.id)}async function R(){if(o.teacherId){if(!b.value.title.trim()||!b.value.authors.trim()){x.warning(`请填写标题与作者`);return}if(!b.value.published_at){x.warning(`请选择发表时间`);return}y.value=!0;try{await O(o.teacherId,{...b.value}),x.success(`已添加论文`),r.value=!1,m(`saved`)}finally{y.value=!1}}}async function z(){if(o.teacherId){if(!j.value){x.warning(`请选择要关联的论文`);return}if(A.value.includes(j.value)){x.warning(`该论文已关联此老师`);return}y.value=!0;try{await k(o.teacherId,j.value),x.success(`已关联论文`),r.value=!1,m(`saved`)}finally{y.value=!1}}}async function re(){h.value===`manual`?await R():await z()}return g(()=>[r.value,o.teacherId],([e])=>{e&&o.teacherId&&(h.value=`manual`,j.value=void 0,S.value=``,E.value=1,M(),P(),F(1))}),g(h,e=>{e===`library`&&r.value&&o.teacherId&&F(E.value)}),(e,n)=>{let o=l(`el-input`),f=l(`el-form-item`),p=l(`el-col`),m=l(`el-date-picker`),g=l(`el-row`),x=l(`el-form`),w=l(`el-tab-pane`),O=l(`el-button`),k=l(`el-table-column`),j=l(`el-tag`),M=l(`el-table`),N=l(`el-pagination`),P=l(`el-tabs`),R=l(`el-dialog`),z=ee(`loading`);return a(),v(R,{modelValue:r.value,"onUpdate:modelValue":n[10]||=e=>r.value=e,title:`论文`,width:`720px`,"destroy-on-close":``,"append-to-body":``},{footer:u(()=>[i(O,{onClick:n[9]||=e=>r.value=!1},{default:u(()=>[...n[13]||=[c(`取消`,-1)]]),_:1}),i(O,{type:`primary`,loading:y.value,onClick:re},{default:u(()=>[c(_(h.value===`manual`?`保存`:`确认关联`),1)]),_:1},8,[`loading`])]),default:u(()=>[i(P,{modelValue:h.value,"onUpdate:modelValue":n[8]||=e=>h.value=e},{default:u(()=>[i(w,{label:`手动录入`,name:`manual`},{default:u(()=>[i(x,{"label-position":`top`,class:`form-small`},{default:u(()=>[i(f,{label:`标题`,required:``},{default:u(()=>[i(o,{modelValue:b.value.title,"onUpdate:modelValue":n[0]||=e=>b.value.title=e,placeholder:`请输入论文标题`},null,8,[`modelValue`])]),_:1}),i(g,{gutter:12},{default:u(()=>[i(p,{span:12},{default:u(()=>[i(f,{label:`作者`,required:``},{default:u(()=>[i(o,{modelValue:b.value.authors,"onUpdate:modelValue":n[1]||=e=>b.value.authors=e},null,8,[`modelValue`])]),_:1})]),_:1}),i(p,{span:12},{default:u(()=>[i(f,{label:`学校`},{default:u(()=>[i(o,{modelValue:b.value.school_name,"onUpdate:modelValue":n[2]||=e=>b.value.school_name=e},null,8,[`modelValue`])]),_:1})]),_:1}),i(p,{span:12},{default:u(()=>[i(f,{label:`发表时间`,required:``},{default:u(()=>[i(m,{modelValue:b.value.published_at,"onUpdate:modelValue":n[3]||=e=>b.value.published_at=e,type:`date`,"value-format":`YYYY-MM-DD`,style:{width:`100%`}},null,8,[`modelValue`])]),_:1})]),_:1}),i(p,{span:12},{default:u(()=>[i(f,{label:`链接`},{default:u(()=>[i(o,{modelValue:b.value.url,"onUpdate:modelValue":n[4]||=e=>b.value.url=e,placeholder:`https://example.com/paper`},null,8,[`modelValue`])]),_:1})]),_:1}),i(p,{span:24},{default:u(()=>[i(f,{label:`摘要`},{default:u(()=>[i(o,{modelValue:b.value.summary,"onUpdate:modelValue":n[5]||=e=>b.value.summary=e,type:`textarea`,rows:4,placeholder:`请输入论文摘要`},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),i(w,{label:`从论文库选择`,name:`library`},{default:u(()=>[d(`div`,B,[i(o,{modelValue:S.value,"onUpdate:modelValue":n[6]||=e=>S.value=e,clearable:``,placeholder:`搜索标题、作者、学校…`,style:{width:`260px`},onKeyup:te(I,[`enter`])},null,8,[`modelValue`]),i(O,{type:`primary`,onClick:I},{default:u(()=>[...n[11]||=[c(`搜索`,-1)]]),_:1})]),ne((a(),v(M,{data:T.value,size:`small`,"highlight-current-row":``,class:`library-table`,"row-class-name":({row:e})=>A.value.includes(e.id)?`is-linked-row`:``,onRowClick:L,onCurrentChange:n[7]||=e=>{e&&L(e)}},{default:u(()=>[i(k,{prop:`title`,label:`标题`,"min-width":`200`,"show-overflow-tooltip":``}),i(k,{prop:`authors`,label:`作者`,width:`120`,"show-overflow-tooltip":``}),i(k,{prop:`school_name`,label:`学校`,width:`120`,"show-overflow-tooltip":``}),i(k,{label:`状态`,width:`80`,align:`center`},{default:u(({row:e})=>[A.value.includes(e.id)?(a(),v(j,{key:0,size:`small`,type:`info`},{default:u(()=>[...n[12]||=[c(`已关联`,-1)]]),_:1})):(a(),t(`span`,V,`—`))]),_:1})]),_:1},8,[`data`,`row-class-name`])),[[z,C.value]]),D.value.total>0?(a(),t(`div`,H,[i(N,{layout:`total, prev, pager, next`,total:D.value.total,"page-size":D.value.per_page,"current-page":E.value,onCurrentChange:F},null,8,[`total`,`page-size`,`current-page`])])):s(``,!0)]),_:1})]),_:1},8,[`modelValue`])]),_:1},8,[`modelValue`])}}}),[[`__scopeId`,`data-v-d91269f1`]]),ae={class:`detail-body`},oe={key:0,class:`basic-info-block`},se={key:1,class:`basic-info-block`},ce={key:0,class:`crawl-uni-hint`},le={class:`uni-row`},ue={class:`star-preview`},de={key:0,class:`star-follow-rule`},fe={class:`section`},pe={class:`section-head`},me={class:`muted`},he={class:`section`},ge={class:`section-head`},_e={class:`muted`},ve={class:`summary-body`},ye={class:`follow-summary`},be={class:`log-head`},U=r({__name:`TeacherDetailDialog`,props:{modelValue:{type:Boolean},teacherId:{},readonly:{type:Boolean}},emits:[`update:modelValue`,`saved`],setup(e,{emit:r}){let o=C(),te=y(()=>o.isGridMember),f=e,S=y(()=>f.readonly===!0),w=y(()=>{let e=H.value?.name;return S.value?e?`查看 · ${e}`:`老师详情`:e?`编辑 · ${e}`:`编辑老师`});function O(e){return e.university_name?e.university_name:e.university_text?`${e.university_text}(未关联高校库)`:`—`}function k(e){return e.research_direction?e.research_direction:e.research_directions?.map(e=>e.name).join(`、`)||`—`}let B=r,V=p(!1),H=p(null),U=p(null),W=y(()=>R(q.value.find(e=>e.id===Y.value.star_level_dict_item_id)?.value)),G=p([]),K=p([]),q=p([]),xe=p([]),J=p([]),Se=p([]),Y=p({name:``,university_id:void 0,city:``,title:``,research_direction_ids:[],phone:``,email:``,star_level_dict_item_id:void 0,status_dict_item_id:void 0,next_follow_date:``}),X=p(!1),Z=p(!1),Q=p({name:``,city:``,province:``,longitude:``,latitude:``}),$=p(!1),Ce=p(!1),we=p(``),Te=p(!1),Ee=p(``),De=p([]);async function Oe(){let e=await j({page:1,page_size:200}),t=o.user?.grid_scope?.university_ids;J.value=t?.length?e.items.filter(e=>t.includes(e.id)):e.items}async function ke(){let e=await E(),t=o.user?.grid_scope?.research_direction_ids;Se.value=t?.length?e.research_directions.filter(e=>t.includes(e.id)):e.research_directions}function Ae(){Q.value={name:``,city:Y.value.city||``,province:``,longitude:``,latitude:``},X.value=!0}async function je(){let e=Q.value;if(!e.name.trim()){x.warning(`请填写高校名称`);return}if(!e.longitude.trim()||!e.latitude.trim()){x.warning(`请填写经度与纬度`);return}let t=Number(e.longitude),n=Number(e.latitude);if(Number.isNaN(t)||Number.isNaN(n)){x.warning(`经纬度须为有效数字`);return}Z.value=!0;try{let r=await T({name:e.name.trim(),city:e.city.trim()||null,province:e.province.trim()||null,longitude:t,latitude:n});J.value.some(e=>e.id===r.id)||J.value.push(r),Y.value.university_id=r.id,r.city&&(Y.value.city=r.city),X.value=!1,x.success(`高校已创建`)}finally{Z.value=!1}}async function Me(){if(f.teacherId){V.value=!0;try{let e=await M(f.teacherId);H.value=e,U.value=e.star_level_dict_item_id??null,Y.value={name:e.name||``,university_id:e.university_id??void 0,research_direction_ids:e.research_direction_ids?.length?[...e.research_direction_ids]:e.research_directions?.map(e=>e.id)||[],city:e.city||``,title:e.title||``,phone:e.phone||``,email:e.email||``,star_level_dict_item_id:e.star_level_dict_item_id??void 0,status_dict_item_id:e.status_dict_item_id??void 0,next_follow_date:e.next_follow_date||``};let[t,n]=await Promise.all([N(f.teacherId),L({teacher_id:f.teacherId,page:1,page_size:50})]);G.value=t,K.value=n.items}finally{V.value=!1}}}function Ne(){let e=Y.value;return e.name.trim()?e.university_id?e.city.trim()?e.title.trim()?e.research_direction_ids.length?e.status_dict_item_id?!0:(x.warning(`请选择状态`),!1):(x.warning(`请至少选择一个研究方向`),!1):(x.warning(`请填写职称`),!1):(x.warning(`请填写城市`),!1):(x.warning(`请选择高校,或点击「新建高校」`),!1):(x.warning(`请填写姓名`),!1)}async function Pe(){if(!f.teacherId||!H.value||!Ne())return;let e=(Y.value.star_level_dict_item_id??null)!==U.value;await D(f.teacherId,{name:Y.value.name.trim(),university_id:Y.value.university_id,city:Y.value.city.trim(),title:Y.value.title.trim(),research_direction_ids:Y.value.research_direction_ids,phone:Y.value.phone||null,email:Y.value.email||null,star_level_dict_item_id:Y.value.star_level_dict_item_id??null,status_dict_item_id:Y.value.status_dict_item_id,...e?{recalc_next_follow_date:!0}:{next_follow_date:Y.value.next_follow_date||null,recalc_next_follow_date:!1}}),x.success(`已保存`),B(`saved`),B(`update:modelValue`,!1)}function Fe(){let e=q.value.find(e=>e.id===Y.value.star_level_dict_item_id);Y.value.next_follow_date=re(e?.value)||``}function Ie(e){if(!e)return;let t=J.value.find(t=>t.id===e);t?.city&&!Y.value.city&&(Y.value.city=t.city)}function Le(){$.value=!0}async function Re(){f.teacherId&&(G.value=await N(f.teacherId))}async function ze(e){await b.confirm(`确定删除论文「${e.title}」?`,`确认删除`,{type:`warning`}),await A(f.teacherId,e.id),G.value=await N(f.teacherId)}function Be(e){we.value=e.summary||`暂无摘要`,Ce.value=!0}async function Ve(e){Ee.value=e.title,De.value=await I(e.id),Te.value=!0}return g(()=>[f.modelValue,f.teacherId],async([e,t])=>{if(e&&t){if(!q.value.length){let[e,t]=await Promise.all([P(`teacher_level`),P(`teacher_status`)]);q.value=e.items,xe.value=t.items,await Oe()}await ke(),await Me()}}),g(()=>Y.value.university_id,e=>Ie(e)),(r,o)=>{let f=l(`el-descriptions-item`),p=l(`el-descriptions`),g=l(`el-input`),y=l(`el-form-item`),b=l(`el-col`),x=l(`el-option`),C=l(`el-select`),T=l(`el-button`),E=l(`el-date-picker`),D=l(`el-row`),A=l(`el-form`),j=l(`el-table-column`),M=l(`el-link`),N=l(`el-table`),P=l(`el-tag`),I=l(`el-empty`),L=l(`el-dialog`),R=ee(`loading`);return a(),v(L,{"model-value":e.modelValue,title:w.value,width:`960px`,top:`4vh`,"destroy-on-close":``,"onUpdate:modelValue":o[21]||=e=>B(`update:modelValue`,e)},{footer:u(()=>[i(T,{onClick:o[10]||=e=>B(`update:modelValue`,!1)},{default:u(()=>[...o[31]||=[c(`关闭`,-1)]]),_:1}),S.value?s(``,!0):(a(),v(T,{key:0,type:`primary`,class:`teachers-primary-btn`,onClick:Pe},{default:u(()=>[...o[32]||=[c(` 保存 `,-1)]]),_:1}))]),default:u(()=>[ne((a(),t(`div`,ae,[S.value&&H.value?(a(),t(`div`,oe,[o[22]||=d(`h3`,{class:`basic-info-title`},`基本信息`,-1),i(p,{column:3,border:``,size:`small`,class:`view-desc`},{default:u(()=>[i(f,{label:`姓名`},{default:u(()=>[c(_(H.value.name),1)]),_:1}),i(f,{label:`高校`},{default:u(()=>[c(_(O(H.value)),1)]),_:1}),i(f,{label:`城市`},{default:u(()=>[c(_(H.value.city||`—`),1)]),_:1}),i(f,{label:`职称`},{default:u(()=>[c(_(H.value.title||`—`),1)]),_:1}),i(f,{label:`研究方向`,span:2},{default:u(()=>[c(_(k(H.value)),1)]),_:1}),i(f,{label:`电话`},{default:u(()=>[c(_(H.value.phone||`—`),1)]),_:1}),i(f,{label:`邮箱`},{default:u(()=>[c(_(H.value.email||`—`),1)]),_:1}),i(f,{label:`星级`},{default:u(()=>[c(_(n(z)(H.value.star_level_item?.value,H.value.star_level_item?.label)),1)]),_:1}),i(f,{label:`状态`},{default:u(()=>[c(_(H.value.status_item?.label||`—`),1)]),_:1}),i(f,{label:`下次跟进日期`},{default:u(()=>[c(_(H.value.next_follow_date||`—`),1)]),_:1}),H.value.source_item?.label?(a(),v(f,{key:0,label:`来源`},{default:u(()=>[c(_(H.value.source_item.label),1)]),_:1})):s(``,!0)]),_:1})])):(a(),t(`div`,se,[o[24]||=d(`h3`,{class:`basic-info-title`},`基本信息`,-1),i(A,{"label-position":`top`,class:`form-small`},{default:u(()=>[i(D,{gutter:12},{default:u(()=>[i(b,{xs:24,md:4},{default:u(()=>[i(y,{label:`姓名`,required:``},{default:u(()=>[i(g,{modelValue:Y.value.name,"onUpdate:modelValue":o[0]||=e=>Y.value.name=e},null,8,[`modelValue`])]),_:1})]),_:1}),i(b,{xs:24,md:8},{default:u(()=>[i(y,{label:`高校`,required:``},{default:u(()=>[H.value?.university_text&&!Y.value.university_id?(a(),t(`p`,ce,` 论文抓取高校:`+_(H.value.university_text)+`(请在下拉中选择或新建以关联) `,1)):s(``,!0),d(`div`,le,[i(C,{modelValue:Y.value.university_id,"onUpdate:modelValue":o[1]||=e=>Y.value.university_id=e,filterable:``,placeholder:`选择高校`,style:{flex:`1`}},{default:u(()=>[(a(!0),t(m,null,h(J.value,e=>(a(),v(x,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`]),te.value?s(``,!0):(a(),v(T,{key:0,type:`primary`,size:`small`,class:`teachers-primary-btn`,onClick:Ae},{default:u(()=>[...o[23]||=[c(` 新建高校 `,-1)]]),_:1}))])]),_:1})]),_:1}),i(b,{xs:24,md:4},{default:u(()=>[i(y,{label:`城市`,required:``},{default:u(()=>[i(g,{modelValue:Y.value.city,"onUpdate:modelValue":o[2]||=e=>Y.value.city=e},null,8,[`modelValue`])]),_:1})]),_:1}),i(b,{xs:24,md:8},{default:u(()=>[i(y,{label:`职称`,required:``},{default:u(()=>[i(g,{modelValue:Y.value.title,"onUpdate:modelValue":o[3]||=e=>Y.value.title=e},null,8,[`modelValue`])]),_:1})]),_:1}),i(b,{xs:24,md:8},{default:u(()=>[i(y,{label:`研究方向`,required:``},{default:u(()=>[i(C,{modelValue:Y.value.research_direction_ids,"onUpdate:modelValue":o[4]||=e=>Y.value.research_direction_ids=e,multiple:``,filterable:``,"collapse-tags":``,"collapse-tags-tooltip":``,placeholder:`选择研究方向(可多选)`,style:{width:`100%`}},{default:u(()=>[(a(!0),t(m,null,h(Se.value,e=>(a(),v(x,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1})]),_:1}),i(b,{xs:24,md:6},{default:u(()=>[i(y,{label:`电话`},{default:u(()=>[i(g,{modelValue:Y.value.phone,"onUpdate:modelValue":o[5]||=e=>Y.value.phone=e},null,8,[`modelValue`])]),_:1})]),_:1}),i(b,{xs:24,md:6},{default:u(()=>[i(y,{label:`邮箱`},{default:u(()=>[i(g,{modelValue:Y.value.email,"onUpdate:modelValue":o[6]||=e=>Y.value.email=e,type:`email`},null,8,[`modelValue`])]),_:1})]),_:1}),i(b,{xs:24,md:4},{default:u(()=>[i(y,{label:`星级`},{default:u(()=>[i(C,{modelValue:Y.value.star_level_dict_item_id,"onUpdate:modelValue":o[7]||=e=>Y.value.star_level_dict_item_id=e,style:{width:`100%`},onChange:Fe},{default:u(()=>[(a(!0),t(m,null,h(q.value,e=>(a(),v(x,{key:e.id,label:e.label,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`]),d(`span`,ue,_(n(z)(q.value.find(e=>e.id===Y.value.star_level_dict_item_id)?.value,q.value.find(e=>e.id===Y.value.star_level_dict_item_id)?.label)),1)]),_:1})]),_:1}),i(b,{xs:24,md:6},{default:u(()=>[i(y,{label:`状态`,required:``},{default:u(()=>[i(C,{modelValue:Y.value.status_dict_item_id,"onUpdate:modelValue":o[8]||=e=>Y.value.status_dict_item_id=e,placeholder:`请选择状态`,style:{width:`100%`}},{default:u(()=>[(a(!0),t(m,null,h(xe.value,e=>(a(),v(x,{key:e.id,label:e.label,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1})]),_:1}),i(b,{xs:24,md:6},{default:u(()=>[i(y,{label:`下次跟进日期`},{default:u(()=>[i(E,{modelValue:Y.value.next_follow_date,"onUpdate:modelValue":o[9]||=e=>Y.value.next_follow_date=e,type:`date`,"value-format":`YYYY-MM-DD`,placeholder:`选择日期`,style:{width:`100%`}},null,8,[`modelValue`]),W.value?(a(),t(`p`,de,_(W.value),1)):s(``,!0)]),_:1})]),_:1})]),_:1})]),_:1})])),d(`div`,fe,[d(`div`,pe,[o[26]||=d(`h3`,null,`论文列表`,-1),d(`span`,me,`共 `+_(G.value.length)+` 篇`,1),S.value?s(``,!0):(a(),v(T,{key:0,size:`small`,type:`primary`,plain:``,onClick:Le},{default:u(()=>[...o[25]||=[c(` 添加论文 `,-1)]]),_:1}))]),i(N,{data:G.value,size:`small`,"row-key":`id`},{default:u(()=>[i(j,{prop:`title`,label:`标题`,"min-width":`200`,"show-overflow-tooltip":``}),i(j,{prop:`authors`,label:`作者`,width:`140`}),i(j,{prop:`school_name`,label:`学校`,width:`120`}),i(j,{prop:`published_at`,label:`发表时间`,width:`110`}),i(j,{label:`链接`,width:`70`},{default:u(({row:e})=>[e.url?(a(),v(M,{key:0,href:e.url,target:`_blank`},{default:u(()=>[...o[27]||=[c(`查看`,-1)]]),_:1},8,[`href`])):s(``,!0)]),_:1}),i(j,{label:`操作`,width:S.value?70:120},{default:u(({row:e})=>[i(T,{link:``,type:`primary`,onClick:t=>Be(e)},{default:u(()=>[...o[28]||=[c(`摘要`,-1)]]),_:1},8,[`onClick`]),S.value?s(``,!0):(a(),v(T,{key:0,link:``,type:`danger`,onClick:t=>ze(e)},{default:u(()=>[...o[29]||=[c(`删除`,-1)]]),_:1},8,[`onClick`]))]),_:1},8,[`width`])]),_:1},8,[`data`])]),d(`div`,he,[d(`div`,ge,[o[30]||=d(`h3`,null,`需求列表`,-1),d(`span`,_e,`共 `+_(K.value.length)+` 条`,1)]),i(N,{data:K.value,size:`small`,"row-key":`id`},{default:u(()=>[i(j,{label:`类型`,width:`100`},{default:u(({row:e})=>[i(P,{size:`small`,effect:`dark`},{default:u(()=>[c(_(e.type_item?.label),1)]),_:2},1024)]),_:1}),i(j,{prop:`title`,label:`标题`,"min-width":`180`,"show-overflow-tooltip":``}),i(j,{prop:`submitted_at`,label:`时间`,width:`110`}),i(j,{label:`处理状态`,width:`100`},{default:u(({row:e})=>[i(P,{type:n(F)(e.status_item?.value),size:`small`,effect:`dark`},{default:u(()=>[c(_(e.status_item?.label),1)]),_:2},1032,[`type`])]),_:1}),i(j,{label:`跟进记录`,width:`100`},{default:u(({row:e})=>[i(T,{size:`small`,onClick:t=>Ve(e)},{default:u(()=>[c(_(e.handle_logs_count||0)+`条记录 `,1)]),_:2},1032,[`onClick`])]),_:1})]),_:1},8,[`data`]),K.value.length?s(``,!0):(a(),v(I,{key:0,description:`暂无关联需求`,"image-size":64}))])])),[[R,V.value]]),i(L,{modelValue:X.value,"onUpdate:modelValue":o[17]||=e=>X.value=e,title:`新建高校`,width:`480px`,"append-to-body":``,"destroy-on-close":``},{footer:u(()=>[i(T,{onClick:o[16]||=e=>X.value=!1},{default:u(()=>[...o[33]||=[c(`取消`,-1)]]),_:1}),i(T,{type:`primary`,class:`teachers-primary-btn`,loading:Z.value,onClick:je},{default:u(()=>[...o[34]||=[c(` 保存 `,-1)]]),_:1},8,[`loading`])]),default:u(()=>[i(A,{"label-position":`top`,class:`form-small`},{default:u(()=>[i(y,{label:`高校名称`,required:``},{default:u(()=>[i(g,{modelValue:Q.value.name,"onUpdate:modelValue":o[11]||=e=>Q.value.name=e,placeholder:`如:复旦大学`},null,8,[`modelValue`])]),_:1}),i(D,{gutter:12},{default:u(()=>[i(b,{span:12},{default:u(()=>[i(y,{label:`经度`,required:``},{default:u(()=>[i(g,{modelValue:Q.value.longitude,"onUpdate:modelValue":o[12]||=e=>Q.value.longitude=e,placeholder:`如:121.5031`},null,8,[`modelValue`])]),_:1})]),_:1}),i(b,{span:12},{default:u(()=>[i(y,{label:`纬度`,required:``},{default:u(()=>[i(g,{modelValue:Q.value.latitude,"onUpdate:modelValue":o[13]||=e=>Q.value.latitude=e,placeholder:`如:31.2970`},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1}),i(D,{gutter:12},{default:u(()=>[i(b,{span:12},{default:u(()=>[i(y,{label:`省份`},{default:u(()=>[i(g,{modelValue:Q.value.province,"onUpdate:modelValue":o[14]||=e=>Q.value.province=e,placeholder:`如:上海市`},null,8,[`modelValue`])]),_:1})]),_:1}),i(b,{span:12},{default:u(()=>[i(y,{label:`城市`},{default:u(()=>[i(g,{modelValue:Q.value.city,"onUpdate:modelValue":o[15]||=e=>Q.value.city=e,placeholder:`如:上海`},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),i(L,{modelValue:Ce.value,"onUpdate:modelValue":o[18]||=e=>Ce.value=e,title:`论文摘要`,width:`520px`,"append-to-body":``},{default:u(()=>[d(`p`,ve,_(we.value),1)]),_:1},8,[`modelValue`]),i(ie,{modelValue:$.value,"onUpdate:modelValue":o[19]||=e=>$.value=e,"teacher-id":e.teacherId,"default-authors":H.value?.name||Y.value.name,"default-school-name":J.value.find(e=>e.id===Y.value.university_id)?.name||H.value?.university_name||``,onSaved:Re},null,8,[`modelValue`,`teacher-id`,`default-authors`,`default-school-name`]),i(L,{modelValue:Te.value,"onUpdate:modelValue":o[20]||=e=>Te.value=e,title:`需求跟进记录`,width:`640px`,"append-to-body":``},{default:u(()=>[d(`p`,ye,_(Ee.value),1),(a(!0),t(m,null,h(De.value,e=>(a(),t(`div`,{key:e.id,class:`log-card`},[d(`div`,be,[d(`strong`,null,_(e.operator_name),1),d(`span`,null,_(e.handled_at),1),e.status_item?(a(),v(P,{key:0,size:`small`,type:n(F)(e.status_item.value)},{default:u(()=>[c(_(e.status_item.label),1)]),_:2},1032,[`type`])):s(``,!0)]),d(`p`,null,_(e.content),1)]))),128)),De.value.length?s(``,!0):(a(),v(I,{key:0,description:`暂无记录`}))]),_:1},8,[`modelValue`])]),_:1},8,[`model-value`,`title`])}}}),W=e({default:()=>G}),G=S(U,[[`__scopeId`,`data-v-287a1810`]]);export{W as n,ie as r,G as t}; \ No newline at end of file diff --git a/public/admin/assets/activities-DGKq28Un.js b/public/admin/assets/activities-C0hIH4qz.js similarity index 91% rename from public/admin/assets/activities-DGKq28Un.js rename to public/admin/assets/activities-C0hIH4qz.js index 58f7ac1..4d1a357 100644 --- a/public/admin/assets/activities-DGKq28Un.js +++ b/public/admin/assets/activities-C0hIH4qz.js @@ -1 +1 @@ -import{r as e}from"./index-j1gM0XLI.js";async function t(t){let{data:n}=await e.get(`/admin/v1/activities`,{params:t});return n.data}async function n(t){let{data:n}=await e.get(`/admin/v1/activities/${t}`);return n.data}async function r(t){let{data:n}=await e.post(`/admin/v1/activities`,t);return n.data}async function i(t,n){let{data:r}=await e.put(`/admin/v1/activities/${t}`,n);return r}async function a(t){let{data:n}=await e.delete(`/admin/v1/activities/${t}`);return n}async function o(t){let{data:n}=await e.get(`/admin/v1/activities/${t}/sessions`);return n.data.items}async function s(t,n){let{data:r}=await e.post(`/admin/v1/activities/${t}/sessions`,n);return r.data}async function c(t,n,r){let{data:i}=await e.put(`/admin/v1/activities/${t}/sessions/${n}`,r);return i}async function l(t,n){let{data:r}=await e.delete(`/admin/v1/activities/${t}/sessions/${n}`);return r}async function u(t,n){let{data:r}=await e.get(`/admin/v1/activities/${t}/signups`,{params:n});return r.data}async function d(e,t={}){let n=1,r=[];for(;;){let i=await u(e,{...t,page:n,page_size:200});if(r.push(...i.items),n>=i.meta.last_page||i.items.length===0)break;n+=1}return r}async function f(t,n){let{data:r}=await e.delete(`/admin/v1/activities/${t}/signups/${n}`);return r}async function p(t,n,r){let{data:i}=await e.post(`/admin/v1/activities/${t}/signups/${n}/checkin`,r);return i}export{l as a,n as c,d,i as f,a as i,o as l,r as n,f as o,c as p,s as r,t as s,p as t,u}; \ No newline at end of file +import{r as e}from"./index-spAvC8uC.js";async function t(t){let{data:n}=await e.get(`/admin/v1/activities`,{params:t});return n.data}async function n(t){let{data:n}=await e.get(`/admin/v1/activities/${t}`);return n.data}async function r(t){let{data:n}=await e.post(`/admin/v1/activities`,t);return n.data}async function i(t,n){let{data:r}=await e.put(`/admin/v1/activities/${t}`,n);return r}async function a(t){let{data:n}=await e.delete(`/admin/v1/activities/${t}`);return n}async function o(t){let{data:n}=await e.get(`/admin/v1/activities/${t}/sessions`);return n.data.items}async function s(t,n){let{data:r}=await e.post(`/admin/v1/activities/${t}/sessions`,n);return r.data}async function c(t,n,r){let{data:i}=await e.put(`/admin/v1/activities/${t}/sessions/${n}`,r);return i}async function l(t,n){let{data:r}=await e.delete(`/admin/v1/activities/${t}/sessions/${n}`);return r}async function u(t,n){let{data:r}=await e.get(`/admin/v1/activities/${t}/signups`,{params:n});return r.data}async function d(e,t={}){let n=1,r=[];for(;;){let i=await u(e,{...t,page:n,page_size:200});if(r.push(...i.items),n>=i.meta.last_page||i.items.length===0)break;n+=1}return r}async function f(t,n){let{data:r}=await e.delete(`/admin/v1/activities/${t}/signups/${n}`);return r}async function p(t,n,r){let{data:i}=await e.post(`/admin/v1/activities/${t}/signups/${n}/checkin`,r);return i}export{l as a,n as c,d,i as f,a as i,o as l,r as n,f as o,c as p,s as r,t as s,p as t,u}; \ No newline at end of file diff --git a/public/admin/assets/activities-C3o5O63I.js b/public/admin/assets/activities-C3o5O63I.js deleted file mode 100644 index 5b2d491..0000000 --- a/public/admin/assets/activities-C3o5O63I.js +++ /dev/null @@ -1 +0,0 @@ -import{C as e,Ct as t,D as n,E as r,G as i,S as a,T as o,X as ee,Xt as te,Y as s,at as c,b as l,d as ne,ht as u,m as d,ot as re,q as f,tn as p,x as m}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{c as h,l as g,s as ie}from"./index-j1gM0XLI.js";import{t as ae}from"./vue-quill.snow-CU-IQtel.js";import{t as _}from"./usePageLoad-DFTLo_Lv.js";import{a as v,c as y,d as b,f as oe,i as se,l as x,n as S,o as C,p as ce,r as le,s as ue,t as w,u as T}from"./activities-DGKq28Un.js";import{a as de,i as fe,o as pe,s as me}from"./admin-list-DjncsyJC.js";import{a as E}from"./dict-8GwTIJdx.js";import{a as he,i as ge,n as D,r as O,t as _e}from"./csv-export-ih3P4rrB.js";function ve(e,t){return D([`姓名`,`手机`,`公司`,`报名时间`],e.map(e=>[e.name,e.mobile,e.company??`—`,t(e.signed_up_at)]))}function ye(e,t,n){return D([`姓名`,`手机`,`公司`,`签到状态`,`签到时间`],e.map(e=>[e.name,e.mobile,e.company??`—`,t?e.session_checked_in_at?`已签到`:`未签到`:``,t?n(e.session_checked_in_at):``]))}var be={class:`list-page`},xe={class:`page-header`},Se={class:`list-filter-bar`},Ce={class:`table-row-actions`},we={class:`list-pager`},Te={class:`date-range`},Ee={class:`date-range`},De={class:`session-label-row`},Oe={class:`sessions-block`},ke={class:`quill-wrap`},Ae={class:`dialog-footer-inner`},je={class:`signup-head`},Me={class:`signup-head-row`},Ne={key:0,class:`session-tabs`},Pe={key:1,class:`text-mute`},Fe={class:`sub-toolbar signup-filter-bar`},Ie={class:`list-pager`},k=ie(n({__name:`index`,setup(n){let ie=[[`bold`,`italic`,`underline`],[{header:[2,3,!1]}],[{list:`ordered`},{list:`bullet`}],[`link`],[`clean`]],D=u(!1),k=u(!1),Le=u([]),A=u({current_page:1,per_page:20,total:0}),j=u(1),M=u(``),N=u(``),P=u(``),F=u(``),I=u([]),L=u(!1),R=u(null),z=u({title:``,activity_type_dict_item_id:void 0,event_start_date:``,event_end_date:``,signup_start_date:``,signup_end_date:``,location:``,intro_html:``}),B=u([]),Re=u(!1),V=u(null),H=u([]),ze=u([]),U=u({current_page:1,per_page:20,total:0}),W=u(1),G=u(``),K=u(``),q=u(``),J=u(!1),Be=u(!1),Ve=u([]),He=u(!1),Ue=u(null),We=u(``);async function Ge(){try{I.value=(await E(`activity_type`)).items}catch{g.warning(`活动类型字典加载失败,请执行 ActivityDictionarySeeder 或在字典中维护 activity_type`)}}async function Y(){D.value=!0;try{let e={page:j.value,page_size:A.value.per_page};M.value&&(e.keyword=M.value),N.value!==``&&(e.activity_type_dict_item_id=N.value),P.value!==``&&(e.progress_status=P.value),F.value!==``&&(e.published=F.value);let t=await ue(e);Le.value=t.items,A.value=t.meta}finally{D.value=!1}}function Ke(){j.value=1,Y()}function qe(){M.value=``,N.value=``,P.value=``,F.value=``,j.value=1,Y()}function Je(){B.value.push({title:``,starts_at:``,ends_at:``,venue:``,capacity:void 0})}function Ye(e){B.value.splice(e,1)}function Xe(){R.value=null,z.value={title:``,activity_type_dict_item_id:I.value[0]?.id,event_start_date:``,event_end_date:``,signup_start_date:``,signup_end_date:``,location:``,intro_html:``},B.value=[],L.value=!0}async function Ze(e){R.value=e;let t=await y(e.id);z.value={title:t.title,activity_type_dict_item_id:t.activity_type_dict_item_id??void 0,event_start_date:t.event_start_date||``,event_end_date:t.event_end_date||``,signup_start_date:t.signup_start_date||``,signup_end_date:t.signup_end_date||``,location:t.location||``,intro_html:t.intro_html||``},B.value=(await x(e.id)).map(e=>({id:e.id,title:e.title||``,starts_at:e.starts_at?e.starts_at.slice(0,16).replace(`T`,` `):``,ends_at:e.ends_at?e.ends_at.slice(0,16).replace(`T`,` `):``,venue:e.venue||``,capacity:e.capacity??void 0})),L.value=!0}function Qe(){return z.value.title?.trim()?z.value.activity_type_dict_item_id?!z.value.event_start_date||!z.value.event_end_date?(g.warning(`请填写活动日期`),!1):z.value.event_start_date>z.value.event_end_date?(g.warning(`活动结束日期不能早于开始日期`),!1):!z.value.signup_start_date||!z.value.signup_end_date?(g.warning(`请填写报名起止日期`),!1):z.value.signup_start_date>z.value.signup_end_date?(g.warning(`报名结束日期不能早于开始日期`),!1):!0:(g.warning(`请选择活动类型`),!1):(g.warning(`请填写活动名称`),!1)}function $e(e){return e.slice(0,10)}function et(e){let t=z.value.event_start_date,n=z.value.event_end_date;return!t||!n?!0:e.starts_at&&$e(e.starts_at)n?(g.warning(`场次「${e.title}」结束时间不能晚于活动结束日期`),!1):!0}function tt(e){let t=z.value.event_start_date,n=z.value.event_end_date;if(!t||!n)return!1;let r=`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`;return rn}function nt(){let e=B.value.filter(e=>e.title?.trim()||e.starts_at||e.ends_at||e.venue||e.capacity);for(let t of e){if(!t.title?.trim()||!t.starts_at||!t.ends_at||!(t.capacity&&t.capacity>0))return g.warning(`场次信息不完整:标题、开始时间、结束时间、名额均为必填,且名额须大于 0`),!1;if(t.starts_at>t.ends_at)return g.warning(`场次「${t.title}」结束时间不能早于开始时间`),!1;if(!et(t))return!1}return B.value.filter(e=>e.title?.trim()&&e.starts_at&&e.ends_at&&(e.capacity??0)>0).length?!0:(g.warning(`保存并发布前须至少添加一个完整场次(标题、开始/结束时间、名额均必填且名额大于 0)`),!1)}async function rt(e){let t=R.value?await x(e):[],n=new Set;for(let t of B.value){if(!t.title?.trim()||!t.starts_at||!t.ends_at||!(t.capacity&&t.capacity>0))continue;if(!et(t))throw Error(`session_range_invalid`);let r={title:t.title.trim(),starts_at:`${t.starts_at}:00`,ends_at:`${t.ends_at}:00`,venue:t.venue||null,capacity:t.capacity};if(t.id)await ce(e,t.id,r),n.add(t.id);else{let t=await le(e,r);n.add(t.id)}}for(let r of t)n.has(r.id)||await v(e,r.id)}async function it(e){if(!Qe()||e===1&&!nt())return;let t=B.value.filter(e=>e.title?.trim()||e.starts_at||e.ends_at||e.venue||e.capacity);for(let e of t)if((e.starts_at||e.ends_at)&&!et(e))return;let n={title:z.value.title.trim(),activity_type_dict_item_id:z.value.activity_type_dict_item_id,event_start_date:z.value.event_start_date,event_end_date:z.value.event_end_date,signup_start_date:z.value.signup_start_date,signup_end_date:z.value.signup_end_date,location:z.value.location||null,intro_html:z.value.intro_html||null,published:e};k.value=!0;try{let t;R.value?(await oe(R.value.id,n),t=R.value.id):t=(await S(n)).id,await rt(t),g.success(e===1?`已保存并发布`:`已暂存草稿`),L.value=!1,await Y()}catch(e){if(e instanceof Error&&e.message===`session_range_invalid`)return;throw e}finally{k.value=!1}}async function at(e){await h.confirm(`确定删除活动「${e.title}」?`,`提示`,{type:`warning`}),await se(e.id),g.success(`已删除`),await Y()}function X(e){if(!e)return`—`;let t=new Date(e);if(Number.isNaN(t.getTime()))return`—`;let n=e=>String(e).padStart(2,`0`);return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())} ${n(t.getHours())}:${n(t.getMinutes())}`}function Z(e){return e.title?e.title:e.starts_at?e.starts_at.slice(0,10).replace(/-/g,`.`):`场次 #${e.id}`}function ot(e){return e?.starts_at?new Date(e.starts_at)<=new Date:!0}let st=()=>H.value.find(e=>e.id===q.value),Q=()=>ot(st());async function $(){if(!V.value)return;let e={page:W.value,page_size:U.value.per_page};G.value.trim()&&(e.keyword=G.value.trim()),q.value!==``&&(e.activity_session_id=q.value),K.value!==``&&(e.checkin_status=K.value);let t=await T(V.value.id,e);ze.value=t.items,U.value=t.meta}async function ct(e){V.value=e,Re.value=!0,W.value=1,G.value=``,K.value=``,H.value=await x(e.id),q.value=H.value[0]?.id??``,await $()}async function lt(e){q.value=e,W.value=1,await $()}function ut(){W.value=1,$()}function dt(){G.value=``,K.value=``,W.value=1,$()}async function ft(e){V.value&&(await h.confirm(`确定删除该报名记录?`,`提示`,{type:`warning`}),await C(V.value.id,e.id),await $(),await Y())}async function pt(e){!V.value||q.value===``||(await w(V.value.id,e.id,{activity_session_id:q.value}),g.success(`已完成手动补签`),await $())}function mt(e){Ue.value=e,We.value=he(e),He.value=!0}async function ht(){if(V.value){J.value=!0,Be.value=!0,Ve.value=[];try{let e=V.value.id,t=await b(e);Ve.value=await Promise.all(H.value.map(async n=>{let r=await b(e,{activity_session_id:n.id}),i=ot(n)?r.filter(e=>e.session_checked_in_at).length:0,a=t.filter(e=>e.activity_session_id===n.id);return{session:n,signup_count:a.length,checked_in_count:i,signupRows:a,signinRows:r}}))}catch{g.error(`导出数据加载失败`)}finally{Be.value=!1}}}function gt(e){if(!V.value)return;let t=O(V.value.title||`活动`),n=O(Z(e.session)),r=ve(e.signupRows,X);_e(`${t}_${n}_报名.csv`,r)}function _t(e){if(!V.value)return;let t=O(V.value.title||`活动`),n=O(Z(e.session)),r=ye(e.signinRows,ot(e.session),X);_e(`${t}_${n}_签到.csv`,r)}return _(async()=>{await Ge(),await Y()}),(n,u)=>{let h=s(`el-button`),g=s(`el-input`),_=s(`el-option`),v=s(`el-select`),y=s(`el-table-column`),b=s(`el-table`),oe=s(`el-pagination`),se=s(`el-card`),x=s(`el-form-item`),S=s(`el-col`),C=s(`el-date-picker`),ce=s(`el-input-number`),le=s(`el-row`),ue=s(`el-form`),w=s(`el-dialog`),T=s(`el-tag`),E=ee(`loading`);return i(),e(d,null,[l(`div`,be,[l(`div`,xe,[u[25]||=l(`h1`,{class:`page-title`},`活动管理`,-1),r(h,{type:`primary`,size:`small`,class:`btn-create`,onClick:Xe},{default:c(()=>[...u[24]||=[o(`新建活动`,-1)]]),_:1})]),r(se,{shadow:`never`,class:`admin-list-card`},{default:c(()=>[l(`div`,Se,[r(g,{modelValue:M.value,"onUpdate:modelValue":u[0]||=e=>M.value=e,placeholder:`搜索活动名称`,clearable:``,class:`filter-search`,onKeyup:ne(Ke,[`enter`])},null,8,[`modelValue`]),r(v,{modelValue:N.value,"onUpdate:modelValue":u[1]||=e=>N.value=e,clearable:``,placeholder:`活动类型`,class:`filter-select`,filterable:``},{default:c(()=>[(i(!0),e(d,null,f(I.value,e=>(i(),m(_,{key:e.id,label:e.label,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`]),r(v,{modelValue:P.value,"onUpdate:modelValue":u[2]||=e=>P.value=e,clearable:``,placeholder:`活动状态`,class:`filter-select`},{default:c(()=>[r(_,{label:`未开始`,value:1}),r(_,{label:`进行中`,value:2}),r(_,{label:`已结束`,value:3})]),_:1},8,[`modelValue`]),r(v,{modelValue:F.value,"onUpdate:modelValue":u[3]||=e=>F.value=e,clearable:``,placeholder:`发布状态`,class:`filter-select`},{default:c(()=>[r(_,{label:`已发布`,value:1}),r(_,{label:`未发布`,value:0})]),_:1},8,[`modelValue`]),r(h,{type:`primary`,onClick:Ke},{default:c(()=>[...u[26]||=[o(`搜索`,-1)]]),_:1}),r(h,{onClick:qe},{default:c(()=>[...u[27]||=[o(`重置`,-1)]]),_:1})]),re((i(),m(b,{data:Le.value,"row-key":`id`},{default:c(()=>[r(y,{prop:`title`,label:`活动名称`,"min-width":`160`,"show-overflow-tooltip":``}),r(y,{label:`活动类型`,width:`100`},{default:c(({row:e})=>[o(p(e.activity_type_item?.label??`—`),1)]),_:1}),r(y,{label:`场次`,width:`72`,align:`center`},{default:c(({row:e})=>[o(p(e.sessions_count??0),1)]),_:1}),r(y,{label:`活动日期`,"min-width":`150`},{default:c(({row:e})=>[o(p(t(fe)(e.event_start_date,e.event_end_date)),1)]),_:1}),r(y,{label:`报名起止日期`,"min-width":`150`},{default:c(({row:e})=>[o(p(t(fe)(e.signup_start_date,e.signup_end_date)),1)]),_:1}),r(y,{prop:`location`,label:`活动地点`,"min-width":`120`,"show-overflow-tooltip":``}),r(y,{label:`活动状态`,width:`90`,align:`center`},{default:c(({row:e})=>[l(`span`,{class:te([`status-badge`,t(pe)(e.progress_status)])},p(t(de)(e.progress_status)),3)]),_:1}),r(y,{label:`发布状态`,width:`90`,align:`center`},{default:c(({row:e})=>[l(`span`,{class:te([`status-badge`,t(me)(e.published)])},p(e.published===1?`已发布`:`未发布`),3)]),_:1}),r(y,{label:`操作`,width:`280`,fixed:`right`},{default:c(({row:e})=>[l(`div`,Ce,[r(h,{class:`btn-action-brand`,onClick:t=>ct(e)},{default:c(()=>[...u[28]||=[o(`报名与签到`,-1)]]),_:1},8,[`onClick`]),r(h,{class:`btn-action-primary`,onClick:t=>mt(e)},{default:c(()=>[...u[29]||=[o(`签到码`,-1)]]),_:1},8,[`onClick`]),r(h,{class:`btn-action-secondary`,onClick:t=>Ze(e)},{default:c(()=>[...u[30]||=[o(`编辑`,-1)]]),_:1},8,[`onClick`]),r(h,{class:`btn-action-secondary`,onClick:t=>at(e)},{default:c(()=>[...u[31]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])])]),_:1})]),_:1},8,[`data`])),[[E,D.value]]),l(`div`,we,[r(oe,{"current-page":j.value,"onUpdate:currentPage":u[4]||=e=>j.value=e,layout:`total, prev, pager, next`,total:A.value.total,"page-size":A.value.per_page,onCurrentChange:Y},null,8,[`current-page`,`total`,`page-size`])])]),_:1})]),r(w,{modelValue:L.value,"onUpdate:modelValue":u[16]||=e=>L.value=e,title:R.value?`编辑活动`:`新建活动`,width:`1200px`,top:`4vh`,"destroy-on-close":``,class:`activity-dialog`},{footer:c(()=>[l(`div`,Ae,[r(h,{onClick:u[13]||=e=>L.value=!1},{default:c(()=>[...u[37]||=[o(`取消`,-1)]]),_:1}),r(h,{loading:k.value,onClick:u[14]||=e=>it(0)},{default:c(()=>[...u[38]||=[o(`暂存草稿`,-1)]]),_:1},8,[`loading`]),r(h,{type:`primary`,loading:k.value,onClick:u[15]||=e=>it(1)},{default:c(()=>[...u[39]||=[o(`保存并发布`,-1)]]),_:1},8,[`loading`])])]),default:c(()=>[r(ue,{"label-position":`top`,class:`activity-form`},{default:c(()=>[r(le,{gutter:16},{default:c(()=>[r(S,{span:8},{default:c(()=>[r(x,{label:`活动名称`,required:``},{default:c(()=>[r(g,{modelValue:z.value.title,"onUpdate:modelValue":u[5]||=e=>z.value.title=e,placeholder:`请输入活动名称`},null,8,[`modelValue`])]),_:1})]),_:1}),r(S,{span:8},{default:c(()=>[r(x,{label:`活动类型`,required:``},{default:c(()=>[r(v,{modelValue:z.value.activity_type_dict_item_id,"onUpdate:modelValue":u[6]||=e=>z.value.activity_type_dict_item_id=e,placeholder:`请选择`,filterable:``,style:{width:`100%`}},{default:c(()=>[(i(!0),e(d,null,f(I.value,e=>(i(),m(_,{key:e.id,label:e.label,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1})]),_:1}),r(S,{span:8},{default:c(()=>[r(x,{label:`活动日期`,required:``},{default:c(()=>[l(`div`,Te,[r(C,{modelValue:z.value.event_start_date,"onUpdate:modelValue":u[7]||=e=>z.value.event_start_date=e,type:`date`,"value-format":`YYYY-MM-DD`,placeholder:`开始`,style:{width:`100%`}},null,8,[`modelValue`]),u[32]||=l(`span`,{class:`range-sep`},`至`,-1),r(C,{modelValue:z.value.event_end_date,"onUpdate:modelValue":u[8]||=e=>z.value.event_end_date=e,type:`date`,"value-format":`YYYY-MM-DD`,placeholder:`结束`,style:{width:`100%`}},null,8,[`modelValue`])])]),_:1})]),_:1}),r(S,{span:8},{default:c(()=>[r(x,{label:`报名起止日期`,required:``},{default:c(()=>[l(`div`,Ee,[r(C,{modelValue:z.value.signup_start_date,"onUpdate:modelValue":u[9]||=e=>z.value.signup_start_date=e,type:`date`,"value-format":`YYYY-MM-DD`,placeholder:`开始`,style:{width:`100%`}},null,8,[`modelValue`]),u[33]||=l(`span`,{class:`range-sep`},`至`,-1),r(C,{modelValue:z.value.signup_end_date,"onUpdate:modelValue":u[10]||=e=>z.value.signup_end_date=e,type:`date`,"value-format":`YYYY-MM-DD`,placeholder:`结束`,style:{width:`100%`}},null,8,[`modelValue`])])]),_:1})]),_:1}),r(S,{span:8},{default:c(()=>[r(x,{label:`活动地点`},{default:c(()=>[r(g,{modelValue:z.value.location,"onUpdate:modelValue":u[11]||=e=>z.value.location=e,placeholder:`请输入活动地点`},null,8,[`modelValue`])]),_:1})]),_:1}),r(S,{span:24},{default:c(()=>[r(x,{class:`session-form-item`},{label:c(()=>[l(`div`,De,[u[35]||=l(`span`,null,`活动场次`,-1),r(h,{type:`primary`,size:`small`,class:`btn-create btn-label-action`,onClick:Je},{default:c(()=>[...u[34]||=[o(` 添加场次 `,-1)]]),_:1})])]),default:c(()=>[l(`div`,Oe,[(i(!0),e(d,null,f(B.value,(t,n)=>(i(),e(`div`,{key:n,class:`session-row`},[r(g,{modelValue:t.title,"onUpdate:modelValue":e=>t.title=e,placeholder:`场次标题,如:上午场`},null,8,[`modelValue`,`onUpdate:modelValue`]),r(C,{modelValue:t.starts_at,"onUpdate:modelValue":e=>t.starts_at=e,type:`datetime`,"value-format":`YYYY-MM-DD HH:mm`,format:`YYYY-MM-DD HH:mm`,placeholder:`开始时间`,"disabled-date":tt,style:{width:`100%`}},null,8,[`modelValue`,`onUpdate:modelValue`]),r(C,{modelValue:t.ends_at,"onUpdate:modelValue":e=>t.ends_at=e,type:`datetime`,"value-format":`YYYY-MM-DD HH:mm`,format:`YYYY-MM-DD HH:mm`,placeholder:`结束时间`,"disabled-date":tt,style:{width:`100%`}},null,8,[`modelValue`,`onUpdate:modelValue`]),r(g,{modelValue:t.venue,"onUpdate:modelValue":e=>t.venue=e,placeholder:`地点(可选)`},null,8,[`modelValue`,`onUpdate:modelValue`]),r(ce,{modelValue:t.capacity,"onUpdate:modelValue":e=>t.capacity=e,min:1,placeholder:`名额`,style:{width:`100%`}},null,8,[`modelValue`,`onUpdate:modelValue`]),r(h,{type:`danger`,plain:``,size:`small`,class:`session-row-delete`,onClick:e=>Ye(n)},{default:c(()=>[...u[36]||=[o(` 删除 `,-1)]]),_:1},8,[`onClick`])]))),128))])]),_:1})]),_:1}),r(S,{span:24},{default:c(()=>[r(x,{label:`活动简介`,class:`intro-form-item`},{default:c(()=>[l(`div`,ke,[r(t(ae),{content:z.value.intro_html,"onUpdate:content":u[12]||=e=>z.value.intro_html=e,"content-type":`html`,theme:`snow`,toolbar:ie},null,8,[`content`])])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`,`title`]),r(ge,{modelValue:He.value,"onUpdate:modelValue":u[17]||=e=>He.value=e,"course-name":Ue.value?.title||``,"signin-code":We.value},null,8,[`modelValue`,`course-name`,`signin-code`]),r(w,{modelValue:Re.value,"onUpdate:modelValue":u[21]||=e=>Re.value=e,title:`活动报名与签到:${V.value?.title||``}`,width:`960px`,top:`5vh`,class:`signup-dialog`},{default:c(()=>[l(`div`,je,[l(`div`,Me,[H.value.length?(i(),e(`div`,Ne,[(i(!0),e(d,null,f(H.value,e=>(i(),m(h,{key:e.id,size:`small`,type:q.value===e.id?`primary`:`default`,onClick:t=>lt(e.id)},{default:c(()=>[o(p(Z(e)),1)]),_:2},1032,[`type`,`onClick`]))),128))])):(i(),e(`div`,Pe,`暂无场次,请先在活动中添加场次`)),r(h,{disabled:!H.value.length,onClick:ht},{default:c(()=>[...u[40]||=[o(`导出`,-1)]]),_:1},8,[`disabled`])])]),l(`div`,Fe,[r(g,{modelValue:G.value,"onUpdate:modelValue":u[18]||=e=>G.value=e,clearable:``,placeholder:`搜索姓名、手机、公司…`,style:{width:`220px`},onKeyup:ne(ut,[`enter`])},null,8,[`modelValue`]),r(v,{modelValue:K.value,"onUpdate:modelValue":u[19]||=e=>K.value=e,clearable:``,placeholder:`签到状态`,style:{width:`120px`}},{default:c(()=>[r(_,{label:`已签到`,value:1}),r(_,{label:`未签到`,value:0})]),_:1},8,[`modelValue`]),r(h,{type:`primary`,onClick:ut},{default:c(()=>[...u[41]||=[o(`搜索`,-1)]]),_:1}),r(h,{onClick:dt},{default:c(()=>[...u[42]||=[o(`重置`,-1)]]),_:1})]),r(b,{data:ze.value,size:`small`,style:{"margin-top":`12px`}},{default:c(()=>[r(y,{prop:`name`,label:`姓名`,width:`100`}),r(y,{prop:`mobile`,label:`手机`,width:`130`}),r(y,{prop:`company`,label:`公司`,"min-width":`120`,"show-overflow-tooltip":``}),r(y,{label:`报名时间`,width:`170`},{default:c(({row:e})=>[o(p(X(e.signed_up_at)),1)]),_:1}),r(y,{label:`签到状态`,width:`100`},{default:c(({row:t})=>[Q()?(i(),e(d,{key:0},[t.session_checked_in_at?(i(),m(T,{key:0,type:`success`,size:`small`},{default:c(()=>[...u[43]||=[o(`已签到`,-1)]]),_:1})):(i(),m(T,{key:1,type:`info`,size:`small`},{default:c(()=>[...u[44]||=[o(`未签到`,-1)]]),_:1}))],64)):a(``,!0)]),_:1}),r(y,{label:`签到时间`,width:`170`},{default:c(({row:e})=>[o(p(Q()?X(e.session_checked_in_at):``),1)]),_:1}),r(y,{label:`操作`,width:`120`,fixed:`right`},{default:c(({row:e})=>[Q()&&!e.session_checked_in_at?(i(),m(h,{key:0,type:`primary`,link:``,onClick:t=>pt(e)},{default:c(()=>[...u[45]||=[o(` 手动补签 `,-1)]]),_:1},8,[`onClick`])):Q()&&e.session_checked_in_at?(i(),m(h,{key:1,type:`info`,link:``,disabled:``},{default:c(()=>[...u[46]||=[o(` 已完成 `,-1)]]),_:1})):a(``,!0),r(h,{type:`danger`,link:``,onClick:t=>ft(e)},{default:c(()=>[...u[47]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`]),l(`div`,Ie,[r(oe,{"current-page":W.value,"onUpdate:currentPage":u[20]||=e=>W.value=e,layout:`total, prev, pager, next`,total:U.value.total,"page-size":U.value.per_page,onCurrentChange:$},null,8,[`current-page`,`total`,`page-size`])])]),_:1},8,[`modelValue`,`title`]),r(w,{modelValue:J.value,"onUpdate:modelValue":u[23]||=e=>J.value=e,title:`${V.value?.title||``}报名表导出`,width:`720px`,"append-to-body":``},{footer:c(()=>[r(h,{onClick:u[22]||=e=>J.value=!1},{default:c(()=>[...u[50]||=[o(`关闭`,-1)]]),_:1})]),default:c(()=>[re((i(),m(b,{data:Ve.value,size:`small`},{default:c(()=>[r(y,{label:`场次`,"min-width":`140`},{default:c(({row:e})=>[o(p(Z(e.session)),1)]),_:1}),r(y,{prop:`signup_count`,label:`报名人数`,width:`100`}),r(y,{prop:`checked_in_count`,label:`已签到`,width:`90`}),r(y,{label:`报名导出`,width:`100`},{default:c(({row:e})=>[r(h,{type:`primary`,link:``,onClick:t=>gt(e)},{default:c(()=>[...u[48]||=[o(`导出报名`,-1)]]),_:1},8,[`onClick`])]),_:1}),r(y,{label:`签到导出`,width:`100`},{default:c(({row:e})=>[r(h,{type:`primary`,link:``,onClick:t=>_t(e)},{default:c(()=>[...u[49]||=[o(`导出签到`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[E,Be.value]])]),_:1},8,[`modelValue`,`title`])],64)}}}),[[`__scopeId`,`data-v-1730cf79`]]);export{k as default}; \ No newline at end of file diff --git a/public/admin/assets/activities-DQDZWwo7.js b/public/admin/assets/activities-DQDZWwo7.js new file mode 100644 index 0000000..1f5e8a6 --- /dev/null +++ b/public/admin/assets/activities-DQDZWwo7.js @@ -0,0 +1 @@ +import{C as e,Ct as t,D as n,E as r,G as i,S as a,T as o,X as ee,Xt as te,Y as s,at as c,b as l,d as ne,ht as u,m as d,ot as re,q as f,tn as p,x as m}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{c as h,l as g,s as _}from"./index-spAvC8uC.js";import{t as ie}from"./RichTextEditor-DmYY0g1b.js";import{t as v}from"./usePageLoad-DFTLo_Lv.js";import{a as y,c as b,d as x,f as ae,i as oe,l as S,n as C,o as w,p as se,r as ce,s as le,t as T,u as ue}from"./activities-C0hIH4qz.js";import{a as de,i as fe,o as pe,s as me}from"./admin-list-CBoToEFo.js";import{a as E}from"./dict-BUAS3PXv.js";import{a as he,i as ge,n as D,r as O,t as _e}from"./csv-export-DNdEwjVR.js";function ve(e,t){return D([`姓名`,`手机`,`公司`,`报名时间`],e.map(e=>[e.name,e.mobile,e.company??`—`,t(e.signed_up_at)]))}function ye(e,t,n){return D([`姓名`,`手机`,`公司`,`签到状态`,`签到时间`],e.map(e=>[e.name,e.mobile,e.company??`—`,t?e.session_checked_in_at?`已签到`:`未签到`:``,t?n(e.session_checked_in_at):``]))}var be={class:`list-page`},xe={class:`page-header`},Se={class:`list-filter-bar`},Ce={class:`table-row-actions`},we={class:`list-pager`},Te={class:`date-range`},Ee={class:`date-range`},De={class:`session-label-row`},Oe={class:`sessions-block`},ke={class:`dialog-footer-inner`},Ae={class:`signup-head`},je={class:`signup-head-row`},Me={key:0,class:`session-tabs`},Ne={key:1,class:`text-mute`},Pe={class:`sub-toolbar signup-filter-bar`},Fe={class:`list-pager`},k=_(n({__name:`index`,setup(n){let _=u(!1),D=u(!1),k=u([]),A=u({current_page:1,per_page:20,total:0}),j=u(1),M=u(``),N=u(``),P=u(``),F=u(``),I=u([]),L=u(!1),R=u(null),z=u({title:``,activity_type_dict_item_id:void 0,event_start_date:``,event_end_date:``,signup_start_date:``,signup_end_date:``,location:``,intro_html:``}),B=u([]),Ie=u(!1),V=u(null),H=u([]),Le=u([]),U=u({current_page:1,per_page:20,total:0}),W=u(1),G=u(``),K=u(``),q=u(``),J=u(!1),Re=u(!1),ze=u([]),Be=u(!1),Ve=u(null),He=u(``);async function Ue(){try{I.value=(await E(`activity_type`)).items}catch{g.warning(`活动类型字典加载失败,请执行 ActivityDictionarySeeder 或在字典中维护 activity_type`)}}async function Y(){_.value=!0;try{let e={page:j.value,page_size:A.value.per_page};M.value&&(e.keyword=M.value),N.value!==``&&(e.activity_type_dict_item_id=N.value),P.value!==``&&(e.progress_status=P.value),F.value!==``&&(e.published=F.value);let t=await le(e);k.value=t.items,A.value=t.meta}finally{_.value=!1}}function We(){j.value=1,Y()}function Ge(){M.value=``,N.value=``,P.value=``,F.value=``,j.value=1,Y()}function Ke(){B.value.push({title:``,starts_at:``,ends_at:``,venue:``,capacity:void 0})}function qe(e){B.value.splice(e,1)}function Je(){R.value=null,z.value={title:``,activity_type_dict_item_id:I.value[0]?.id,event_start_date:``,event_end_date:``,signup_start_date:``,signup_end_date:``,location:``,intro_html:``},B.value=[],L.value=!0}async function Ye(e){R.value=e;let t=await b(e.id);z.value={title:t.title,activity_type_dict_item_id:t.activity_type_dict_item_id??void 0,event_start_date:t.event_start_date||``,event_end_date:t.event_end_date||``,signup_start_date:t.signup_start_date||``,signup_end_date:t.signup_end_date||``,location:t.location||``,intro_html:t.intro_html||``},B.value=(await S(e.id)).map(e=>({id:e.id,title:e.title||``,starts_at:e.starts_at?e.starts_at.slice(0,16).replace(`T`,` `):``,ends_at:e.ends_at?e.ends_at.slice(0,16).replace(`T`,` `):``,venue:e.venue||``,capacity:e.capacity??void 0})),L.value=!0}function Xe(){return z.value.title?.trim()?z.value.activity_type_dict_item_id?!z.value.event_start_date||!z.value.event_end_date?(g.warning(`请填写活动日期`),!1):z.value.event_start_date>z.value.event_end_date?(g.warning(`活动结束日期不能早于开始日期`),!1):!z.value.signup_start_date||!z.value.signup_end_date?(g.warning(`请填写报名起止日期`),!1):z.value.signup_start_date>z.value.signup_end_date?(g.warning(`报名结束日期不能早于开始日期`),!1):!0:(g.warning(`请选择活动类型`),!1):(g.warning(`请填写活动名称`),!1)}function Ze(e){return e.slice(0,10)}function Qe(e){let t=z.value.event_start_date,n=z.value.event_end_date;return!t||!n?!0:e.starts_at&&Ze(e.starts_at)n?(g.warning(`场次「${e.title}」结束时间不能晚于活动结束日期`),!1):!0}function $e(e){let t=z.value.event_start_date,n=z.value.event_end_date;if(!t||!n)return!1;let r=`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`;return rn}function et(){let e=B.value.filter(e=>e.title?.trim()||e.starts_at||e.ends_at||e.venue||e.capacity);for(let t of e){if(!t.title?.trim()||!t.starts_at||!t.ends_at||!(t.capacity&&t.capacity>0))return g.warning(`场次信息不完整:标题、开始时间、结束时间、名额均为必填,且名额须大于 0`),!1;if(t.starts_at>t.ends_at)return g.warning(`场次「${t.title}」结束时间不能早于开始时间`),!1;if(!Qe(t))return!1}return B.value.filter(e=>e.title?.trim()&&e.starts_at&&e.ends_at&&(e.capacity??0)>0).length?!0:(g.warning(`保存并发布前须至少添加一个完整场次(标题、开始/结束时间、名额均必填且名额大于 0)`),!1)}async function tt(e){let t=R.value?await S(e):[],n=new Set;for(let t of B.value){if(!t.title?.trim()||!t.starts_at||!t.ends_at||!(t.capacity&&t.capacity>0))continue;if(!Qe(t))throw Error(`session_range_invalid`);let r={title:t.title.trim(),starts_at:`${t.starts_at}:00`,ends_at:`${t.ends_at}:00`,venue:t.venue||null,capacity:t.capacity};if(t.id)await se(e,t.id,r),n.add(t.id);else{let t=await ce(e,r);n.add(t.id)}}for(let r of t)n.has(r.id)||await y(e,r.id)}async function nt(e){if(!Xe()||e===1&&!et())return;let t=B.value.filter(e=>e.title?.trim()||e.starts_at||e.ends_at||e.venue||e.capacity);for(let e of t)if((e.starts_at||e.ends_at)&&!Qe(e))return;let n={title:z.value.title.trim(),activity_type_dict_item_id:z.value.activity_type_dict_item_id,event_start_date:z.value.event_start_date,event_end_date:z.value.event_end_date,signup_start_date:z.value.signup_start_date,signup_end_date:z.value.signup_end_date,location:z.value.location||null,intro_html:z.value.intro_html||null,published:e};D.value=!0;try{let t;R.value?(await ae(R.value.id,n),t=R.value.id):t=(await C(n)).id,await tt(t),g.success(e===1?`已保存并发布`:`已暂存草稿`),L.value=!1,await Y()}catch(e){if(e instanceof Error&&e.message===`session_range_invalid`)return;throw e}finally{D.value=!1}}async function rt(e){await h.confirm(`确定删除活动「${e.title}」?`,`提示`,{type:`warning`}),await oe(e.id),g.success(`已删除`),await Y()}function X(e){if(!e)return`—`;let t=new Date(e);if(Number.isNaN(t.getTime()))return`—`;let n=e=>String(e).padStart(2,`0`);return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())} ${n(t.getHours())}:${n(t.getMinutes())}`}function Z(e){return e.title?e.title:e.starts_at?e.starts_at.slice(0,10).replace(/-/g,`.`):`场次 #${e.id}`}function it(e){return e?.starts_at?new Date(e.starts_at)<=new Date:!0}let at=()=>H.value.find(e=>e.id===q.value),Q=()=>it(at());async function $(){if(!V.value)return;let e={page:W.value,page_size:U.value.per_page};G.value.trim()&&(e.keyword=G.value.trim()),q.value!==``&&(e.activity_session_id=q.value),K.value!==``&&(e.checkin_status=K.value);let t=await ue(V.value.id,e);Le.value=t.items,U.value=t.meta}async function ot(e){V.value=e,Ie.value=!0,W.value=1,G.value=``,K.value=``,H.value=await S(e.id),q.value=H.value[0]?.id??``,await $()}async function st(e){q.value=e,W.value=1,await $()}function ct(){W.value=1,$()}function lt(){G.value=``,K.value=``,W.value=1,$()}async function ut(e){V.value&&(await h.confirm(`确定删除该报名记录?`,`提示`,{type:`warning`}),await w(V.value.id,e.id),await $(),await Y())}async function dt(e){!V.value||q.value===``||(await T(V.value.id,e.id,{activity_session_id:q.value}),g.success(`已完成手动补签`),await $())}function ft(e){Ve.value=e,He.value=he(e),Be.value=!0}async function pt(){if(V.value){J.value=!0,Re.value=!0,ze.value=[];try{let e=V.value.id,t=await x(e);ze.value=await Promise.all(H.value.map(async n=>{let r=await x(e,{activity_session_id:n.id}),i=it(n)?r.filter(e=>e.session_checked_in_at).length:0,a=t.filter(e=>e.activity_session_id===n.id);return{session:n,signup_count:a.length,checked_in_count:i,signupRows:a,signinRows:r}}))}catch{g.error(`导出数据加载失败`)}finally{Re.value=!1}}}function mt(e){if(!V.value)return;let t=O(V.value.title||`活动`),n=O(Z(e.session)),r=ve(e.signupRows,X);_e(`${t}_${n}_报名.csv`,r)}function ht(e){if(!V.value)return;let t=O(V.value.title||`活动`),n=O(Z(e.session)),r=ye(e.signinRows,it(e.session),X);_e(`${t}_${n}_签到.csv`,r)}return v(async()=>{await Ue(),await Y()}),(n,u)=>{let h=s(`el-button`),g=s(`el-input`),v=s(`el-option`),y=s(`el-select`),b=s(`el-table-column`),x=s(`el-table`),ae=s(`el-pagination`),oe=s(`el-card`),S=s(`el-form-item`),C=s(`el-col`),w=s(`el-date-picker`),se=s(`el-input-number`),ce=s(`el-row`),le=s(`el-form`),T=s(`el-dialog`),ue=s(`el-tag`),E=ee(`loading`);return i(),e(d,null,[l(`div`,be,[l(`div`,xe,[u[25]||=l(`h1`,{class:`page-title`},`活动管理`,-1),r(h,{type:`primary`,size:`small`,class:`btn-create`,onClick:Je},{default:c(()=>[...u[24]||=[o(`新建活动`,-1)]]),_:1})]),r(oe,{shadow:`never`,class:`admin-list-card`},{default:c(()=>[l(`div`,Se,[r(g,{modelValue:M.value,"onUpdate:modelValue":u[0]||=e=>M.value=e,placeholder:`搜索活动名称`,clearable:``,class:`filter-search`,onKeyup:ne(We,[`enter`])},null,8,[`modelValue`]),r(y,{modelValue:N.value,"onUpdate:modelValue":u[1]||=e=>N.value=e,clearable:``,placeholder:`活动类型`,class:`filter-select`,filterable:``},{default:c(()=>[(i(!0),e(d,null,f(I.value,e=>(i(),m(v,{key:e.id,label:e.label,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`]),r(y,{modelValue:P.value,"onUpdate:modelValue":u[2]||=e=>P.value=e,clearable:``,placeholder:`活动状态`,class:`filter-select`},{default:c(()=>[r(v,{label:`未开始`,value:1}),r(v,{label:`进行中`,value:2}),r(v,{label:`已结束`,value:3})]),_:1},8,[`modelValue`]),r(y,{modelValue:F.value,"onUpdate:modelValue":u[3]||=e=>F.value=e,clearable:``,placeholder:`发布状态`,class:`filter-select`},{default:c(()=>[r(v,{label:`已发布`,value:1}),r(v,{label:`未发布`,value:0})]),_:1},8,[`modelValue`]),r(h,{type:`primary`,onClick:We},{default:c(()=>[...u[26]||=[o(`搜索`,-1)]]),_:1}),r(h,{onClick:Ge},{default:c(()=>[...u[27]||=[o(`重置`,-1)]]),_:1})]),re((i(),m(x,{data:k.value,"row-key":`id`},{default:c(()=>[r(b,{prop:`title`,label:`活动名称`,"min-width":`160`,"show-overflow-tooltip":``}),r(b,{label:`活动类型`,width:`100`},{default:c(({row:e})=>[o(p(e.activity_type_item?.label??`—`),1)]),_:1}),r(b,{label:`场次`,width:`72`,align:`center`},{default:c(({row:e})=>[o(p(e.sessions_count??0),1)]),_:1}),r(b,{label:`活动日期`,"min-width":`150`},{default:c(({row:e})=>[o(p(t(fe)(e.event_start_date,e.event_end_date)),1)]),_:1}),r(b,{label:`报名起止日期`,"min-width":`150`},{default:c(({row:e})=>[o(p(t(fe)(e.signup_start_date,e.signup_end_date)),1)]),_:1}),r(b,{prop:`location`,label:`活动地点`,"min-width":`120`,"show-overflow-tooltip":``}),r(b,{label:`活动状态`,width:`90`,align:`center`},{default:c(({row:e})=>[l(`span`,{class:te([`status-badge`,t(pe)(e.progress_status)])},p(t(de)(e.progress_status)),3)]),_:1}),r(b,{label:`发布状态`,width:`90`,align:`center`},{default:c(({row:e})=>[l(`span`,{class:te([`status-badge`,t(me)(e.published)])},p(e.published===1?`已发布`:`未发布`),3)]),_:1}),r(b,{label:`操作`,width:`280`,fixed:`right`},{default:c(({row:e})=>[l(`div`,Ce,[r(h,{class:`btn-action-brand`,onClick:t=>ot(e)},{default:c(()=>[...u[28]||=[o(`报名与签到`,-1)]]),_:1},8,[`onClick`]),r(h,{class:`btn-action-primary`,onClick:t=>ft(e)},{default:c(()=>[...u[29]||=[o(`签到码`,-1)]]),_:1},8,[`onClick`]),r(h,{class:`btn-action-secondary`,onClick:t=>Ye(e)},{default:c(()=>[...u[30]||=[o(`编辑`,-1)]]),_:1},8,[`onClick`]),r(h,{class:`btn-action-secondary`,onClick:t=>rt(e)},{default:c(()=>[...u[31]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])])]),_:1})]),_:1},8,[`data`])),[[E,_.value]]),l(`div`,we,[r(ae,{"current-page":j.value,"onUpdate:currentPage":u[4]||=e=>j.value=e,layout:`total, prev, pager, next`,total:A.value.total,"page-size":A.value.per_page,onCurrentChange:Y},null,8,[`current-page`,`total`,`page-size`])])]),_:1})]),r(T,{modelValue:L.value,"onUpdate:modelValue":u[16]||=e=>L.value=e,title:R.value?`编辑活动`:`新建活动`,width:`1200px`,top:`4vh`,"destroy-on-close":``,class:`activity-dialog`},{footer:c(()=>[l(`div`,ke,[r(h,{onClick:u[13]||=e=>L.value=!1},{default:c(()=>[...u[37]||=[o(`取消`,-1)]]),_:1}),r(h,{loading:D.value,onClick:u[14]||=e=>nt(0)},{default:c(()=>[...u[38]||=[o(`暂存草稿`,-1)]]),_:1},8,[`loading`]),r(h,{type:`primary`,loading:D.value,onClick:u[15]||=e=>nt(1)},{default:c(()=>[...u[39]||=[o(`保存并发布`,-1)]]),_:1},8,[`loading`])])]),default:c(()=>[r(le,{"label-position":`top`,class:`activity-form`},{default:c(()=>[r(ce,{gutter:16},{default:c(()=>[r(C,{span:8},{default:c(()=>[r(S,{label:`活动名称`,required:``},{default:c(()=>[r(g,{modelValue:z.value.title,"onUpdate:modelValue":u[5]||=e=>z.value.title=e,placeholder:`请输入活动名称`},null,8,[`modelValue`])]),_:1})]),_:1}),r(C,{span:8},{default:c(()=>[r(S,{label:`活动类型`,required:``},{default:c(()=>[r(y,{modelValue:z.value.activity_type_dict_item_id,"onUpdate:modelValue":u[6]||=e=>z.value.activity_type_dict_item_id=e,placeholder:`请选择`,filterable:``,style:{width:`100%`}},{default:c(()=>[(i(!0),e(d,null,f(I.value,e=>(i(),m(v,{key:e.id,label:e.label,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1})]),_:1}),r(C,{span:8},{default:c(()=>[r(S,{label:`活动日期`,required:``},{default:c(()=>[l(`div`,Te,[r(w,{modelValue:z.value.event_start_date,"onUpdate:modelValue":u[7]||=e=>z.value.event_start_date=e,type:`date`,"value-format":`YYYY-MM-DD`,placeholder:`开始`,style:{width:`100%`}},null,8,[`modelValue`]),u[32]||=l(`span`,{class:`range-sep`},`至`,-1),r(w,{modelValue:z.value.event_end_date,"onUpdate:modelValue":u[8]||=e=>z.value.event_end_date=e,type:`date`,"value-format":`YYYY-MM-DD`,placeholder:`结束`,style:{width:`100%`}},null,8,[`modelValue`])])]),_:1})]),_:1}),r(C,{span:8},{default:c(()=>[r(S,{label:`报名起止日期`,required:``},{default:c(()=>[l(`div`,Ee,[r(w,{modelValue:z.value.signup_start_date,"onUpdate:modelValue":u[9]||=e=>z.value.signup_start_date=e,type:`date`,"value-format":`YYYY-MM-DD`,placeholder:`开始`,style:{width:`100%`}},null,8,[`modelValue`]),u[33]||=l(`span`,{class:`range-sep`},`至`,-1),r(w,{modelValue:z.value.signup_end_date,"onUpdate:modelValue":u[10]||=e=>z.value.signup_end_date=e,type:`date`,"value-format":`YYYY-MM-DD`,placeholder:`结束`,style:{width:`100%`}},null,8,[`modelValue`])])]),_:1})]),_:1}),r(C,{span:8},{default:c(()=>[r(S,{label:`活动地点`},{default:c(()=>[r(g,{modelValue:z.value.location,"onUpdate:modelValue":u[11]||=e=>z.value.location=e,placeholder:`请输入活动地点`},null,8,[`modelValue`])]),_:1})]),_:1}),r(C,{span:24},{default:c(()=>[r(S,{class:`session-form-item`},{label:c(()=>[l(`div`,De,[u[35]||=l(`span`,null,`活动场次`,-1),r(h,{type:`primary`,size:`small`,class:`btn-create btn-label-action`,onClick:Ke},{default:c(()=>[...u[34]||=[o(` 添加场次 `,-1)]]),_:1})])]),default:c(()=>[l(`div`,Oe,[(i(!0),e(d,null,f(B.value,(t,n)=>(i(),e(`div`,{key:n,class:`session-row`},[r(g,{modelValue:t.title,"onUpdate:modelValue":e=>t.title=e,placeholder:`场次标题,如:上午场`},null,8,[`modelValue`,`onUpdate:modelValue`]),r(w,{modelValue:t.starts_at,"onUpdate:modelValue":e=>t.starts_at=e,type:`datetime`,"value-format":`YYYY-MM-DD HH:mm`,format:`YYYY-MM-DD HH:mm`,placeholder:`开始时间`,"disabled-date":$e,style:{width:`100%`}},null,8,[`modelValue`,`onUpdate:modelValue`]),r(w,{modelValue:t.ends_at,"onUpdate:modelValue":e=>t.ends_at=e,type:`datetime`,"value-format":`YYYY-MM-DD HH:mm`,format:`YYYY-MM-DD HH:mm`,placeholder:`结束时间`,"disabled-date":$e,style:{width:`100%`}},null,8,[`modelValue`,`onUpdate:modelValue`]),r(g,{modelValue:t.venue,"onUpdate:modelValue":e=>t.venue=e,placeholder:`地点(可选)`},null,8,[`modelValue`,`onUpdate:modelValue`]),r(se,{modelValue:t.capacity,"onUpdate:modelValue":e=>t.capacity=e,min:1,placeholder:`名额`,style:{width:`100%`}},null,8,[`modelValue`,`onUpdate:modelValue`]),r(h,{type:`danger`,plain:``,size:`small`,class:`session-row-delete`,onClick:e=>qe(n)},{default:c(()=>[...u[36]||=[o(` 删除 `,-1)]]),_:1},8,[`onClick`])]))),128))])]),_:1})]),_:1}),r(C,{span:24},{default:c(()=>[r(S,{label:`活动简介`,class:`intro-form-item`},{default:c(()=>[r(ie,{modelValue:z.value.intro_html,"onUpdate:modelValue":u[12]||=e=>z.value.intro_html=e,scope:`activities`,height:260},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`,`title`]),r(ge,{modelValue:Be.value,"onUpdate:modelValue":u[17]||=e=>Be.value=e,"course-name":Ve.value?.title||``,"signin-code":He.value},null,8,[`modelValue`,`course-name`,`signin-code`]),r(T,{modelValue:Ie.value,"onUpdate:modelValue":u[21]||=e=>Ie.value=e,title:`活动报名与签到:${V.value?.title||``}`,width:`960px`,top:`5vh`,class:`signup-dialog`},{default:c(()=>[l(`div`,Ae,[l(`div`,je,[H.value.length?(i(),e(`div`,Me,[(i(!0),e(d,null,f(H.value,e=>(i(),m(h,{key:e.id,size:`small`,type:q.value===e.id?`primary`:`default`,onClick:t=>st(e.id)},{default:c(()=>[o(p(Z(e)),1)]),_:2},1032,[`type`,`onClick`]))),128))])):(i(),e(`div`,Ne,`暂无场次,请先在活动中添加场次`)),r(h,{disabled:!H.value.length,onClick:pt},{default:c(()=>[...u[40]||=[o(`导出`,-1)]]),_:1},8,[`disabled`])])]),l(`div`,Pe,[r(g,{modelValue:G.value,"onUpdate:modelValue":u[18]||=e=>G.value=e,clearable:``,placeholder:`搜索姓名、手机、公司…`,style:{width:`220px`},onKeyup:ne(ct,[`enter`])},null,8,[`modelValue`]),r(y,{modelValue:K.value,"onUpdate:modelValue":u[19]||=e=>K.value=e,clearable:``,placeholder:`签到状态`,style:{width:`120px`}},{default:c(()=>[r(v,{label:`已签到`,value:1}),r(v,{label:`未签到`,value:0})]),_:1},8,[`modelValue`]),r(h,{type:`primary`,onClick:ct},{default:c(()=>[...u[41]||=[o(`搜索`,-1)]]),_:1}),r(h,{onClick:lt},{default:c(()=>[...u[42]||=[o(`重置`,-1)]]),_:1})]),r(x,{data:Le.value,size:`small`,style:{"margin-top":`12px`}},{default:c(()=>[r(b,{prop:`name`,label:`姓名`,width:`100`}),r(b,{prop:`mobile`,label:`手机`,width:`130`}),r(b,{prop:`company`,label:`公司`,"min-width":`120`,"show-overflow-tooltip":``}),r(b,{label:`报名时间`,width:`170`},{default:c(({row:e})=>[o(p(X(e.signed_up_at)),1)]),_:1}),r(b,{label:`签到状态`,width:`100`},{default:c(({row:t})=>[Q()?(i(),e(d,{key:0},[t.session_checked_in_at?(i(),m(ue,{key:0,type:`success`,size:`small`},{default:c(()=>[...u[43]||=[o(`已签到`,-1)]]),_:1})):(i(),m(ue,{key:1,type:`info`,size:`small`},{default:c(()=>[...u[44]||=[o(`未签到`,-1)]]),_:1}))],64)):a(``,!0)]),_:1}),r(b,{label:`签到时间`,width:`170`},{default:c(({row:e})=>[o(p(Q()?X(e.session_checked_in_at):``),1)]),_:1}),r(b,{label:`操作`,width:`120`,fixed:`right`},{default:c(({row:e})=>[Q()&&!e.session_checked_in_at?(i(),m(h,{key:0,type:`primary`,link:``,onClick:t=>dt(e)},{default:c(()=>[...u[45]||=[o(` 手动补签 `,-1)]]),_:1},8,[`onClick`])):Q()&&e.session_checked_in_at?(i(),m(h,{key:1,type:`info`,link:``,disabled:``},{default:c(()=>[...u[46]||=[o(` 已完成 `,-1)]]),_:1})):a(``,!0),r(h,{type:`danger`,link:``,onClick:t=>ut(e)},{default:c(()=>[...u[47]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`]),l(`div`,Fe,[r(ae,{"current-page":W.value,"onUpdate:currentPage":u[20]||=e=>W.value=e,layout:`total, prev, pager, next`,total:U.value.total,"page-size":U.value.per_page,onCurrentChange:$},null,8,[`current-page`,`total`,`page-size`])])]),_:1},8,[`modelValue`,`title`]),r(T,{modelValue:J.value,"onUpdate:modelValue":u[23]||=e=>J.value=e,title:`${V.value?.title||``}报名表导出`,width:`720px`,"append-to-body":``},{footer:c(()=>[r(h,{onClick:u[22]||=e=>J.value=!1},{default:c(()=>[...u[50]||=[o(`关闭`,-1)]]),_:1})]),default:c(()=>[re((i(),m(x,{data:ze.value,size:`small`},{default:c(()=>[r(b,{label:`场次`,"min-width":`140`},{default:c(({row:e})=>[o(p(Z(e.session)),1)]),_:1}),r(b,{prop:`signup_count`,label:`报名人数`,width:`100`}),r(b,{prop:`checked_in_count`,label:`已签到`,width:`90`}),r(b,{label:`报名导出`,width:`100`},{default:c(({row:e})=>[r(h,{type:`primary`,link:``,onClick:t=>mt(e)},{default:c(()=>[...u[48]||=[o(`导出报名`,-1)]]),_:1},8,[`onClick`])]),_:1}),r(b,{label:`签到导出`,width:`100`},{default:c(({row:e})=>[r(h,{type:`primary`,link:``,onClick:t=>ht(e)},{default:c(()=>[...u[49]||=[o(`导出签到`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[E,Re.value]])]),_:1},8,[`modelValue`,`title`])],64)}}}),[[`__scopeId`,`data-v-f773acf8`]]);export{k as default}; \ No newline at end of file diff --git a/public/admin/assets/activities-DrhGy18S.css b/public/admin/assets/activities-DrhGy18S.css new file mode 100644 index 0000000..78b16bc --- /dev/null +++ b/public/admin/assets/activities-DrhGy18S.css @@ -0,0 +1 @@ +.date-range[data-v-f773acf8]{align-items:center;gap:6px;width:100%;display:flex}.range-sep[data-v-f773acf8]{color:var(--el-text-color-secondary);flex-shrink:0;font-size:12px}.sessions-block[data-v-f773acf8]{flex-direction:column;gap:8px;width:100%;display:flex}.session-label-row[data-v-f773acf8]{align-items:center;display:inline-flex}.btn-label-action[data-v-f773acf8]{margin-left:12px}.session-form-item[data-v-f773acf8] .el-form-item__content{width:100%}.session-row[data-v-f773acf8]{grid-template-columns:minmax(120px,1.2fr) minmax(160px,1.4fr) minmax(160px,1.4fr) minmax(120px,1fr) minmax(90px,.8fr) auto;align-items:center;gap:8px;width:100%;display:grid}.session-row[data-v-f773acf8] .el-input,.session-row[data-v-f773acf8] .el-date-editor{width:100%;min-width:0}.session-row-delete[data-v-f773acf8]{justify-self:end}.intro-form-item[data-v-f773acf8],.intro-form-item[data-v-f773acf8] .el-form-item__content{width:100%}.dialog-footer-inner[data-v-f773acf8]{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.signup-head[data-v-f773acf8]{margin-bottom:12px}.signup-head-row[data-v-f773acf8]{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.session-tabs[data-v-f773acf8]{flex-wrap:wrap;flex:1;gap:8px;display:flex}.signup-filter-bar[data-v-f773acf8]{margin-top:8px}.sub-toolbar[data-v-f773acf8]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.text-mute[data-v-f773acf8]{color:var(--el-text-color-placeholder);font-size:13px} diff --git a/public/admin/assets/activities-Du7l0eDi.css b/public/admin/assets/activities-Du7l0eDi.css deleted file mode 100644 index 2196c27..0000000 --- a/public/admin/assets/activities-Du7l0eDi.css +++ /dev/null @@ -1 +0,0 @@ -.date-range[data-v-1730cf79]{align-items:center;gap:6px;width:100%;display:flex}.range-sep[data-v-1730cf79]{color:var(--el-text-color-secondary);flex-shrink:0;font-size:12px}.sessions-block[data-v-1730cf79]{flex-direction:column;gap:8px;width:100%;display:flex}.session-label-row[data-v-1730cf79]{align-items:center;display:inline-flex}.btn-label-action[data-v-1730cf79]{margin-left:12px}.session-form-item[data-v-1730cf79] .el-form-item__content{width:100%}.session-row[data-v-1730cf79]{grid-template-columns:minmax(120px,1.2fr) minmax(160px,1.4fr) minmax(160px,1.4fr) minmax(120px,1fr) minmax(90px,.8fr) auto;align-items:center;gap:8px;width:100%;display:grid}.session-row[data-v-1730cf79] .el-input,.session-row[data-v-1730cf79] .el-date-editor{width:100%;min-width:0}.session-row-delete[data-v-1730cf79]{justify-self:end}.intro-form-item[data-v-1730cf79],.intro-form-item[data-v-1730cf79] .el-form-item__content{width:100%}.quill-wrap[data-v-1730cf79]{width:100%;height:260px}.quill-wrap[data-v-1730cf79] .ql-toolbar,.quill-wrap[data-v-1730cf79] .ql-container{width:100%}.quill-wrap[data-v-1730cf79] .ql-container{height:218px}.dialog-footer-inner[data-v-1730cf79]{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.signup-head[data-v-1730cf79]{margin-bottom:12px}.signup-head-row[data-v-1730cf79]{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.session-tabs[data-v-1730cf79]{flex-wrap:wrap;flex:1;gap:8px;display:flex}.signup-filter-bar[data-v-1730cf79]{margin-top:8px}.sub-toolbar[data-v-1730cf79]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.text-mute[data-v-1730cf79]{color:var(--el-text-color-placeholder);font-size:13px} diff --git a/public/admin/assets/admin-list-DjncsyJC.js b/public/admin/assets/admin-list-CBoToEFo.js similarity index 100% rename from public/admin/assets/admin-list-DjncsyJC.js rename to public/admin/assets/admin-list-CBoToEFo.js diff --git a/public/admin/assets/assets-BATlskhA.js b/public/admin/assets/assets-Crd2wFUi.js similarity index 94% rename from public/admin/assets/assets-BATlskhA.js rename to public/admin/assets/assets-Crd2wFUi.js index bde9fe0..f9c9586 100644 --- a/public/admin/assets/assets-BATlskhA.js +++ b/public/admin/assets/assets-Crd2wFUi.js @@ -1 +1 @@ -import{r as e}from"./index-j1gM0XLI.js";async function t(t){let{data:n}=await e.get(`/admin/v1/universities`,{params:t});return n.data}async function n(t){let{data:n}=await e.post(`/admin/v1/universities`,t);return n.data}async function r(t,n){let{data:r}=await e.put(`/admin/v1/universities/${t}`,n);return r.data}async function i(t){let{data:n}=await e.delete(`/admin/v1/universities/${t}`);return n}async function a(t){let{data:n}=await e.get(`/admin/v1/papers`,{params:t});return n.data}async function o(){let{data:t}=await e.get(`/admin/v1/papers/filter-options`);return t.data}async function s(t){let{data:n}=await e.get(`/admin/v1/papers/${t}`);return n.data}async function c(t){let{data:n}=await e.delete(`/admin/v1/papers/${t}`);return n}async function l(t,n){let{data:r}=await e.post(`/admin/v1/papers/${t}/teachers`,{teacher_ids:n});return r}async function u(t){let{data:n}=await e.post(`/admin/v1/crawl-jobs/resolve-url`,t);return n.data}async function d(t){let{data:n}=await e.post(`/admin/v1/crawl-jobs`,t,{timeout:3e5});return n.data}async function f(t){let{data:n}=await e.get(`/admin/v1/crawl-jobs/${t}`);return n.data}async function p(t,n){let{data:r}=await e.get(`/admin/v1/crawl-jobs/${t}/items`,{params:n});return r.data}async function m(e,t){let n=[],r=1;for(;;){let i=await p(e,{...t,page:r,page_size:200});if(n.push(...i.items),r>=i.meta.last_page||i.items.length===0)break;r+=1}return n}async function h(t,n){let{data:r}=await e.post(`/admin/v1/crawl-jobs/${t}/import`,n);return r.data}async function g(){let{data:t}=await e.get(`/admin/v1/radar-map`);return t.data}export{m as a,o as c,t as d,h as f,r as h,i,a as l,d as m,n,f as o,u as p,c as r,s,l as t,g as u}; \ No newline at end of file +import{r as e}from"./index-spAvC8uC.js";async function t(t){let{data:n}=await e.get(`/admin/v1/universities`,{params:t});return n.data}async function n(t){let{data:n}=await e.post(`/admin/v1/universities`,t);return n.data}async function r(t,n){let{data:r}=await e.put(`/admin/v1/universities/${t}`,n);return r.data}async function i(t){let{data:n}=await e.delete(`/admin/v1/universities/${t}`);return n}async function a(t){let{data:n}=await e.get(`/admin/v1/papers`,{params:t});return n.data}async function o(){let{data:t}=await e.get(`/admin/v1/papers/filter-options`);return t.data}async function s(t){let{data:n}=await e.get(`/admin/v1/papers/${t}`);return n.data}async function c(t){let{data:n}=await e.delete(`/admin/v1/papers/${t}`);return n}async function l(t,n){let{data:r}=await e.post(`/admin/v1/papers/${t}/teachers`,{teacher_ids:n});return r}async function u(t){let{data:n}=await e.post(`/admin/v1/crawl-jobs/resolve-url`,t);return n.data}async function d(t){let{data:n}=await e.post(`/admin/v1/crawl-jobs`,t,{timeout:3e5});return n.data}async function f(t){let{data:n}=await e.get(`/admin/v1/crawl-jobs/${t}`);return n.data}async function p(t,n){let{data:r}=await e.get(`/admin/v1/crawl-jobs/${t}/items`,{params:n});return r.data}async function m(e,t){let n=[],r=1;for(;;){let i=await p(e,{...t,page:r,page_size:200});if(n.push(...i.items),r>=i.meta.last_page||i.items.length===0)break;r+=1}return n}async function h(t,n){let{data:r}=await e.post(`/admin/v1/crawl-jobs/${t}/import`,n);return r.data}async function g(){let{data:t}=await e.get(`/admin/v1/radar-map`);return t.data}export{m as a,o as c,t as d,h as f,r as h,i,a as l,d as m,n,f as o,u as p,c as r,s,l as t,g as u}; \ No newline at end of file diff --git a/public/admin/assets/audit-logs-DisPE2u3.js b/public/admin/assets/audit-logs-mquY1J4Q.js similarity index 97% rename from public/admin/assets/audit-logs-DisPE2u3.js rename to public/admin/assets/audit-logs-mquY1J4Q.js index cebfd83..87fce69 100644 --- a/public/admin/assets/audit-logs-DisPE2u3.js +++ b/public/admin/assets/audit-logs-mquY1J4Q.js @@ -1 +1 @@ -import{C as e,D as t,E as n,G as r,T as i,X as a,Y as o,at as s,b as c,d as l,ht as u,ot as d,x as f}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{r as p}from"./index-j1gM0XLI.js";import{t as m}from"./usePageLoad-DFTLo_Lv.js";async function h(e){let{data:t}=await p.get(`/admin/v1/operation-logs`,{params:e});return t.data}var g={class:`list-page`},_={class:`list-filter-bar`},v={class:`list-pager`},y=t({__name:`index`,setup(t){let p=u(!1),y=u([]),b=u({current_page:1,per_page:20,total:0}),x=u(1),S=u(``),C=u(``),w=u(``);async function T(){p.value=!0;try{let e=await h({page:x.value,page_size:b.value.per_page,keyword:S.value||void 0,from:C.value||void 0,to:w.value||void 0});y.value=e.items,b.value=e.meta}finally{p.value=!1}}function E(){x.value=1,T()}function D(){S.value=``,C.value=``,w.value=``,x.value=1,T()}return m(T),(t,u)=>{let m=o(`el-input`),h=o(`el-date-picker`),O=o(`el-button`),k=o(`el-table-column`),A=o(`el-table`),j=o(`el-pagination`),M=o(`el-card`),N=a(`loading`);return r(),e(`div`,g,[u[6]||=c(`div`,{class:`page-header`},[c(`h1`,{class:`page-title`},`操作日志`)],-1),n(M,{shadow:`never`,class:`admin-list-card`},{default:s(()=>[c(`div`,_,[n(m,{modelValue:S.value,"onUpdate:modelValue":u[0]||=e=>S.value=e,placeholder:`接口路径/操作人`,clearable:``,class:`filter-search`,onKeyup:l(E,[`enter`])},null,8,[`modelValue`]),n(h,{modelValue:C.value,"onUpdate:modelValue":u[1]||=e=>C.value=e,type:`datetime`,placeholder:`开始时间`,"value-format":`YYYY-MM-DD HH:mm:ss`,style:{width:`190px`}},null,8,[`modelValue`]),n(h,{modelValue:w.value,"onUpdate:modelValue":u[2]||=e=>w.value=e,type:`datetime`,placeholder:`结束时间`,"value-format":`YYYY-MM-DD HH:mm:ss`,style:{width:`190px`}},null,8,[`modelValue`]),n(O,{type:`primary`,onClick:E},{default:s(()=>[...u[4]||=[i(`搜索`,-1)]]),_:1}),n(O,{onClick:D},{default:s(()=>[...u[5]||=[i(`重置`,-1)]]),_:1})]),d((r(),f(A,{data:y.value,"row-key":`id`},{default:s(()=>[n(k,{prop:`operated_at`,label:`操作时间`,width:`180`}),n(k,{prop:`operator_name`,label:`操作人`,width:`120`}),n(k,{prop:`http_method`,label:`方法`,width:`80`}),n(k,{prop:`api_path`,label:`接口`,"min-width":`220`,"show-overflow-tooltip":``}),n(k,{prop:`action_label`,label:`操作项`,"min-width":`160`,"show-overflow-tooltip":``}),n(k,{prop:`ip`,label:`IP`,width:`140`}),n(k,{prop:`response_code`,label:`状态码`,width:`90`,align:`center`}),n(k,{prop:`duration_ms`,label:`耗时ms`,width:`90`,align:`center`})]),_:1},8,[`data`])),[[N,p.value]]),c(`div`,v,[n(j,{"current-page":x.value,"onUpdate:currentPage":u[3]||=e=>x.value=e,layout:`total, prev, pager, next`,total:b.value.total,"page-size":b.value.per_page,onCurrentChange:T},null,8,[`current-page`,`total`,`page-size`])])]),_:1})])}}});export{y as default}; \ No newline at end of file +import{C as e,D as t,E as n,G as r,T as i,X as a,Y as o,at as s,b as c,d as l,ht as u,ot as d,x as f}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{r as p}from"./index-spAvC8uC.js";import{t as m}from"./usePageLoad-DFTLo_Lv.js";async function h(e){let{data:t}=await p.get(`/admin/v1/operation-logs`,{params:e});return t.data}var g={class:`list-page`},_={class:`list-filter-bar`},v={class:`list-pager`},y=t({__name:`index`,setup(t){let p=u(!1),y=u([]),b=u({current_page:1,per_page:20,total:0}),x=u(1),S=u(``),C=u(``),w=u(``);async function T(){p.value=!0;try{let e=await h({page:x.value,page_size:b.value.per_page,keyword:S.value||void 0,from:C.value||void 0,to:w.value||void 0});y.value=e.items,b.value=e.meta}finally{p.value=!1}}function E(){x.value=1,T()}function D(){S.value=``,C.value=``,w.value=``,x.value=1,T()}return m(T),(t,u)=>{let m=o(`el-input`),h=o(`el-date-picker`),O=o(`el-button`),k=o(`el-table-column`),A=o(`el-table`),j=o(`el-pagination`),M=o(`el-card`),N=a(`loading`);return r(),e(`div`,g,[u[6]||=c(`div`,{class:`page-header`},[c(`h1`,{class:`page-title`},`操作日志`)],-1),n(M,{shadow:`never`,class:`admin-list-card`},{default:s(()=>[c(`div`,_,[n(m,{modelValue:S.value,"onUpdate:modelValue":u[0]||=e=>S.value=e,placeholder:`接口路径/操作人`,clearable:``,class:`filter-search`,onKeyup:l(E,[`enter`])},null,8,[`modelValue`]),n(h,{modelValue:C.value,"onUpdate:modelValue":u[1]||=e=>C.value=e,type:`datetime`,placeholder:`开始时间`,"value-format":`YYYY-MM-DD HH:mm:ss`,style:{width:`190px`}},null,8,[`modelValue`]),n(h,{modelValue:w.value,"onUpdate:modelValue":u[2]||=e=>w.value=e,type:`datetime`,placeholder:`结束时间`,"value-format":`YYYY-MM-DD HH:mm:ss`,style:{width:`190px`}},null,8,[`modelValue`]),n(O,{type:`primary`,onClick:E},{default:s(()=>[...u[4]||=[i(`搜索`,-1)]]),_:1}),n(O,{onClick:D},{default:s(()=>[...u[5]||=[i(`重置`,-1)]]),_:1})]),d((r(),f(A,{data:y.value,"row-key":`id`},{default:s(()=>[n(k,{prop:`operated_at`,label:`操作时间`,width:`180`}),n(k,{prop:`operator_name`,label:`操作人`,width:`120`}),n(k,{prop:`http_method`,label:`方法`,width:`80`}),n(k,{prop:`api_path`,label:`接口`,"min-width":`220`,"show-overflow-tooltip":``}),n(k,{prop:`action_label`,label:`操作项`,"min-width":`160`,"show-overflow-tooltip":``}),n(k,{prop:`ip`,label:`IP`,width:`140`}),n(k,{prop:`response_code`,label:`状态码`,width:`90`,align:`center`}),n(k,{prop:`duration_ms`,label:`耗时ms`,width:`90`,align:`center`})]),_:1},8,[`data`])),[[N,p.value]]),c(`div`,v,[n(j,{"current-page":x.value,"onUpdate:currentPage":u[3]||=e=>x.value=e,layout:`total, prev, pager, next`,total:b.value.total,"page-size":b.value.per_page,onCurrentChange:T},null,8,[`current-page`,`total`,`page-size`])])]),_:1})])}}});export{y as default}; \ No newline at end of file diff --git a/public/admin/assets/banners-BwbluJlM.css b/public/admin/assets/banners-BwbluJlM.css deleted file mode 100644 index 39b4deb..0000000 --- a/public/admin/assets/banners-BwbluJlM.css +++ /dev/null @@ -1 +0,0 @@ -.upload-row[data-v-cc2d69e5]{align-items:center;gap:8px;margin-bottom:8px;display:flex}.thumb-preview img[data-v-cc2d69e5]{object-fit:cover;border-radius:4px;max-width:240px;max-height:120px}.intro-form-item[data-v-cc2d69e5],.intro-form-item[data-v-cc2d69e5] .el-form-item__content{width:100%}.quill-wrap[data-v-cc2d69e5]{width:100%;height:320px}.quill-wrap[data-v-cc2d69e5] .ql-toolbar.ql-snow,.quill-wrap[data-v-cc2d69e5] .ql-container.ql-snow{box-sizing:border-box;width:100%}.quill-wrap[data-v-cc2d69e5] .ql-container.ql-snow{border:1px solid var(--el-border-color);border-top:0;height:278px}.quill-wrap[data-v-cc2d69e5] .ql-toolbar.ql-snow{border:1px solid var(--el-border-color);border-radius:4px 4px 0 0}.quill-wrap[data-v-cc2d69e5] .ql-editor{min-height:100%}.list-cover-thumb[data-v-cc2d69e5]{border-radius:4px;width:56px;height:32px}.text-mute[data-v-cc2d69e5]{color:var(--el-text-color-placeholder)} diff --git a/public/admin/assets/banners-DAKz4s2n.js b/public/admin/assets/banners-DAKz4s2n.js new file mode 100644 index 0000000..d39ebca --- /dev/null +++ b/public/admin/assets/banners-DAKz4s2n.js @@ -0,0 +1 @@ +import{C as e,Ct as t,D as n,E as r,G as i,S as a,T as o,X as s,Xt as ee,Y as c,at as l,b as u,d as te,ht as d,m as f,ot as p,q as m,tn as ne,x as h}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{c as g,l as _,r as v,s as y}from"./index-spAvC8uC.js";import{n as b,t as x}from"./RichTextEditor-DmYY0g1b.js";import{t as S}from"./usePageLoad-DFTLo_Lv.js";import{s as C}from"./activities-C0hIH4qz.js";import{l as w}from"./courses-zNh6OjgF.js";import{r as re}from"./admin-list-CBoToEFo.js";async function T(e){let{data:t}=await v.get(`/admin/v1/banners`,{params:e});return t.data}async function E(e){let{data:t}=await v.get(`/admin/v1/banners/${e}`);return t.data}async function D(e){let{data:t}=await v.post(`/admin/v1/banners`,e);return t.data}async function O(e,t){let{data:n}=await v.put(`/admin/v1/banners/${e}`,t);return n.data}async function k(e){let{data:t}=await v.delete(`/admin/v1/banners/${e}`);return t}var A={class:`list-page`},j={class:`page-header`},M={class:`list-filter-bar`},N={key:1,class:`text-mute`},ie={class:`table-row-actions`},ae={class:`list-pager`},oe={class:`upload-row`},se={key:0,class:`thumb-preview`},ce=[`src`],P=y(n({__name:`index`,setup(n){let v=[{value:`course`,label:`课程`},{value:`activity`,label:`活动`},{value:`custom`,label:`自定义`}],y=d(!1),P=d(!1),F=d([]),I=d({current_page:1,per_page:20,total:0}),L=d(1),R=d(``),z=d(``),B=d(``),V=d(!1),H=d(null),U=d({type:`course`,course_id:void 0,activity_id:void 0,title:``,cover_url:``,content_html:``,sort:0,status:1}),W=d([]),G=d([]),K=d(!1),q=d(!1);async function J(){y.value=!0;try{let e={page:L.value,page_size:I.value.per_page};R.value&&(e.keyword=R.value),z.value&&(e.type=z.value),B.value!==``&&(e.status=B.value);let t=await T(e);F.value=t.items,I.value=t.meta}finally{y.value=!1}}function Y(){L.value=1,J()}function le(){R.value=``,z.value=``,B.value=``,L.value=1,J()}async function X(e=``){K.value=!0;try{W.value=(await w({keyword:e,page:1,page_size:30})).items.map(e=>({id:e.id,title:e.title}))}finally{K.value=!1}}async function Z(e=``){q.value=!0;try{G.value=(await C({keyword:e,page:1,page_size:30})).items.map(e=>({id:e.id,title:e.title}))}finally{q.value=!1}}function ue(e){U.value.course_id=void 0,U.value.activity_id=void 0,U.value.title=``,U.value.cover_url=``,U.value.content_html=``,e===`course`&&X(),e===`activity`&&Z()}function de(){H.value=null,U.value={type:`course`,course_id:void 0,activity_id:void 0,title:``,cover_url:``,content_html:``,sort:0,status:1},W.value=[],G.value=[],V.value=!0,X()}async function fe(e){H.value=e;let t=await E(e.id);U.value={type:t.type,course_id:t.course_id??void 0,activity_id:t.activity_id??void 0,title:t.title||``,cover_url:t.cover_url||``,content_html:t.content_html||``,sort:t.sort,status:t.status},t.type===`course`&&t.course_id&&(W.value=[{id:t.course_id,title:t.course_title||`#${t.course_id}`}]),t.type===`activity`&&t.activity_id&&(G.value=[{id:t.activity_id,title:t.activity_title||`#${t.activity_id}`}]),V.value=!0,t.type===`course`&&X(),t.type===`activity`&&Z()}function Q(){if(U.value.type===`course`&&!U.value.course_id)return _.warning(`请选择课程`),!1;if(U.value.type===`activity`&&!U.value.activity_id)return _.warning(`请选择活动`),!1;if(U.value.type===`custom`){if(!U.value.title.trim())return _.warning(`请填写标题`),!1;if(!U.value.cover_url)return _.warning(`请上传封面图`),!1}return!0}async function pe(){if(!Q())return;let e={type:U.value.type,sort:U.value.sort,status:U.value.status,course_id:U.value.type===`course`?U.value.course_id:null,activity_id:U.value.type===`activity`?U.value.activity_id:null,title:U.value.type===`custom`?U.value.title.trim():null,cover_url:U.value.type===`custom`?U.value.cover_url:null,content_html:U.value.type===`custom`&&U.value.content_html?.replace(/<[^>]+>/g,``).trim()?U.value.content_html:null};P.value=!0;try{H.value?await O(H.value.id,e):await D(e),_.success(`已保存`),V.value=!1,await J()}finally{P.value=!1}}async function $(e){await g.confirm(`确定删除 Banner「${e.summary||e.id}」?`,`提示`,{type:`warning`}),await k(e.id),_.success(`已删除`),await J()}async function me(e){let t=e.file,n=t instanceof File?t:t.raw;if(!n){e.onError?.(Error(`no file`));return}try{let t=await b(n);U.value.cover_url=t.url,_.success(`封面上传成功`),e.onSuccess?.({})}catch{_.error(`封面上传失败`),e.onError?.(Error(`upload failed`))}}return S(J),(n,d)=>{let g=c(`el-button`),_=c(`el-input`),b=c(`el-option`),S=c(`el-select`),C=c(`el-table-column`),w=c(`el-image`),T=c(`el-table`),E=c(`el-pagination`),D=c(`el-card`),O=c(`el-form-item`),k=c(`el-col`),Q=c(`el-input-number`),he=c(`el-switch`),ge=c(`el-row`),_e=c(`el-upload`),ve=c(`el-form`),ye=c(`el-dialog`),be=s(`loading`);return i(),e(f,null,[u(`div`,A,[u(`div`,j,[d[15]||=u(`h1`,{class:`page-title`},`Banner图管理`,-1),r(g,{type:`primary`,size:`small`,class:`btn-create`,onClick:de},{default:l(()=>[...d[14]||=[o(`新增 Banner`,-1)]]),_:1})]),r(D,{shadow:`never`,class:`admin-list-card`},{default:l(()=>[u(`div`,M,[r(_,{modelValue:R.value,"onUpdate:modelValue":d[0]||=e=>R.value=e,placeholder:`搜索标题、课程、活动…`,clearable:``,class:`filter-search`,onKeyup:te(Y,[`enter`])},null,8,[`modelValue`]),r(S,{modelValue:z.value,"onUpdate:modelValue":d[1]||=e=>z.value=e,clearable:``,placeholder:`类型`,class:`filter-select`},{default:l(()=>[(i(),e(f,null,m(v,e=>r(b,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`]),r(S,{modelValue:B.value,"onUpdate:modelValue":d[2]||=e=>B.value=e,clearable:``,placeholder:`状态`,class:`filter-select`},{default:l(()=>[r(b,{label:`启用`,value:1}),r(b,{label:`停用`,value:0})]),_:1},8,[`modelValue`]),r(g,{type:`primary`,onClick:Y},{default:l(()=>[...d[16]||=[o(`搜索`,-1)]]),_:1}),r(g,{onClick:le},{default:l(()=>[...d[17]||=[o(`重置`,-1)]]),_:1})]),p((i(),h(T,{data:F.value,"row-key":`id`},{default:l(()=>[r(C,{prop:`type_label`,label:`类型`,width:`90`}),r(C,{prop:`summary`,label:`展示内容`,"min-width":`200`,"show-overflow-tooltip":``}),r(C,{label:`封面`,width:`100`,align:`center`},{default:l(({row:t})=>[t.type===`custom`&&t.cover_url?(i(),h(w,{key:0,src:t.cover_url,"preview-src-list":[t.cover_url],fit:`cover`,class:`list-cover-thumb`,"preview-teleported":``},null,8,[`src`,`preview-src-list`])):(i(),e(`span`,N,`—`))]),_:1}),r(C,{prop:`sort`,label:`排序`,width:`80`,align:`center`}),r(C,{label:`状态`,width:`90`,align:`center`},{default:l(({row:e})=>[u(`span`,{class:ee([`status-badge`,t(re)(e.status)])},ne(e.status===1?`启用`:`停用`),3)]),_:1}),r(C,{label:`操作`,width:`160`,fixed:`right`},{default:l(({row:e})=>[u(`div`,ie,[r(g,{class:`btn-action-secondary`,onClick:t=>fe(e)},{default:l(()=>[...d[18]||=[o(`编辑`,-1)]]),_:1},8,[`onClick`]),r(g,{class:`btn-action-secondary`,onClick:t=>$(e)},{default:l(()=>[...d[19]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])])]),_:1})]),_:1},8,[`data`])),[[be,y.value]]),u(`div`,ae,[r(E,{"current-page":L.value,"onUpdate:currentPage":d[3]||=e=>L.value=e,layout:`total, prev, pager, next`,total:I.value.total,"page-size":I.value.per_page,onCurrentChange:J},null,8,[`current-page`,`total`,`page-size`])])]),_:1})]),r(ye,{modelValue:V.value,"onUpdate:modelValue":d[13]||=e=>V.value=e,title:H.value?`编辑 Banner`:`新增 Banner`,width:`960px`,top:`4vh`,"destroy-on-close":``,class:`banner-dialog`},{footer:l(()=>[r(g,{onClick:d[12]||=e=>V.value=!1},{default:l(()=>[...d[22]||=[o(`取消`,-1)]]),_:1}),r(g,{type:`primary`,loading:P.value,onClick:pe},{default:l(()=>[...d[23]||=[o(`保存`,-1)]]),_:1},8,[`loading`])]),default:l(()=>[r(ve,{"label-position":`top`,class:`banner-form`},{default:l(()=>[r(ge,{gutter:16},{default:l(()=>[r(k,{span:8},{default:l(()=>[r(O,{label:`类型`,required:``},{default:l(()=>[r(S,{modelValue:U.value.type,"onUpdate:modelValue":d[4]||=e=>U.value.type=e,style:{width:`100%`},onChange:ue},{default:l(()=>[(i(),e(f,null,m(v,e=>r(b,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`])]),_:1})]),_:1}),r(k,{span:8},{default:l(()=>[r(O,{label:`排序`,required:``},{default:l(()=>[r(Q,{modelValue:U.value.sort,"onUpdate:modelValue":d[5]||=e=>U.value.sort=e,min:0,style:{width:`100%`}},null,8,[`modelValue`])]),_:1})]),_:1}),r(k,{span:8},{default:l(()=>[r(O,{label:`状态`},{default:l(()=>[r(he,{modelValue:U.value.status,"onUpdate:modelValue":d[6]||=e=>U.value.status=e,"active-value":1,"inactive-value":0},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1}),U.value.type===`course`?(i(),h(O,{key:0,label:`选择课程`,required:``},{default:l(()=>[r(S,{modelValue:U.value.course_id,"onUpdate:modelValue":d[7]||=e=>U.value.course_id=e,filterable:``,remote:``,"reserve-keyword":``,placeholder:`搜索课程名称或编号`,"remote-method":X,loading:K.value,style:{width:`100%`}},{default:l(()=>[(i(!0),e(f,null,m(W.value,e=>(i(),h(b,{key:e.id,label:e.title,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`loading`])]),_:1})):a(``,!0),U.value.type===`activity`?(i(),h(O,{key:1,label:`选择活动`,required:``},{default:l(()=>[r(S,{modelValue:U.value.activity_id,"onUpdate:modelValue":d[8]||=e=>U.value.activity_id=e,filterable:``,remote:``,"reserve-keyword":``,placeholder:`搜索活动名称`,"remote-method":Z,loading:q.value,style:{width:`100%`}},{default:l(()=>[(i(!0),e(f,null,m(G.value,e=>(i(),h(b,{key:e.id,label:e.title,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`loading`])]),_:1})):a(``,!0),U.value.type===`custom`?(i(),e(f,{key:2},[r(O,{label:`标题`,required:``},{default:l(()=>[r(_,{modelValue:U.value.title,"onUpdate:modelValue":d[9]||=e=>U.value.title=e,placeholder:`请输入 Banner 标题`},null,8,[`modelValue`])]),_:1}),r(O,{label:`封面图`,required:``},{default:l(()=>[u(`div`,oe,[r(_e,{"show-file-list":!1,accept:`image/*`,"http-request":me},{default:l(()=>[r(g,{type:`primary`,plain:``,size:`small`},{default:l(()=>[...d[20]||=[o(`上传图片`,-1)]]),_:1})]),_:1}),U.value.cover_url?(i(),h(g,{key:0,size:`small`,onClick:d[10]||=e=>U.value.cover_url=``},{default:l(()=>[...d[21]||=[o(`移除`,-1)]]),_:1})):a(``,!0)]),U.value.cover_url?(i(),e(`div`,se,[u(`img`,{src:U.value.cover_url,alt:`封面`},null,8,ce)])):a(``,!0)]),_:1}),r(O,{label:`内容`,class:`intro-form-item`},{default:l(()=>[r(x,{modelValue:U.value.content_html,"onUpdate:modelValue":d[11]||=e=>U.value.content_html=e,scope:`banners`,height:320},null,8,[`modelValue`])]),_:1})],64)):a(``,!0)]),_:1})]),_:1},8,[`modelValue`,`title`])],64)}}}),[[`__scopeId`,`data-v-d8891ff1`]]);export{P as default}; \ No newline at end of file diff --git a/public/admin/assets/banners-DqMb6tvy.css b/public/admin/assets/banners-DqMb6tvy.css new file mode 100644 index 0000000..0a8a6bc --- /dev/null +++ b/public/admin/assets/banners-DqMb6tvy.css @@ -0,0 +1 @@ +.upload-row[data-v-d8891ff1]{align-items:center;gap:8px;margin-bottom:8px;display:flex}.thumb-preview img[data-v-d8891ff1]{object-fit:cover;border-radius:4px;max-width:240px;max-height:120px}.intro-form-item[data-v-d8891ff1],.intro-form-item[data-v-d8891ff1] .el-form-item__content{width:100%}.list-cover-thumb[data-v-d8891ff1]{border-radius:4px;width:56px;height:32px}.text-mute[data-v-d8891ff1]{color:var(--el-text-color-placeholder)} diff --git a/public/admin/assets/banners-DssMkDZp.js b/public/admin/assets/banners-DssMkDZp.js deleted file mode 100644 index 681b20d..0000000 --- a/public/admin/assets/banners-DssMkDZp.js +++ /dev/null @@ -1 +0,0 @@ -import{C as e,Ct as t,D as n,E as r,G as i,S as a,T as o,X as s,Xt as c,Y as l,at as u,b as d,d as ee,ht as f,m as p,ot as te,q as m,tn as ne,x as h}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{c as g,l as _,r as v,s as y}from"./index-j1gM0XLI.js";import{t as b}from"./vue-quill.snow-CU-IQtel.js";import{t as x}from"./usePageLoad-DFTLo_Lv.js";import{s as S}from"./activities-DGKq28Un.js";import{l as C}from"./courses-DvvHCMm2.js";import{t as w}from"./upload-BIUZx4Pn.js";import{r as T}from"./admin-list-DjncsyJC.js";async function E(e){let{data:t}=await v.get(`/admin/v1/banners`,{params:e});return t.data}async function D(e){let{data:t}=await v.get(`/admin/v1/banners/${e}`);return t.data}async function O(e){let{data:t}=await v.post(`/admin/v1/banners`,e);return t.data}async function k(e,t){let{data:n}=await v.put(`/admin/v1/banners/${e}`,t);return n.data}async function A(e){let{data:t}=await v.delete(`/admin/v1/banners/${e}`);return t}var re={class:`list-page`},j={class:`page-header`},ie={class:`list-filter-bar`},ae={key:1,class:`text-mute`},oe={class:`table-row-actions`},se={class:`list-pager`},ce={class:`upload-row`},le={key:0,class:`thumb-preview`},M=[`src`],N={class:`quill-wrap`},P=y(n({__name:`index`,setup(n){let v=[[`bold`,`italic`,`underline`],[{header:[2,3,!1]}],[{list:`ordered`},{list:`bullet`}],[`link`],[`clean`]],y=[{value:`course`,label:`课程`},{value:`activity`,label:`活动`},{value:`custom`,label:`自定义`}],P=f(!1),F=f(!1),I=f([]),L=f({current_page:1,per_page:20,total:0}),R=f(1),z=f(``),B=f(``),V=f(``),H=f(!1),U=f(null),W=f({type:`course`,course_id:void 0,activity_id:void 0,title:``,cover_url:``,content_html:``,sort:0,status:1}),G=f([]),K=f([]),q=f(!1),J=f(!1);async function Y(){P.value=!0;try{let e={page:R.value,page_size:L.value.per_page};z.value&&(e.keyword=z.value),B.value&&(e.type=B.value),V.value!==``&&(e.status=V.value);let t=await E(e);I.value=t.items,L.value=t.meta}finally{P.value=!1}}function X(){R.value=1,Y()}function ue(){z.value=``,B.value=``,V.value=``,R.value=1,Y()}async function Z(e=``){q.value=!0;try{G.value=(await C({keyword:e,page:1,page_size:30})).items.map(e=>({id:e.id,title:e.title}))}finally{q.value=!1}}async function Q(e=``){J.value=!0;try{K.value=(await S({keyword:e,page:1,page_size:30})).items.map(e=>({id:e.id,title:e.title}))}finally{J.value=!1}}function de(e){W.value.course_id=void 0,W.value.activity_id=void 0,W.value.title=``,W.value.cover_url=``,W.value.content_html=``,e===`course`&&Z(),e===`activity`&&Q()}function fe(){U.value=null,W.value={type:`course`,course_id:void 0,activity_id:void 0,title:``,cover_url:``,content_html:``,sort:0,status:1},G.value=[],K.value=[],H.value=!0,Z()}async function pe(e){U.value=e;let t=await D(e.id);W.value={type:t.type,course_id:t.course_id??void 0,activity_id:t.activity_id??void 0,title:t.title||``,cover_url:t.cover_url||``,content_html:t.content_html||``,sort:t.sort,status:t.status},t.type===`course`&&t.course_id&&(G.value=[{id:t.course_id,title:t.course_title||`#${t.course_id}`}]),t.type===`activity`&&t.activity_id&&(K.value=[{id:t.activity_id,title:t.activity_title||`#${t.activity_id}`}]),H.value=!0,t.type===`course`&&Z(),t.type===`activity`&&Q()}function $(){if(W.value.type===`course`&&!W.value.course_id)return _.warning(`请选择课程`),!1;if(W.value.type===`activity`&&!W.value.activity_id)return _.warning(`请选择活动`),!1;if(W.value.type===`custom`){if(!W.value.title.trim())return _.warning(`请填写标题`),!1;if(!W.value.cover_url)return _.warning(`请上传封面图`),!1}return!0}async function me(){if(!$())return;let e={type:W.value.type,sort:W.value.sort,status:W.value.status,course_id:W.value.type===`course`?W.value.course_id:null,activity_id:W.value.type===`activity`?W.value.activity_id:null,title:W.value.type===`custom`?W.value.title.trim():null,cover_url:W.value.type===`custom`?W.value.cover_url:null,content_html:W.value.type===`custom`&&W.value.content_html?.replace(/<[^>]+>/g,``).trim()?W.value.content_html:null};F.value=!0;try{U.value?await k(U.value.id,e):await O(e),_.success(`已保存`),H.value=!1,await Y()}finally{F.value=!1}}async function he(e){await g.confirm(`确定删除 Banner「${e.summary||e.id}」?`,`提示`,{type:`warning`}),await A(e.id),_.success(`已删除`),await Y()}async function ge(e){let t=e.file,n=t instanceof File?t:t.raw;if(!n){e.onError?.(Error(`no file`));return}try{let t=await w(n);W.value.cover_url=t.url,_.success(`封面上传成功`),e.onSuccess?.({})}catch{_.error(`封面上传失败`),e.onError?.(Error(`upload failed`))}}return x(Y),(n,f)=>{let g=l(`el-button`),_=l(`el-input`),x=l(`el-option`),S=l(`el-select`),C=l(`el-table-column`),w=l(`el-image`),E=l(`el-table`),D=l(`el-pagination`),O=l(`el-card`),k=l(`el-form-item`),A=l(`el-col`),$=l(`el-input-number`),_e=l(`el-switch`),ve=l(`el-row`),ye=l(`el-upload`),be=l(`el-form`),xe=l(`el-dialog`),Se=s(`loading`);return i(),e(p,null,[d(`div`,re,[d(`div`,j,[f[15]||=d(`h1`,{class:`page-title`},`Banner图管理`,-1),r(g,{type:`primary`,size:`small`,class:`btn-create`,onClick:fe},{default:u(()=>[...f[14]||=[o(`新增 Banner`,-1)]]),_:1})]),r(O,{shadow:`never`,class:`admin-list-card`},{default:u(()=>[d(`div`,ie,[r(_,{modelValue:z.value,"onUpdate:modelValue":f[0]||=e=>z.value=e,placeholder:`搜索标题、课程、活动…`,clearable:``,class:`filter-search`,onKeyup:ee(X,[`enter`])},null,8,[`modelValue`]),r(S,{modelValue:B.value,"onUpdate:modelValue":f[1]||=e=>B.value=e,clearable:``,placeholder:`类型`,class:`filter-select`},{default:u(()=>[(i(),e(p,null,m(y,e=>r(x,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`]),r(S,{modelValue:V.value,"onUpdate:modelValue":f[2]||=e=>V.value=e,clearable:``,placeholder:`状态`,class:`filter-select`},{default:u(()=>[r(x,{label:`启用`,value:1}),r(x,{label:`停用`,value:0})]),_:1},8,[`modelValue`]),r(g,{type:`primary`,onClick:X},{default:u(()=>[...f[16]||=[o(`搜索`,-1)]]),_:1}),r(g,{onClick:ue},{default:u(()=>[...f[17]||=[o(`重置`,-1)]]),_:1})]),te((i(),h(E,{data:I.value,"row-key":`id`},{default:u(()=>[r(C,{prop:`type_label`,label:`类型`,width:`90`}),r(C,{prop:`summary`,label:`展示内容`,"min-width":`200`,"show-overflow-tooltip":``}),r(C,{label:`封面`,width:`100`,align:`center`},{default:u(({row:t})=>[t.type===`custom`&&t.cover_url?(i(),h(w,{key:0,src:t.cover_url,"preview-src-list":[t.cover_url],fit:`cover`,class:`list-cover-thumb`,"preview-teleported":``},null,8,[`src`,`preview-src-list`])):(i(),e(`span`,ae,`—`))]),_:1}),r(C,{prop:`sort`,label:`排序`,width:`80`,align:`center`}),r(C,{label:`状态`,width:`90`,align:`center`},{default:u(({row:e})=>[d(`span`,{class:c([`status-badge`,t(T)(e.status)])},ne(e.status===1?`启用`:`停用`),3)]),_:1}),r(C,{label:`操作`,width:`160`,fixed:`right`},{default:u(({row:e})=>[d(`div`,oe,[r(g,{class:`btn-action-secondary`,onClick:t=>pe(e)},{default:u(()=>[...f[18]||=[o(`编辑`,-1)]]),_:1},8,[`onClick`]),r(g,{class:`btn-action-secondary`,onClick:t=>he(e)},{default:u(()=>[...f[19]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])])]),_:1})]),_:1},8,[`data`])),[[Se,P.value]]),d(`div`,se,[r(D,{"current-page":R.value,"onUpdate:currentPage":f[3]||=e=>R.value=e,layout:`total, prev, pager, next`,total:L.value.total,"page-size":L.value.per_page,onCurrentChange:Y},null,8,[`current-page`,`total`,`page-size`])])]),_:1})]),r(xe,{modelValue:H.value,"onUpdate:modelValue":f[13]||=e=>H.value=e,title:U.value?`编辑 Banner`:`新增 Banner`,width:`960px`,top:`4vh`,"destroy-on-close":``,class:`banner-dialog`},{footer:u(()=>[r(g,{onClick:f[12]||=e=>H.value=!1},{default:u(()=>[...f[22]||=[o(`取消`,-1)]]),_:1}),r(g,{type:`primary`,loading:F.value,onClick:me},{default:u(()=>[...f[23]||=[o(`保存`,-1)]]),_:1},8,[`loading`])]),default:u(()=>[r(be,{"label-position":`top`,class:`banner-form`},{default:u(()=>[r(ve,{gutter:16},{default:u(()=>[r(A,{span:8},{default:u(()=>[r(k,{label:`类型`,required:``},{default:u(()=>[r(S,{modelValue:W.value.type,"onUpdate:modelValue":f[4]||=e=>W.value.type=e,style:{width:`100%`},onChange:de},{default:u(()=>[(i(),e(p,null,m(y,e=>r(x,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`])]),_:1})]),_:1}),r(A,{span:8},{default:u(()=>[r(k,{label:`排序`,required:``},{default:u(()=>[r($,{modelValue:W.value.sort,"onUpdate:modelValue":f[5]||=e=>W.value.sort=e,min:0,style:{width:`100%`}},null,8,[`modelValue`])]),_:1})]),_:1}),r(A,{span:8},{default:u(()=>[r(k,{label:`状态`},{default:u(()=>[r(_e,{modelValue:W.value.status,"onUpdate:modelValue":f[6]||=e=>W.value.status=e,"active-value":1,"inactive-value":0},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1}),W.value.type===`course`?(i(),h(k,{key:0,label:`选择课程`,required:``},{default:u(()=>[r(S,{modelValue:W.value.course_id,"onUpdate:modelValue":f[7]||=e=>W.value.course_id=e,filterable:``,remote:``,"reserve-keyword":``,placeholder:`搜索课程名称或编号`,"remote-method":Z,loading:q.value,style:{width:`100%`}},{default:u(()=>[(i(!0),e(p,null,m(G.value,e=>(i(),h(x,{key:e.id,label:e.title,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`loading`])]),_:1})):a(``,!0),W.value.type===`activity`?(i(),h(k,{key:1,label:`选择活动`,required:``},{default:u(()=>[r(S,{modelValue:W.value.activity_id,"onUpdate:modelValue":f[8]||=e=>W.value.activity_id=e,filterable:``,remote:``,"reserve-keyword":``,placeholder:`搜索活动名称`,"remote-method":Q,loading:J.value,style:{width:`100%`}},{default:u(()=>[(i(!0),e(p,null,m(K.value,e=>(i(),h(x,{key:e.id,label:e.title,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`loading`])]),_:1})):a(``,!0),W.value.type===`custom`?(i(),e(p,{key:2},[r(k,{label:`标题`,required:``},{default:u(()=>[r(_,{modelValue:W.value.title,"onUpdate:modelValue":f[9]||=e=>W.value.title=e,placeholder:`请输入 Banner 标题`},null,8,[`modelValue`])]),_:1}),r(k,{label:`封面图`,required:``},{default:u(()=>[d(`div`,ce,[r(ye,{"show-file-list":!1,accept:`image/*`,"http-request":ge},{default:u(()=>[r(g,{type:`primary`,plain:``,size:`small`},{default:u(()=>[...f[20]||=[o(`上传图片`,-1)]]),_:1})]),_:1}),W.value.cover_url?(i(),h(g,{key:0,size:`small`,onClick:f[10]||=e=>W.value.cover_url=``},{default:u(()=>[...f[21]||=[o(`移除`,-1)]]),_:1})):a(``,!0)]),W.value.cover_url?(i(),e(`div`,le,[d(`img`,{src:W.value.cover_url,alt:`封面`},null,8,M)])):a(``,!0)]),_:1}),r(k,{label:`内容`,class:`intro-form-item`},{default:u(()=>[d(`div`,N,[r(t(b),{content:W.value.content_html,"onUpdate:content":f[11]||=e=>W.value.content_html=e,"content-type":`html`,theme:`snow`,toolbar:v},null,8,[`content`])])]),_:1})],64)):a(``,!0)]),_:1})]),_:1},8,[`modelValue`,`title`])],64)}}}),[[`__scopeId`,`data-v-cc2d69e5`]]);export{P as default}; \ No newline at end of file diff --git a/public/admin/assets/courses-D2cYE17y.css b/public/admin/assets/courses-D2cYE17y.css new file mode 100644 index 0000000..63ae00c --- /dev/null +++ b/public/admin/assets/courses-D2cYE17y.css @@ -0,0 +1 @@ +.toolbar[data-v-a9f4f428],.sub-toolbar[data-v-a9f4f428]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pager[data-v-a9f4f428]{justify-content:flex-end;margin-top:16px;display:flex}.signup-head[data-v-a9f4f428]{margin-bottom:12px}.signup-head-row[data-v-a9f4f428]{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.checkin-day-tabs[data-v-a9f4f428]{flex-wrap:wrap;flex:1;gap:8px;display:flex}.signup-filter-bar[data-v-a9f4f428]{margin-top:8px}.course-steps[data-v-a9f4f428]{margin-bottom:20px}.step-panel[data-v-a9f4f428]{min-height:280px}.date-range[data-v-a9f4f428]{align-items:center;gap:6px;width:100%;display:flex}.range-sep[data-v-a9f4f428]{color:var(--el-text-color-secondary);flex-shrink:0;font-size:12px}.upload-row[data-v-a9f4f428]{align-items:center;gap:8px;width:100%;display:flex}.thumb-preview[data-v-a9f4f428]{max-width:200px;margin-top:8px}.thumb-preview img[data-v-a9f4f428]{border:1px solid var(--el-border-color);border-radius:4px;max-width:100%}.intro-form-item[data-v-a9f4f428],.intro-form-item[data-v-a9f4f428] .el-form-item__content{width:100%}.list-thumb-wrap[data-v-a9f4f428]{justify-content:center;display:flex}.list-thumb[data-v-a9f4f428]{border:1px solid var(--el-border-color-lighter);border-radius:4px;width:56px;height:36px}.builder-step[data-v-a9f4f428]{margin-top:8px}.builder-shell[data-v-a9f4f428]{align-items:stretch;gap:12px;min-height:400px;display:flex}.builder-side[data-v-a9f4f428]{border:1px solid var(--el-border-color-lighter);background:var(--el-fill-color-blank);border-radius:6px;flex:0 0 168px;padding:10px}.builder-side.builder-props[data-v-a9f4f428]{flex:0 0 248px}.builder-center[data-v-a9f4f428]{border:1px solid var(--el-border-color-lighter);background:var(--el-bg-color-page);border-radius:6px;flex:1;min-width:0;padding:10px;position:relative}.builder-side-title[data-v-a9f4f428]{margin-bottom:10px;font-size:13px;font-weight:600}.palette-list[data-v-a9f4f428]{flex-direction:column;gap:8px;display:flex}.palette-item[data-v-a9f4f428]{background:var(--el-color-primary-light-9);color:var(--el-color-primary);text-align:center;cursor:grab;border:1px solid var(--el-color-primary-light-5);border-radius:6px;padding:8px 10px;font-size:13px}.palette-item[data-v-a9f4f428]:active{cursor:grabbing}.builder-canvas-head[data-v-a9f4f428]{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.builder-canvas-grid[data-v-a9f4f428]{grid-template-columns:repeat(3,1fr);gap:10px;min-height:120px;display:grid}.canvas-field[data-v-a9f4f428]{border:1px solid var(--el-border-color);cursor:pointer;background:#fff;border-radius:6px;padding:8px;transition:box-shadow .15s}.canvas-field[data-v-a9f4f428]:hover{box-shadow:0 0 0 1px var(--el-color-primary-light-5)}.canvas-field.active[data-v-a9f4f428]{box-shadow:0 0 0 2px var(--el-color-primary)}.canvas-field-head[data-v-a9f4f428]{color:var(--el-text-color-regular);margin-bottom:6px;font-size:12px}.canvas-field-head .req[data-v-a9f4f428]{color:var(--el-color-danger);margin-right:2px}.canvas-field-body[data-v-a9f4f428] .el-radio,.canvas-field-body[data-v-a9f4f428] .el-checkbox{margin-right:8px}.field-ghost[data-v-a9f4f428]{opacity:.45}.canvas-empty[data-v-a9f4f428]{color:var(--el-text-color-placeholder);pointer-events:none;font-size:13px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.props-empty[data-v-a9f4f428]{color:var(--el-text-color-secondary);padding:12px 4px;font-size:13px}.opts-hint[data-v-a9f4f428]{color:var(--el-text-color-secondary);margin-top:6px;font-size:12px;line-height:1.4}.dialog-footer-inner[data-v-a9f4f428]{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.multi-field-label[data-v-a9f4f428]{align-items:center;width:100%;display:flex}.btn-label-action[data-v-a9f4f428]{margin-left:12px}.recruit-form-item[data-v-a9f4f428] .el-form-item__content,.speaker-form-item[data-v-a9f4f428] .el-form-item__content{width:100%}.multi-input-list[data-v-a9f4f428]{gap:8px;width:100%;display:grid}.multi-input-row[data-v-a9f4f428]{align-items:center;gap:8px;display:flex}.speaker-block[data-v-a9f4f428]{border:1px solid var(--el-border-color-lighter);box-sizing:border-box;border-radius:6px;width:100%;margin-bottom:8px;padding:10px 12px}.speaker-field-row[data-v-a9f4f428],.speaker-field-row[data-v-a9f4f428] .el-input{width:100%}.speaker-block-head[data-v-a9f4f428]{justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px;font-weight:500;display:flex}.speaker-block-actions[data-v-a9f4f428]{gap:8px;display:flex}.text-mute[data-v-a9f4f428]{color:var(--el-text-color-placeholder);font-size:13px}.teacher-pick-search[data-v-a9f4f428]{width:100%} diff --git a/public/admin/assets/courses-DopSr8KQ.css b/public/admin/assets/courses-DopSr8KQ.css deleted file mode 100644 index 9c3e9a2..0000000 --- a/public/admin/assets/courses-DopSr8KQ.css +++ /dev/null @@ -1 +0,0 @@ -.toolbar[data-v-70a363f8],.sub-toolbar[data-v-70a363f8]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pager[data-v-70a363f8]{justify-content:flex-end;margin-top:16px;display:flex}.signup-head[data-v-70a363f8]{margin-bottom:12px}.signup-head-row[data-v-70a363f8]{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.checkin-day-tabs[data-v-70a363f8]{flex-wrap:wrap;flex:1;gap:8px;display:flex}.signup-filter-bar[data-v-70a363f8]{margin-top:8px}.course-steps[data-v-70a363f8]{margin-bottom:20px}.step-panel[data-v-70a363f8]{min-height:280px}.date-range[data-v-70a363f8]{align-items:center;gap:6px;width:100%;display:flex}.range-sep[data-v-70a363f8]{color:var(--el-text-color-secondary);flex-shrink:0;font-size:12px}.upload-row[data-v-70a363f8]{align-items:center;gap:8px;width:100%;display:flex}.thumb-preview[data-v-70a363f8]{max-width:200px;margin-top:8px}.thumb-preview img[data-v-70a363f8]{border:1px solid var(--el-border-color);border-radius:4px;max-width:100%}.intro-form-item[data-v-70a363f8],.intro-form-item[data-v-70a363f8] .el-form-item__content{width:100%}.quill-wrap[data-v-70a363f8]{width:100%;height:260px}.quill-wrap[data-v-70a363f8] .ql-toolbar,.quill-wrap[data-v-70a363f8] .ql-container{width:100%}.quill-wrap[data-v-70a363f8] .ql-container{height:218px}.list-thumb-wrap[data-v-70a363f8]{justify-content:center;display:flex}.list-thumb[data-v-70a363f8]{border:1px solid var(--el-border-color-lighter);border-radius:4px;width:56px;height:36px}.builder-step[data-v-70a363f8]{margin-top:8px}.builder-shell[data-v-70a363f8]{align-items:stretch;gap:12px;min-height:400px;display:flex}.builder-side[data-v-70a363f8]{border:1px solid var(--el-border-color-lighter);background:var(--el-fill-color-blank);border-radius:6px;flex:0 0 168px;padding:10px}.builder-side.builder-props[data-v-70a363f8]{flex:0 0 248px}.builder-center[data-v-70a363f8]{border:1px solid var(--el-border-color-lighter);background:var(--el-bg-color-page);border-radius:6px;flex:1;min-width:0;padding:10px;position:relative}.builder-side-title[data-v-70a363f8]{margin-bottom:10px;font-size:13px;font-weight:600}.palette-list[data-v-70a363f8]{flex-direction:column;gap:8px;display:flex}.palette-item[data-v-70a363f8]{background:var(--el-color-primary-light-9);color:var(--el-color-primary);text-align:center;cursor:grab;border:1px solid var(--el-color-primary-light-5);border-radius:6px;padding:8px 10px;font-size:13px}.palette-item[data-v-70a363f8]:active{cursor:grabbing}.builder-canvas-head[data-v-70a363f8]{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.builder-canvas-grid[data-v-70a363f8]{grid-template-columns:repeat(3,1fr);gap:10px;min-height:120px;display:grid}.canvas-field[data-v-70a363f8]{border:1px solid var(--el-border-color);cursor:pointer;background:#fff;border-radius:6px;padding:8px;transition:box-shadow .15s}.canvas-field[data-v-70a363f8]:hover{box-shadow:0 0 0 1px var(--el-color-primary-light-5)}.canvas-field.active[data-v-70a363f8]{box-shadow:0 0 0 2px var(--el-color-primary)}.canvas-field-head[data-v-70a363f8]{color:var(--el-text-color-regular);margin-bottom:6px;font-size:12px}.canvas-field-head .req[data-v-70a363f8]{color:var(--el-color-danger);margin-right:2px}.canvas-field-body[data-v-70a363f8] .el-radio,.canvas-field-body[data-v-70a363f8] .el-checkbox{margin-right:8px}.field-ghost[data-v-70a363f8]{opacity:.45}.canvas-empty[data-v-70a363f8]{color:var(--el-text-color-placeholder);pointer-events:none;font-size:13px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.props-empty[data-v-70a363f8]{color:var(--el-text-color-secondary);padding:12px 4px;font-size:13px}.opts-hint[data-v-70a363f8]{color:var(--el-text-color-secondary);margin-top:6px;font-size:12px;line-height:1.4}.dialog-footer-inner[data-v-70a363f8]{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.multi-field-label[data-v-70a363f8]{align-items:center;width:100%;display:flex}.btn-label-action[data-v-70a363f8]{margin-left:12px}.recruit-form-item[data-v-70a363f8] .el-form-item__content,.speaker-form-item[data-v-70a363f8] .el-form-item__content{width:100%}.multi-input-list[data-v-70a363f8]{gap:8px;width:100%;display:grid}.multi-input-row[data-v-70a363f8]{align-items:center;gap:8px;display:flex}.speaker-block[data-v-70a363f8]{border:1px solid var(--el-border-color-lighter);box-sizing:border-box;border-radius:6px;width:100%;margin-bottom:8px;padding:10px 12px}.speaker-field-row[data-v-70a363f8],.speaker-field-row[data-v-70a363f8] .el-input{width:100%}.speaker-block-head[data-v-70a363f8]{justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px;font-weight:500;display:flex}.speaker-block-actions[data-v-70a363f8]{gap:8px;display:flex}.text-mute[data-v-70a363f8]{color:var(--el-text-color-placeholder);font-size:13px}.teacher-pick-search[data-v-70a363f8]{width:100%} diff --git a/public/admin/assets/courses-UVsgHlKI.js b/public/admin/assets/courses-UVsgHlKI.js new file mode 100644 index 0000000..aa98ab8 --- /dev/null +++ b/public/admin/assets/courses-UVsgHlKI.js @@ -0,0 +1,16 @@ +import{a as e,i as t,n,r,t as i}from"./rolldown-runtime-BYbx6iT9.js";import{$t as a,At as o,Bt as s,C as c,Ct as l,D as u,Dt as d,E as f,Et as p,Ft as m,G as h,Gt as g,Jt as _,Kt as v,Nt as y,Ot as b,Pt as x,Rt as S,S as C,T as w,Tt as T,Vt as E,Wt as ee,X as D,Xt as te,Y as O,Yt as k,at as A,b as j,d as ne,en as re,f as ie,ht as M,i as ae,kt as N,m as oe,nn as se,o as ce,ot as le,q as ue,qt as de,rt as fe,tn as pe,u as me,wt as he,x as P,y as ge,zt as _e}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{c as F,l as I,s as ve}from"./index-spAvC8uC.js";import{r as ye,t as be}from"./RichTextEditor-DmYY0g1b.js";import{t as xe}from"./usePageLoad-DFTLo_Lv.js";import{a as Se,c as Ce,i as we,l as Te,n as Ee,o as De,r as Oe,s as ke,t as Ae,u as je}from"./courses-zNh6OjgF.js";import{a as Me,i as Ne,o as Pe,s as Fe}from"./admin-list-CBoToEFo.js";import{f as Ie}from"./teachers-DKRkEeCz.js";import{a as Le,s as Re}from"./dict-BUAS3PXv.js";import{i as ze,n as Be,o as Ve,r as He,t as Ue}from"./csv-export-DNdEwjVR.js";import{a as We}from"./news-CJtsCAE0.js";function Ge(e){Object.getOwnPropertySymbols(e).forEach(t=>{hi[t]=e[t]})}function Ke(e,t=``){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:bi}}function qe(e,t,n,r,i,a,o,s=!1,c=!1,l=!1,u=bi){return e&&(s?(e.helper(Fr),e.helper(st(e.inSSR,l))):e.helper(ot(e.inSSR,l)),o&&e.helper(qr)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:a,directives:o,isBlock:s,disableTracking:c,isComponent:l,loc:u}}function L(e,t=bi){return{type:17,loc:t,elements:e}}function Je(e,t=bi){return{type:15,loc:t,properties:e}}function Ye(e,t){return{type:16,loc:bi,key:v(e)?R(e,!0):e,value:t}}function R(e,t=!1,n=bi,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function Xe(e,t){return{type:5,loc:t,content:v(e)?R(e,!1,t):e}}function Ze(e,t=bi){return{type:8,loc:t,children:e}}function z(e,t=[],n=bi){return{type:14,loc:n,callee:e,arguments:t}}function B(e,t=void 0,n=!1,r=!1,i=bi){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:i}}function Qe(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:bi}}function $e(e,t,n=!1,r=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:r,needArraySpread:!1,loc:bi}}function et(e){return{type:21,body:e,loc:bi}}function tt(e){return{type:22,elements:e,loc:bi}}function nt(e,t,n){return{type:23,test:e,consequent:t,alternate:n,loc:bi}}function rt(e,t){return{type:24,left:e,right:t,loc:bi}}function it(e){return{type:25,expressions:e,loc:bi}}function at(e){return{type:26,returns:e,loc:bi}}function ot(e,t){return e||t?Rr:zr}function st(e,t){return e||t?Ir:Lr}function ct(e,{helper:t,removeHelper:n,inSSR:r}){e.isBlock||(e.isBlock=!0,n(ot(r,e.isComponent)),t(Fr),t(st(r,e.isComponent)))}function lt(e){return e>=97&&e<=122||e>=65&&e<=90}function ut(e){return e===32||e===10||e===9||e===12||e===13}function dt(e){return e===47||e===62||ut(e)}function ft(e){let t=new Uint8Array(e.length);for(let n=0;n{e&&Ot(e,t)});break;case`RestElement`:Ot(e.argument,t);break;case`AssignmentPattern`:Ot(e.left,t);break}return t}function kt(e){return Mi.includes(e.type)?kt(e.expression):e}function At(e){switch(e){case`Teleport`:case`teleport`:return jr;case`Suspense`:case`suspense`:return Mr;case`KeepAlive`:case`keep-alive`:return Nr;case`BaseTransition`:case`base-transition`:return Pr}}function jt(e,t,n=t.length){return Mt({offset:e.offset,line:e.line,column:e.column},t,n)}function Mt(e,t,n=t.length){let r=0,i=-1;for(let e=0;ee.type===7&&e.name===`bind`&&(!e.arg||e.arg.type!==4||!e.arg.isStatic))}function Rt(e){return e.type===5||e.type===2}function zt(e){return e.type===7&&e.name===`pre`}function Bt(e){return e.type===7&&e.name===`slot`}function Vt(e){return e.type===1&&e.tagType===3}function Ht(e){return e.type===1&&e.tagType===2}function Ut(e,t=[]){if(e&&!v(e)&&e.type===14){let n=e.callee;if(!v(n)&&qi.has(n))return Ut(e.arguments[0],t.concat(e))}return[e,t]}function Wt(e,t,n){let r,i=e.type===13?e.props:e.arguments[2],a=[],o;if(i&&!v(i)&&i.type===14){let e=Ut(i);i=e[0],a=e[1],o=a[a.length-1]}if(i==null||v(i))r=Je([t]);else if(i.type===14){let e=i.arguments[0];!v(e)&&e.type===15?Gt(t,e)||e.properties.unshift(t):i.callee===ri?r=z(n.helper(Qr),[Je([t]),i]):i.arguments.unshift(Je([t])),!r&&(r=i)}else i.type===15?(Gt(t,i)||i.properties.unshift(t),r=i):(r=z(n.helper(Qr),[Je([t]),i]),o&&o.callee===ni&&(o=a[a.length-2]));e.type===13?o?o.arguments[0]=r:e.props=r:o?o.arguments[0]=r:e.arguments[2]=r}function Gt(e,t){let n=!1;if(e.key.type===4){let r=e.key.content;n=t.properties.some(e=>e.key.type===4&&e.key.content===r)}return n}function Kt(e,t){return`_${t}_${e.replace(/[^\w]/g,(t,n)=>t===`-`?`_`:e.charCodeAt(n).toString())}`}function qt(e,t){if(!e||Object.keys(t).length===0)return!1;switch(e.type){case 1:for(let n=0;nqt(e,t));case 11:return qt(e.source,t)?!0:e.children.some(e=>qt(e,t));case 9:return e.branches.some(e=>qt(e,t));case 10:return qt(e.condition,t)?!0:e.children.some(e=>qt(e,t));case 4:return!e.isStatic&&Fi(e.content)&&!!t[e.content];case 8:return e.children.some(e=>s(e)&&qt(e,t));case 5:case 12:return qt(e.content,t);case 2:case 3:case 20:return!1;default:return!1}}function Jt(e){return e.type===14&&e.callee===pi?e.arguments[1].returns:e}function Yt(e){for(let t=0;t{let i=t.start.offset+n;return _n(e,!1,pn(i,i+e.length),0,+!!r)},s={source:o(a.trim(),n.indexOf(a,i.length)),value:void 0,key:void 0,index:void 0,finalized:!1},c=i.trim().replace(sa,``).trim(),l=i.indexOf(c),u=c.match(oa);if(u){c=c.replace(oa,``).trim();let e=u[1].trim(),t;if(e&&(t=n.indexOf(e,l+c.length),s.key=o(e,t,!0)),u[2]){let r=u[2].trim();r&&(s.index=o(r,n.indexOf(r,s.key?t+e.length:l+c.length),!0))}}return c&&(s.value=o(c,l,!0)),s}function $t(e,t){return Zi.slice(e,t)}function en(e){aa.inSFCRoot&&(Qi.innerLoc=pn(e+1,e+1)),fn(Qi);let{tag:t,ns:n}=Qi;n===0&&H.isPreTag(t)&&na++,H.isVoidTag(t)?nn(Qi,e):(W.unshift(Qi),(n===1||n===2)&&(aa.inXML=!0)),Qi=null}function tn(e,t,n){{let t=W[0]&&W[0].tag;t!==`script`&&t!==`style`&&e.includes(`&`)&&(e=H.decodeEntities(e,!1))}let r=W[0]||Xi,i=r.children[r.children.length-1];i&&i.type===2?(i.content+=e,hn(i.loc,n)):r.children.push({type:2,content:e,loc:pn(t,n)})}function nn(e,t,n=!1){n?hn(e.loc,an(t,60)):hn(e.loc,rn(t,62)+1),aa.inSFCRoot&&(e.children.length?e.innerLoc.end=N({},e.children[e.children.length-1].loc.end):e.innerLoc.end=N({},e.innerLoc.start),e.innerLoc.source=$t(e.innerLoc.start.offset,e.innerLoc.end.offset));let{tag:r,ns:i,children:a}=e;if(ra||(r===`slot`?e.tagType=2:on(e)?e.tagType=3:sn(e)&&(e.tagType=1)),aa.inRCDATA||(e.children=ln(a)),i===0&&H.isIgnoreNewlineTag(r)){let e=a[0];e&&e.type===2&&(e.content=e.content.replace(/^\r?\n/,``))}i===0&&H.isPreTag(r)&&na--,ia===e&&(ra=aa.inVPre=!1,ia=null),aa.inXML&&(W[0]?W[0].ns:H.ns)===0&&(aa.inXML=!1);{let t=e.props;if(!aa.inSFCRoot&&mt(`COMPILER_NATIVE_TEMPLATE`,H)&&e.tag===`template`&&!on(e)){let t=W[0]||Xi,n=t.children.indexOf(e);t.children.splice(n,1,...e.children)}let n=t.find(e=>e.type===6&&e.name===`inline-template`);n&&ht(`COMPILER_INLINE_TEMPLATE`,H,n.loc)&&e.children.length&&(n.value={type:2,content:$t(e.children[0].loc.start.offset,e.children[e.children.length-1].loc.end.offset),loc:n.loc})}}function rn(e,t){let n=e;for(;Zi.charCodeAt(n)!==t&&n=0;)n--;return n}function on({tag:e,props:t}){if(e===`template`){for(let e=0;e64&&e<91}function ln(e){let t=H.whitespace!==`preserve`,n=!1;for(let r=0;re.type!==3);return t.length===1&&t[0].type===1&&!Ht(t[0])?t[0]:null}function Cn(e,t,n,r=!1,i=!1){let{children:a}=e,o=[];for(let t=0;t0){if(e>=2){s.codegenNode.patchFlag=-1,o.push(s);continue}}else{let e=s.codegenNode;if(e.type===13){let t=e.patchFlag;if((t===void 0||t===512||t===1)&&En(s,n)>=2){let t=Dn(s);t&&(e.props=n.hoist(t))}e.dynamicProps&&=n.hoist(e.dynamicProps)}}}else if(s.type===12&&(r?0:wn(s,n))>=2){s.codegenNode.type===14&&s.codegenNode.arguments.length>0&&s.codegenNode.arguments.push(`-1`),o.push(s);continue}if(s.type===1){let t=s.tagType===1;t&&n.scopes.vSlot++,Cn(s,e,n,!1,i),t&&n.scopes.vSlot--}else if(s.type===11)Cn(s,e,n,s.children.length===1,!0);else if(s.type===9)for(let t=0;te.key===t||e.key.content===t);return n&&n.value}}o.length&&n.transformHoist&&n.transformHoist(a,n,e)}function wn(e,t){let{constantCache:n}=t;switch(e.type){case 1:if(e.tagType!==0)return 0;let r=n.get(e);if(r!==void 0)return r;let i=e.codegenNode;if(i.type!==13||i.isBlock&&e.tag!==`svg`&&e.tag!==`foreignObject`&&e.tag!==`math`)return 0;if(i.patchFlag===void 0){let r=3,a=En(e,t);if(a===0)return n.set(e,0),0;a1)for(let i=0;in&&(D.childIndex--,D.onNodeRemoved()),D.parent.children.splice(n,1)},onNodeRemoved:p,addIdentifiers(e){},removeIdentifiers(e){},hoist(e){v(e)&&(e=R(e)),D.hoists.push(e);let t=R(`_hoisted_${D.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache(e,t=!1,n=!1){let r=$e(D.cached.length,e,t,n);return D.cached.push(r),r}};return D.filters=new Set,D}function kn(e,t){let n=On(e,t);Mn(e,n),t.hoistStatic&&xn(e,n),t.ssr||An(e,n),e.helpers=new Set([...n.helpers.keys()]),e.components=[...n.components],e.directives=[...n.directives],e.imports=n.imports,e.hoists=n.hoists,e.temps=n.temps,e.cached=n.cached,e.transformed=!0,e.filters=[...n.filters]}function An(e,t){let{helper:n}=t,{children:r}=e;if(r.length===1){let n=Sn(e);if(n&&n.codegenNode){let r=n.codegenNode;r.type===13&&ct(r,t),e.codegenNode=r}else e.codegenNode=r[0]}else r.length>1&&(e.codegenNode=qe(t,n(Ar),void 0,e.children,64,void 0,void 0,!0,void 0,!1))}function jn(e,t){let n=0,r=()=>{n--};for(;nt===e:t=>e.test(t);return(e,r)=>{if(e.type===1){let{props:i}=e;if(e.tagType===3&&i.some(Bt))return;let a=[];for(let o=0;o0,p=!a&&r!==`module`;if(In(e,n),i(`function ${u?`ssrRender`:`render`}(${(u?[`_ctx`,`_push`,`_parent`,`_attrs`]:[`_ctx`,`_cache`]).join(`, `)}) {`),o(),p&&(i(`with (_ctx) {`),o(),f&&(i(`const { ${d.map(fa).join(`, `)} } = _Vue +`,-1),c())),e.components.length&&(Ln(e.components,`component`,n),(e.directives.length||e.temps>0)&&c()),e.directives.length&&(Ln(e.directives,`directive`,n),e.temps>0&&c()),e.filters&&e.filters.length&&(c(),Ln(e.filters,`filter`,n),c()),e.temps>0){i(`let `);for(let t=0;t0?`, `:``}_temp${t}`)}return(e.components.length||e.directives.length||e.temps)&&(i(` +`,0),c()),u||i(`return `),e.codegenNode?Vn(e.codegenNode,n):i(`null`),p&&(s(),i(`}`)),s(),i(`}`),{ast:e,code:n.code,preamble:``,map:n.map?n.map.toJSON():void 0}}function In(e,t){let{ssr:n,prefixIdentifiers:r,push:i,newline:a,runtimeModuleName:o,runtimeGlobalName:s,ssrRuntimeModuleName:c}=t,l=s,u=Array.from(e.helpers);u.length>0&&(i(`const _Vue = ${l} +`,-1),e.hoists.length&&i(`const { ${[Rr,zr,Br,Vr,Hr].filter(e=>u.includes(e)).map(fa).join(`, `)} } = _Vue +`,-1)),Rn(e.hoists,t),a(),i(`return `)}function Ln(e,t,{helper:n,push:r,newline:i,isTS:a}){let o=n(t===`filter`?Kr:t===`component`?Ur:Gr);for(let n=0;n3||!1;t.push(`[`),n&&t.indent(),Bn(e,t,n),n&&t.deindent(),t.push(`]`)}function Bn(e,t,n=!1,r=!0){let{push:i,newline:a}=t;for(let o=0;oe||`null`)}function Xn(e,t){let{push:n,helper:r,pure:i}=t,a=v(e.callee)?e.callee:r(e.callee);i&&n(da),n(a+`(`,-2,e),Bn(e.arguments,t),n(`)`)}function Zn(e,t){let{push:n,indent:r,deindent:i,newline:a}=t,{properties:o}=e;if(!o.length){n(`{}`,-2,e);return}let s=o.length>1||!1;n(s?`{`:`{ `),s&&r();for(let e=0;e `),(c||s)&&(n(`{`),r()),o?(c&&n(`return `),x(o)?zn(o,t):Vn(o,t)):s&&Vn(s,t),(c||s)&&(i(),n(`}`)),l&&(e.isNonScopedSlot&&n(`, undefined, true`),n(`)`))}function er(e,t){let{test:n,consequent:r,alternate:i,newline:a}=e,{push:o,indent:s,deindent:c,newline:l}=t;if(n.type===4){let e=!Fi(n.content);e&&o(`(`),Un(n,t),e&&o(`)`)}else o(`(`),Vn(n,t),o(`)`);a&&s(),t.indentLevel++,a||o(` `),o(`? `),Vn(r,t),t.indentLevel--,a&&l(),a||o(` `),o(`: `);let u=i.type===19;u||t.indentLevel++,Vn(i,t),u||t.indentLevel--,a&&c(!0)}function tr(e,t){let{push:n,helper:r,indent:i,deindent:a,newline:o}=t,{needPauseTracking:s,needArraySpread:c}=e;c&&n(`[...(`),n(`_cache[${e.index}] || (`),s&&(i(),n(`${r(si)}(-1`),e.inVOnce&&n(`, true`),n(`),`),o(),n(`(`)),n(`_cache[${e.index}] = `),Vn(e.value,t),s&&(n(`).cacheIndex = ${e.index},`),o(),n(`${r(si)}(1),`),o(),n(`_cache[${e.index}]`),a()),n(`)`),c&&n(`)]`)}function nr(e,t,n=!1,r=!1,i=Object.create(t.identifiers)){return e}function rr(e){return v(e)?e:e.type===4?e.content:e.children.map(rr).join(``)}function ir(e,t,n,r){if(t.name!==`else`&&(!t.exp||!t.exp.content.trim())){let r=t.exp?t.exp.loc:e.loc;n.onError(V(28,t.loc)),t.exp=R(`true`,!1,r)}if(t.name===`if`){let i=ar(e,t),a={type:9,loc:mn(e.loc),branches:[i]};if(n.replaceNode(a),r)return r(a,i,!0)}else{let i=n.parent.children,a=i.indexOf(e);for(;a-->=-1;){let o=i[a];if(o&&Zt(o)){n.removeNode(o);continue}if(o&&o.type===9){(t.name===`else-if`||t.name===`else`)&&o.branches[o.branches.length-1].condition===void 0&&n.onError(V(30,e.loc)),n.removeNode();let i=ar(e,t);o.branches.push(i);let a=r&&r(o,i,!1);Mn(i,n),a&&a(),n.currentNode=null}else n.onError(V(30,e.loc));break}}}function ar(e,t){let n=e.tagType===3;return{type:10,loc:e.loc,condition:t.name===`else`?void 0:t.exp,children:n&&!Pt(e,`for`)?e.children:[e],userKey:Ft(e,`key`),isTemplateIf:n}}function or(e,t,n){return e.condition?Qe(e.condition,sr(e,t,n),z(n.helper(Br),[`""`,`true`])):sr(e,t,n)}function sr(e,t,n){let{helper:r}=n,i=Ye(`key`,R(`${t}`,!1,bi,2)),{children:a}=e,o=a[0];if(a.length!==1||o.type!==1)if(a.length===1&&o.type===11){let e=o.codegenNode;return Wt(e,i,n),e}else return qe(n,r(Ar),Je([i]),a,64,void 0,void 0,!0,!1,!1,e.loc);else{let e=o.codegenNode,t=Jt(e);return t.type===13&&ct(t,n),Wt(t,i,n),e}}function cr(e){for(;;)if(e.type===19)if(e.alternate.type===19)e=e.alternate;else return e;else e.type===20&&(e=e.value)}function lr(e,t,n,r){if(!t.exp){n.onError(V(31,t.loc));return}let i=t.forParseResult;if(!i){n.onError(V(32,t.loc));return}ur(i,n);let{addIdentifiers:a,removeIdentifiers:o,scopes:s}=n,{source:c,value:l,key:u,index:d}=i,f={type:11,loc:t.loc,source:c,valueAlias:l,keyAlias:u,objectIndexAlias:d,parseResult:i,children:Vt(e)?e.children:[e]};n.replaceNode(f),s.vFor++;let p=r&&r(f);return()=>{s.vFor--,p&&p()}}function ur(e,t){e.finalized||=!0}function dr({value:e,key:t,index:n},r=[]){return fr([e,t,n,...r])}function fr(e){let t=e.length;for(;t--&&!e[t];);return e.slice(0,t+1).map((e,t)=>e||R(`_`.repeat(t+1),!1))}function pr(e,t,n=ya){t.helper(ui);let{children:r,loc:i}=e,a=[],o=[],s=t.scopes.vSlot>0||t.scopes.vFor>0,c=Pt(e,`slot`,!0);if(c){let{arg:e,exp:t}=c;e&&!Ni(e)&&(s=!0),a.push(Ye(e||R(`default`,!0),n(t,void 0,r,i)))}let l=!1,u=!1,d=[],f=new Set,p=0;for(let e=0;e{let a=n(e,void 0,r,i);return t.compatConfig&&(a.isNonScopedSlot=!0),Ye(`default`,a)};l?d.length&&!d.every(Xt)&&(u?t.onError(V(39,d[0].loc)):a.push(e(void 0,d))):a.push(e(void 0,r))}let m=s?2:hr(e.children)?3:1,h=Je(a.concat(Ye(`_`,R(m+``,!1))),i);return o.length&&(h=z(t.helper(Xr),[h,L(o)])),{slots:h,hasDynamicSlots:s}}function mr(e,t,n){let r=[Ye(`name`,e),Ye(`fn`,t)];return n!=null&&r.push(Ye(`key`,R(String(n),!0))),Je(r)}function hr(e){for(let t=0;t0,p=!1,h=0,g=!1,_=!1,v=!1,y=!1,b=!1,x=!1,S=[],C=e=>{l.length&&(u.push(Je(vr(l),s)),l=[]),e&&u.push(e)},w=()=>{t.scopes.vFor>0&&l.push(Ye(R(`ref_for`,!0),R(`true`)))},T=({key:e,value:n})=>{if(Ni(e)){let a=e.content,o=E(a);if(o&&(!r||i)&&a.toLowerCase()!==`onclick`&&a!==`onUpdate:modelValue`&&!ee(a)&&(y=!0),o&&ee(a)&&(x=!0),o&&n.type===14&&(n=n.arguments[0]),n.type===20||(n.type===4||n.type===8)&&wn(n,t)>0)return;a===`ref`?g=!0:a===`class`?_=!0:a===`style`?v=!0:a!==`key`&&!S.includes(a)&&S.push(a),r&&(a===`class`||a===`style`)&&!S.includes(a)&&S.push(a)}else b=!0};for(let i=0;ie.content===`prop`)&&(h|=32);let S=t.directiveTransforms[n];if(S){let{props:n,needRuntime:r}=S(c,e,t);!a&&n.forEach(T),x&&i&&!Ni(i)?C(Je(n,s)):l.push(...n),r&&(d.push(c),de(r)&&ba.set(c,r))}else m(n)||(d.push(c),f&&(p=!0))}}let D;if(u.length?(C(),D=u.length>1?z(t.helper(Qr),u,s):u[0]):l.length&&(D=Je(vr(l),s)),b?h|=16:(_&&!r&&(h|=2),v&&!r&&(h|=4),S.length&&(h|=8),y&&(h|=32)),!p&&(h===0||h===32)&&(g||x||d.length>0)&&(h|=512),!t.inSSR&&D)switch(D.type){case 15:let e=-1,n=-1,r=!1;for(let t=0;tYe(e,t)),i))}return L(n,e.loc)}function xr(e){let t=`[`;for(let n=0,r=e.length;n0){let{props:n,directives:a}=_r(e,t,i,!1,!1);r=n,a.length&&t.onError(V(36,a[0].loc))}return{slotName:n,slotProps:r}}function wr(e=[]){return{props:e}}function Tr(e,t){if(e.type===4)Er(e,t);else for(let n=0;n=0&&(t=n.charAt(e),t===` `);e--);(!t||!Aa.test(t))&&(o=!0)}}m===void 0?m=n.slice(0,p).trim():u!==0&&g();function g(){h.push(n.slice(u,p).trim()),u=p+1}if(h.length){for(p=0;p{y(),Ar=Symbol(``),jr=Symbol(``),Mr=Symbol(``),Nr=Symbol(``),Pr=Symbol(``),Fr=Symbol(``),Ir=Symbol(``),Lr=Symbol(``),Rr=Symbol(``),zr=Symbol(``),Br=Symbol(``),Vr=Symbol(``),Hr=Symbol(``),Ur=Symbol(``),Wr=Symbol(``),Gr=Symbol(``),Kr=Symbol(``),qr=Symbol(``),Jr=Symbol(``),Yr=Symbol(``),Xr=Symbol(``),Zr=Symbol(``),Qr=Symbol(``),$r=Symbol(``),ei=Symbol(``),ti=Symbol(``),ni=Symbol(``),ri=Symbol(``),ii=Symbol(``),ai=Symbol(``),oi=Symbol(``),si=Symbol(``),ci=Symbol(``),li=Symbol(``),ui=Symbol(``),di=Symbol(``),fi=Symbol(``),pi=Symbol(``),mi=Symbol(``),hi={[Ar]:`Fragment`,[jr]:`Teleport`,[Mr]:`Suspense`,[Nr]:`KeepAlive`,[Pr]:`BaseTransition`,[Fr]:`openBlock`,[Ir]:`createBlock`,[Lr]:`createElementBlock`,[Rr]:`createVNode`,[zr]:`createElementVNode`,[Br]:`createCommentVNode`,[Vr]:`createTextVNode`,[Hr]:`createStaticVNode`,[Ur]:`resolveComponent`,[Wr]:`resolveDynamicComponent`,[Gr]:`resolveDirective`,[Kr]:`resolveFilter`,[qr]:`withDirectives`,[Jr]:`renderList`,[Yr]:`renderSlot`,[Xr]:`createSlots`,[Zr]:`toDisplayString`,[Qr]:`mergeProps`,[$r]:`normalizeClass`,[ei]:`normalizeStyle`,[ti]:`normalizeProps`,[ni]:`guardReactiveProps`,[ri]:`toHandlers`,[ii]:`camelize`,[ai]:`capitalize`,[oi]:`toHandlerKey`,[si]:`setBlockTracking`,[ci]:`pushScopeId`,[li]:`popScopeId`,[ui]:`withCtx`,[di]:`unref`,[fi]:`isRef`,[pi]:`withMemo`,[mi]:`isMemoSame`},gi={HTML:0,0:`HTML`,SVG:1,1:`SVG`,MATH_ML:2,2:`MATH_ML`},_i={ROOT:0,0:`ROOT`,ELEMENT:1,1:`ELEMENT`,TEXT:2,2:`TEXT`,COMMENT:3,3:`COMMENT`,SIMPLE_EXPRESSION:4,4:`SIMPLE_EXPRESSION`,INTERPOLATION:5,5:`INTERPOLATION`,ATTRIBUTE:6,6:`ATTRIBUTE`,DIRECTIVE:7,7:`DIRECTIVE`,COMPOUND_EXPRESSION:8,8:`COMPOUND_EXPRESSION`,IF:9,9:`IF`,IF_BRANCH:10,10:`IF_BRANCH`,FOR:11,11:`FOR`,TEXT_CALL:12,12:`TEXT_CALL`,VNODE_CALL:13,13:`VNODE_CALL`,JS_CALL_EXPRESSION:14,14:`JS_CALL_EXPRESSION`,JS_OBJECT_EXPRESSION:15,15:`JS_OBJECT_EXPRESSION`,JS_PROPERTY:16,16:`JS_PROPERTY`,JS_ARRAY_EXPRESSION:17,17:`JS_ARRAY_EXPRESSION`,JS_FUNCTION_EXPRESSION:18,18:`JS_FUNCTION_EXPRESSION`,JS_CONDITIONAL_EXPRESSION:19,19:`JS_CONDITIONAL_EXPRESSION`,JS_CACHE_EXPRESSION:20,20:`JS_CACHE_EXPRESSION`,JS_BLOCK_STATEMENT:21,21:`JS_BLOCK_STATEMENT`,JS_TEMPLATE_LITERAL:22,22:`JS_TEMPLATE_LITERAL`,JS_IF_STATEMENT:23,23:`JS_IF_STATEMENT`,JS_ASSIGNMENT_EXPRESSION:24,24:`JS_ASSIGNMENT_EXPRESSION`,JS_SEQUENCE_EXPRESSION:25,25:`JS_SEQUENCE_EXPRESSION`,JS_RETURN_STATEMENT:26,26:`JS_RETURN_STATEMENT`},vi={ELEMENT:0,0:`ELEMENT`,COMPONENT:1,1:`COMPONENT`,SLOT:2,2:`SLOT`,TEMPLATE:3,3:`TEMPLATE`},yi={NOT_CONSTANT:0,0:`NOT_CONSTANT`,CAN_SKIP_PATCH:1,1:`CAN_SKIP_PATCH`,CAN_CACHE:2,2:`CAN_CACHE`,CAN_STRINGIFY:3,3:`CAN_STRINGIFY`},bi={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:``},xi=new Uint8Array([123,123]),Si=new Uint8Array([125,125]),Ci={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101]),TextareaEnd:new Uint8Array([60,47,116,101,120,116,97,114,101,97])},wi=class{constructor(e,t){this.stack=e,this.cbs=t,this.state=1,this.buffer=``,this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=1,this.inRCDATA=!1,this.inXML=!1,this.inVPre=!1,this.newlines=[],this.mode=0,this.delimiterOpen=xi,this.delimiterClose=Si,this.delimiterIndex=-1,this.currentSequence=void 0,this.sequenceIndex=0}get inSFCRoot(){return this.mode===2&&this.stack.length===0}reset(){this.state=1,this.mode=0,this.buffer=``,this.sectionStart=0,this.index=0,this.baseState=1,this.inRCDATA=!1,this.currentSequence=void 0,this.newlines.length=0,this.delimiterOpen=xi,this.delimiterClose=Si}getPos(e){let t=1,n=e+1,r=this.newlines.length,i=-1;if(r>100){let t=-1,n=r;for(;t+1>>1;this.newlines[r]=0;t--)if(e>this.newlines[t]){i=t;break}return i>=0&&(t=i+2,n=e-this.newlines[i]),{column:n,line:t,offset:e}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(e){e===60?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):!this.inVPre&&e===this.delimiterOpen[0]&&(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e))}stateInterpolationOpen(e){if(e===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){let e=this.index+1-this.delimiterOpen.length;e>this.sectionStart&&this.cbs.ontext(this.sectionStart,e),this.state=3,this.sectionStart=e}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(e)):(this.state=1,this.stateText(e))}stateInterpolation(e){e===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(e))}stateInterpolationClose(e){e===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(e))}stateSpecialStartSequence(e){let t=this.sequenceIndex===this.currentSequence.length;if(!(t?dt(e):(e|32)===this.currentSequence[this.sequenceIndex]))this.inRCDATA=!1;else if(!t){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=6,this.stateInTagName(e)}stateInRCDATA(e){if(this.sequenceIndex===this.currentSequence.length){if(e===62||ut(e)){let t=this.index-this.currentSequence.length;if(this.sectionStart=e||(this.state===28?this.currentSequence===Ci.CdataEnd?this.cbs.oncdata(this.sectionStart,e):this.cbs.oncomment(this.sectionStart,e):this.state===6||this.state===11||this.state===18||this.state===17||this.state===12||this.state===13||this.state===14||this.state===15||this.state===16||this.state===20||this.state===19||this.state===21||this.state===9||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){}},Ti={COMPILER_IS_ON_ELEMENT:`COMPILER_IS_ON_ELEMENT`,COMPILER_V_BIND_SYNC:`COMPILER_V_BIND_SYNC`,COMPILER_V_BIND_OBJECT_ORDER:`COMPILER_V_BIND_OBJECT_ORDER`,COMPILER_V_ON_NATIVE:`COMPILER_V_ON_NATIVE`,COMPILER_V_IF_V_FOR_PRECEDENCE:`COMPILER_V_IF_V_FOR_PRECEDENCE`,COMPILER_NATIVE_TEMPLATE:`COMPILER_NATIVE_TEMPLATE`,COMPILER_INLINE_TEMPLATE:`COMPILER_INLINE_TEMPLATE`,COMPILER_FILTERS:`COMPILER_FILTERS`},Ei={COMPILER_IS_ON_ELEMENT:{message:`Platform-native elements with "is" prop will no longer be treated as components in Vue 3 unless the "is" value is explicitly prefixed with "vue:".`,link:`https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html`},COMPILER_V_BIND_SYNC:{message:e=>`.sync modifier for v-bind has been removed. Use v-model with argument instead. \`v-bind:${e}.sync\` should be changed to \`v-model:${e}\`.`,link:`https://v3-migration.vuejs.org/breaking-changes/v-model.html`},COMPILER_V_BIND_OBJECT_ORDER:{message:`v-bind="obj" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.`,link:`https://v3-migration.vuejs.org/breaking-changes/v-bind.html`},COMPILER_V_ON_NATIVE:{message:`.native modifier for v-on has been removed as is no longer necessary.`,link:`https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html`},COMPILER_V_IF_V_FOR_PRECEDENCE:{message:`v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with