add result

This commit is contained in:
2026-09-03 00:18:51 +07:00
parent 131790dd85
commit 8b8fb33d45
80 changed files with 2569 additions and 2041 deletions
-48
View File
@@ -1,48 +0,0 @@
import{E as e,M as t,k as n,rt as r,v as i}from"./vue-router-CyfP71JJ.js";import{$ as a,H as o,J as s,R as c,U as l,X as u,Z as d,i as f,l as p,n as m,o as h,q as g,t as _,z as v}from"./light-3nK60gWS.js";import{a as y,c as b,r as x}from"./resolve-slot-tPBGpQg9.js";import{A as S,F as C,M as w,N as T,P as E,S as D,x as O}from"./index-zAAv4RkK.js";function k(e){let{lineHeight:t,borderRadius:n,fontWeightStrong:r,baseColor:i,dividerColor:a,actionColor:s,textColor1:c,textColor2:u,closeColorHover:d,closeColorPressed:f,closeIconColor:p,closeIconColorHover:m,closeIconColorPressed:h,infoColor:g,successColor:_,warningColor:v,errorColor:y,fontSize:b}=e;return Object.assign(Object.assign({},D),{fontSize:b,lineHeight:t,titleFontWeight:r,borderRadius:n,border:`1px solid ${a}`,color:s,titleTextColor:c,iconColor:u,contentTextColor:u,closeBorderRadius:n,closeColorHover:d,closeColorPressed:f,closeIconColor:p,closeIconColorHover:m,closeIconColorPressed:h,borderInfo:`1px solid ${l(i,o(g,{alpha:.25}))}`,colorInfo:l(i,o(g,{alpha:.08})),titleTextColorInfo:c,iconColorInfo:g,contentTextColorInfo:u,closeColorHoverInfo:d,closeColorPressedInfo:f,closeIconColorInfo:p,closeIconColorHoverInfo:m,closeIconColorPressedInfo:h,borderSuccess:`1px solid ${l(i,o(_,{alpha:.25}))}`,colorSuccess:l(i,o(_,{alpha:.08})),titleTextColorSuccess:c,iconColorSuccess:_,contentTextColorSuccess:u,closeColorHoverSuccess:d,closeColorPressedSuccess:f,closeIconColorSuccess:p,closeIconColorHoverSuccess:m,closeIconColorPressedSuccess:h,borderWarning:`1px solid ${l(i,o(v,{alpha:.33}))}`,colorWarning:l(i,o(v,{alpha:.08})),titleTextColorWarning:c,iconColorWarning:v,contentTextColorWarning:u,closeColorHoverWarning:d,closeColorPressedWarning:f,closeIconColorWarning:p,closeIconColorHoverWarning:m,closeIconColorPressedWarning:h,borderError:`1px solid ${l(i,o(y,{alpha:.25}))}`,colorError:l(i,o(y,{alpha:.08})),titleTextColorError:c,iconColorError:y,contentTextColorError:u,closeColorHoverError:d,closeColorPressedError:f,closeIconColorError:p,closeIconColorHoverError:m,closeIconColorPressedError:h})}var A={name:`Alert`,common:_,self:k},j=s(`alert`,`
line-height: var(--n-line-height);
border-radius: var(--n-border-radius);
position: relative;
transition: background-color .3s var(--n-bezier);
background-color: var(--n-color);
text-align: start;
word-break: break-word;
`,[u(`border`,`
border-radius: inherit;
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
transition: border-color .3s var(--n-bezier);
border: var(--n-border);
pointer-events: none;
`),d(`closable`,[s(`alert-body`,[u(`title`,`
padding-right: 24px;
`)])]),u(`icon`,{color:`var(--n-icon-color)`}),s(`alert-body`,{padding:`var(--n-padding)`},[u(`title`,{color:`var(--n-title-text-color)`}),u(`content`,{color:`var(--n-content-text-color)`})]),O({originalTransition:`transform .3s var(--n-bezier)`,enterToProps:{transform:`scale(1)`},leaveToProps:{transform:`scale(0.9)`}}),u(`icon`,`
position: absolute;
left: 0;
top: 0;
align-items: center;
justify-content: center;
display: flex;
width: var(--n-icon-size);
height: var(--n-icon-size);
font-size: var(--n-icon-size);
margin: var(--n-icon-margin);
`),u(`close`,`
transition:
color .3s var(--n-bezier),
background-color .3s var(--n-bezier);
position: absolute;
right: 0;
top: 0;
margin: var(--n-close-margin);
`),d(`show-icon`,[s(`alert-body`,{paddingLeft:`calc(var(--n-icon-margin-left) + var(--n-icon-size) + var(--n-icon-margin-right))`})]),d(`right-adjust`,[s(`alert-body`,{paddingRight:`calc(var(--n-close-size) + var(--n-padding) + 2px)`})]),s(`alert-body`,`
border-radius: var(--n-border-radius);
transition: border-color .3s var(--n-bezier);
`,[u(`title`,`
transition: color .3s var(--n-bezier);
font-size: 16px;
line-height: 19px;
font-weight: var(--n-title-font-weight);
`,[g(`& +`,[u(`content`,{marginTop:`9px`})])]),u(`content`,{transition:`color .3s var(--n-bezier)`,fontSize:`var(--n-font-size)`})]),u(`icon`,{transition:`color .3s var(--n-bezier)`})]),M=e({name:`Alert`,inheritAttrs:!1,props:Object.assign(Object.assign({},h.props),{title:String,showIcon:{type:Boolean,default:!0},type:{type:String,default:`default`},bordered:{type:Boolean,default:!0},closable:Boolean,onClose:Function,onAfterLeave:Function,onAfterHide:Function}),slots:Object,setup(e){let{mergedClsPrefixRef:t,mergedBorderedRef:n,inlineThemeDisabled:o,mergedRtlRef:s}=v(e),l=h(`Alert`,`-alert`,j,A,e,t),u=p(`Alert`,s,t),d=i(()=>{let{common:{cubicBezierEaseInOut:t},self:n}=l.value,{fontSize:r,borderRadius:i,titleFontWeight:o,lineHeight:s,iconSize:c,iconMargin:u,iconMarginRtl:d,closeIconSize:f,closeBorderRadius:p,closeSize:m,closeMargin:h,closeMarginRtl:g,padding:_}=n,{type:v}=e,{left:y,right:x}=b(u);return{"--n-bezier":t,"--n-color":n[a(`color`,v)],"--n-close-icon-size":f,"--n-close-border-radius":p,"--n-close-color-hover":n[a(`closeColorHover`,v)],"--n-close-color-pressed":n[a(`closeColorPressed`,v)],"--n-close-icon-color":n[a(`closeIconColor`,v)],"--n-close-icon-color-hover":n[a(`closeIconColorHover`,v)],"--n-close-icon-color-pressed":n[a(`closeIconColorPressed`,v)],"--n-icon-color":n[a(`iconColor`,v)],"--n-border":n[a(`border`,v)],"--n-title-text-color":n[a(`titleTextColor`,v)],"--n-content-text-color":n[a(`contentTextColor`,v)],"--n-line-height":s,"--n-border-radius":i,"--n-font-size":r,"--n-title-font-weight":o,"--n-icon-size":c,"--n-icon-margin":u,"--n-icon-margin-rtl":d,"--n-close-size":m,"--n-close-margin":h,"--n-close-margin-rtl":g,"--n-padding":_,"--n-icon-margin-left":y,"--n-icon-margin-right":x}}),f=o?c(`alert`,i(()=>e.type[0]),d,e):void 0,m=r(!0),g=()=>{let{onAfterLeave:t,onAfterHide:n}=e;t&&t(),n&&n()};return{rtlEnabled:u,mergedClsPrefix:t,mergedBordered:n,visible:m,handleCloseClick:()=>{Promise.resolve(e.onClose?.call(e)).then(e=>{e!==!1&&(m.value=!1)})},handleAfterLeave:()=>{g()},mergedTheme:l,cssVars:o?void 0:d,themeClass:f?.themeClass,onRender:f?.onRender}},render(){var e;return(e=this.onRender)==null||e.call(this),n(S,{onAfterLeave:this.handleAfterLeave},{default:()=>{let{mergedClsPrefix:e,$slots:r}=this,i={class:[`${e}-alert`,this.themeClass,this.closable&&`${e}-alert--closable`,this.showIcon&&`${e}-alert--show-icon`,!this.title&&this.closable&&`${e}-alert--right-adjust`,this.rtlEnabled&&`${e}-alert--rtl`],style:this.cssVars,role:`alert`};return this.visible?n(`div`,Object.assign({},t(this.$attrs,i)),this.closable&&n(m,{clsPrefix:e,class:`${e}-alert__close`,onClick:this.handleCloseClick}),this.bordered&&n(`div`,{class:`${e}-alert__border`}),this.showIcon&&n(`div`,{class:`${e}-alert__icon`,"aria-hidden":`true`},x(r.icon,()=>[n(f,{clsPrefix:e},{default:()=>{switch(this.type){case`success`:return n(T,null);case`info`:return n(E,null);case`warning`:return n(w,null);case`error`:return n(C,null);default:return null}}})])),n(`div`,{class:[`${e}-alert-body`,this.mergedBordered&&`${e}-alert-body--bordered`]},y(r.header,t=>{let r=t||this.title;return r?n(`div`,{class:`${e}-alert-body__title`},r):null}),r.default&&n(`div`,{class:`${e}-alert-body__content`},r))):null}})}});export{M as t};
+48
View File
@@ -0,0 +1,48 @@
import{E as e,M as t,k as n,rt as r,v as i}from"./vue-router-CyfP71JJ.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-CPiNeYrP.js";import{r as _}from"./css-DEmdllcC.js";import{a as v,r as y}from"./resolve-slot-A17u0Glq.js";import{A as b,F as x,I as S,N as C,P as w,S as T,j as E,x as D,z as O}from"./index-CqdSAiqM.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({},T),{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;
transition: background-color .3s var(--n-bezier);
background-color: var(--n-color);
text-align: start;
word-break: break-word;
`,[s(`border`,`
border-radius: inherit;
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
transition: border-color .3s var(--n-bezier);
border: var(--n-border);
pointer-events: none;
`),f(`closable`,[c(`alert-body`,[s(`title`,`
padding-right: 24px;
`)])]),s(`icon`,{color:`var(--n-icon-color)`}),c(`alert-body`,{padding:`var(--n-padding)`},[s(`title`,{color:`var(--n-title-text-color)`}),s(`content`,{color:`var(--n-content-text-color)`})]),D({originalTransition:`transform .3s var(--n-bezier)`,enterToProps:{transform:`scale(1)`},leaveToProps:{transform:`scale(0.9)`}}),s(`icon`,`
position: absolute;
left: 0;
top: 0;
align-items: center;
justify-content: center;
display: flex;
width: var(--n-icon-size);
height: var(--n-icon-size);
font-size: var(--n-icon-size);
margin: var(--n-icon-margin);
`),s(`close`,`
transition:
color .3s var(--n-bezier),
background-color .3s var(--n-bezier);
position: absolute;
right: 0;
top: 0;
margin: var(--n-close-margin);
`),f(`show-icon`,[c(`alert-body`,{paddingLeft:`calc(var(--n-icon-margin-left) + var(--n-icon-size) + var(--n-icon-margin-right))`})]),f(`right-adjust`,[c(`alert-body`,{paddingRight:`calc(var(--n-close-size) + var(--n-padding) + 2px)`})]),c(`alert-body`,`
border-radius: var(--n-border-radius);
transition: border-color .3s var(--n-bezier);
`,[s(`title`,`
transition: color .3s var(--n-bezier);
font-size: 16px;
line-height: 19px;
font-weight: var(--n-title-font-weight);
`,[o(`& +`,[s(`content`,{marginTop:`9px`})])]),s(`content`,{transition:`color .3s var(--n-bezier)`,fontSize:`var(--n-font-size)`})]),s(`icon`,{transition:`color .3s var(--n-bezier)`})]),M=e({name:`Alert`,inheritAttrs:!1,props:Object.assign(Object.assign({},h.props),{title:String,showIcon:{type:Boolean,default:!0},type:{type:String,default:`default`},bordered:{type:Boolean,default:!0},closable:Boolean,onClose:Function,onAfterLeave:Function,onAfterHide:Function}),slots:Object,setup(e){let{mergedClsPrefixRef:t,mergedBorderedRef:n,inlineThemeDisabled:a,mergedRtlRef:o}=u(e),s=h(`Alert`,`-alert`,j,A,e,t),c=m(`Alert`,o,t),d=i(()=>{let{common:{cubicBezierEaseInOut:t},self:n}=s.value,{fontSize:r,borderRadius:i,titleFontWeight:a,lineHeight:o,iconSize:c,iconMargin:l,iconMarginRtl:u,closeIconSize:d,closeBorderRadius:f,closeSize:m,closeMargin:h,closeMarginRtl:g,padding:v}=n,{type:y}=e,{left:b,right:x}=_(l);return{"--n-bezier":t,"--n-color":n[p(`color`,y)],"--n-close-icon-size":d,"--n-close-border-radius":f,"--n-close-color-hover":n[p(`closeColorHover`,y)],"--n-close-color-pressed":n[p(`closeColorPressed`,y)],"--n-close-icon-color":n[p(`closeIconColor`,y)],"--n-close-icon-color-hover":n[p(`closeIconColorHover`,y)],"--n-close-icon-color-pressed":n[p(`closeIconColorPressed`,y)],"--n-icon-color":n[p(`iconColor`,y)],"--n-border":n[p(`border`,y)],"--n-title-text-color":n[p(`titleTextColor`,y)],"--n-content-text-color":n[p(`contentTextColor`,y)],"--n-line-height":o,"--n-border-radius":i,"--n-font-size":r,"--n-title-font-weight":a,"--n-icon-size":c,"--n-icon-margin":l,"--n-icon-margin-rtl":u,"--n-close-size":m,"--n-close-margin":h,"--n-close-margin-rtl":g,"--n-padding":v,"--n-icon-margin-left":b,"--n-icon-margin-right":x}}),f=a?l(`alert`,i(()=>e.type[0]),d,e):void 0,g=r(!0),v=()=>{let{onAfterLeave:t,onAfterHide:n}=e;t&&t(),n&&n()};return{rtlEnabled:c,mergedClsPrefix:t,mergedBordered:n,visible:g,handleCloseClick:()=>{Promise.resolve(e.onClose?.call(e)).then(e=>{e!==!1&&(g.value=!1)})},handleAfterLeave:()=>{v()},mergedTheme:s,cssVars:a?void 0:d,themeClass:f?.themeClass,onRender:f?.onRender}},render(){var e;return(e=this.onRender)==null||e.call(this),n(b,{onAfterLeave:this.handleAfterLeave},{default:()=>{let{mergedClsPrefix:e,$slots:r}=this,i={class:[`${e}-alert`,this.themeClass,this.closable&&`${e}-alert--closable`,this.showIcon&&`${e}-alert--show-icon`,!this.title&&this.closable&&`${e}-alert--right-adjust`,this.rtlEnabled&&`${e}-alert--rtl`],style:this.cssVars,role:`alert`};return this.visible?n(`div`,Object.assign({},t(this.$attrs,i)),this.closable&&n(E,{clsPrefix:e,class:`${e}-alert__close`,onClick:this.handleCloseClick}),this.bordered&&n(`div`,{class:`${e}-alert__border`}),this.showIcon&&n(`div`,{class:`${e}-alert__icon`,"aria-hidden":`true`},y(r.icon,()=>[n(O,{clsPrefix:e},{default:()=>{switch(this.type){case`success`:return n(w,null);case`info`:return n(x,null);case`warning`:return n(C,null);case`error`:return n(S,null);default:return null}}})])),n(`div`,{class:[`${e}-alert-body`,this.mergedBordered&&`${e}-alert-body--bordered`]},v(r.header,t=>{let r=t||this.title;return r?n(`div`,{class:`${e}-alert-body__title`},r):null}),r.default&&n(`div`,{class:`${e}-alert-body__content`},r))):null}})}});export{M as t};
-109
View File
File diff suppressed because one or more lines are too long
+35 -35
View File
@@ -1,10 +1,10 @@
import{E as e,k as t,v as n}from"./vue-router-CyfP71JJ.js";import{$ as r,J as i,K as a,R as o,X as s,Z as c,et as l,l as u,n as d,o as f,q as p,tt as m,z as h}from"./light-3nK60gWS.js";import{r as g}from"./Input-CYnJzkGX.js";import{a as _,c as v,t as y}from"./resolve-slot-tPBGpQg9.js";import{t as b}from"./call-ChHlm4-m.js";import{_ as x}from"./index-zAAv4RkK.js";function S(e){return Object.keys(e)}var C=i(`card-content`,` import{E as e,k as t,v as n}from"./vue-router-CyfP71JJ.js";import{$ as r,G as i,J as a,K as o,M as s,N as c,Q as l,W as u,Y as d,Z as f,o as p,r as m}from"./light-CPiNeYrP.js";import{r as h}from"./Input-DNhRbQfG.js";import{r as g}from"./css-DEmdllcC.js";import{t as _}from"./call-ChHlm4-m.js";import{a as v,t as y}from"./resolve-slot-A17u0Glq.js";import{_ as b,j as x}from"./index-CqdSAiqM.js";function S(e){return Object.keys(e)}var C=o(`card-content`,`
flex: 1; flex: 1;
min-width: 0; min-width: 0;
box-sizing: border-box; box-sizing: border-box;
padding: 0 var(--n-padding-left) var(--n-padding-bottom) var(--n-padding-left); padding: 0 var(--n-padding-left) var(--n-padding-bottom) var(--n-padding-left);
font-size: var(--n-font-size); font-size: var(--n-font-size);
`),w=p([i(`card`,` `),w=i([o(`card`,`
font-size: var(--n-font-size); font-size: var(--n-font-size);
line-height: var(--n-line-height); line-height: var(--n-line-height);
display: flex; display: flex;
@@ -21,22 +21,22 @@ import{E as e,k as t,v as n}from"./vue-router-CyfP71JJ.js";import{$ as r,J as i,
background-color .3s var(--n-bezier), background-color .3s var(--n-bezier),
box-shadow .3s var(--n-bezier), box-shadow .3s var(--n-bezier),
border-color .3s var(--n-bezier); border-color .3s var(--n-bezier);
`,[a({background:`var(--n-color-modal)`}),c(`hoverable`,[p(`&:hover`,`box-shadow: var(--n-box-shadow);`)]),c(`content-segmented`,[p(`>`,[i(`card-content`,` `,[u({background:`var(--n-color-modal)`}),d(`hoverable`,[i(`&:hover`,`box-shadow: var(--n-box-shadow);`)]),d(`content-segmented`,[i(`>`,[o(`card-content`,`
padding-top: var(--n-padding-bottom); padding-top: var(--n-padding-bottom);
`),s(`content-scrollbar`,[p(`>`,[i(`scrollbar-container`,[p(`>`,[i(`card-content`,` `),a(`content-scrollbar`,[i(`>`,[o(`scrollbar-container`,[i(`>`,[o(`card-content`,`
padding-top: var(--n-padding-bottom); padding-top: var(--n-padding-bottom);
`)])])])])])]),c(`content-soft-segmented`,[p(`>`,[i(`card-content`,` `)])])])])])]),d(`content-soft-segmented`,[i(`>`,[o(`card-content`,`
margin: 0 var(--n-padding-left); margin: 0 var(--n-padding-left);
padding: var(--n-padding-bottom) 0; padding: var(--n-padding-bottom) 0;
`),s(`content-scrollbar`,[p(`>`,[i(`scrollbar-container`,[p(`>`,[i(`card-content`,` `),a(`content-scrollbar`,[i(`>`,[o(`scrollbar-container`,[i(`>`,[o(`card-content`,`
margin: 0 var(--n-padding-left); margin: 0 var(--n-padding-left);
padding: var(--n-padding-bottom) 0; padding: var(--n-padding-bottom) 0;
`)])])])])])]),c(`footer-segmented`,[p(`>`,[s(`footer`,` `)])])])])])]),d(`footer-segmented`,[i(`>`,[a(`footer`,`
padding-top: var(--n-padding-bottom); padding-top: var(--n-padding-bottom);
`)])]),c(`footer-soft-segmented`,[p(`>`,[s(`footer`,` `)])]),d(`footer-soft-segmented`,[i(`>`,[a(`footer`,`
padding: var(--n-padding-bottom) 0; padding: var(--n-padding-bottom) 0;
margin: 0 var(--n-padding-left); margin: 0 var(--n-padding-left);
`)])]),p(`>`,[i(`card-header`,` `)])]),i(`>`,[o(`card-header`,`
box-sizing: border-box; box-sizing: border-box;
display: flex; display: flex;
align-items: center; align-items: center;
@@ -46,80 +46,80 @@ import{E as e,k as t,v as n}from"./vue-router-CyfP71JJ.js";import{$ as r,J as i,
var(--n-padding-left) var(--n-padding-left)
var(--n-padding-bottom) var(--n-padding-bottom)
var(--n-padding-left); var(--n-padding-left);
`,[s(`main`,` `,[a(`main`,`
font-weight: var(--n-title-font-weight); font-weight: var(--n-title-font-weight);
transition: color .3s var(--n-bezier); transition: color .3s var(--n-bezier);
flex: 1; flex: 1;
min-width: 0; min-width: 0;
color: var(--n-title-text-color); color: var(--n-title-text-color);
`),s(`extra`,` `),a(`extra`,`
display: flex; display: flex;
align-items: center; align-items: center;
font-size: var(--n-font-size); font-size: var(--n-font-size);
font-weight: 400; font-weight: 400;
transition: color .3s var(--n-bezier); transition: color .3s var(--n-bezier);
color: var(--n-text-color); color: var(--n-text-color);
`),s(`close`,` `),a(`close`,`
margin: 0 0 0 8px; margin: 0 0 0 8px;
transition: transition:
background-color .3s var(--n-bezier), background-color .3s var(--n-bezier),
color .3s var(--n-bezier); color .3s var(--n-bezier);
`)]),s(`action`,` `)]),a(`action`,`
box-sizing: border-box; box-sizing: border-box;
transition: transition:
background-color .3s var(--n-bezier), background-color .3s var(--n-bezier),
border-color .3s var(--n-bezier); border-color .3s var(--n-bezier);
background-clip: padding-box; background-clip: padding-box;
background-color: var(--n-action-color); background-color: var(--n-action-color);
`),C,i(`card-content`,[p(`&:first-child`,` `),C,o(`card-content`,[i(`&:first-child`,`
padding-top: var(--n-padding-bottom); padding-top: var(--n-padding-bottom);
`)]),s(`content-scrollbar`,` `)]),a(`content-scrollbar`,`
display: flex; display: flex;
flex-direction: column; flex-direction: column;
`,[p(`>`,[i(`scrollbar-container`,[p(`>`,[C])])]),p(`&:first-child >`,[i(`scrollbar-container`,[p(`>`,[i(`card-content`,` `,[i(`>`,[o(`scrollbar-container`,[i(`>`,[C])])]),i(`&:first-child >`,[o(`scrollbar-container`,[i(`>`,[o(`card-content`,`
padding-top: var(--n-padding-bottom); padding-top: var(--n-padding-bottom);
`)])])])]),s(`footer`,` `)])])])]),a(`footer`,`
box-sizing: border-box; box-sizing: border-box;
padding: 0 var(--n-padding-left) var(--n-padding-bottom) var(--n-padding-left); padding: 0 var(--n-padding-left) var(--n-padding-bottom) var(--n-padding-left);
font-size: var(--n-font-size); font-size: var(--n-font-size);
`,[p(`&:first-child`,` `,[i(`&:first-child`,`
padding-top: var(--n-padding-bottom); padding-top: var(--n-padding-bottom);
`)]),s(`action`,` `)]),a(`action`,`
background-color: var(--n-action-color); background-color: var(--n-action-color);
padding: var(--n-padding-bottom) var(--n-padding-left); padding: var(--n-padding-bottom) var(--n-padding-left);
border-bottom-left-radius: var(--n-border-radius); border-bottom-left-radius: var(--n-border-radius);
border-bottom-right-radius: var(--n-border-radius); border-bottom-right-radius: var(--n-border-radius);
`)]),i(`card-cover`,` `)]),o(`card-cover`,`
overflow: hidden; overflow: hidden;
width: 100%; width: 100%;
border-radius: var(--n-border-radius) var(--n-border-radius) 0 0; border-radius: var(--n-border-radius) var(--n-border-radius) 0 0;
`,[p(`img`,` `,[i(`img`,`
display: block; display: block;
width: 100%; width: 100%;
`)]),c(`bordered`,` `)]),d(`bordered`,`
border: 1px solid var(--n-border-color); border: 1px solid var(--n-border-color);
`,[p(`&:target`,`border-color: var(--n-color-target);`)]),c(`action-segmented`,[p(`>`,[s(`action`,[p(`&:not(:first-child)`,` `,[i(`&:target`,`border-color: var(--n-color-target);`)]),d(`action-segmented`,[i(`>`,[a(`action`,[i(`&:not(:first-child)`,`
border-top: 1px solid var(--n-border-color); border-top: 1px solid var(--n-border-color);
`)])])]),c(`content-segmented, content-soft-segmented`,[p(`>`,[i(`card-content`,` `)])])]),d(`content-segmented, content-soft-segmented`,[i(`>`,[o(`card-content`,`
transition: border-color 0.3s var(--n-bezier); transition: border-color 0.3s var(--n-bezier);
`,[p(`&:not(:first-child)`,` `,[i(`&:not(:first-child)`,`
border-top: 1px solid var(--n-border-color); border-top: 1px solid var(--n-border-color);
`)]),s(`content-scrollbar`,` `)]),a(`content-scrollbar`,`
transition: border-color 0.3s var(--n-bezier); transition: border-color 0.3s var(--n-bezier);
`,[p(`&:not(:first-child)`,` `,[i(`&:not(:first-child)`,`
border-top: 1px solid var(--n-border-color); border-top: 1px solid var(--n-border-color);
`)])])]),c(`footer-segmented, footer-soft-segmented`,[p(`>`,[s(`footer`,` `)])])]),d(`footer-segmented, footer-soft-segmented`,[i(`>`,[a(`footer`,`
transition: border-color 0.3s var(--n-bezier); transition: border-color 0.3s var(--n-bezier);
`,[p(`&:not(:first-child)`,` `,[i(`&:not(:first-child)`,`
border-top: 1px solid var(--n-border-color); border-top: 1px solid var(--n-border-color);
`)])])]),c(`embedded`,` `)])])]),d(`embedded`,`
background-color: var(--n-color-embedded); background-color: var(--n-color-embedded);
`)]),l(i(`card`,` `)]),l(o(`card`,`
background: var(--n-color-modal); background: var(--n-color-modal);
`,[c(`embedded`,` `,[d(`embedded`,`
background-color: var(--n-color-embedded-modal); background-color: var(--n-color-embedded-modal);
`)])),m(i(`card`,` `)])),r(o(`card`,`
background: var(--n-color-popover); background: var(--n-color-popover);
`,[c(`embedded`,` `,[d(`embedded`,`
background-color: var(--n-color-embedded-popover); background-color: var(--n-color-embedded-popover);
`)]))]),T={title:[String,Function],contentClass:String,contentStyle:[Object,String],contentScrollable:Boolean,headerClass:String,headerStyle:[Object,String],headerExtraClass:String,headerExtraStyle:[Object,String],footerClass:String,footerStyle:[Object,String],embedded:Boolean,segmented:{type:[Boolean,Object],default:!1},size:String,bordered:{type:Boolean,default:!0},closable:Boolean,hoverable:Boolean,role:String,onClose:[Function,Array],tag:{type:String,default:`div`},cover:Function,content:[String,Function],footer:Function,action:Function,headerExtra:Function,closeFocusable:Boolean},E=S(T),D=e({name:`Card`,props:Object.assign(Object.assign({},f.props),T),slots:Object,setup(e){let t=()=>{let{onClose:t}=e;t&&b(t)},{inlineThemeDisabled:i,mergedClsPrefixRef:a,mergedRtlRef:s,mergedComponentPropsRef:c}=h(e),l=f(`Card`,`-card`,w,x,e,a),d=u(`Card`,s,a),p=n(()=>e.size||c?.value?.Card?.size||`medium`),m=n(()=>{let e=p.value,{self:{color:t,colorModal:n,colorTarget:i,textColor:a,titleTextColor:o,titleFontWeight:s,borderColor:c,actionColor:u,borderRadius:d,lineHeight:f,closeIconColor:m,closeIconColorHover:h,closeIconColorPressed:g,closeColorHover:_,closeColorPressed:y,closeBorderRadius:b,closeIconSize:x,closeSize:S,boxShadow:C,colorPopover:w,colorEmbedded:T,colorEmbeddedModal:E,colorEmbeddedPopover:D,[r(`padding`,e)]:O,[r(`fontSize`,e)]:k,[r(`titleFontSize`,e)]:A},common:{cubicBezierEaseInOut:j}}=l.value,{top:M,left:N,bottom:P}=v(O);return{"--n-bezier":j,"--n-border-radius":d,"--n-color":t,"--n-color-modal":n,"--n-color-popover":w,"--n-color-embedded":T,"--n-color-embedded-modal":E,"--n-color-embedded-popover":D,"--n-color-target":i,"--n-text-color":a,"--n-line-height":f,"--n-action-color":u,"--n-title-text-color":o,"--n-title-font-weight":s,"--n-close-icon-color":m,"--n-close-icon-color-hover":h,"--n-close-icon-color-pressed":g,"--n-close-color-hover":_,"--n-close-color-pressed":y,"--n-border-color":c,"--n-box-shadow":C,"--n-padding-top":M,"--n-padding-bottom":P,"--n-padding-left":N,"--n-font-size":k,"--n-title-font-size":A,"--n-close-size":S,"--n-close-icon-size":x,"--n-close-border-radius":b}}),g=i?o(`card`,n(()=>p.value[0]),m,e):void 0;return{rtlEnabled:d,mergedClsPrefix:a,mergedTheme:l,handleCloseClick:t,cssVars:i?void 0:m,themeClass:g?.themeClass,onRender:g?.onRender}},render(){let{segmented:e,bordered:n,hoverable:r,mergedClsPrefix:i,rtlEnabled:a,onRender:o,embedded:s,tag:c,$slots:l}=this;return o?.(),t(c,{class:[`${i}-card`,this.themeClass,s&&`${i}-card--embedded`,{[`${i}-card--rtl`]:a,[`${i}-card--content-scrollable`]:this.contentScrollable,[`${i}-card--content${typeof e!=`boolean`&&e.content===`soft`?`-soft`:``}-segmented`]:e===!0||e!==!1&&e.content,[`${i}-card--footer${typeof e!=`boolean`&&e.footer===`soft`?`-soft`:``}-segmented`]:e===!0||e!==!1&&e.footer,[`${i}-card--action-segmented`]:e===!0||e!==!1&&e.action,[`${i}-card--bordered`]:n,[`${i}-card--hoverable`]:r}],style:this.cssVars,role:this.role},_(l.cover,e=>{let n=this.cover?y([this.cover()]):e;return n&&t(`div`,{class:`${i}-card-cover`,role:`none`},n)}),_(l.header,e=>{let{title:n}=this,r=n?y(typeof n==`function`?[n()]:[n]):e;return r||this.closable?t(`div`,{class:[`${i}-card-header`,this.headerClass],style:this.headerStyle,role:`heading`},t(`div`,{class:`${i}-card-header__main`,role:`heading`},r),_(l[`header-extra`],e=>{let n=this.headerExtra?y([this.headerExtra()]):e;return n&&t(`div`,{class:[`${i}-card-header__extra`,this.headerExtraClass],style:this.headerExtraStyle},n)}),this.closable&&t(d,{clsPrefix:i,class:`${i}-card-header__close`,onClick:this.handleCloseClick,focusable:this.closeFocusable,absolute:!0})):null}),_(l.default,e=>{let{content:n}=this,r=n?y(typeof n==`function`?[n()]:[n]):e;return r?this.contentScrollable?t(g,{class:`${i}-card__content-scrollbar`,contentClass:[`${i}-card-content`,this.contentClass],contentStyle:this.contentStyle},r):t(`div`,{class:[`${i}-card-content`,this.contentClass],style:this.contentStyle,role:`none`},r):null}),_(l.footer,e=>{let n=this.footer?y([this.footer()]):e;return n&&t(`div`,{class:[`${i}-card__footer`,this.footerClass],style:this.footerStyle,role:`none`},n)}),_(l.action,e=>{let n=this.action?y([this.action()]):e;return n&&t(`div`,{class:`${i}-card__action`,role:`none`},n)}))}});export{S as i,E as n,T as r,D as t}; `)]))]),T={title:[String,Function],contentClass:String,contentStyle:[Object,String],contentScrollable:Boolean,headerClass:String,headerStyle:[Object,String],headerExtraClass:String,headerExtraStyle:[Object,String],footerClass:String,footerStyle:[Object,String],embedded:Boolean,segmented:{type:[Boolean,Object],default:!1},size:String,bordered:{type:Boolean,default:!0},closable:Boolean,hoverable:Boolean,role:String,onClose:[Function,Array],tag:{type:String,default:`div`},cover:Function,content:[String,Function],footer:Function,action:Function,headerExtra:Function,closeFocusable:Boolean},E=S(T),D=e({name:`Card`,props:Object.assign(Object.assign({},m.props),T),slots:Object,setup(e){let t=()=>{let{onClose:t}=e;t&&_(t)},{inlineThemeDisabled:r,mergedClsPrefixRef:i,mergedRtlRef:a,mergedComponentPropsRef:o}=c(e),l=m(`Card`,`-card`,w,b,e,i),u=p(`Card`,a,i),d=n(()=>e.size||o?.value?.Card?.size||`medium`),h=n(()=>{let e=d.value,{self:{color:t,colorModal:n,colorTarget:r,textColor:i,titleTextColor:a,titleFontWeight:o,borderColor:s,actionColor:c,borderRadius:u,lineHeight:p,closeIconColor:m,closeIconColorHover:h,closeIconColorPressed:_,closeColorHover:v,closeColorPressed:y,closeBorderRadius:b,closeIconSize:x,closeSize:S,boxShadow:C,colorPopover:w,colorEmbedded:T,colorEmbeddedModal:E,colorEmbeddedPopover:D,[f(`padding`,e)]:O,[f(`fontSize`,e)]:k,[f(`titleFontSize`,e)]:A},common:{cubicBezierEaseInOut:j}}=l.value,{top:M,left:N,bottom:P}=g(O);return{"--n-bezier":j,"--n-border-radius":u,"--n-color":t,"--n-color-modal":n,"--n-color-popover":w,"--n-color-embedded":T,"--n-color-embedded-modal":E,"--n-color-embedded-popover":D,"--n-color-target":r,"--n-text-color":i,"--n-line-height":p,"--n-action-color":c,"--n-title-text-color":a,"--n-title-font-weight":o,"--n-close-icon-color":m,"--n-close-icon-color-hover":h,"--n-close-icon-color-pressed":_,"--n-close-color-hover":v,"--n-close-color-pressed":y,"--n-border-color":s,"--n-box-shadow":C,"--n-padding-top":M,"--n-padding-bottom":P,"--n-padding-left":N,"--n-font-size":k,"--n-title-font-size":A,"--n-close-size":S,"--n-close-icon-size":x,"--n-close-border-radius":b}}),v=r?s(`card`,n(()=>d.value[0]),h,e):void 0;return{rtlEnabled:u,mergedClsPrefix:i,mergedTheme:l,handleCloseClick:t,cssVars:r?void 0:h,themeClass:v?.themeClass,onRender:v?.onRender}},render(){let{segmented:e,bordered:n,hoverable:r,mergedClsPrefix:i,rtlEnabled:a,onRender:o,embedded:s,tag:c,$slots:l}=this;return o?.(),t(c,{class:[`${i}-card`,this.themeClass,s&&`${i}-card--embedded`,{[`${i}-card--rtl`]:a,[`${i}-card--content-scrollable`]:this.contentScrollable,[`${i}-card--content${typeof e!=`boolean`&&e.content===`soft`?`-soft`:``}-segmented`]:e===!0||e!==!1&&e.content,[`${i}-card--footer${typeof e!=`boolean`&&e.footer===`soft`?`-soft`:``}-segmented`]:e===!0||e!==!1&&e.footer,[`${i}-card--action-segmented`]:e===!0||e!==!1&&e.action,[`${i}-card--bordered`]:n,[`${i}-card--hoverable`]:r}],style:this.cssVars,role:this.role},v(l.cover,e=>{let n=this.cover?y([this.cover()]):e;return n&&t(`div`,{class:`${i}-card-cover`,role:`none`},n)}),v(l.header,e=>{let{title:n}=this,r=n?y(typeof n==`function`?[n()]:[n]):e;return r||this.closable?t(`div`,{class:[`${i}-card-header`,this.headerClass],style:this.headerStyle,role:`heading`},t(`div`,{class:`${i}-card-header__main`,role:`heading`},r),v(l[`header-extra`],e=>{let n=this.headerExtra?y([this.headerExtra()]):e;return n&&t(`div`,{class:[`${i}-card-header__extra`,this.headerExtraClass],style:this.headerExtraStyle},n)}),this.closable&&t(x,{clsPrefix:i,class:`${i}-card-header__close`,onClick:this.handleCloseClick,focusable:this.closeFocusable,absolute:!0})):null}),v(l.default,e=>{let{content:n}=this,r=n?y(typeof n==`function`?[n()]:[n]):e;return r?this.contentScrollable?t(h,{class:`${i}-card__content-scrollbar`,contentClass:[`${i}-card-content`,this.contentClass],contentStyle:this.contentStyle},r):t(`div`,{class:[`${i}-card-content`,this.contentClass],style:this.contentStyle,role:`none`},r):null}),v(l.footer,e=>{let n=this.footer?y([this.footer()]):e;return n&&t(`div`,{class:[`${i}-card__footer`,this.footerClass],style:this.footerStyle,role:`none`},n)}),v(l.action,e=>{let n=this.action?y([this.action()]):e;return n&&t(`div`,{class:`${i}-card__action`,role:`none`},n)}))}});export{S as i,E as n,T as r,D as t};
@@ -1 +1 @@
import{E as e,Et as t,S as n,T as r,Tt as i,U as a,V as o,Z as s,b as c,ct as l,o as u,p as d,rt as f,w as p,y as m}from"./vue-router-CyfP71JJ.js";import{t as h}from"./Tag-qdAwC3l-.js";import{i as g,n as _,t as v}from"./HeaderMenu-CngRCkyf.js";var y={class:`center-block-custom`},b={class:`width1200 display-table`},x=[`onClick`],S={class:`scenario-content-block`},C={class:`scenario-title`},w={class:`scenario-description`},T={class:`scenario-label`},E=_(e({__name:`CatalogPage`,setup(e){let c=g(),_=f([]),E=u();async function D(){_.value=[];let e=await c.GetScenariosCatalog({});_.value=e.scenarios}async function O(e){E.push(`/scenarios/`+e)}return D(),(e,c)=>(o(),n(d,null,[m(`div`,y,[m(`div`,b,[(o(!0),n(d,null,a(_.value,e=>(o(),n(`div`,{class:`scenario-block`,onClick:t=>O(e.id),key:e.id},[m(`div`,{class:`scenario-image-block scenario-image`,style:i({backgroundImage:`url(${e.image})`})},null,4),m(`div`,S,[m(`p`,C,t(e.name),1),m(`p`,w,t(e.description),1),m(`p`,T,[r(l(h),{bordered:!1,type:`success`,class:`status-block`},{default:s(()=>[p(`Автор: `+t(e.author?.username),1)]),_:2},1024)])])],8,x))),128))])]),r(v,{active:`catalog`})],64))}}),[[`__scopeId`,`data-v-eeb868d7`]]),D=e({__name:`CatalogView`,setup(e){return(e,t)=>(o(),c(E))}});export{D as default}; import{E as e,Et as t,S as n,T as r,Tt as i,U as a,V as o,Z as s,b as c,ct as l,o as u,p as d,rt as f,w as p,y as m}from"./vue-router-CyfP71JJ.js";import{t as h}from"./Tag-4OJejtYN.js";import{i as g,n as _,t as v}from"./HeaderMenu-BCz0PYuC.js";var y={class:`center-block-custom`},b={class:`width1200 display-table`},x=[`onClick`],S={class:`scenario-content-block`},C={class:`scenario-title`},w={class:`scenario-description`},T={class:`scenario-label`},E=_(e({__name:`CatalogPage`,setup(e){let c=g(),_=f([]),E=u();async function D(){_.value=[];let e=await c.GetScenariosCatalog({});_.value=e.scenarios}async function O(e){E.push(`/scenarios/`+e)}return D(),(e,c)=>(o(),n(d,null,[m(`div`,y,[m(`div`,b,[(o(!0),n(d,null,a(_.value,e=>(o(),n(`div`,{class:`scenario-block`,onClick:t=>O(e.id),key:e.id},[m(`div`,{class:`scenario-image-block scenario-image`,style:i({backgroundImage:`url(${e.image})`})},null,4),m(`div`,S,[m(`p`,C,t(e.name),1),m(`p`,w,t(e.description),1),m(`p`,T,[r(l(h),{bordered:!1,type:`success`,class:`status-block`},{default:s(()=>[p(`Автор: `+t(e.author?.username),1)]),_:2},1024)])])],8,x))),128))])]),r(v,{active:`catalog`})],64))}}),[[`__scopeId`,`data-v-eeb868d7`]]),D=e({__name:`CatalogView`,setup(e){return(e,t)=>(o(),c(E))}});export{D as default};
@@ -1 +1 @@
import{E as e,S as t,T as n,V as r,p as i}from"./vue-router-CyfP71JJ.js";import{t as a}from"./DocsPage-5NlWnOVg.js";import{t as o}from"./HeaderMenu-CngRCkyf.js";var s=e({__name:`ConsentView`,setup(e){return(e,s)=>(r(),t(i,null,[n(a,{kind:`consent`}),n(o)],64))}});export{s as default}; import{E as e,S as t,T as n,V as r,p as i}from"./vue-router-CyfP71JJ.js";import{t as a}from"./DocsPage-CsaFSfJn.js";import{t as o}from"./HeaderMenu-BCz0PYuC.js";var s=e({__name:`ConsentView`,setup(e){return(e,s)=>(r(),t(i,null,[n(a,{kind:`consent`}),n(o)],64))}});export{s as default};
@@ -1,4 +1,4 @@
import{E as e,Et as t,R as n,S as r,T as i,V as a,X as o,Z as s,b as c,ct as l,k as u,rt as d,t as f,v as p,w as m,y as h}from"./vue-router-CyfP71JJ.js";import{$ as g,J as _,R as v,Z as y,o as b,q as x,z as S}from"./light-3nK60gWS.js";import{l as C}from"./resolve-slot-tPBGpQg9.js";import{t as w}from"./use-compitable-Dm6CEJAS.js";import{t as T}from"./fade-in.cssr-DzipPSF9.js";import{t as E}from"./Alert-CSUkY8gM.js";import{H as D,O,k,o as A}from"./index-zAAv4RkK.js";import{i as j,n as M}from"./HeaderMenu-CngRCkyf.js";import{t as N}from"./HeaderText-B911iP6o.js";var P=x([x(`@keyframes spin-rotate`,` import{E as e,Et as t,R as n,S as r,T as i,V as a,X as o,Z as s,b as c,ct as l,k as u,rt as d,t as f,v as p,w as m,y as h}from"./vue-router-CyfP71JJ.js";import{G as g,K as _,M as v,N as y,Y as b,Z as x,r as S}from"./light-CPiNeYrP.js";import{i as C}from"./css-DEmdllcC.js";import{t as w}from"./use-compitable-Dm6CEJAS.js";import{t as T}from"./fade-in.cssr-C30AOOaV.js";import{t as E}from"./Alert-iUSrSzXP.js";import{J as D,O,k,o as A}from"./index-CqdSAiqM.js";import{i as j,n as M}from"./HeaderMenu-BCz0PYuC.js";import{t as N}from"./HeaderText-C3OQJ_jT.js";var P=g([g(`@keyframes spin-rotate`,`
from { from {
transform: rotate(0); transform: rotate(0);
} }
@@ -23,7 +23,7 @@ import{E as e,Et as t,R as n,S as r,T as i,V as a,X as o,Z as s,b as c,ct as l,k
width: var(--n-size); width: var(--n-size);
font-size: var(--n-size); font-size: var(--n-size);
color: var(--n-color); color: var(--n-color);
`,[y(`rotate`,` `,[b(`rotate`,`
animation: spin-rotate 2s linear infinite; animation: spin-rotate 2s linear infinite;
`)]),_(`spin-description`,` `)]),_(`spin-description`,`
display: inline-block; display: inline-block;
@@ -35,9 +35,9 @@ import{E as e,Et as t,R as n,S as r,T as i,V as a,X as o,Z as s,b as c,ct as l,k
opacity: 1; opacity: 1;
transition: opacity .3s var(--n-bezier); transition: opacity .3s var(--n-bezier);
pointer-events: all; pointer-events: all;
`,[y(`spinning`,` `,[b(`spinning`,`
user-select: none; user-select: none;
-webkit-user-select: none; -webkit-user-select: none;
pointer-events: none; pointer-events: none;
opacity: var(--n-opacity-spinning); opacity: var(--n-opacity-spinning);
`)])]),F={small:20,medium:18,large:16},I=e({name:`Spin`,props:Object.assign(Object.assign(Object.assign({},b.props),{contentClass:String,contentStyle:[Object,String],description:String,size:{type:[String,Number],default:`medium`},show:{type:Boolean,default:!0},rotate:{type:Boolean,default:!0},spinning:{type:Boolean,validator:()=>!0,default:void 0},delay:Number}),k),slots:Object,setup(e){let{mergedClsPrefixRef:t,inlineThemeDisabled:n}=S(e),r=b(`Spin`,`-spin`,P,A,e,t),i=p(()=>{let{size:t}=e,{common:{cubicBezierEaseInOut:n},self:i}=r.value,{opacitySpinning:a,color:o,textColor:s}=i;return{"--n-bezier":n,"--n-opacity-spinning":a,"--n-size":typeof t==`number`?C(t):i[g(`size`,t)],"--n-color":o,"--n-text-color":s}}),a=n?v(`spin`,p(()=>{let{size:t}=e;return typeof t==`number`?String(t):t[0]}),i,e):void 0,s=w(e,[`spinning`,`show`]),c=d(!1);return o(t=>{let n;if(s.value){let{delay:r}=e;if(r){n=window.setTimeout(()=>{c.value=!0},r),t(()=>{clearTimeout(n)});return}}c.value=s.value}),{mergedClsPrefix:t,active:c,mergedStrokeWidth:p(()=>{let{strokeWidth:t}=e;if(t!==void 0)return t;let{size:n}=e;return F[typeof n==`number`?`medium`:n]}),cssVars:n?void 0:i,themeClass:a?.themeClass,onRender:a?.onRender}},render(){var e;let{$slots:t,mergedClsPrefix:n,description:r}=this,i=t.icon&&this.rotate,a=(r||t.description)&&u(`div`,{class:`${n}-spin-description`},r||t.description?.call(t)),o=t.icon?u(`div`,{class:[`${n}-spin-body`,this.themeClass]},u(`div`,{class:[`${n}-spin`,i&&`${n}-spin--rotate`],style:t.default?``:this.cssVars},t.icon()),a):u(`div`,{class:[`${n}-spin-body`,this.themeClass]},u(O,{clsPrefix:n,style:t.default?``:this.cssVars,stroke:this.stroke,"stroke-width":this.mergedStrokeWidth,radius:this.radius,scale:this.scale,class:`${n}-spin`}),a);return(e=this.onRender)==null||e.call(this),t.default?u(`div`,{class:[`${n}-spin-container`,this.themeClass],style:this.cssVars},u(`div`,{class:[`${n}-spin-content`,this.active&&`${n}-spin-content--spinning`,this.contentClass],style:this.contentStyle},t),u(D,{name:`fade-in-transition`},{default:()=>this.active?o:null})):o}}),L={class:`center-block-custom`},R={class:`width700 doc-page`},z={class:`doc-title`},B={key:0,class:`doc-loading`},V={key:2,class:`paper-block`},H={class:`paper`},U={class:`doc-text`},W={class:`docs-links`},G=M(e({__name:`DocsPage`,props:{kind:{}},setup(e){let o=e,u={terms:`Пользовательское соглашение`,privacy:`Политика конфиденциальности`,consent:`Согласие на обработку персональных данных`},p=d(``),g=d(!0),_=d(``);return n(async()=>{let e=j(),t={terms:()=>e.GetTerms({}),privacy:()=>e.GetPrivacy({}),consent:()=>e.GetConsent({})};try{let e=await t[o.kind]();e.error?_.value=e.error:p.value=e.text||``}catch(e){_.value=e instanceof Error?e.message:`Не удалось загрузить документ`}finally{g.value=!1}}),(e,n)=>(a(),r(`div`,L,[h(`div`,R,[h(`h1`,z,[i(N,null,{default:s(()=>[m(t(u[o.kind]),1)]),_:1})]),g.value?(a(),r(`div`,B,[i(l(I),{size:`large`})])):_.value?(a(),c(l(E),{key:1,type:`error`,"show-icon":!1,class:`doc-error`},{default:s(()=>[m(t(_.value),1)]),_:1})):(a(),r(`div`,V,[h(`div`,H,[h(`p`,U,t(p.value),1)]),n[0]||=h(`div`,{class:`paper-shadow paper-shadow-left`},null,-1),n[1]||=h(`div`,{class:`paper-shadow paper-shadow-right`},null,-1)])),h(`div`,W,[n[5]||=m(` Смотрите также: `,-1),i(l(f),{to:`/user-agreement`,class:`docs-link`},{default:s(()=>[...n[2]||=[m(`Пользовательское соглашение`,-1)]]),_:1}),n[6]||=m(` · `,-1),i(l(f),{to:`/privacy-policy`,class:`docs-link`},{default:s(()=>[...n[3]||=[m(`Политика конфиденциальности`,-1)]]),_:1}),n[7]||=m(` · `,-1),i(l(f),{to:`/consent`,class:`docs-link`},{default:s(()=>[...n[4]||=[m(`Согласие на обработку персональных данных`,-1)]]),_:1})])])]))}}),[[`__scopeId`,`data-v-f5dde12c`]]);export{G as t}; `)])]),F={small:20,medium:18,large:16},I=e({name:`Spin`,props:Object.assign(Object.assign(Object.assign({},S.props),{contentClass:String,contentStyle:[Object,String],description:String,size:{type:[String,Number],default:`medium`},show:{type:Boolean,default:!0},rotate:{type:Boolean,default:!0},spinning:{type:Boolean,validator:()=>!0,default:void 0},delay:Number}),k),slots:Object,setup(e){let{mergedClsPrefixRef:t,inlineThemeDisabled:n}=y(e),r=S(`Spin`,`-spin`,P,A,e,t),i=p(()=>{let{size:t}=e,{common:{cubicBezierEaseInOut:n},self:i}=r.value,{opacitySpinning:a,color:o,textColor:s}=i;return{"--n-bezier":n,"--n-opacity-spinning":a,"--n-size":typeof t==`number`?C(t):i[x(`size`,t)],"--n-color":o,"--n-text-color":s}}),a=n?v(`spin`,p(()=>{let{size:t}=e;return typeof t==`number`?String(t):t[0]}),i,e):void 0,s=w(e,[`spinning`,`show`]),c=d(!1);return o(t=>{let n;if(s.value){let{delay:r}=e;if(r){n=window.setTimeout(()=>{c.value=!0},r),t(()=>{clearTimeout(n)});return}}c.value=s.value}),{mergedClsPrefix:t,active:c,mergedStrokeWidth:p(()=>{let{strokeWidth:t}=e;if(t!==void 0)return t;let{size:n}=e;return F[typeof n==`number`?`medium`:n]}),cssVars:n?void 0:i,themeClass:a?.themeClass,onRender:a?.onRender}},render(){var e;let{$slots:t,mergedClsPrefix:n,description:r}=this,i=t.icon&&this.rotate,a=(r||t.description)&&u(`div`,{class:`${n}-spin-description`},r||t.description?.call(t)),o=t.icon?u(`div`,{class:[`${n}-spin-body`,this.themeClass]},u(`div`,{class:[`${n}-spin`,i&&`${n}-spin--rotate`],style:t.default?``:this.cssVars},t.icon()),a):u(`div`,{class:[`${n}-spin-body`,this.themeClass]},u(O,{clsPrefix:n,style:t.default?``:this.cssVars,stroke:this.stroke,"stroke-width":this.mergedStrokeWidth,radius:this.radius,scale:this.scale,class:`${n}-spin`}),a);return(e=this.onRender)==null||e.call(this),t.default?u(`div`,{class:[`${n}-spin-container`,this.themeClass],style:this.cssVars},u(`div`,{class:[`${n}-spin-content`,this.active&&`${n}-spin-content--spinning`,this.contentClass],style:this.contentStyle},t),u(D,{name:`fade-in-transition`},{default:()=>this.active?o:null})):o}}),L={class:`center-block-custom`},R={class:`width700 doc-page`},z={class:`doc-title`},B={key:0,class:`doc-loading`},V={key:2,class:`paper-block`},H={class:`paper`},U={class:`doc-text`},W={class:`docs-links`},G=M(e({__name:`DocsPage`,props:{kind:{}},setup(e){let o=e,u={terms:`Пользовательское соглашение`,privacy:`Политика конфиденциальности`,consent:`Согласие на обработку персональных данных`},p=d(``),g=d(!0),_=d(``);return n(async()=>{let e=j(),t={terms:()=>e.GetTerms({}),privacy:()=>e.GetPrivacy({}),consent:()=>e.GetConsent({})};try{let e=await t[o.kind]();e.error?_.value=e.error:p.value=e.text||``}catch(e){_.value=e instanceof Error?e.message:`Не удалось загрузить документ`}finally{g.value=!1}}),(e,n)=>(a(),r(`div`,L,[h(`div`,R,[h(`h1`,z,[i(N,null,{default:s(()=>[m(t(u[o.kind]),1)]),_:1})]),g.value?(a(),r(`div`,B,[i(l(I),{size:`large`})])):_.value?(a(),c(l(E),{key:1,type:`error`,"show-icon":!1,class:`doc-error`},{default:s(()=>[m(t(_.value),1)]),_:1})):(a(),r(`div`,V,[h(`div`,H,[h(`p`,U,t(p.value),1)]),n[0]||=h(`div`,{class:`paper-shadow paper-shadow-left`},null,-1),n[1]||=h(`div`,{class:`paper-shadow paper-shadow-right`},null,-1)])),h(`div`,W,[n[5]||=m(` Смотрите также: `,-1),i(l(f),{to:`/user-agreement`,class:`docs-link`},{default:s(()=>[...n[2]||=[m(`Пользовательское соглашение`,-1)]]),_:1}),n[6]||=m(` · `,-1),i(l(f),{to:`/privacy-policy`,class:`docs-link`},{default:s(()=>[...n[3]||=[m(`Политика конфиденциальности`,-1)]]),_:1}),n[7]||=m(` · `,-1),i(l(f),{to:`/consent`,class:`docs-link`},{default:s(()=>[...n[4]||=[m(`Согласие на обработку персональных данных`,-1)]]),_:1})])])]))}}),[[`__scopeId`,`data-v-f5dde12c`]]);export{G as t};
+1
View File
@@ -0,0 +1 @@
import{E as e,k as t,v as n}from"./vue-router-CyfP71JJ.js";import{N as r,Z as i,o as a,r as o}from"./light-CPiNeYrP.js";import{n as s,t as c}from"./css-DEmdllcC.js";import{t as l}from"./flatten-CUjrZ-N-.js";import{t as u}from"./get-slot-6kXJmSMP.js";import{c as d}from"./index-CqdSAiqM.js";function f(){return d}var p={name:`Flex`,self:f},m=e({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:t,mergedRtlRef:l}=r(e),u=o(`Flex`,`-flex`,void 0,p,e,t);return{rtlEnabled:a(`Flex`,l,t),mergedClsPrefix:t,margin:n(()=>{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:e,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?t(`div`,{role:`none`,class:[`${c}-flex`,d&&`${c}-flex--rtl`],style:{display:i?`inline-flex`:`flex`,flexDirection:e&&!n?`column`:e&&n?`column-reverse`:!e&&n?`row-reverse`:`row`,justifyContent:a,flexWrap:!s||e?`nowrap`:`wrap`,alignItems:r,gap:`${o.vertical}px ${o.horizontal}px`}},f):null}});export{m as t};
-1
View File
@@ -1 +0,0 @@
import{E as e,k as t,v as n}from"./vue-router-CyfP71JJ.js";import{$ as r,l as i,o as a,z as o}from"./light-3nK60gWS.js";import{o as s,s as c}from"./resolve-slot-tPBGpQg9.js";import{s as l}from"./Button-B7j6g3jb.js";import{t as u}from"./get-slot-6kXJmSMP.js";import{c as d}from"./index-zAAv4RkK.js";function f(){return d}var p={name:`Flex`,self:f},m=e({name:`Flex`,props:Object.assign(Object.assign({},a.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:t,mergedRtlRef:l}=o(e),u=a(`Flex`,`-flex`,void 0,p,e,t);return{rtlEnabled:i(`Flex`,l,t),mergedClsPrefix:t,margin:n(()=>{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:{[r(`gap`,t)]:n}}=u.value,{row:i,col:a}=c(n);return{horizontal:s(a),vertical:s(i)}})}},render(){let{vertical:e,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?t(`div`,{role:`none`,class:[`${c}-flex`,d&&`${c}-flex--rtl`],style:{display:i?`inline-flex`:`flex`,flexDirection:e&&!n?`column`:e&&n?`column-reverse`:!e&&n?`row-reverse`:`row`,justifyContent:a,flexWrap:!s||e?`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
+1
View File
@@ -0,0 +1 @@
.game-name[data-v-e6db10a5]{color:#aaa;margin-top:4px}.info-block[data-v-e6db10a5]{background-color:#222;border-radius:10px;margin-top:10px;padding:20px}.info-subtitle[data-v-e6db10a5]{color:#aaa;margin:0 0 10px}.info-title[data-v-e6db10a5]{margin:0 0 10px;font-size:17px;font-weight:600}.number-col[data-v-e6db10a5]{text-align:center}.page-header[data-v-e6db10a5]{background-color:#222;border-radius:10px;padding:20px}.page-title[data-v-e6db10a5]{font-size:22px;font-weight:600}.place-1[data-v-e6db10a5]{color:gold}.place-2[data-v-e6db10a5]{color:var(--medal-silver)}.place-3[data-v-e6db10a5]{color:var(--medal-bronze)}.place-badge[data-v-e6db10a5]{border:1px solid;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-weight:600;display:inline-flex}.place-col[data-v-e6db10a5]{text-align:center;width:70px}.place-plain[data-v-e6db10a5]{color:#aaa}.question-col[data-v-e6db10a5]{min-width:120px}.question-text[data-v-e6db10a5]{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.results-table[data-v-e6db10a5]{border-collapse:collapse;width:100%;min-width:100%}.results-table td[data-v-e6db10a5],.results-table th[data-v-e6db10a5]{border-bottom:1px solid #ffffff1a;padding:10px 14px}.results-table tbody tr:last-child td[data-v-e6db10a5]{border-bottom:0}.results-table th[data-v-e6db10a5]{color:#aaa;font-weight:600}.results-table tbody tr[data-v-e6db10a5]:nth-child(2n){background-color:#ffffff0d}.results-table td.place-col[data-v-e6db10a5],.results-table th.place-col[data-v-e6db10a5]{border-right:1px solid #ffffff1a}.table-scroll[data-v-e6db10a5]{scrollbar-width:none;background-color:#222;border-radius:10px;margin-top:10px;overflow-x:auto}.table-scroll[data-v-e6db10a5]::-webkit-scrollbar{display:none}.team-col[data-v-e6db10a5]{text-align:left;white-space:normal;min-width:150px}.winner-block[data-v-e6db10a5]{text-align:center;background-color:#222;border-radius:10px;margin-top:10px;padding:28px 20px 24px}.winner-congrats[data-v-e6db10a5]{color:#aaa;margin-top:10px}.winner-cup[data-v-e6db10a5]{color:gold;line-height:0;display:inline-block}.winner-label[data-v-e6db10a5]{color:#aaa;margin-top:14px;font-size:15px}.winner-names[data-v-e6db10a5]{color:gold;overflow-wrap:anywhere;margin-top:4px;font-size:28px;font-weight:600}.winner-stats[data-v-e6db10a5]{color:#aaa;margin-top:8px}
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.team-block[data-v-db2d6d80]{background-color:#222;border:1px solid #222;border-radius:10px;margin:10px 0}.team-block-hover[data-v-db2d6d80]:hover{color:#63e2b7;cursor:pointer;border:1px solid #63e2b7}.team-content-block[data-v-db2d6d80]{padding:20px}.team-name-block[data-v-db2d6d80]{font-size:20px;font-weight:600}.settings-icon[data-v-db2d6d80]{width:20px}.link-button[data-v-db2d6d80]{width:100%;margin-top:20px}.place-image-plus[data-v-db2d6d80]{justify-content:center;align-items:center;font-size:30px;display:flex}.name-text[data-v-db2d6d80]{background-color:#ffffff1a;border-radius:3px;padding:3px}.qr-block[data-v-db2d6d80]{background-color:#fff;padding:12px;display:inline-block}.give-application-image-block[data-v-db2d6d80]{background-image:url(/assets/paper_white-ZSlTzOTx.jpg);background-size:cover;max-width:320px;margin:10px 0 5px;padding:7px;box-shadow:0 3px 15px #626262}.give-application-image[data-v-db2d6d80]{width:100%}.give-application-audio[data-v-db2d6d80]{width:100%;margin:10px 0 5px}.give-application-pdf-link[data-v-db2d6d80]{margin:10px 0 5px;text-decoration:underline;display:inline-block}.answers-empty[data-v-db2d6d80]{color:#777}.answers-question-block[data-v-db2d6d80]{background-color:#222;border-radius:8px;margin:15px 0;padding:12px}.answers-question-title[data-v-db2d6d80]{margin:0 0 4px;font-size:17px;font-weight:600}.answers-question-answer[data-v-db2d6d80]{color:#aaa;margin:0 0 10px}.answers-team-row[data-v-db2d6d80]{background-color:#ffffff0d;border-radius:6px;flex-flow:wrap;align-items:center;gap:10px;margin:8px 0;padding:8px 10px;display:flex}.answers-team-name[data-v-db2d6d80]{width:180px;font-weight:600}.answers-team-answer[data-v-db2d6d80]{color:#aaa;white-space:pre-wrap;flex:200px}.answers-score-input[data-v-db2d6d80]{width:110px}
-1
View File
@@ -1 +0,0 @@
.team-block[data-v-8bba41c8]{background-color:#222;border:1px solid #222;border-radius:10px;margin:10px 0}.team-block-hover[data-v-8bba41c8]:hover{color:#63e2b7;cursor:pointer;border:1px solid #63e2b7}.team-content-block[data-v-8bba41c8]{padding:20px}.team-name-block[data-v-8bba41c8]{font-size:20px;font-weight:600}.settings-icon[data-v-8bba41c8]{width:20px}.link-button[data-v-8bba41c8]{width:100%;margin-top:20px}.place-image-plus[data-v-8bba41c8]{justify-content:center;align-items:center;font-size:30px;display:flex}.name-text[data-v-8bba41c8]{background-color:#ffffff1a;border-radius:3px;padding:3px}.qr-block[data-v-8bba41c8]{background-color:#fff;padding:12px;display:inline-block}.give-application-image-block[data-v-8bba41c8]{background-image:url(/assets/paper_white-ZSlTzOTx.jpg);background-size:cover;max-width:320px;margin:10px 0 5px;padding:7px;box-shadow:0 3px 15px #626262}.give-application-image[data-v-8bba41c8]{width:100%}.give-application-audio[data-v-8bba41c8]{width:100%;margin:10px 0 5px}.give-application-pdf-link[data-v-8bba41c8]{margin:10px 0 5px;text-decoration:underline;display:inline-block}.answers-empty[data-v-8bba41c8]{color:#777}.answers-question-block[data-v-8bba41c8]{background-color:#222;border-radius:8px;margin:15px 0;padding:12px}.answers-question-title[data-v-8bba41c8]{margin:0 0 4px;font-size:17px;font-weight:600}.answers-question-answer[data-v-8bba41c8]{color:#aaa;margin:0 0 10px}.answers-team-row[data-v-8bba41c8]{background-color:#ffffff0d;border-radius:6px;flex-flow:wrap;align-items:center;gap:10px;margin:8px 0;padding:8px 10px;display:flex}.answers-team-name[data-v-8bba41c8]{width:180px;font-weight:600}.answers-team-answer[data-v-8bba41c8]{color:#aaa;white-space:pre-wrap;flex:200px}.answers-score-input[data-v-8bba41c8]{width:110px}
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 @@
.game-block[data-v-8b9995f8]{background-color:#222;border-radius:10px;margin:10px 0;padding:20px}.game-block[data-v-8b9995f8]:hover{color:#63e2b7;cursor:pointer}.game-title[data-v-8b9995f8]{margin-bottom:10px;font-size:24px}.game-actions[data-v-8b9995f8]{justify-content:flex-end;margin-top:10px;display:flex}.game-description[data-v-8b9995f8]{color:#aaa;margin-bottom:10px}
-1
View File
@@ -1 +0,0 @@
import{E as e,Et as t,S as n,T as r,U as i,V as a,b as o,o as s,p as c,rt as l,y as u}from"./vue-router-CyfP71JJ.js";import{t as d}from"./use-message-Bz_o0m1G.js";import{i as f,n as p,t as m}from"./HeaderMenu-CngRCkyf.js";var h={class:`center-block-custom`},g={class:`width1200`},_=[`onClick`],v={class:`game-title`},y={class:`game-description`},b=p(e({__name:`GamesPage`,setup(e){let o=f(),p=d(),b=s(),x=l([]);async function S(){x.value=[];let e=await o.GetGames({});if(e.error!=``){p.error(e.error);return}x.value=e.games||[]}S();async function C(e){b.push(`/games/`+e)}return(e,o)=>(a(),n(c,null,[u(`div`,h,[u(`div`,g,[(a(!0),n(c,null,i(x.value,e=>(a(),n(`div`,{key:e.id,class:`game-block`,onClick:t=>C(e.id)},[u(`div`,v,t(e.name),1),u(`div`,y,t(e.description),1)],8,_))),128))])]),r(m,{active:`games`})],64))}}),[[`__scopeId`,`data-v-047ac80b`]]),x=e({__name:`GamesView`,setup(e){return(e,t)=>(a(),o(b))}});export{x as default};
-1
View File
@@ -1 +0,0 @@
.game-block[data-v-047ac80b]{background-color:#222;border-radius:10px;margin:10px 0;padding:20px}.game-block[data-v-047ac80b]:hover{color:#63e2b7;cursor:pointer}.game-title[data-v-047ac80b]{margin-bottom:10px;font-size:24px}.game-description[data-v-047ac80b]{color:#aaa;margin-bottom:10px}
+1
View File
@@ -0,0 +1 @@
import{E as e,Et as t,S as n,T as r,U as i,V as a,Z as o,b as s,ct as c,o as l,p as u,rt as d,w as f,x as p,y as m}from"./vue-router-CyfP71JJ.js";import{n as h,t as g}from"./use-message-DvS7KRo6.js";import{$ as _}from"./index-CqdSAiqM.js";import{i as v,n as y,t as b}from"./HeaderMenu-BCz0PYuC.js";var x={class:`center-block-custom`},S={class:`width1200`},C=[`onClick`],w={class:`game-title`},T={class:`game-description`},E={key:0,class:`game-actions`},D=y(e({__name:`GamesPage`,setup(e){let s=v(),y=g(),D=l(),O=d([]);async function k(){O.value=[];let e=await s.GetGames({});if(e.error!=``){y.error(e.error);return}O.value=e.games||[]}k();async function A(e){D.push(`/games/`+e)}function j(e){D.push(`/games/`+e+`/results`)}return(e,s)=>(a(),n(u,null,[m(`div`,x,[m(`div`,S,[(a(!0),n(u,null,i(O.value,e=>(a(),n(`div`,{key:e.id,class:`game-block`,onClick:t=>A(e.id)},[m(`div`,w,t(e.name),1),m(`div`,T,t(e.description),1),e.status==`finish`?(a(),n(`div`,E,[r(c(h),{size:`small`,ghost:``,onClick:_(t=>j(e.id),[`stop`])},{default:o(()=>[...s[0]||=[f(`Результаты`,-1)]]),_:1},8,[`onClick`])])):p(``,!0)],8,C))),128))])]),r(b,{active:`games`})],64))}}),[[`__scopeId`,`data-v-8b9995f8`]]),O=e({__name:`GamesView`,setup(e){return(e,t)=>(a(),s(D))}});export{O as default};
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{E as e,S as t,V as n,W as r}from"./vue-router-CyfP71JJ.js";import{n as i}from"./HeaderMenu-CngRCkyf.js";var a={class:`text-with-font`},o=i(e({__name:`HeaderText`,setup(e){return(e,i)=>(n(),t(`span`,a,[r(e.$slots,`default`,{},void 0,!0)]))}}),[[`__scopeId`,`data-v-689794e0`]]);export{o as t}; import{E as e,S as t,V as n,W as r}from"./vue-router-CyfP71JJ.js";import{n as i}from"./HeaderMenu-BCz0PYuC.js";var a={class:`text-with-font`},o=i(e({__name:`HeaderText`,setup(e){return(e,i)=>(n(),t(`span`,a,[r(e.$slots,`default`,{},void 0,!0)]))}}),[[`__scopeId`,`data-v-689794e0`]]);export{o as t};
@@ -1 +1 @@
import{E as e,S as t,T as n,V as r,p as i,y as a}from"./vue-router-CyfP71JJ.js";import{t as o}from"./HeaderMenu-CngRCkyf.js";var s=e({__name:`HomeView`,setup(e){return(e,s)=>(r(),t(i,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),n(o,{active:`main`})],64))}});export{s as default}; import{E as e,S as t,T as n,V as r,p as i,y as a}from"./vue-router-CyfP71JJ.js";import{t as o}from"./HeaderMenu-BCz0PYuC.js";var s=e({__name:`HomeView`,setup(e){return(e,s)=>(r(),t(i,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),n(o,{active:`main`})],64))}});export{s as default};
-323
View File
File diff suppressed because one or more lines are too long
+323
View File
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
import{E as e,Et as t,S as n,T as r,V as i,W as a,Z as o,b as s,ct as c,p as l,v as u,w as d,x as f,y as p}from"./vue-router-CyfP71JJ.js";import{t as m}from"./Input-CYnJzkGX.js";import{t as h}from"./Button-B7j6g3jb.js";import{n as g,t as _}from"./Upload-Csd2k5HS.js";import{t as v}from"./Space--VOm-a9w.js";import{t as y}from"./text-CPFVbXob.js";import{n as b,o as x}from"./HeaderMenu-CngRCkyf.js";var S={class:`main`},C={class:`message-cloud`},w=b(e({__name:`MessagePaper`,setup(e){return(e,t)=>(i(),n(`div`,S,[t[0]||=p(`div`,{class:`message-cloud-3`},null,-1),t[1]||=p(`div`,{class:`message-cloud-2`},null,-1),p(`div`,C,[a(e.$slots,`default`,{},void 0,!0)])]))}}),[[`__scopeId`,`data-v-0b1b8d3f`]]),T={key:0},E={class:`intro-text font`},D={key:0,class:`intro-audio-block`},O=[`src`],k={class:`message-content`},A={key:0,class:`intro-audio-block`},j=[`src`],M={key:1},N={key:2,class:`intro-empty`},P={key:2,class:`place-block`},F={class:`intro-edit-audio`},I=[`src`],L={class:`slot-block`},R=b(e({__name:`IntroBlock`,props:{introduction:{type:Object,required:!0},mode:{type:String,required:!0}},emits:[`update:mode`],setup(e,{emit:b}){let S=e,C=b,R=e=>{C(`update:mode`,e)},z=u(()=>!!S.introduction?.text),B=u(()=>!!S.introduction?.audio),V=u(()=>{let e=S.introduction?.audio;if(e)return/^https?:\/\//i.test(e)?e:`${x()}/api/files/${encodeURIComponent(e)}`}),H=()=>{S.introduction&&(S.introduction.audio=``,S.introduction.fileList=void 0)};return(u,b)=>(i(),n(l,null,[e.mode==`show`?(i(),n(`div`,T,[r(w,null,{default:o(()=>[b[4]||=p(`div`,{class:`font`},`Вступление`,-1),b[5]||=p(`hr`,{class:`intro-hr`},null,-1),p(`div`,E,t(e.introduction.text),1),B.value?(i(),n(`div`,D,[p(`audio`,{src:V.value,controls:``,preload:`none`,class:`intro-audio`},null,8,O)])):f(``,!0)]),_:1})])):f(``,!0),e.mode==`show-editor`?(i(),n(`div`,{key:1,class:`place-block-hover show-editor-block`,onClick:b[0]||=e=>R(`edit`)},[b[6]||=p(`div`,{class:`message-header`},`Вступление`,-1),b[7]||=p(`hr`,{class:`hr`},null,-1),p(`div`,k,[B.value?(i(),n(`div`,A,[p(`audio`,{src:V.value,controls:``,preload:`none`,class:`intro-audio`},null,8,j)])):f(``,!0),z.value?(i(),n(`span`,M,t(e.introduction.text),1)):(i(),n(`span`,N,`Введение не задано — нажмите, чтобы добавить`))])])):f(``,!0),e.mode==`edit`?(i(),n(`div`,P,[r(c(v),{vertical:``},{default:o(()=>[b[11]||=p(`p`,{class:`settings-header`},`Текст вступления`,-1),r(c(m),{value:S.introduction.text,"onUpdate:value":b[1]||=e=>S.introduction.text=e,type:`textarea`,autosize:{minRows:4,maxRows:12},placeholder:`Дорогие сыщики! В этом деле вам предстоит...`},null,8,[`value`]),b[12]||=p(`p`,{class:`settings-header`},`Аудио вступления`,-1),p(`div`,F,[r(c(v),{vertical:``},{default:o(()=>[B.value?(i(),n(`audio`,{key:0,src:V.value,controls:``,preload:`none`,class:`intro-audio`},null,8,I)):(i(),s(c(y),{key:1,depth:`3`},{default:o(()=>[...b[8]||=[d(`Аудио не задано`,-1)]]),_:1})),r(c(h),{onClick:b[2]||=e=>H(),disabled:!B.value},{default:o(()=>[...b[9]||=[d(`Убрать аудио`,-1)]]),_:1},8,[`disabled`])]),_:1}),r(c(_),{"directory-dnd":``,max:1,"file-list":S.introduction.fileList,"onUpdate:fileList":b[3]||=e=>S.introduction.fileList=e},{default:o(()=>[r(c(g),null,{default:o(()=>[r(c(y),{style:{"font-size":`16px`}},{default:o(()=>[...b[10]||=[d(` Щелкните или перетащите аудиофайл в эту область для загрузки `,-1)]]),_:1})]),_:1})]),_:1},8,[`file-list`])]),p(`div`,L,[a(u.$slots,`default`,{},void 0,!0)])]),_:3})])):f(``,!0)],64))}}),[[`__scopeId`,`data-v-607f7527`]]);export{w as n,R as t};
+1
View File
@@ -0,0 +1 @@
import{E as e,Et as t,S as n,T as r,V as i,W as a,Z as o,b as s,ct as c,p as l,v as u,w as d,x as f,y as p}from"./vue-router-CyfP71JJ.js";import{t as m}from"./Input-DNhRbQfG.js";import{n as h}from"./use-message-DvS7KRo6.js";import{n as g,t as _}from"./Upload-DFRL-5R_.js";import{t as v}from"./Space-CrPu5vy6.js";import{t as y}from"./text-DHlQWHSn.js";import{n as b,o as x}from"./HeaderMenu-BCz0PYuC.js";var S={class:`main`},C={class:`message-cloud`},w=b(e({__name:`MessagePaper`,setup(e){return(e,t)=>(i(),n(`div`,S,[t[0]||=p(`div`,{class:`message-cloud-3`},null,-1),t[1]||=p(`div`,{class:`message-cloud-2`},null,-1),p(`div`,C,[a(e.$slots,`default`,{},void 0,!0)])]))}}),[[`__scopeId`,`data-v-0b1b8d3f`]]),T={key:0},E={class:`intro-text font`},D={key:0,class:`intro-audio-block`},O=[`src`],k={class:`message-content`},A={key:0,class:`intro-audio-block`},j=[`src`],M={key:1},N={key:2,class:`intro-empty`},P={key:2,class:`place-block`},F={class:`intro-edit-audio`},I=[`src`],L={class:`slot-block`},R=b(e({__name:`IntroBlock`,props:{introduction:{type:Object,required:!0},mode:{type:String,required:!0}},emits:[`update:mode`],setup(e,{emit:b}){let S=e,C=b,R=e=>{C(`update:mode`,e)},z=u(()=>!!S.introduction?.text),B=u(()=>!!S.introduction?.audio),V=u(()=>{let e=S.introduction?.audio;if(e)return/^https?:\/\//i.test(e)?e:`${x()}/api/files/${encodeURIComponent(e)}`}),H=()=>{S.introduction&&(S.introduction.audio=``,S.introduction.fileList=void 0)};return(u,b)=>(i(),n(l,null,[e.mode==`show`?(i(),n(`div`,T,[r(w,null,{default:o(()=>[b[4]||=p(`div`,{class:`font`},`Вступление`,-1),b[5]||=p(`hr`,{class:`intro-hr`},null,-1),p(`div`,E,t(e.introduction.text),1),B.value?(i(),n(`div`,D,[p(`audio`,{src:V.value,controls:``,preload:`none`,class:`intro-audio`},null,8,O)])):f(``,!0)]),_:1})])):f(``,!0),e.mode==`show-editor`?(i(),n(`div`,{key:1,class:`place-block-hover show-editor-block`,onClick:b[0]||=e=>R(`edit`)},[b[6]||=p(`div`,{class:`message-header`},`Вступление`,-1),b[7]||=p(`hr`,{class:`hr`},null,-1),p(`div`,k,[B.value?(i(),n(`div`,A,[p(`audio`,{src:V.value,controls:``,preload:`none`,class:`intro-audio`},null,8,j)])):f(``,!0),z.value?(i(),n(`span`,M,t(e.introduction.text),1)):(i(),n(`span`,N,`Введение не задано — нажмите, чтобы добавить`))])])):f(``,!0),e.mode==`edit`?(i(),n(`div`,P,[r(c(v),{vertical:``},{default:o(()=>[b[11]||=p(`p`,{class:`settings-header`},`Текст вступления`,-1),r(c(m),{value:S.introduction.text,"onUpdate:value":b[1]||=e=>S.introduction.text=e,type:`textarea`,autosize:{minRows:4,maxRows:12},placeholder:`Дорогие сыщики! В этом деле вам предстоит...`},null,8,[`value`]),b[12]||=p(`p`,{class:`settings-header`},`Аудио вступления`,-1),p(`div`,F,[r(c(v),{vertical:``},{default:o(()=>[B.value?(i(),n(`audio`,{key:0,src:V.value,controls:``,preload:`none`,class:`intro-audio`},null,8,I)):(i(),s(c(y),{key:1,depth:`3`},{default:o(()=>[...b[8]||=[d(`Аудио не задано`,-1)]]),_:1})),r(c(h),{onClick:b[2]||=e=>H(),disabled:!B.value},{default:o(()=>[...b[9]||=[d(`Убрать аудио`,-1)]]),_:1},8,[`disabled`])]),_:1}),r(c(_),{"directory-dnd":``,max:1,"file-list":S.introduction.fileList,"onUpdate:fileList":b[3]||=e=>S.introduction.fileList=e},{default:o(()=>[r(c(g),null,{default:o(()=>[r(c(y),{style:{"font-size":`16px`}},{default:o(()=>[...b[10]||=[d(` Щелкните или перетащите аудиофайл в эту область для загрузки `,-1)]]),_:1})]),_:1})]),_:1},8,[`file-list`])]),p(`div`,L,[a(u.$slots,`default`,{},void 0,!0)])]),_:3})])):f(``,!0)],64))}}),[[`__scopeId`,`data-v-607f7527`]]);export{w as n,R as t};
File diff suppressed because one or more lines are too long
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
+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
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{E as e,S as t,T as n,V as r,p as i}from"./vue-router-CyfP71JJ.js";import{t as a}from"./DocsPage-5NlWnOVg.js";import{t as o}from"./HeaderMenu-CngRCkyf.js";var s=e({__name:`PrivacyPolicyView`,setup(e){return(e,s)=>(r(),t(i,null,[n(a,{kind:`privacy`}),n(o)],64))}});export{s as default}; import{E as e,S as t,T as n,V as r,p as i}from"./vue-router-CyfP71JJ.js";import{t as a}from"./DocsPage-CsaFSfJn.js";import{t as o}from"./HeaderMenu-BCz0PYuC.js";var s=e({__name:`PrivacyPolicyView`,setup(e){return(e,s)=>(r(),t(i,null,[n(a,{kind:`privacy`}),n(o)],64))}});export{s as default};
@@ -1 +1 @@
import{E as e,Et as t,S as n,T as r,V as i,Z as a,a as o,b as s,ct as c,p as l,rt as u,w as d,x as f,y as p}from"./vue-router-CyfP71JJ.js";import{t as m}from"./Tag-qdAwC3l-.js";import{t as h}from"./use-message-Bz_o0m1G.js";import{i as g,n as _,t as v}from"./HeaderMenu-CngRCkyf.js";import{t as y}from"./IntroBlock-CwubFNAJ.js";var b={class:`center-block-custom`},x={class:`width700`},S={class:`scenario-title`},C=[`src`],w={class:`scenario-description`},T={class:`scenario-author`},E=_(e({__name:`ScenarioPage`,setup(e){let _=h(),E=g(),D=o().params.id,O=u({id:void 0,name:void 0,story:void 0,author:void 0,status:void 0,updatedAt:void 0,createdAt:void 0,publishedAt:void 0});async function k(e){let t=await E.GetScenario({id:e});if(t.error!=``){_.error(t.error);return}O.value=t.scenario}return k(Number(D)),(e,o)=>(i(),n(l,null,[p(`div`,b,[p(`div`,x,[p(`div`,S,t(O.value.name),1),p(`img`,{class:`scenario-image`,src:O.value.image},null,8,C),p(`div`,w,t(O.value.description),1),p(`div`,T,[r(c(m),{bordered:!1,type:`success`,class:`status-block`},{default:a(()=>[d(`Автор: `+t(O.value.author?.username),1)]),_:1})]),O.value.story?.introduction&&(O.value.story.introduction.text||O.value.story.introduction.audio)?(i(),s(y,{key:0,introduction:O.value.story.introduction,mode:`show`},null,8,[`introduction`])):f(``,!0)])]),r(v,{active:`catalog`})],64))}}),[[`__scopeId`,`data-v-223ef01a`]]),D=e({__name:`ScenarioView`,setup(e){return(e,t)=>(i(),s(E))}});export{D as default}; import{E as e,Et as t,S as n,T as r,V as i,Z as a,a as o,b as s,ct as c,p as l,rt as u,w as d,x as f,y as p}from"./vue-router-CyfP71JJ.js";import{t as m}from"./use-message-DvS7KRo6.js";import{t as h}from"./Tag-4OJejtYN.js";import{i as g,n as _,t as v}from"./HeaderMenu-BCz0PYuC.js";import{t as y}from"./IntroBlock-DqbLinNH.js";var b={class:`center-block-custom`},x={class:`width700`},S={class:`scenario-title`},C=[`src`],w={class:`scenario-description`},T={class:`scenario-author`},E=_(e({__name:`ScenarioPage`,setup(e){let _=m(),E=g(),D=o().params.id,O=u({id:void 0,name:void 0,story:void 0,author:void 0,status:void 0,updatedAt:void 0,createdAt:void 0,publishedAt:void 0});async function k(e){let t=await E.GetScenario({id:e});if(t.error!=``){_.error(t.error);return}O.value=t.scenario}return k(Number(D)),(e,o)=>(i(),n(l,null,[p(`div`,b,[p(`div`,x,[p(`div`,S,t(O.value.name),1),p(`img`,{class:`scenario-image`,src:O.value.image},null,8,C),p(`div`,w,t(O.value.description),1),p(`div`,T,[r(c(h),{bordered:!1,type:`success`,class:`status-block`},{default:a(()=>[d(`Автор: `+t(O.value.author?.username),1)]),_:1})]),O.value.story?.introduction&&(O.value.story.introduction.text||O.value.story.introduction.audio)?(i(),s(y,{key:0,introduction:O.value.story.introduction,mode:`show`},null,8,[`introduction`])):f(``,!0)])]),r(v,{active:`catalog`})],64))}}),[[`__scopeId`,`data-v-223ef01a`]]),D=e({__name:`ScenarioView`,setup(e){return(e,t)=>(i(),s(E))}});export{D 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
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
import{E as e,f as t,k as n,v as r}from"./vue-router-CyfP71JJ.js";import{$ as i,l as a,o,z as s}from"./light-3nK60gWS.js";import{o as c,s as l}from"./resolve-slot-tPBGpQg9.js";import{c as u,s as d}from"./Button-B7j6g3jb.js";import{t as f}from"./get-slot-6kXJmSMP.js";import{l as p}from"./index-zAAv4RkK.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=e({name:`Space`,props:Object.assign(Object.assign({},o.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:t,mergedRtlRef:n,mergedComponentPropsRef:u}=s(e),d=r(()=>e.size||u?.value?.Space?.size||`medium`),f=o(`Space`,`-space`,void 0,h,e,t),p=a(`Space`,n,t);return{useGap:_(),rtlEnabled:p,mergedClsPrefix:t,margin:r(()=>{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:{[i(`gap`,e)]:t}}=f.value,{row:n,col:r}=l(t);return{horizontal:c(r),vertical:c(n)}})}},render(){let{vertical:e,reverse:r,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 n(`div`,{role:`none`,class:[`${p}-space`,m&&`${p}-space--rtl`],style:{display:a?`inline-flex`:`flex`,flexDirection:e&&!r?`column`:e&&r?`column-reverse`:!e&&r?`row-reverse`:`row`,justifyContent:[`start`,`end`].includes(o)?`flex-${o}`:o,flexWrap:!u||e?`nowrap`:`wrap`,marginTop:h||e?``:`-${S}`,marginBottom:h||e?``:`-${S}`,alignItems:i,gap:h?`${l.vertical}px ${l.horizontal}px`:``}},!g&&(h||_)?v:v.map((r,i)=>r.type===t?r:n(`div`,{role:`none`,class:s,style:[c,{maxWidth:`100%`},h?``:e?{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}]},r)))}});export{v as t};
+1
View File
@@ -0,0 +1 @@
import{E as e,f as t,k as n,v as r}from"./vue-router-CyfP71JJ.js";import{N as i,Z as a,o,r as s}from"./light-CPiNeYrP.js";import{n as c,t as l}from"./css-DEmdllcC.js";import{c as u}from"./use-message-DvS7KRo6.js";import{t as d}from"./flatten-CUjrZ-N-.js";import{t as f}from"./get-slot-6kXJmSMP.js";import{l as p}from"./index-CqdSAiqM.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=e({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:t,mergedRtlRef:n,mergedComponentPropsRef:u}=i(e),d=r(()=>e.size||u?.value?.Space?.size||`medium`),f=s(`Space`,`-space`,void 0,h,e,t),p=o(`Space`,n,t);return{useGap:_(),rtlEnabled:p,mergedClsPrefix:t,margin:r(()=>{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:e,reverse:r,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 n(`div`,{role:`none`,class:[`${p}-space`,m&&`${p}-space--rtl`],style:{display:a?`inline-flex`:`flex`,flexDirection:e&&!r?`column`:e&&r?`column-reverse`:!e&&r?`row-reverse`:`row`,justifyContent:[`start`,`end`].includes(o)?`flex-${o}`:o,flexWrap:!u||e?`nowrap`:`wrap`,marginTop:h||e?``:`-${S}`,marginBottom:h||e?``:`-${S}`,alignItems:i,gap:h?`${l.vertical}px ${l.horizontal}px`:``}},!g&&(h||_)?v:v.map((r,i)=>r.type===t?r:n(`div`,{role:`none`,class:s,style:[c,{maxWidth:`100%`},h?``:e?{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}]},r)))}});export{v as t};
+71
View File
@@ -0,0 +1,71 @@
import{E as e,H as t,k as n,ot as r,rt as i,v as a}from"./vue-router-CyfP71JJ.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-CPiNeYrP.js";import{r as y}from"./css-DEmdllcC.js";import{n as b,t as x}from"./call-ChHlm4-m.js";import{a as S}from"./resolve-slot-A17u0Glq.js";import{C,j as w}from"./index-CqdSAiqM.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:w,heightSmall:T,heightMedium:E,closeColorHover:D,closeColorPressed:O,buttonColor2Hover:k,buttonColor2Pressed:A,fontWeightStrong:j}=e;return Object.assign(Object.assign({},C),{closeBorderRadius:_,heightTiny:S,heightSmall:w,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;
box-sizing: border-box;
cursor: default;
display: inline-flex;
align-items: center;
flex-wrap: nowrap;
padding: var(--n-padding);
border-radius: var(--n-border-radius);
color: var(--n-text-color);
background-color: var(--n-color);
transition:
border-color .3s var(--n-bezier),
background-color .3s var(--n-bezier),
color .3s var(--n-bezier),
box-shadow .3s var(--n-bezier),
opacity .3s var(--n-bezier);
line-height: 1;
height: var(--n-height);
font-size: var(--n-font-size);
`,[p(`strong`,`
font-weight: var(--n-font-weight-strong);
`),c(`border`,`
pointer-events: none;
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
border-radius: inherit;
border: var(--n-border);
transition: border-color .3s var(--n-bezier);
`),c(`icon`,`
display: flex;
margin: 0 4px 0 0;
color: var(--n-text-color);
transition: color .3s var(--n-bezier);
font-size: var(--n-avatar-size-override);
`),c(`avatar`,`
display: flex;
margin: 0 6px 0 0;
`),c(`close`,`
margin: var(--n-close-margin);
transition:
background-color .3s var(--n-bezier),
color .3s var(--n-bezier);
`),p(`round`,`
padding: 0 calc(var(--n-height) / 3);
border-radius: calc(var(--n-height) / 2);
`,[c(`icon`,`
margin: 0 4px 0 calc((var(--n-height) - 8px) / -2);
`),c(`avatar`,`
margin: 0 6px 0 calc((var(--n-height) - 8px) / -2);
`),p(`closable`,`
padding: 0 calc(var(--n-height) / 4) 0 calc(var(--n-height) / 3);
`)]),p(`icon, avatar`,[p(`round`,`
padding: 0 calc(var(--n-height) / 3) 0 calc(var(--n-height) / 2);
`)]),p(`disabled`,`
cursor: not-allowed !important;
opacity: var(--n-opacity-disabled);
`),p(`checkable`,`
cursor: pointer;
box-shadow: none;
color: var(--n-text-color-checkable);
background-color: var(--n-color-checkable);
`,[f(`disabled`,[s(`&:hover`,`background-color: var(--n-color-hover-checkable);`,[f(`checked`,`color: var(--n-text-color-hover-checkable);`)]),s(`&:active`,`background-color: var(--n-color-pressed-checkable);`,[f(`checked`,`color: var(--n-text-color-pressed-checkable);`)])]),p(`checked`,`
color: var(--n-text-color-checked);
background-color: var(--n-color-checked);
`,[f(`disabled`,[s(`&:hover`,`background-color: var(--n-color-checked-hover);`),s(`&:active`,`background-color: var(--n-color-checked-pressed);`)])])])]),k=Object.assign(Object.assign(Object.assign({},g.props),D),{bordered:{type:Boolean,default:void 0},checked:Boolean,checkable:Boolean,strong:Boolean,triggerClickOnClose:Boolean,onClose:[Array,Function],onMouseenter:Function,onMouseleave:Function,"onUpdate:checked":Function,onUpdateChecked:Function,internalCloseFocusable:{type:Boolean,default:!0},internalCloseIsButtonTag:{type:Boolean,default:!0},onCheckedChange:Function}),A=v(`n-tag`),j=e({name:`Tag`,props:k,slots:Object,setup(e){let n=i(null),{mergedBorderedRef:o,mergedClsPrefixRef:s,inlineThemeDisabled:c,mergedRtlRef:l,mergedComponentPropsRef:f}=d(e),p=a(()=>e.size||f?.value?.Tag?.size||`medium`),_=g(`Tag`,`-tag`,O,E,e,s);t(A,{roundRef:r(e,`round`)});function v(){if(!e.disabled&&e.checkable){let{checked:t,onCheckedChange:n,onUpdateChecked:r,"onUpdate:checked":i}=e;r&&r(!t),i&&i(!t),n&&n(!t)}}function S(t){if(e.triggerClickOnClose||t.stopPropagation(),!e.disabled){let{onClose:n}=e;n&&x(n,t)}}let C={setTextContent(e){let{value:t}=n;t&&(t.textContent=e)}},w=h(`Tag`,l,s),T=a(()=>{let{type:t,color:{color:n,textColor:r}={}}=e,i=p.value,{common:{cubicBezierEaseInOut:a},self:{padding:s,closeMargin:c,borderRadius:l,opacityDisabled:u,textColorCheckable:d,textColorHoverCheckable:f,textColorPressedCheckable:h,textColorChecked:g,colorCheckable:v,colorHoverCheckable:b,colorPressedCheckable:x,colorChecked:S,colorCheckedHover:C,colorCheckedPressed:w,closeBorderRadius:T,fontWeightStrong:E,[m(`colorBordered`,t)]:D,[m(`closeSize`,i)]:O,[m(`closeIconSize`,i)]:k,[m(`fontSize`,i)]:A,[m(`height`,i)]:j,[m(`color`,t)]:M,[m(`textColor`,t)]:N,[m(`border`,t)]:P,[m(`closeIconColor`,t)]:F,[m(`closeIconColorHover`,t)]:I,[m(`closeIconColorPressed`,t)]:L,[m(`closeColorHover`,t)]:R,[m(`closeColorPressed`,t)]:z}}=_.value,B=y(c);return{"--n-font-weight-strong":E,"--n-avatar-size-override":`calc(${j} - 8px)`,"--n-bezier":a,"--n-border-radius":l,"--n-border":P,"--n-close-icon-size":k,"--n-close-color-pressed":z,"--n-close-color-hover":R,"--n-close-border-radius":T,"--n-close-icon-color":F,"--n-close-icon-color-hover":I,"--n-close-icon-color-pressed":L,"--n-close-icon-color-disabled":F,"--n-close-margin-top":B.top,"--n-close-margin-right":B.right,"--n-close-margin-bottom":B.bottom,"--n-close-margin-left":B.left,"--n-close-size":O,"--n-color":n||(o.value?D:M),"--n-color-checkable":v,"--n-color-checked":S,"--n-color-checked-hover":C,"--n-color-checked-pressed":w,"--n-color-hover-checkable":b,"--n-color-pressed-checkable":x,"--n-font-size":A,"--n-height":j,"--n-opacity-disabled":u,"--n-padding":s,"--n-text-color":r||N,"--n-text-color-checkable":d,"--n-text-color-checked":g,"--n-text-color-hover-checkable":f,"--n-text-color-pressed-checkable":h}}),D=c?u(`tag`,a(()=>{let t=``,{type:n,color:{color:r,textColor:i}={}}=e;return t+=n[0],t+=p.value[0],r&&(t+=`a${b(r)}`),i&&(t+=`b${b(i)}`),o.value&&(t+=`c`),t}),T,e):void 0;return Object.assign(Object.assign({},C),{rtlEnabled:w,mergedClsPrefix:s,contentRef:n,mergedBordered:o,handleClick:v,handleCloseClick:S,cssVars:c?void 0:T,themeClass:D?.themeClass,onRender:D?.onRender})},render(){var e;let{mergedClsPrefix:t,rtlEnabled:r,closable:i,color:{borderColor:a}={},round:o,onRender:s,$slots:c}=this;s?.();let l=S(c.avatar,e=>e&&n(`div`,{class:`${t}-tag__avatar`},e)),u=S(c.icon,e=>e&&n(`div`,{class:`${t}-tag__icon`},e));return n(`div`,{class:[`${t}-tag`,this.themeClass,{[`${t}-tag--rtl`]:r,[`${t}-tag--strong`]:this.strong,[`${t}-tag--disabled`]:this.disabled,[`${t}-tag--checkable`]:this.checkable,[`${t}-tag--checked`]:this.checkable&&this.checked,[`${t}-tag--round`]:o,[`${t}-tag--avatar`]:l,[`${t}-tag--icon`]:u,[`${t}-tag--closable`]:i}],style:this.cssVars,onClick:this.handleClick,onMouseenter:this.onMouseenter,onMouseleave:this.onMouseleave},u||l,n(`span`,{class:`${t}-tag__content`,ref:`contentRef`},(e=this.$slots).default?.call(e)),!this.checkable&&i?n(w,{clsPrefix:t,class:`${t}-tag__close`,disabled:this.disabled,onClick:this.handleCloseClick,focusable:this.internalCloseFocusable,round:o,isButtonTag:this.internalCloseIsButtonTag,absolute:!0}):null,!this.checkable&&this.mergedBordered?n(`div`,{class:`${t}-tag__border`,style:{borderColor:a}}):null)}});export{j as t};
-71
View File
@@ -1,71 +0,0 @@
import{E as e,H as t,k as n,ot as r,rt as i,v as a}from"./vue-router-CyfP71JJ.js";import{$ as o,H as s,J as c,Q as l,R as u,X as d,Z as f,l as p,n as m,o as h,q as g,t as _,z as v}from"./light-3nK60gWS.js";import{a as y,c as b}from"./resolve-slot-tPBGpQg9.js";import{i as x}from"./warn-Dp4mLwFL.js";import{n as S,t as C}from"./call-ChHlm4-m.js";import{C as w}from"./index-zAAv4RkK.js";function T(e){let{textColor2:t,primaryColorHover:n,primaryColorPressed:r,primaryColor:i,infoColor:a,successColor:o,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 ${s(i,{alpha:.3})}`,textColorPrimary:i,colorPrimary:s(i,{alpha:.12}),colorBorderedPrimary:s(i,{alpha:.1}),closeIconColorPrimary:i,closeIconColorHoverPrimary:i,closeIconColorPressedPrimary:i,closeColorHoverPrimary:s(i,{alpha:.12}),closeColorPressedPrimary:s(i,{alpha:.18}),borderInfo:`1px solid ${s(a,{alpha:.3})}`,textColorInfo:a,colorInfo:s(a,{alpha:.12}),colorBorderedInfo:s(a,{alpha:.1}),closeIconColorInfo:a,closeIconColorHoverInfo:a,closeIconColorPressedInfo:a,closeColorHoverInfo:s(a,{alpha:.12}),closeColorPressedInfo:s(a,{alpha:.18}),borderSuccess:`1px solid ${s(o,{alpha:.3})}`,textColorSuccess:o,colorSuccess:s(o,{alpha:.12}),colorBorderedSuccess:s(o,{alpha:.1}),closeIconColorSuccess:o,closeIconColorHoverSuccess:o,closeIconColorPressedSuccess:o,closeColorHoverSuccess:s(o,{alpha:.12}),closeColorPressedSuccess:s(o,{alpha:.18}),borderWarning:`1px solid ${s(c,{alpha:.35})}`,textColorWarning:c,colorWarning:s(c,{alpha:.15}),colorBorderedWarning:s(c,{alpha:.12}),closeIconColorWarning:c,closeIconColorHoverWarning:c,closeIconColorPressedWarning:c,closeColorHoverWarning:s(c,{alpha:.12}),closeColorPressedWarning:s(c,{alpha:.18}),borderError:`1px solid ${s(l,{alpha:.23})}`,textColorError:l,colorError:s(l,{alpha:.1}),colorBorderedError:s(l,{alpha:.08}),closeIconColorError:l,closeIconColorHoverError:l,closeIconColorPressedError:l,closeColorHoverError:s(l,{alpha:.12}),closeColorPressedError:s(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=c(`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;
box-sizing: border-box;
cursor: default;
display: inline-flex;
align-items: center;
flex-wrap: nowrap;
padding: var(--n-padding);
border-radius: var(--n-border-radius);
color: var(--n-text-color);
background-color: var(--n-color);
transition:
border-color .3s var(--n-bezier),
background-color .3s var(--n-bezier),
color .3s var(--n-bezier),
box-shadow .3s var(--n-bezier),
opacity .3s var(--n-bezier);
line-height: 1;
height: var(--n-height);
font-size: var(--n-font-size);
`,[f(`strong`,`
font-weight: var(--n-font-weight-strong);
`),d(`border`,`
pointer-events: none;
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
border-radius: inherit;
border: var(--n-border);
transition: border-color .3s var(--n-bezier);
`),d(`icon`,`
display: flex;
margin: 0 4px 0 0;
color: var(--n-text-color);
transition: color .3s var(--n-bezier);
font-size: var(--n-avatar-size-override);
`),d(`avatar`,`
display: flex;
margin: 0 6px 0 0;
`),d(`close`,`
margin: var(--n-close-margin);
transition:
background-color .3s var(--n-bezier),
color .3s var(--n-bezier);
`),f(`round`,`
padding: 0 calc(var(--n-height) / 3);
border-radius: calc(var(--n-height) / 2);
`,[d(`icon`,`
margin: 0 4px 0 calc((var(--n-height) - 8px) / -2);
`),d(`avatar`,`
margin: 0 6px 0 calc((var(--n-height) - 8px) / -2);
`),f(`closable`,`
padding: 0 calc(var(--n-height) / 4) 0 calc(var(--n-height) / 3);
`)]),f(`icon, avatar`,[f(`round`,`
padding: 0 calc(var(--n-height) / 3) 0 calc(var(--n-height) / 2);
`)]),f(`disabled`,`
cursor: not-allowed !important;
opacity: var(--n-opacity-disabled);
`),f(`checkable`,`
cursor: pointer;
box-shadow: none;
color: var(--n-text-color-checkable);
background-color: var(--n-color-checkable);
`,[l(`disabled`,[g(`&:hover`,`background-color: var(--n-color-hover-checkable);`,[l(`checked`,`color: var(--n-text-color-hover-checkable);`)]),g(`&:active`,`background-color: var(--n-color-pressed-checkable);`,[l(`checked`,`color: var(--n-text-color-pressed-checkable);`)])]),f(`checked`,`
color: var(--n-text-color-checked);
background-color: var(--n-color-checked);
`,[l(`disabled`,[g(`&:hover`,`background-color: var(--n-color-checked-hover);`),g(`&:active`,`background-color: var(--n-color-checked-pressed);`)])])])]),k=Object.assign(Object.assign(Object.assign({},h.props),D),{bordered:{type:Boolean,default:void 0},checked:Boolean,checkable:Boolean,strong:Boolean,triggerClickOnClose:Boolean,onClose:[Array,Function],onMouseenter:Function,onMouseleave:Function,"onUpdate:checked":Function,onUpdateChecked:Function,internalCloseFocusable:{type:Boolean,default:!0},internalCloseIsButtonTag:{type:Boolean,default:!0},onCheckedChange:Function}),A=x(`n-tag`),j=e({name:`Tag`,props:k,slots:Object,setup(e){let n=i(null),{mergedBorderedRef:s,mergedClsPrefixRef:c,inlineThemeDisabled:l,mergedRtlRef:d,mergedComponentPropsRef:f}=v(e),m=a(()=>e.size||f?.value?.Tag?.size||`medium`),g=h(`Tag`,`-tag`,O,E,e,c);t(A,{roundRef:r(e,`round`)});function _(){if(!e.disabled&&e.checkable){let{checked:t,onCheckedChange:n,onUpdateChecked:r,"onUpdate:checked":i}=e;r&&r(!t),i&&i(!t),n&&n(!t)}}function y(t){if(e.triggerClickOnClose||t.stopPropagation(),!e.disabled){let{onClose:n}=e;n&&C(n,t)}}let x={setTextContent(e){let{value:t}=n;t&&(t.textContent=e)}},w=p(`Tag`,d,c),T=a(()=>{let{type:t,color:{color:n,textColor:r}={}}=e,i=m.value,{common:{cubicBezierEaseInOut:a},self:{padding:c,closeMargin:l,borderRadius:u,opacityDisabled:d,textColorCheckable:f,textColorHoverCheckable:p,textColorPressedCheckable:h,textColorChecked:_,colorCheckable:v,colorHoverCheckable:y,colorPressedCheckable:x,colorChecked:S,colorCheckedHover:C,colorCheckedPressed:w,closeBorderRadius:T,fontWeightStrong:E,[o(`colorBordered`,t)]:D,[o(`closeSize`,i)]:O,[o(`closeIconSize`,i)]:k,[o(`fontSize`,i)]:A,[o(`height`,i)]:j,[o(`color`,t)]:M,[o(`textColor`,t)]:N,[o(`border`,t)]:P,[o(`closeIconColor`,t)]:F,[o(`closeIconColorHover`,t)]:I,[o(`closeIconColorPressed`,t)]:L,[o(`closeColorHover`,t)]:R,[o(`closeColorPressed`,t)]:z}}=g.value,B=b(l);return{"--n-font-weight-strong":E,"--n-avatar-size-override":`calc(${j} - 8px)`,"--n-bezier":a,"--n-border-radius":u,"--n-border":P,"--n-close-icon-size":k,"--n-close-color-pressed":z,"--n-close-color-hover":R,"--n-close-border-radius":T,"--n-close-icon-color":F,"--n-close-icon-color-hover":I,"--n-close-icon-color-pressed":L,"--n-close-icon-color-disabled":F,"--n-close-margin-top":B.top,"--n-close-margin-right":B.right,"--n-close-margin-bottom":B.bottom,"--n-close-margin-left":B.left,"--n-close-size":O,"--n-color":n||(s.value?D:M),"--n-color-checkable":v,"--n-color-checked":S,"--n-color-checked-hover":C,"--n-color-checked-pressed":w,"--n-color-hover-checkable":y,"--n-color-pressed-checkable":x,"--n-font-size":A,"--n-height":j,"--n-opacity-disabled":d,"--n-padding":c,"--n-text-color":r||N,"--n-text-color-checkable":f,"--n-text-color-checked":_,"--n-text-color-hover-checkable":p,"--n-text-color-pressed-checkable":h}}),D=l?u(`tag`,a(()=>{let t=``,{type:n,color:{color:r,textColor:i}={}}=e;return t+=n[0],t+=m.value[0],r&&(t+=`a${S(r)}`),i&&(t+=`b${S(i)}`),s.value&&(t+=`c`),t}),T,e):void 0;return Object.assign(Object.assign({},x),{rtlEnabled:w,mergedClsPrefix:c,contentRef:n,mergedBordered:s,handleClick:_,handleCloseClick:y,cssVars:l?void 0:T,themeClass:D?.themeClass,onRender:D?.onRender})},render(){var e;let{mergedClsPrefix:t,rtlEnabled:r,closable:i,color:{borderColor:a}={},round:o,onRender:s,$slots:c}=this;s?.();let l=y(c.avatar,e=>e&&n(`div`,{class:`${t}-tag__avatar`},e)),u=y(c.icon,e=>e&&n(`div`,{class:`${t}-tag__icon`},e));return n(`div`,{class:[`${t}-tag`,this.themeClass,{[`${t}-tag--rtl`]:r,[`${t}-tag--strong`]:this.strong,[`${t}-tag--disabled`]:this.disabled,[`${t}-tag--checkable`]:this.checkable,[`${t}-tag--checked`]:this.checkable&&this.checked,[`${t}-tag--round`]:o,[`${t}-tag--avatar`]:l,[`${t}-tag--icon`]:u,[`${t}-tag--closable`]:i}],style:this.cssVars,onClick:this.handleClick,onMouseenter:this.onMouseenter,onMouseleave:this.onMouseleave},u||l,n(`span`,{class:`${t}-tag__content`,ref:`contentRef`},(e=this.$slots).default?.call(e)),!this.checkable&&i?n(m,{clsPrefix:t,class:`${t}-tag__close`,disabled:this.disabled,onClick:this.handleCloseClick,focusable:this.internalCloseFocusable,round:o,isButtonTag:this.internalCloseIsButtonTag,absolute:!0}):null,!this.checkable&&this.mergedBordered?n(`div`,{class:`${t}-tag__border`,style:{borderColor:a}}):null)}});export{j as t};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-556
View File
File diff suppressed because one or more lines are too long
+556
View File
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{E as e,S as t,T as n,V as r,p as i}from"./vue-router-CyfP71JJ.js";import{t as a}from"./DocsPage-5NlWnOVg.js";import{t as o}from"./HeaderMenu-CngRCkyf.js";var s=e({__name:`UserAgreementView`,setup(e){return(e,s)=>(r(),t(i,null,[n(a,{kind:`terms`}),n(o)],64))}});export{s as default}; import{E as e,S as t,T as n,V as r,p as i}from"./vue-router-CyfP71JJ.js";import{t as a}from"./DocsPage-CsaFSfJn.js";import{t as o}from"./HeaderMenu-BCz0PYuC.js";var s=e({__name:`UserAgreementView`,setup(e){return(e,s)=>(r(),t(i,null,[n(a,{kind:`terms`}),n(o)],64))}});export{s as default};
+1
View File
@@ -0,0 +1 @@
import{E as e,Et as t,S as n,T as r,U as i,V as a,Z as o,b as s,ct as c,p as l,rt as u,w as d,y as f}from"./vue-router-CyfP71JJ.js";import{n as p,t as m}from"./use-message-DvS7KRo6.js";import{t as h}from"./Tag-4OJejtYN.js";import{t as g}from"./Space-CrPu5vy6.js";import{t as _}from"./Flex-C-_z_zuh.js";import{i as v,n as y,t as b}from"./HeaderMenu-BCz0PYuC.js";var x={class:`center-block-custom`},S={class:`width700`},C={class:`user-field`},w={class:`user-field`},T={class:`user-field`},E=y(e({__name:`UsersPage`,setup(e){let y=v(),E=m(),D=u([]);async function O(){let e=await y.GetUsers({});if(e.error!=``){E.error(e.error);return}D.value=e.users}O();async function k(e,t){let n=await y.AddUserRole({id:e,role:t});if(n.error!=``){E.error(n.error);return}await O()}async function A(e,t){let n=await y.DeleteUserRole({id:e,role:t});if(n.error!=``){E.error(n.error);return}await O()}return(e,u)=>(a(),n(l,null,[f(`div`,x,[f(`div`,S,[(a(!0),n(l,null,i(D.value,e=>(a(),n(`div`,{key:e.id,class:`user-block`},[f(`div`,C,`Позывной: `+t(e.username),1),f(`div`,w,`Почта: `+t(e.email),1),f(`div`,T,[r(c(g),null,{default:o(()=>[u[0]||=d(` Роли: `,-1),(a(!0),n(l,null,i(e.roles,e=>(a(),s(c(h),{bordered:!1,key:e},{default:o(()=>[d(t(e),1)]),_:2},1024))),128))]),_:2},1024)]),r(c(_),{justify:`end`,class:`roles-buttons-block`},{default:o(()=>[e.roles?.includes(`author`)?(a(),s(c(p),{key:1,onClick:t=>A(e.id,`author`)},{default:o(()=>[...u[2]||=[d(`Забрать роль автора`,-1)]]),_:1},8,[`onClick`])):(a(),s(c(p),{key:0,onClick:t=>k(e.id,`author`)},{default:o(()=>[...u[1]||=[d(`Сделать автором`,-1)]]),_:1},8,[`onClick`])),e.roles?.includes(`organizer`)?(a(),s(c(p),{key:3,onClick:t=>A(e.id,`organizer`)},{default:o(()=>[...u[4]||=[d(`Забрать роль организатора`,-1)]]),_:1},8,[`onClick`])):(a(),s(c(p),{key:2,onClick:t=>k(e.id,`organizer`)},{default:o(()=>[...u[3]||=[d(`Сделать организатором`,-1)]]),_:1},8,[`onClick`]))]),_:2},1024)]))),128))])]),r(b,{active:`users`})],64))}}),[[`__scopeId`,`data-v-7c14036f`]]),D=e({__name:`UsersView`,setup(e){return(e,t)=>(a(),s(E))}});export{D as default};
-1
View File
@@ -1 +0,0 @@
import{E as e,Et as t,S as n,T as r,U as i,V as a,Z as o,b as s,ct as c,p as l,rt as u,w as d,y as f}from"./vue-router-CyfP71JJ.js";import{t as p}from"./Button-B7j6g3jb.js";import{t as m}from"./Tag-qdAwC3l-.js";import{t as h}from"./use-message-Bz_o0m1G.js";import{t as g}from"./Space--VOm-a9w.js";import{t as _}from"./Flex-bzcWLYnc.js";import{i as v,n as y,t as b}from"./HeaderMenu-CngRCkyf.js";var x={class:`center-block-custom`},S={class:`width700`},C={class:`user-field`},w={class:`user-field`},T={class:`user-field`},E=y(e({__name:`UsersPage`,setup(e){let y=v(),E=h(),D=u([]);async function O(){let e=await y.GetUsers({});if(e.error!=``){E.error(e.error);return}D.value=e.users}O();async function k(e,t){let n=await y.AddUserRole({id:e,role:t});if(n.error!=``){E.error(n.error);return}await O()}async function A(e,t){let n=await y.DeleteUserRole({id:e,role:t});if(n.error!=``){E.error(n.error);return}await O()}return(e,u)=>(a(),n(l,null,[f(`div`,x,[f(`div`,S,[(a(!0),n(l,null,i(D.value,e=>(a(),n(`div`,{key:e.id,class:`user-block`},[f(`div`,C,`Позывной: `+t(e.username),1),f(`div`,w,`Почта: `+t(e.email),1),f(`div`,T,[r(c(g),null,{default:o(()=>[u[0]||=d(` Роли: `,-1),(a(!0),n(l,null,i(e.roles,e=>(a(),s(c(m),{bordered:!1,key:e},{default:o(()=>[d(t(e),1)]),_:2},1024))),128))]),_:2},1024)]),r(c(_),{justify:`end`,class:`roles-buttons-block`},{default:o(()=>[e.roles?.includes(`author`)?(a(),s(c(p),{key:1,onClick:t=>A(e.id,`author`)},{default:o(()=>[...u[2]||=[d(`Забрать роль автора`,-1)]]),_:1},8,[`onClick`])):(a(),s(c(p),{key:0,onClick:t=>k(e.id,`author`)},{default:o(()=>[...u[1]||=[d(`Сделать автором`,-1)]]),_:1},8,[`onClick`])),e.roles?.includes(`organizer`)?(a(),s(c(p),{key:3,onClick:t=>A(e.id,`organizer`)},{default:o(()=>[...u[4]||=[d(`Забрать роль организатора`,-1)]]),_:1},8,[`onClick`])):(a(),s(c(p),{key:2,onClick:t=>k(e.id,`organizer`)},{default:o(()=>[...u[3]||=[d(`Сделать организатором`,-1)]]),_:1},8,[`onClick`]))]),_:2},1024)]))),128))])]),r(b,{active:`users`})],64))}}),[[`__scopeId`,`data-v-7c14036f`]]),D=e({__name:`UsersView`,setup(e){return(e,t)=>(a(),s(E))}});export{D as default};
@@ -1,4 +1,4 @@
import{E as e,k as t}from"./vue-router-CyfP71JJ.js";import{o as n}from"./HeaderMenu-CngRCkyf.js";var r=e({name:`Remove`,render(){return t(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},t(`line`,{x1:`400`,y1:`256`,x2:`112`,y2:`256`,style:` import{E as e,k as t}from"./vue-router-CyfP71JJ.js";import{o as n}from"./HeaderMenu-BCz0PYuC.js";var r=e({name:`Remove`,render(){return t(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},t(`line`,{x1:`400`,y1:`256`,x2:`112`,y2:`256`,style:`
fill: none; fill: none;
stroke: currentColor; stroke: currentColor;
stroke-linecap: round; stroke-linecap: round;
@@ -1 +1 @@
import{a as e,o as t}from"./HeaderMenu-CngRCkyf.js";function n(){let t=e();return r(t.refreshTokenAction,t.getToken)}function r(e,n){async function r(r,i){let a={},o=n();o&&(a.Authorization=`Bearer ${o}`);let s=await fetch(`${t()}/${r}`,{...i,headers:{...a,...i.headers}});if(s.status==401){await e();let o=n();o&&(a.Authorization=`Bearer ${o}`),s=await fetch(`${t()}/${r}`,{...i,headers:{...a,...i.headers}})}return s}async function o(e){let t=await r(`api/scenarios/${e}/archive`,{method:`GET`});if(!t.ok)throw Error(await a(t));return{blob:await t.blob(),filename:i(t.headers.get(`Content-Disposition`))||`scenario-${e}.zip`}}async function s(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:o,uploadScenarioArchive:s}}function i(e){if(!e)return``;let t=e.match(/filename="?([^";]+)"?/i);return(t?t[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{a as e,o as t}from"./HeaderMenu-BCz0PYuC.js";function n(){let t=e();return r(t.refreshTokenAction,t.getToken)}function r(e,n){async function r(r,i){let a={},o=n();o&&(a.Authorization=`Bearer ${o}`);let s=await fetch(`${t()}/${r}`,{...i,headers:{...a,...i.headers}});if(s.status==401){await e();let o=n();o&&(a.Authorization=`Bearer ${o}`),s=await fetch(`${t()}/${r}`,{...i,headers:{...a,...i.headers}})}return s}async function o(e){let t=await r(`api/scenarios/${e}/archive`,{method:`GET`});if(!t.ok)throw Error(await a(t));return{blob:await t.blob(),filename:i(t.headers.get(`Content-Disposition`))||`scenario-${e}.zip`}}async function s(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:o,uploadScenarioArchive:s}}function i(e){if(!e)return``;let t=e.match(/filename="?([^";]+)"?/i);return(t?t[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};
+1
View File
@@ -0,0 +1 @@
function e(e){return typeof e==`string`?e.endsWith(`px`)?Number(e.slice(0,e.length-2)):Number(e):e}function t(e){if(e!=null)return typeof e==`number`?`${e}px`:e.endsWith(`px`)?e:`${e}px`}function n(e,t){let n=e.trim().split(/\s+/g),r={top:n[0]};switch(n.length){case 1:r.right=n[0],r.bottom=n[0],r.left=n[0];break;case 2:r.right=n[1],r.left=n[1],r.bottom=n[0];break;case 3:r.right=n[1],r.bottom=n[2],r.left=n[1];break;case 4:r.right=n[1],r.bottom=n[2],r.left=n[3];break;default:throw Error(`[seemly/getMargin]:`+e+` is not a valid value.`)}return t===void 0?r:r[t]}function r(e,t){let[n,r]=e.split(` `);return t?t===`row`?n:r:{row:n,col:r||n}}export{t as i,r as n,n as r,e as t};
+1
View File
@@ -0,0 +1 @@
import{G as e,a as t}from"./light-CPiNeYrP.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
View File
@@ -1 +0,0 @@
import{c as e,q as t}from"./light-3nK60gWS.js";var{cubicBezierEaseInOut:n}=e;function r({name:e=`fade-in`,enterDuration:r=`0.2s`,leaveDuration:i=`0.2s`,enterCubicBezier:a=n,leaveCubicBezier:o=n}={}){return[t(`&.${e}-transition-enter-active`,{transition:`all ${r} ${a}!important`}),t(`&.${e}-transition-leave-active`,{transition:`all ${i} ${o}!important`}),t(`&.${e}-transition-enter-from, &.${e}-transition-leave-to`,{opacity:0}),t(`&.${e}-transition-leave-from, &.${e}-transition-enter-to`,{opacity:1})]}export{r as t};
+1
View File
@@ -0,0 +1 @@
import{f as e,p as t,w as n}from"./vue-router-CyfP71JJ.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(n(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===e&&a)return;o.push(i)}}}),o}export{r as t};
+1
View File
@@ -0,0 +1 @@
:root{--vt-c-white:#fff;--vt-c-white-soft:#f8f8f8;--vt-c-white-mute:#f2f2f2;--vt-c-black:#181818;--vt-c-black-soft:#222;--vt-c-black-mute:#282828;--vt-c-indigo:#2c3e50;--vt-c-divider-light-1:#3c3c3c4a;--vt-c-divider-light-2:#3c3c3c1f;--vt-c-divider-dark-1:#545454a6;--vt-c-divider-dark-2:#5454547a;--vt-c-text-light-1:var(--vt-c-indigo);--vt-c-text-light-2:#3c3c3ca8;--vt-c-text-dark-1:var(--vt-c-white);--vt-c-text-dark-2:#ebebeba3;--main-color:#22323c;--second-color:#614a16;--main-back-color:#f0f0f0;--main-back-item-color:#fefefe;--medal-silver:#c8ccd4;--medal-bronze:#cd9a6a;--color-background:var(--vt-c-white);--color-background-soft:var(--vt-c-white-soft);--color-background-mute:var(--vt-c-white-mute);--color-border:var(--vt-c-divider-light-2);--color-border-hover:var(--vt-c-divider-light-1);--color-heading:var(--vt-c-text-light-1);--color-text:var(--vt-c-text-light-1);--section-gap:160px}@media (prefers-color-scheme:dark){:root{--color-background:var(--vt-c-black);--color-background-soft:var(--vt-c-black-soft);--color-background-mute:var(--vt-c-black-mute);--color-border:var(--vt-c-divider-dark-2);--color-border-hover:var(--vt-c-divider-dark-1);--color-heading:var(--vt-c-text-dark-1);--color-text:var(--vt-c-text-dark-2)}}*,:before,:after{box-sizing:border-box;margin:0;font-weight:400}body{background:var(--color-background);color:#eee;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;scrollbar-width:none;background-color:#111;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;line-height:1.6;transition:color .5s,background-color .5s;overflow:hidden}@font-face{font-family:font_old_typer;src:url(/assets/a_OldTyper-BsgRTrmO.ttf)}.height80{height:80vh}.content-block{margin-top:70px}.center-block-custom{scrollbar-width:none;height:calc(100vh - 150px);margin-top:70px;overflow-y:auto}.center-block-custom::-webkit-scrollbar{display:none}.width700,.width1200{margin:0 auto;padding:10px}.display-table{flex-flow:wrap;justify-content:center;display:flex}@media (width>=1024px){.center-block-custom{height:calc(100dvh - 70px);margin:70px auto 0}.width700{width:700px;margin:0 auto;padding:20px}.width1200{width:1200px;margin:0 auto;padding:20px}.center-middle-block-custom{place-items:center;display:grid}}
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
:root{--vt-c-white:#fff;--vt-c-white-soft:#f8f8f8;--vt-c-white-mute:#f2f2f2;--vt-c-black:#181818;--vt-c-black-soft:#222;--vt-c-black-mute:#282828;--vt-c-indigo:#2c3e50;--vt-c-divider-light-1:#3c3c3c4a;--vt-c-divider-light-2:#3c3c3c1f;--vt-c-divider-dark-1:#545454a6;--vt-c-divider-dark-2:#5454547a;--vt-c-text-light-1:var(--vt-c-indigo);--vt-c-text-light-2:#3c3c3ca8;--vt-c-text-dark-1:var(--vt-c-white);--vt-c-text-dark-2:#ebebeba3;--main-color:#22323c;--second-color:#614a16;--main-back-color:#f0f0f0;--main-back-item-color:#fefefe;--color-background:var(--vt-c-white);--color-background-soft:var(--vt-c-white-soft);--color-background-mute:var(--vt-c-white-mute);--color-border:var(--vt-c-divider-light-2);--color-border-hover:var(--vt-c-divider-light-1);--color-heading:var(--vt-c-text-light-1);--color-text:var(--vt-c-text-light-1);--section-gap:160px}@media (prefers-color-scheme:dark){:root{--color-background:var(--vt-c-black);--color-background-soft:var(--vt-c-black-soft);--color-background-mute:var(--vt-c-black-mute);--color-border:var(--vt-c-divider-dark-2);--color-border-hover:var(--vt-c-divider-dark-1);--color-heading:var(--vt-c-text-dark-1);--color-text:var(--vt-c-text-dark-2)}}*,:before,:after{box-sizing:border-box;margin:0;font-weight:400}body{background:var(--color-background);color:#eee;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;scrollbar-width:none;background-color:#111;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;line-height:1.6;transition:color .5s,background-color .5s;overflow:hidden}@font-face{font-family:font_old_typer;src:url(/assets/a_OldTyper-BsgRTrmO.ttf)}.height80{height:80vh}.content-block{margin-top:70px}.center-block-custom{scrollbar-width:none;height:calc(100vh - 150px);margin-top:70px;overflow-y:auto}.center-block-custom::-webkit-scrollbar{display:none}.width700,.width1200{margin:0 auto;padding:10px}.display-table{flex-flow:wrap;justify-content:center;display:flex}@media (width>=1024px){.center-block-custom{height:calc(100dvh - 70px);margin:70px auto 0}.width700{width:700px;margin:0 auto;padding:20px}.width1200{width:1200px;margin:0 auto;padding:20px}.center-middle-block-custom{place-items:center;display:grid}}
@@ -1 +1 @@
import{E as e,I as t,R as n,Y as r,k as i,p as a,rt as o}from"./vue-router-CyfP71JJ.js";import{E as s,T as c,w as l}from"./Input-CYnJzkGX.js";import{V as u}from"./index-zAAv4RkK.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=e({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(e){let i=u(),a=o(null),f=o(null),h=!1,g=!1,v=typeof document>`u`?null:document.activeElement;function y(){return _[_.length-1]===i}function b(t){var n;t.code===`Escape`&&y()&&((n=e.onEsc)==null||n.call(e,t))}n(()=>{r(()=>e.active,e=>{e?(C(),c(`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(s(e)))return;T(`first`)}}function S(){let e=a.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 t;if(!e.disabled){if(_.push(i),e.autoFocus){let{initialFocusTo:n}=e;n===void 0?T(`first`):(t=d(n))==null||t.focus({preventScroll:!0})}h=!0,document.addEventListener(`focus`,x,!0)}}function w(){var t;if(e.disabled||(document.removeEventListener(`focus`,x,!0),_=_.filter(e=>e!==i),y()))return;let{finalFocusTo:n}=e;n===void 0?e.returnFocusOnDeactivated&&v instanceof HTMLElement&&(g=!0,v.focus({preventScroll:!0}),g=!1):(t=d(n))==null||t.focus({preventScroll:!0})}function T(t){if(y()&&e.active){let e=a.value,n=f.value;if(e!==null&&n!==null){let r=S();if(r==null||r===n){g=!0,e.focus({preventScroll:!0}),g=!1;return}g=!0;let i=t===`first`?p(r):m(r);g=!1,i||(g=!0,e.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===a.value?T(`last`):T(`first`))}return{focusableStartRef:a,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 i(a,null,[i(`div`,{"aria-hidden":`true`,tabindex:t?`0`:`-1`,ref:`focusableStartRef`,style:n,onFocus:this.handleStartFocus}),e(),i(`div`,{"aria-hidden":`true`,style:n,ref:`focusableEndRef`,tabindex:t?`0`:`-1`,onFocus:this.handleEndFocus})])}});function y(e,t=[],n){let r={};return t.forEach(t=>{r[t]=e[t]}),Object.assign(r,n)}export{v as n,y as t}; import{E as e,I as t,R as n,Y as r,k as i,p as a,rt as o}from"./vue-router-CyfP71JJ.js";import{E as s,T as c,w as l}from"./Input-DNhRbQfG.js";import{q as u}from"./index-CqdSAiqM.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=e({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(e){let i=u(),a=o(null),f=o(null),h=!1,g=!1,v=typeof document>`u`?null:document.activeElement;function y(){return _[_.length-1]===i}function b(t){var n;t.code===`Escape`&&y()&&((n=e.onEsc)==null||n.call(e,t))}n(()=>{r(()=>e.active,e=>{e?(C(),c(`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(s(e)))return;T(`first`)}}function S(){let e=a.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 t;if(!e.disabled){if(_.push(i),e.autoFocus){let{initialFocusTo:n}=e;n===void 0?T(`first`):(t=d(n))==null||t.focus({preventScroll:!0})}h=!0,document.addEventListener(`focus`,x,!0)}}function w(){var t;if(e.disabled||(document.removeEventListener(`focus`,x,!0),_=_.filter(e=>e!==i),y()))return;let{finalFocusTo:n}=e;n===void 0?e.returnFocusOnDeactivated&&v instanceof HTMLElement&&(g=!0,v.focus({preventScroll:!0}),g=!1):(t=d(n))==null||t.focus({preventScroll:!0})}function T(t){if(y()&&e.active){let e=a.value,n=f.value;if(e!==null&&n!==null){let r=S();if(r==null||r===n){g=!0,e.focus({preventScroll:!0}),g=!1;return}g=!0;let i=t===`first`?p(r):m(r);g=!1,i||(g=!0,e.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===a.value?T(`last`):T(`first`))}return{focusableStartRef:a,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 i(a,null,[i(`div`,{"aria-hidden":`true`,tabindex:t?`0`:`-1`,ref:`focusableStartRef`,style:n,onFocus:this.handleStartFocus}),e(),i(`div`,{"aria-hidden":`true`,style:n,ref:`focusableEndRef`,tabindex:t?`0`:`-1`,onFocus:this.handleEndFocus})])}});function y(e,t=[],n){let r={};return t.forEach(t=>{r[t]=e[t]}),Object.assign(r,n)}export{v as n,y as t};
-75
View File
File diff suppressed because one or more lines are too long
+20
View File
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
import{f as e,j as t,p as n}from"./vue-router-CyfP71JJ.js";function r(i){return i.some(i=>t(i)?!(i.type===e||i.type===n&&!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
View File
@@ -1 +0,0 @@
import{f as e,j as t,p as n}from"./vue-router-CyfP71JJ.js";function r(e){return typeof e==`string`?e.endsWith(`px`)?Number(e.slice(0,e.length-2)):Number(e):e}function i(e){if(e!=null)return typeof e==`number`?`${e}px`:e.endsWith(`px`)?e:`${e}px`}function a(e,t){let n=e.trim().split(/\s+/g),r={top:n[0]};switch(n.length){case 1:r.right=n[0],r.bottom=n[0],r.left=n[0];break;case 2:r.right=n[1],r.left=n[1],r.bottom=n[0];break;case 3:r.right=n[1],r.bottom=n[2],r.left=n[1];break;case 4:r.right=n[1],r.bottom=n[2],r.left=n[3];break;default:throw Error(`[seemly/getMargin]:`+e+` is not a valid value.`)}return t===void 0?r:r[t]}function o(e,t){let[n,r]=e.split(` `);return t?t===`row`?n:r:{row:n,col:r||n}}function s(r){return r.some(r=>t(r)?!(r.type===e||r.type===n&&!s(r.children)):!0)?r:null}function c(e,t){return e&&s(e())||t()}function l(e,t,n){return e&&s(e(t))||n(t)}function u(e,t){return t(e&&s(e())||null)}function d(e){return!(e&&s(e()))}export{u as a,a as c,l as i,i as l,d as n,r as o,c as r,o as s,s as t};
@@ -1,4 +1,4 @@
import{E as e,k as t,v as n}from"./vue-router-CyfP71JJ.js";import{$ as r,J as i,R as a,Z as o,o as s,z as c}from"./light-3nK60gWS.js";import{t as l}from"./use-compitable-Dm6CEJAS.js";import{r as u}from"./index-zAAv4RkK.js";var d=i(`text`,` import{E as e,k as t,v as n}from"./vue-router-CyfP71JJ.js";import{K as r,M as i,N as a,Y as o,Z as s,r as c}from"./light-CPiNeYrP.js";import{t as l}from"./use-compitable-Dm6CEJAS.js";import{r as u}from"./index-CqdSAiqM.js";var d=r(`text`,`
transition: color .3s var(--n-bezier); transition: color .3s var(--n-bezier);
color: var(--n-text-color); color: var(--n-text-color);
`,[o(`strong`,` `,[o(`strong`,`
@@ -18,4 +18,4 @@ import{E as e,k as t,v as n}from"./vue-router-CyfP71JJ.js";import{$ as r,J as i,
color: var(--n-code-text-color); color: var(--n-code-text-color);
background-color: var(--n-code-color); background-color: var(--n-code-color);
border: var(--n-code-border); border: var(--n-code-border);
`)]),f=e({name:`Text`,props:Object.assign(Object.assign({},s.props),{code:Boolean,type:{type:String,default:`default`},delete:Boolean,strong:Boolean,italic:Boolean,underline:Boolean,depth:[String,Number],tag:String,as:{type:String,validator:()=>!0,default:void 0}}),setup(e){let{mergedClsPrefixRef:t,inlineThemeDisabled:i}=c(e),o=s(`Typography`,`-text`,d,u,e,t),f=n(()=>{let{depth:t,type:n}=e,i=n==="default"?t===void 0?`textColor`:`textColor${t}Depth`:r(`textColor`,n),{common:{fontWeightStrong:a,fontFamilyMono:s,cubicBezierEaseInOut:c},self:{codeTextColor:l,codeBorderRadius:u,codeColor:d,codeBorder:f,[i]:p}}=o.value;return{"--n-bezier":c,"--n-text-color":p,"--n-font-weight-strong":a,"--n-font-famliy-mono":s,"--n-code-border-radius":u,"--n-code-text-color":l,"--n-code-color":d,"--n-code-border":f}}),p=i?a(`text`,n(()=>`${e.type[0]}${e.depth||``}`),f,e):void 0;return{mergedClsPrefix:t,compitableTag:l(e,[`as`,`tag`]),cssVars:i?void 0:f,themeClass:p?.themeClass,onRender:p?.onRender}},render(){var e,n;let{mergedClsPrefix:r}=this;(e=this.onRender)==null||e.call(this);let i=[`${r}-text`,this.themeClass,{[`${r}-text--code`]:this.code,[`${r}-text--delete`]:this.delete,[`${r}-text--strong`]:this.strong,[`${r}-text--italic`]:this.italic,[`${r}-text--underline`]:this.underline}],a=(n=this.$slots).default?.call(n);return this.code?t(`code`,{class:i,style:this.cssVars},this.delete?t(`del`,null,a):a):this.delete?t(`del`,{class:i,style:this.cssVars},a):t(this.compitableTag||`span`,{class:i,style:this.cssVars},a)}});export{f as t}; `)]),f=e({name:`Text`,props:Object.assign(Object.assign({},c.props),{code:Boolean,type:{type:String,default:`default`},delete:Boolean,strong:Boolean,italic:Boolean,underline:Boolean,depth:[String,Number],tag:String,as:{type:String,validator:()=>!0,default:void 0}}),setup(e){let{mergedClsPrefixRef:t,inlineThemeDisabled:r}=a(e),o=c(`Typography`,`-text`,d,u,e,t),f=n(()=>{let{depth:t,type:n}=e,r=n==="default"?t===void 0?`textColor`:`textColor${t}Depth`:s(`textColor`,n),{common:{fontWeightStrong:i,fontFamilyMono:a,cubicBezierEaseInOut:c},self:{codeTextColor:l,codeBorderRadius:u,codeColor:d,codeBorder:f,[r]:p}}=o.value;return{"--n-bezier":c,"--n-text-color":p,"--n-font-weight-strong":i,"--n-font-famliy-mono":a,"--n-code-border-radius":u,"--n-code-text-color":l,"--n-code-color":d,"--n-code-border":f}}),p=r?i(`text`,n(()=>`${e.type[0]}${e.depth||``}`),f,e):void 0;return{mergedClsPrefix:t,compitableTag:l(e,[`as`,`tag`]),cssVars:r?void 0:f,themeClass:p?.themeClass,onRender:p?.onRender}},render(){var e,n;let{mergedClsPrefix:r}=this;(e=this.onRender)==null||e.call(this);let i=[`${r}-text`,this.themeClass,{[`${r}-text--code`]:this.code,[`${r}-text--delete`]:this.delete,[`${r}-text--strong`]:this.strong,[`${r}-text--italic`]:this.italic,[`${r}-text--underline`]:this.underline}],a=(n=this.$slots).default?.call(n);return this.code?t(`code`,{class:i,style:this.cssVars},this.delete?t(`del`,null,a):a):this.delete?t(`del`,{class:i,style:this.cssVars},a):t(this.compitableTag||`span`,{class:i,style:this.cssVars},a)}});export{f as t};
-1
View File
@@ -1 +0,0 @@
import{A as e}from"./vue-router-CyfP71JJ.js";import{n as t}from"./warn-Dp4mLwFL.js";import{d as n}from"./index-zAAv4RkK.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};
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
@@ -1 +0,0 @@
function e(e){return e}function t(e,t){console.error(`[naive/${e}]: ${t}`)}function n(e,t,n){console.error(`[naive/${e}]: ${t}`,n)}function r(e,t){throw Error(`[naive/${e}]: ${t}`)}export{e as i,r as n,t as r,n as t};
+3 -4
View File
@@ -5,11 +5,10 @@
<link rel="icon" href="/favicon.ico" /> <link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Вечерний детектив</title> <title>Вечерний детектив</title>
<script type="module" crossorigin src="/assets/index-zAAv4RkK.js"></script> <script type="module" crossorigin src="/assets/index-CqdSAiqM.js"></script>
<link rel="modulepreload" crossorigin href="/assets/vue-router-CyfP71JJ.js"> <link rel="modulepreload" crossorigin href="/assets/vue-router-CyfP71JJ.js">
<link rel="modulepreload" crossorigin href="/assets/warn-Dp4mLwFL.js"> <link rel="modulepreload" crossorigin href="/assets/light-CPiNeYrP.js">
<link rel="modulepreload" crossorigin href="/assets/light-3nK60gWS.js"> <link rel="stylesheet" crossorigin href="/assets/index-C8rRgtVW.css">
<link rel="stylesheet" crossorigin href="/assets/index-ytNBpvvw.css">
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>
+41
View File
@@ -470,6 +470,16 @@ service EveningDetectiveServer {
}; };
} }
rpc GetGameResults(GetGameResultsReq) returns (GetGameResultsRsp) {
option (google.api.http) = {
get: "/api/games/{gameId}/results"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags : "Игры";
summary: "Получить итоговую таблицу игры (после завершения)";
};
}
rpc UpdateGame(UpdateGameReq) returns (UpdateGameRsp) { rpc UpdateGame(UpdateGameReq) returns (UpdateGameRsp) {
option (google.api.http) = { option (google.api.http) = {
put : "/api/games/{id}" put : "/api/games/{id}"
@@ -1115,6 +1125,37 @@ message GetGameAnswersRsp {
repeated TeamAnswers teams = 3; repeated TeamAnswers teams = 3;
} }
message GetGameResultsReq {
int32 gameId = 1;
}
// Вопрос в шапке итоговой таблицы: правильный ответ (поле answer сообщения
// Question) командам/таблице не передаётся — он виден только в панели оценки.
message ResultsQuestion {
string code = 1;
string text = 2;
}
// Строка итоговой таблицы: команда, баллы по вопросам, сумма и место.
message TeamResult {
Team team = 1;
repeated AnswerScore answers = 2;
// Сумма баллов по всем вопросам сценария (неоценённые считаются как 0)
int32 total_score = 3;
// Место в итоговой таблице: команды с одинаковой суммой баллов и
// одинаковым числом ходов занимают одно место (следующее пропускается)
int32 place = 4;
// Количество ходов команды (дублирует team.actions_count для удобства
// таблицы; участвует в тай-брейке при равенстве суммы баллов)
int32 actions_count = 5;
}
message GetGameResultsRsp {
string error = 1;
repeated ResultsQuestion questions = 2;
repeated TeamResult teams = 3;
}
message UpdateGameReq { message UpdateGameReq {
int32 id = 1; int32 id = 1;
string name = 2; string name = 2;
@@ -466,6 +466,37 @@ export type GetGameAnswersRsp = {
teams: TeamAnswers[] | undefined; teams: TeamAnswers[] | undefined;
}; };
export type GetGameResultsReq = {
gameId: number | undefined;
};
// Вопрос в шапке итоговой таблицы: правильный ответ (поле answer сообщения
// Question) командам/таблице не передаётся — он виден только в панели оценки.
export type ResultsQuestion = {
code: string | undefined;
text: string | undefined;
};
// Строка итоговой таблицы: команда, баллы по вопросам, сумма и место.
export type TeamResult = {
team: Team | undefined;
answers: AnswerScore[] | undefined;
// Сумма баллов по всем вопросам сценария (неоценённые считаются как 0)
totalScore: number | undefined;
// Место в итоговой таблице: команды с одинаковой суммой баллов и
// одинаковым числом ходов занимают одно место (следующее пропускается)
place: number | undefined;
// Количество ходов команды (дублирует team.actions_count для удобства
// таблицы; участвует в тай-брейке при равенстве суммы баллов)
actionsCount: number | undefined;
};
export type GetGameResultsRsp = {
error: string | undefined;
questions: ResultsQuestion[] | undefined;
teams: TeamResult[] | undefined;
};
export type UpdateGameReq = { export type UpdateGameReq = {
id: number | undefined; id: number | undefined;
name: string | undefined; name: string | undefined;
@@ -664,6 +695,7 @@ export interface EveningDetectiveServer {
GetGames(request: GetGamesReq): Promise<GetGamesRsp>; GetGames(request: GetGamesReq): Promise<GetGamesRsp>;
GetGame(request: GetGameReq): Promise<GetGameRsp>; GetGame(request: GetGameReq): Promise<GetGameRsp>;
GetGameAnswers(request: GetGameAnswersReq): Promise<GetGameAnswersRsp>; GetGameAnswers(request: GetGameAnswersReq): Promise<GetGameAnswersRsp>;
GetGameResults(request: GetGameResultsReq): Promise<GetGameResultsRsp>;
UpdateGame(request: UpdateGameReq): Promise<UpdateGameRsp>; UpdateGame(request: UpdateGameReq): Promise<UpdateGameRsp>;
StartGame(request: StartGameReq): Promise<StartGameRsp>; StartGame(request: StartGameReq): Promise<StartGameRsp>;
PauseGame(request: PauseGameReq): Promise<PauseGameRsp>; PauseGame(request: PauseGameReq): Promise<PauseGameRsp>;
@@ -1450,6 +1482,26 @@ export function createEveningDetectiveServerClient(
method: "GetGameAnswers", method: "GetGameAnswers",
}) as Promise<GetGameAnswersRsp>; }) as Promise<GetGameAnswersRsp>;
}, },
GetGameResults(request) { // eslint-disable-line @typescript-eslint/no-unused-vars
if (!request.gameId) {
throw new Error("missing required field request.gameId");
}
const path = `api/games/${request.gameId}/results`; // eslint-disable-line quotes
const body = null;
const queryParams: string[] = [];
let uri = path;
if (queryParams.length > 0) {
uri += `?${queryParams.join("&")}`
}
return handler({
path: uri,
method: "GET",
body,
}, {
service: "EveningDetectiveServer",
method: "GetGameResults",
}) as Promise<GetGameResultsRsp>;
},
UpdateGame(request) { // eslint-disable-line @typescript-eslint/no-unused-vars UpdateGame(request) { // eslint-disable-line @typescript-eslint/no-unused-vars
if (!request.id) { if (!request.id) {
throw new Error("missing required field request.id"); throw new Error("missing required field request.id");
+5
View File
@@ -21,6 +21,11 @@
--second-color: rgb(97 74 22); --second-color: rgb(97 74 22);
--main-back-color: rgb(240 240 240 / 100%); --main-back-color: rgb(240 240 240 / 100%);
--main-back-item-color: rgb(254 254 254 / 100%); --main-back-item-color: rgb(254 254 254 / 100%);
/* Цвета медалей итоговой таблицы (пьедестал победителя).
Первое место — канонический gold; серебро/бронза палитрой не покрываются. */
--medal-silver: #c8ccd4;
--medal-bronze: #cd9a6a;
} }
/* semantic color variables for this project */ /* semantic color variables for this project */
+11 -1
View File
@@ -1,5 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import { Flag, Pause, Play, Reset, Settings } from '@vicons/carbon' import { Flag, Pause, Play, Reset, Settings, Trophy } from '@vicons/carbon'
import { Icon } from '@vicons/utils' import { Icon } from '@vicons/utils'
import { NButton, NTag } from 'naive-ui' import { NButton, NTag } from 'naive-ui'
import { NCard, NFlex, NInput, NInputNumber, NModal, NQrCode, NSpace, NText } from 'naive-ui' import { NCard, NFlex, NInput, NInputNumber, NModal, NQrCode, NSpace, NText } from 'naive-ui'
@@ -94,6 +94,10 @@ async function toTeamStory(id: number, password: string, newTab: boolean = false
router.push(uri) router.push(uri)
} }
function toResults() {
router.push('/games/' + gameId + '/results')
}
function openSettings() { function openSettings() {
settingsDraft.value = { settingsDraft.value = {
name: game.value.name || '', name: game.value.name || '',
@@ -408,6 +412,12 @@ useSimplePolling(() => {
<n-flex justify="end"> <n-flex justify="end">
<n-button quaternary @click="openQR(url, 'Админка')"> QR </n-button> <n-button quaternary @click="openQR(url, 'Админка')"> QR </n-button>
<n-button quaternary @click="openAnswersModal()"> Ответы команд </n-button> <n-button quaternary @click="openAnswersModal()"> Ответы команд </n-button>
<n-button v-if="game.status == 'finish'" quaternary @click="toResults()">
<Icon class="settings-icon">
<Trophy />
</Icon>
Итоги
</n-button>
<n-button quaternary @click="openSettings()"> <n-button quaternary @click="openSettings()">
<Icon class="settings-icon"> <Icon class="settings-icon">
<Settings /> <Settings />
+393
View File
@@ -0,0 +1,393 @@
<script setup lang="ts">
import { TrophyFilled } from '@vicons/carbon'
import { Icon } from '@vicons/utils'
import { NButton, NFlex } from 'naive-ui'
import { useMessage } from 'naive-ui'
import { computed, ref } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import { getAuthClient } from '@/api/auth_client'
import type { ResultsQuestion, TeamResult } from '@/api/generated/crabs/evening_detective_server'
import HeaderMenu from '@/components/HeaderMenu.vue'
import { useAuthStore } from '@/stores/auth'
const client = getAuthClient()
const authStore = useAuthStore()
const message = useMessage()
const route = useRoute()
const router = useRouter()
const gameId = route.params.id
// Запрос прошёл успешно (ответ с таблицей или без данных)
const loaded = ref(false)
// Сервер вернул ошибку или запрос упал
const loadFailed = ref(false)
// Текст ошибки для инлайн-блока (серверный или общий)
const loadError = ref('')
// Ошибка после ретрая авторизации — сессия протухла, нужен повторный вход
const sessionIssue = ref(false)
// Доступ без входа в систему
const needLogin = ref(false)
const questions = ref<ResultsQuestion[]>([])
const teams = ref<TeamResult[]>([])
const gameName = ref('')
async function loadGameResults() {
loaded.value = false
loadFailed.value = false
needLogin.value = false
sessionIssue.value = false
try {
const res = await client.GetGameResults({ gameId: Number(gameId) })
if (res.error != '') {
// res.error может отсутствовать, если сервер ответил не-Rsp-ошибкой (например, 403)
loadError.value = res.error || 'Не удалось загрузить результаты'
message.error(loadError.value)
loadFailed.value = true
return
}
questions.value = res.questions || []
teams.value = res.teams || []
loaded.value = true
} catch {
// Генератор клиента бросает исключение на 401; refresh у анонима не даёт токен
if (!authStore.isAuthenticated) {
needLogin.value = true
} else {
// isAuthenticated остаётся true, но запросы больше не пройдут — нужен повторный вход
loadError.value = 'Не удалось загрузить результаты'
message.error(loadError.value)
sessionIssue.value = true
loadFailed.value = true
}
}
}
loadGameResults()
// Название игры для заголовка — best-effort: GetGame доступен организатору,
// при ошибке/отсутствии доступа молча пропускаем (заголовок без названия допустим)
async function loadGameName() {
try {
const res = await client.GetGame({ id: Number(gameId) })
gameName.value = res.game?.name || ''
} catch {
// молча: название не критично
}
}
loadGameName()
// Балл команды за вопрос: отсутствующий ответ/балл — «—» (честный 0 не теряем)
function scoreOf(team: TeamResult, questionCode: string | undefined): number | string {
const answer = (team.answers || []).find((item) => item.questionCode == questionCode)
return answer?.score ?? '—'
}
// Победители — все команды с минимальным местом (при ничьей сервер ставит
// одинаковое место и пропускает следующее, поэтому берём именно minPlace)
const winners = computed<TeamResult[]>(() => {
const places = teams.value
.map((team) => team.place)
.filter((place): place is number => place != null)
if (places.length == 0) {
return []
}
const minPlace = Math.min(...places)
return teams.value.filter((team) => team.place === minPlace)
})
const winnerLabel = computed(() => (winners.value.length > 1 ? 'Победители' : 'Победитель'))
// Имена через « и »; при 3+ — «A, B и C»
const winnersNames = computed(() => {
const names = winners.value
.map((team) => team.team?.name || '')
.filter((name) => name != '')
if (names.length <= 1) {
return names[0] || ''
}
if (names.length == 2) {
return names[0] + ' и ' + names[1]
}
return names.slice(0, -1).join(', ') + ' и ' + names[names.length - 1]
})
function goLogin() {
router.push('/login')
}
// Токен протух и refresh не удался: isAuthenticated остаётся true, но запросы
// больше не пройдут — предлагаем выйти и войти заново
function goLoginAgain() {
authStore.logout()
router.push('/login')
}
// Назад по истории, при прямой ссылке/новой вкладке — в список игр
function goBack() {
if (window.history.state?.back) {
router.back()
return
}
router.push('/games')
}
</script>
<template>
<div class="center-block-custom">
<div class="width1200">
<div class="page-header">
<n-flex justify="space-between" align="center">
<div>
<div class="page-title">Итоги игры</div>
<div v-if="gameName" class="game-name">{{ gameName }}</div>
</div>
<n-button quaternary @click="goBack">Назад</n-button>
</n-flex>
</div>
<div v-if="loaded && winners.length > 0" class="winner-block">
<span class="winner-cup" aria-hidden="true">
<Icon size="56">
<TrophyFilled />
</Icon>
</span>
<div class="winner-label">{{ winnerLabel }}</div>
<div class="winner-names">{{ winnersNames }}</div>
<div class="winner-stats">
Баллы: {{ winners[0]?.totalScore ?? 0 }} · Поездки: {{ winners[0]?.actionsCount ?? 0 }}
</div>
<div class="winner-congrats">Поздравляем!</div>
</div>
<div v-if="needLogin" class="info-block">
<p class="info-title">Для просмотра итогов игры нужно войти в систему</p>
<n-flex justify="end">
<n-button @click="goLogin">Войти</n-button>
</n-flex>
</div>
<div v-else-if="loadFailed" class="info-block">
<p class="info-title">{{ loadError }}</p>
<template v-if="sessionIssue">
<p class="info-subtitle">Сессия могла истечь — попробуйте войти заново</p>
<n-flex justify="end">
<n-button @click="goLoginAgain">Войти заново</n-button>
</n-flex>
</template>
</div>
<div v-else-if="loaded && teams.length == 0" class="info-block">
<p class="info-title">Результаты пока не готовы</p>
</div>
<div v-else-if="loaded" class="table-scroll">
<table class="results-table">
<thead>
<tr>
<th class="place-col">Место</th>
<th class="team-col">Команда</th>
<th v-for="question in questions" :key="question.code" class="question-col" :title="question.text">
<div class="question-text">{{ question.text }}</div>
</th>
<th class="number-col">Сумма</th>
<th class="number-col">Поездки</th>
</tr>
</thead>
<tbody>
<tr v-for="team in teams" :key="team.team?.id">
<td class="place-col">
<span
v-if="team.place != null && team.place >= 1 && team.place <= 3"
class="place-badge"
:class="'place-' + team.place"
>
{{ team.place }}
</span>
<span v-else class="place-plain">{{ team.place }}</span>
</td>
<td class="team-col">{{ team.team?.name }}</td>
<td v-for="question in questions" :key="question.code" class="number-col">
{{ scoreOf(team, question.code) }}
</td>
<td class="number-col">{{ team.totalScore }}</td>
<td class="number-col">{{ team.actionsCount }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<HeaderMenu active="games" />
</template>
<style scoped>
.game-name {
color: #aaa;
margin-top: 4px;
}
.info-block {
background-color: #222;
border-radius: 10px;
margin-top: 10px;
padding: 20px;
}
.info-subtitle {
color: #aaa;
margin: 0 0 10px;
}
.info-title {
font-size: 17px;
font-weight: 600;
margin: 0 0 10px;
}
.number-col {
text-align: center;
}
.page-header {
background-color: #222;
border-radius: 10px;
padding: 20px;
}
.page-title {
font-size: 22px;
font-weight: 600;
}
.place-1 {
color: gold;
}
.place-2 {
color: var(--medal-silver);
}
.place-3 {
color: var(--medal-bronze);
}
.place-badge {
align-items: center;
border: 1px solid;
border-radius: 50%;
display: inline-flex;
font-weight: 600;
height: 26px;
justify-content: center;
width: 26px;
}
.place-col {
text-align: center;
width: 70px;
}
.place-plain {
color: #aaa;
}
.question-col {
min-width: 120px;
}
.question-text {
max-width: 220px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.results-table {
border-collapse: collapse;
min-width: 100%;
width: 100%;
}
.results-table td,
.results-table th {
border-bottom: 1px solid rgb(255 255 255 / 10%);
padding: 10px 14px;
}
.results-table tbody tr:last-child td {
border-bottom: 0;
}
.results-table th {
color: #aaa;
font-weight: 600;
}
.results-table tbody tr:nth-child(even) {
background-color: rgb(255 255 255 / 5%);
}
.results-table td.place-col,
.results-table th.place-col {
border-right: 1px solid rgb(255 255 255 / 10%);
}
.table-scroll {
background-color: #222;
border-radius: 10px;
margin-top: 10px;
overflow-x: auto;
scrollbar-width: none;
}
.table-scroll::-webkit-scrollbar {
display: none;
}
.team-col {
min-width: 150px;
text-align: left;
white-space: normal;
}
.winner-block {
background-color: #222;
border-radius: 10px;
margin-top: 10px;
padding: 28px 20px 24px;
text-align: center;
}
.winner-congrats {
color: #aaa;
margin-top: 10px;
}
.winner-cup {
color: gold;
display: inline-block;
line-height: 0;
}
.winner-label {
color: #aaa;
font-size: 15px;
margin-top: 14px;
}
.winner-names {
color: gold;
font-size: 28px;
font-weight: 600;
margin-top: 4px;
overflow-wrap: anywhere;
}
.winner-stats {
color: #aaa;
margin-top: 8px;
}
</style>
+14
View File
@@ -1,4 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import { NButton } from 'naive-ui'
import { useMessage } from 'naive-ui' import { useMessage } from 'naive-ui'
import { ref } from 'vue' import { ref } from 'vue'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
@@ -27,6 +28,10 @@ getGames()
async function toGame(id: number) { async function toGame(id: number) {
router.push('/games/' + id) router.push('/games/' + id)
} }
function toResults(id: number) {
router.push('/games/' + id + '/results')
}
</script> </script>
<template> <template>
@@ -39,6 +44,9 @@ async function toGame(id: number) {
<div class="game-description"> <div class="game-description">
{{ game.description }} {{ game.description }}
</div> </div>
<div v-if="game.status == 'finish'" class="game-actions">
<n-button size="small" ghost @click.stop="toResults(game.id!)">Результаты</n-button>
</div>
</div> </div>
</div> </div>
</div> </div>
@@ -64,6 +72,12 @@ async function toGame(id: number) {
margin-bottom: 10px; margin-bottom: 10px;
} }
.game-actions {
display: flex;
justify-content: flex-end;
margin-top: 10px;
}
.game-description { .game-description {
color: #aaa; color: #aaa;
margin-bottom: 10px; margin-bottom: 10px;
+5
View File
@@ -38,6 +38,11 @@ const router = createRouter({
name: 'games', name: 'games',
component: () => import('../views/GamesView.vue'), component: () => import('../views/GamesView.vue'),
}, },
{
path: '/games/:id/results',
name: 'game-results',
component: () => import('../views/GameResultsView.vue'),
},
{ {
path: '/games/:id', path: '/games/:id',
name: 'game', name: 'game',
+7
View File
@@ -0,0 +1,7 @@
<script setup lang="ts">
import GameResultsPage from '@/components/GameResultsPage.vue'
</script>
<template>
<GameResultsPage />
</template>