This commit is contained in:
2026-09-18 17:48:09 +07:00
parent f2c0b1c917
commit 3925879784
87 changed files with 1391 additions and 1149 deletions
@@ -1 +1 @@
import{M as e,k as t}from"./client-DoYgjHB1.js";var n=t({name:`Add`,render(){return e(`svg`,{width:`512`,height:`512`,viewBox:`0 0 512 512`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},e(`path`,{d:`M256 112V400M400 256H112`,stroke:`currentColor`,"stroke-width":`32`,"stroke-linecap":`round`,"stroke-linejoin":`round`}))}});export{n as t};
import{M as e,k as t}from"./client-E8nWUy_w.js";var n=t({name:`Add`,render(){return e(`svg`,{width:`512`,height:`512`,viewBox:`0 0 512 512`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},e(`path`,{d:`M256 112V400M400 256H112`,stroke:`currentColor`,"stroke-width":`32`,"stroke-linecap":`round`,"stroke-linejoin":`round`}))}});export{n as t};
@@ -1,4 +1,4 @@
import{I as e,M as t,b as n,ft as r,k as i}from"./client-DoYgjHB1.js";import{B as a,G as o,J as s,K as c,M as l,N as u,V as d,Y as f,Z as p,o as m,r as h,t as g}from"./light-DZR0fP_1.js";import{r as _}from"./css-DEmdllcC.js";import{a as v,r as y}from"./resolve-slot-DCSOtw1o.js";import{B as b,E as x,F as S,L as C,P as w,R as T,T as E,U as D,z as O}from"./index-D97zgrb7.js";function k(e){let{lineHeight:t,borderRadius:n,fontWeightStrong:r,baseColor:i,dividerColor:o,actionColor:s,textColor1:c,textColor2:l,closeColorHover:u,closeColorPressed:f,closeIconColor:p,closeIconColorHover:m,closeIconColorPressed:h,infoColor:g,successColor:_,warningColor:v,errorColor:y,fontSize:b}=e;return Object.assign(Object.assign({},x),{fontSize:b,lineHeight:t,titleFontWeight:r,borderRadius:n,border:`1px solid ${o}`,color:s,titleTextColor:c,iconColor:l,contentTextColor:l,closeBorderRadius:n,closeColorHover:u,closeColorPressed:f,closeIconColor:p,closeIconColorHover:m,closeIconColorPressed:h,borderInfo:`1px solid ${d(i,a(g,{alpha:.25}))}`,colorInfo:d(i,a(g,{alpha:.08})),titleTextColorInfo:c,iconColorInfo:g,contentTextColorInfo:l,closeColorHoverInfo:u,closeColorPressedInfo:f,closeIconColorInfo:p,closeIconColorHoverInfo:m,closeIconColorPressedInfo:h,borderSuccess:`1px solid ${d(i,a(_,{alpha:.25}))}`,colorSuccess:d(i,a(_,{alpha:.08})),titleTextColorSuccess:c,iconColorSuccess:_,contentTextColorSuccess:l,closeColorHoverSuccess:u,closeColorPressedSuccess:f,closeIconColorSuccess:p,closeIconColorHoverSuccess:m,closeIconColorPressedSuccess:h,borderWarning:`1px solid ${d(i,a(v,{alpha:.33}))}`,colorWarning:d(i,a(v,{alpha:.08})),titleTextColorWarning:c,iconColorWarning:v,contentTextColorWarning:l,closeColorHoverWarning:u,closeColorPressedWarning:f,closeIconColorWarning:p,closeIconColorHoverWarning:m,closeIconColorPressedWarning:h,borderError:`1px solid ${d(i,a(y,{alpha:.25}))}`,colorError:d(i,a(y,{alpha:.08})),titleTextColorError:c,iconColorError:y,contentTextColorError:l,closeColorHoverError:u,closeColorPressedError:f,closeIconColorError:p,closeIconColorHoverError:m,closeIconColorPressedError:h})}var A={name:`Alert`,common:g,self:k},j=c(`alert`,`
import{I as e,M as t,b as n,ft as r,k as i}from"./client-E8nWUy_w.js";import{B as a,G as o,J as s,K as c,M as l,N as u,V as d,Y as f,Z as p,o as m,r as h,t as g}from"./light-Dq0naAvE.js";import{r as _}from"./css-DEmdllcC.js";import{a as v,r as y}from"./resolve-slot-C9tdVP4f.js";import{B as b,E as x,F as S,L as C,P as w,R as T,T as E,U as D,z as O}from"./index-BxZQI6N2.js";function k(e){let{lineHeight:t,borderRadius:n,fontWeightStrong:r,baseColor:i,dividerColor:o,actionColor:s,textColor1:c,textColor2:l,closeColorHover:u,closeColorPressed:f,closeIconColor:p,closeIconColorHover:m,closeIconColorPressed:h,infoColor:g,successColor:_,warningColor:v,errorColor:y,fontSize:b}=e;return Object.assign(Object.assign({},x),{fontSize:b,lineHeight:t,titleFontWeight:r,borderRadius:n,border:`1px solid ${o}`,color:s,titleTextColor:c,iconColor:l,contentTextColor:l,closeBorderRadius:n,closeColorHover:u,closeColorPressed:f,closeIconColor:p,closeIconColorHover:m,closeIconColorPressed:h,borderInfo:`1px solid ${d(i,a(g,{alpha:.25}))}`,colorInfo:d(i,a(g,{alpha:.08})),titleTextColorInfo:c,iconColorInfo:g,contentTextColorInfo:l,closeColorHoverInfo:u,closeColorPressedInfo:f,closeIconColorInfo:p,closeIconColorHoverInfo:m,closeIconColorPressedInfo:h,borderSuccess:`1px solid ${d(i,a(_,{alpha:.25}))}`,colorSuccess:d(i,a(_,{alpha:.08})),titleTextColorSuccess:c,iconColorSuccess:_,contentTextColorSuccess:l,closeColorHoverSuccess:u,closeColorPressedSuccess:f,closeIconColorSuccess:p,closeIconColorHoverSuccess:m,closeIconColorPressedSuccess:h,borderWarning:`1px solid ${d(i,a(v,{alpha:.33}))}`,colorWarning:d(i,a(v,{alpha:.08})),titleTextColorWarning:c,iconColorWarning:v,contentTextColorWarning:l,closeColorHoverWarning:u,closeColorPressedWarning:f,closeIconColorWarning:p,closeIconColorHoverWarning:m,closeIconColorPressedWarning:h,borderError:`1px solid ${d(i,a(y,{alpha:.25}))}`,colorError:d(i,a(y,{alpha:.08})),titleTextColorError:c,iconColorError:y,contentTextColorError:l,closeColorHoverError:u,closeColorPressedError:f,closeIconColorError:p,closeIconColorHoverError:m,closeIconColorPressedError:h})}var A={name:`Alert`,common:g,self:k},j=c(`alert`,`
line-height: var(--n-line-height);
border-radius: var(--n-border-radius);
position: relative;
@@ -1,4 +1,4 @@
import{B as e,L as t,M as n,P as r,b as i,ft as a,ht as o,k as s}from"./client-DoYgjHB1.js";import{B as c,G as l,J as u,K as d,M as f,N as p,V as m,X as h,Y as g,Z as _,a as v,i as y,o as b,r as x,z as S}from"./light-DZR0fP_1.js";import{i as C,n as w,r as T}from"./use-form-item-D1cm0evg.js";import{a as E,n as D}from"./resolve-slot-DCSOtw1o.js";import{H as O,I as k,M as A,P as j,S as M,X as N}from"./index-D97zgrb7.js";var P=typeof document<`u`&&typeof window<`u`,{cubicBezierEaseInOut:F}=v;function I({duration:e=`.2s`,delay:t=`.1s`}={}){return[l(`&.fade-in-width-expand-transition-leave-from, &.fade-in-width-expand-transition-enter-to`,{opacity:1}),l(`&.fade-in-width-expand-transition-leave-to, &.fade-in-width-expand-transition-enter-from`,`
import{B as e,L as t,M as n,P as r,b as i,ft as a,ht as o,k as s}from"./client-E8nWUy_w.js";import{B as c,G as l,J as u,K as d,M as f,N as p,V as m,X as h,Y as g,Z as _,a as v,i as y,o as b,r as x,z as S}from"./light-Dq0naAvE.js";import{i as C,n as w,r as T}from"./use-form-item-CVzWkQI_.js";import{a as E,n as D}from"./resolve-slot-C9tdVP4f.js";import{H as O,I as k,M as A,P as j,S as M,X as N}from"./index-BxZQI6N2.js";var P=typeof document<`u`&&typeof window<`u`,{cubicBezierEaseInOut:F}=v;function I({duration:e=`.2s`,delay:t=`.1s`}={}){return[l(`&.fade-in-width-expand-transition-leave-from, &.fade-in-width-expand-transition-enter-to`,{opacity:1}),l(`&.fade-in-width-expand-transition-leave-to, &.fade-in-width-expand-transition-enter-from`,`
opacity: 0!important;
margin-left: 0!important;
margin-right: 0!important;
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{C as e,D as t,Ft as n,G as r,O as i,Pt as a,S as o,_t as s,ft as c,h as l,k as u,q as d,tt as f,u as p,w as m,x as h}from"./client-DoYgjHB1.js";import{t as g}from"./Tag-BKa8f9x4.js";import{t as _}from"./Rate-Ckvkrqk1.js";import{n as v}from"./es-CapjP8is.js";import{t as y}from"./HeaderMenu-Di4-0v67.js";import{t as b}from"./_plugin-vue_export-helper-BDNMzG2s.js";var x={class:`center-block-custom`},S={class:`width1200 display-table catalog-grid`},C=[`onClick`],w={class:`scenario-content-block`},T={class:`scenario-title`},E={class:`scenario-description`},D={class:`scenario-rating`},O={key:1},k={key:2},A={class:`scenario-label`},j=b(u({__name:`CatalogPage`,setup(u){let b=v(),j=c([]),M=p();async function N(){j.value=[];let e=await b.GetScenariosCatalog({});j.value=e.scenarios}async function P(e){M.push(`/scenarios/`+e)}return N(),(c,u)=>(r(),m(l,null,[h(`div`,x,[h(`div`,S,[(r(!0),m(l,null,d(j.value,c=>(r(),m(`div`,{class:`scenario-block`,onClick:e=>P(c.id),key:c.id},[h(`div`,{class:`scenario-image-block scenario-image`,style:a({backgroundImage:`url(${c.image})`})},null,4),h(`div`,w,[h(`p`,T,n(c.name),1),h(`p`,E,n(c.description),1),h(`div`,D,[c.reviewsCount?(r(),o(s(_),{key:0,value:c.averageRating,readonly:``,"allow-half":``,size:`small`},null,8,[`value`])):e(``,!0),c.reviewsCount?(r(),m(`span`,O,n(c.averageRating?.toFixed(1))+` · `+n(c.reviewsCount),1)):(r(),m(`span`,k,`Пока нет оценок`))]),h(`p`,A,[i(s(g),{bordered:!1,type:`success`,class:`status-block`},{default:f(()=>[t(`Автор: `+n(c.author?.username),1)]),_:2},1024)])])],8,C))),128))])]),i(y,{active:`catalog`})],64))}}),[[`__scopeId`,`data-v-a11b829e`]]),M=u({__name:`CatalogView`,setup(e){return(e,t)=>(r(),o(j))}});export{M as default};
import{C as e,D as t,Ft as n,G as r,O as i,Pt as a,S as o,_t as s,ft as c,h as l,k as u,q as d,tt as f,u as p,w as m,x as h}from"./client-E8nWUy_w.js";import{t as g}from"./Tag-CsoYSeJy.js";import{t as _}from"./Rate-DbMEHDkO.js";import{n as v}from"./es-CxpWet60.js";import{t as y}from"./HeaderMenu-B8Xj0aQP.js";import{t as b}from"./_plugin-vue_export-helper-BDNMzG2s.js";var x={class:`center-block-custom`},S={class:`width1200 display-table catalog-grid`},C=[`onClick`],w={class:`scenario-content-block`},T={class:`scenario-title`},E={class:`scenario-description`},D={class:`scenario-rating`},O={key:1},k={key:2},A={class:`scenario-label`},j=b(u({__name:`CatalogPage`,setup(u){let b=v(),j=c([]),M=p();async function N(){j.value=[];let e=await b.GetScenariosCatalog({});j.value=e.scenarios}async function P(e){M.push(`/scenarios/`+e)}return N(),(c,u)=>(r(),m(l,null,[h(`div`,x,[h(`div`,S,[(r(!0),m(l,null,d(j.value,c=>(r(),m(`div`,{class:`scenario-block`,onClick:e=>P(c.id),key:c.id},[h(`div`,{class:`scenario-image-block scenario-image`,style:a({backgroundImage:`url(${c.image})`})},null,4),h(`div`,w,[h(`p`,T,n(c.name),1),h(`p`,E,n(c.description),1),h(`div`,D,[c.reviewsCount?(r(),o(s(_),{key:0,value:c.averageRating,readonly:``,"allow-half":``,size:`small`},null,8,[`value`])):e(``,!0),c.reviewsCount?(r(),m(`span`,O,n(c.averageRating?.toFixed(1))+` · `+n(c.reviewsCount),1)):(r(),m(`span`,k,`Пока нет оценок`))]),h(`p`,A,[i(s(g),{bordered:!1,type:`success`,class:`status-block`},{default:f(()=>[t(`Автор: `+n(c.author?.username),1)]),_:2},1024)])])],8,C))),128))])]),i(y,{active:`catalog`})],64))}}),[[`__scopeId`,`data-v-a11b829e`]]),M=u({__name:`CatalogView`,setup(e){return(e,t)=>(r(),o(j))}});export{M as default};
+1
View File
@@ -0,0 +1 @@
import{G as e,O as t,h as n,k as r,w as i}from"./client-E8nWUy_w.js";import{t as a}from"./DocsPage-8NvAL-iL.js";import{t as o}from"./HeaderMenu-B8Xj0aQP.js";var s=r({__name:`ConsentView`,setup(r){return(r,s)=>(e(),i(n,null,[t(a,{kind:`consent`}),t(o)],64))}});export{s as default};
-1
View File
@@ -1 +0,0 @@
import{G as e,O as t,h as n,k as r,w as i}from"./client-DoYgjHB1.js";import{t as a}from"./DocsPage-RScBkVHt.js";import{t as o}from"./HeaderMenu-Di4-0v67.js";var s=r({__name:`ConsentView`,setup(r){return(r,s)=>(e(),i(n,null,[t(a,{kind:`consent`}),t(o)],64))}});export{s as default};
@@ -1,4 +1,4 @@
import{D as e,Ft as t,G as n,H as r,M as i,O as a,S as o,_t as s,a as c,b as l,et as u,ft as d,k as f,tt as p,w as m,x as h}from"./client-DoYgjHB1.js";import{G as g,K as _,M as v,N as y,Y as b,Z as x,r as S}from"./light-DZR0fP_1.js";import{i as C}from"./css-DEmdllcC.js";import{t as w}from"./use-compitable-DUNzxmzx.js";import{t as T}from"./fade-in.cssr-qzHauS5Q.js";import{t as E}from"./Alert-Hf1kE_ow.js";import{M as D,N as O,Q as k,s as A}from"./index-D97zgrb7.js";import{n as j}from"./es-CapjP8is.js";import{t as M}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as N}from"./HeaderText-BO3DJgN2.js";var P=g([g(`@keyframes spin-rotate`,`
import{D as e,Ft as t,G as n,H as r,M as i,O as a,S as o,_t as s,a as c,b as l,et as u,ft as d,k as f,tt as p,w as m,x as h}from"./client-E8nWUy_w.js";import{G as g,K as _,M as v,N as y,Y as b,Z as x,r as S}from"./light-Dq0naAvE.js";import{i as C}from"./css-DEmdllcC.js";import{t as w}from"./use-compitable-ChIWeUtn.js";import{t as T}from"./fade-in.cssr-C7FS-iQO.js";import{t as E}from"./Alert-B3_-sqX_.js";import{M as D,N as O,Q as k,s as A}from"./index-BxZQI6N2.js";import{n as j}from"./es-CxpWet60.js";import{t as M}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as N}from"./HeaderText-Cu9OePP6.js";var P=g([g(`@keyframes spin-rotate`,`
from {
transform: rotate(0);
}
@@ -1 +1 @@
import{M as e,b as t,k as n}from"./client-DoYgjHB1.js";import{N as r,Z as i,o as a,r as o}from"./light-DZR0fP_1.js";import{n as s,t as c}from"./css-DEmdllcC.js";import{t as l}from"./flatten-C4-fSVx4.js";import{t as u}from"./get-slot-6kXJmSMP.js";import{u as d}from"./index-D97zgrb7.js";function f(){return d}var p={name:`Flex`,self:f},m=n({name:`Flex`,props:Object.assign(Object.assign({},o.props),{align:String,justify:{type:String,default:`start`},inline:Boolean,vertical:Boolean,reverse:Boolean,size:{type:[String,Number,Array],default:`medium`},wrap:{type:Boolean,default:!0}}),setup(e){let{mergedClsPrefixRef:n,mergedRtlRef:l}=r(e),u=o(`Flex`,`-flex`,void 0,p,e,n);return{rtlEnabled:a(`Flex`,l,n),mergedClsPrefix:n,margin:t(()=>{let{size:t}=e;if(Array.isArray(t))return{horizontal:t[0],vertical:t[1]};if(typeof t==`number`)return{horizontal:t,vertical:t};let{self:{[i(`gap`,t)]:n}}=u.value,{row:r,col:a}=s(n);return{horizontal:c(a),vertical:c(r)}})}},render(){let{vertical:t,reverse:n,align:r,inline:i,justify:a,margin:o,wrap:s,mergedClsPrefix:c,rtlEnabled:d}=this,f=l(u(this),!1);return f.length?e(`div`,{role:`none`,class:[`${c}-flex`,d&&`${c}-flex--rtl`],style:{display:i?`inline-flex`:`flex`,flexDirection:t&&!n?`column`:t&&n?`column-reverse`:!t&&n?`row-reverse`:`row`,justifyContent:a,flexWrap:!s||t?`nowrap`:`wrap`,alignItems:r,gap:`${o.vertical}px ${o.horizontal}px`}},f):null}});export{m as t};
import{M as e,b as t,k as n}from"./client-E8nWUy_w.js";import{N as r,Z as i,o as a,r as o}from"./light-Dq0naAvE.js";import{n as s,t as c}from"./css-DEmdllcC.js";import{t as l}from"./flatten-Pfh9hmmw.js";import{t as u}from"./get-slot-6kXJmSMP.js";import{u as d}from"./index-BxZQI6N2.js";function f(){return d}var p={name:`Flex`,self:f},m=n({name:`Flex`,props:Object.assign(Object.assign({},o.props),{align:String,justify:{type:String,default:`start`},inline:Boolean,vertical:Boolean,reverse:Boolean,size:{type:[String,Number,Array],default:`medium`},wrap:{type:Boolean,default:!0}}),setup(e){let{mergedClsPrefixRef:n,mergedRtlRef:l}=r(e),u=o(`Flex`,`-flex`,void 0,p,e,n);return{rtlEnabled:a(`Flex`,l,n),mergedClsPrefix:n,margin:t(()=>{let{size:t}=e;if(Array.isArray(t))return{horizontal:t[0],vertical:t[1]};if(typeof t==`number`)return{horizontal:t,vertical:t};let{self:{[i(`gap`,t)]:n}}=u.value,{row:r,col:a}=s(n);return{horizontal:c(a),vertical:c(r)}})}},render(){let{vertical:t,reverse:n,align:r,inline:i,justify:a,margin:o,wrap:s,mergedClsPrefix:c,rtlEnabled:d}=this,f=l(u(this),!1);return f.length?e(`div`,{role:`none`,class:[`${c}-flex`,d&&`${c}-flex--rtl`],style:{display:i?`inline-flex`:`flex`,flexDirection:t&&!n?`column`:t&&n?`column-reverse`:!t&&n?`row-reverse`:`row`,justifyContent:a,flexWrap:!s||t?`nowrap`:`wrap`,alignItems:r,gap:`${o.vertical}px ${o.horizontal}px`}},f):null}});export{m as t};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{C as e,G as t,Nt as n,O as r,_t as i,ft as a,k as o,tt as s,u as c,w as l,x as u}from"./client-DoYgjHB1.js";import{t as d}from"./index-D97zgrb7.js";import{n as f,t as p}from"./es-CapjP8is.js";import{t as m}from"./_plugin-vue_export-helper-BDNMzG2s.js";var h={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 24 24`},g=o({name:`MenuOutlined`,render:function(e,n){return t(),l(`svg`,h,n[0]||=[u(`path`,{d:`M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z`,fill:`currentColor`},null,-1)])}}),_={class:`menu-block`},v={class:`right-group`},y=m(o({__name:`HeaderMenu`,props:{active:{type:String,required:!1}},setup(o){let m=o,h=d(),y=c(),b=f(),x=a([]);async function S(){x.value=[];let e=await b.GetPermissions({});x.value=e.permissions}S();function C(e){return x.value.includes(e)}let w=()=>{y.push(`/login`)},T=()=>{h.logout(),y.push(`/login`)},E=a(!1);return(a,o)=>(t(),l(`div`,_,[u(`div`,{onClick:o[0]||=e=>E.value=!E.value,class:`burger-button`},[r(i(p),{class:`burger-icon`,size:`28`},{default:s(()=>[r(i(g))]),_:1})]),u(`div`,{class:n([`left-group menu-buttons-block`,E.value?``:`menu-buttons-block-active`])},[u(`div`,{class:n([`menu-item-block`,{active:m.active==`main`}]),onClick:o[1]||=e=>i(y).push(`/`)},` Главная `,2),i(h).hasRole(`user`)?(t(),l(`div`,{key:0,class:n([`menu-item-block`,{active:m.active==`office`}]),onClick:o[2]||=e=>i(y).push(`/office`)},` Кабинет `,2)):e(``,!0),C(`games_page`)?(t(),l(`div`,{key:1,class:n([`menu-item-block`,{active:m.active==`games`}]),onClick:o[3]||=e=>i(y).push(`/games`)},` Игры `,2)):e(``,!0),u(`div`,{class:n([`menu-item-block`,{active:m.active==`catalog`}]),onClick:o[4]||=e=>i(y).push(`/catalog`)},` Каталог `,2),C(`scenarios_page`)?(t(),l(`div`,{key:2,class:n([`menu-item-block`,{active:m.active==`scenarios`}]),onClick:o[5]||=e=>i(y).push(`/scenarios`)},` Мои сценарии `,2)):e(``,!0),C(`users_page`)?(t(),l(`div`,{key:3,class:n([`menu-item-block`,{active:m.active==`users`}]),onClick:o[6]||=e=>i(y).push(`/users`)},` Пользователи `,2)):e(``,!0),C(`reviews_page`)?(t(),l(`div`,{key:4,class:n([`menu-item-block`,{active:m.active==`reviews`}]),onClick:o[7]||=e=>i(y).push(`/reviews`)},` Отзывы `,2)):e(``,!0)],2),u(`div`,v,[i(h).isAuthenticated?e(``,!0):(t(),l(`div`,{key:0,class:`menu-item-block right`,onClick:w},` Войти `)),i(h).isAuthenticated?(t(),l(`div`,{key:1,class:`menu-item-block right`,onClick:T},` Выйти `)):e(``,!0)])]))}}),[[`__scopeId`,`data-v-f4b163cd`]]);export{y as t};
import{C as e,G as t,Nt as n,O as r,_t as i,ft as a,k as o,tt as s,u as c,w as l,x as u}from"./client-E8nWUy_w.js";import{t as d}from"./index-BxZQI6N2.js";import{n as f,t as p}from"./es-CxpWet60.js";import{t as m}from"./_plugin-vue_export-helper-BDNMzG2s.js";var h={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 24 24`},g=o({name:`MenuOutlined`,render:function(e,n){return t(),l(`svg`,h,n[0]||=[u(`path`,{d:`M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z`,fill:`currentColor`},null,-1)])}}),_={class:`menu-block`},v={class:`right-group`},y=m(o({__name:`HeaderMenu`,props:{active:{type:String,required:!1}},setup(o){let m=o,h=d(),y=c(),b=f(),x=a([]);async function S(){x.value=[];let e=await b.GetPermissions({});x.value=e.permissions}S();function C(e){return x.value.includes(e)}let w=()=>{y.push(`/login`)},T=()=>{h.logout(),y.push(`/login`)},E=a(!1);return(a,o)=>(t(),l(`div`,_,[u(`div`,{onClick:o[0]||=e=>E.value=!E.value,class:`burger-button`},[r(i(p),{class:`burger-icon`,size:`28`},{default:s(()=>[r(i(g))]),_:1})]),u(`div`,{class:n([`left-group menu-buttons-block`,E.value?``:`menu-buttons-block-active`])},[u(`div`,{class:n([`menu-item-block`,{active:m.active==`main`}]),onClick:o[1]||=e=>i(y).push(`/`)},` Главная `,2),i(h).hasRole(`user`)?(t(),l(`div`,{key:0,class:n([`menu-item-block`,{active:m.active==`office`}]),onClick:o[2]||=e=>i(y).push(`/office`)},` Кабинет `,2)):e(``,!0),C(`games_page`)?(t(),l(`div`,{key:1,class:n([`menu-item-block`,{active:m.active==`games`}]),onClick:o[3]||=e=>i(y).push(`/games`)},` Игры `,2)):e(``,!0),C(`games_page`)?(t(),l(`div`,{key:2,class:`menu-item-block`,onClick:o[4]||=e=>i(y).push(`/tickets/check`)},` Проверка билетов `)):e(``,!0),u(`div`,{class:n([`menu-item-block`,{active:m.active==`catalog`}]),onClick:o[5]||=e=>i(y).push(`/catalog`)},` Каталог `,2),C(`scenarios_page`)?(t(),l(`div`,{key:3,class:n([`menu-item-block`,{active:m.active==`scenarios`}]),onClick:o[6]||=e=>i(y).push(`/scenarios`)},` Мои сценарии `,2)):e(``,!0),C(`users_page`)?(t(),l(`div`,{key:4,class:n([`menu-item-block`,{active:m.active==`users`}]),onClick:o[7]||=e=>i(y).push(`/users`)},` Пользователи `,2)):e(``,!0),C(`reviews_page`)?(t(),l(`div`,{key:5,class:n([`menu-item-block`,{active:m.active==`reviews`}]),onClick:o[8]||=e=>i(y).push(`/reviews`)},` Отзывы `,2)):e(``,!0)],2),u(`div`,v,[i(h).isAuthenticated?e(``,!0):(t(),l(`div`,{key:0,class:`menu-item-block right`,onClick:w},` Войти `)),i(h).isAuthenticated?(t(),l(`div`,{key:1,class:`menu-item-block right`,onClick:T},` Выйти `)):e(``,!0)])]))}}),[[`__scopeId`,`data-v-e76ab6da`]]);export{y as t};
+1
View File
@@ -0,0 +1 @@
.menu-block[data-v-e76ab6da]{background-color:#222;justify-content:space-between;align-items:center;width:100%;height:70px;padding:20px;display:flex;position:fixed;top:0;left:0}.menu-item-block[data-v-e76ab6da]{cursor:pointer;margin-left:10px;padding:5px;font-size:1.1em;display:inline-block}.menu-item-block[data-v-e76ab6da]:hover{color:#63e2b7;opacity:.8}.right[data-v-e76ab6da]{margin-left:auto}.active[data-v-e76ab6da]{color:#63e2b7}@media (width>=1024px){.burger-button[data-v-e76ab6da]{display:none}}@media (width<1024px){.menu-buttons-block[data-v-e76ab6da]{background-color:#222;flex-direction:column;width:100%;padding-bottom:5px;display:flex;position:fixed;top:70px;left:0}.menu-buttons-block div[data-v-e76ab6da]{padding:15px 5px}.menu-buttons-block-active[data-v-e76ab6da]{position:relative;top:-1000px}.burger-icon[data-v-e76ab6da]{position:relative;top:5px}}
-1
View File
@@ -1 +0,0 @@
.menu-block[data-v-f4b163cd]{background-color:#222;justify-content:space-between;align-items:center;width:100%;height:70px;padding:20px;display:flex;position:fixed;top:0;left:0}.menu-item-block[data-v-f4b163cd]{cursor:pointer;margin-left:10px;padding:5px;font-size:1.1em;display:inline-block}.menu-item-block[data-v-f4b163cd]:hover{color:#63e2b7;opacity:.8}.right[data-v-f4b163cd]{margin-left:auto}.active[data-v-f4b163cd]{color:#63e2b7}@media (width>=1024px){.burger-button[data-v-f4b163cd]{display:none}}@media (width<1024px){.menu-buttons-block[data-v-f4b163cd]{background-color:#222;flex-direction:column;width:100%;padding-bottom:5px;display:flex;position:fixed;top:70px;left:0}.menu-buttons-block div[data-v-f4b163cd]{padding:15px 5px}.menu-buttons-block-active[data-v-f4b163cd]{position:relative;top:-1000px}.burger-icon[data-v-f4b163cd]{position:relative;top:5px}}
@@ -1 +1 @@
import{G as e,J as t,k as n,w as r}from"./client-DoYgjHB1.js";import{t as i}from"./_plugin-vue_export-helper-BDNMzG2s.js";var a={class:`text-with-font`},o=i(n({__name:`HeaderText`,setup(n){return(n,i)=>(e(),r(`span`,a,[t(n.$slots,`default`,{},void 0,!0)]))}}),[[`__scopeId`,`data-v-689794e0`]]);export{o as t};
import{G as e,J as t,k as n,w as r}from"./client-E8nWUy_w.js";import{t as i}from"./_plugin-vue_export-helper-BDNMzG2s.js";var a={class:`text-with-font`},o=i(n({__name:`HeaderText`,setup(n){return(n,i)=>(e(),r(`span`,a,[t(n.$slots,`default`,{},void 0,!0)]))}}),[[`__scopeId`,`data-v-689794e0`]]);export{o as t};
@@ -1 +1 @@
import{G as e,O as t,h as n,k as r,w as i,x as a}from"./client-DoYgjHB1.js";import{t as o}from"./HeaderMenu-Di4-0v67.js";var s=r({__name:`HomeView`,setup(r){return(r,s)=>(e(),i(n,null,[s[0]||=a(`div`,{class:`center-block-custom content-block center-middle-block-custom height80`},[a(`div`,null,[a(`h1`,{class:`font-text`},`Вечерний детектив`),a(`h3`,{class:`font-text`},`Дело №0`),a(`p`,{class:`content-text`},`Поиграем?`)])],-1),t(o,{active:`main`})],64))}});export{s as default};
import{G as e,O as t,h as n,k as r,w as i,x as a}from"./client-E8nWUy_w.js";import{t as o}from"./HeaderMenu-B8Xj0aQP.js";var s=r({__name:`HomeView`,setup(r){return(r,s)=>(e(),i(n,null,[s[0]||=a(`div`,{class:`center-block-custom content-block center-middle-block-custom height80`},[a(`div`,null,[a(`h1`,{class:`font-text`},`Вечерний детектив`),a(`h3`,{class:`font-text`},`Дело №0`),a(`p`,{class:`content-text`},`Поиграем?`)])],-1),t(o,{active:`main`})],64))}});export{s as default};
-234
View File
File diff suppressed because one or more lines are too long
+234
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{G as e,J as t,k as n,w as r,x as i}from"./client-DoYgjHB1.js";import{t as a}from"./_plugin-vue_export-helper-BDNMzG2s.js";var o={class:`main`},s={class:`message-cloud`},c=a(n({__name:`MessagePaper`,setup(n){return(n,a)=>(e(),r(`div`,o,[a[0]||=i(`div`,{class:`message-cloud-3`},null,-1),a[1]||=i(`div`,{class:`message-cloud-2`},null,-1),i(`div`,s,[t(n.$slots,`default`,{},void 0,!0)])]))}}),[[`__scopeId`,`data-v-0b1b8d3f`]]);export{c as t};
import{G as e,J as t,k as n,w as r,x as i}from"./client-E8nWUy_w.js";import{t as a}from"./_plugin-vue_export-helper-BDNMzG2s.js";var o={class:`main`},s={class:`message-cloud`},c=a(n({__name:`MessagePaper`,setup(n){return(n,a)=>(e(),r(`div`,o,[a[0]||=i(`div`,{class:`message-cloud-3`},null,-1),a[1]||=i(`div`,{class:`message-cloud-2`},null,-1),i(`div`,s,[t(n.$slots,`default`,{},void 0,!0)])]))}}),[[`__scopeId`,`data-v-0b1b8d3f`]]);export{c as t};
-108
View File
File diff suppressed because one or more lines are too long
+108
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{C as e,D as t,Ft as n,G as r,H as i,O as a,S as o,_t as s,ft as c,h as l,k as u,l as d,t as f,tt as p,w as m,x as h}from"./client-DoYgjHB1.js";import{t as g}from"./Card-Dsgh0iYh.js";import{t as _}from"./Button-BYKXYsqR.js";import{t as v}from"./use-message-7erCU9cl.js";import{t as y}from"./Space-q-PENlHW.js";import{t as b}from"./index-D97zgrb7.js";import{t as x}from"./HeaderMenu-Di4-0v67.js";import{t as S}from"./datetime-BJNH0M1T.js";var C={class:`center-block-custom`},w={class:`width700`},T={key:0,role:`alert`},E={key:0,role:`status`},D={key:1,role:`status`},O={key:2},k=u({__name:`ParticipationPage`,setup(u){let k=d(),A=new URLSearchParams(k.hash.slice(1)),j=A.get(`token`)||``,M=c(A.get(`answer`)===`cancelled`?`cancelled`:`confirmed`),N=f(),P=b(),F=v(),I=c(),L=c(!1),R=c(``);async function z(){L.value=!0,R.value=``;try{let e=await N.GetParticipation({token:j});if(e.error){R.value=e.error,F.error(e.error);return}I.value=e}catch{R.value=`Не удалось загрузить данные. Попробуйте ещё раз.`}finally{L.value=!1}}async function B(){if(!L.value){L.value=!0,R.value=``;try{let e=await N.AnswerParticipation({token:j,answer:M.value});e.status&&(I.value=e),e.error&&(R.value=e.error,F.error(e.error))}catch{R.value=`Не удалось сохранить ответ. Попробуйте ещё раз.`}finally{L.value=!1}}}return i(z),(i,c)=>(r(),m(l,null,[s(P).isAuthenticated?(r(),o(x,{key:0})):e(``,!0),h(`div`,C,[h(`div`,w,[a(s(g),{title:`Участие в игре`},{default:p(()=>[R.value?(r(),m(`p`,T,n(R.value),1)):e(``,!0),I.value?(r(),m(l,{key:1},[h(`h2`,null,n(I.value.gameName),1),h(`p`,null,`Команда: `+n(I.value.teamName),1),h(`p`,null,`Начало: `+n(s(S)(I.value.startAt)),1),h(`p`,null,`Участников: `+n(I.value.participantsCount),1),I.value.status===`confirmed`?(r(),m(`p`,E,` Участие подтверждено. Ждём вас на игре! Решение окончательное. `)):I.value.status===`cancelled`?(r(),m(`p`,D,` Запись отменена. Решение окончательное. `)):I.value.closed?(r(),m(`p`,O,` Приём ответов закрыт. Ваша запись сохранена со статусом «Ожидает ответа». `)):(r(),m(l,{key:3},[c[4]||=h(`p`,null,[h(`strong`,null,`Решение окончательное: изменить его нельзя.`)],-1),c[5]||=h(`p`,null,`Без ответа запись сохраняется со статусом «Ожидает ответа».`,-1),a(s(y),{vertical:``},{default:p(()=>[a(s(y),null,{default:p(()=>[a(s(_),{disabled:L.value,type:M.value===`confirmed`?`primary`:`default`,"aria-pressed":M.value===`confirmed`,onClick:c[0]||=e=>M.value=`confirmed`},{default:p(()=>[...c[2]||=[t(`Мы участвуем`,-1)]]),_:1},8,[`disabled`,`type`,`aria-pressed`]),a(s(_),{disabled:L.value,type:M.value===`cancelled`?`error`:`default`,"aria-pressed":M.value===`cancelled`,onClick:c[1]||=e=>M.value=`cancelled`},{default:p(()=>[...c[3]||=[t(`Мы не участвуем`,-1)]]),_:1},8,[`disabled`,`type`,`aria-pressed`])]),_:1}),a(s(_),{loading:L.value,disabled:L.value,type:M.value===`cancelled`?`error`:`primary`,onClick:B},{default:p(()=>[t(n(M.value===`confirmed`?`Подтверждаю участие`:`Подтверждаю отмену`),1)]),_:1},8,[`loading`,`disabled`,`type`])]),_:1})],64))],64)):(r(),o(s(_),{key:2,loading:L.value,onClick:z},{default:p(()=>[t(n(L.value?`Загрузка`:`Повторить`),1)]),_:1},8,[`loading`]))]),_:1})])])],64))}}),A=u({__name:`ParticipationView`,setup(e){return(e,t)=>(r(),o(k))}});export{A as default};
import{C as e,D as t,Ft as n,G as r,H as i,O as a,S as o,_t as s,ft as c,h as l,k as u,l as d,t as f,tt as p,w as m,x as h}from"./client-E8nWUy_w.js";import{t as g}from"./Card-Br_ZZw24.js";import{t as _}from"./Button-IiJ8YVHl.js";import{t as v}from"./use-message-Cgythpp-.js";import{t as y}from"./Space-BxcvBhjG.js";import{t as b}from"./index-BxZQI6N2.js";import{t as x}from"./HeaderMenu-B8Xj0aQP.js";import{t as S}from"./datetime-BJNH0M1T.js";var C={class:`center-block-custom`},w={class:`width700`},T={key:0,role:`alert`},E={key:0,role:`status`},D={key:1,role:`status`},O={key:2},k=u({__name:`ParticipationPage`,setup(u){let k=d(),A=new URLSearchParams(k.hash.slice(1)),j=A.get(`token`)||``,M=c(A.get(`answer`)===`cancelled`?`cancelled`:`confirmed`),N=f(),P=b(),F=v(),I=c(),L=c(!1),R=c(``);async function z(){L.value=!0,R.value=``;try{let e=await N.GetParticipation({token:j});if(e.error){R.value=e.error,F.error(e.error);return}I.value=e}catch{R.value=`Не удалось загрузить данные. Попробуйте ещё раз.`}finally{L.value=!1}}async function B(){if(!L.value){L.value=!0,R.value=``;try{let e=await N.AnswerParticipation({token:j,answer:M.value});e.status&&(I.value=e),e.error&&(R.value=e.error,F.error(e.error))}catch{R.value=`Не удалось сохранить ответ. Попробуйте ещё раз.`}finally{L.value=!1}}}return i(z),(i,c)=>(r(),m(l,null,[s(P).isAuthenticated?(r(),o(x,{key:0})):e(``,!0),h(`div`,C,[h(`div`,w,[a(s(g),{title:`Участие в игре`},{default:p(()=>[R.value?(r(),m(`p`,T,n(R.value),1)):e(``,!0),I.value?(r(),m(l,{key:1},[h(`h2`,null,n(I.value.gameName),1),h(`p`,null,`Команда: `+n(I.value.teamName),1),h(`p`,null,`Начало: `+n(s(S)(I.value.startAt)),1),h(`p`,null,`Участников: `+n(I.value.participantsCount),1),I.value.status===`confirmed`?(r(),m(`p`,E,` Участие подтверждено. Ждём вас на игре! Решение окончательное. `)):I.value.status===`cancelled`?(r(),m(`p`,D,` Запись отменена. Решение окончательное. `)):I.value.closed?(r(),m(`p`,O,` Приём ответов закрыт. Ваша запись сохранена со статусом «Ожидает ответа». `)):(r(),m(l,{key:3},[c[4]||=h(`p`,null,[h(`strong`,null,`Решение окончательное: изменить его нельзя.`)],-1),c[5]||=h(`p`,null,`Без ответа запись сохраняется со статусом «Ожидает ответа».`,-1),a(s(y),{vertical:``},{default:p(()=>[a(s(y),null,{default:p(()=>[a(s(_),{disabled:L.value,type:M.value===`confirmed`?`primary`:`default`,"aria-pressed":M.value===`confirmed`,onClick:c[0]||=e=>M.value=`confirmed`},{default:p(()=>[...c[2]||=[t(`Мы участвуем`,-1)]]),_:1},8,[`disabled`,`type`,`aria-pressed`]),a(s(_),{disabled:L.value,type:M.value===`cancelled`?`error`:`default`,"aria-pressed":M.value===`cancelled`,onClick:c[1]||=e=>M.value=`cancelled`},{default:p(()=>[...c[3]||=[t(`Мы не участвуем`,-1)]]),_:1},8,[`disabled`,`type`,`aria-pressed`])]),_:1}),a(s(_),{loading:L.value,disabled:L.value,type:M.value===`cancelled`?`error`:`primary`,onClick:B},{default:p(()=>[t(n(M.value===`confirmed`?`Подтверждаю участие`:`Подтверждаю отмену`),1)]),_:1},8,[`loading`,`disabled`,`type`])]),_:1})],64))],64)):(r(),o(s(_),{key:2,loading:L.value,onClick:z},{default:p(()=>[t(n(L.value?`Загрузка`:`Повторить`),1)]),_:1},8,[`loading`]))]),_:1})])])],64))}}),A=u({__name:`ParticipationView`,setup(e){return(e,t)=>(r(),o(k))}});export{A as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
import{G as e,O as t,h as n,k as r,w as i}from"./client-E8nWUy_w.js";import{t as a}from"./DocsPage-8NvAL-iL.js";import{t as o}from"./HeaderMenu-B8Xj0aQP.js";var s=r({__name:`PrivacyPolicyView`,setup(r){return(r,s)=>(e(),i(n,null,[t(a,{kind:`privacy`}),t(o)],64))}});export{s as default};
-1
View File
@@ -1 +0,0 @@
import{G as e,O as t,h as n,k as r,w as i}from"./client-DoYgjHB1.js";import{t as a}from"./DocsPage-RScBkVHt.js";import{t as o}from"./HeaderMenu-Di4-0v67.js";var s=r({__name:`PrivacyPolicyView`,setup(r){return(r,s)=>(e(),i(n,null,[t(a,{kind:`privacy`}),t(o)],64))}});export{s as default};
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
import{M as e,b as t,ft as n,ht as r,k as i,q as a}from"./client-DoYgjHB1.js";import{G as o,J as s,K as c,M as l,N as u,X as d,Y as f,Z as p,r as m,t as h}from"./light-DZR0fP_1.js";import{t as g}from"./use-merged-state-PkUq5wWw.js";import{i as _,n as v,r as y}from"./use-form-item-D1cm0evg.js";import{U as b}from"./index-D97zgrb7.js";function x(e){let{railColor:t}=e;return{itemColor:t,itemColorActive:`#FFCC33`,sizeSmall:`16px`,sizeMedium:`20px`,sizeLarge:`24px`}}var S={name:`Rate`,common:h,self:x},C=()=>e(`svg`,{viewBox:`0 0 512 512`},e(`path`,{d:`M394 480a16 16 0 01-9.39-3L256 383.76 127.39 477a16 16 0 01-24.55-18.08L153 310.35 23 221.2a16 16 0 019-29.2h160.38l48.4-148.95a16 16 0 0130.44 0l48.4 149H480a16 16 0 019.05 29.2L359 310.35l50.13 148.53A16 16 0 01394 480z`})),w=c(`rate`,{display:`inline-flex`,flexWrap:`nowrap`},[o(`&:hover`,[s(`item`,`
import{M as e,b as t,ft as n,ht as r,k as i,q as a}from"./client-E8nWUy_w.js";import{G as o,J as s,K as c,M as l,N as u,X as d,Y as f,Z as p,r as m,t as h}from"./light-Dq0naAvE.js";import{t as g}from"./use-merged-state-C1ccSDEx.js";import{i as _,n as v,r as y}from"./use-form-item-CVzWkQI_.js";import{U as b}from"./index-BxZQI6N2.js";function x(e){let{railColor:t}=e;return{itemColor:t,itemColorActive:`#FFCC33`,sizeSmall:`16px`,sizeMedium:`20px`,sizeLarge:`24px`}}var S={name:`Rate`,common:h,self:x},C=()=>e(`svg`,{viewBox:`0 0 512 512`},e(`path`,{d:`M394 480a16 16 0 01-9.39-3L256 383.76 127.39 477a16 16 0 01-24.55-18.08L153 310.35 23 221.2a16 16 0 019-29.2h160.38l48.4-148.95a16 16 0 0130.44 0l48.4 149H480a16 16 0 019.05 29.2L359 310.35l50.13 148.53A16 16 0 01394 480z`})),w=c(`rate`,{display:`inline-flex`,flexWrap:`nowrap`},[o(`&:hover`,[s(`item`,`
transition:
transform .1s var(--n-bezier),
color .3s var(--n-bezier);
@@ -1,4 +1,4 @@
import{M as e,k as t}from"./client-DoYgjHB1.js";var n=t({name:`Remove`,render(){return e(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},e(`line`,{x1:`400`,y1:`256`,x2:`112`,y2:`256`,style:`
import{M as e,k as t}from"./client-E8nWUy_w.js";var n=t({name:`Remove`,render(){return e(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},e(`line`,{x1:`400`,y1:`256`,x2:`112`,y2:`256`,style:`
fill: none;
stroke: currentColor;
stroke-linecap: round;
@@ -1 +1 @@
import{C as e,D as t,Ft as n,G as r,O as i,S as a,_t as o,ft as s,h as c,k as l,q as u,tt as d,w as f,x as p}from"./client-DoYgjHB1.js";import{t as m}from"./Card-Dsgh0iYh.js";import{t as h}from"./Button-BYKXYsqR.js";import{t as g}from"./Tag-BKa8f9x4.js";import{t as _}from"./use-message-7erCU9cl.js";import{t as v}from"./Flex-DwoicWGO.js";import{t as y}from"./Rate-Ckvkrqk1.js";import{n as b}from"./es-CapjP8is.js";import{t as x}from"./HeaderMenu-Di4-0v67.js";import{t as S}from"./_plugin-vue_export-helper-BDNMzG2s.js";var C={class:`center-block-custom`},w={class:`width1200`},T={class:`page-header`},E={class:`review-game`},D={class:`review-text`},O=S(l({__name:`ReviewsPage`,setup(l){let S=b(),O=_(),k=s([]);async function A(){let e=await S.GetReviewsForModeration({});if(e.error!=``){O.error(e.error);return}k.value=e.reviews||[]}async function j(e,t){let n=await S.ModerateGameReview({id:e.id,status:t});if(n.error!=``){O.error(n.error);return}await A()}return A(),(s,l)=>(r(),f(c,null,[p(`div`,C,[p(`div`,w,[p(`div`,T,[l[1]||=p(`h1`,null,`Отзывы`,-1),i(o(h),{onClick:A},{default:d(()=>[...l[0]||=[t(`Обновить`,-1)]]),_:1})]),k.value.length==0?(r(),a(o(m),{key:0},{default:d(()=>[...l[2]||=[t(`Очередь отзывов пуста.`,-1)]]),_:1})):e(``,!0),(r(!0),f(c,null,u(k.value,s=>(r(),a(o(m),{key:s.id,class:`review-card`},{default:d(()=>[i(o(v),{justify:`space-between`,align:`center`},{default:d(()=>[p(`div`,null,[p(`div`,E,n(s.gameName),1),p(`strong`,null,n(s.teamName),1)]),i(o(g),null,{default:d(()=>[t(n(s.status),1)]),_:2},1024)]),_:2},1024),i(o(y),{value:s.rating,readonly:``},null,8,[`value`]),p(`p`,D,n(s.text),1),s.status==`pending`?(r(),a(o(v),{key:0,justify:`end`},{default:d(()=>[i(o(h),{type:`success`,onClick:e=>j(s,`approved`)},{default:d(()=>[...l[3]||=[t(`Одобрить`,-1)]]),_:1},8,[`onClick`]),i(o(h),{type:`error`,ghost:``,onClick:e=>j(s,`rejected`)},{default:d(()=>[...l[4]||=[t(`Отклонить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):s.status==`approved`?(r(),a(o(v),{key:1,justify:`end`},{default:d(()=>[i(o(h),{type:`error`,ghost:``,onClick:e=>j(s,`hidden`)},{default:d(()=>[...l[5]||=[t(`Скрыть`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):e(``,!0)]),_:2},1024))),128))])]),i(x,{active:`reviews`})],64))}}),[[`__scopeId`,`data-v-e74ad3c9`]]),k=l({__name:`ReviewsView`,setup(e){return(e,t)=>(r(),a(O))}});export{k as default};
import{C as e,D as t,Ft as n,G as r,O as i,S as a,_t as o,ft as s,h as c,k as l,q as u,tt as d,w as f,x as p}from"./client-E8nWUy_w.js";import{t as m}from"./Card-Br_ZZw24.js";import{t as h}from"./Button-IiJ8YVHl.js";import{t as g}from"./Tag-CsoYSeJy.js";import{t as _}from"./use-message-Cgythpp-.js";import{t as v}from"./Flex-DQMJ_wrV.js";import{t as y}from"./Rate-DbMEHDkO.js";import{n as b}from"./es-CxpWet60.js";import{t as x}from"./HeaderMenu-B8Xj0aQP.js";import{t as S}from"./_plugin-vue_export-helper-BDNMzG2s.js";var C={class:`center-block-custom`},w={class:`width1200`},T={class:`page-header`},E={class:`review-game`},D={class:`review-text`},O=S(l({__name:`ReviewsPage`,setup(l){let S=b(),O=_(),k=s([]);async function A(){let e=await S.GetReviewsForModeration({});if(e.error!=``){O.error(e.error);return}k.value=e.reviews||[]}async function j(e,t){let n=await S.ModerateGameReview({id:e.id,status:t});if(n.error!=``){O.error(n.error);return}await A()}return A(),(s,l)=>(r(),f(c,null,[p(`div`,C,[p(`div`,w,[p(`div`,T,[l[1]||=p(`h1`,null,`Отзывы`,-1),i(o(h),{onClick:A},{default:d(()=>[...l[0]||=[t(`Обновить`,-1)]]),_:1})]),k.value.length==0?(r(),a(o(m),{key:0},{default:d(()=>[...l[2]||=[t(`Очередь отзывов пуста.`,-1)]]),_:1})):e(``,!0),(r(!0),f(c,null,u(k.value,s=>(r(),a(o(m),{key:s.id,class:`review-card`},{default:d(()=>[i(o(v),{justify:`space-between`,align:`center`},{default:d(()=>[p(`div`,null,[p(`div`,E,n(s.gameName),1),p(`strong`,null,n(s.teamName),1)]),i(o(g),null,{default:d(()=>[t(n(s.status),1)]),_:2},1024)]),_:2},1024),i(o(y),{value:s.rating,readonly:``},null,8,[`value`]),p(`p`,D,n(s.text),1),s.status==`pending`?(r(),a(o(v),{key:0,justify:`end`},{default:d(()=>[i(o(h),{type:`success`,onClick:e=>j(s,`approved`)},{default:d(()=>[...l[3]||=[t(`Одобрить`,-1)]]),_:1},8,[`onClick`]),i(o(h),{type:`error`,ghost:``,onClick:e=>j(s,`rejected`)},{default:d(()=>[...l[4]||=[t(`Отклонить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):s.status==`approved`?(r(),a(o(v),{key:1,justify:`end`},{default:d(()=>[i(o(h),{type:`error`,ghost:``,onClick:e=>j(s,`hidden`)},{default:d(()=>[...l[5]||=[t(`Скрыть`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):e(``,!0)]),_:2},1024))),128))])]),i(x,{active:`reviews`})],64))}}),[[`__scopeId`,`data-v-e74ad3c9`]]),k=l({__name:`ReviewsView`,setup(e){return(e,t)=>(r(),a(O))}});export{k as default};
@@ -1 +1 @@
import{C as e,D as t,Ft as n,G as r,O as i,S as a,_t as o,ft as s,h as c,k as l,l as u,q as d,tt as f,w as p,x as m}from"./client-DoYgjHB1.js";import{t as h}from"./Tag-BKa8f9x4.js";import{t as g}from"./use-message-7erCU9cl.js";import{t as _}from"./Rate-Ckvkrqk1.js";import{n as v}from"./es-CapjP8is.js";import{t as y}from"./HeaderMenu-Di4-0v67.js";import{t as b}from"./_plugin-vue_export-helper-BDNMzG2s.js";var x={class:`center-block-custom`},S={class:`width700`},C={class:`scenario-card`},w={class:`scenario-heading`},T={class:`scenario-title`},E={class:`scenario-image-frame`},D=[`src`,`alt`],O={class:`scenario-details`},k={class:`scenario-description`},A={class:`scenario-rating`},j={key:1},M={key:2},N={class:`scenario-author`},P={key:0,class:`reviews-section`},F={class:`review-heading`},I={class:`review-game`},L={class:`review-text`},R=b(l({__name:`ScenarioPage`,setup(l){let b=g(),R=v(),z=u().params.id,B=s([]),V=s({id:void 0,name:void 0,story:void 0,author:void 0,status:void 0,updatedAt:void 0,createdAt:void 0,publishedAt:void 0,averageRating:void 0,reviewsCount:void 0});async function H(e){let t=await R.GetScenario({id:e});if(t.error!=``){b.error(t.error);return}V.value=t.scenario}H(Number(z));async function U(e){let t=await R.GetScenarioReviews({scenarioId:e});if(t.error!=``){b.error(t.error);return}B.value=t.reviews||[]}return U(Number(z)),(s,l)=>(r(),p(c,null,[m(`div`,x,[m(`div`,S,[m(`section`,C,[m(`div`,w,[l[0]||=m(`p`,{class:`scenario-kicker`},`ДЕЛО ИЗ КАТАЛОГА`,-1),m(`h1`,T,n(V.value.name),1)]),m(`div`,E,[m(`img`,{class:`scenario-image`,src:V.value.image,alt:V.value.name},null,8,D)]),m(`div`,O,[m(`p`,k,n(V.value.description),1),m(`div`,A,[V.value.reviewsCount?(r(),a(o(_),{key:0,value:V.value.averageRating,readonly:``,"allow-half":``,size:`small`},null,8,[`value`])):e(``,!0),V.value.reviewsCount?(r(),p(`span`,j,n(V.value.averageRating?.toFixed(1))+` · `+n(V.value.reviewsCount)+` отзывов`,1)):(r(),p(`span`,M,`Пока нет оценок`))]),m(`div`,N,[i(o(h),{bordered:!1,type:`success`,class:`status-block`},{default:f(()=>[t(` Автор: `+n(V.value.author?.username),1)]),_:1})]),B.value.length?(r(),p(`section`,P,[l[1]||=m(`h2`,{class:`reviews-title`},`Отзывы команд`,-1),(r(!0),p(c,null,d(B.value,e=>(r(),p(`article`,{key:e.id,class:`review-card`},[m(`div`,F,[m(`strong`,null,n(e.teamName),1),i(o(_),{value:e.rating,readonly:``,size:`small`},null,8,[`value`])]),m(`div`,I,n(e.gameName),1),m(`p`,L,n(e.text),1)]))),128))])):e(``,!0)])])])]),i(y,{active:`catalog`})],64))}}),[[`__scopeId`,`data-v-1fc7bf2a`]]),z=l({__name:`ScenarioView`,setup(e){return(e,t)=>(r(),a(R))}});export{z as default};
import{C as e,D as t,Ft as n,G as r,O as i,S as a,_t as o,ft as s,h as c,k as l,l as u,q as d,tt as f,w as p,x as m}from"./client-E8nWUy_w.js";import{t as h}from"./Tag-CsoYSeJy.js";import{t as g}from"./use-message-Cgythpp-.js";import{t as _}from"./Rate-DbMEHDkO.js";import{n as v}from"./es-CxpWet60.js";import{t as y}from"./HeaderMenu-B8Xj0aQP.js";import{t as b}from"./_plugin-vue_export-helper-BDNMzG2s.js";var x={class:`center-block-custom`},S={class:`width700`},C={class:`scenario-card`},w={class:`scenario-heading`},T={class:`scenario-title`},E={class:`scenario-image-frame`},D=[`src`,`alt`],O={class:`scenario-details`},k={class:`scenario-description`},A={class:`scenario-rating`},j={key:1},M={key:2},N={class:`scenario-author`},P={key:0,class:`reviews-section`},F={class:`review-heading`},I={class:`review-game`},L={class:`review-text`},R=b(l({__name:`ScenarioPage`,setup(l){let b=g(),R=v(),z=u().params.id,B=s([]),V=s({id:void 0,name:void 0,story:void 0,author:void 0,status:void 0,updatedAt:void 0,createdAt:void 0,publishedAt:void 0,averageRating:void 0,reviewsCount:void 0});async function H(e){let t=await R.GetScenario({id:e});if(t.error!=``){b.error(t.error);return}V.value=t.scenario}H(Number(z));async function U(e){let t=await R.GetScenarioReviews({scenarioId:e});if(t.error!=``){b.error(t.error);return}B.value=t.reviews||[]}return U(Number(z)),(s,l)=>(r(),p(c,null,[m(`div`,x,[m(`div`,S,[m(`section`,C,[m(`div`,w,[l[0]||=m(`p`,{class:`scenario-kicker`},`ДЕЛО ИЗ КАТАЛОГА`,-1),m(`h1`,T,n(V.value.name),1)]),m(`div`,E,[m(`img`,{class:`scenario-image`,src:V.value.image,alt:V.value.name},null,8,D)]),m(`div`,O,[m(`p`,k,n(V.value.description),1),m(`div`,A,[V.value.reviewsCount?(r(),a(o(_),{key:0,value:V.value.averageRating,readonly:``,"allow-half":``,size:`small`},null,8,[`value`])):e(``,!0),V.value.reviewsCount?(r(),p(`span`,j,n(V.value.averageRating?.toFixed(1))+` · `+n(V.value.reviewsCount)+` отзывов`,1)):(r(),p(`span`,M,`Пока нет оценок`))]),m(`div`,N,[i(o(h),{bordered:!1,type:`success`,class:`status-block`},{default:f(()=>[t(` Автор: `+n(V.value.author?.username),1)]),_:1})]),B.value.length?(r(),p(`section`,P,[l[1]||=m(`h2`,{class:`reviews-title`},`Отзывы команд`,-1),(r(!0),p(c,null,d(B.value,e=>(r(),p(`article`,{key:e.id,class:`review-card`},[m(`div`,F,[m(`strong`,null,n(e.teamName),1),i(o(_),{value:e.rating,readonly:``,size:`small`},null,8,[`value`])]),m(`div`,I,n(e.gameName),1),m(`p`,L,n(e.text),1)]))),128))])):e(``,!0)])])])]),i(y,{active:`catalog`})],64))}}),[[`__scopeId`,`data-v-1fc7bf2a`]]),z=l({__name:`ScenarioView`,setup(e){return(e,t)=>(r(),a(R))}});export{z as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-210
View File
File diff suppressed because one or more lines are too long
+210
View File
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{G as e,k as t,w as n,x as r}from"./client-DoYgjHB1.js";var i={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},a=t({name:`Settings`,render:function(t,a){return e(),n(`svg`,i,a[0]||=[r(`path`,{d:`M27 16.76V16v-.77l1.92-1.68A2 2 0 0 0 29.3 11l-2.36-4a2 2 0 0 0-1.73-1a2 2 0 0 0-.64.1l-2.43.82a11.35 11.35 0 0 0-1.31-.75l-.51-2.52a2 2 0 0 0-2-1.61h-4.68a2 2 0 0 0-2 1.61l-.51 2.52a11.48 11.48 0 0 0-1.32.75l-2.38-.86A2 2 0 0 0 6.79 6a2 2 0 0 0-1.73 1L2.7 11a2 2 0 0 0 .41 2.51L5 15.24v1.53l-1.89 1.68A2 2 0 0 0 2.7 21l2.36 4a2 2 0 0 0 1.73 1a2 2 0 0 0 .64-.1l2.43-.82a11.35 11.35 0 0 0 1.31.75l.51 2.52a2 2 0 0 0 2 1.61h4.72a2 2 0 0 0 2-1.61l.51-2.52a11.48 11.48 0 0 0 1.32-.75l2.42.82a2 2 0 0 0 .64.1a2 2 0 0 0 1.73-1l2.28-4a2 2 0 0 0-.41-2.51zM25.21 24l-3.43-1.16a8.86 8.86 0 0 1-2.71 1.57L18.36 28h-4.72l-.71-3.55a9.36 9.36 0 0 1-2.7-1.57L6.79 24l-2.36-4l2.72-2.4a8.9 8.9 0 0 1 0-3.13L4.43 12l2.36-4l3.43 1.16a8.86 8.86 0 0 1 2.71-1.57L13.64 4h4.72l.71 3.55a9.36 9.36 0 0 1 2.7 1.57L25.21 8l2.36 4l-2.72 2.4a8.9 8.9 0 0 1 0 3.13L27.57 20z`,fill:`currentColor`},null,-1),r(`path`,{d:`M16 22a6 6 0 1 1 6-6a5.94 5.94 0 0 1-6 6zm0-10a3.91 3.91 0 0 0-4 4a3.91 3.91 0 0 0 4 4a3.91 3.91 0 0 0 4-4a3.91 3.91 0 0 0-4-4z`,fill:`currentColor`},null,-1)])}});export{a as t};
import{G as e,k as t,w as n,x as r}from"./client-E8nWUy_w.js";var i={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},a=t({name:`Settings`,render:function(t,a){return e(),n(`svg`,i,a[0]||=[r(`path`,{d:`M27 16.76V16v-.77l1.92-1.68A2 2 0 0 0 29.3 11l-2.36-4a2 2 0 0 0-1.73-1a2 2 0 0 0-.64.1l-2.43.82a11.35 11.35 0 0 0-1.31-.75l-.51-2.52a2 2 0 0 0-2-1.61h-4.68a2 2 0 0 0-2 1.61l-.51 2.52a11.48 11.48 0 0 0-1.32.75l-2.38-.86A2 2 0 0 0 6.79 6a2 2 0 0 0-1.73 1L2.7 11a2 2 0 0 0 .41 2.51L5 15.24v1.53l-1.89 1.68A2 2 0 0 0 2.7 21l2.36 4a2 2 0 0 0 1.73 1a2 2 0 0 0 .64-.1l2.43-.82a11.35 11.35 0 0 0 1.31.75l.51 2.52a2 2 0 0 0 2 1.61h4.72a2 2 0 0 0 2-1.61l.51-2.52a11.48 11.48 0 0 0 1.32-.75l2.42.82a2 2 0 0 0 .64.1a2 2 0 0 0 1.73-1l2.28-4a2 2 0 0 0-.41-2.51zM25.21 24l-3.43-1.16a8.86 8.86 0 0 1-2.71 1.57L18.36 28h-4.72l-.71-3.55a9.36 9.36 0 0 1-2.7-1.57L6.79 24l-2.36-4l2.72-2.4a8.9 8.9 0 0 1 0-3.13L4.43 12l2.36-4l3.43 1.16a8.86 8.86 0 0 1 2.71-1.57L13.64 4h4.72l.71 3.55a9.36 9.36 0 0 1 2.7 1.57L25.21 8l2.36 4l-2.72 2.4a8.9 8.9 0 0 1 0 3.13L27.57 20z`,fill:`currentColor`},null,-1),r(`path`,{d:`M16 22a6 6 0 1 1 6-6a5.94 5.94 0 0 1-6 6zm0-10a3.91 3.91 0 0 0-4 4a3.91 3.91 0 0 0 4 4a3.91 3.91 0 0 0 4-4a3.91 3.91 0 0 0-4-4z`,fill:`currentColor`},null,-1)])}});export{a as t};
@@ -1 +1 @@
import{M as e,b as t,k as n,m as r}from"./client-DoYgjHB1.js";import{N as i,Z as a,o,r as s}from"./light-DZR0fP_1.js";import{n as c,t as l}from"./css-DEmdllcC.js";import{a as u}from"./Button-BYKXYsqR.js";import{t as d}from"./flatten-C4-fSVx4.js";import{t as f}from"./get-slot-6kXJmSMP.js";import{d as p}from"./index-D97zgrb7.js";function m(){return p}var h={name:`Space`,self:m},g;function _(){if(!u)return!0;if(g===void 0){let e=document.createElement(`div`);e.style.display=`flex`,e.style.flexDirection=`column`,e.style.rowGap=`1px`,e.appendChild(document.createElement(`div`)),e.appendChild(document.createElement(`div`)),document.body.appendChild(e);let t=e.scrollHeight===1;return document.body.removeChild(e),g=t}return g}var v=n({name:`Space`,props:Object.assign(Object.assign({},s.props),{align:String,justify:{type:String,default:`start`},inline:Boolean,vertical:Boolean,reverse:Boolean,size:[String,Number,Array],wrapItem:{type:Boolean,default:!0},itemClass:String,itemStyle:[String,Object],wrap:{type:Boolean,default:!0},internalUseGap:{type:Boolean,default:void 0}}),setup(e){let{mergedClsPrefixRef:n,mergedRtlRef:r,mergedComponentPropsRef:u}=i(e),d=t(()=>e.size||u?.value?.Space?.size||`medium`),f=s(`Space`,`-space`,void 0,h,e,n),p=o(`Space`,r,n);return{useGap:_(),rtlEnabled:p,mergedClsPrefix:n,margin:t(()=>{let e=d.value;if(Array.isArray(e))return{horizontal:e[0],vertical:e[1]};if(typeof e==`number`)return{horizontal:e,vertical:e};let{self:{[a(`gap`,e)]:t}}=f.value,{row:n,col:r}=c(t);return{horizontal:l(r),vertical:l(n)}})}},render(){let{vertical:t,reverse:n,align:i,inline:a,justify:o,itemClass:s,itemStyle:c,margin:l,wrap:u,mergedClsPrefix:p,rtlEnabled:m,useGap:h,wrapItem:g,internalUseGap:_}=this,v=d(f(this),!1);if(!v.length)return null;let y=`${l.horizontal}px`,b=`${l.horizontal/2}px`,x=`${l.vertical}px`,S=`${l.vertical/2}px`,C=v.length-1,w=o.startsWith(`space-`);return e(`div`,{role:`none`,class:[`${p}-space`,m&&`${p}-space--rtl`],style:{display:a?`inline-flex`:`flex`,flexDirection:t&&!n?`column`:t&&n?`column-reverse`:!t&&n?`row-reverse`:`row`,justifyContent:[`start`,`end`].includes(o)?`flex-${o}`:o,flexWrap:!u||t?`nowrap`:`wrap`,marginTop:h||t?``:`-${S}`,marginBottom:h||t?``:`-${S}`,alignItems:i,gap:h?`${l.vertical}px ${l.horizontal}px`:``}},!g&&(h||_)?v:v.map((n,i)=>n.type===r?n:e(`div`,{role:`none`,class:s,style:[c,{maxWidth:`100%`},h?``:t?{marginBottom:i===C?``:x}:m?{marginLeft:w?o===`space-between`&&i===C?``:b:i===C?``:y,marginRight:w?o===`space-between`&&i===0?``:b:``,paddingTop:S,paddingBottom:S}:{marginRight:w?o===`space-between`&&i===C?``:b:i===C?``:y,marginLeft:w?o===`space-between`&&i===0?``:b:``,paddingTop:S,paddingBottom:S}]},n)))}});export{v as t};
import{M as e,b as t,k as n,m as r}from"./client-E8nWUy_w.js";import{N as i,Z as a,o,r as s}from"./light-Dq0naAvE.js";import{n as c,t as l}from"./css-DEmdllcC.js";import{a as u}from"./Button-IiJ8YVHl.js";import{t as d}from"./flatten-Pfh9hmmw.js";import{t as f}from"./get-slot-6kXJmSMP.js";import{d as p}from"./index-BxZQI6N2.js";function m(){return p}var h={name:`Space`,self:m},g;function _(){if(!u)return!0;if(g===void 0){let e=document.createElement(`div`);e.style.display=`flex`,e.style.flexDirection=`column`,e.style.rowGap=`1px`,e.appendChild(document.createElement(`div`)),e.appendChild(document.createElement(`div`)),document.body.appendChild(e);let t=e.scrollHeight===1;return document.body.removeChild(e),g=t}return g}var v=n({name:`Space`,props:Object.assign(Object.assign({},s.props),{align:String,justify:{type:String,default:`start`},inline:Boolean,vertical:Boolean,reverse:Boolean,size:[String,Number,Array],wrapItem:{type:Boolean,default:!0},itemClass:String,itemStyle:[String,Object],wrap:{type:Boolean,default:!0},internalUseGap:{type:Boolean,default:void 0}}),setup(e){let{mergedClsPrefixRef:n,mergedRtlRef:r,mergedComponentPropsRef:u}=i(e),d=t(()=>e.size||u?.value?.Space?.size||`medium`),f=s(`Space`,`-space`,void 0,h,e,n),p=o(`Space`,r,n);return{useGap:_(),rtlEnabled:p,mergedClsPrefix:n,margin:t(()=>{let e=d.value;if(Array.isArray(e))return{horizontal:e[0],vertical:e[1]};if(typeof e==`number`)return{horizontal:e,vertical:e};let{self:{[a(`gap`,e)]:t}}=f.value,{row:n,col:r}=c(t);return{horizontal:l(r),vertical:l(n)}})}},render(){let{vertical:t,reverse:n,align:i,inline:a,justify:o,itemClass:s,itemStyle:c,margin:l,wrap:u,mergedClsPrefix:p,rtlEnabled:m,useGap:h,wrapItem:g,internalUseGap:_}=this,v=d(f(this),!1);if(!v.length)return null;let y=`${l.horizontal}px`,b=`${l.horizontal/2}px`,x=`${l.vertical}px`,S=`${l.vertical/2}px`,C=v.length-1,w=o.startsWith(`space-`);return e(`div`,{role:`none`,class:[`${p}-space`,m&&`${p}-space--rtl`],style:{display:a?`inline-flex`:`flex`,flexDirection:t&&!n?`column`:t&&n?`column-reverse`:!t&&n?`row-reverse`:`row`,justifyContent:[`start`,`end`].includes(o)?`flex-${o}`:o,flexWrap:!u||t?`nowrap`:`wrap`,marginTop:h||t?``:`-${S}`,marginBottom:h||t?``:`-${S}`,alignItems:i,gap:h?`${l.vertical}px ${l.horizontal}px`:``}},!g&&(h||_)?v:v.map((n,i)=>n.type===r?n:e(`div`,{role:`none`,class:s,style:[c,{maxWidth:`100%`},h?``:t?{marginBottom:i===C?``:x}:m?{marginLeft:w?o===`space-between`&&i===C?``:b:i===C?``:y,marginRight:w?o===`space-between`&&i===0?``:b:``,paddingTop:S,paddingBottom:S}:{marginRight:w?o===`space-between`&&i===C?``:b:i===C?``:y,marginLeft:w?o===`space-between`&&i===0?``:b:``,paddingTop:S,paddingBottom:S}]},n)))}});export{v as t};
+25
View File
File diff suppressed because one or more lines are too long
-25
View File
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
import{K as e,M as t,b as n,ft as r,ht as i,k as a}from"./client-DoYgjHB1.js";import{B as o,G as s,J as c,K as l,M as u,N as d,X as f,Y as p,Z as m,o as h,r as g,t as _,z as v}from"./light-DZR0fP_1.js";import{r as y}from"./css-DEmdllcC.js";import{i as b,r as x}from"./use-form-item-D1cm0evg.js";import{a as S}from"./resolve-slot-DCSOtw1o.js";import{F as C,O as w}from"./index-D97zgrb7.js";function T(e){let{textColor2:t,primaryColorHover:n,primaryColorPressed:r,primaryColor:i,infoColor:a,successColor:s,warningColor:c,errorColor:l,baseColor:u,borderColor:d,opacityDisabled:f,tagColor:p,closeIconColor:m,closeIconColorHover:h,closeIconColorPressed:g,borderRadiusSmall:_,fontSizeMini:v,fontSizeTiny:y,fontSizeSmall:b,fontSizeMedium:x,heightMini:S,heightTiny:C,heightSmall:T,heightMedium:E,closeColorHover:D,closeColorPressed:O,buttonColor2Hover:k,buttonColor2Pressed:A,fontWeightStrong:j}=e;return Object.assign(Object.assign({},w),{closeBorderRadius:_,heightTiny:S,heightSmall:C,heightMedium:T,heightLarge:E,borderRadius:_,opacityDisabled:f,fontSizeTiny:v,fontSizeSmall:y,fontSizeMedium:b,fontSizeLarge:x,fontWeightStrong:j,textColorCheckable:t,textColorHoverCheckable:t,textColorPressedCheckable:t,textColorChecked:u,colorCheckable:`#0000`,colorHoverCheckable:k,colorPressedCheckable:A,colorChecked:i,colorCheckedHover:n,colorCheckedPressed:r,border:`1px solid ${d}`,textColor:t,color:p,colorBordered:`rgb(250, 250, 252)`,closeIconColor:m,closeIconColorHover:h,closeIconColorPressed:g,closeColorHover:D,closeColorPressed:O,borderPrimary:`1px solid ${o(i,{alpha:.3})}`,textColorPrimary:i,colorPrimary:o(i,{alpha:.12}),colorBorderedPrimary:o(i,{alpha:.1}),closeIconColorPrimary:i,closeIconColorHoverPrimary:i,closeIconColorPressedPrimary:i,closeColorHoverPrimary:o(i,{alpha:.12}),closeColorPressedPrimary:o(i,{alpha:.18}),borderInfo:`1px solid ${o(a,{alpha:.3})}`,textColorInfo:a,colorInfo:o(a,{alpha:.12}),colorBorderedInfo:o(a,{alpha:.1}),closeIconColorInfo:a,closeIconColorHoverInfo:a,closeIconColorPressedInfo:a,closeColorHoverInfo:o(a,{alpha:.12}),closeColorPressedInfo:o(a,{alpha:.18}),borderSuccess:`1px solid ${o(s,{alpha:.3})}`,textColorSuccess:s,colorSuccess:o(s,{alpha:.12}),colorBorderedSuccess:o(s,{alpha:.1}),closeIconColorSuccess:s,closeIconColorHoverSuccess:s,closeIconColorPressedSuccess:s,closeColorHoverSuccess:o(s,{alpha:.12}),closeColorPressedSuccess:o(s,{alpha:.18}),borderWarning:`1px solid ${o(c,{alpha:.35})}`,textColorWarning:c,colorWarning:o(c,{alpha:.15}),colorBorderedWarning:o(c,{alpha:.12}),closeIconColorWarning:c,closeIconColorHoverWarning:c,closeIconColorPressedWarning:c,closeColorHoverWarning:o(c,{alpha:.12}),closeColorPressedWarning:o(c,{alpha:.18}),borderError:`1px solid ${o(l,{alpha:.23})}`,textColorError:l,colorError:o(l,{alpha:.1}),colorBorderedError:o(l,{alpha:.08}),closeIconColorError:l,closeIconColorHoverError:l,closeIconColorPressedError:l,closeColorHoverError:o(l,{alpha:.12}),closeColorPressedError:o(l,{alpha:.18})})}var E={name:`Tag`,common:_,self:T},D={color:Object,type:{type:String,default:`default`},round:Boolean,size:String,closable:Boolean,disabled:{type:Boolean,default:void 0}},O=l(`tag`,`
import{K as e,M as t,b as n,ft as r,ht as i,k as a}from"./client-E8nWUy_w.js";import{B as o,G as s,J as c,K as l,M as u,N as d,X as f,Y as p,Z as m,o as h,r as g,t as _,z as v}from"./light-Dq0naAvE.js";import{r as y}from"./css-DEmdllcC.js";import{i as b,r as x}from"./use-form-item-CVzWkQI_.js";import{a as S}from"./resolve-slot-C9tdVP4f.js";import{F as C,O as w}from"./index-BxZQI6N2.js";function T(e){let{textColor2:t,primaryColorHover:n,primaryColorPressed:r,primaryColor:i,infoColor:a,successColor:s,warningColor:c,errorColor:l,baseColor:u,borderColor:d,opacityDisabled:f,tagColor:p,closeIconColor:m,closeIconColorHover:h,closeIconColorPressed:g,borderRadiusSmall:_,fontSizeMini:v,fontSizeTiny:y,fontSizeSmall:b,fontSizeMedium:x,heightMini:S,heightTiny:C,heightSmall:T,heightMedium:E,closeColorHover:D,closeColorPressed:O,buttonColor2Hover:k,buttonColor2Pressed:A,fontWeightStrong:j}=e;return Object.assign(Object.assign({},w),{closeBorderRadius:_,heightTiny:S,heightSmall:C,heightMedium:T,heightLarge:E,borderRadius:_,opacityDisabled:f,fontSizeTiny:v,fontSizeSmall:y,fontSizeMedium:b,fontSizeLarge:x,fontWeightStrong:j,textColorCheckable:t,textColorHoverCheckable:t,textColorPressedCheckable:t,textColorChecked:u,colorCheckable:`#0000`,colorHoverCheckable:k,colorPressedCheckable:A,colorChecked:i,colorCheckedHover:n,colorCheckedPressed:r,border:`1px solid ${d}`,textColor:t,color:p,colorBordered:`rgb(250, 250, 252)`,closeIconColor:m,closeIconColorHover:h,closeIconColorPressed:g,closeColorHover:D,closeColorPressed:O,borderPrimary:`1px solid ${o(i,{alpha:.3})}`,textColorPrimary:i,colorPrimary:o(i,{alpha:.12}),colorBorderedPrimary:o(i,{alpha:.1}),closeIconColorPrimary:i,closeIconColorHoverPrimary:i,closeIconColorPressedPrimary:i,closeColorHoverPrimary:o(i,{alpha:.12}),closeColorPressedPrimary:o(i,{alpha:.18}),borderInfo:`1px solid ${o(a,{alpha:.3})}`,textColorInfo:a,colorInfo:o(a,{alpha:.12}),colorBorderedInfo:o(a,{alpha:.1}),closeIconColorInfo:a,closeIconColorHoverInfo:a,closeIconColorPressedInfo:a,closeColorHoverInfo:o(a,{alpha:.12}),closeColorPressedInfo:o(a,{alpha:.18}),borderSuccess:`1px solid ${o(s,{alpha:.3})}`,textColorSuccess:s,colorSuccess:o(s,{alpha:.12}),colorBorderedSuccess:o(s,{alpha:.1}),closeIconColorSuccess:s,closeIconColorHoverSuccess:s,closeIconColorPressedSuccess:s,closeColorHoverSuccess:o(s,{alpha:.12}),closeColorPressedSuccess:o(s,{alpha:.18}),borderWarning:`1px solid ${o(c,{alpha:.35})}`,textColorWarning:c,colorWarning:o(c,{alpha:.15}),colorBorderedWarning:o(c,{alpha:.12}),closeIconColorWarning:c,closeIconColorHoverWarning:c,closeIconColorPressedWarning:c,closeColorHoverWarning:o(c,{alpha:.12}),closeColorPressedWarning:o(c,{alpha:.18}),borderError:`1px solid ${o(l,{alpha:.23})}`,textColorError:l,colorError:o(l,{alpha:.1}),colorBorderedError:o(l,{alpha:.08}),closeIconColorError:l,closeIconColorHoverError:l,closeIconColorPressedError:l,closeColorHoverError:o(l,{alpha:.12}),closeColorPressedError:o(l,{alpha:.18})})}var E={name:`Tag`,common:_,self:T},D={color:Object,type:{type:String,default:`default`},round:Boolean,size:String,closable:Boolean,disabled:{type:Boolean,default:void 0}},O=l(`tag`,`
--n-close-margin: var(--n-close-margin-top) var(--n-close-margin-right) var(--n-close-margin-bottom) var(--n-close-margin-left);
white-space: nowrap;
position: relative;
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.scanner-page[data-v-b93adcf3]{padding:20px}.scanner-card[data-v-b93adcf3]{width:100%;max-width:520px}.scanner-video[data-v-b93adcf3]{background:#000;width:100%;max-height:50dvh}
+1
View File
@@ -0,0 +1 @@
import{B as e,C as t,D as n,Ft as r,G as i,H as a,L as o,O as s,S as c,_t as l,b as u,ft as d,h as f,k as p,tt as m,u as h,w as g,x as _}from"./client-E8nWUy_w.js";import{t as v}from"./Card-Br_ZZw24.js";import{t as y}from"./Button-IiJ8YVHl.js";import{t as b}from"./Input-o-_8og01.js";import{t as x}from"./Alert-B3_-sqX_.js";import{t as S}from"./use-message-Cgythpp-.js";import{t as C}from"./Space-BxcvBhjG.js";import{nt as w,t as T}from"./index-BxZQI6N2.js";import{n as E}from"./es-CxpWet60.js";import{t as D}from"./HeaderMenu-B8Xj0aQP.js";import{t as O}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as k}from"./datetime-BJNH0M1T.js";var A={class:`center-block-custom center-middle-block-custom scanner-page`},j={key:0},M={key:1},N={key:2},P=O(p({__name:`TicketScannerPage`,setup(p){let O=T(),P=h(),F=E(),I=S(),L=d(``),R=d(),z=d(``),B=d(!1),V=d(),H=d(!1),U,W=0,G=u(()=>{try{return new URL(L.value.trim()).pathname.match(/\/tickets\/([^/]+)/)?.[1]||``}catch{return L.value.trim()}});async function K(){if(!(!G.value||B.value)){B.value=!0,z.value=``,R.value=void 0;try{let e=await F.GetTicket({token:G.value});e.error||!e.ticket?z.value=e.error||`Билет не найден`:R.value=e.ticket}catch(e){z.value=e instanceof Error?e.message:`Не удалось проверить билет`}finally{B.value=!1}}}async function q(){if(!(!G.value||B.value)){B.value=!0,z.value=``;try{let e=await F.AcceptTicket({token:G.value});e.error||!e.ticket?z.value=e.error||`Не удалось принять билет`:(R.value=e.ticket,I.success(`Билет принят`))}catch(e){z.value=e instanceof Error?e.message:`Не удалось принять билет`}finally{B.value=!1}}}async function J(){let e=window.BarcodeDetector;if(!e||!navigator.mediaDevices?.getUserMedia){z.value=`Сканирование камерой не поддерживается. Введите ссылку вручную.`;return}try{U=await navigator.mediaDevices.getUserMedia({video:{facingMode:`environment`}}),H.value=!0,await o(),V.value&&(V.value.srcObject=U,await V.value.play());let t=new e,n=async()=>{if(!H.value||!V.value)return;let e=await t.detect(V.value);if(e[0]?.rawValue){L.value=e[0].rawValue,Y(),await K();return}W=requestAnimationFrame(n)};W=requestAnimationFrame(n)}catch{z.value=`Не удалось открыть камеру. Введите ссылку вручную.`}}function Y(){H.value=!1,cancelAnimationFrame(W),U?.getTracks().forEach(e=>e.stop()),U=void 0}return a(()=>{O.isAuthenticated||P.replace(`/login`)}),e(Y),(e,a)=>(i(),g(f,null,[s(D,{active:`games`}),_(`div`,A,[s(l(v),{title:`Проверка билета`,class:`scanner-card`},{default:m(()=>[s(l(C),{vertical:``},{default:m(()=>[H.value?(i(),g(`video`,{key:0,ref_key:`video`,ref:V,class:`scanner-video`,muted:``,playsinline:``},null,512)):t(``,!0),H.value?(i(),c(l(y),{key:2,onClick:Y},{default:m(()=>[...a[2]||=[n(`Остановить камеру`,-1)]]),_:1})):(i(),c(l(y),{key:1,onClick:J},{default:m(()=>[...a[1]||=[n(`Сканировать камерой`,-1)]]),_:1})),s(l(b),{value:L.value,"onUpdate:value":a[0]||=e=>L.value=e,placeholder:`Или вставьте ссылку на билет`,onKeyup:w(K,[`enter`])},null,8,[`value`]),s(l(y),{type:`primary`,loading:B.value,onClick:K},{default:m(()=>[...a[3]||=[n(`Проверить билет`,-1)]]),_:1},8,[`loading`]),z.value?(i(),c(l(x),{key:3,type:`error`},{default:m(()=>[n(r(z.value),1)]),_:1})):t(``,!0),R.value?(i(),g(f,{key:4},[s(l(x),{type:R.value.status===`active`?`success`:`warning`},{default:m(()=>[n(r(R.value.gameName),1),a[4]||=_(`br`,null,null,-1),n(` Статус: `+r(R.value.status===`active`?`действителен`:`уже использован`)+` `,1),R.value.usedBy?(i(),g(`span`,j,` · `+r(R.value.usedBy),1)):t(``,!0),R.value.usedAt?(i(),g(`br`,M)):t(``,!0),R.value.usedAt?(i(),g(`span`,N,`Использован: `+r(l(k)(R.value.usedAt)),1)):t(``,!0)]),_:1},8,[`type`]),R.value.status===`active`&&R.value.gameStatus!==`finish`?(i(),c(l(y),{key:0,type:`primary`,loading:B.value,onClick:q},{default:m(()=>[...a[5]||=[n(` Принять билет `,-1)]]),_:1},8,[`loading`])):t(``,!0)],64)):t(``,!0)]),_:1})]),_:1})])],64))}}),[[`__scopeId`,`data-v-b93adcf3`]]),F=p({__name:`TicketScannerView`,setup(e){return(e,t)=>(i(),c(P))}});export{F as default};
-1
View File
@@ -1 +0,0 @@
.ticket-page.center-block-custom[data-v-43933699]{height:100dvh;margin-top:0}.ticket-card[data-v-43933699]{margin:15px 0}.ticket-kicker[data-v-43933699]{letter-spacing:1px;margin-bottom:14px;font-size:12px}h1[data-v-43933699],h2[data-v-43933699]{font-weight:400}h1[data-v-43933699]{margin-bottom:24px;font-size:26px}h2[data-v-43933699]{margin-bottom:20px}hr[data-v-43933699]{border:0;border-top:1px dashed;margin:18px 0}dl[data-v-43933699]{gap:12px;display:grid}dt[data-v-43933699]{color:var(--second-color);font-size:13px}dd[data-v-43933699]{margin:0}.qr-block[data-v-43933699]{background-color:#fff;width:fit-content;margin:28px auto;padding:12px;line-height:0;display:block}.error[data-v-43933699],.used[data-v-43933699]{color:var(--second-color)}.active[data-v-43933699]{color:#000}
+1
View File
@@ -0,0 +1 @@
.ticket-page.center-block-custom[data-v-8d191452]{height:100dvh;margin-top:0}.ticket-card[data-v-8d191452]{margin:15px 0}.ticket-kicker[data-v-8d191452]{letter-spacing:1px;margin-bottom:14px;font-size:12px}h1[data-v-8d191452],h2[data-v-8d191452]{font-weight:400}h1[data-v-8d191452]{margin-bottom:24px;font-size:26px}h2[data-v-8d191452]{margin-bottom:20px}hr[data-v-8d191452]{border:0;border-top:1px dashed;margin:18px 0}dl[data-v-8d191452]{gap:12px;display:grid}dt[data-v-8d191452]{color:var(--second-color);font-size:13px}dd[data-v-8d191452]{margin:0}.qr-block[data-v-8d191452]{background-color:#fff;width:fit-content;margin:28px auto;padding:12px;line-height:0;display:block}.error[data-v-8d191452],.used[data-v-8d191452]{color:var(--second-color)}.active[data-v-8d191452]{color:#000}
@@ -1 +1 @@
import{D as e,Ft as t,G as n,H as r,O as i,S as a,_t as o,b as s,ft as c,h as l,k as u,l as d,t as f,tt as p,w as m,x as h}from"./client-DoYgjHB1.js";import{t as g}from"./Button-BYKXYsqR.js";import{t as _}from"./QrCode-CNcfWFbI.js";import{t as v}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as y}from"./datetime-BJNH0M1T.js";import{t as b}from"./MessagePaper-B2utHh61.js";var x={class:`ticket-page center-block-custom`},S={class:`width700`},C={class:`ticket-card`},w={key:0,class:`error`,role:`alert`},T={class:`qr-block`},E={key:0,class:`used`,role:`status`},D={key:1,class:`used`,role:`status`},O=v(u({__name:`TicketPage`,setup(u){let v=d(),O=f(),k=s(()=>String(v.params.token||``)),A=c(),j=c(!1),M=c(``),N=s(()=>window.location.href);async function P(){j.value=!0,M.value=``;try{let e=await O.GetTicket({token:k.value});if(e.error||!e.ticket){M.value=e.error||`Билет не найден`;return}A.value=e.ticket}catch{M.value=`Не удалось загрузить билет. Попробуйте ещё раз.`}finally{j.value=!1}}return r(P),(r,s)=>(n(),m(`div`,x,[h(`div`,S,[i(b,null,{default:p(()=>[h(`div`,C,[s[6]||=h(`p`,{class:`ticket-kicker`},`ВЕЧЕРНИЙ ДЕТЕКТИВ · ПРОПУСК`,-1),s[7]||=h(`h1`,null,`Билет на игру`,-1),M.value?(n(),m(`p`,w,t(M.value),1)):A.value?(n(),m(l,{key:1},[h(`h2`,null,t(A.value.gameName),1),s[4]||=h(`hr`,null,null,-1),h(`dl`,null,[h(`div`,null,[s[0]||=h(`dt`,null,`Начало`,-1),h(`dd`,null,t(o(y)(A.value.startAt)),1)]),h(`div`,null,[s[1]||=h(`dt`,null,`Место`,-1),h(`dd`,null,t(A.value.location||`Онлайн`),1)])]),h(`div`,T,[i(o(_),{value:N.value,size:300,padding:0},null,8,[`value`])]),s[5]||=h(`p`,null,`Покажите этот QR-код организатору.`,-1),A.value.status===`used`?(n(),m(`p`,E,` Билет уже использован`+t(A.value.usedAt?` ${o(y)(A.value.usedAt)}`:``)+`. `,1)):A.value.gameStatus===`finish`?(n(),m(`p`,D,` Игра уже завершена. `)):(n(),m(l,{key:2},[s[2]||=h(`hr`,null,null,-1),s[3]||=h(`p`,{class:`active`,role:`status`},`Билет действителен.`,-1)],64))],64)):(n(),a(o(g),{key:2,loading:j.value,onClick:P},{default:p(()=>[e(t(j.value?`Загрузка`:`Повторить`),1)]),_:1},8,[`loading`]))])]),_:1})])]))}}),[[`__scopeId`,`data-v-43933699`]]),k=u({__name:`TicketView`,setup(e){return(e,t)=>(n(),a(O))}});export{k as default};
import{D as e,Ft as t,G as n,H as r,O as i,S as a,_t as o,b as s,ft as c,h as l,k as u,l as d,t as f,tt as p,w as m,x as h}from"./client-E8nWUy_w.js";import{t as g}from"./Button-IiJ8YVHl.js";import{t as _}from"./QrCode-DayNjdR9.js";import{t as v}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as y}from"./datetime-BJNH0M1T.js";import{t as b}from"./MessagePaper-Cy3nagN1.js";var x={class:`ticket-page center-block-custom`},S={class:`width700`},C={class:`ticket-card`},w={key:0,class:`error`,role:`alert`},T={class:`qr-block`},E={key:0,class:`used`,role:`status`},D={key:1,class:`used`,role:`status`},O=v(u({__name:`TicketPage`,setup(u){let v=d(),O=f(),k=s(()=>String(v.params.token||``)),A=c(),j=c(!1),M=c(``),N=s(()=>window.location.href);async function P(){j.value=!0,M.value=``;try{let e=await O.GetTicket({token:k.value});if(e.error||!e.ticket){M.value=e.error||`Билет не найден`;return}A.value=e.ticket}catch{M.value=`Не удалось загрузить билет. Попробуйте ещё раз.`}finally{j.value=!1}}return r(P),(r,s)=>(n(),m(`div`,x,[h(`div`,S,[i(b,null,{default:p(()=>[h(`div`,C,[s[6]||=h(`p`,{class:`ticket-kicker`},`ВЕЧЕРНИЙ ДЕТЕКТИВ · ПРОПУСК`,-1),s[7]||=h(`h1`,null,`Билет на игру`,-1),M.value?(n(),m(`p`,w,t(M.value),1)):A.value?(n(),m(l,{key:1},[h(`h2`,null,t(A.value.gameName),1),s[4]||=h(`hr`,null,null,-1),h(`dl`,null,[h(`div`,null,[s[0]||=h(`dt`,null,`Начало`,-1),h(`dd`,null,t(o(y)(A.value.startAt)),1)]),h(`div`,null,[s[1]||=h(`dt`,null,`Место`,-1),h(`dd`,null,t(A.value.location||`Онлайн`),1)])]),h(`div`,T,[i(o(_),{value:N.value,size:300,padding:0},null,8,[`value`])]),s[5]||=h(`p`,null,`Покажите этот QR-код организатору.`,-1),A.value.status===`used`?(n(),m(`p`,E,` Билет уже использован`+t(A.value.usedAt?` ${o(y)(A.value.usedAt)}`:``)+t(A.value.usedBy?` организатором ${A.value.usedBy}`:``)+`. `,1)):A.value.gameStatus===`finish`?(n(),m(`p`,D,` Игра уже завершена. `)):(n(),m(l,{key:2},[s[2]||=h(`hr`,null,null,-1),s[3]||=h(`p`,{class:`active`,role:`status`},`Билет действителен.`,-1)],64))],64)):(n(),a(o(g),{key:2,loading:j.value,onClick:P},{default:p(()=>[e(t(j.value?`Загрузка`:`Повторить`),1)]),_:1},8,[`loading`]))])]),_:1})])]))}}),[[`__scopeId`,`data-v-8d191452`]]),k=u({__name:`TicketView`,setup(e){return(e,t)=>(n(),a(O))}});export{k as default};
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
import{G as e,O as t,h as n,k as r,w as i}from"./client-DoYgjHB1.js";import{t as a}from"./DocsPage-RScBkVHt.js";import{t as o}from"./HeaderMenu-Di4-0v67.js";var s=r({__name:`UserAgreementView`,setup(r){return(r,s)=>(e(),i(n,null,[t(a,{kind:`terms`}),t(o)],64))}});export{s as default};
+1
View File
@@ -0,0 +1 @@
import{G as e,O as t,h as n,k as r,w as i}from"./client-E8nWUy_w.js";import{t as a}from"./DocsPage-8NvAL-iL.js";import{t as o}from"./HeaderMenu-B8Xj0aQP.js";var s=r({__name:`UserAgreementView`,setup(r){return(r,s)=>(e(),i(n,null,[t(a,{kind:`terms`}),t(o)],64))}});export{s as default};
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{r as e}from"./client-DoYgjHB1.js";function t(e){let t=e?.file_type;if(t===`pdf`||t===`image`||t===`audio`)return t;let n=(e?.image||``).toLowerCase();return/\.pdf($|\?)/.test(n)?`pdf`:/\.(mp3|wav|ogg|m4a|aac|flac|opus)($|\?)/.test(n)?`audio`:/\.(png|jpe?g|gif|webp|bmp|svg)($|\?)/.test(n)?`image`:``}function n(t){if(!t)return``;let n=t.toLowerCase();return n.startsWith(`http://`)||n.startsWith(`https://`)?t:t.startsWith(`/`)?e()+t:`${e()}/api/files/${t}`}function r(e){return e?e.split(`/`).pop()||e:``}export{t as n,n as r,r as t};
import{r as e}from"./client-E8nWUy_w.js";function t(e){let t=e?.file_type;if(t===`pdf`||t===`image`||t===`audio`)return t;let n=(e?.image||``).toLowerCase();return/\.pdf($|\?)/.test(n)?`pdf`:/\.(mp3|wav|ogg|m4a|aac|flac|opus)($|\?)/.test(n)?`audio`:/\.(png|jpe?g|gif|webp|bmp|svg)($|\?)/.test(n)?`image`:``}function n(t){if(!t)return``;let n=t.toLowerCase();return n.startsWith(`http://`)||n.startsWith(`https://`)?t:t.startsWith(`/`)?e()+t:`${e()}/api/files/${t}`}function r(e){return e?e.split(`/`).pop()||e:``}export{t as n,n as r,r as t};
@@ -1 +1 @@
import{r as e}from"./client-DoYgjHB1.js";import{t}from"./index-D97zgrb7.js";function n(){let e=t();return r(e.refreshTokenAction,e.getToken)}function r(t,n){async function r(r,i){let a={},o=n();o&&(a.Authorization=`Bearer ${o}`);let s=await fetch(`${e()}/${r}`,{...i,headers:{...a,...i.headers}});if(s.status==401){await t();let o=n();o&&(a.Authorization=`Bearer ${o}`),s=await fetch(`${e()}/${r}`,{...i,headers:{...a,...i.headers}})}return s}async function o(e,t){let n=await r(e,{method:`GET`});if(!n.ok)throw Error(await a(n));return{blob:await n.blob(),filename:i(n.headers.get(`Content-Disposition`))||t}}function s(e){return o(`api/scenarios/${e}/archive`,`scenario-${e}.zip`)}function c(e){return o(`api/games/${e}/teams/qr.pdf`,`game-${e}.pdf`)}async function l(e){let t=await r(`api/scenarios/archive`,{method:`POST`,headers:{"Content-Type":e.type||`application/zip`},body:e}),n=await t.json().catch(()=>null);if(!t.ok)return{id:null,error:n?.message||`Ошибка сервера (${t.status})`};let i=typeof n?.error==`string`&&n.error!==``?n.error:null;return{id:typeof n?.id==`number`?n.id:null,error:i}}return{downloadScenarioArchive:s,downloadTeamQR:c,uploadScenarioArchive:l}}function i(e){if(!e)return``;let t=e.match(/filename\*=UTF-8''([^;]+)/i);if(t)try{return decodeURIComponent(t[1].trim()).replace(/[\\/:*?"<>|]/g,`_`)}catch{}let n=e.match(/filename="?([^";]+)"?/i);return(n?n[1]:``).replace(/[\\/:*?"<>|]/g,`_`)}async function a(e){let t=await e.json().catch(()=>null);return t&&typeof t.message==`string`&&t.message!==``?t.message:`Ошибка сервера (${e.status})`}export{n as t};
import{r as e}from"./client-E8nWUy_w.js";import{t}from"./index-BxZQI6N2.js";function n(){let e=t();return r(e.refreshTokenAction,e.getToken)}function r(t,n){async function r(r,i){let a={},o=n();o&&(a.Authorization=`Bearer ${o}`);let s=await fetch(`${e()}/${r}`,{...i,headers:{...a,...i.headers}});if(s.status==401){await t();let o=n();o&&(a.Authorization=`Bearer ${o}`),s=await fetch(`${e()}/${r}`,{...i,headers:{...a,...i.headers}})}return s}async function o(e,t){let n=await r(e,{method:`GET`});if(!n.ok)throw Error(await a(n));return{blob:await n.blob(),filename:i(n.headers.get(`Content-Disposition`))||t}}function s(e){return o(`api/scenarios/${e}/archive`,`scenario-${e}.zip`)}function c(e){return o(`api/games/${e}/teams/qr.pdf`,`game-${e}.pdf`)}async function l(e){let t=await r(`api/scenarios/archive`,{method:`POST`,headers:{"Content-Type":e.type||`application/zip`},body:e}),n=await t.json().catch(()=>null);if(!t.ok)return{id:null,error:n?.message||`Ошибка сервера (${t.status})`};let i=typeof n?.error==`string`&&n.error!==``?n.error:null;return{id:typeof n?.id==`number`?n.id:null,error:i}}return{downloadScenarioArchive:s,downloadTeamQR:c,uploadScenarioArchive:l}}function i(e){if(!e)return``;let t=e.match(/filename\*=UTF-8''([^;]+)/i);if(t)try{return decodeURIComponent(t[1].trim()).replace(/[\\/:*?"<>|]/g,`_`)}catch{}let n=e.match(/filename="?([^";]+)"?/i);return(n?n[1]:``).replace(/[\\/:*?"<>|]/g,`_`)}async function a(e){let t=await e.json().catch(()=>null);return t&&typeof t.message==`string`&&t.message!==``?t.message:`Ошибка сервера (${e.status})`}export{n as t};
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,4 +1,4 @@
import{J as e,K as t,M as n,P as r,b as i,d as a,i as o,k as s,n as c,z as l}from"./client-DoYgjHB1.js";import{t as u}from"./index-D97zgrb7.js";function d(){let e=u();return f(e.refreshTokenAction,e.getToken)}function f(e,t){return o(p(e,c(t)))}function p(e,t){return async n=>{let r;try{r=await t(n)}catch{await e(),r=await t(n)}if(r&&typeof r==`object`&&`code`in r&&r.code!==0)throw Error(`message`in r&&typeof r.message==`string`?r.message:`Ошибка запроса`);return r}}function m(e){let t=0;for(let n=0;n<e.length;++n)e[n]===`&`&&++t;return t}var h=/\s*,(?![^(]*\))\s*/g,g=/\s+/g;function _(e,t){let n=[];return t.split(h).forEach(t=>{let r=m(t);if(!r){e.forEach(e=>{n.push((e&&e+` `)+t)});return}else if(r===1){e.forEach(e=>{n.push(t.replace(`&`,e))});return}let i=[t];for(;r--;){let t=[];i.forEach(n=>{e.forEach(e=>{t.push(n.replace(`&`,e))})}),i=t}i.forEach(e=>n.push(e))}),n}function v(e,t){let n=[];return t.split(h).forEach(t=>{e.forEach(e=>{n.push((e&&e+` `)+t)})}),n}function y(e){let t=[``];return e.forEach(e=>{e&&=e.trim(),e&&(t=e.includes(`&`)?_(t,e):v(t,e))}),t.join(`, `).replace(g,` `)}var b=/[A-Z]/g;function x(e){return e.replace(b,e=>`-`+e.toLowerCase())}function S(e,t=` `){return typeof e==`object`&&e?` {
import{J as e,K as t,M as n,P as r,b as i,d as a,i as o,k as s,n as c,z as l}from"./client-E8nWUy_w.js";import{t as u}from"./index-BxZQI6N2.js";function d(){let e=u();return f(e.refreshTokenAction,e.getToken)}function f(e,t){return o(p(e,c(t)))}function p(e,t){return async n=>{let r;try{r=await t(n)}catch{await e(),r=await t(n)}if(r&&typeof r==`object`&&`code`in r&&r.code!==0)throw Error(`message`in r&&typeof r.message==`string`?r.message:`Ошибка запроса`);return r}}function m(e){let t=0;for(let n=0;n<e.length;++n)e[n]===`&`&&++t;return t}var h=/\s*,(?![^(]*\))\s*/g,g=/\s+/g;function _(e,t){let n=[];return t.split(h).forEach(t=>{let r=m(t);if(!r){e.forEach(e=>{n.push((e&&e+` `)+t)});return}else if(r===1){e.forEach(e=>{n.push(t.replace(`&`,e))});return}let i=[t];for(;r--;){let t=[];i.forEach(n=>{e.forEach(e=>{t.push(n.replace(`&`,e))})}),i=t}i.forEach(e=>n.push(e))}),n}function v(e,t){let n=[];return t.split(h).forEach(t=>{e.forEach(e=>{n.push((e&&e+` `)+t)})}),n}function y(e){let t=[``];return e.forEach(e=>{e&&=e.trim(),e&&(t=e.includes(`&`)?_(t,e):v(t,e))}),t.join(`, `).replace(g,` `)}var b=/[A-Z]/g;function x(e){return e.replace(b,e=>`-`+e.toLowerCase())}function S(e,t=` `){return typeof e==`object`&&e?` {
`+Object.entries(e).map(e=>t+` ${x(e[0])}: ${e[1]};`).join(`
`)+`
`+t+`}`:`: ${e};`}function C(e,t,n){return typeof e==`function`?e({context:t.context,props:n}):e}function w(e,t,n,r){if(!t)return``;let i=C(t,n,r);if(!i)return``;if(typeof i==`string`)return`${e} {\n${i}\n}`;let a=Object.keys(i);if(a.length===0)return n.config.keepEmptyBlock?e+` {
+1
View File
@@ -0,0 +1 @@
import{$ as e,A as t,D as n,M as r,b as i,dt as a,ft as o,g as s,h as c,ht as l,k as u,m as d}from"./client-E8nWUy_w.js";import{G as f,L as p,a as m,z as h}from"./light-Dq0naAvE.js";import{d as g,u as _}from"./Card-Br_ZZw24.js";import{t as v}from"./flatten-Pfh9hmmw.js";function y(t){let n=o(!!t.value);if(n.value)return a(n);let r=e(t,e=>{e&&(n.value=!0,r())});return a(n)}function b(){return t()!==null}var x=typeof window<`u`,S=h(`n-drawer-body`);h(`n-drawer`);var C=h(`n-modal-body`),w=h(`n-modal-provider`),T=h(`n-modal`),E=h(`n-popover-body`);function D(e,t,n=`default`){let r=t[n];if(r===void 0)throw Error(`[vueuc/${e}]: slot[${n}] is empty.`);return r()}function O(e,t=!0,r=[]){return e.forEach(e=>{if(e!==null){if(typeof e!=`object`){(typeof e==`string`||typeof e==`number`)&&r.push(n(String(e)));return}if(Array.isArray(e)){O(e,t,r);return}if(e.type===c){if(e.children===null)return;Array.isArray(e.children)&&O(e.children,t,r)}else e.type!==d&&r.push(e)}}),r}function k(e,t,n=`default`){let r=t[n];if(r===void 0)throw Error(`[vueuc/${e}]: slot[${n}] is empty.`);let i=O(r());if(i.length===1)return i[0];throw Error(`[vueuc/${e}]: slot[${n}] should have exactly one child.`)}var A=`@@coContext`,j={mounted(e,{value:t,modifiers:n}){e[A]={handler:void 0},typeof t==`function`&&(e[A].handler=t,g(`clickoutside`,e,t,{capture:n.capture}))},updated(e,{value:t,modifiers:n}){let r=e[A];typeof t==`function`?r.handler?r.handler!==t&&(_(`clickoutside`,e,r.handler,{capture:n.capture}),r.handler=t,g(`clickoutside`,e,t,{capture:n.capture})):(e[A].handler=t,g(`clickoutside`,e,t,{capture:n.capture})):r.handler&&=(_(`clickoutside`,e,r.handler,{capture:n.capture}),void 0)},unmounted(e,{modifiers:t}){let{handler:n}=e[A];n&&_(`clickoutside`,e,n,{capture:t.capture}),e[A].handler=void 0}};function M(e,t){console.error(`[vdirs/${e}]: ${t}`)}var N=new class{constructor(){this.elementZIndex=new Map,this.nextZIndex=2e3}get elementCount(){return this.elementZIndex.size}ensureZIndex(e,t){let{elementZIndex:n}=this;if(t!==void 0){e.style.zIndex=`${t}`,n.delete(e);return}let{nextZIndex:r}=this;n.has(e)&&n.get(e)+1===this.nextZIndex||(e.style.zIndex=`${r}`,n.set(e,r),this.nextZIndex=r+1,this.squashState())}unregister(e,t){let{elementZIndex:n}=this;n.has(e)?n.delete(e):t===void 0&&M(`z-index-manager/unregister-element`,`Element not found when unregistering.`),this.squashState()}squashState(){let{elementCount:e}=this;e||(this.nextZIndex=2e3),this.nextZIndex-e>2500&&this.rearrange()}rearrange(){let e=Array.from(this.elementZIndex.entries());e.sort((e,t)=>e[1]-t[1]),this.nextZIndex=2e3,e.forEach(e=>{let t=e[0],n=this.nextZIndex++;`${n}`!==t.style.zIndex&&(t.style.zIndex=`${n}`)})}},P=`@@ziContext`,F={mounted(e,t){let{value:n={}}=t,{zIndex:r,enabled:i}=n;e[P]={enabled:!!i,initialized:!1},i&&(N.ensureZIndex(e,r),e[P].initialized=!0)},updated(e,t){let{value:n={}}=t,{zIndex:r,enabled:i}=n,a=e[P].enabled;i&&!a&&(N.ensureZIndex(e,r),e[P].initialized=!0),e[P].enabled=!!i},unmounted(e,t){if(!e[P].initialized)return;let{value:n={}}=t,{zIndex:r}=n;N.unregister(e,r)}},I=u({name:`LazyTeleport`,props:{to:{type:[String,Object],default:void 0},disabled:Boolean,show:{type:Boolean,required:!0}},setup(e){return{showTeleport:y(l(e,`show`)),mergedTo:i(()=>{let{to:t}=e;return t??`body`})}},render(){return this.showTeleport?this.disabled?D(`lazy-teleport`,this.$slots):r(s,{disabled:this.disabled,to:this.mergedTo},D(`lazy-teleport`,this.$slots)):null}});function L(e,t=`default`,n=void 0){let r=e[t];if(!r)return p(`getFirstSlotVNode`,`slot[${t}] is empty`),null;let i=v(r(n));return i.length===1?i[0]:(p(`getFirstSlotVNode`,`slot[${t}] should have exactly one child`),null)}function R(e,t,n){if(!t)return null;let r=v(t(n));return r.length===1?r[0]:(p(`getFirstSlotVNode`,`slot[${e}] should have exactly one child`),null)}var{cubicBezierEaseIn:z,cubicBezierEaseOut:B}=m;function V({transformOrigin:e=`inherit`,duration:t=`.2s`,enterScale:n=`.9`,originalTransform:r=``,originalTransition:i=``}={}){return[f(`&.fade-in-scale-up-transition-leave-active`,{transformOrigin:e,transition:`opacity ${t} ${z}, transform ${t} ${z} ${i&&`,${i}`}`}),f(`&.fade-in-scale-up-transition-enter-active`,{transformOrigin:e,transition:`opacity ${t} ${B}, transform ${t} ${B} ${i&&`,${i}`}`}),f(`&.fade-in-scale-up-transition-enter-from, &.fade-in-scale-up-transition-leave-to`,{opacity:0,transform:`${r} scale(${n})`}),f(`&.fade-in-scale-up-transition-leave-from, &.fade-in-scale-up-transition-enter-to`,{opacity:1,transform:`${r} scale(1)`})]}export{F as a,D as c,T as d,w as f,x as h,I as i,E as l,b as m,L as n,j as o,S as p,R as r,k as s,V as t,C as u};
@@ -1 +1 @@
import{G as e,a as t}from"./light-DZR0fP_1.js";var{cubicBezierEaseInOut:n}=t;function r({name:t=`fade-in`,enterDuration:r=`0.2s`,leaveDuration:i=`0.2s`,enterCubicBezier:a=n,leaveCubicBezier:o=n}={}){return[e(`&.${t}-transition-enter-active`,{transition:`all ${r} ${a}!important`}),e(`&.${t}-transition-leave-active`,{transition:`all ${i} ${o}!important`}),e(`&.${t}-transition-enter-from, &.${t}-transition-leave-to`,{opacity:0}),e(`&.${t}-transition-leave-from, &.${t}-transition-enter-to`,{opacity:1})]}export{r as t};
import{G as e,a as t}from"./light-Dq0naAvE.js";var{cubicBezierEaseInOut:n}=t;function r({name:t=`fade-in`,enterDuration:r=`0.2s`,leaveDuration:i=`0.2s`,enterCubicBezier:a=n,leaveCubicBezier:o=n}={}){return[e(`&.${t}-transition-enter-active`,{transition:`all ${r} ${a}!important`}),e(`&.${t}-transition-leave-active`,{transition:`all ${i} ${o}!important`}),e(`&.${t}-transition-enter-from, &.${t}-transition-leave-to`,{opacity:0}),e(`&.${t}-transition-leave-from, &.${t}-transition-enter-to`,{opacity:1})]}export{r as t};
@@ -1 +1 @@
import{D as e,h as t,m as n}from"./client-DoYgjHB1.js";function r(i,a=!0,o=[]){return i.forEach(i=>{if(i!==null){if(typeof i!=`object`){(typeof i==`string`||typeof i==`number`)&&o.push(e(String(i)));return}if(Array.isArray(i)){r(i,a,o);return}if(i.type===t){if(i.children===null)return;Array.isArray(i.children)&&r(i.children,a,o)}else{if(i.type===n&&a)return;o.push(i)}}}),o}export{r as t};
import{D as e,h as t,m as n}from"./client-E8nWUy_w.js";function r(i,a=!0,o=[]){return i.forEach(i=>{if(i!==null){if(typeof i!=`object`){(typeof i==`string`||typeof i==`number`)&&o.push(e(String(i)));return}if(Array.isArray(i)){r(i,a,o);return}if(i.type===t){if(i.children===null)return;Array.isArray(i.children)&&r(i.children,a,o)}else{if(i.type===n&&a)return;o.push(i)}}}),o}export{r as t};
@@ -1 +1 @@
import{D as e,d as t}from"./light-DZR0fP_1.js";import{K as n,W as r}from"./index-D97zgrb7.js";var i=/^(\d|\.)+$/,a=/(\d|\.)+/;function o(e,{c:t=1,offset:n=0,attachPx:r=!0}={}){if(typeof e==`number`){let r=(e+n)*t;return r===0?`0`:`${r}px`}else if(typeof e==`string`)if(i.test(e)){let i=(Number(e)+n)*t;return r?i===0?`0`:`${i}px`:`${i}`}else{let r=a.exec(e);return r?e.replace(a,String((Number(r[0])+n)*t)):e}return e}var s=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,c=/^\w*$/;function l(t,r){if(e(t))return!1;var i=typeof t;return i==`number`||i==`symbol`||i==`boolean`||t==null||n(t)?!0:c.test(t)||!s.test(t)||r!=null&&t in Object(r)}var u=`Expected a function`;function d(e,n){if(typeof e!=`function`||n!=null&&typeof n!=`function`)throw TypeError(u);var r=function(){var t=arguments,i=n?n.apply(this,t):t[0],a=r.cache;if(a.has(i))return a.get(i);var o=e.apply(this,t);return r.cache=a.set(i,o)||a,o};return r.cache=new(d.Cache||t),r}d.Cache=t;var f=500;function p(e){var t=d(e,function(e){return n.size===f&&n.clear(),e}),n=t.cache;return t}var m=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,h=/\\(\\)?/g,g=p(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(``),e.replace(m,function(e,n,r,i){t.push(r?i.replace(h,`$1`):n||e)}),t});function _(t,n){return e(t)?t:l(t,n)?[t]:g(r(t))}var v=1/0;function y(e){if(typeof e==`string`||n(e))return e;var t=e+``;return t==`0`&&1/e==-v?`-0`:t}function b(e,t){t=_(t,e);for(var n=0,r=t.length;e!=null&&n<r;)e=e[y(t[n++])];return n&&n==r?e:void 0}function x(e,t,n){var r=e==null?void 0:b(e,t);return r===void 0?n:r}export{l as a,_ as i,b as n,o,y as r,x as t};
import{D as e,d as t}from"./light-Dq0naAvE.js";import{K as n,W as r}from"./index-BxZQI6N2.js";var i=/^(\d|\.)+$/,a=/(\d|\.)+/;function o(e,{c:t=1,offset:n=0,attachPx:r=!0}={}){if(typeof e==`number`){let r=(e+n)*t;return r===0?`0`:`${r}px`}else if(typeof e==`string`)if(i.test(e)){let i=(Number(e)+n)*t;return r?i===0?`0`:`${i}px`:`${i}`}else{let r=a.exec(e);return r?e.replace(a,String((Number(r[0])+n)*t)):e}return e}var s=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,c=/^\w*$/;function l(t,r){if(e(t))return!1;var i=typeof t;return i==`number`||i==`symbol`||i==`boolean`||t==null||n(t)?!0:c.test(t)||!s.test(t)||r!=null&&t in Object(r)}var u=`Expected a function`;function d(e,n){if(typeof e!=`function`||n!=null&&typeof n!=`function`)throw TypeError(u);var r=function(){var t=arguments,i=n?n.apply(this,t):t[0],a=r.cache;if(a.has(i))return a.get(i);var o=e.apply(this,t);return r.cache=a.set(i,o)||a,o};return r.cache=new(d.Cache||t),r}d.Cache=t;var f=500;function p(e){var t=d(e,function(e){return n.size===f&&n.clear(),e}),n=t.cache;return t}var m=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,h=/\\(\\)?/g,g=p(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(``),e.replace(m,function(e,n,r,i){t.push(r?i.replace(h,`$1`):n||e)}),t});function _(t,n){return e(t)?t:l(t,n)?[t]:g(r(t))}var v=1/0;function y(e){if(typeof e==`string`||n(e))return e;var t=e+``;return t==`0`&&1/e==-v?`-0`:t}function b(e,t){t=_(t,e);for(var n=0,r=t.length;e!=null&&n<r;)e=e[y(t[n++])];return n&&n==r?e:void 0}function x(e,t,n){var r=e==null?void 0:b(e,t);return r===void 0?n:r}export{l as a,_ as i,b as n,o,y as r,x as t};
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{$ as e,B as t,H as n,M as r,ft as i,h as a,k as o}from"./client-DoYgjHB1.js";import{d as s,f as c,u as l}from"./Card-Dsgh0iYh.js";import{Z as u}from"./index-D97zgrb7.js";function d(e){return typeof e==`string`?document.querySelector(e):e()||null}function f(e){return e instanceof HTMLElement}function p(e){for(let t=0;t<e.childNodes.length;t++){let n=e.childNodes[t];if(f(n)&&(h(n)||p(n)))return!0}return!1}function m(e){for(let t=e.childNodes.length-1;t>=0;t--){let n=e.childNodes[t];if(f(n)&&(h(n)||m(n)))return!0}return!1}function h(e){if(!g(e))return!1;try{e.focus({preventScroll:!0})}catch{}return document.activeElement===e}function g(e){if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute(`tabIndex`)!==null)return!0;if(e.getAttribute(`disabled`))return!1;switch(e.nodeName){case`A`:return!!e.href&&e.rel!==`ignore`;case`INPUT`:return e.type!==`hidden`&&e.type!==`file`;case`SELECT`:case`TEXTAREA`:return!0;default:return!1}}var _=[],v=o({name:`FocusTrap`,props:{disabled:Boolean,active:Boolean,autoFocus:{type:Boolean,default:!0},onEsc:Function,initialFocusTo:[String,Function],finalFocusTo:[String,Function],returnFocusOnDeactivated:{type:Boolean,default:!0}},setup(r){let a=u(),o=i(null),f=i(null),h=!1,g=!1,v=typeof document>`u`?null:document.activeElement;function y(){return _[_.length-1]===a}function b(e){var t;e.code===`Escape`&&y()&&((t=r.onEsc)==null||t.call(r,e))}n(()=>{e(()=>r.active,e=>{e?(C(),s(`keydown`,document,b)):(l(`keydown`,document,b),h&&w())},{immediate:!0})}),t(()=>{l(`keydown`,document,b),h&&w()});function x(e){if(!g&&y()){let t=S();if(t===null||t.contains(c(e)))return;T(`first`)}}function S(){let e=o.value;if(e===null)return null;let t=e;for(;t=t.nextSibling,!(t===null||t instanceof Element&&t.tagName===`DIV`););return t}function C(){var e;if(!r.disabled){if(_.push(a),r.autoFocus){let{initialFocusTo:t}=r;t===void 0?T(`first`):(e=d(t))==null||e.focus({preventScroll:!0})}h=!0,document.addEventListener(`focus`,x,!0)}}function w(){var e;if(r.disabled||(document.removeEventListener(`focus`,x,!0),_=_.filter(e=>e!==a),y()))return;let{finalFocusTo:t}=r;t===void 0?r.returnFocusOnDeactivated&&v instanceof HTMLElement&&(g=!0,v.focus({preventScroll:!0}),g=!1):(e=d(t))==null||e.focus({preventScroll:!0})}function T(e){if(y()&&r.active){let t=o.value,n=f.value;if(t!==null&&n!==null){let r=S();if(r==null||r===n){g=!0,t.focus({preventScroll:!0}),g=!1;return}g=!0;let i=e===`first`?p(r):m(r);g=!1,i||(g=!0,t.focus({preventScroll:!0}),g=!1)}}}function E(e){if(g)return;let t=S();t!==null&&(e.relatedTarget!==null&&t.contains(e.relatedTarget)?T(`last`):T(`first`))}function D(e){g||(e.relatedTarget!==null&&e.relatedTarget===o.value?T(`last`):T(`first`))}return{focusableStartRef:o,focusableEndRef:f,focusableStyle:`position: absolute; height: 0; width: 0;`,handleStartFocus:E,handleEndFocus:D}},render(){let{default:e}=this.$slots;if(e===void 0)return null;if(this.disabled)return e();let{active:t,focusableStyle:n}=this;return r(a,null,[r(`div`,{"aria-hidden":`true`,tabindex:t?`0`:`-1`,ref:`focusableStartRef`,style:n,onFocus:this.handleStartFocus}),e(),r(`div`,{"aria-hidden":`true`,style:n,ref:`focusableEndRef`,tabindex:t?`0`:`-1`,onFocus:this.handleEndFocus})])}}),y=new WeakSet;function b(e){y.add(e)}function x(e){return!y.has(e)}function S(e,t=[],n){let r={};return t.forEach(t=>{r[t]=e[t]}),Object.assign(r,n)}export{v as i,x as n,b as r,S as t};
import{$ as e,B as t,H as n,M as r,ft as i,h as a,k as o}from"./client-E8nWUy_w.js";import{d as s,f as c,u as l}from"./Card-Br_ZZw24.js";import{Z as u}from"./index-BxZQI6N2.js";function d(e){return typeof e==`string`?document.querySelector(e):e()||null}function f(e){return e instanceof HTMLElement}function p(e){for(let t=0;t<e.childNodes.length;t++){let n=e.childNodes[t];if(f(n)&&(h(n)||p(n)))return!0}return!1}function m(e){for(let t=e.childNodes.length-1;t>=0;t--){let n=e.childNodes[t];if(f(n)&&(h(n)||m(n)))return!0}return!1}function h(e){if(!g(e))return!1;try{e.focus({preventScroll:!0})}catch{}return document.activeElement===e}function g(e){if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute(`tabIndex`)!==null)return!0;if(e.getAttribute(`disabled`))return!1;switch(e.nodeName){case`A`:return!!e.href&&e.rel!==`ignore`;case`INPUT`:return e.type!==`hidden`&&e.type!==`file`;case`SELECT`:case`TEXTAREA`:return!0;default:return!1}}var _=[],v=o({name:`FocusTrap`,props:{disabled:Boolean,active:Boolean,autoFocus:{type:Boolean,default:!0},onEsc:Function,initialFocusTo:[String,Function],finalFocusTo:[String,Function],returnFocusOnDeactivated:{type:Boolean,default:!0}},setup(r){let a=u(),o=i(null),f=i(null),h=!1,g=!1,v=typeof document>`u`?null:document.activeElement;function y(){return _[_.length-1]===a}function b(e){var t;e.code===`Escape`&&y()&&((t=r.onEsc)==null||t.call(r,e))}n(()=>{e(()=>r.active,e=>{e?(C(),s(`keydown`,document,b)):(l(`keydown`,document,b),h&&w())},{immediate:!0})}),t(()=>{l(`keydown`,document,b),h&&w()});function x(e){if(!g&&y()){let t=S();if(t===null||t.contains(c(e)))return;T(`first`)}}function S(){let e=o.value;if(e===null)return null;let t=e;for(;t=t.nextSibling,!(t===null||t instanceof Element&&t.tagName===`DIV`););return t}function C(){var e;if(!r.disabled){if(_.push(a),r.autoFocus){let{initialFocusTo:t}=r;t===void 0?T(`first`):(e=d(t))==null||e.focus({preventScroll:!0})}h=!0,document.addEventListener(`focus`,x,!0)}}function w(){var e;if(r.disabled||(document.removeEventListener(`focus`,x,!0),_=_.filter(e=>e!==a),y()))return;let{finalFocusTo:t}=r;t===void 0?r.returnFocusOnDeactivated&&v instanceof HTMLElement&&(g=!0,v.focus({preventScroll:!0}),g=!1):(e=d(t))==null||e.focus({preventScroll:!0})}function T(e){if(y()&&r.active){let t=o.value,n=f.value;if(t!==null&&n!==null){let r=S();if(r==null||r===n){g=!0,t.focus({preventScroll:!0}),g=!1;return}g=!0;let i=e===`first`?p(r):m(r);g=!1,i||(g=!0,t.focus({preventScroll:!0}),g=!1)}}}function E(e){if(g)return;let t=S();t!==null&&(e.relatedTarget!==null&&t.contains(e.relatedTarget)?T(`last`):T(`first`))}function D(e){g||(e.relatedTarget!==null&&e.relatedTarget===o.value?T(`last`):T(`first`))}return{focusableStartRef:o,focusableEndRef:f,focusableStyle:`position: absolute; height: 0; width: 0;`,handleStartFocus:E,handleEndFocus:D}},render(){let{default:e}=this.$slots;if(e===void 0)return null;if(this.disabled)return e();let{active:t,focusableStyle:n}=this;return r(a,null,[r(`div`,{"aria-hidden":`true`,tabindex:t?`0`:`-1`,ref:`focusableStartRef`,style:n,onFocus:this.handleStartFocus}),e(),r(`div`,{"aria-hidden":`true`,style:n,ref:`focusableEndRef`,tabindex:t?`0`:`-1`,onFocus:this.handleEndFocus})])}}),y=new WeakSet;function b(e){y.add(e)}function x(e){return!y.has(e)}function S(e,t=[],n){let r={};return t.forEach(t=>{r[t]=e[t]}),Object.assign(r,n)}export{v as i,x as n,b as r,S as t};
@@ -1 +1 @@
import{t as e}from"./light-DZR0fP_1.js";var t={railInsetHorizontalBottom:`auto 2px 4px 2px`,railInsetHorizontalTop:`4px 2px auto 2px`,railInsetVerticalRight:`2px 4px 2px auto`,railInsetVerticalLeft:`2px auto 2px 4px`,railColor:`transparent`};function n(e){let{scrollbarColor:n,scrollbarColorHover:r,scrollbarHeight:i,scrollbarWidth:a,scrollbarBorderRadius:o}=e;return Object.assign(Object.assign({},t),{height:i,width:a,borderRadius:o,color:n,colorHover:r})}var r={name:`Scrollbar`,common:e,self:n},i={paddingSmall:`12px 16px 12px`,paddingMedium:`19px 24px 20px`,paddingLarge:`23px 32px 24px`,paddingHuge:`27px 40px 28px`,titleFontSizeSmall:`16px`,titleFontSizeMedium:`18px`,titleFontSizeLarge:`18px`,titleFontSizeHuge:`18px`,closeIconSize:`18px`,closeSize:`22px`};function a(e){let{primaryColor:t,borderRadius:n,lineHeight:r,fontSize:a,cardColor:o,textColor2:s,textColor1:c,dividerColor:l,fontWeightStrong:u,closeIconColor:d,closeIconColorHover:f,closeIconColorPressed:p,closeColorHover:m,closeColorPressed:h,modalColor:g,boxShadow1:_,popoverColor:v,actionColor:y}=e;return Object.assign(Object.assign({},i),{lineHeight:r,color:o,colorModal:g,colorPopover:v,colorTarget:t,colorEmbedded:y,colorEmbeddedModal:y,colorEmbeddedPopover:y,textColor:s,titleTextColor:c,borderColor:l,actionColor:y,titleFontWeight:u,closeColorHover:m,closeColorPressed:h,closeBorderRadius:n,closeIconColor:d,closeIconColorHover:f,closeIconColorPressed:p,fontSizeSmall:a,fontSizeMedium:a,fontSizeLarge:a,fontSizeHuge:a,boxShadow:_,borderRadius:n})}var o={name:`Card`,common:e,self:a};export{n as i,a as n,r,o as t};
import{t as e}from"./light-Dq0naAvE.js";var t={railInsetHorizontalBottom:`auto 2px 4px 2px`,railInsetHorizontalTop:`4px 2px auto 2px`,railInsetVerticalRight:`2px 4px 2px auto`,railInsetVerticalLeft:`2px auto 2px 4px`,railColor:`transparent`};function n(e){let{scrollbarColor:n,scrollbarColorHover:r,scrollbarHeight:i,scrollbarWidth:a,scrollbarBorderRadius:o}=e;return Object.assign(Object.assign({},t),{height:i,width:a,borderRadius:o,color:n,colorHover:r})}var r={name:`Scrollbar`,common:e,self:n},i={paddingSmall:`12px 16px 12px`,paddingMedium:`19px 24px 20px`,paddingLarge:`23px 32px 24px`,paddingHuge:`27px 40px 28px`,titleFontSizeSmall:`16px`,titleFontSizeMedium:`18px`,titleFontSizeLarge:`18px`,titleFontSizeHuge:`18px`,closeIconSize:`18px`,closeSize:`22px`};function a(e){let{primaryColor:t,borderRadius:n,lineHeight:r,fontSize:a,cardColor:o,textColor2:s,textColor1:c,dividerColor:l,fontWeightStrong:u,closeIconColor:d,closeIconColorHover:f,closeIconColorPressed:p,closeColorHover:m,closeColorPressed:h,modalColor:g,boxShadow1:_,popoverColor:v,actionColor:y}=e;return Object.assign(Object.assign({},i),{lineHeight:r,color:o,colorModal:g,colorPopover:v,colorTarget:t,colorEmbedded:y,colorEmbeddedModal:y,colorEmbeddedPopover:y,textColor:s,titleTextColor:c,borderColor:l,actionColor:y,titleFontWeight:u,closeColorHover:m,closeColorPressed:h,closeBorderRadius:n,closeIconColor:d,closeIconColorHover:f,closeIconColorPressed:p,fontSizeSmall:a,fontSizeMedium:a,fontSizeLarge:a,fontSizeHuge:a,boxShadow:_,borderRadius:n})}var o={name:`Card`,common:e,self:a};export{n as i,a as n,r,o as t};
@@ -1,4 +1,4 @@
import{P as e,b as t,d as n,et as r,ft as i,pt as a,z as o}from"./client-DoYgjHB1.js";function s(e){let t=`.`,n=`__`,r=`--`,i;if(e){let i=e.blockPrefix;i&&(t=i),i=e.elementPrefix,i&&(n=i),i=e.modifierPrefix,i&&(r=i)}let a={install(e){i=e.c;let t=e.context;t.bem={},t.bem.b=null,t.bem.els=null}};function o(e){let n,r;return{before(e){n=e.bem.b,r=e.bem.els,e.bem.els=null},after(e){e.bem.b=n,e.bem.els=r},$({context:n,props:r}){return e=typeof e==`string`?e:e({context:n,props:r}),n.bem.b=e,`${r?.bPrefix||t}${n.bem.b}`}}}function s(e){let r;return{before(e){r=e.bem.els},after(e){e.bem.els=r},$({context:r,props:i}){return e=typeof e==`string`?e:e({context:r,props:i}),r.bem.els=e.split(`,`).map(e=>e.trim()),r.bem.els.map(e=>`${i?.bPrefix||t}${r.bem.b}${n}${e}`).join(`, `)}}}function c(e){return{$({context:i,props:a}){e=typeof e==`string`?e:e({context:i,props:a});let o=e.split(`,`).map(e=>e.trim());function s(e){return o.map(o=>`&${a?.bPrefix||t}${i.bem.b}${e===void 0?``:`${n}${e}`}${r}${o}`).join(`, `)}let c=i.bem.els;return c===null?s():s(c[0])}}}function l(e){return{$({context:i,props:a}){e=typeof e==`string`?e:e({context:i,props:a});let o=i.bem.els;return`&:not(${a?.bPrefix||t}${i.bem.b}${o!==null&&o.length>0?`${n}${o[0]}`:``}${r}${e})`}}}return Object.assign(a,{cB:((...e)=>i(o(e[0]),e[1],e[2])),cE:((...e)=>i(s(e[0]),e[1],e[2])),cM:((...e)=>i(c(e[0]),e[1],e[2])),cNotM:((...e)=>i(l(e[0]),e[1],e[2]))}),a}function c(e){let t=0;for(let n=0;n<e.length;++n)e[n]===`&`&&++t;return t}var l=/\s*,(?![^(]*\))\s*/g,u=/\s+/g;function d(e,t){let n=[];return t.split(l).forEach(t=>{let r=c(t);if(!r){e.forEach(e=>{n.push((e&&e+` `)+t)});return}else if(r===1){e.forEach(e=>{n.push(t.replace(`&`,e))});return}let i=[t];for(;r--;){let t=[];i.forEach(n=>{e.forEach(e=>{t.push(n.replace(`&`,e))})}),i=t}i.forEach(e=>n.push(e))}),n}function f(e,t){let n=[];return t.split(l).forEach(t=>{e.forEach(e=>{n.push((e&&e+` `)+t)})}),n}function p(e){let t=[``];return e.forEach(e=>{e&&=e.trim(),e&&(t=e.includes(`&`)?d(t,e):f(t,e))}),t.join(`, `).replace(u,` `)}function m(e){if(!e)return;let t=e.parentElement;t&&t.removeChild(e)}function h(e,t){return(t??document.head).querySelector(`style[cssr-id="${e}"]`)}function ee(e){let t=document.createElement(`style`);return t.setAttribute(`cssr-id`,e),t}function g(e){return e?/^\s*@(s|m)/.test(e):!1}var te=/[A-Z]/g;function _(e){return e.replace(te,e=>`-`+e.toLowerCase())}function ne(e,t=` `){return typeof e==`object`&&e?` {
import{P as e,b as t,d as n,et as r,ft as i,pt as a,z as o}from"./client-E8nWUy_w.js";function s(e){let t=`.`,n=`__`,r=`--`,i;if(e){let i=e.blockPrefix;i&&(t=i),i=e.elementPrefix,i&&(n=i),i=e.modifierPrefix,i&&(r=i)}let a={install(e){i=e.c;let t=e.context;t.bem={},t.bem.b=null,t.bem.els=null}};function o(e){let n,r;return{before(e){n=e.bem.b,r=e.bem.els,e.bem.els=null},after(e){e.bem.b=n,e.bem.els=r},$({context:n,props:r}){return e=typeof e==`string`?e:e({context:n,props:r}),n.bem.b=e,`${r?.bPrefix||t}${n.bem.b}`}}}function s(e){let r;return{before(e){r=e.bem.els},after(e){e.bem.els=r},$({context:r,props:i}){return e=typeof e==`string`?e:e({context:r,props:i}),r.bem.els=e.split(`,`).map(e=>e.trim()),r.bem.els.map(e=>`${i?.bPrefix||t}${r.bem.b}${n}${e}`).join(`, `)}}}function c(e){return{$({context:i,props:a}){e=typeof e==`string`?e:e({context:i,props:a});let o=e.split(`,`).map(e=>e.trim());function s(e){return o.map(o=>`&${a?.bPrefix||t}${i.bem.b}${e===void 0?``:`${n}${e}`}${r}${o}`).join(`, `)}let c=i.bem.els;return c===null?s():s(c[0])}}}function l(e){return{$({context:i,props:a}){e=typeof e==`string`?e:e({context:i,props:a});let o=i.bem.els;return`&:not(${a?.bPrefix||t}${i.bem.b}${o!==null&&o.length>0?`${n}${o[0]}`:``}${r}${e})`}}}return Object.assign(a,{cB:((...e)=>i(o(e[0]),e[1],e[2])),cE:((...e)=>i(s(e[0]),e[1],e[2])),cM:((...e)=>i(c(e[0]),e[1],e[2])),cNotM:((...e)=>i(l(e[0]),e[1],e[2]))}),a}function c(e){let t=0;for(let n=0;n<e.length;++n)e[n]===`&`&&++t;return t}var l=/\s*,(?![^(]*\))\s*/g,u=/\s+/g;function d(e,t){let n=[];return t.split(l).forEach(t=>{let r=c(t);if(!r){e.forEach(e=>{n.push((e&&e+` `)+t)});return}else if(r===1){e.forEach(e=>{n.push(t.replace(`&`,e))});return}let i=[t];for(;r--;){let t=[];i.forEach(n=>{e.forEach(e=>{t.push(n.replace(`&`,e))})}),i=t}i.forEach(e=>n.push(e))}),n}function f(e,t){let n=[];return t.split(l).forEach(t=>{e.forEach(e=>{n.push((e&&e+` `)+t)})}),n}function p(e){let t=[``];return e.forEach(e=>{e&&=e.trim(),e&&(t=e.includes(`&`)?d(t,e):f(t,e))}),t.join(`, `).replace(u,` `)}function m(e){if(!e)return;let t=e.parentElement;t&&t.removeChild(e)}function h(e,t){return(t??document.head).querySelector(`style[cssr-id="${e}"]`)}function ee(e){let t=document.createElement(`style`);return t.setAttribute(`cssr-id`,e),t}function g(e){return e?/^\s*@(s|m)/.test(e):!1}var te=/[A-Z]/g;function _(e){return e.replace(te,e=>`-`+e.toLowerCase())}function ne(e,t=` `){return typeof e==`object`&&e?` {
`+Object.entries(e).map(e=>t+` ${_(e[0])}: ${e[1]};`).join(`
`)+`
`+t+`}`:`: ${e};`}function re(e,t,n){return typeof e==`function`?e({context:t.context,props:n}):e}function ie(e,t,n,r){if(!t)return``;let i=re(t,n,r);if(!i)return``;if(typeof i==`string`)return`${e} {\n${i}\n}`;let a=Object.keys(i);if(a.length===0)return n.config.keepEmptyBlock?e+` {
@@ -1 +1 @@
import{F as e,h as t,m as n}from"./client-DoYgjHB1.js";function r(i){return i.some(i=>e(i)?!(i.type===n||i.type===t&&!r(i.children)):!0)?i:null}function i(e,t){return e&&r(e())||t()}function a(e,t,n){return e&&r(e(t))||n(t)}function o(e,t){return t(e&&r(e())||null)}function s(e){return!(e&&r(e()))}export{o as a,a as i,s as n,i as r,r as t};
import{F as e,h as t,m as n}from"./client-E8nWUy_w.js";function r(i){return i.some(i=>e(i)?!(i.type===n||i.type===t&&!r(i.children)):!0)?i:null}function i(e,t){return e&&r(e())||t()}function a(e,t,n){return e&&r(e(t))||n(t)}function o(e,t){return t(e&&r(e())||null)}function s(e){return!(e&&r(e()))}export{o as a,a as i,s as n,i as r,r as t};
@@ -1,4 +1,4 @@
import{M as e,b as t,k as n}from"./client-DoYgjHB1.js";import{K as r,M as i,N as a,Y as o,Z as s,r as c}from"./light-DZR0fP_1.js";import{t as l}from"./use-compitable-DUNzxmzx.js";import{i as u}from"./index-D97zgrb7.js";var d=r(`text`,`
import{M as e,b as t,k as n}from"./client-E8nWUy_w.js";import{K as r,M as i,N as a,Y as o,Z as s,r as c}from"./light-Dq0naAvE.js";import{t as l}from"./use-compitable-ChIWeUtn.js";import{i as u}from"./index-BxZQI6N2.js";var d=r(`text`,`
transition: color .3s var(--n-bezier);
color: var(--n-text-color);
`,[o(`strong`,`
@@ -1 +1 @@
import{b as e}from"./client-DoYgjHB1.js";function t(t,n){return e(()=>{for(let e of n)if(t[e]!==void 0)return t[e];return t[n[n.length-1]]})}export{t};
import{b as e}from"./client-E8nWUy_w.js";function t(t,n){return e(()=>{for(let e of n)if(t[e]!==void 0)return t[e];return t[n[n.length-1]]})}export{t};
@@ -1 +1 @@
import{B as e,K as t,P as n,b as r}from"./client-DoYgjHB1.js";import{z as i}from"./light-DZR0fP_1.js";function a(e){return e.replace(/#|\(|\)|,|\s|\./g,`_`)}function o(e,...t){if(Array.isArray(e))e.forEach(e=>o(e,...t));else return e(...t)}var s=i(`n-form-item`);function c(i,{defaultSize:a=`medium`,mergedSize:o,mergedDisabled:c}={}){let l=n(s,null);t(s,null);let u=r(o?()=>o(l):()=>{let{size:e}=i;if(e)return e;if(l){let{mergedSize:e}=l;if(e.value!==void 0)return e.value}return a}),d=r(c?()=>c(l):()=>{let{disabled:e}=i;return e===void 0?l?l.disabled.value:!1:e}),f=r(()=>{let{status:e}=i;return e||l?.mergedValidationStatus.value});return e(()=>{l&&l.restoreValidation()}),{mergedSizeRef:u,mergedDisabledRef:d,mergedStatusRef:f,nTriggerFormBlur(){l&&l.handleContentBlur()},nTriggerFormChange(){l&&l.handleContentChange()},nTriggerFormFocus(){l&&l.handleContentFocus()},nTriggerFormInput(){l&&l.handleContentInput()}}}export{a as i,c as n,o as r,s as t};
import{B as e,K as t,P as n,b as r}from"./client-E8nWUy_w.js";import{z as i}from"./light-Dq0naAvE.js";function a(e){return e.replace(/#|\(|\)|,|\s|\./g,`_`)}function o(e,...t){if(Array.isArray(e))e.forEach(e=>o(e,...t));else return e(...t)}var s=i(`n-form-item`);function c(i,{defaultSize:a=`medium`,mergedSize:o,mergedDisabled:c}={}){let l=n(s,null);t(s,null);let u=r(o?()=>o(l):()=>{let{size:e}=i;if(e)return e;if(l){let{mergedSize:e}=l;if(e.value!==void 0)return e.value}return a}),d=r(c?()=>c(l):()=>{let{disabled:e}=i;return e===void 0?l?l.disabled.value:!1:e}),f=r(()=>{let{status:e}=i;return e||l?.mergedValidationStatus.value});return e(()=>{l&&l.restoreValidation()}),{mergedSizeRef:u,mergedDisabledRef:d,mergedStatusRef:f,nTriggerFormBlur(){l&&l.handleContentBlur()},nTriggerFormChange(){l&&l.handleContentChange()},nTriggerFormFocus(){l&&l.handleContentFocus()},nTriggerFormInput(){l&&l.handleContentInput()}}}export{a as i,c as n,o as r,s as t};
@@ -1 +1 @@
import{$ as e,b as t}from"./client-DoYgjHB1.js";function n(n,r){return e(n,e=>{e!==void 0&&(r.value=e)}),t(()=>n.value===void 0?r.value:n.value)}export{n as t};
import{$ as e,b as t}from"./client-E8nWUy_w.js";function n(n,r){return e(n,e=>{e!==void 0&&(r.value=e)}),t(()=>n.value===void 0?r.value:n.value)}export{n as t};
@@ -1 +1 @@
import{P as e}from"./client-DoYgjHB1.js";import{I as t}from"./light-DZR0fP_1.js";import{p as n}from"./index-D97zgrb7.js";function r(){let r=e(n,null);return r===null&&t(`use-message`,"No outer <n-message-provider /> founded. See prerequisite in https://www.naiveui.com/en-US/os-theme/components/message for more details. If you want to use `useMessage` outside setup, please check https://www.naiveui.com/zh-CN/os-theme/components/message#Q-&-A."),r}export{r as t};
import{P as e}from"./client-E8nWUy_w.js";import{I as t}from"./light-Dq0naAvE.js";import{p as n}from"./index-BxZQI6N2.js";function r(){let r=e(n,null);return r===null&&t(`use-message`,"No outer <n-message-provider /> founded. See prerequisite in https://www.naiveui.com/en-US/os-theme/components/message for more details. If you want to use `useMessage` outside setup, please check https://www.naiveui.com/zh-CN/os-theme/components/message#Q-&-A."),r}export{r as t};
@@ -1 +1 @@
import{H as e,U as t,ft as n}from"./client-DoYgjHB1.js";function r(r,i=5e3){let a=n(!0),o=null,s=()=>{a.value=!0,r(),o=window.setInterval(r,i)},c=()=>{a.value=!1,o&&=(clearInterval(o),null)};return e(s),t(c),{isActive:a,start:s,stop:c}}export{r as t};
import{H as e,U as t,ft as n}from"./client-E8nWUy_w.js";function r(r,i=5e3){let a=n(!0),o=null,s=()=>{a.value=!0,r(),o=window.setInterval(r,i)},c=()=>{a.value=!1,o&&=(clearInterval(o),null)};return e(s),t(c),{isActive:a,start:s,stop:c}}export{r as t};
-131
View File
File diff suppressed because one or more lines are too long
+131
View File
File diff suppressed because one or more lines are too long
+4 -4
View File
@@ -5,10 +5,10 @@
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Вечерний детектив</title>
<script type="module" crossorigin src="/assets/index-D97zgrb7.js"></script>
<link rel="modulepreload" crossorigin href="/assets/client-DoYgjHB1.js">
<link rel="modulepreload" crossorigin href="/assets/light-DZR0fP_1.js">
<link rel="modulepreload" crossorigin href="/assets/light-iXisWhjq.js">
<script type="module" crossorigin src="/assets/index-BxZQI6N2.js"></script>
<link rel="modulepreload" crossorigin href="/assets/client-E8nWUy_w.js">
<link rel="modulepreload" crossorigin href="/assets/light-Dq0naAvE.js">
<link rel="modulepreload" crossorigin href="/assets/light-BIkcYbx-.js">
<link rel="stylesheet" crossorigin href="/assets/index-CF62QB4P.css">
</head>
<body>
+21
View File
@@ -539,6 +539,17 @@ service EveningDetectiveServer {
};
}
rpc AcceptTicket(AcceptTicketReq) returns (AcceptTicketRsp) {
option (google.api.http) = {
post: "/api/tickets/{token}/accept"
body: "*"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Билеты";
summary: "Принять билет";
};
}
// Создать сессию экрана. Экран получает токен и показывает QR для привязки.
rpc CreateScreenSession(CreateScreenSessionReq) returns (CreateScreenSessionRsp) {
option (google.api.http) = {
@@ -1912,6 +1923,15 @@ message GetTicketRsp {
TicketPage ticket = 2;
}
message AcceptTicketReq {
string token = 1;
}
message AcceptTicketRsp {
string error = 1;
TicketPage ticket = 2;
}
message TicketPage {
int32 id = 1;
string game_name = 2;
@@ -1920,4 +1940,5 @@ message TicketPage {
string status = 5;
string game_status = 6;
optional google.protobuf.Timestamp used_at = 7;
string used_by = 8;
}
@@ -982,6 +982,16 @@ export type TicketPage = {
status: string | undefined;
gameStatus: string | undefined;
usedAt?: wellKnownTimestamp;
usedBy: string | undefined;
};
export type AcceptTicketReq = {
token: string | undefined;
};
export type AcceptTicketRsp = {
error: string | undefined;
ticket: TicketPage | undefined;
};
export interface EveningDetectiveServer {
@@ -1035,6 +1045,7 @@ export interface EveningDetectiveServer {
GetGame(request: GetGameReq): Promise<GetGameRsp>;
IssueGameTickets(request: IssueGameTicketsReq): Promise<IssueGameTicketsRsp>;
GetTicket(request: GetTicketReq): Promise<GetTicketRsp>;
AcceptTicket(request: AcceptTicketReq): Promise<AcceptTicketRsp>;
// Создать сессию экрана. Экран получает токен и показывает QR для привязки.
CreateScreenSession(request: CreateScreenSessionReq): Promise<CreateScreenSessionRsp>;
// Получить состояние экрана по его токену. Вызывается самим экраном.
@@ -1961,6 +1972,26 @@ export function createEveningDetectiveServerClient(
method: "GetTicket",
}) as Promise<GetTicketRsp>;
},
AcceptTicket(request) { // eslint-disable-line @typescript-eslint/no-unused-vars
if (!request.token) {
throw new Error("missing required field request.token");
}
const path = `api/tickets/${request.token}/accept`; // eslint-disable-line quotes
const body = JSON.stringify(request);
const queryParams: string[] = [];
let uri = path;
if (queryParams.length > 0) {
uri += `?${queryParams.join("&")}`
}
return handler({
path: uri,
method: "POST",
body,
}, {
service: "EveningDetectiveServer",
method: "AcceptTicket",
}) as Promise<AcceptTicketRsp>;
},
CreateScreenSession(request) { // eslint-disable-line @typescript-eslint/no-unused-vars
const path = `api/screens`; // eslint-disable-line quotes
const body = JSON.stringify(request);
+7
View File
@@ -78,6 +78,13 @@ const openMenu = ref(false)
>
Игры
</div>
<div
class="menu-item-block"
v-if="hasPermission('games_page')"
@click="router.push('/tickets/check')"
>
Проверка билетов
</div>
<div
class="menu-item-block"
:class="{ active: props.active == 'catalog' }"
+3 -1
View File
@@ -64,7 +64,9 @@ onMounted(load)
<p>Покажите этот QR-код организатору.</p>
<p v-if="ticket.status === 'used'" class="used" role="status">
Билет уже использован{{ ticket.usedAt ? ` ${formatGameDateTime(ticket.usedAt)}` : '' }}.
Билет уже использован{{ ticket.usedAt ? ` ${formatGameDateTime(ticket.usedAt)}` : '' }}{{
ticket.usedBy ? ` организатором ${ticket.usedBy}` : ''
}}.
</p>
<p v-else-if="ticket.gameStatus === 'finish'" class="used" role="status">
Игра уже завершена.
+166
View File
@@ -0,0 +1,166 @@
<script setup lang="ts">
import { NAlert, NButton, NCard, NInput, NSpace, useMessage } from 'naive-ui'
import { computed, nextTick, onBeforeUnmount, onMounted, ref } from 'vue'
import { useRouter } from 'vue-router'
import { getAuthClient } from '@/api/auth_client'
import type { TicketPage } from '@/api/generated/crabs/evening_detective_server'
import HeaderMenu from '@/components/HeaderMenu.vue'
import { useAuthStore } from '@/stores/auth'
import { formatGameDateTime } from '@/utils/datetime'
type Detector = { detect(video: HTMLVideoElement): Promise<{ rawValue: string }[]> }
const authStore = useAuthStore()
const router = useRouter()
const client = getAuthClient()
const message = useMessage()
const value = ref('')
const ticket = ref<TicketPage>()
const error = ref('')
const loading = ref(false)
const video = ref<HTMLVideoElement>()
const cameraOn = ref(false)
let stream: MediaStream | undefined
let frame = 0
const token = computed(() => {
try {
return new URL(value.value.trim()).pathname.match(/\/tickets\/([^/]+)/)?.[1] || ''
} catch {
return value.value.trim()
}
})
async function findTicket() {
if (!token.value || loading.value) return
loading.value = true
error.value = ''
ticket.value = undefined
try {
const result = await client.GetTicket({ token: token.value })
if (result.error || !result.ticket) error.value = result.error || 'Билет не найден'
else ticket.value = result.ticket
} catch (err) {
error.value = err instanceof Error ? err.message : 'Не удалось проверить билет'
} finally {
loading.value = false
}
}
async function acceptTicket() {
if (!token.value || loading.value) return
loading.value = true
error.value = ''
try {
const result = await client.AcceptTicket({ token: token.value })
if (result.error || !result.ticket) error.value = result.error || 'Не удалось принять билет'
else {
ticket.value = result.ticket
message.success('Билет принят')
}
} catch (err) {
error.value = err instanceof Error ? err.message : 'Не удалось принять билет'
} finally {
loading.value = false
}
}
async function scanCamera() {
const DetectorClass = (window as Window & { BarcodeDetector?: new () => Detector }).BarcodeDetector
if (!DetectorClass || !navigator.mediaDevices?.getUserMedia) {
error.value = 'Сканирование камерой не поддерживается. Введите ссылку вручную.'
return
}
try {
stream = await navigator.mediaDevices.getUserMedia({ video: { facingMode: 'environment' } })
cameraOn.value = true
await nextTick()
if (video.value) {
video.value.srcObject = stream
await video.value.play()
}
const detector = new DetectorClass()
const scan = async () => {
if (!cameraOn.value || !video.value) return
const codes = await detector.detect(video.value)
if (codes[0]?.rawValue) {
value.value = codes[0].rawValue
stopCamera()
await findTicket()
return
}
frame = requestAnimationFrame(scan)
}
frame = requestAnimationFrame(scan)
} catch {
error.value = 'Не удалось открыть камеру. Введите ссылку вручную.'
}
}
function stopCamera() {
cameraOn.value = false
cancelAnimationFrame(frame)
stream?.getTracks().forEach((track) => track.stop())
stream = undefined
}
onMounted(() => {
if (!authStore.isAuthenticated) router.replace('/login')
})
onBeforeUnmount(stopCamera)
</script>
<template>
<HeaderMenu active="games" />
<div class="center-block-custom center-middle-block-custom scanner-page">
<n-card title="Проверка билета" class="scanner-card">
<n-space vertical>
<video v-if="cameraOn" ref="video" class="scanner-video" muted playsinline />
<n-button v-if="!cameraOn" @click="scanCamera">Сканировать камерой</n-button>
<n-button v-else @click="stopCamera">Остановить камеру</n-button>
<n-input
v-model:value="value"
placeholder="Или вставьте ссылку на билет"
@keyup.enter="findTicket"
/>
<n-button type="primary" :loading="loading" @click="findTicket">Проверить билет</n-button>
<n-alert v-if="error" type="error">{{ error }}</n-alert>
<template v-if="ticket">
<n-alert :type="ticket.status === 'active' ? 'success' : 'warning'">
{{ ticket.gameName }}<br />
Статус: {{ ticket.status === 'active' ? 'действителен' : 'уже использован' }}
<span v-if="ticket.usedBy"> · {{ ticket.usedBy }}</span>
<br v-if="ticket.usedAt" />
<span v-if="ticket.usedAt">Использован: {{ formatGameDateTime(ticket.usedAt) }}</span>
</n-alert>
<n-button
v-if="ticket.status === 'active' && ticket.gameStatus !== 'finish'"
type="primary"
:loading="loading"
@click="acceptTicket"
>
Принять билет
</n-button>
</template>
</n-space>
</n-card>
</div>
</template>
<style scoped>
.scanner-page {
padding: 20px;
}
.scanner-card {
max-width: 520px;
width: 100%;
}
.scanner-video {
background: #000;
max-height: 50dvh;
width: 100%;
}
</style>
+5
View File
@@ -8,6 +8,11 @@ const router = createRouter({
name: 'participation',
component: () => import('../views/ParticipationView.vue'),
},
{
path: '/tickets/check',
name: 'ticket-check',
component: () => import('../views/TicketScannerView.vue'),
},
{
path: '/tickets/:token',
name: 'ticket',
+7
View File
@@ -0,0 +1,7 @@
<script setup lang="ts">
import TicketScannerPage from '@/components/TicketScannerPage.vue'
</script>
<template>
<TicketScannerPage />
</template>