diff --git a/backend/evening_detective_server b/backend/evening_detective_server index 8ae2c6a..a5647ec 100755 Binary files a/backend/evening_detective_server and b/backend/evening_detective_server differ diff --git a/frontend/dist/assets/Alert-CewvQG_z.js b/frontend/dist/assets/Alert-CKEVYkKu.js similarity index 97% rename from frontend/dist/assets/Alert-CewvQG_z.js rename to frontend/dist/assets/Alert-CKEVYkKu.js index f380e95..c5e8aa5 100644 --- a/frontend/dist/assets/Alert-CewvQG_z.js +++ b/frontend/dist/assets/Alert-CKEVYkKu.js @@ -1,4 +1,4 @@ -import{At as e,Nt as t,Q as n,Rt as r,U as i,W as a,Z as o,_ as s,at as c,ct as l,f as u,m as d,nt as f,ot as p,rt as m,vn as h,xt as g}from"./client-DrrW410h.js";import{s as _}from"./ui-CXICC9ah.js";import{i as v,o as y}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{F as b,J as x,K as S,P as C,Q as w,U as T,W as E,Y as D,q as O}from"./index-cNEa5D1b.js";function k(e){let{lineHeight:t,borderRadius:r,fontWeightStrong:i,baseColor:a,dividerColor:s,actionColor:c,textColor1:l,textColor2:u,closeColorHover:d,closeColorPressed:f,closeIconColor:p,closeIconColorHover:m,closeIconColorPressed:h,infoColor:g,successColor:_,warningColor:v,errorColor:y,fontSize:x}=e;return Object.assign(Object.assign({},b),{fontSize:x,lineHeight:t,titleFontWeight:i,borderRadius:r,border:`1px solid ${s}`,color:c,titleTextColor:l,iconColor:u,contentTextColor:u,closeBorderRadius:r,closeColorHover:d,closeColorPressed:f,closeIconColor:p,closeIconColorHover:m,closeIconColorPressed:h,borderInfo:`1px solid ${n(a,o(g,{alpha:.25}))}`,colorInfo:n(a,o(g,{alpha:.08})),titleTextColorInfo:l,iconColorInfo:g,contentTextColorInfo:u,closeColorHoverInfo:d,closeColorPressedInfo:f,closeIconColorInfo:p,closeIconColorHoverInfo:m,closeIconColorPressedInfo:h,borderSuccess:`1px solid ${n(a,o(_,{alpha:.25}))}`,colorSuccess:n(a,o(_,{alpha:.08})),titleTextColorSuccess:l,iconColorSuccess:_,contentTextColorSuccess:u,closeColorHoverSuccess:d,closeColorPressedSuccess:f,closeIconColorSuccess:p,closeIconColorHoverSuccess:m,closeIconColorPressedSuccess:h,borderWarning:`1px solid ${n(a,o(v,{alpha:.33}))}`,colorWarning:n(a,o(v,{alpha:.08})),titleTextColorWarning:l,iconColorWarning:v,contentTextColorWarning:u,closeColorHoverWarning:d,closeColorPressedWarning:f,closeIconColorWarning:p,closeIconColorHoverWarning:m,closeIconColorPressedWarning:h,borderError:`1px solid ${n(a,o(y,{alpha:.25}))}`,colorError:n(a,o(y,{alpha:.08})),titleTextColorError:l,iconColorError:y,contentTextColorError:u,closeColorHoverError:d,closeColorPressedError:f,closeIconColorError:p,closeIconColorHoverError:m,closeIconColorPressedError:h})}var A={name:`Alert`,common:u,self:k},j=m(`alert`,` +import{At as e,Nt as t,Q as n,Rt as r,U as i,W as a,Z as o,_ as s,at as c,ct as l,f as u,m as d,nt as f,ot as p,rt as m,vn as h,xt as g}from"./client-DrrW410h.js";import{s as _}from"./ui-BXphkCO3.js";import{i as v,o as y}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{F as b,J as x,K as S,P as C,Q as w,U as T,W as E,Y as D,q as O}from"./index-CvfVA1ID.js";function k(e){let{lineHeight:t,borderRadius:r,fontWeightStrong:i,baseColor:a,dividerColor:s,actionColor:c,textColor1:l,textColor2:u,closeColorHover:d,closeColorPressed:f,closeIconColor:p,closeIconColorHover:m,closeIconColorPressed:h,infoColor:g,successColor:_,warningColor:v,errorColor:y,fontSize:x}=e;return Object.assign(Object.assign({},b),{fontSize:x,lineHeight:t,titleFontWeight:i,borderRadius:r,border:`1px solid ${s}`,color:c,titleTextColor:l,iconColor:u,contentTextColor:u,closeBorderRadius:r,closeColorHover:d,closeColorPressed:f,closeIconColor:p,closeIconColorHover:m,closeIconColorPressed:h,borderInfo:`1px solid ${n(a,o(g,{alpha:.25}))}`,colorInfo:n(a,o(g,{alpha:.08})),titleTextColorInfo:l,iconColorInfo:g,contentTextColorInfo:u,closeColorHoverInfo:d,closeColorPressedInfo:f,closeIconColorInfo:p,closeIconColorHoverInfo:m,closeIconColorPressedInfo:h,borderSuccess:`1px solid ${n(a,o(_,{alpha:.25}))}`,colorSuccess:n(a,o(_,{alpha:.08})),titleTextColorSuccess:l,iconColorSuccess:_,contentTextColorSuccess:u,closeColorHoverSuccess:d,closeColorPressedSuccess:f,closeIconColorSuccess:p,closeIconColorHoverSuccess:m,closeIconColorPressedSuccess:h,borderWarning:`1px solid ${n(a,o(v,{alpha:.33}))}`,colorWarning:n(a,o(v,{alpha:.08})),titleTextColorWarning:l,iconColorWarning:v,contentTextColorWarning:u,closeColorHoverWarning:d,closeColorPressedWarning:f,closeIconColorWarning:p,closeIconColorHoverWarning:m,closeIconColorPressedWarning:h,borderError:`1px solid ${n(a,o(y,{alpha:.25}))}`,colorError:n(a,o(y,{alpha:.08})),titleTextColorError:l,iconColorError:y,contentTextColorError:u,closeColorHoverError:d,closeColorPressedError:f,closeIconColorError:p,closeIconColorHoverError:m,closeIconColorPressedError:h})}var A={name:`Alert`,common:u,self:k},j=m(`alert`,` line-height: var(--n-line-height); border-radius: var(--n-border-radius); position: relative; diff --git a/frontend/dist/assets/Button-BZxcJJGv.js b/frontend/dist/assets/Button-VP0HlDWp.js similarity index 99% rename from frontend/dist/assets/Button-BZxcJJGv.js rename to frontend/dist/assets/Button-VP0HlDWp.js index 74af22f..0cb9fd8 100644 --- a/frontend/dist/assets/Button-BZxcJJGv.js +++ b/frontend/dist/assets/Button-VP0HlDWp.js @@ -1,4 +1,4 @@ -import{At as e,Ft as t,Ht as n,Nt as r,Q as i,U as a,W as o,X as s,Z as c,_ as l,at as u,ct as d,g as f,h as p,m,nt as h,ot as g,rt as _,st as v,vn as y,xn as b,xt as x,zt as S}from"./client-DrrW410h.js";import{c as C,l as w,o as T,r as E}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{n as D}from"./use-form-item-CNQ45NOh.js";import{G as O,U as k,V as A,Z as j,at as M,j as N}from"./index-cNEa5D1b.js";var P=typeof document<`u`&&typeof window<`u`,{cubicBezierEaseInOut:F}=f;function I({duration:e=`.2s`,delay:t=`.1s`}={}){return[h(`&.fade-in-width-expand-transition-leave-from, &.fade-in-width-expand-transition-enter-to`,{opacity:1}),h(`&.fade-in-width-expand-transition-leave-to, &.fade-in-width-expand-transition-enter-from`,` +import{At as e,Ft as t,Ht as n,Nt as r,Q as i,U as a,W as o,X as s,Z as c,_ as l,at as u,ct as d,g as f,h as p,m,nt as h,ot as g,rt as _,st as v,vn as y,xn as b,xt as x,zt as S}from"./client-DrrW410h.js";import{c as C,l as w,o as T,r as E}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{n as D}from"./use-form-item-CNQ45NOh.js";import{G as O,U as k,V as A,Z as j,at as M,j as N}from"./index-CvfVA1ID.js";var P=typeof document<`u`&&typeof window<`u`,{cubicBezierEaseInOut:F}=f;function I({duration:e=`.2s`,delay:t=`.1s`}={}){return[h(`&.fade-in-width-expand-transition-leave-from, &.fade-in-width-expand-transition-enter-to`,{opacity:1}),h(`&.fade-in-width-expand-transition-leave-to, &.fade-in-width-expand-transition-enter-from`,` opacity: 0!important; margin-left: 0!important; margin-right: 0!important; diff --git a/frontend/dist/assets/Card-B6dtDIKO.js b/frontend/dist/assets/Card-DpsyX5Gm.js similarity index 97% rename from frontend/dist/assets/Card-B6dtDIKO.js rename to frontend/dist/assets/Card-DpsyX5Gm.js index 949ed21..cf83631 100644 --- a/frontend/dist/assets/Card-B6dtDIKO.js +++ b/frontend/dist/assets/Card-DpsyX5Gm.js @@ -1,4 +1,4 @@ -import{At as e,Nt as t,U as n,W as r,_ as i,at as a,ct as o,lt as s,m as c,nt as l,ot as u,rt as d,tt as f,ut as p,xt as m}from"./client-DrrW410h.js";import{i as h,t as g}from"./Scrollbar-BUURfLNv.js";import{s as _}from"./ui-CXICC9ah.js";import{c as v,n as y,o as b}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{A as x,W as S}from"./index-cNEa5D1b.js";var C=d(`card-content`,` +import{At as e,Nt as t,U as n,W as r,_ as i,at as a,ct as o,lt as s,m as c,nt as l,ot as u,rt as d,tt as f,ut as p,xt as m}from"./client-DrrW410h.js";import{i as h,t as g}from"./Scrollbar-DGnXZ64x.js";import{s as _}from"./ui-BXphkCO3.js";import{c as v,n as y,o as b}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{A as x,W as S}from"./index-CvfVA1ID.js";var C=d(`card-content`,` flex: 1; min-width: 0; box-sizing: border-box; diff --git a/frontend/dist/assets/CatalogView-DT_TOgRX.js b/frontend/dist/assets/CatalogView-D6h9kJ7p.js similarity index 86% rename from frontend/dist/assets/CatalogView-DT_TOgRX.js rename to frontend/dist/assets/CatalogView-D6h9kJ7p.js index 0108088..fba72cb 100644 --- a/frontend/dist/assets/CatalogView-DT_TOgRX.js +++ b/frontend/dist/assets/CatalogView-D6h9kJ7p.js @@ -1 +1 @@ -import{At as e,Bn as t,Cn as n,Ct as r,Jt as i,Ot as a,St as o,Tt as s,Vn as c,Xt as l,d as u,gt as d,kt as f,sn as p,vn as m,wt as h}from"./client-DrrW410h.js";import{i as g}from"./ui-CXICC9ah.js";import{t as _}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as v}from"./Rate-Cc7RqaE1.js";import{i as y}from"./index-cNEa5D1b.js";import{t as b}from"./HeaderMenu-BvkSHjS4.js";import{t as x}from"./SiteFooter-BjbzmgYc.js";var S={class:`center-block-custom`},C={class:`width1200 display-table catalog-grid`},w=[`onClick`],T={class:`scenario-content-block`},E={class:`scenario-title`},D={class:`scenario-description`},O={class:`scenario-rating`},k={key:1},A={key:2},j={key:0,class:`scenario-difficulty`},M={class:`scenario-label`},N=_(e({__name:`CatalogPage`,setup(e){let _=y(),N=m([]),P=u();async function F(){N.value=[];let e=await _.GetScenariosCatalog({});N.value=e.scenarios}async function I(e){P.push(`/scenarios/`+e)}return F(),(e,u)=>(i(),s(d,null,[o(`div`,S,[o(`div`,C,[(i(!0),s(d,null,l(N.value,e=>(i(),s(`div`,{class:`scenario-block`,onClick:t=>I(e.ID),key:e.ID},[o(`div`,{class:`scenario-image-block scenario-image`,style:t({backgroundImage:`url(${e.image})`})},null,4),o(`div`,T,[o(`p`,E,c(e.name),1),o(`p`,D,c(e.description),1),o(`div`,O,[e.reviewsCount?(i(),r(n(v),{key:0,value:e.averageRating,readonly:``,"allow-half":``,size:`small`},null,8,[`value`])):h(``,!0),e.reviewsCount?(i(),s(`span`,k,c(e.averageRating?.toFixed(1))+` · `+c(e.reviewsCount),1)):(i(),s(`span`,A,`Пока нет оценок`))]),e.difficulty?(i(),s(`div`,j,`Сложность: `+c(e.difficulty),1)):h(``,!0),o(`p`,M,[f(n(g),{bordered:!1,type:`success`,class:`status-block`},{default:p(()=>[a(`Автор: `+c(e.author?.username),1)]),_:2},1024)])])],8,w))),128))]),f(x)]),f(b,{active:`catalog`})],64))}}),[[`__scopeId`,`data-v-90b28396`]]),P=e({__name:`CatalogView`,setup(e){return(e,t)=>(i(),r(N))}});export{P as default}; \ No newline at end of file +import{At as e,Bn as t,Cn as n,Ct as r,Jt as i,Ot as a,St as o,Tt as s,Vn as c,Xt as l,d as u,gt as d,kt as f,sn as p,vn as m,wt as h}from"./client-DrrW410h.js";import{i as g}from"./ui-BXphkCO3.js";import{t as _}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as v}from"./Rate-DzWTiM8f.js";import{i as y}from"./index-CvfVA1ID.js";import{t as b}from"./HeaderMenu-DjAjwijB.js";import{t as x}from"./SiteFooter-BjbzmgYc.js";var S={class:`center-block-custom`},C={class:`width1200 display-table catalog-grid`},w=[`onClick`],T={class:`scenario-content-block`},E={class:`scenario-title`},D={class:`scenario-description`},O={class:`scenario-rating`},k={key:1},A={key:2},j={key:0,class:`scenario-difficulty`},M={class:`scenario-label`},N=_(e({__name:`CatalogPage`,setup(e){let _=y(),N=m([]),P=u();async function F(){N.value=[];let e=await _.GetScenariosCatalog({});N.value=e.scenarios}async function I(e){P.push(`/scenarios/`+e)}return F(),(e,u)=>(i(),s(d,null,[o(`div`,S,[o(`div`,C,[(i(!0),s(d,null,l(N.value,e=>(i(),s(`div`,{class:`scenario-block`,onClick:t=>I(e.ID),key:e.ID},[o(`div`,{class:`scenario-image-block scenario-image`,style:t({backgroundImage:`url(${e.image})`})},null,4),o(`div`,T,[o(`p`,E,c(e.name),1),o(`p`,D,c(e.description),1),o(`div`,O,[e.reviewsCount?(i(),r(n(v),{key:0,value:e.averageRating,readonly:``,"allow-half":``,size:`small`},null,8,[`value`])):h(``,!0),e.reviewsCount?(i(),s(`span`,k,c(e.averageRating?.toFixed(1))+` · `+c(e.reviewsCount),1)):(i(),s(`span`,A,`Пока нет оценок`))]),e.difficulty?(i(),s(`div`,j,`Сложность: `+c(e.difficulty),1)):h(``,!0),o(`p`,M,[f(n(g),{bordered:!1,type:`success`,class:`status-block`},{default:p(()=>[a(`Автор: `+c(e.author?.username),1)]),_:2},1024)])])],8,w))),128))]),f(x)]),f(b,{active:`catalog`})],64))}}),[[`__scopeId`,`data-v-90b28396`]]),P=e({__name:`CatalogView`,setup(e){return(e,t)=>(i(),r(N))}});export{P as default}; \ No newline at end of file diff --git a/frontend/dist/assets/ConsentView-DZwCglI2.js b/frontend/dist/assets/ConsentView-ChuaDqzZ.js similarity index 55% rename from frontend/dist/assets/ConsentView-DZwCglI2.js rename to frontend/dist/assets/ConsentView-ChuaDqzZ.js index 9569171..714c43f 100644 --- a/frontend/dist/assets/ConsentView-DZwCglI2.js +++ b/frontend/dist/assets/ConsentView-ChuaDqzZ.js @@ -1 +1 @@ -import{At as e,Jt as t,Tt as n,gt as r,kt as i}from"./client-DrrW410h.js";import{t as a}from"./HeaderMenu-BvkSHjS4.js";import{t as o}from"./DocsPage-Bpk3oZFc.js";var s=e({__name:`ConsentView`,setup(e){return(e,s)=>(t(),n(r,null,[i(o,{kind:`consent`}),i(a)],64))}});export{s as default}; \ No newline at end of file +import{At as e,Jt as t,Tt as n,gt as r,kt as i}from"./client-DrrW410h.js";import{t as a}from"./HeaderMenu-DjAjwijB.js";import{t as o}from"./DocsPage-ZV8KFkx6.js";var s=e({__name:`ConsentView`,setup(e){return(e,s)=>(t(),n(r,null,[i(o,{kind:`consent`}),i(a)],64))}});export{s as default}; \ No newline at end of file diff --git a/frontend/dist/assets/DatePicker-UeEZr2Ml.js b/frontend/dist/assets/DatePicker-CtSDNHOH.js similarity index 99% rename from frontend/dist/assets/DatePicker-UeEZr2Ml.js rename to frontend/dist/assets/DatePicker-CtSDNHOH.js index cfe778b..9a90837 100644 --- a/frontend/dist/assets/DatePicker-UeEZr2Ml.js +++ b/frontend/dist/assets/DatePicker-CtSDNHOH.js @@ -1,4 +1,4 @@ -import{At as e,Ft as t,Gt as n,Ht as r,J as i,Nt as a,U as o,Vt as s,W as c,X as l,Yt as u,_n as ee,an as d,at as f,cn as p,ct as te,gn as ne,in as re,m as ie,nt as m,ot as h,q as g,rt as _,st as v,vn as y,xn as b,xt as x,zt as ae}from"./client-DrrW410h.js";import{a as S,i as C,o as oe,t as w}from"./Follower-BtPkzZJm.js";import{c as T,d as se,u as ce}from"./utils-B8DiXMbh.js";import{c as le,l as ue,s as E,t as D}from"./Scrollbar-BUURfLNv.js";import{S as O,a as k,i as de,m as A,n as j}from"./Suffix-CV0EsaP5.js";import{t as fe}from"./use-merged-state-CIQwNmUb.js";import{n as M,t as N}from"./Button-BZxcJJGv.js";import{r as pe}from"./keep-DYskFqGA.js";import{a as P,c as F,i as I,o as me}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{n as he}from"./use-form-item-CNQ45NOh.js";import{t as ge}from"./Input-Bg8PolMg.js";import{C as _e,Q as ve,X as ye,it as be,lt as xe,w as Se}from"./index-cNEa5D1b.js";function Ce(e={},t){let n=ne({ctrl:!1,command:!1,win:!1,shift:!1,tab:!1}),{keydown:i,keyup:a}=e,o=e=>{switch(e.key){case`Control`:n.ctrl=!0;break;case`Meta`:n.command=!0,n.win=!0;break;case`Shift`:n.shift=!0;break;case`Tab`:n.tab=!0;break}i!==void 0&&Object.keys(i).forEach(t=>{if(t!==e.key)return;let n=i[t];if(typeof n==`function`)n(e);else{let{stop:t=!1,prevent:r=!1}=n;t&&e.stopPropagation(),r&&e.preventDefault(),n.handler(e)}})},c=e=>{switch(e.key){case`Control`:n.ctrl=!1;break;case`Meta`:n.command=!1,n.win=!1;break;case`Shift`:n.shift=!1;break;case`Tab`:n.tab=!1;break}a!==void 0&&Object.keys(a).forEach(t=>{if(t!==e.key)return;let n=a[t];if(typeof n==`function`)n(e);else{let{stop:t=!1,prevent:r=!1}=n;t&&e.stopPropagation(),r&&e.preventDefault(),n.handler(e)}})},l=()=>{(t===void 0||t.value)&&(le(`keydown`,document,o),le(`keyup`,document,c)),t!==void 0&&re(t,e=>{e?(le(`keydown`,document,o),le(`keyup`,document,c)):(E(`keydown`,document,o),E(`keyup`,document,c))})};return O()?(s(l),r(()=>{(t===void 0||t.value)&&(E(`keydown`,document,o),E(`keyup`,document,c))})):l(),ee(n)}var we=365.2425,Te=6048e5,Ee=864e5,De=6e4,Oe=36e5,ke=1e3,L=3600*24;L*7,L*we/12*3;var Ae=Symbol.for(`constructDateFrom`);function R(e,t){return typeof e==`function`?e(t):e&&typeof e==`object`&&Ae in e?e[Ae](t):e instanceof Date?new e.constructor(t):new Date(t)}function z(e,...t){let n=R.bind(null,e||t.find(e=>typeof e==`object`));return t.map(n)}var je={};function Me(){return je}function B(e,t){return R(t||e,e)}function Ne(e,t){let n=Me(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=B(e,t?.in),a=i.getDay(),o=(aa(`svg`,{width:`28px`,height:`28px`,viewBox:`0 0 28 28`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`},a(`g`,{stroke:`none`,"stroke-width":`1`,"fill-rule":`evenodd`},a(`g`,{"fill-rule":`nonzero`},a(`path`,{d:`M21.75,3 C23.5449254,3 25,4.45507456 25,6.25 L25,21.75 C25,23.5449254 23.5449254,25 21.75,25 L6.25,25 C4.45507456,25 3,23.5449254 3,21.75 L3,6.25 C3,4.45507456 4.45507456,3 6.25,3 L21.75,3 Z M23.5,9.503 L4.5,9.503 L4.5,21.75 C4.5,22.7164983 5.28350169,23.5 6.25,23.5 L21.75,23.5 C22.7164983,23.5 23.5,22.7164983 23.5,21.75 L23.5,9.503 Z M21.75,4.5 L6.25,4.5 C5.28350169,4.5 4.5,5.28350169 4.5,6.25 L4.5,8.003 L23.5,8.003 L23.5,6.25 C23.5,5.28350169 22.7164983,4.5 21.75,4.5 Z`}))))),Le=e({name:`FastBackward`,render(){return a(`svg`,{viewBox:`0 0 20 20`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`},a(`g`,{stroke:`none`,"stroke-width":`1`,fill:`none`,"fill-rule":`evenodd`},a(`g`,{fill:`currentColor`,"fill-rule":`nonzero`},a(`path`,{d:`M8.73171,16.7949 C9.03264,17.0795 9.50733,17.0663 9.79196,16.7654 C10.0766,16.4644 10.0634,15.9897 9.76243,15.7051 L4.52339,10.75 L17.2471,10.75 C17.6613,10.75 17.9971,10.4142 17.9971,10 C17.9971,9.58579 17.6613,9.25 17.2471,9.25 L4.52112,9.25 L9.76243,4.29275 C10.0634,4.00812 10.0766,3.53343 9.79196,3.2325 C9.50733,2.93156 9.03264,2.91834 8.73171,3.20297 L2.31449,9.27241 C2.14819,9.4297 2.04819,9.62981 2.01448,9.8386 C2.00308,9.89058 1.99707,9.94459 1.99707,10 C1.99707,10.0576 2.00356,10.1137 2.01585,10.1675 C2.05084,10.3733 2.15039,10.5702 2.31449,10.7254 L8.73171,16.7949 Z`}))))}}),Re=e({name:`FastForward`,render(){return a(`svg`,{viewBox:`0 0 20 20`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`},a(`g`,{stroke:`none`,"stroke-width":`1`,fill:`none`,"fill-rule":`evenodd`},a(`g`,{fill:`currentColor`,"fill-rule":`nonzero`},a(`path`,{d:`M11.2654,3.20511 C10.9644,2.92049 10.4897,2.93371 10.2051,3.23464 C9.92049,3.53558 9.93371,4.01027 10.2346,4.29489 L15.4737,9.25 L2.75,9.25 C2.33579,9.25 2,9.58579 2,10.0000012 C2,10.4142 2.33579,10.75 2.75,10.75 L15.476,10.75 L10.2346,15.7073 C9.93371,15.9919 9.92049,16.4666 10.2051,16.7675 C10.4897,17.0684 10.9644,17.0817 11.2654,16.797 L17.6826,10.7276 C17.8489,10.5703 17.9489,10.3702 17.9826,10.1614 C17.994,10.1094 18,10.0554 18,10.0000012 C18,9.94241 17.9935,9.88633 17.9812,9.83246 C17.9462,9.62667 17.8467,9.42976 17.6826,9.27455 L11.2654,3.20511 Z`}))))}}),ze=e({name:`Forward`,render(){return a(`svg`,{viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},a(`path`,{d:`M7.73271 4.20694C8.03263 3.92125 8.50737 3.93279 8.79306 4.23271L13.7944 9.48318C14.0703 9.77285 14.0703 10.2281 13.7944 10.5178L8.79306 15.7682C8.50737 16.0681 8.03263 16.0797 7.73271 15.794C7.43279 15.5083 7.42125 15.0336 7.70694 14.7336L12.2155 10.0005L7.70694 5.26729C7.42125 4.96737 7.43279 4.49264 7.73271 4.20694Z`,fill:`currentColor`}))}}),Be=ye(`time`,()=>a(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},a(`path`,{d:`M256,64C150,64,64,150,64,256s86,192,192,192,192-86,192-192S362,64,256,64Z`,style:` +import{At as e,Ft as t,Gt as n,Ht as r,J as i,Nt as a,U as o,Vt as s,W as c,X as l,Yt as u,_n as ee,an as d,at as f,cn as p,ct as te,gn as ne,in as re,m as ie,nt as m,ot as h,q as g,rt as _,st as v,vn as y,xn as b,xt as x,zt as ae}from"./client-DrrW410h.js";import{a as S,i as C,o as oe,t as w}from"./Follower-D4pTNocL.js";import{c as T,d as se,u as ce}from"./utils-BwK8vCu4.js";import{c as le,l as ue,s as E,t as D}from"./Scrollbar-DGnXZ64x.js";import{S as O,a as k,i as de,m as A,n as j}from"./Suffix-1hsPP30m.js";import{t as fe}from"./use-merged-state-CIQwNmUb.js";import{n as M,t as N}from"./Button-VP0HlDWp.js";import{r as pe}from"./keep-CyT4Sxsq.js";import{a as P,c as F,i as I,o as me}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{n as he}from"./use-form-item-CNQ45NOh.js";import{t as ge}from"./Input-B0pT-V_P.js";import{C as _e,Q as ve,X as ye,it as be,lt as xe,w as Se}from"./index-CvfVA1ID.js";function Ce(e={},t){let n=ne({ctrl:!1,command:!1,win:!1,shift:!1,tab:!1}),{keydown:i,keyup:a}=e,o=e=>{switch(e.key){case`Control`:n.ctrl=!0;break;case`Meta`:n.command=!0,n.win=!0;break;case`Shift`:n.shift=!0;break;case`Tab`:n.tab=!0;break}i!==void 0&&Object.keys(i).forEach(t=>{if(t!==e.key)return;let n=i[t];if(typeof n==`function`)n(e);else{let{stop:t=!1,prevent:r=!1}=n;t&&e.stopPropagation(),r&&e.preventDefault(),n.handler(e)}})},c=e=>{switch(e.key){case`Control`:n.ctrl=!1;break;case`Meta`:n.command=!1,n.win=!1;break;case`Shift`:n.shift=!1;break;case`Tab`:n.tab=!1;break}a!==void 0&&Object.keys(a).forEach(t=>{if(t!==e.key)return;let n=a[t];if(typeof n==`function`)n(e);else{let{stop:t=!1,prevent:r=!1}=n;t&&e.stopPropagation(),r&&e.preventDefault(),n.handler(e)}})},l=()=>{(t===void 0||t.value)&&(le(`keydown`,document,o),le(`keyup`,document,c)),t!==void 0&&re(t,e=>{e?(le(`keydown`,document,o),le(`keyup`,document,c)):(E(`keydown`,document,o),E(`keyup`,document,c))})};return O()?(s(l),r(()=>{(t===void 0||t.value)&&(E(`keydown`,document,o),E(`keyup`,document,c))})):l(),ee(n)}var we=365.2425,Te=6048e5,Ee=864e5,De=6e4,Oe=36e5,ke=1e3,L=3600*24;L*7,L*we/12*3;var Ae=Symbol.for(`constructDateFrom`);function R(e,t){return typeof e==`function`?e(t):e&&typeof e==`object`&&Ae in e?e[Ae](t):e instanceof Date?new e.constructor(t):new Date(t)}function z(e,...t){let n=R.bind(null,e||t.find(e=>typeof e==`object`));return t.map(n)}var je={};function Me(){return je}function B(e,t){return R(t||e,e)}function Ne(e,t){let n=Me(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=B(e,t?.in),a=i.getDay(),o=(aa(`svg`,{width:`28px`,height:`28px`,viewBox:`0 0 28 28`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`},a(`g`,{stroke:`none`,"stroke-width":`1`,"fill-rule":`evenodd`},a(`g`,{"fill-rule":`nonzero`},a(`path`,{d:`M21.75,3 C23.5449254,3 25,4.45507456 25,6.25 L25,21.75 C25,23.5449254 23.5449254,25 21.75,25 L6.25,25 C4.45507456,25 3,23.5449254 3,21.75 L3,6.25 C3,4.45507456 4.45507456,3 6.25,3 L21.75,3 Z M23.5,9.503 L4.5,9.503 L4.5,21.75 C4.5,22.7164983 5.28350169,23.5 6.25,23.5 L21.75,23.5 C22.7164983,23.5 23.5,22.7164983 23.5,21.75 L23.5,9.503 Z M21.75,4.5 L6.25,4.5 C5.28350169,4.5 4.5,5.28350169 4.5,6.25 L4.5,8.003 L23.5,8.003 L23.5,6.25 C23.5,5.28350169 22.7164983,4.5 21.75,4.5 Z`}))))),Le=e({name:`FastBackward`,render(){return a(`svg`,{viewBox:`0 0 20 20`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`},a(`g`,{stroke:`none`,"stroke-width":`1`,fill:`none`,"fill-rule":`evenodd`},a(`g`,{fill:`currentColor`,"fill-rule":`nonzero`},a(`path`,{d:`M8.73171,16.7949 C9.03264,17.0795 9.50733,17.0663 9.79196,16.7654 C10.0766,16.4644 10.0634,15.9897 9.76243,15.7051 L4.52339,10.75 L17.2471,10.75 C17.6613,10.75 17.9971,10.4142 17.9971,10 C17.9971,9.58579 17.6613,9.25 17.2471,9.25 L4.52112,9.25 L9.76243,4.29275 C10.0634,4.00812 10.0766,3.53343 9.79196,3.2325 C9.50733,2.93156 9.03264,2.91834 8.73171,3.20297 L2.31449,9.27241 C2.14819,9.4297 2.04819,9.62981 2.01448,9.8386 C2.00308,9.89058 1.99707,9.94459 1.99707,10 C1.99707,10.0576 2.00356,10.1137 2.01585,10.1675 C2.05084,10.3733 2.15039,10.5702 2.31449,10.7254 L8.73171,16.7949 Z`}))))}}),Re=e({name:`FastForward`,render(){return a(`svg`,{viewBox:`0 0 20 20`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`},a(`g`,{stroke:`none`,"stroke-width":`1`,fill:`none`,"fill-rule":`evenodd`},a(`g`,{fill:`currentColor`,"fill-rule":`nonzero`},a(`path`,{d:`M11.2654,3.20511 C10.9644,2.92049 10.4897,2.93371 10.2051,3.23464 C9.92049,3.53558 9.93371,4.01027 10.2346,4.29489 L15.4737,9.25 L2.75,9.25 C2.33579,9.25 2,9.58579 2,10.0000012 C2,10.4142 2.33579,10.75 2.75,10.75 L15.476,10.75 L10.2346,15.7073 C9.93371,15.9919 9.92049,16.4666 10.2051,16.7675 C10.4897,17.0684 10.9644,17.0817 11.2654,16.797 L17.6826,10.7276 C17.8489,10.5703 17.9489,10.3702 17.9826,10.1614 C17.994,10.1094 18,10.0554 18,10.0000012 C18,9.94241 17.9935,9.88633 17.9812,9.83246 C17.9462,9.62667 17.8467,9.42976 17.6826,9.27455 L11.2654,3.20511 Z`}))))}}),ze=e({name:`Forward`,render(){return a(`svg`,{viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},a(`path`,{d:`M7.73271 4.20694C8.03263 3.92125 8.50737 3.93279 8.79306 4.23271L13.7944 9.48318C14.0703 9.77285 14.0703 10.2281 13.7944 10.5178L8.79306 15.7682C8.50737 16.0681 8.03263 16.0797 7.73271 15.794C7.43279 15.5083 7.42125 15.0336 7.70694 14.7336L12.2155 10.0005L7.70694 5.26729C7.42125 4.96737 7.43279 4.49264 7.73271 4.20694Z`,fill:`currentColor`}))}}),Be=ye(`time`,()=>a(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},a(`path`,{d:`M256,64C150,64,64,150,64,256s86,192,192,192,192-86,192-192S362,64,256,64Z`,style:` fill: none; stroke: currentColor; stroke-miterlimit: 10; diff --git a/frontend/dist/assets/DocsPage-Bpk3oZFc.js b/frontend/dist/assets/DocsPage-ZV8KFkx6.js similarity index 94% rename from frontend/dist/assets/DocsPage-Bpk3oZFc.js rename to frontend/dist/assets/DocsPage-ZV8KFkx6.js index 9a50d58..23c67e1 100644 --- a/frontend/dist/assets/DocsPage-Bpk3oZFc.js +++ b/frontend/dist/assets/DocsPage-ZV8KFkx6.js @@ -1 +1 @@ -import{At as e,Cn as t,Ct as n,Gt as r,Jt as i,Ot as a,St as o,Tt as s,Vn as c,a as l,kt as u,sn as d,vn as f}from"./client-DrrW410h.js";import{t as p}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as m}from"./Alert-CewvQG_z.js";import{t as h}from"./Spin-D1uP99th.js";import{i as g}from"./index-cNEa5D1b.js";import{t as _}from"./SiteFooter-BjbzmgYc.js";import{t as v}from"./HeaderText-BIRJQexj.js";var y={class:`center-block-custom`},b={class:`width700 doc-page`},x={class:`doc-title`},S={key:0,class:`doc-loading`},C={key:2,class:`paper-block`},w={class:`paper`},T={class:`doc-text`},E={class:`docs-links`},D=p(e({__name:`DocsPage`,props:{kind:{}},setup(e){let p=e,D={terms:`Пользовательское соглашение`,privacy:`Политика конфиденциальности`,consent:`Согласие на обработку персональных данных`},O=f(``),k=f(!0),A=f(``);return r(async()=>{let e=g(),t={terms:()=>e.GetTerms({}),privacy:()=>e.GetPrivacy({}),consent:()=>e.GetConsent({})};try{let e=await t[p.kind]();O.value=e.text||``}catch(e){A.value=e instanceof Error?e.message:`Не удалось загрузить документ`}finally{k.value=!1}}),(e,r)=>(i(),s(`div`,y,[o(`div`,b,[o(`h1`,x,[u(v,null,{default:d(()=>[a(c(D[p.kind]),1)]),_:1})]),k.value?(i(),s(`div`,S,[u(t(h),{size:`large`})])):A.value?(i(),n(t(m),{key:1,type:`error`,"show-icon":!1,class:`doc-error`},{default:d(()=>[a(c(A.value),1)]),_:1})):(i(),s(`div`,C,[o(`div`,w,[o(`p`,T,c(O.value),1)]),r[0]||=o(`div`,{class:`paper-shadow paper-shadow-left`},null,-1),r[1]||=o(`div`,{class:`paper-shadow paper-shadow-right`},null,-1)])),o(`div`,E,[r[5]||=a(` Смотрите также: `,-1),u(t(l),{to:`/user-agreement`,class:`docs-link`},{default:d(()=>[...r[2]||=[a(`Пользовательское соглашение`,-1)]]),_:1}),r[6]||=a(` · `,-1),u(t(l),{to:`/privacy-policy`,class:`docs-link`},{default:d(()=>[...r[3]||=[a(`Политика конфиденциальности`,-1)]]),_:1}),r[7]||=a(` · `,-1),u(t(l),{to:`/consent`,class:`docs-link`},{default:d(()=>[...r[4]||=[a(`Согласие на обработку персональных данных`,-1)]]),_:1})])]),u(_)]))}}),[[`__scopeId`,`data-v-e5a76370`]]);export{D as t}; \ No newline at end of file +import{At as e,Cn as t,Ct as n,Gt as r,Jt as i,Ot as a,St as o,Tt as s,Vn as c,a as l,kt as u,sn as d,vn as f}from"./client-DrrW410h.js";import{t as p}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as m}from"./Alert-CKEVYkKu.js";import{t as h}from"./Spin-v_Oo9RkU.js";import{i as g}from"./index-CvfVA1ID.js";import{t as _}from"./SiteFooter-BjbzmgYc.js";import{t as v}from"./HeaderText-BIRJQexj.js";var y={class:`center-block-custom`},b={class:`width700 doc-page`},x={class:`doc-title`},S={key:0,class:`doc-loading`},C={key:2,class:`paper-block`},w={class:`paper`},T={class:`doc-text`},E={class:`docs-links`},D=p(e({__name:`DocsPage`,props:{kind:{}},setup(e){let p=e,D={terms:`Пользовательское соглашение`,privacy:`Политика конфиденциальности`,consent:`Согласие на обработку персональных данных`},O=f(``),k=f(!0),A=f(``);return r(async()=>{let e=g(),t={terms:()=>e.GetTerms({}),privacy:()=>e.GetPrivacy({}),consent:()=>e.GetConsent({})};try{let e=await t[p.kind]();O.value=e.text||``}catch(e){A.value=e instanceof Error?e.message:`Не удалось загрузить документ`}finally{k.value=!1}}),(e,r)=>(i(),s(`div`,y,[o(`div`,b,[o(`h1`,x,[u(v,null,{default:d(()=>[a(c(D[p.kind]),1)]),_:1})]),k.value?(i(),s(`div`,S,[u(t(h),{size:`large`})])):A.value?(i(),n(t(m),{key:1,type:`error`,"show-icon":!1,class:`doc-error`},{default:d(()=>[a(c(A.value),1)]),_:1})):(i(),s(`div`,C,[o(`div`,w,[o(`p`,T,c(O.value),1)]),r[0]||=o(`div`,{class:`paper-shadow paper-shadow-left`},null,-1),r[1]||=o(`div`,{class:`paper-shadow paper-shadow-right`},null,-1)])),o(`div`,E,[r[5]||=a(` Смотрите также: `,-1),u(t(l),{to:`/user-agreement`,class:`docs-link`},{default:d(()=>[...r[2]||=[a(`Пользовательское соглашение`,-1)]]),_:1}),r[6]||=a(` · `,-1),u(t(l),{to:`/privacy-policy`,class:`docs-link`},{default:d(()=>[...r[3]||=[a(`Политика конфиденциальности`,-1)]]),_:1}),r[7]||=a(` · `,-1),u(t(l),{to:`/consent`,class:`docs-link`},{default:d(()=>[...r[4]||=[a(`Согласие на обработку персональных данных`,-1)]]),_:1})])]),u(_)]))}}),[[`__scopeId`,`data-v-e5a76370`]]);export{D as t}; \ No newline at end of file diff --git a/frontend/dist/assets/Flex-YVOjVK0A.js b/frontend/dist/assets/Flex-C50LOLeC.js similarity index 90% rename from frontend/dist/assets/Flex-YVOjVK0A.js rename to frontend/dist/assets/Flex-C50LOLeC.js index fa7d112..df72f17 100644 --- a/frontend/dist/assets/Flex-YVOjVK0A.js +++ b/frontend/dist/assets/Flex-C50LOLeC.js @@ -1 +1 @@ -import{At as e,Nt as t,W as n,_ as r,ct as i,m as a,xt as o}from"./client-DrrW410h.js";import{a as s,o as c}from"./ui-CXICC9ah.js";import{t as l}from"./flatten-C6dhMlvE.js";import{t as u}from"./get-slot-6kXJmSMP.js";import{_ as d}from"./index-cNEa5D1b.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}=n(e),u=a(`Flex`,`-flex`,void 0,p,e,t);return{rtlEnabled:r(`Flex`,l,t),mergedClsPrefix:t,margin:o(()=>{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}=c(n);return{horizontal:s(a),vertical:s(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}; \ No newline at end of file +import{At as e,Nt as t,W as n,_ as r,ct as i,m as a,xt as o}from"./client-DrrW410h.js";import{a as s,o as c}from"./ui-BXphkCO3.js";import{t as l}from"./flatten-C6dhMlvE.js";import{t as u}from"./get-slot-6kXJmSMP.js";import{_ as d}from"./index-CvfVA1ID.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}=n(e),u=a(`Flex`,`-flex`,void 0,p,e,t);return{rtlEnabled:r(`Flex`,l,t),mergedClsPrefix:t,margin:o(()=>{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}=c(n);return{horizontal:s(a),vertical:s(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}; \ No newline at end of file diff --git a/frontend/dist/assets/Follower-BtPkzZJm.js b/frontend/dist/assets/Follower-D4pTNocL.js similarity index 97% rename from frontend/dist/assets/Follower-BtPkzZJm.js rename to frontend/dist/assets/Follower-D4pTNocL.js index 9510955..a421451 100644 --- a/frontend/dist/assets/Follower-BtPkzZJm.js +++ b/frontend/dist/assets/Follower-D4pTNocL.js @@ -1 +1 @@ -import{At as e,Ft as t,Gt as n,Ht as r,Nt as i,X as a,Y as o,Yt as s,cn as c,dt as l,in as u,jt as d,vn as f,xn as p,zt as m}from"./client-DrrW410h.js";import{c as h,s as g}from"./Scrollbar-BUURfLNv.js";import{C as _,_ as v,f as y,g as b,h as x,p as S,v as C,x as w}from"./Suffix-CV0EsaP5.js";import{at as T,it as E}from"./index-cNEa5D1b.js";var D=[],O=new WeakMap;function k(){D.forEach(e=>e(...O.get(e))),D=[]}function A(e,...t){O.set(e,t),!D.includes(e)&&D.push(e)===1&&requestAnimationFrame(k)}var j=_?document?.fonts?.ready:void 0,M=!1;j===void 0?M=!0:j.then(()=>{M=!0});function N(e){if(M)return;let t=!1;n(()=>{M||j?.then(()=>{t||e()})}),r(()=>{t=!0})}var P=a(`n-internal-select-menu`),F=a(`n-internal-select-menu-body`),I=`__disabled__`;function L(e){let i=t(C,null),a=t(w,null),o=t(v,null),s=t(F,null),c=f();if(typeof document<`u`){c.value=document.fullscreenElement;let e=()=>{c.value=document.fullscreenElement};n(()=>{h(`fullscreenchange`,document,e)}),r(()=>{g(`fullscreenchange`,document,e)})}return T(()=>{let{to:t}=e;return t===void 0?i?.value?i.value.$el??i.value:a?.value?a.value:o?.value?o.value:s?.value?s.value:t??(c.value||`body`):t===!1?I:t===!0?c.value||`body`:t})}L.tdkey=I,L.propTo={type:[String,Object,Boolean],default:void 0};var R=null;function z(){if(R===null&&(R=document.getElementById(`v-binder-view-measurer`),R===null)){R=document.createElement(`div`),R.id=`v-binder-view-measurer`;let{style:e}=R;e.position=`fixed`,e.left=`0`,e.right=`0`,e.top=`0`,e.bottom=`0`,e.pointerEvents=`none`,e.visibility=`hidden`,document.body.appendChild(R)}return R.getBoundingClientRect()}function B(e,t){let n=z();return{top:t,left:e,height:0,width:0,right:n.width-e,bottom:n.height-t}}function V(e){let t=e.getBoundingClientRect(),n=z();return{left:t.left-n.left,top:t.top-n.top,bottom:n.height+n.top-t.bottom,right:n.width+n.left-t.right,width:t.width,height:t.height}}function H(e){return e.nodeType===9?null:e.parentNode}function U(e){if(e===null)return null;let t=H(e);if(t===null)return null;if(t.nodeType===9)return document;if(t.nodeType===1){let{overflow:e,overflowX:n,overflowY:r}=getComputedStyle(t);if(/(auto|scroll|overlay)/.test(e+r+n))return t}return U(t)}var W=e({name:`Binder`,props:{syncTargetWithParent:Boolean,syncTarget:{type:Boolean,default:!0}},setup(e){s(`VBinder`,d()?.proxy);let n=t(`VBinder`,null),i=f(null),a=t=>{i.value=t,n&&e.syncTargetWithParent&&n.setTargetRef(t)},o=[],c=()=>{let e=i.value;for(;e=U(e),e!==null;)o.push(e);for(let e of o)h(`scroll`,e,_,!0)},l=()=>{for(let e of o)g(`scroll`,e,_,!0);o=[]},u=new Set,p=e=>{u.size===0&&c(),u.has(e)||u.add(e)},m=e=>{u.has(e)&&u.delete(e),u.size===0&&l()},_=()=>{A(v)},v=()=>{u.forEach(e=>e())},y=new Set,b=e=>{y.size===0&&h(`resize`,window,S),y.has(e)||y.add(e)},x=e=>{y.has(e)&&y.delete(e),y.size===0&&g(`resize`,window,S)},S=()=>{y.forEach(e=>e())};return r(()=>{g(`resize`,window,S),l()}),{targetRef:i,setTargetRef:a,addScrollListener:p,removeScrollListener:m,addResizeListener:b,removeResizeListener:x}},render(){return b(`binder`,this.$slots)}}),G=e({name:`Target`,setup(){let{setTargetRef:e,syncTarget:n}=t(`VBinder`);return{syncTarget:n,setTargetDirective:{mounted:e,updated:e}}},render(){let{syncTarget:e,setTargetDirective:t}=this;return e?c(x(`follower`,this.$slots),[[t]]):x(`follower`,this.$slots)}}),{c:K}=l(),q=`vueuc-style`,J={top:`bottom`,bottom:`top`,left:`right`,right:`left`},Y={start:`end`,center:`center`,end:`start`},X={top:`height`,bottom:`height`,left:`width`,right:`width`},Z={"bottom-start":`top left`,bottom:`top center`,"bottom-end":`top right`,"top-start":`bottom left`,top:`bottom center`,"top-end":`bottom right`,"right-start":`top left`,right:`center left`,"right-end":`bottom left`,"left-start":`top right`,left:`center right`,"left-end":`bottom right`},ee={"bottom-start":`bottom left`,bottom:`bottom center`,"bottom-end":`bottom right`,"top-start":`top left`,top:`top center`,"top-end":`top right`,"right-start":`top right`,right:`center right`,"right-end":`bottom right`,"left-start":`top left`,left:`center left`,"left-end":`bottom left`},te={"bottom-start":`right`,"bottom-end":`left`,"top-start":`right`,"top-end":`left`,"right-start":`bottom`,"right-end":`top`,"left-start":`bottom`,"left-end":`top`},Q={top:!0,bottom:!1,left:!0,right:!1},$={top:`end`,bottom:`start`,left:`end`,right:`start`};function ne(e,t,n,r,i,a){if(!i||a)return{placement:e,top:0,left:0};let[o,s]=e.split(`-`),c=s??`center`,l={top:0,left:0},u=(e,i,a)=>{let o=0,s=0,c=n[e]-t[i]-t[e];return c>0&&r&&(a?s=Q[i]?c:-c:o=Q[i]?c:-c),{left:o,top:s}},d=o===`left`||o===`right`;if(c!==`center`){let r=te[e],i=J[r],a=X[r];if(n[a]>t[a]){if(t[r]+t[a]t[i]&&(c=Y[s])}else{let e=o===`bottom`||o===`top`?`left`:`top`,r=J[e],i=X[e],a=(n[i]-t[i])/2;(t[e]t[r]?(c=$[e],l=u(i,e,d)):(c=$[r],l=u(i,r,d)))}let f=o;return t[o] *`,{pointerEvents:`all`})])]),oe=e({name:`Follower`,inheritAttrs:!1,props:{show:Boolean,enabled:{type:Boolean,default:void 0},placement:{type:String,default:`bottom`},syncTrigger:{type:Array,default:[`resize`,`scroll`]},to:[String,Object],flip:{type:Boolean,default:!0},internalShift:Boolean,x:Number,y:Number,width:String,minWidth:String,containerClass:String,teleportDisabled:Boolean,zindexable:{type:Boolean,default:!0},zIndex:Number,overlap:Boolean},setup(e){let i=t(`VBinder`),a=T(()=>e.enabled===void 0?e.show:e.enabled),s=f(null),c=f(null),l=()=>{let{syncTrigger:t}=e;t.includes(`scroll`)&&i.addScrollListener(g),t.includes(`resize`)&&i.addResizeListener(g)},d=()=>{i.removeScrollListener(g),i.removeResizeListener(g)};n(()=>{a.value&&(g(),l())});let h=o();ae.mount({id:`vueuc/binder`,head:!0,anchorMetaName:q,ssr:h}),r(()=>{d()}),N(()=>{a.value&&g()});let g=()=>{if(!a.value)return;let t=s.value;if(t===null)return;let n=i.targetRef,{x:r,y:o,overlap:l}=e,u=r!==void 0&&o!==void 0?B(r,o):V(n);t.style.setProperty(`--v-target-width`,`${Math.round(u.width)}px`),t.style.setProperty(`--v-target-height`,`${Math.round(u.height)}px`);let{width:d,minWidth:f,placement:p,internalShift:m,flip:h}=e;t.setAttribute(`v-placement`,p),l?t.setAttribute(`v-overlap`,``):t.removeAttribute(`v-overlap`);let{style:g}=t;d===`target`?g.width=`${u.width}px`:d===void 0?g.width=``:g.width=d,f===`target`?g.minWidth=`${u.width}px`:f===void 0?g.minWidth=``:g.minWidth=f;let _=V(t),v=V(c.value),{left:y,top:b,placement:x}=ne(p,u,_,m,h,l),S=re(x,l),{left:C,top:w,transform:T}=ie(x,v,u,b,y,l);t.setAttribute(`v-placement`,x),t.style.setProperty(`--v-offset-left`,`${Math.round(y)}px`),t.style.setProperty(`--v-offset-top`,`${Math.round(b)}px`),t.style.transform=`translateX(${C}) translateY(${w}) ${T}`,t.style.setProperty(`--v-transform-origin`,S),t.style.transformOrigin=S};u(a,e=>{e?(l(),_()):d()});let _=()=>{m().then(g).catch(e=>console.error(e))};[`placement`,`x`,`y`,`internalShift`,`flip`,`width`,`overlap`,`minWidth`].forEach(t=>{u(p(e,t),g)}),[`teleportDisabled`].forEach(t=>{u(p(e,t),_)}),u(p(e,`syncTrigger`),e=>{e.includes(`resize`)?i.addResizeListener(g):i.removeResizeListener(g),e.includes(`scroll`)?i.addScrollListener(g):i.removeScrollListener(g)});let v=E();return{VBinder:i,mergedEnabled:a,offsetContainerRef:c,followerRef:s,mergedTo:T(()=>{let{to:t}=e;if(t!==void 0)return t;v.value}),syncPosition:g}},render(){return i(y,{show:this.show,to:this.mergedTo,disabled:this.teleportDisabled},{default:()=>{var e;let t=i(`div`,{class:[`v-binder-follower-container`,this.containerClass],ref:`offsetContainerRef`},[i(`div`,{class:`v-binder-follower-content`,ref:`followerRef`},(e=this.$slots).default?.call(e))]);return this.zindexable?c(t,[[S,{enabled:this.mergedEnabled,zIndex:this.zIndex}]]):t}})}});export{W as a,P as c,G as i,N as l,K as n,L as o,q as r,F as s,oe as t,A as u}; \ No newline at end of file +import{At as e,Ft as t,Gt as n,Ht as r,Nt as i,X as a,Y as o,Yt as s,cn as c,dt as l,in as u,jt as d,vn as f,xn as p,zt as m}from"./client-DrrW410h.js";import{c as h,s as g}from"./Scrollbar-DGnXZ64x.js";import{C as _,_ as v,f as y,g as b,h as x,p as S,v as C,x as w}from"./Suffix-1hsPP30m.js";import{at as T,it as E}from"./index-CvfVA1ID.js";var D=[],O=new WeakMap;function k(){D.forEach(e=>e(...O.get(e))),D=[]}function A(e,...t){O.set(e,t),!D.includes(e)&&D.push(e)===1&&requestAnimationFrame(k)}var j=_?document?.fonts?.ready:void 0,M=!1;j===void 0?M=!0:j.then(()=>{M=!0});function N(e){if(M)return;let t=!1;n(()=>{M||j?.then(()=>{t||e()})}),r(()=>{t=!0})}var P=a(`n-internal-select-menu`),F=a(`n-internal-select-menu-body`),I=`__disabled__`;function L(e){let i=t(C,null),a=t(w,null),o=t(v,null),s=t(F,null),c=f();if(typeof document<`u`){c.value=document.fullscreenElement;let e=()=>{c.value=document.fullscreenElement};n(()=>{h(`fullscreenchange`,document,e)}),r(()=>{g(`fullscreenchange`,document,e)})}return T(()=>{let{to:t}=e;return t===void 0?i?.value?i.value.$el??i.value:a?.value?a.value:o?.value?o.value:s?.value?s.value:t??(c.value||`body`):t===!1?I:t===!0?c.value||`body`:t})}L.tdkey=I,L.propTo={type:[String,Object,Boolean],default:void 0};var R=null;function z(){if(R===null&&(R=document.getElementById(`v-binder-view-measurer`),R===null)){R=document.createElement(`div`),R.id=`v-binder-view-measurer`;let{style:e}=R;e.position=`fixed`,e.left=`0`,e.right=`0`,e.top=`0`,e.bottom=`0`,e.pointerEvents=`none`,e.visibility=`hidden`,document.body.appendChild(R)}return R.getBoundingClientRect()}function B(e,t){let n=z();return{top:t,left:e,height:0,width:0,right:n.width-e,bottom:n.height-t}}function V(e){let t=e.getBoundingClientRect(),n=z();return{left:t.left-n.left,top:t.top-n.top,bottom:n.height+n.top-t.bottom,right:n.width+n.left-t.right,width:t.width,height:t.height}}function H(e){return e.nodeType===9?null:e.parentNode}function U(e){if(e===null)return null;let t=H(e);if(t===null)return null;if(t.nodeType===9)return document;if(t.nodeType===1){let{overflow:e,overflowX:n,overflowY:r}=getComputedStyle(t);if(/(auto|scroll|overlay)/.test(e+r+n))return t}return U(t)}var W=e({name:`Binder`,props:{syncTargetWithParent:Boolean,syncTarget:{type:Boolean,default:!0}},setup(e){s(`VBinder`,d()?.proxy);let n=t(`VBinder`,null),i=f(null),a=t=>{i.value=t,n&&e.syncTargetWithParent&&n.setTargetRef(t)},o=[],c=()=>{let e=i.value;for(;e=U(e),e!==null;)o.push(e);for(let e of o)h(`scroll`,e,_,!0)},l=()=>{for(let e of o)g(`scroll`,e,_,!0);o=[]},u=new Set,p=e=>{u.size===0&&c(),u.has(e)||u.add(e)},m=e=>{u.has(e)&&u.delete(e),u.size===0&&l()},_=()=>{A(v)},v=()=>{u.forEach(e=>e())},y=new Set,b=e=>{y.size===0&&h(`resize`,window,S),y.has(e)||y.add(e)},x=e=>{y.has(e)&&y.delete(e),y.size===0&&g(`resize`,window,S)},S=()=>{y.forEach(e=>e())};return r(()=>{g(`resize`,window,S),l()}),{targetRef:i,setTargetRef:a,addScrollListener:p,removeScrollListener:m,addResizeListener:b,removeResizeListener:x}},render(){return b(`binder`,this.$slots)}}),G=e({name:`Target`,setup(){let{setTargetRef:e,syncTarget:n}=t(`VBinder`);return{syncTarget:n,setTargetDirective:{mounted:e,updated:e}}},render(){let{syncTarget:e,setTargetDirective:t}=this;return e?c(x(`follower`,this.$slots),[[t]]):x(`follower`,this.$slots)}}),{c:K}=l(),q=`vueuc-style`,J={top:`bottom`,bottom:`top`,left:`right`,right:`left`},Y={start:`end`,center:`center`,end:`start`},X={top:`height`,bottom:`height`,left:`width`,right:`width`},Z={"bottom-start":`top left`,bottom:`top center`,"bottom-end":`top right`,"top-start":`bottom left`,top:`bottom center`,"top-end":`bottom right`,"right-start":`top left`,right:`center left`,"right-end":`bottom left`,"left-start":`top right`,left:`center right`,"left-end":`bottom right`},ee={"bottom-start":`bottom left`,bottom:`bottom center`,"bottom-end":`bottom right`,"top-start":`top left`,top:`top center`,"top-end":`top right`,"right-start":`top right`,right:`center right`,"right-end":`bottom right`,"left-start":`top left`,left:`center left`,"left-end":`bottom left`},te={"bottom-start":`right`,"bottom-end":`left`,"top-start":`right`,"top-end":`left`,"right-start":`bottom`,"right-end":`top`,"left-start":`bottom`,"left-end":`top`},Q={top:!0,bottom:!1,left:!0,right:!1},$={top:`end`,bottom:`start`,left:`end`,right:`start`};function ne(e,t,n,r,i,a){if(!i||a)return{placement:e,top:0,left:0};let[o,s]=e.split(`-`),c=s??`center`,l={top:0,left:0},u=(e,i,a)=>{let o=0,s=0,c=n[e]-t[i]-t[e];return c>0&&r&&(a?s=Q[i]?c:-c:o=Q[i]?c:-c),{left:o,top:s}},d=o===`left`||o===`right`;if(c!==`center`){let r=te[e],i=J[r],a=X[r];if(n[a]>t[a]){if(t[r]+t[a]t[i]&&(c=Y[s])}else{let e=o===`bottom`||o===`top`?`left`:`top`,r=J[e],i=X[e],a=(n[i]-t[i])/2;(t[e]t[r]?(c=$[e],l=u(i,e,d)):(c=$[r],l=u(i,r,d)))}let f=o;return t[o] *`,{pointerEvents:`all`})])]),oe=e({name:`Follower`,inheritAttrs:!1,props:{show:Boolean,enabled:{type:Boolean,default:void 0},placement:{type:String,default:`bottom`},syncTrigger:{type:Array,default:[`resize`,`scroll`]},to:[String,Object],flip:{type:Boolean,default:!0},internalShift:Boolean,x:Number,y:Number,width:String,minWidth:String,containerClass:String,teleportDisabled:Boolean,zindexable:{type:Boolean,default:!0},zIndex:Number,overlap:Boolean},setup(e){let i=t(`VBinder`),a=T(()=>e.enabled===void 0?e.show:e.enabled),s=f(null),c=f(null),l=()=>{let{syncTrigger:t}=e;t.includes(`scroll`)&&i.addScrollListener(g),t.includes(`resize`)&&i.addResizeListener(g)},d=()=>{i.removeScrollListener(g),i.removeResizeListener(g)};n(()=>{a.value&&(g(),l())});let h=o();ae.mount({id:`vueuc/binder`,head:!0,anchorMetaName:q,ssr:h}),r(()=>{d()}),N(()=>{a.value&&g()});let g=()=>{if(!a.value)return;let t=s.value;if(t===null)return;let n=i.targetRef,{x:r,y:o,overlap:l}=e,u=r!==void 0&&o!==void 0?B(r,o):V(n);t.style.setProperty(`--v-target-width`,`${Math.round(u.width)}px`),t.style.setProperty(`--v-target-height`,`${Math.round(u.height)}px`);let{width:d,minWidth:f,placement:p,internalShift:m,flip:h}=e;t.setAttribute(`v-placement`,p),l?t.setAttribute(`v-overlap`,``):t.removeAttribute(`v-overlap`);let{style:g}=t;d===`target`?g.width=`${u.width}px`:d===void 0?g.width=``:g.width=d,f===`target`?g.minWidth=`${u.width}px`:f===void 0?g.minWidth=``:g.minWidth=f;let _=V(t),v=V(c.value),{left:y,top:b,placement:x}=ne(p,u,_,m,h,l),S=re(x,l),{left:C,top:w,transform:T}=ie(x,v,u,b,y,l);t.setAttribute(`v-placement`,x),t.style.setProperty(`--v-offset-left`,`${Math.round(y)}px`),t.style.setProperty(`--v-offset-top`,`${Math.round(b)}px`),t.style.transform=`translateX(${C}) translateY(${w}) ${T}`,t.style.setProperty(`--v-transform-origin`,S),t.style.transformOrigin=S};u(a,e=>{e?(l(),_()):d()});let _=()=>{m().then(g).catch(e=>console.error(e))};[`placement`,`x`,`y`,`internalShift`,`flip`,`width`,`overlap`,`minWidth`].forEach(t=>{u(p(e,t),g)}),[`teleportDisabled`].forEach(t=>{u(p(e,t),_)}),u(p(e,`syncTrigger`),e=>{e.includes(`resize`)?i.addResizeListener(g):i.removeResizeListener(g),e.includes(`scroll`)?i.addScrollListener(g):i.removeScrollListener(g)});let v=E();return{VBinder:i,mergedEnabled:a,offsetContainerRef:c,followerRef:s,mergedTo:T(()=>{let{to:t}=e;if(t!==void 0)return t;v.value}),syncPosition:g}},render(){return i(y,{show:this.show,to:this.mergedTo,disabled:this.teleportDisabled},{default:()=>{var e;let t=i(`div`,{class:[`v-binder-follower-container`,this.containerClass],ref:`offsetContainerRef`},[i(`div`,{class:`v-binder-follower-content`,ref:`followerRef`},(e=this.$slots).default?.call(e))]);return this.zindexable?c(t,[[S,{enabled:this.mergedEnabled,zIndex:this.zIndex}]]):t}})}});export{W as a,P as c,G as i,N as l,K as n,L as o,q as r,F as s,oe as t,A as u}; \ No newline at end of file diff --git a/frontend/dist/assets/FormItem-wq05wphK.js b/frontend/dist/assets/FormItem-TGv2UHIS.js similarity index 99% rename from frontend/dist/assets/FormItem-wq05wphK.js rename to frontend/dist/assets/FormItem-TGv2UHIS.js index 7a39008..e006d00 100644 --- a/frontend/dist/assets/FormItem-wq05wphK.js +++ b/frontend/dist/assets/FormItem-TGv2UHIS.js @@ -1,4 +1,4 @@ -import{At as e,Ft as t,Gt as n,Ht as r,J as i,Nt as a,U as o,W as s,X as c,Yt as l,at as u,ct as d,g as f,in as p,jt as m,m as h,nt as g,ot as _,rt as v,vn as y,xn as b,xt as x}from"./client-DrrW410h.js";import{i as S}from"./Scrollbar-BUURfLNv.js";import{o as C}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{o as w,t as T}from"./get-C_ZePhTF.js";import{t as ee}from"./use-form-item-CNQ45NOh.js";import{g as te,lt as E,ot as ne}from"./index-cNEa5D1b.js";function re(e,n,i){let a=t(e,null);if(a===null)return;let o=m()?.proxy;p(i,s),s(i.value),r(()=>{s(void 0,i.value)});function s(e,t){if(!a)return;let r=a[n];t!==void 0&&c(r,t),e!==void 0&&l(r,e)}function c(e,t){e[t]||(e[t]=[]),e[t].splice(e[t].findIndex(e=>e===o),1)}function l(e,t){e[t]||(e[t]=[]),~e[t].findIndex(e=>e===o)||e[t].push(o)}}var D=c(`n-form`),ie=c(`n-form-item-insts`);function O(){return O=Object.assign?Object.assign.bind():function(e){for(var t=1;t`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function N(e,t,n){return N=M()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&j(i,n.prototype),i},N.apply(null,arguments)}function P(e){return Function.toString.call(e).indexOf(`[native code]`)!==-1}function F(e){var t=typeof Map==`function`?new Map:void 0;return F=function(e){if(e===null||!P(e))return e;if(typeof e!=`function`)throw TypeError(`Super expression must either be null or a function`);if(t!==void 0){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return N(e,arguments,A(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),j(n,e)},F(e)}var I=/%[sdj%]/g,L=function(){};function R(e){if(!e||!e.length)return null;var t={};return e.forEach(function(e){var n=e.field;t[n]=t[n]||[],t[n].push(e)}),t}function z(e){var t=[...arguments].slice(1),n=0,r=t.length;return typeof e==`function`?e.apply(null,t):typeof e==`string`?e.replace(I,function(e){if(e===`%%`)return`%`;if(n>=r)return e;switch(e){case`%s`:return String(t[n++]);case`%d`:return Number(t[n++]);case`%j`:try{return JSON.stringify(t[n++])}catch{return`[Circular]`}break;default:return e}}):e}function B(e){return e===`string`||e===`url`||e===`hex`||e===`email`||e===`date`||e===`pattern`}function V(e,t){return!!(e==null||t===`array`&&Array.isArray(e)&&!e.length||B(t)&&typeof e==`string`&&!e)}function H(e,t,n){var r=[],i=0,a=e.length;function o(e){r.push.apply(r,e||[]),i++,i===a&&n(r)}e.forEach(function(e){t(e,o)})}function U(e,t,n){var r=0,i=e.length;function a(o){if(o&&o.length){n(o);return}var s=r;r+=1,s{s(void 0,i.value)});function s(e,t){if(!a)return;let r=a[n];t!==void 0&&c(r,t),e!==void 0&&l(r,e)}function c(e,t){e[t]||(e[t]=[]),e[t].splice(e[t].findIndex(e=>e===o),1)}function l(e,t){e[t]||(e[t]=[]),~e[t].findIndex(e=>e===o)||e[t].push(o)}}var D=c(`n-form`),ie=c(`n-form-item-insts`);function O(){return O=Object.assign?Object.assign.bind():function(e){for(var t=1;t`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function N(e,t,n){return N=M()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&j(i,n.prototype),i},N.apply(null,arguments)}function P(e){return Function.toString.call(e).indexOf(`[native code]`)!==-1}function F(e){var t=typeof Map==`function`?new Map:void 0;return F=function(e){if(e===null||!P(e))return e;if(typeof e!=`function`)throw TypeError(`Super expression must either be null or a function`);if(t!==void 0){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return N(e,arguments,A(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),j(n,e)},F(e)}var I=/%[sdj%]/g,L=function(){};function R(e){if(!e||!e.length)return null;var t={};return e.forEach(function(e){var n=e.field;t[n]=t[n]||[],t[n].push(e)}),t}function z(e){var t=[...arguments].slice(1),n=0,r=t.length;return typeof e==`function`?e.apply(null,t):typeof e==`string`?e.replace(I,function(e){if(e===`%%`)return`%`;if(n>=r)return e;switch(e){case`%s`:return String(t[n++]);case`%d`:return Number(t[n++]);case`%j`:try{return JSON.stringify(t[n++])}catch{return`[Circular]`}break;default:return e}}):e}function B(e){return e===`string`||e===`url`||e===`hex`||e===`email`||e===`date`||e===`pattern`}function V(e,t){return!!(e==null||t===`array`&&Array.isArray(e)&&!e.length||B(t)&&typeof e==`string`&&!e)}function H(e,t,n){var r=[],i=0,a=e.length;function o(e){r.push.apply(r,e||[]),i++,i===a&&n(r)}e.forEach(function(e){t(e,o)})}function U(e,t,n){var r=0,i=e.length;function a(o){if(o&&o.length){n(o);return}var s=r;r+=1,se.questionCode==t)?.score??`—`}let $=g(()=>{let e=Z.value.map(e=>e.place).filter(e=>e!=null);if(e.length==0)return[];let t=Math.min(...e);return Z.value.filter(e=>e.place===t)}),ue=g(()=>$.value.length>1?`Победители`:`Победитель`),de=g(()=>{let e=$.value.map(e=>e.team?.name||``).filter(e=>e!=``);return e.length<=1?e[0]||``:e.length==2?e[0]+` и `+e[1]:e.slice(0,-1).join(`, `)+` и `+e[e.length-1]});function fe(){U.push(`/login`)}function pe(){x.logout(),U.push(`/login`)}function me(){if(window.history.state?.back){U.back();return}U.push(`/games`)}return(e,n)=>(r(),o(u,null,[a(`div`,te,[a(`div`,ne,[a(`div`,re,[d(t(S),{justify:`space-between`,align:`center`},{default:f(()=>[a(`div`,null,[n[0]||=a(`div`,{class:`page-title`},`Итоги игры`,-1),Q.value?(r(),o(`div`,ie,s(Q.value),1)):h(``,!0)]),d(t(b),{quaternary:``,onClick:me},{default:f(()=>[...n[1]||=[i(`Назад`,-1)]]),_:1})]),_:1})]),G.value&&$.value.length>0?(r(),o(`div`,ae,[a(`span`,D,[d(t(v),{size:`56`},{default:f(()=>[d(t(ee))]),_:1})]),a(`div`,O,s(ue.value),1),a(`div`,k,s(de.value),1),a(`div`,A,` Баллы: `+s($.value[0]?.totalScore??0)+` · Поездки: `+s($.value[0]?.actionsCount??0),1),n[2]||=a(`div`,{class:`winner-congrats`},`Поздравляем!`,-1)])):h(``,!0),Y.value?(r(),o(`div`,j,[n[4]||=a(`p`,{class:`info-title`},`Для просмотра итогов игры нужно войти в систему`,-1),d(t(S),{justify:`end`},{default:f(()=>[d(t(b),{onClick:fe},{default:f(()=>[...n[3]||=[i(`Войти`,-1)]]),_:1})]),_:1})])):K.value?(r(),o(`div`,M,[a(`p`,N,s(q.value),1),J.value?(r(),o(u,{key:0},[n[6]||=a(`p`,{class:`info-subtitle`},`Сессия могла истечь — попробуйте войти заново`,-1),d(t(S),{justify:`end`},{default:f(()=>[d(t(b),{onClick:pe},{default:f(()=>[...n[5]||=[i(`Войти заново`,-1)]]),_:1})]),_:1})],64)):h(``,!0)])):G.value&&Z.value.length==0?(r(),o(`div`,P,[...n[7]||=[a(`p`,{class:`info-title`},`Результаты пока не готовы`,-1)]])):G.value?(r(),o(`div`,F,[a(`table`,I,[a(`thead`,null,[a(`tr`,null,[n[8]||=a(`th`,{class:`place-col`},`Место`,-1),n[9]||=a(`th`,{class:`team-col`},`Команда`,-1),(r(!0),o(u,null,c(X.value,e=>(r(),o(`th`,{key:e.code,class:`question-col`},[a(`div`,L,s(e.code),1)]))),128)),n[10]||=a(`th`,{class:`number-col`},`Сумма`,-1),n[11]||=a(`th`,{class:`number-col`},`Поездки`,-1)])]),a(`tbody`,null,[(r(!0),o(u,null,c(Z.value,e=>(r(),o(`tr`,{key:e.team?.ID},[a(`td`,R,[e.place!=null&&e.place>=1&&e.place<=3?(r(),o(`span`,{key:0,class:_([`place-badge`,`place-`+e.place])},s(e.place),3)):(r(),o(`span`,z,s(e.place),1))]),a(`td`,B,s(e.team?.name),1),(r(!0),o(u,null,c(X.value,t=>(r(),o(`td`,{key:t.code,class:`number-col`},s(le(e,t.code)),1))),128)),a(`td`,V,s(e.totalScore),1),a(`td`,oe,s(e.actionsCount),1)]))),128))])])])):h(``,!0)])]),d(T,{active:`games`})],64))}}),[[`__scopeId`,`data-v-ede2677c`]]),U=e({__name:`GameResultsView`,setup(e){return(e,t)=>(r(),n(H))}});export{U as default}; \ No newline at end of file +import{At as e,Cn as t,Ct as n,Jt as r,Ot as i,St as a,Tt as o,Vn as s,Xt as c,d as l,gt as u,kt as d,sn as f,u as p,vn as m,wt as h,xt as g,zn as _}from"./client-DrrW410h.js";import{n as v,r as y}from"./ui-BXphkCO3.js";import{t as b}from"./Button-VP0HlDWp.js";import{t as x}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as S}from"./Flex-C50LOLeC.js";import{i as C,o as w}from"./index-CvfVA1ID.js";import{t as T}from"./HeaderMenu-DjAjwijB.js";var E={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},ee=e({name:`TrophyFilled`,render:function(e,t){return r(),o(`svg`,E,t[0]||=[a(`path`,{d:`M26 7h-2V6a2.002 2.002 0 0 0-2-2H10a2.002 2.002 0 0 0-2 2v1H6a2.002 2.002 0 0 0-2 2v3a4.005 4.005 0 0 0 4 4h.322A8.169 8.169 0 0 0 15 21.934V26h-5v2h12v-2h-5v-4.069A7.966 7.966 0 0 0 23.74 16H24a4.005 4.005 0 0 0 4-4V9a2.002 2.002 0 0 0-2-2zM8 14a2.002 2.002 0 0 1-2-2V9h2zm18-2a2.002 2.002 0 0 1-2 2V9h2z`,fill:`currentColor`},null,-1)])}}),te={class:`center-block-custom`},ne={class:`width1200`},re={class:`page-header`},ie={key:0,class:`game-name`},ae={key:0,class:`winner-block`},D={class:`winner-cup`,"aria-hidden":`true`},O={class:`winner-label`},k={class:`winner-names`},A={class:`winner-stats`},j={key:1,class:`info-block`},M={key:2,class:`info-block`},N={class:`info-title`},P={key:3,class:`info-block`},F={key:4,class:`table-scroll`},I={class:`results-table`},L={class:`question-text`},R={class:`place-col`},z={key:1,class:`place-plain`},B={class:`team-col`},V={class:`number-col`},oe={class:`number-col`},H=x(e({__name:`GameResultsPage`,setup(e){let n=C(),x=w(),E=y(),H=p(),U=l(),W=H.params.id,G=m(!1),K=m(!1),q=m(``),J=m(!1),Y=m(!1),X=m([]),Z=m([]),Q=m(``);async function se(){G.value=!1,K.value=!1,Y.value=!1,J.value=!1;try{let e=await n.GetGameResults({gameID:Number(W)});X.value=e.questions||[],Z.value=e.teams||[],G.value=!0}catch{x.isAuthenticated?(q.value=`Не удалось загрузить результаты`,E.error(q.value),J.value=!0,K.value=!0):Y.value=!0}}se();async function ce(){try{let e=await n.GetGame({ID:Number(W)});Q.value=e.game?.name||``}catch{}}ce();function le(e,t){return(e.answers||[]).find(e=>e.questionCode==t)?.score??`—`}let $=g(()=>{let e=Z.value.map(e=>e.place).filter(e=>e!=null);if(e.length==0)return[];let t=Math.min(...e);return Z.value.filter(e=>e.place===t)}),ue=g(()=>$.value.length>1?`Победители`:`Победитель`),de=g(()=>{let e=$.value.map(e=>e.team?.name||``).filter(e=>e!=``);return e.length<=1?e[0]||``:e.length==2?e[0]+` и `+e[1]:e.slice(0,-1).join(`, `)+` и `+e[e.length-1]});function fe(){U.push(`/login`)}function pe(){x.logout(),U.push(`/login`)}function me(){if(window.history.state?.back){U.back();return}U.push(`/games`)}return(e,n)=>(r(),o(u,null,[a(`div`,te,[a(`div`,ne,[a(`div`,re,[d(t(S),{justify:`space-between`,align:`center`},{default:f(()=>[a(`div`,null,[n[0]||=a(`div`,{class:`page-title`},`Итоги игры`,-1),Q.value?(r(),o(`div`,ie,s(Q.value),1)):h(``,!0)]),d(t(b),{quaternary:``,onClick:me},{default:f(()=>[...n[1]||=[i(`Назад`,-1)]]),_:1})]),_:1})]),G.value&&$.value.length>0?(r(),o(`div`,ae,[a(`span`,D,[d(t(v),{size:`56`},{default:f(()=>[d(t(ee))]),_:1})]),a(`div`,O,s(ue.value),1),a(`div`,k,s(de.value),1),a(`div`,A,` Баллы: `+s($.value[0]?.totalScore??0)+` · Поездки: `+s($.value[0]?.actionsCount??0),1),n[2]||=a(`div`,{class:`winner-congrats`},`Поздравляем!`,-1)])):h(``,!0),Y.value?(r(),o(`div`,j,[n[4]||=a(`p`,{class:`info-title`},`Для просмотра итогов игры нужно войти в систему`,-1),d(t(S),{justify:`end`},{default:f(()=>[d(t(b),{onClick:fe},{default:f(()=>[...n[3]||=[i(`Войти`,-1)]]),_:1})]),_:1})])):K.value?(r(),o(`div`,M,[a(`p`,N,s(q.value),1),J.value?(r(),o(u,{key:0},[n[6]||=a(`p`,{class:`info-subtitle`},`Сессия могла истечь — попробуйте войти заново`,-1),d(t(S),{justify:`end`},{default:f(()=>[d(t(b),{onClick:pe},{default:f(()=>[...n[5]||=[i(`Войти заново`,-1)]]),_:1})]),_:1})],64)):h(``,!0)])):G.value&&Z.value.length==0?(r(),o(`div`,P,[...n[7]||=[a(`p`,{class:`info-title`},`Результаты пока не готовы`,-1)]])):G.value?(r(),o(`div`,F,[a(`table`,I,[a(`thead`,null,[a(`tr`,null,[n[8]||=a(`th`,{class:`place-col`},`Место`,-1),n[9]||=a(`th`,{class:`team-col`},`Команда`,-1),(r(!0),o(u,null,c(X.value,e=>(r(),o(`th`,{key:e.code,class:`question-col`},[a(`div`,L,s(e.code),1)]))),128)),n[10]||=a(`th`,{class:`number-col`},`Сумма`,-1),n[11]||=a(`th`,{class:`number-col`},`Поездки`,-1)])]),a(`tbody`,null,[(r(!0),o(u,null,c(Z.value,e=>(r(),o(`tr`,{key:e.team?.ID},[a(`td`,R,[e.place!=null&&e.place>=1&&e.place<=3?(r(),o(`span`,{key:0,class:_([`place-badge`,`place-`+e.place])},s(e.place),3)):(r(),o(`span`,z,s(e.place),1))]),a(`td`,B,s(e.team?.name),1),(r(!0),o(u,null,c(X.value,t=>(r(),o(`td`,{key:t.code,class:`number-col`},s(le(e,t.code)),1))),128)),a(`td`,V,s(e.totalScore),1),a(`td`,oe,s(e.actionsCount),1)]))),128))])])])):h(``,!0)])]),d(T,{active:`games`})],64))}}),[[`__scopeId`,`data-v-ede2677c`]]),U=e({__name:`GameResultsView`,setup(e){return(e,t)=>(r(),n(H))}});export{U as default}; \ No newline at end of file diff --git a/frontend/dist/assets/GameView-CFltwlqp.js b/frontend/dist/assets/GameView-CFltwlqp.js deleted file mode 100644 index c804efd..0000000 --- a/frontend/dist/assets/GameView-CFltwlqp.js +++ /dev/null @@ -1,280 +0,0 @@ -import{$ as e,$t as t,At as n,Bn as r,Cn as i,Ct as a,Ft as o,Gt as s,Ht as c,Jt as l,Kt as u,Lt as d,Nt as f,Ot as p,St as m,Tt as h,U as g,Ut as _,Vn as v,W as y,X as b,Xt as x,Yt as S,Zt as C,_ as w,at as T,cn as E,ct as D,d as O,f as ee,gt as k,hn as te,in as ne,kt as A,lt as re,m as ie,nn as ae,nt as j,ot as M,p as oe,q as se,rt as N,sn as P,st as ce,u as le,ut as ue,vn as F,wt as I,xn as de,xt as L,zn as fe,zt as pe}from"./client-DrrW410h.js";import{a as me,i as R,o as he,t as ge}from"./Follower-BtPkzZJm.js";import{d as _e}from"./utils-B8DiXMbh.js";import{c as ve,s as ye}from"./Scrollbar-BUURfLNv.js";import{i as z,n as B,r as be,t as xe}from"./ui-CXICC9ah.js";import{i as Se,n as Ce,w as V}from"./Suffix-CV0EsaP5.js";import{t as we}from"./Modal-CUD1N8ld.js";import{t as Te}from"./use-merged-state-CIQwNmUb.js";import{n as Ee,t as H}from"./Button-BZxcJJGv.js";import{n as De,t as Oe}from"./Tabs-ChH8xf-T.js";import{t as ke}from"./Select-D0BL7DpH.js";import{a as U,c as W,i as Ae,o as je,s as Me,t as G}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as Ne}from"./Upload-Q_ddyPUF.js";import{n as Pe}from"./use-form-item-CNQ45NOh.js";import{t as Fe}from"./Add-CkD1py6k.js";import{t as K}from"./Input-Bg8PolMg.js";import{t as Ie}from"./Remove-bjrmPf1I.js";import{t as q}from"./Alert-CewvQG_z.js";import{t as Le}from"./Card-B6dtDIKO.js";import{t as J}from"./Space-CbidFwig.js";import{t as Y}from"./Flex-YVOjVK0A.js";import{t as Re}from"./Rate-Cc7RqaE1.js";import{n as ze,t as Be}from"./usePlaylistActions-BM2ULXiP.js";import{t as Ve}from"./QrCode-BtvoRbPn.js";import{t as He}from"./Spin-D1uP99th.js";import{t as Ue}from"./text-WRQwmy2U.js";import{N as We,O as Ge,P as Ke,Q as qe,U as Je,at as Ye,ft as Xe,i as Ze,it as Qe,j as $e,lt as et,mt as X,o as tt,ot as nt,p as rt,pt as it,r as at,u as ot}from"./index-cNEa5D1b.js";import{t as st}from"./HeaderMenu-BvkSHjS4.js";import{t as ct}from"./binary_client-CCuS4lkD.js";import{n as lt,r as ut}from"./application-Dx7AOLHI.js";import{i as dt,n as ft,r as pt,t as mt}from"./ScreenPreview-CRnT-dgP.js";import{n as ht,t as gt}from"./datetime-BJNH0M1T.js";import{t as _t}from"./useDeviceContext-XjFYIFKI.js";var vt=n({name:`ChevronLeft`,render(){return f(`svg`,{viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},f(`path`,{d:`M10.3536 3.14645C10.5488 3.34171 10.5488 3.65829 10.3536 3.85355L6.20711 8L10.3536 12.1464C10.5488 12.3417 10.5488 12.6583 10.3536 12.8536C10.1583 13.0488 9.84171 13.0488 9.64645 12.8536L5.14645 8.35355C4.95118 8.15829 4.95118 7.84171 5.14645 7.64645L9.64645 3.14645C9.84171 2.95118 10.1583 2.95118 10.3536 3.14645Z`,fill:`currentColor`}))}}),yt=n({name:`ChevronRight`,render(){return f(`svg`,{viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},f(`path`,{d:`M5.64645 3.14645C5.45118 3.34171 5.45118 3.65829 5.64645 3.85355L9.79289 8L5.64645 12.1464C5.45118 12.3417 5.45118 12.6583 5.64645 12.8536C5.84171 13.0488 6.15829 13.0488 6.35355 12.8536L10.8536 8.35355C11.0488 8.15829 11.0488 7.84171 10.8536 7.64645L6.35355 3.14645C6.15829 2.95118 5.84171 2.95118 5.64645 3.14645Z`,fill:`currentColor`}))}}),bt=N(`collapse`,`width: 100%;`,[N(`collapse-item`,` - font-size: var(--n-font-size); - color: var(--n-text-color); - transition: - color .3s var(--n-bezier), - border-color .3s var(--n-bezier); - margin: var(--n-item-margin); - `,[M(`disabled`,[T(`header`,`cursor: not-allowed;`,[T(`header-main`,` - color: var(--n-title-text-color-disabled); - `),N(`collapse-item-arrow`,` - color: var(--n-arrow-color-disabled); - `)])]),N(`collapse-item`,`margin-left: 32px;`),j(`&:first-child`,`margin-top: 0;`),j(`&:first-child >`,[T(`header`,`padding-top: 0;`)]),M(`left-arrow-placement`,[T(`header`,[N(`collapse-item-arrow`,`margin-right: 4px;`)])]),M(`right-arrow-placement`,[T(`header`,[N(`collapse-item-arrow`,`margin-left: 4px;`)])]),T(`content-wrapper`,[T(`content-inner`,`padding-top: 16px;`),Ke({duration:`0.15s`})]),M(`active`,[T(`header`,[M(`active`,[N(`collapse-item-arrow`,`transform: rotate(90deg);`)])])]),j(`&:not(:first-child)`,`border-top: 1px solid var(--n-divider-color);`),ce(`disabled`,[M(`trigger-area-main`,[T(`header`,[T(`header-main`,`cursor: pointer;`),N(`collapse-item-arrow`,`cursor: default;`)])]),M(`trigger-area-arrow`,[T(`header`,[N(`collapse-item-arrow`,`cursor: pointer;`)])]),M(`trigger-area-extra`,[T(`header`,[T(`header-extra`,`cursor: pointer;`)])])]),T(`header`,` - font-size: var(--n-title-font-size); - display: flex; - flex-wrap: nowrap; - align-items: center; - transition: color .3s var(--n-bezier); - position: relative; - padding: var(--n-title-padding); - color: var(--n-title-text-color); - `,[T(`header-main`,` - display: flex; - flex-wrap: nowrap; - align-items: center; - font-weight: var(--n-title-font-weight); - transition: color .3s var(--n-bezier); - flex: 1; - color: var(--n-title-text-color); - `),T(`header-extra`,` - display: flex; - align-items: center; - transition: color .3s var(--n-bezier); - color: var(--n-text-color); - `),N(`collapse-item-arrow`,` - display: flex; - transition: - transform .15s var(--n-bezier), - color .3s var(--n-bezier); - font-size: 18px; - color: var(--n-arrow-color); - `)])])]),xt=Object.assign(Object.assign({},ie.props),{defaultExpandedNames:{type:[Array,String],default:null},expandedNames:[Array,String],arrowPlacement:{type:String,default:`left`},accordion:{type:Boolean,default:!1},displayDirective:{type:String,default:`if`},triggerAreas:{type:Array,default:()=>[`main`,`extra`,`arrow`]},onItemHeaderClick:[Function,Array],"onUpdate:expandedNames":[Function,Array],onUpdateExpandedNames:[Function,Array],onExpandedNamesChange:{type:[Function,Array],validator:()=>!0,default:void 0}}),St=b(`n-collapse`),Ct=n({name:`Collapse`,props:xt,slots:Object,setup(e,{slots:t}){let{mergedClsPrefixRef:n,inlineThemeDisabled:r,mergedRtlRef:i}=y(e),a=F(e.defaultExpandedNames),o=Te(L(()=>e.expandedNames),a),s=ie(`Collapse`,`-collapse`,bt,Ge,e,n);function c(t){let{"onUpdate:expandedNames":n,onUpdateExpandedNames:r,onExpandedNamesChange:i}=e;r&&W(r,t),n&&W(n,t),i&&W(i,t),a.value=t}function l(t){let{onItemHeaderClick:n}=e;n&&W(n,t)}function u(t,n,r){let{accordion:i}=e,{value:a}=o;if(i)t?(c([n]),l({name:n,expanded:!0,event:r})):(c([]),l({name:n,expanded:!1,event:r}));else if(!Array.isArray(a))c([n]),l({name:n,expanded:!0,event:r});else{let e=a.slice(),t=e.findIndex(e=>n===e);~t?(e.splice(t,1),c(e),l({name:n,expanded:!1,event:r})):(e.push(n),c(e),l({name:n,expanded:!0,event:r}))}}S(St,{props:e,mergedClsPrefixRef:n,expandedNamesRef:o,slots:t,toggleItem:u});let d=w(`Collapse`,i,n),f=L(()=>{let{common:{cubicBezierEaseInOut:e},self:{titleFontWeight:t,dividerColor:n,titlePadding:r,titleTextColor:i,titleTextColorDisabled:a,textColor:o,arrowColor:c,fontSize:l,titleFontSize:u,arrowColorDisabled:d,itemMargin:f}}=s.value;return{"--n-font-size":l,"--n-bezier":e,"--n-text-color":o,"--n-divider-color":n,"--n-title-padding":r,"--n-title-font-size":u,"--n-title-text-color":i,"--n-title-text-color-disabled":a,"--n-title-font-weight":t,"--n-arrow-color":c,"--n-arrow-color-disabled":d,"--n-item-margin":f}}),p=r?g(`collapse`,void 0,f,e):void 0;return{rtlEnabled:d,mergedTheme:s,mergedClsPrefix:n,cssVars:r?void 0:f,themeClass:p?.themeClass,onRender:p?.onRender}},render(){var e;return(e=this.onRender)==null||e.call(this),f(`div`,{class:[`${this.mergedClsPrefix}-collapse`,this.rtlEnabled&&`${this.mergedClsPrefix}-collapse--rtl`,this.themeClass],style:this.cssVars},this.$slots)}}),wt=n({name:`CollapseItemContent`,props:{displayDirective:{type:String,required:!0},show:Boolean,clsPrefix:{type:String,required:!0}},setup(e){return{onceTrue:V(de(e,`show`))}},render(){return f(Je,null,{default:()=>{let{show:e,displayDirective:t,onceTrue:n,clsPrefix:r}=this,i=t===`show`&&n,a=f(`div`,{class:`${r}-collapse-item__content-wrapper`},f(`div`,{class:`${r}-collapse-item__content-inner`},this.$slots));return i?E(a,[[Xe,e]]):e?a:null}})}}),Tt=n({name:`CollapseItem`,props:{title:String,name:[String,Number],disabled:Boolean,displayDirective:String},setup(e){let{mergedRtlRef:t}=y(e),n=nt(),r=Ye(()=>e.name??n),i=o(St);i||se(`collapse-item`,"`n-collapse-item` must be placed inside `n-collapse`.");let{expandedNamesRef:a,props:s,mergedClsPrefixRef:c,slots:l}=i,u=L(()=>{let{value:e}=a;if(Array.isArray(e)){let{value:t}=r;return!~e.findIndex(e=>e===t)}else if(e){let{value:t}=r;return t!==e}return!0});return{rtlEnabled:w(`Collapse`,t,c),collapseSlots:l,randomName:n,mergedClsPrefix:c,collapsed:u,triggerAreas:de(s,`triggerAreas`),mergedDisplayDirective:L(()=>{let{displayDirective:t}=e;return t||s.displayDirective}),arrowPlacement:L(()=>s.arrowPlacement),handleClick(t){let n=`main`;_e(t,`arrow`)&&(n=`arrow`),_e(t,`extra`)&&(n=`extra`),s.triggerAreas.includes(n)&&i&&!e.disabled&&i.toggleItem(u.value,r.value,t)}}},render(){let{collapseSlots:e,$slots:t,arrowPlacement:n,collapsed:r,mergedDisplayDirective:i,mergedClsPrefix:a,disabled:o,triggerAreas:s}=this,c=U(t.header,{collapsed:r},()=>[this.title]),l=t[`header-extra`]||e[`header-extra`],u=t.arrow||e.arrow;return f(`div`,{class:[`${a}-collapse-item`,`${a}-collapse-item--${n}-arrow-placement`,o&&`${a}-collapse-item--disabled`,!r&&`${a}-collapse-item--active`,s.map(e=>`${a}-collapse-item--trigger-area-${e}`)]},f(`div`,{class:[`${a}-collapse-item__header`,!r&&`${a}-collapse-item__header--active`]},f(`div`,{class:`${a}-collapse-item__header-main`,onClick:this.handleClick},n===`right`&&c,f(`div`,{class:`${a}-collapse-item-arrow`,key:+!this.rtlEnabled,"data-arrow":!0},U(u,{collapsed:r},()=>[f(qe,{clsPrefix:a},{default:()=>this.rtlEnabled?f(vt,null):f(yt,null)})])),n===`left`&&c),Me(l,{collapsed:r},e=>f(`div`,{class:`${a}-collapse-item__header-extra`,onClick:this.handleClick,"data-extra":!0},e))),f(wt,{clsPrefix:a,displayDirective:i,show:!r},t))}});function Et(e){let{textColorDisabled:t}=e;return{iconColorDisabled:t}}var Dt=oe({name:`InputNumber`,common:ee,peers:{Button:$e,Input:We},self:Et});function Ot(e){let{railColor:t,primaryColor:n,baseColor:r,cardColor:i,modalColor:a,popoverColor:o,borderRadius:s,fontSize:c,opacityDisabled:l}=e;return Object.assign(Object.assign({},rt),{fontSize:c,markFontSize:c,railColor:t,railColorHover:t,fillColor:n,fillColorHover:n,opacityDisabled:l,handleColor:`#FFF`,dotColor:i,dotColorModal:a,dotColorPopover:o,handleBoxShadow:`0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)`,handleBoxShadowHover:`0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)`,handleBoxShadowActive:`0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)`,handleBoxShadowFocus:`0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)`,indicatorColor:`rgba(0, 0, 0, .85)`,indicatorBoxShadow:`0 2px 8px 0 rgba(0, 0, 0, 0.12)`,indicatorTextColor:r,indicatorBorderRadius:s,dotBorder:`2px solid ${t}`,dotBorderActive:`2px solid ${n}`,dotBoxShadow:``})}var kt={name:`Slider`,common:ee,self:Ot},At=j([N(`input-number-suffix`,` - display: inline-block; - margin-right: 10px; - `),N(`input-number-prefix`,` - display: inline-block; - margin-left: 10px; - `)]);function jt(e){return e==null||typeof e==`string`&&e.trim()===``?null:Number(e)}function Mt(e){return e.includes(`.`)&&(/^(-)?\d+.*(\.|0)$/.test(e)||/^-?\d*$/.test(e))||e===`-`||e===`-0`}function Nt(e){return e==null?!0:!Number.isNaN(e)}function Pt(e,t){return typeof e==`number`?t===void 0?String(e):e.toFixed(t):``}function Ft(e){if(e===null)return null;if(typeof e==`number`)return e;{let t=Number(e);return Number.isNaN(t)?null:t}}var It=800,Z=100,Lt=n({name:`InputNumber`,props:Object.assign(Object.assign({},ie.props),{autofocus:Boolean,loading:{type:Boolean,default:void 0},placeholder:String,defaultValue:{type:Number,default:null},value:Number,step:{type:[Number,String],default:1},min:[Number,String],max:[Number,String],size:String,disabled:{type:Boolean,default:void 0},validator:Function,bordered:{type:Boolean,default:void 0},showButton:{type:Boolean,default:!0},buttonPlacement:{type:String,default:`right`},inputProps:Object,readonly:Boolean,clearable:Boolean,keyboard:{type:Object,default:{}},updateValueOnInput:{type:Boolean,default:!0},round:{type:Boolean,default:void 0},parse:Function,format:Function,precision:Number,status:String,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onFocus:[Function,Array],onBlur:[Function,Array],onClear:[Function,Array],onChange:[Function,Array]}),slots:Object,setup(t){let{mergedBorderedRef:n,mergedClsPrefixRef:r,mergedRtlRef:i,mergedComponentPropsRef:a}=y(t),o=ie(`InputNumber`,`-input-number`,At,Dt,t,r),{localeRef:s}=Se(`InputNumber`),c=Pe(t,{mergedSize:e=>{let{size:n}=t;if(n)return n;let{mergedSize:r}=e||{};return r?.value?r.value:a?.value?.InputNumber?.size||`medium`}}),{mergedSizeRef:l,mergedDisabledRef:u,mergedStatusRef:d}=c,f=F(null),p=F(null),m=F(null),h=F(t.defaultValue),g=Te(de(t,`value`),h),_=F(``),v=e=>{let t=String(e).split(`.`)[1];return t?t.length:0},b=e=>{let n=[t.min,t.max,t.step,e].map(e=>e===void 0?0:v(e));return Math.max(...n)},x=Ye(()=>{let{placeholder:e}=t;return e===void 0?s.value.placeholder:e}),S=Ye(()=>{let e=Ft(t.step);return e===null||e===0?1:Math.abs(e)}),C=Ye(()=>{let e=Ft(t.min);return e===null?null:e}),T=Ye(()=>{let e=Ft(t.max);return e===null?null:e}),E=()=>{let{value:e}=g;if(Nt(e)){let{format:n,precision:r}=t;n?_.value=n(e):e===null||r===void 0||v(e)>r?_.value=Pt(e,void 0):_.value=Pt(e,r)}else _.value=String(e)};E();let D=e=>{let{value:n}=g;if(e===n){E();return}let{"onUpdate:value":r,onUpdateValue:i,onChange:a}=t,{nTriggerFormInput:o,nTriggerFormChange:s}=c;a&&W(a,e),i&&W(i,e),r&&W(r,e),h.value=e,o(),s()},O=({offset:e,doUpdateIfValid:n,fixPrecision:r,isInputing:i})=>{let{value:a}=_;if(i&&Mt(a))return!1;let o=(t.parse||jt)(a);if(o===null)return n&&D(null),null;if(Nt(o)){let a=v(o),{precision:s}=t;if(s!==void 0&&se){if(!n||i)return!1;c=e}if(r!==null&&cO({offset:0,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})===!1),k=Ye(()=>{let{value:e}=g;if(t.validator&&e===null)return!1;let{value:n}=S;return O({offset:-n,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})!==!1}),te=Ye(()=>{let{value:e}=g;if(t.validator&&e===null)return!1;let{value:n}=S;return O({offset:+n,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})!==!1});function A(e){let{onFocus:n}=t,{nTriggerFormFocus:r}=c;n&&W(n,e),r()}function re(e){if(e.target===f.value?.wrapperElRef)return;let n=O({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0});if(n!==!1){let e=f.value?.inputElRef;e&&(e.value=String(n||``)),g.value===n&&E()}else E();let{onBlur:r}=t,{nTriggerFormBlur:i}=c;r&&W(r,e),i(),pe(()=>{E()})}function ae(e){let{onClear:n}=t;n&&W(n,e)}function j(){let{value:e}=te;if(!e){R();return}let{value:n}=g;if(n===null)t.validator||D(N());else{let{value:e}=S;O({offset:e,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})}}function M(){let{value:e}=k;if(!e){fe();return}let{value:n}=g;if(n===null)t.validator||D(N());else{let{value:e}=S;O({offset:-e,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})}}let oe=A,se=re;function N(){if(t.validator)return null;let{value:e}=C,{value:n}=T;return e===null?n===null?0:Math.min(0,n):Math.max(0,e)}function P(e){ae(e),D(null)}function ce(e){var t;m.value?.$el.contains(e.target)&&e.preventDefault(),p.value?.$el.contains(e.target)&&e.preventDefault(),(t=f.value)==null||t.activate()}let le=null,ue=null,I=null;function fe(){I&&=(window.clearTimeout(I),null),le&&=(window.clearInterval(le),null)}let me=null;function R(){me&&=(window.clearTimeout(me),null),ue&&=(window.clearInterval(ue),null)}function he(){fe(),I=window.setTimeout(()=>{le=window.setInterval(()=>{M()},Z)},It),ve(`mouseup`,document,fe,{once:!0})}function ge(){R(),me=window.setTimeout(()=>{ue=window.setInterval(()=>{j()},Z)},It),ve(`mouseup`,document,R,{once:!0})}let _e=()=>{ue||j()},ye=()=>{le||M()};function z(e){var n;if(e.key===`Enter`){if(e.target===f.value?.wrapperElRef)return;O({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&((n=f.value)==null||n.deactivate())}else if(e.key===`ArrowUp`){if(!te.value||t.keyboard.ArrowUp===!1)return;e.preventDefault(),O({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&j()}else if(e.key===`ArrowDown`){if(!k.value||t.keyboard.ArrowDown===!1)return;e.preventDefault(),O({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&M()}}function B(e){_.value=e,t.updateValueOnInput&&!t.format&&!t.parse&&t.precision===void 0&&O({offset:0,doUpdateIfValid:!0,isInputing:!0,fixPrecision:!1})}ne(g,()=>{E()});let be={focus:()=>f.value?.focus(),blur:()=>f.value?.blur(),select:()=>f.value?.select()},xe=w(`InputNumber`,i,r);return Object.assign(Object.assign({},be),{rtlEnabled:xe,inputInstRef:f,minusButtonInstRef:p,addButtonInstRef:m,mergedClsPrefix:r,mergedBordered:n,uncontrolledValue:h,mergedValue:g,mergedPlaceholder:x,displayedValueInvalid:ee,mergedSize:l,mergedDisabled:u,displayedValue:_,addable:te,minusable:k,mergedStatus:d,handleFocus:oe,handleBlur:se,handleClear:P,handleMouseDown:ce,handleAddClick:_e,handleMinusClick:ye,handleAddMousedown:ge,handleMinusMousedown:he,handleKeyDown:z,handleUpdateDisplayedValue:B,mergedTheme:o,inputThemeOverrides:{paddingSmall:`0 8px 0 10px`,paddingMedium:`0 8px 0 12px`,paddingLarge:`0 8px 0 14px`},buttonThemeOverrides:L(()=>{let{self:{iconColorDisabled:t}}=o.value,[n,r,i,a]=e(t);return{textColorTextDisabled:`rgb(${n}, ${r}, ${i})`,opacityDisabled:`${a}`}})})},render(){let{mergedClsPrefix:e,$slots:t}=this,n=()=>f(Ee,{text:!0,disabled:!this.minusable||this.mergedDisabled||this.readonly,focusable:!1,theme:this.mergedTheme.peers.Button,themeOverrides:this.mergedTheme.peerOverrides.Button,builtinThemeOverrides:this.buttonThemeOverrides,onClick:this.handleMinusClick,onMousedown:this.handleMinusMousedown,ref:`minusButtonInstRef`},{icon:()=>Ae(t[`minus-icon`],()=>[f(qe,{clsPrefix:e},{default:()=>f(Ie,null)})])}),r=()=>f(Ee,{text:!0,disabled:!this.addable||this.mergedDisabled||this.readonly,focusable:!1,theme:this.mergedTheme.peers.Button,themeOverrides:this.mergedTheme.peerOverrides.Button,builtinThemeOverrides:this.buttonThemeOverrides,onClick:this.handleAddClick,onMousedown:this.handleAddMousedown,ref:`addButtonInstRef`},{icon:()=>Ae(t[`add-icon`],()=>[f(qe,{clsPrefix:e},{default:()=>f(Fe,null)})])});return f(`div`,{class:[`${e}-input-number`,this.rtlEnabled&&`${e}-input-number--rtl`]},f(K,{ref:`inputInstRef`,autofocus:this.autofocus,status:this.mergedStatus,bordered:this.mergedBordered,loading:this.loading,value:this.displayedValue,onUpdateValue:this.handleUpdateDisplayedValue,theme:this.mergedTheme.peers.Input,themeOverrides:this.mergedTheme.peerOverrides.Input,builtinThemeOverrides:this.inputThemeOverrides,size:this.mergedSize,placeholder:this.mergedPlaceholder,disabled:this.mergedDisabled,readonly:this.readonly,round:this.round,textDecoration:this.displayedValueInvalid?`line-through`:void 0,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeydown:this.handleKeyDown,onMousedown:this.handleMouseDown,onClear:this.handleClear,clearable:this.clearable,inputProps:this.inputProps,internalLoadingBeforeSuffix:!0},{prefix:()=>this.showButton&&this.buttonPlacement===`both`?[n(),je(t.prefix,t=>t?f(`span`,{class:`${e}-input-number-prefix`},t):null)]:t.prefix?.call(t),suffix:()=>this.showButton?[je(t.suffix,t=>t?f(`span`,{class:`${e}-input-number-suffix`},t):null),this.buttonPlacement===`right`?n():null,r()]:t.suffix?.call(t)}))}}),Rt=j([N(`slider`,` - display: block; - padding: calc((var(--n-handle-size) - var(--n-rail-height)) / 2) 0; - position: relative; - z-index: 0; - width: 100%; - cursor: pointer; - user-select: none; - -webkit-user-select: none; - `,[M(`reverse`,[N(`slider-handles`,[N(`slider-handle-wrapper`,` - transform: translate(50%, -50%); - `)]),N(`slider-dots`,[N(`slider-dot`,` - transform: translateX(50%, -50%); - `)]),M(`vertical`,[N(`slider-handles`,[N(`slider-handle-wrapper`,` - transform: translate(-50%, -50%); - `)]),N(`slider-marks`,[N(`slider-mark`,` - transform: translateY(calc(-50% + var(--n-dot-height) / 2)); - `)]),N(`slider-dots`,[N(`slider-dot`,` - transform: translateX(-50%) translateY(0); - `)])])]),M(`vertical`,` - box-sizing: content-box; - padding: 0 calc((var(--n-handle-size) - var(--n-rail-height)) / 2); - width: var(--n-rail-width-vertical); - height: 100%; - `,[N(`slider-handles`,` - top: calc(var(--n-handle-size) / 2); - right: 0; - bottom: calc(var(--n-handle-size) / 2); - left: 0; - `,[N(`slider-handle-wrapper`,` - top: unset; - left: 50%; - transform: translate(-50%, 50%); - `)]),N(`slider-rail`,` - height: 100%; - `,[T(`fill`,` - top: unset; - right: 0; - bottom: unset; - left: 0; - `)]),M(`with-mark`,` - width: var(--n-rail-width-vertical); - margin: 0 32px 0 8px; - `),N(`slider-marks`,` - top: calc(var(--n-handle-size) / 2); - right: unset; - bottom: calc(var(--n-handle-size) / 2); - left: 22px; - font-size: var(--n-mark-font-size); - `,[N(`slider-mark`,` - transform: translateY(50%); - white-space: nowrap; - `)]),N(`slider-dots`,` - top: calc(var(--n-handle-size) / 2); - right: unset; - bottom: calc(var(--n-handle-size) / 2); - left: 50%; - `,[N(`slider-dot`,` - transform: translateX(-50%) translateY(50%); - `)])]),M(`disabled`,` - cursor: not-allowed; - opacity: var(--n-opacity-disabled); - `,[N(`slider-handle`,` - cursor: not-allowed; - `)]),M(`with-mark`,` - width: 100%; - margin: 8px 0 32px 0; - `),j(`&:hover`,[N(`slider-rail`,{backgroundColor:`var(--n-rail-color-hover)`},[T(`fill`,{backgroundColor:`var(--n-fill-color-hover)`})]),N(`slider-handle`,{boxShadow:`var(--n-handle-box-shadow-hover)`})]),M(`active`,[N(`slider-rail`,{backgroundColor:`var(--n-rail-color-hover)`},[T(`fill`,{backgroundColor:`var(--n-fill-color-hover)`})]),N(`slider-handle`,{boxShadow:`var(--n-handle-box-shadow-hover)`})]),N(`slider-marks`,` - position: absolute; - top: 18px; - left: calc(var(--n-handle-size) / 2); - right: calc(var(--n-handle-size) / 2); - `,[N(`slider-mark`,` - position: absolute; - transform: translateX(-50%); - white-space: nowrap; - `)]),N(`slider-rail`,` - width: 100%; - position: relative; - height: var(--n-rail-height); - background-color: var(--n-rail-color); - transition: background-color .3s var(--n-bezier); - border-radius: calc(var(--n-rail-height) / 2); - `,[T(`fill`,` - position: absolute; - top: 0; - bottom: 0; - border-radius: calc(var(--n-rail-height) / 2); - transition: background-color .3s var(--n-bezier); - background-color: var(--n-fill-color); - `)]),N(`slider-handles`,` - position: absolute; - top: 0; - right: calc(var(--n-handle-size) / 2); - bottom: 0; - left: calc(var(--n-handle-size) / 2); - `,[N(`slider-handle-wrapper`,` - outline: none; - position: absolute; - top: 50%; - transform: translate(-50%, -50%); - cursor: pointer; - display: flex; - `,[N(`slider-handle`,` - height: var(--n-handle-size); - width: var(--n-handle-size); - border-radius: 50%; - overflow: hidden; - transition: box-shadow .2s var(--n-bezier), background-color .3s var(--n-bezier); - background-color: var(--n-handle-color); - box-shadow: var(--n-handle-box-shadow); - `,[j(`&:hover`,` - box-shadow: var(--n-handle-box-shadow-hover); - `)]),j(`&:focus`,[N(`slider-handle`,` - box-shadow: var(--n-handle-box-shadow-focus); - `,[j(`&:hover`,` - box-shadow: var(--n-handle-box-shadow-active); - `)])])])]),N(`slider-dots`,` - position: absolute; - top: 50%; - left: calc(var(--n-handle-size) / 2); - right: calc(var(--n-handle-size) / 2); - `,[M(`transition-disabled`,[N(`slider-dot`,`transition: none;`)]),N(`slider-dot`,` - transition: - border-color .3s var(--n-bezier), - box-shadow .3s var(--n-bezier), - background-color .3s var(--n-bezier); - position: absolute; - transform: translate(-50%, -50%); - height: var(--n-dot-height); - width: var(--n-dot-width); - border-radius: var(--n-dot-border-radius); - overflow: hidden; - box-sizing: border-box; - border: var(--n-dot-border); - background-color: var(--n-dot-color); - `,[M(`active`,`border: var(--n-dot-border-active);`)])])]),N(`slider-handle-indicator`,` - font-size: var(--n-font-size); - padding: 6px 10px; - border-radius: var(--n-indicator-border-radius); - color: var(--n-indicator-text-color); - background-color: var(--n-indicator-color); - box-shadow: var(--n-indicator-box-shadow); - `,[Ce()]),N(`slider-handle-indicator`,` - font-size: var(--n-font-size); - padding: 6px 10px; - border-radius: var(--n-indicator-border-radius); - color: var(--n-indicator-text-color); - background-color: var(--n-indicator-color); - box-shadow: var(--n-indicator-box-shadow); - `,[M(`top`,` - margin-bottom: 12px; - `),M(`right`,` - margin-left: 12px; - `),M(`bottom`,` - margin-top: 12px; - `),M(`left`,` - margin-right: 12px; - `),Ce()]),re(N(`slider`,[N(`slider-dot`,`background-color: var(--n-dot-color-modal);`)])),ue(N(`slider`,[N(`slider-dot`,`background-color: var(--n-dot-color-popover);`)]))]);function zt(e){return window.TouchEvent&&e instanceof window.TouchEvent}function Bt(){let e=new Map;return _(()=>{e.clear()}),[e,t=>n=>{e.set(t,n)}]}var Q=0,Vt=n({name:`Slider`,props:Object.assign(Object.assign({},ie.props),{to:he.propTo,defaultValue:{type:[Number,Array],default:0},marks:Object,disabled:{type:Boolean,default:void 0},formatTooltip:Function,keyboard:{type:Boolean,default:!0},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:[Number,String],default:1},range:Boolean,value:[Number,Array],placement:String,showTooltip:{type:Boolean,default:void 0},tooltip:{type:Boolean,default:!0},vertical:Boolean,reverse:Boolean,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onDragstart:[Function],onDragend:[Function]}),slots:Object,setup(e){let{mergedClsPrefixRef:t,namespaceRef:n,inlineThemeDisabled:r}=y(e),i=ie(`Slider`,`-slider`,Rt,kt,e,t),a=F(null),[o,s]=Bt(),[l,u]=Bt(),d=F(new Set),f=Pe(e),{mergedDisabledRef:p}=f,m=L(()=>{let{step:t}=e;if(Number(t)<=0||t===`mark`)return 0;let n=t.toString(),r=0;return n.includes(`.`)&&(r=n.length-n.indexOf(`.`)-1),r}),h=F(e.defaultValue),_=Te(de(e,`value`),h),v=L(()=>{let{value:t}=_;return(e.range?t:[t]).map(P)}),b=L(()=>v.value.length>2),x=L(()=>e.placement===void 0?e.vertical?`right`:`top`:e.placement),S=L(()=>{let{marks:t}=e;return t?Object.keys(t).map(Number.parseFloat):null}),C=F(-1),w=F(-1),T=F(-1),E=F(!1),D=F(!1),O=L(()=>{let{vertical:t,reverse:n}=e;return t?n?`top`:`bottom`:n?`right`:`left`}),ee=L(()=>{if(b.value)return;let t=v.value,n=ce(e.range?Math.min(...t):e.min),r=ce(e.range?Math.max(...t):t[0]),{value:i}=O;return e.vertical?{[i]:`${n}%`,height:`${r-n}%`}:{[i]:`${n}%`,width:`${r-n}%`}}),k=L(()=>{let t=[],{marks:n}=e;if(n){let r=v.value.slice();r.sort((e,t)=>e-t);let{value:i}=O,{value:a}=b,{range:o}=e,s=a?()=>!1:e=>o?e>=r[0]&&e<=r[r.length-1]:e<=r[0];for(let e of Object.keys(n)){let r=Number(e);t.push({active:s(r),key:r,label:n[e],style:{[i]:`${ce(r)}%`}})}}return t});function te(e,t){let n=ce(e),{value:r}=O;return{[r]:`${n}%`,zIndex:+(t===C.value)}}function A(t){return e.showTooltip||T.value===t||C.value===t&&E.value}function re(e){return E.value?!(C.value===e&&w.value===e):!0}function ae(e){var t;~e&&(C.value=e,(t=o.get(e))==null||t.focus())}function j(){l.forEach((e,t)=>{A(t)&&e.syncPosition()})}function M(t){let{"onUpdate:value":n,onUpdateValue:r}=e,{nTriggerFormInput:i,nTriggerFormChange:a}=f;r&&W(r,t),n&&W(n,t),h.value=t,i(),a()}function oe(t){let{range:n}=e;if(n){if(Array.isArray(t)){let{value:e}=v;t.join()!==e.join()&&M(t)}}else Array.isArray(t)||v.value[0]!==t&&M(t)}function se(t,n){if(e.range){let e=v.value.slice();e.splice(n,1,t),oe(e)}else oe(t)}function N(t,n,r){let i=r!==void 0;r||=t-n>0?1:-1;let a=S.value||[],{step:o}=e;if(o===`mark`){let e=I(t,a.concat(n),i?r:void 0);return e?e.value:n}if(o<=0)return n;let{value:s}=m,c;if(i){let e=Number((n/o).toFixed(s)),t=Math.floor(e),i=e>t?t:t-1,l=e0)&&(r===null||o0?1:-1),n)}function ge(t){if(p.value||!zt(t)&&t.button!==Q)return;let n=fe(t);if(n===void 0)return;let r=v.value.slice(),i=e.range?I(n,r)?.index??-1:0;i!==-1&&(t.preventDefault(),ae(i),_e(),se(N(n,v.value[i]),i))}function _e(){E.value||(E.value=!0,e.onDragstart&&W(e.onDragstart),ve(`touchend`,document,be),ve(`mouseup`,document,be),ve(`touchmove`,document,B),ve(`mousemove`,document,B))}function z(){E.value&&(E.value=!1,e.onDragend&&W(e.onDragend),ye(`touchend`,document,be),ye(`mouseup`,document,be),ye(`touchmove`,document,B),ye(`mousemove`,document,B))}function B(e){let{value:t}=C;if(!E.value||t===-1){z();return}let n=fe(e);n!==void 0&&se(N(n,v.value[t]),t)}function be(){z()}function xe(e){C.value=e,p.value||(T.value=e)}function Se(e){C.value===e&&(C.value=-1,z()),T.value===e&&(T.value=-1)}function Ce(e){T.value=e}function V(e){T.value===e&&(T.value=-1)}ne(C,(e,t)=>void pe(()=>w.value=t)),ne(_,()=>{if(e.marks){if(D.value)return;D.value=!0,pe(()=>{D.value=!1})}pe(j)}),c(()=>{z()});let we=L(()=>{let{self:{markFontSize:e,railColor:t,railColorHover:n,fillColor:r,fillColorHover:a,handleColor:o,opacityDisabled:s,dotColor:c,dotColorModal:l,handleBoxShadow:u,handleBoxShadowHover:d,handleBoxShadowActive:f,handleBoxShadowFocus:p,dotBorder:m,dotBoxShadow:h,railHeight:g,railWidthVertical:_,handleSize:v,dotHeight:y,dotWidth:b,dotBorderRadius:x,fontSize:S,dotBorderActive:C,dotColorPopover:w},common:{cubicBezierEaseInOut:T}}=i.value;return{"--n-bezier":T,"--n-dot-border":m,"--n-dot-border-active":C,"--n-dot-border-radius":x,"--n-dot-box-shadow":h,"--n-dot-color":c,"--n-dot-color-modal":l,"--n-dot-color-popover":w,"--n-dot-height":y,"--n-dot-width":b,"--n-fill-color":r,"--n-fill-color-hover":a,"--n-font-size":S,"--n-handle-box-shadow":u,"--n-handle-box-shadow-active":f,"--n-handle-box-shadow-focus":p,"--n-handle-box-shadow-hover":d,"--n-handle-color":o,"--n-handle-size":v,"--n-opacity-disabled":s,"--n-rail-color":t,"--n-rail-color-hover":n,"--n-rail-height":g,"--n-rail-width-vertical":_,"--n-mark-font-size":e}}),Ee=r?g(`slider`,void 0,we,e):void 0,H=L(()=>{let{self:{fontSize:e,indicatorColor:t,indicatorBoxShadow:n,indicatorTextColor:r,indicatorBorderRadius:a}}=i.value;return{"--n-font-size":e,"--n-indicator-border-radius":a,"--n-indicator-box-shadow":n,"--n-indicator-color":t,"--n-indicator-text-color":r}}),De=r?g(`slider-indicator`,void 0,H,e):void 0;return{mergedClsPrefix:t,namespace:n,uncontrolledValue:h,mergedValue:_,mergedDisabled:p,mergedPlacement:x,isMounted:Qe(),adjustedTo:he(e),dotTransitionDisabled:D,markInfos:k,isShowTooltip:A,shouldKeepTooltipTransition:re,handleRailRef:a,setHandleRefs:s,setFollowerRefs:u,fillStyle:ee,getHandleStyle:te,activeIndex:C,arrifiedValues:v,followerEnabledIndexSet:d,handleRailMouseDown:ge,handleHandleFocus:xe,handleHandleBlur:Se,handleHandleMouseEnter:Ce,handleHandleMouseLeave:V,handleRailKeyDown:me,indicatorCssVars:r?void 0:H,indicatorThemeClass:De?.themeClass,indicatorOnRender:De?.onRender,cssVars:r?void 0:we,themeClass:Ee?.themeClass,onRender:Ee?.onRender}},render(){var e;let{mergedClsPrefix:t,themeClass:n,formatTooltip:r}=this;return(e=this.onRender)==null||e.call(this),f(`div`,{class:[`${t}-slider`,n,{[`${t}-slider--disabled`]:this.mergedDisabled,[`${t}-slider--active`]:this.activeIndex!==-1,[`${t}-slider--with-mark`]:this.marks,[`${t}-slider--vertical`]:this.vertical,[`${t}-slider--reverse`]:this.reverse}],style:this.cssVars,onKeydown:this.handleRailKeyDown,onMousedown:this.handleRailMouseDown,onTouchstart:this.handleRailMouseDown},f(`div`,{class:`${t}-slider-rail`},f(`div`,{class:`${t}-slider-rail__fill`,style:this.fillStyle}),this.marks?f(`div`,{class:[`${t}-slider-dots`,this.dotTransitionDisabled&&`${t}-slider-dots--transition-disabled`]},this.markInfos.map(e=>f(`div`,{key:e.key,class:[`${t}-slider-dot`,{[`${t}-slider-dot--active`]:e.active}],style:e.style}))):null,f(`div`,{ref:`handleRailRef`,class:`${t}-slider-handles`},this.arrifiedValues.map((e,n)=>{let i=this.isShowTooltip(n);return f(me,null,{default:()=>[f(R,null,{default:()=>f(`div`,{ref:this.setHandleRefs(n),class:`${t}-slider-handle-wrapper`,tabindex:this.mergedDisabled?-1:0,role:`slider`,"aria-valuenow":e,"aria-valuemin":this.min,"aria-valuemax":this.max,"aria-orientation":this.vertical?`vertical`:`horizontal`,"aria-disabled":this.disabled,style:this.getHandleStyle(e,n),onFocus:()=>{this.handleHandleFocus(n)},onBlur:()=>{this.handleHandleBlur(n)},onMouseenter:()=>{this.handleHandleMouseEnter(n)},onMouseleave:()=>{this.handleHandleMouseLeave(n)}},Ae(this.$slots.thumb,()=>[f(`div`,{class:`${t}-slider-handle`})]))}),this.tooltip&&f(ge,{ref:this.setFollowerRefs(n),show:i,to:this.adjustedTo,enabled:this.showTooltip&&!this.range||this.followerEnabledIndexSet.has(n),teleportDisabled:this.adjustedTo===he.tdkey,placement:this.mergedPlacement,containerClass:this.namespace},{default:()=>f(et,{name:`fade-in-scale-up-transition`,appear:this.isMounted,css:this.shouldKeepTooltipTransition(n),onEnter:()=>{this.followerEnabledIndexSet.add(n)},onAfterLeave:()=>{this.followerEnabledIndexSet.delete(n)}},{default:()=>{var n;return i?((n=this.indicatorOnRender)==null||n.call(this),f(`div`,{class:[`${t}-slider-handle-indicator`,this.indicatorThemeClass,`${t}-slider-handle-indicator--${this.mergedPlacement}`],style:this.indicatorCssVars},typeof r==`function`?r(e):e)):null}})})]})})),this.marks?f(`div`,{class:`${t}-slider-marks`},this.markInfos.map(e=>f(`div`,{key:e.key,class:`${t}-slider-mark`,style:e.style},typeof e.label==`function`?e.label():e.label))):null))}}),Ht=j([N(`table`,` - font-size: var(--n-font-size); - font-variant-numeric: tabular-nums; - line-height: var(--n-line-height); - width: 100%; - border-radius: var(--n-border-radius) var(--n-border-radius) 0 0; - text-align: left; - border-collapse: separate; - border-spacing: 0; - overflow: hidden; - background-color: var(--n-td-color); - border-color: var(--n-merged-border-color); - transition: - background-color .3s var(--n-bezier), - border-color .3s var(--n-bezier), - color .3s var(--n-bezier); - --n-merged-border-color: var(--n-border-color); - `,[j(`th`,` - white-space: nowrap; - transition: - background-color .3s var(--n-bezier), - border-color .3s var(--n-bezier), - color .3s var(--n-bezier); - text-align: inherit; - padding: var(--n-th-padding); - vertical-align: inherit; - text-transform: none; - border: 0px solid var(--n-merged-border-color); - font-weight: var(--n-th-font-weight); - color: var(--n-th-text-color); - background-color: var(--n-th-color); - border-bottom: 1px solid var(--n-merged-border-color); - border-right: 1px solid var(--n-merged-border-color); - `,[j(`&:last-child`,` - border-right: 0px solid var(--n-merged-border-color); - `)]),j(`td`,` - transition: - background-color .3s var(--n-bezier), - border-color .3s var(--n-bezier), - color .3s var(--n-bezier); - padding: var(--n-td-padding); - color: var(--n-td-text-color); - background-color: var(--n-td-color); - border: 0px solid var(--n-merged-border-color); - border-right: 1px solid var(--n-merged-border-color); - border-bottom: 1px solid var(--n-merged-border-color); - `,[j(`&:last-child`,` - border-right: 0px solid var(--n-merged-border-color); - `)]),M(`bordered`,` - border: 1px solid var(--n-merged-border-color); - border-radius: var(--n-border-radius); - `,[j(`tr`,[j(`&:last-child`,[j(`td`,` - border-bottom: 0 solid var(--n-merged-border-color); - `)])])]),M(`single-line`,[j(`th`,` - border-right: 0px solid var(--n-merged-border-color); - `),j(`td`,` - border-right: 0px solid var(--n-merged-border-color); - `)]),M(`single-column`,[j(`tr`,[j(`&:not(:last-child)`,[j(`td`,` - border-bottom: 0px solid var(--n-merged-border-color); - `)])])]),M(`striped`,[j(`tr:nth-of-type(even)`,[j(`td`,`background-color: var(--n-td-color-striped)`)])]),ce(`bottom-bordered`,[j(`tr`,[j(`&:last-child`,[j(`td`,` - border-bottom: 0px solid var(--n-merged-border-color); - `)])])])]),re(N(`table`,` - background-color: var(--n-td-color-modal); - --n-merged-border-color: var(--n-border-color-modal); - `,[j(`th`,` - background-color: var(--n-th-color-modal); - `),j(`td`,` - background-color: var(--n-td-color-modal); - `)])),ue(N(`table`,` - background-color: var(--n-td-color-popover); - --n-merged-border-color: var(--n-border-color-popover); - `,[j(`th`,` - background-color: var(--n-th-color-popover); - `),j(`td`,` - background-color: var(--n-td-color-popover); - `)]))]),Ut=n({name:`Table`,props:Object.assign(Object.assign({},ie.props),{bordered:{type:Boolean,default:!0},bottomBordered:{type:Boolean,default:!0},singleLine:{type:Boolean,default:!0},striped:Boolean,singleColumn:Boolean,size:String}),setup(e){let{mergedClsPrefixRef:t,inlineThemeDisabled:n,mergedRtlRef:r,mergedComponentPropsRef:i}=y(e),a=L(()=>e.size||i?.value?.Table?.size||`medium`),o=ie(`Table`,`-table`,Ht,ot,e,t),s=w(`Table`,r,t),c=L(()=>{let e=a.value,{self:{borderColor:t,tdColor:n,tdColorModal:r,tdColorPopover:i,thColor:s,thColorModal:c,thColorPopover:l,thTextColor:u,tdTextColor:d,borderRadius:f,thFontWeight:p,lineHeight:m,borderColorModal:h,borderColorPopover:g,tdColorStriped:_,tdColorStripedModal:v,tdColorStripedPopover:y,[D(`fontSize`,e)]:b,[D(`tdPadding`,e)]:x,[D(`thPadding`,e)]:S},common:{cubicBezierEaseInOut:C}}=o.value;return{"--n-bezier":C,"--n-td-color":n,"--n-td-color-modal":r,"--n-td-color-popover":i,"--n-td-text-color":d,"--n-border-color":t,"--n-border-color-modal":h,"--n-border-color-popover":g,"--n-border-radius":f,"--n-font-size":b,"--n-th-color":s,"--n-th-color-modal":c,"--n-th-color-popover":l,"--n-th-font-weight":p,"--n-th-text-color":u,"--n-line-height":m,"--n-td-padding":x,"--n-th-padding":S,"--n-td-color-striped":_,"--n-td-color-striped-modal":v,"--n-td-color-striped-popover":y}}),l=n?g(`table`,L(()=>a.value[0]),c,e):void 0;return{rtlEnabled:s,mergedClsPrefix:t,cssVars:n?void 0:c,themeClass:l?.themeClass,onRender:l?.onRender}},render(){var e;let{mergedClsPrefix:t}=this;return(e=this.onRender)==null||e.call(this),f(`table`,{class:[`${t}-table`,this.themeClass,{[`${t}-table--rtl`]:this.rtlEnabled,[`${t}-table--bottom-bordered`]:this.bottomBordered,[`${t}-table--bordered`]:this.bordered,[`${t}-table--single-line`]:this.singleLine,[`${t}-table--single-column`]:this.singleColumn,[`${t}-table--striped`]:this.striped}],style:this.cssVars},this.$slots)}}),Wt={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},Gt=n({name:`Edit`,render:function(e,t){return l(),h(`svg`,Wt,t[0]||=[m(`path`,{d:`M2 26h28v2H2z`,fill:`currentColor`},null,-1),m(`path`,{d:`M25.4 9c.8-.8.8-2 0-2.8l-3.6-3.6c-.8-.8-2-.8-2.8 0l-15 15V24h6.4l15-15zm-5-5L24 7.6l-3 3L17.4 7l3-3zM6 22v-3.6l10-10l3.6 3.6l-10 10H6z`,fill:`currentColor`},null,-1)])}}),Kt={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},qt=n({name:`Flag`,render:function(e,t){return l(),h(`svg`,Kt,t[0]||=[m(`path`,{d:`M6 30H4V2h24l-5.8 9l5.8 9H6zm0-12h18.33l-4.53-7l4.53-7H6z`,fill:`currentColor`},null,-1)])}}),Jt={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},Yt=n({name:`Pause`,render:function(e,t){return l(),h(`svg`,Jt,t[0]||=[m(`path`,{d:`M12 8v16H8V8h4m0-2H8a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2z`,fill:`currentColor`},null,-1),m(`path`,{d:`M24 8v16h-4V8h4m0-2h-4a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2z`,fill:`currentColor`},null,-1)])}}),Xt={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},Zt=n({name:`Play`,render:function(e,t){return l(),h(`svg`,Xt,t[0]||=[m(`path`,{d:`M7 28a1 1 0 0 1-1-1V5a1 1 0 0 1 1.482-.876l20 11a1 1 0 0 1 0 1.752l-20 11A1 1 0 0 1 7 28zM8 6.69V25.31L24.925 16z`,fill:`currentColor`},null,-1)])}}),Qt={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},$t=n({name:`Repeat`,render:function(e,t){return l(),h(`svg`,Qt,t[0]||=[m(`path`,{d:`M6 6h20.172l-3.586-3.586L24 1l6 6l-6 6l-1.414-1.414L26.172 8H6v7H4V8a2.002 2.002 0 0 1 2-2z`,fill:`currentColor`},null,-1),m(`path`,{d:`M9.414 20.414L5.828 24H26v-7h2v7a2.002 2.002 0 0 1-2 2H5.828l3.586 3.586L8 31l-6-6l6-6z`,fill:`currentColor`},null,-1)])}}),en={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},tn=n({name:`Reset`,render:function(e,t){return l(),h(`svg`,en,t[0]||=[m(`path`,{d:`M18 28A12 12 0 1 0 6 16v6.2l-3.6-3.6L1 20l6 6l6-6l-1.4-1.4L8 22.2V16a10 10 0 1 1 10 10z`,fill:`currentColor`},null,-1)])}}),nn={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},rn=n({name:`Stop`,render:function(e,t){return l(),h(`svg`,nn,t[0]||=[m(`path`,{d:`M24 8v16H8V8h16m0-2H8a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2z`,fill:`currentColor`},null,-1)])}}),an={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},on=n({name:`Trophy`,render:function(e,t){return l(),h(`svg`,an,t[0]||=[m(`path`,{d:`M26 7h-2V6a2.002 2.002 0 0 0-2-2H10a2.002 2.002 0 0 0-2 2v1H6a2.002 2.002 0 0 0-2 2v3a4.005 4.005 0 0 0 4 4h.322A8.169 8.169 0 0 0 15 21.934V26h-5v2h12v-2h-5v-4.069A7.966 7.966 0 0 0 23.74 16H24a4.005 4.005 0 0 0 4-4V9a2.002 2.002 0 0 0-2-2zM8 14a2.002 2.002 0 0 1-2-2V9h2zm14 0a6 6 0 0 1-6.186 5.997A6.2 6.2 0 0 1 10 13.707V6h12zm4-2a2.002 2.002 0 0 1-2 2V9h2z`,fill:`currentColor`},null,-1)])}}),sn=`/assets/icq-uh-oh-DjThHNEb.wav`,$=G(n({__name:`UiBlock`,props:{tag:{default:`div`}},setup(e){return(n,r)=>(l(),a(t(e.tag),{class:`ui-block`},{default:P(()=>[C(n.$slots,`default`,{},void 0,!0)]),_:3}))}}),[[`__scopeId`,`data-v-80193f22`]]),cn=[`onPointerdown`],ln=[`onPointerdown`],un={key:2},dn=[`onClick`],fn=20,pn=G(n({__name:`GameMapPanel`,props:{mapItems:{},teams:{}},emits:[`saveItem`,`dragging`,`giveApplication`],setup(e,{emit:t}){let n=e,o=t,s=F(1),u=F({x:0,y:0}),d=F(),f=L(()=>new Map(n.teams.filter(e=>e.applications?.length).map(e=>[e.ID,e]))),g,_;function y(e){let t=d.value;if(!t)return;let n=t.getBoundingClientRect();return{x:(e.clientX-n.left-t.clientLeft-u.value.x)/s.value,y:(e.clientY-n.top-t.clientTop-u.value.y)/s.value}}function b(e,t){let n=y(t);n&&(g={item:e,offsetX:n.x-(e.x||0),offsetY:n.y-(e.y||0)},o(`dragging`,!0),window.addEventListener(`pointermove`,S),window.addEventListener(`pointerup`,C,{once:!0}),window.addEventListener(`pointercancel`,C,{once:!0}))}function S(e){if(!g)return;let t=y(e);t&&(g.item.x=Math.round((t.x-g.offsetX)/fn)*fn,g.item.y=Math.round((t.y-g.offsetY)/fn)*fn)}function C(){if(!g)return;let e=g.item;g=void 0,window.removeEventListener(`pointermove`,S),window.removeEventListener(`pointerup`,C),window.removeEventListener(`pointercancel`,C),o(`dragging`,!1),o(`saveItem`,e)}function w(e){e.hidden=!e.hidden,o(`saveItem`,e,e.hidden)}function T(e){s.value=Math.min(2,Math.max(.5,Number((s.value+e).toFixed(2))))}function D(){s.value=1,u.value={x:0,y:0}}function O(e){e.button===0&&(_={startX:e.clientX,startY:e.clientY,offsetX:u.value.x,offsetY:u.value.y},window.addEventListener(`pointermove`,ee),window.addEventListener(`pointerup`,te,{once:!0}))}function ee(e){_&&(u.value={x:_.offsetX+e.clientX-_.startX,y:_.offsetY+e.clientY-_.startY})}function te(){_=void 0,window.removeEventListener(`pointermove`,ee)}function ne(e){e.preventDefault(),T(e.deltaY<0?.1:-.1)}return c(()=>{g&&o(`dragging`,!1),window.removeEventListener(`pointermove`,S),window.removeEventListener(`pointerup`,C),window.removeEventListener(`pointercancel`,C),window.removeEventListener(`pointermove`,ee),window.removeEventListener(`pointerup`,te)}),(t,n)=>(l(),a($,null,{default:P(()=>[A(i(Y),{align:`center`,justify:`space-between`,class:`screen-header`},{default:P(()=>[n[6]||=m(`p`,{class:`screens-title`},`Карта помещения`,-1),A(i(J),null,{default:P(()=>[A(i(H),{size:`small`,onClick:n[0]||=e=>T(-.1)},{default:P(()=>[...n[3]||=[p(`−`,-1)]]),_:1}),A(i(Ue),null,{default:P(()=>[p(v(Math.round(s.value*100))+`%`,1)]),_:1}),A(i(H),{size:`small`,onClick:n[1]||=e=>T(.1)},{default:P(()=>[...n[4]||=[p(`+`,-1)]]),_:1}),A(i(H),{size:`small`,onClick:D},{default:P(()=>[...n[5]||=[p(`Сбросить`,-1)]]),_:1})]),_:1})]),_:1}),m(`div`,{ref_key:`mapField`,ref:d,class:`map-field`,onPointerdown:O,onWheel:ne},[m(`div`,{class:`map-canvas`,style:r({transform:`translate(${u.value.x}px, ${u.value.y}px) scale(${s.value})`})},[(l(!0),h(k,null,x(e.mapItems,e=>E((l(),h(`div`,{key:`${e.kind}-${e.itemID}`,class:fe([`map-item`,[e.kind===`screen`?`map-screen`:e.kind===`organizer_desk`?`map-organizer-desk`:`map-team`,{"map-team-needs-applications":e.kind===`team`&&f.value.has(e.itemID)}]]),style:r({left:`${e.x||0}px`,top:`${e.y||0}px`}),onPointerdown:X(t=>e.kind!==`team`&&b(e,t),[`stop`])},[e.kind===`team`?(l(),h(`div`,{key:0,class:`map-team-handle`,onPointerdown:X(t=>b(e,t),[`stop`])},null,40,ln)):I(``,!0),m(`span`,null,v(e.label),1),e.kind===`team`&&f.value.has(e.itemID)?(l(),a(i(J),{key:1,class:`map-team-applications`,vertical:``},{default:P(()=>[(l(!0),h(k,null,x(f.value.get(e.itemID)?.applications,t=>(l(),a(i(H),{key:t.name,size:`small`,onClick:n=>o(`giveApplication`,f.value.get(e.itemID),t)},{default:P(()=>[p(` Выдать: `+v(t.name),1)]),_:2},1032,[`onClick`]))),128))]),_:2},1024)):I(``,!0),e.kind===`screen`?(l(),h(`small`,un,v(e.status)+v(e.soundEnabled?` · звук`:``),1)):I(``,!0),m(`button`,{class:`map-item-hide`,type:`button`,onPointerdown:n[2]||=X(()=>{},[`stop`]),onClick:X(t=>w(e),[`stop`])},` × `,40,dn)],46,cn)),[[Xe,!e.hidden]])),128))],4)],544),e.mapItems.some(e=>e.hidden)?(l(),a(i(J),{key:0,class:`map-hidden-items`},{default:P(()=>[(l(!0),h(k,null,x(e.mapItems.filter(e=>e.hidden),e=>(l(),a(i(H),{key:`hidden-${e.kind}-${e.itemID}`,size:`small`,onClick:t=>w(e)},{default:P(()=>[p(` Добавить `+v(e.label),1)]),_:2},1032,[`onClick`]))),128))]),_:1})):I(``,!0)]),_:1}))}}),[[`__scopeId`,`data-v-5e2f9943`]]),mn={class:`playlist-picker`},hn={key:0,role:`status`},gn={class:`music-volume`},_n={key:1},vn={key:2},yn=[`aria-label`],bn={key:0},xn={key:1},Sn=[`aria-current`],Cn=G(n({__name:`GameMusicPlanPanel`,props:{playlists:{},music:{},isBusy:{type:Boolean}},emits:[`setMusic`,`saveGroup`,`deleteGroup`,`reorderGroups`,`setTrackGroup`,`createPlaylist`,`renamePlaylist`,`reorderTracks`,`deletePlaylist`,`uploadTrack`,`deleteTrack`],setup(e,{emit:t}){let n=e,r=t,o=F(!1),s=F(),c=F(n.music?.volume??100),u=L(()=>n.playlists.map(e=>({label:e.name,value:e.ID})));function d(){s.value?.confirmDiscard()&&(o.value=!1)}let f=L(()=>[...(n.music?.playlist?.groups??[]).map(e=>({...e,ID:e.ID??0,endMode:e.endMode??`PLAYLIST_GROUP_END_MODE_REPEAT`})),{ID:0,name:`Без группы`,endMode:void 0,position:void 0}]);function g(e){return(n.music?.playlist?.tracks??[]).map((e,t)=>({track:e,index:t})).filter(({track:t})=>(t.groupId??0)===e)}function _(e){let t=n.music?.playlist?.tracks?.findIndex(t=>t.groupId===e)??-1;t<0||r(`setMusic`,{groupId:e,trackIndex:t,positionMs:0,playback:`MUSIC_PLAYBACK_PLAYING`})}function y(e){return e===`PLAYLIST_GROUP_END_MODE_STOP`?`После группы — тишина`:e===`PLAYLIST_GROUP_END_MODE_NEXT`?`После группы — следующая`:`Повтор группы`}let b=L(()=>!!n.music?.playlist?.tracks?.length&&!n.isBusy),S=L(()=>n.music?.playback===`MUSIC_PLAYBACK_PLAYING`),C=L(()=>S.value?`Пауза`:n.music?.playback===`MUSIC_PLAYBACK_PAUSED`?`Продолжить`:`Старт`),w=L(()=>n.music?.playlist?.tracks?.[n.music.trackIndex??0]);function T(e,t){e===(n.music?.trackIndex??0)&&t===(n.music?.groupId??0)||r(`setMusic`,{trackIndex:e,groupId:t,positionMs:0})}return ne(()=>n.music?.volume,e=>{c.value=e??100}),(t,n)=>(l(),a($,{class:`music-panel`,"data-testid":`music-plan`},{default:P(()=>[A(i(J),{justify:`space-between`,align:`center`},{default:P(()=>[n[22]||=m(`h3`,null,`План музыки`,-1),o.value?(l(),a(i(H),{key:1,size:`small`,disabled:e.isBusy,onClick:d},{default:P(()=>[...n[21]||=[p(`Готово`,-1)]]),_:1},8,[`disabled`])):(l(),a(i(H),{key:0,size:`small`,square:``,"aria-label":`Редактировать музыку`,title:`Редактировать музыку`,disabled:e.isBusy,onClick:n[0]||=e=>o.value=!0},{default:P(()=>[A(i(B),{size:18},{default:P(()=>[A(i(Gt))]),_:1})]),_:1},8,[`disabled`]))]),_:1}),o.value?(l(),a(ze,{key:0,ref_key:`editor`,ref:s,playlists:e.playlists,music:e.music,"is-busy":e.isBusy,onSetMusic:n[1]||=e=>r(`setMusic`,e),onSaveGroup:n[2]||=(e,t,n,i)=>r(`saveGroup`,e,t,n,i),onDeleteGroup:n[3]||=(e,t)=>r(`deleteGroup`,e,t),onReorderGroups:n[4]||=(e,t)=>r(`reorderGroups`,e,t),onSetTrackGroup:n[5]||=(e,t,n)=>r(`setTrackGroup`,e,t,n),onCreatePlaylist:n[6]||=e=>r(`createPlaylist`,e),onRenamePlaylist:n[7]||=(e,t)=>r(`renamePlaylist`,e,t),onReorderTracks:n[8]||=(e,t)=>r(`reorderTracks`,e,t),onDeletePlaylist:n[9]||=e=>r(`deletePlaylist`,e),onUploadTrack:n[10]||=(e,t)=>r(`uploadTrack`,e,t),onDeleteTrack:n[11]||=(e,t)=>r(`deleteTrack`,e,t)},null,8,[`playlists`,`music`,`is-busy`])):(l(),a(i(J),{key:1,vertical:``,class:`music-content`},{default:P(()=>[m(`div`,mn,[A(i(ke),{value:e.music?.playlist?.ID,options:u.value,clearable:``,placeholder:`Выберите плейлист`,disabled:e.isBusy,"input-props":{"aria-label":`Музыка игры`},"onUpdate:value":n[12]||=e=>r(`setMusic`,{playlistID:e??0,trackIndex:0,positionMs:0,playback:`MUSIC_PLAYBACK_STOPPED`})},null,8,[`value`,`options`,`disabled`]),e.music?.groupId?I(``,!0):(l(),a(i(H),{key:0,square:``,type:e.music?.loop?`primary`:`default`,"aria-pressed":e.music?.loop??!1,"aria-label":`Повторять плейлист`,title:`Повторять плейлист`,disabled:e.isBusy,onClick:n[13]||=t=>r(`setMusic`,{loop:!e.music?.loop})},{default:P(()=>[A(i(B),{size:18},{default:P(()=>[A(i($t))]),_:1})]),_:1},8,[`type`,`aria-pressed`,`disabled`]))]),w.value?(l(),h(`p`,hn,v(w.value.name)+` · `+v(S.value?`Играет`:e.music?.playback===`MUSIC_PLAYBACK_PAUSED`?`Пауза`:`Остановлено`),1)):I(``,!0),A(i(J),{align:`center`},{default:P(()=>[A(i(H),{square:``,"aria-label":C.value,title:C.value,disabled:!b.value,onClick:n[14]||=e=>r(`setMusic`,{playback:S.value?`MUSIC_PLAYBACK_PAUSED`:`MUSIC_PLAYBACK_PLAYING`})},{default:P(()=>[A(i(B),{size:18},{default:P(()=>[S.value?(l(),a(i(Yt),{key:0})):(l(),a(i(Zt),{key:1}))]),_:1})]),_:1},8,[`aria-label`,`title`,`disabled`]),A(i(H),{square:``,"aria-label":`Стоп`,title:`Стоп`,disabled:!b.value,onClick:n[15]||=e=>r(`setMusic`,{playback:`MUSIC_PLAYBACK_STOPPED`,positionMs:0})},{default:P(()=>[A(i(B),{size:18},{default:P(()=>[A(i(rn))]),_:1})]),_:1},8,[`disabled`]),A(i(H),{square:``,"aria-label":`Сначала`,title:`Сначала`,disabled:!b.value,onClick:n[16]||=e=>r(`setMusic`,{playback:`MUSIC_PLAYBACK_PLAYING`,positionMs:0})},{default:P(()=>[A(i(B),{size:18},{default:P(()=>[A(i(tn))]),_:1})]),_:1},8,[`disabled`]),m(`div`,gn,[n[23]||=m(`span`,{id:`music-volume-label`},`Громкость`,-1),A(i(Vt),{value:c.value,min:0,max:100,disabled:e.isBusy||!e.music?.playlist,"aria-labelledby":`music-volume-label`,"format-tooltip":e=>`${e}%`,"onUpdate:value":n[17]||=e=>c.value=e,onDragend:n[18]||=e=>r(`setMusic`,{volume:c.value}),onKeyup:n[19]||=e=>r(`setMusic`,{volume:c.value})},null,8,[`value`,`disabled`,`format-tooltip`])])]),_:1}),e.music?.playlist?e.music.playlist.tracks?.length?I(``,!0):(l(),h(`p`,vn,`В плейлисте пока нет треков.`)):(l(),h(`p`,_n,`Выберите плейлист для игры.`)),e.music?.groupId?(l(),a(i(H),{key:3,size:`small`,disabled:!b.value,onClick:n[20]||=e=>r(`setMusic`,{groupId:0,trackIndex:0,positionMs:0,playback:`MUSIC_PLAYBACK_PLAYING`})},{default:P(()=>[...n[24]||=[p(`Играть весь плейлист`,-1)]]),_:1},8,[`disabled`])):I(``,!0),(l(!0),h(k,null,x(f.value,t=>(l(),h(`section`,{key:t.ID,class:`music-group`,"aria-label":t.name},[A(i(J),{align:`center`,justify:`space-between`},{default:P(()=>[m(`h4`,null,v(t.name)+v(t.ID&&t.ID===e.music?.groupId?` · Выбрана`:``),1),t.ID?(l(),a(i(H),{key:0,size:`small`,disabled:e.isBusy||!g(t.ID).length,onClick:e=>_(t.ID)},{default:P(()=>[...n[25]||=[p(`Играть группу`,-1)]]),_:1},8,[`disabled`,`onClick`])):I(``,!0)]),_:2},1024),t.ID?(l(),h(`p`,bn,v(y(t.endMode)),1)):I(``,!0),g(t.ID).length?I(``,!0):(l(),h(`p`,xn,`Треков пока нет.`)),(l(!0),h(k,null,x(g(t.ID),({track:n,index:r},a)=>(l(),h(`div`,{key:n.ID,class:fe([`track-row`,{"track-current":r===(e.music?.trackIndex??0)}]),"aria-current":r===(e.music?.trackIndex??0)?`true`:void 0},[m(`span`,null,v(a+1)+`. `+v(n.name),1),A(i(H),{size:`small`,disabled:e.isBusy||r===(e.music?.trackIndex??0)&&t.ID===(e.music?.groupId??0),onClick:e=>T(r,t.ID)},{default:P(()=>[p(v(r===(e.music?.trackIndex??0)&&t.ID===(e.music?.groupId??0)?`Выбран`:`Выбрать`),1)]),_:2},1032,[`disabled`,`onClick`])],10,Sn))),128))],8,yn))),128))]),_:1}))]),_:1}))}}),[[`__scopeId`,`data-v-01c1228e`]]),wn={key:0},Tn={class:`plan-steps`},En=[`aria-current`],Dn={class:`step-preview`,"aria-hidden":`true`},On={class:`step-content`},kn=[`for`],An=[`for`],jn=[`for`],Mn=[`for`],Nn={class:`step-heading`},Pn=[`id`],Fn=G(n({__name:`GameScreenPlanPanel`,props:{screens:{},previewQuestions:{},previewTeams:{},teamNames:{},screenPlan:{},screenPlanDraft:{},screenPlanSaving:{type:Boolean},screenPlanMode:{},screenVolume:{},isBusy:{type:Boolean}},emits:[`addStep`,`edit`,`cancel`,`removeStep`,`moveStep`,`dirty`,`clearPlan`,`save`,`setStep`,`command`,`update:screenVolume`],setup(e,{emit:n}){let r=e,o=n,s=L(()=>r.screens.find(e=>e.status===`connected`)||r.screens[0]),c=L(()=>s.value?.mode===`SCREEN_MODE_INTRO`?!!s.value.introAudio:!!s.value?.conclusionVideo),u=L(()=>r.screens.some(e=>e.status===`connected`)),d=L(()=>r.screenPlanSaving||r.isBusy),f=L(()=>r.screenPlanMode===`edit`?r.screenPlanDraft:r.screenPlan?.steps??[]),g=L(()=>s.value?.timerState===`SCREEN_TIMER_STATE_RUNNING`?{label:`Пауза`,command:`SCREEN_COMMAND_TIMER_PAUSE`,icon:Yt}:s.value?.timerState===`SCREEN_TIMER_STATE_PAUSED`?{label:`Продолжить`,command:`SCREEN_COMMAND_TIMER_RESUME`,icon:Zt}:{label:`Старт`,command:`SCREEN_COMMAND_TIMER_START`,icon:Zt}),_=[{label:`Запуск`,command:`SCREEN_COMMAND_PLAY`,icon:Zt},{label:`Пауза`,command:`SCREEN_COMMAND_PAUSE`,icon:Yt},{label:`Продолжить`,command:`SCREEN_COMMAND_RESUME`,icon:Zt},{label:`Стоп`,command:`SCREEN_COMMAND_STOP`,icon:rn},{label:`Сначала`,command:`SCREEN_COMMAND_REPLAY`,icon:tn}],y=[{label:`Обложка`,value:`SCREEN_MODE_COVER`},{label:`Введение`,value:`SCREEN_MODE_INTRO`},{label:`Закрывашка`,value:`SCREEN_MODE_CONCLUSION`},{label:`Результаты`,value:`SCREEN_MODE_RESULTS`},{label:`Таймер`,value:`SCREEN_MODE_TIMER`},{label:`Текст`,value:`SCREEN_MODE_TEXT`},{label:`QR-код`,value:`SCREEN_MODE_QR`},{label:`Список команд`,value:`SCREEN_MODE_TEAMS`}];function b(e,t){e.timerLabel=ft(e.timerLabel,e.timerType,t),e.timerType=t,o(`dirty`)}function S(e){return{...s.value,...e,timerState:`SCREEN_TIMER_STATE_STOPPED`,timerRemainingSeconds:e.timerDurationSeconds}}return(n,r)=>(l(),a($,{class:`screen-plan-panel`,"data-testid":`screen-plan`},{default:P(()=>[A(i(J),{align:`center`,justify:`space-between`},{default:P(()=>[r[15]||=m(`h3`,null,`План экранов`,-1),A(i(J),null,{default:P(()=>[e.screenPlanMode===`use`&&!e.screenPlan?(l(),a(i(H),{key:0,size:`small`,disabled:d.value,onClick:r[0]||=e=>o(`addStep`)},{default:P(()=>[...r[12]||=[p(`Создать план`,-1)]]),_:1},8,[`disabled`])):e.screenPlanMode===`use`?(l(),a(i(H),{key:1,size:`small`,square:``,"aria-label":`Редактировать план экранов`,title:`Редактировать план экранов`,disabled:d.value,onClick:r[1]||=e=>o(`edit`)},{default:P(()=>[A(i(B),{size:18},{default:P(()=>[A(i(Gt))]),_:1})]),_:1},8,[`disabled`])):(l(),h(k,{key:2},[A(i(H),{size:`small`,disabled:d.value,onClick:r[2]||=e=>o(`cancel`)},{default:P(()=>[...r[13]||=[p(`Отменить`,-1)]]),_:1},8,[`disabled`]),A(i(H),{size:`small`,type:`primary`,loading:e.screenPlanSaving,disabled:d.value,onClick:r[3]||=e=>o(`save`)},{default:P(()=>[...r[14]||=[p(`Сохранить план`,-1)]]),_:1},8,[`loading`,`disabled`])],64))]),_:1})]),_:1}),f.value.length?I(``,!0):(l(),h(`p`,wn,v(e.screenPlanMode===`edit`?`Добавьте шаги или сохраните пустой план для удаления.`:`План экранов ещё не создан.`),1)),m(`div`,Tn,[(l(!0),h(k,null,x(f.value,(n,s)=>(l(),h(`div`,{key:s,class:fe([`plan-step`,{"plan-step-current":e.screenPlanMode===`use`&&e.screenPlan?.currentStep===s}]),"aria-current":e.screenPlanMode===`use`&&e.screenPlan?.currentStep===s?`step`:void 0},[m(`div`,Dn,[A(mt,{state:S(n),questions:e.previewQuestions,teams:e.previewTeams,"team-names":e.teamNames,"is-thumbnail":``},null,8,[`state`,`questions`,`teams`,`team-names`])]),m(`div`,On,[e.screenPlanMode===`edit`?(l(),h(k,{key:0},[A(i(J),{align:`center`},{default:P(()=>[m(`span`,null,v(s+1),1),A(i(H),{size:`small`,disabled:d.value||s===0,"aria-label":`Поднять шаг ${s+1}`,onClick:e=>o(`moveStep`,s,-1)},{default:P(()=>[...r[16]||=[p(`↑`,-1)]]),_:1},8,[`disabled`,`aria-label`,`onClick`]),A(i(H),{size:`small`,disabled:d.value||s===f.value.length-1,"aria-label":`Опустить шаг ${s+1}`,onClick:e=>o(`moveStep`,s,1)},{default:P(()=>[...r[17]||=[p(`↓`,-1)]]),_:1},8,[`disabled`,`aria-label`,`onClick`]),A(i(H),{size:`small`,type:`error`,ghost:``,disabled:d.value,onClick:e=>o(`removeStep`,s)},{default:P(()=>[...r[18]||=[p(`Удалить`,-1)]]),_:1},8,[`disabled`,`onClick`])]),_:2},1024),A(i(ke),{value:n.mode,"onUpdate:value":[e=>n.mode=e,r[4]||=e=>o(`dirty`)],options:y,disabled:d.value,"input-props":{"aria-label":`Режим шага ${s+1}`}},null,8,[`value`,`onUpdate:value`,`disabled`,`input-props`]),n.mode===`SCREEN_MODE_TEXT`||n.mode===`SCREEN_MODE_QR`?(l(),a(i(K),{key:0,value:n.text,"onUpdate:value":[e=>n.text=e,r[5]||=e=>o(`dirty`)],type:`textarea`,placeholder:`Текст экрана`,disabled:d.value,"input-props":{"aria-label":`Текст шага ${s+1}`}},null,8,[`value`,`onUpdate:value`,`disabled`,`input-props`])):I(``,!0),n.mode===`SCREEN_MODE_QR`?(l(),h(k,{key:1},[m(`label`,{for:`qr-link-${s}`},`Ссылка для QR-кода (обязательно)`,8,kn),A(i(K),{value:n.qrUrl,"onUpdate:value":[e=>n.qrUrl=e,r[6]||=e=>o(`dirty`)],disabled:d.value,"input-props":{id:`qr-link-${s}`},placeholder:`https://example.com`},null,8,[`value`,`onUpdate:value`,`disabled`,`input-props`])],64)):I(``,!0),n.mode===`SCREEN_MODE_TIMER`?(l(),h(k,{key:2},[m(`label`,{for:`timer-type-${s}`},`Тип таймера`,8,An),A(i(ke),{value:n.timerType??`SCREEN_TIMER_TYPE_BREAK`,options:i(pt),disabled:d.value,"input-props":{id:`timer-type-${s}`},"onUpdate:value":e=>b(n,e)},null,8,[`value`,`options`,`disabled`,`input-props`,`onUpdate:value`]),m(`label`,{for:`timer-label-${s}`},`Надпись таймера`,8,jn),A(i(K),{value:n.timerLabel,"onUpdate:value":[e=>n.timerLabel=e,r[7]||=e=>o(`dirty`)],disabled:d.value,"input-props":{id:`timer-label-${s}`}},null,8,[`value`,`onUpdate:value`,`disabled`,`input-props`]),m(`label`,{for:`timer-duration-${s}`},`Длительность в секундах`,8,Mn),A(i(Lt),{value:n.timerDurationSeconds,"onUpdate:value":[e=>n.timerDurationSeconds=e,r[8]||=e=>o(`dirty`)],min:1,max:86400,disabled:d.value,"input-props":{id:`timer-duration-${s}`}},null,8,[`value`,`onUpdate:value`,`disabled`,`input-props`])],64)):I(``,!0)],64)):(l(),h(k,{key:1},[m(`div`,Nn,[m(`span`,null,[p(v(s+1)+`. `+v(y.find(e=>e.value===n.mode)?.label),1),n.mode===`SCREEN_MODE_TEXT`||n.mode===`SCREEN_MODE_QR`?(l(),h(k,{key:0},[p(`: `+v(n.text),1)],64)):I(``,!0),n.mode===`SCREEN_MODE_TIMER`?(l(),h(k,{key:1},[p(`: `+v(n.timerLabel)+` (`+v(n.timerDurationSeconds)+` с)`,1)],64)):I(``,!0)]),A(i(H),{size:`small`,disabled:d.value||e.screenPlan?.currentStep===s||!u.value,onClick:e=>o(`setStep`,s)},{default:P(()=>[p(v(e.screenPlan?.currentStep===s?`Показан`:`Показать`),1)]),_:2},1032,[`disabled`,`onClick`])]),e.screenPlan?.currentStep===s?(l(),h(k,{key:0},[n.mode===`SCREEN_MODE_TIMER`?(l(),a(i(J),{key:0},{default:P(()=>[A(i(H),{square:``,"aria-label":g.value.label,title:g.value.label,disabled:d.value||!u.value,onClick:e=>o(`command`,n.mode,g.value.command)},{default:P(()=>[A(i(B),{size:18},{default:P(()=>[(l(),a(t(g.value.icon)))]),_:1})]),_:1},8,[`aria-label`,`title`,`disabled`,`onClick`]),A(i(H),{square:``,"aria-label":`Сбросить таймер`,title:`Сбросить таймер`,disabled:d.value||!u.value,onClick:e=>o(`command`,n.mode,`SCREEN_COMMAND_TIMER_RESET`)},{default:P(()=>[A(i(B),{size:18},{default:P(()=>[A(i(tn))]),_:1})]),_:1},8,[`disabled`,`onClick`])]),_:2},1024)):n.mode===`SCREEN_MODE_INTRO`||n.mode===`SCREEN_MODE_CONCLUSION`?(l(),h(k,{key:1},[A(i(J),null,{default:P(()=>[(l(),h(k,null,x(_,e=>A(i(H),{key:e.command,square:``,"aria-label":e.label,title:e.label,disabled:d.value||!u.value||!c.value,onClick:t=>o(`command`,n.mode,e.command)},{default:P(()=>[A(i(B),{size:18},{default:P(()=>[(l(),a(t(e.icon)))]),_:2},1024)]),_:2},1032,[`aria-label`,`title`,`disabled`,`onClick`])),64))]),_:2},1024),m(`label`,{id:`main-volume-${s}`},`Громкость`,8,Pn),A(i(Vt),{value:e.screenVolume,min:0,max:100,disabled:d.value||!u.value,"aria-labelledby":`main-volume-${s}`,"format-tooltip":e=>`${e}%`,"onUpdate:value":r[9]||=e=>o(`update:screenVolume`,e),onDragend:e=>o(`command`,n.mode,`SCREEN_COMMAND_VOLUME`),onKeyup:e=>o(`command`,n.mode,`SCREEN_COMMAND_VOLUME`)},null,8,[`value`,`disabled`,`aria-labelledby`,`format-tooltip`,`onDragend`,`onKeyup`])],64)):I(``,!0)],64)):I(``,!0)],64))])],10,En))),128))]),e.screenPlanMode===`edit`?(l(),a(i(J),{key:1},{default:P(()=>[A(i(H),{size:`small`,disabled:d.value,onClick:r[10]||=e=>o(`addStep`)},{default:P(()=>[...r[19]||=[p(`Добавить шаг`,-1)]]),_:1},8,[`disabled`]),A(i(H),{size:`small`,disabled:d.value||!f.value.length,onClick:r[11]||=e=>o(`clearPlan`)},{default:P(()=>[...r[20]||=[p(`Удалить план`,-1)]]),_:1},8,[`disabled`])]),_:1})):I(``,!0)]),_:1}))}}),[[`__scopeId`,`data-v-6e25da79`]]),In=G(n({__name:`ScreenBindingModal`,props:d({binding:{type:Boolean}},{show:{type:Boolean,required:!0},showModifiers:{}}),emits:d([`scanned`],[`update:show`]),setup(e,{emit:t}){let n=ae(e,`show`),r=t,o=F(``),s=F(),u=F(!1),d,f=0;function h(){cancelAnimationFrame(f),d?.getTracks().forEach(e=>e.stop()),d=void 0,u.value=!1}function g(e){try{let t=new URL(e,window.location.origin),n=t.searchParams.get(`screenId`),r=t.searchParams.get(`accessToken`);return t.pathname!==`/screen`||!n||!r?void 0:{screenID:n,accessToken:r}}catch{return}}async function _(){let e=window.BarcodeDetector;if(!e||!navigator.mediaDevices?.getUserMedia){o.value=`Сканирование камерой не поддерживается в этом браузере.`;return}o.value=``;try{if(d=await navigator.mediaDevices.getUserMedia({video:{facingMode:`environment`}}),u.value=!0,await pe(),!s.value)return;s.value.srcObject=d,await s.value.play();let t=new e,i=async()=>{if(!(!s.value||!d))try{let e=(await t.detect(s.value))[0]?.rawValue;if(e){let t=g(e);if(t){h(),n.value=!1,r(`scanned`,t.screenID,t.accessToken);return}o.value=`Это не QR-код экрана.`}f=requestAnimationFrame(i)}catch{o.value=`Не удалось распознать QR-код.`,h()}};f=requestAnimationFrame(i)}catch{o.value=`Не удалось открыть камеру.`,h()}}function y(){h(),n.value=!1}return ne(n,e=>{e?_():h()}),c(h),(t,r)=>(l(),a(i(we),{show:n.value,"onUpdate:show":r[0]||=e=>n.value=e},{default:P(()=>[A(i(Le),{style:{width:`min(600px, 94vw)`},title:`Привязать экран`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":P(()=>[A(i(H),{onClick:y},{default:P(()=>[...r[1]||=[p(` x `,-1)]]),_:1})]),default:P(()=>[A(i(J),{vertical:``},{default:P(()=>[m(`video`,{ref_key:`scannerVideo`,ref:s,class:`screen-scanner-video`,muted:``,playsinline:``},null,512),o.value?(l(),a(i(q),{key:0,type:`error`},{default:P(()=>[p(v(o.value),1)]),_:1})):I(``,!0),!u.value&&!e.binding?(l(),a(i(H),{key:1,type:`primary`,onClick:_},{default:P(()=>[...r[2]||=[p(` Сканировать QR-код `,-1)]]),_:1})):I(``,!0),u.value?(l(),a(i(H),{key:2,onClick:h},{default:P(()=>[...r[3]||=[p(`Остановить камеру`,-1)]]),_:1})):I(``,!0),e.binding?(l(),a(i(H),{key:3,type:`primary`,loading:``},{default:P(()=>[...r[4]||=[p(`Привязка…`,-1)]]),_:1})):I(``,!0)]),_:1})]),_:1})]),_:1},8,[`show`]))}}),[[`__scopeId`,`data-v-5f530845`]]),Ln={key:1,class:`screen-empty`},Rn={class:`screen-status`},zn={key:0,class:`screen-error`},Bn=G(n({__name:`GameScreensPanel`,props:{screens:{},screenBinding:{type:Boolean},isBusy:{type:Boolean}},emits:[`bind`,`setSound`,`unbind`],setup(e,{emit:t}){let n=e,r=t,o=F(!1);return(t,s)=>(l(),h(k,null,[A($,null,{default:P(()=>[A(i(Y),{align:`center`,justify:`space-between`,class:`screen-header`},{default:P(()=>[s[4]||=m(`p`,{class:`screens-title`},`Экраны`,-1),A(i(H),{size:`small`,disabled:e.isBusy||e.screenBinding,onClick:s[0]||=e=>o.value=!0},{default:P(()=>[...s[3]||=[p(` Привязать экран `,-1)]]),_:1},8,[`disabled`])]),_:1}),e.screens.some(e=>e.status===`disconnected`)?(l(),a(i(q),{key:0,type:`warning`,title:`Проверьте подключение экрана`},{default:P(()=>[...s[5]||=[p(` Один или несколько экранов не выходят на связь более минуты. `,-1)]]),_:1})):I(``,!0),e.screens.length===0?(l(),h(`p`,Ln,`К игре пока не привязаны экраны.`)):(l(!0),h(k,{key:2},x(e.screens,t=>(l(),h(`div`,{key:t.ID,class:`screen-row`},[m(`div`,null,[m(`div`,null,`Экран `+v(t.ID),1),m(`div`,Rn,v(t.status===`connected`?`Онлайн`:`Оффлайн`),1),t.error?(l(),h(`div`,zn,v(t.error),1)):I(``,!0)]),A(i(Y),{justify:`end`},{default:P(()=>[t.soundEnabled?(l(),a(i(z),{key:0,type:`success`},{default:P(()=>[...s[6]||=[p(`Со звуком`,-1)]]),_:1})):(l(),a(i(H),{key:1,size:`small`,disabled:e.isBusy,onClick:e=>r(`setSound`,t)},{default:P(()=>[...s[7]||=[p(`Назначить звук`,-1)]]),_:1},8,[`disabled`,`onClick`])),A(i(H),{size:`small`,type:`error`,ghost:``,disabled:e.isBusy,onClick:e=>r(`unbind`,t)},{default:P(()=>[...s[8]||=[p(` Отвязать `,-1)]]),_:1},8,[`disabled`,`onClick`])]),_:2},1024)]))),128))]),_:1}),A(In,{show:o.value,"onUpdate:show":s[1]||=e=>o.value=e,binding:n.screenBinding,onScanned:s[2]||=(e,t)=>r(`bind`,e,t)},null,8,[`show`,`binding`])],64))}}),[[`__scopeId`,`data-v-361cce15`]]),Vn={key:0},Hn={key:3},Un={key:4},Wn={key:0},Gn={key:2},Kn={key:0},qn={class:`device-details`},Jn={key:0},Yn={key:1},Xn=G(n({__name:`GameStatePanel`,props:{devices:{},wifi:{},serverTime:{},isLoading:{type:Boolean},hasError:{type:Boolean},summary:{}},emits:[`reload`],setup(e){let t={browser:`Браузер`,organizer:`Организатор`,team:`Команда`,screen:`Экран`};return(n,r)=>(l(),h(k,null,[A($,null,{default:P(()=>[A(i(Y),null,{default:P(()=>[A(i(z),{type:`success`},{default:P(()=>[p(`Доступны: `+v(e.summary.connected),1)]),_:1}),A(i(z),{type:`warning`},{default:P(()=>[p(`Нет связи: `+v(e.summary.disconnected),1)]),_:1}),A(i(z),null,{default:P(()=>[p(`Подключения: `+v(e.summary.connections),1)]),_:1})]),_:1}),e.serverTime?(l(),h(`p`,Vn,`Последнее обновление: `+v(i(gt)(e.serverTime)),1)):I(``,!0),r[2]||=m(`p`,null,`«Нет связи» означает отсутствие heartbeat сайта. UUID обозначает браузерный профиль.`,-1),e.hasError?(l(),a(i(q),{key:1,type:`error`,title:`Не удалось обновить состояние`},{default:P(()=>[A(i(H),{loading:e.isLoading,onClick:r[0]||=e=>n.$emit(`reload`)},{default:P(()=>[...r[1]||=[p(`Повторить`,-1)]]),_:1},8,[`loading`])]),_:1})):I(``,!0),e.isLoading&&!e.serverTime?(l(),a(i(He),{key:2})):!e.hasError&&!e.serverTime&&!e.isLoading?(l(),h(`p`,Hn,`Загружаем состояние…`)):e.serverTime&&!e.devices.length?(l(),h(`p`,Un,`Устройства этой игры пока не зарегистрированы`)):I(``,!0)]),_:1}),A($,null,{default:P(()=>[r[4]||=m(`h3`,null,`Wi-Fi площадки`,-1),r[5]||=m(`p`,null,` Все Wi-Fi-клиенты Cudy, независимо от выбранной игры. MAC устройства и UUID браузера различаются. `,-1),e.wifi?.enabled?(l(),h(k,{key:1},[e.wifi.hasError?(l(),a(i(q),{key:0,type:`warning`,role:`alert`,title:`Не удалось обновить данные Cudy`})):I(``,!0),e.wifi.stale?(l(),a(i(z),{key:1,type:`warning`},{default:P(()=>[...r[3]||=[p(`Данные устарели`,-1)]]),_:1})):I(``,!0),e.wifi.collectedAt?(l(),h(`p`,Gn,` Последний снимок Cudy: `+v(i(gt)(e.wifi.collectedAt)),1)):I(``,!0),e.wifi.collectedAt?(l(),h(k,{key:3},[m(`p`,null,`Wi-Fi-клиентов: `+v(e.wifi.clients?.length||0),1),e.wifi.clients?.length?I(``,!0):(l(),h(`p`,Kn,`Wi-Fi-клиенты пока не подключены`)),(l(!0),h(k,null,x(e.wifi.clients,e=>(l(),h(`div`,{key:e.MAC,class:`connection device-details`},[m(`strong`,null,v(e.MAC),1),m(`p`,null,`IP: `+v(e.IP||`—`)+` · `+v(e.band),1),m(`p`,null,`Сигнал: `+v(e.signal===void 0?`Нет данных`:`${e.signal} dBm`),1)]))),128))],64)):I(``,!0)],64)):(l(),h(`p`,Wn,`Сбор данных Cudy не настроен`))]),_:1}),(l(!0),h(k,null,x(e.devices,e=>(l(),a($,{key:e.ID},{default:P(()=>[m(`div`,qn,[m(`strong`,null,v(e.ID),1),m(`p`,null,[A(i(z),{type:e.connected?`success`:`warning`},{default:P(()=>[p(v(e.connected?`Доступно`:`Нет связи`),1)]),_:2},1032,[`type`])]),m(`p`,null,`Последнее обращение: `+v(i(gt)(e.lastSeenAt)||`—`),1),A(i(Ct),null,{default:P(()=>[A(i(Tt),{title:`Подключения`,name:e.ID||``},{default:P(()=>[(l(!0),h(k,null,x(e.connections,e=>(l(),h(`div`,{key:e.ID,class:`connection`},[m(`strong`,null,v(t[e.kind||``]||e.kind),1),e.teamID?(l(),h(`p`,Jn,`ID команды: `+v(e.teamID),1)):I(``,!0),e.screenID?(l(),h(`p`,Yn,`ID экрана: `+v(e.screenID),1)):I(``,!0),m(`p`,null,v(e.connected?`Доступно`:`Нет связи`),1),m(`p`,null,`Последнее обращение: `+v(i(gt)(e.lastSeenAt)||`—`),1),m(`p`,null,`IP: `+v(e.IP||`—`),1),m(`p`,null,`User-Agent: `+v(e.userAgent||`—`),1)]))),128))]),_:2},1032,[`name`])]),_:2},1024)])]),_:2},1024))),128))],64))}}),[[`__scopeId`,`data-v-a670747a`]]),Zn={class:`team-content-block`},Qn={class:`title-block`},$n={class:`team-name-block`},er={key:0},tr={key:1},nr={key:0},rr={key:0},ir={key:1},ar={key:2},or={key:3},sr={key:4},cr=G(n({__name:`GameTeamsPanel`,props:{teams:{},canPrintReceipts:{type:Boolean},participationOptions:{}},emits:[`add`,`open-qr`,`print`,`preview`,`delete`,`give-application`],setup(e,{emit:t}){let n=t;return(t,r)=>(l(),h(k,null,[A($,{class:`team-block-hover`,onClick:r[0]||=e=>n(`add`)},{default:P(()=>[...r[1]||=[m(`p`,{class:`place-image-plus`},`+`,-1)]]),_:1}),(l(!0),h(k,null,x(e.teams,t=>(l(),a($,{key:t.ID},{default:P(()=>[m(`div`,Zn,[A(i(Y),{justify:`space-between`},{default:P(()=>[m(`div`,Qn,[m(`span`,$n,[p(v(t.name)+` `,1),t.captainEmail?(l(),h(`small`,er,` — `+v(t.captainEmail),1)):I(``,!0),t.participantsCount?(l(),h(`small`,tr,` · Участников: `+v(t.participantsCount),1)):I(``,!0)]),t.captainEmail||t.participationStatus!==`pending`?(l(),h(`div`,nr,[p(v(e.participationOptions.find(e=>e.value===t.participationStatus)?.label),1),t.participationSource===`automatic`?(l(),h(`span`,rr,` · автоматически`)):I(``,!0)])):I(``,!0),t.captainEmail?t.participationEmailError?(l(),h(`div`,ar,` Ошибка отправки: `+v(t.participationEmailError),1)):t.participationEmailSent?(l(),h(`div`,or,`Письмо отправлено`)):I(``,!0):(l(),h(`div`,ir,`Почта капитана не указана`)),t.participationStatus===`cancelled`?I(``,!0):(l(),h(`div`,sr,` Поездки: `+v(t.actionsCount),1))]),A(i(Y),{justify:`end`},{default:P(()=>[e.canPrintReceipts&&t.participationStatus!==`cancelled`?(l(),a(i(H),{key:0,onClick:e=>n(`print`,t)},{default:P(()=>[...r[2]||=[p(` Печать чека `,-1)]]),_:1},8,[`onClick`])):I(``,!0),t.participationStatus===`cancelled`?I(``,!0):(l(),a(i(H),{key:1,onClick:e=>n(`open-qr`,t)},{default:P(()=>[...r[3]||=[p(`QR`,-1)]]),_:1},8,[`onClick`])),t.participationStatus===`cancelled`?I(``,!0):(l(),a(i(H),{key:2,onClick:e=>n(`preview`,t.ID,t.password)},{default:P(()=>[...r[4]||=[p(`Подсмотреть игру`,-1)]]),_:1},8,[`onClick`])),A(i(H),{type:`error`,ghost:``,onClick:e=>n(`delete`,t)},{default:P(()=>[...r[5]||=[p(`Удалить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024),(l(!0),h(k,null,x(t.applications,e=>(l(),a(i(H),{key:e.name,class:`link-button`,onClick:r=>n(`give-application`,t,e)},{default:P(()=>[p(` Выдать: `+v(e.name),1)]),_:2},1032,[`onClick`]))),128))])]),_:2},1024))),128))],64))}}),[[`__scopeId`,`data-v-70e02c3e`]]),lr=[`src`,`alt`],ur={key:2},dr=G(n({__name:`TeamReceiptModal`,props:{show:{type:Boolean},name:{},preview:{},preparationError:{},isPreparing:{type:Boolean},isPrinting:{type:Boolean}},emits:[`update:show`,`print`],setup(e,{emit:t}){let n=t;return(t,r)=>(l(),a(i(we),{show:e.show,"mask-closable":!e.isPrinting,"close-on-esc":!e.isPrinting,"onUpdate:show":r[2]||=e=>n(`update:show`,e)},{default:P(()=>[A(i(Le),{class:`receipt-modal`,title:`Чек команды`,role:`dialog`,"aria-modal":`true`},{default:P(()=>[e.preparationError?(l(),a(i(q),{key:0,type:`error`},{default:P(()=>[p(v(e.preparationError),1)]),_:1})):e.preview?(l(),h(`img`,{key:1,class:`receipt-preview`,src:e.preview,alt:`Чек команды ${e.name}`},null,8,lr)):e.isPreparing?(l(),h(`p`,ur,`Подготовка чека…`)):I(``,!0),r[5]||=m(`p`,null,`Включите MXW01 рядом с сервером площадки. Сервер напечатает один чек.`,-1),A(i(Y),{justify:`end`},{default:P(()=>[A(i(H),{disabled:e.isPrinting,onClick:r[0]||=e=>n(`update:show`,!1)},{default:P(()=>[...r[3]||=[p(`Закрыть`,-1)]]),_:1},8,[`disabled`]),A(i(H),{type:`primary`,loading:e.isPrinting,disabled:!e.preview||e.isPreparing||e.isPrinting,onClick:r[1]||=e=>n(`print`)},{default:P(()=>[...r[4]||=[p(`Печатать`,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1},8,[`show`,`mask-closable`,`close-on-esc`]))}}),[[`__scopeId`,`data-v-f0b8d644`]]),fr={key:0},pr={key:1},mr={key:2},hr=G(n({__name:`TicketCheckModal`,props:{show:{type:Boolean,required:!0},showModifiers:{}},emits:[`update:show`],setup(e){let t=ae(e,`show`),n=Ze(),r=be(),o=F(``),s=F(),u=F(``),d=F(!1),f=F(),g=F(!1),_,y=0,b=L(()=>{try{return new URL(o.value.trim()).pathname.match(/\/tickets\/([^/]+)/)?.[1]||``}catch{return o.value.trim()}});async function x(){if(!(!b.value||d.value)){d.value=!0,u.value=``,s.value=void 0;try{let e=await n.GetTicket({token:b.value});e.ticket?s.value=e.ticket:u.value=`Билет не найден`}catch(e){u.value=e instanceof Error?e.message:`Не удалось проверить билет`}finally{d.value=!1}}}async function S(){if(!(!b.value||d.value)){d.value=!0,u.value=``;try{let e=await n.AcceptTicket({token:b.value});e.ticket?(s.value=e.ticket,r.success(`Билет принят`)):u.value=`Не удалось принять билет`}catch(e){u.value=e instanceof Error?e.message:`Не удалось принять билет`}finally{d.value=!1}}}async function C(){let e=window.BarcodeDetector;if(!e||!navigator.mediaDevices?.getUserMedia){u.value=`Сканирование камерой не поддерживается. Введите ссылку вручную.`;return}u.value=``;try{if(_=await navigator.mediaDevices.getUserMedia({video:{facingMode:`environment`}}),g.value=!0,await pe(),!f.value)return;f.value.srcObject=_,await f.value.play();let t=new e,n=async()=>{if(!(!g.value||!f.value))try{let e=(await t.detect(f.value))[0]?.rawValue;if(e){o.value=e,w(),await x();return}y=requestAnimationFrame(n)}catch{u.value=`Не удалось распознать QR-код.`,w()}};y=requestAnimationFrame(n)}catch{u.value=`Не удалось открыть камеру. Введите ссылку вручную.`,w()}}function w(){cancelAnimationFrame(y),_?.getTracks().forEach(e=>e.stop()),_=void 0,g.value=!1}function T(){w(),t.value=!1}return ne(t,e=>{e?C():w()}),c(w),(e,n)=>(l(),a(i(we),{show:t.value,"onUpdate:show":n[1]||=e=>t.value=e},{default:P(()=>[A(i(Le),{style:{width:`min(600px, 94vw)`},title:`Проверка билета`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":P(()=>[A(i(H),{onClick:T},{default:P(()=>[...n[2]||=[p(` x `,-1)]]),_:1})]),default:P(()=>[A(i(J),{vertical:``},{default:P(()=>[g.value?(l(),h(`video`,{key:0,ref_key:`video`,ref:f,class:`ticket-scanner-video`,muted:``,playsinline:``},null,512)):I(``,!0),u.value?(l(),a(i(q),{key:1,type:`error`},{default:P(()=>[p(v(u.value),1)]),_:1})):I(``,!0),g.value?(l(),a(i(H),{key:3,onClick:w},{default:P(()=>[...n[4]||=[p(`Остановить камеру`,-1)]]),_:1})):(l(),a(i(H),{key:2,onClick:C},{default:P(()=>[...n[3]||=[p(`Сканировать QR-код`,-1)]]),_:1})),A(i(K),{value:o.value,"onUpdate:value":n[0]||=e=>o.value=e,placeholder:`Или вставьте ссылку на билет`,onKeyup:it(x,[`enter`])},null,8,[`value`]),A(i(H),{type:`primary`,loading:d.value,onClick:x},{default:P(()=>[...n[5]||=[p(` Проверить билет `,-1)]]),_:1},8,[`loading`]),s.value?(l(),h(k,{key:4},[A(i(q),{type:s.value.status===`active`?`success`:`warning`},{default:P(()=>[p(v(s.value.gameName),1),n[6]||=m(`br`,null,null,-1),p(` Статус: `+v(s.value.status===`active`?`действителен`:`уже использован`)+` `,1),s.value.usedBy?(l(),h(`span`,fr,` · `+v(s.value.usedBy),1)):I(``,!0),s.value.usedAt?(l(),h(`br`,pr)):I(``,!0),s.value.usedAt?(l(),h(`span`,mr,`Использован: `+v(i(gt)(s.value.usedAt)),1)):I(``,!0)]),_:1},8,[`type`]),s.value.status===`active`&&s.value.gameStatus!==`finish`?(l(),a(i(H),{key:0,type:`primary`,loading:d.value,onClick:S},{default:P(()=>[...n[7]||=[p(` Принять билет `,-1)]]),_:1},8,[`loading`])):I(``,!0)],64)):I(``,!0)]),_:1})]),_:1})]),_:1},8,[`show`]))}}),[[`__scopeId`,`data-v-fe322487`]]);function gr(e,t){let n=Ze(),r=F([]),i=F(),a=F(),o=F(!1),s=F(!1),c=0,l=!1,u=!1,d=L(()=>({connected:r.value.filter(e=>e.connected).length,disconnected:r.value.filter(e=>!e.connected).length,connections:r.value.reduce((e,t)=>e+(t.connections?.length||0),0)}));async function f(){if(!t()||l||u)return;let d=c,p=e();u=!0,o.value=!0;try{let e=await n.GetDevices({gameID:p});if(l||!t()||d!==c)return;r.value=[...e.devices||[]].sort((e,t)=>Number(!!e.connected)-Number(!!t.connected)||(e.ID||``).localeCompare(t.ID||``)),i.value=e.wifi,a.value=e.serverTime,s.value=!1}catch{!l&&t()&&d===c&&(s.value=!0)}finally{u=!1,!l&&d===c&&(o.value=!1),!l&&t()&&d!==c&&f()}}return ne([e,t],([e],[n])=>{c++,o.value=!1,e!==n&&(r.value=[],i.value=void 0,a.value=void 0,s.value=!1),t()&&f()},{flush:`sync`}),at(()=>{f()},5e3),te(()=>{l=!0,c++}),{devices:r,wifi:i,serverTime:a,isLoading:o,hasError:s,summary:d,reload:f}}function _r(e,t){let n=new Set(e.flatMap(e=>(e.applications||[]).map(t=>JSON.stringify([e.ID,t.name]))));return t.some(e=>e.applications?.some(t=>!n.has(JSON.stringify([e.ID,t.name]))))}var vr={class:`center-block-custom`},yr={class:`width1200`},br={class:`game-tab-content`},xr=[`href`],Sr={class:`game-tab-content`},Cr={key:1,role:`status`},wr={class:`screen-overview`},Tr={key:1,class:`screen-preview-placeholder`},Er={class:`presentation-grid`},Dr={class:`game-tab-content`},Or={class:`game-tab-content`},kr={class:`qr-block`},Ar={class:`game-tab-content`},jr={key:2},Mr={key:3,class:`answer-results-scroll`},Nr={key:0,class:`answers-empty`},Pr={class:`answers-team-name`},Fr={class:`answers-question-title`},Ir={class:`answers-question-answer`},Lr={class:`correct-answer`},Rr={class:`answers-team-row`},zr={class:`answers-team-answer`},Br={key:0,class:`give-application-image-block`},Vr=[`src`],Hr=[`src`],Ur=[`href`],Wr={class:`qr-block`},Gr={key:0,class:`answers-empty`},Kr=`https://www.sberbank.ru/ru/choise_bank?requisiteNumber=79609361994&bankCode=100000000111`,qr=G(n({__name:`GamePage`,emits:[`resultsApplied`],setup(e,{emit:t}){let n=t,r=Ze(),o=ct(),c=F(!1),d=F(!1),f=O(),g=le(),_=g.params.id;function y(e){return[`settings`,`screens`,`game`,`payment`,`answers`,`state`].includes(e)}let b=typeof g.query.tab==`string`?g.query.tab:``,S=F(y(b)?b:`game`);async function C(e){!y(e)||(e===`state`?!Ie.value:!U.value)||(S.value=e,await f.replace({query:{...g.query,tab:e}}))}function w(e){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),C(`state`))}let T=be(),E=F({name:``,description:``,format:`online`,location:``,wifiName:``,wifiPassword:``}),D=F(!1),ee=F(!1),te=F(!1),re=F(!1),ie=F(!1),ae=F(!1),j=F(``),M=F(``),oe=F(1),se=F(``),N=F(!1),ce=F(``),ue=F(``),de=F(!1),fe=F({name:``,teamID:``}),pe=F(!1),me=F(!1),R=F(``),he=F(``),ge=0,_e=F(!1),ve=F(1),ye=F([]),Se=F(!1),Ce=F(!1),V=F({ID:void 0,name:void 0,description:void 0,startAt:void 0,status:void 0,format:void 0,location:void 0,scenario:void 0,teams:void 0,export:void 0,wifiName:void 0,wifiPassword:void 0}),Te=tt(),Ee=xe(),U=L(()=>Te.hasAnyRole([`admin`,`organizer`,`author`])),W=0,Ae=0,je=!1,Me=!1,G,Pe,Fe=!1,Ie=L(()=>Ee.environment===`venue`&&Te.hasAnyRole([`admin`,`organizer`,`developer`])),ze=L(()=>Ie.value&&!U.value);_t(()=>U.value?{organizerGameID:Number(_)}:{});let{devices:He,wifi:We,serverTime:Ge,isLoading:Ke,hasError:qe,summary:Je,reload:Ye}=gr(()=>Number(g.params.id),()=>Ie.value&&S.value===`state`);ne([()=>g.query.tab,Ie,U],()=>{let e=typeof g.query.tab==`string`?g.query.tab:``;S.value=ze.value?`state`:y(e)&&(e!==`state`||Ie.value)?e:`game`,ze.value&&e!==`state`&&f.replace({query:{...g.query,tab:`state`}})},{immediate:!0}),ne(ze,e=>{e&&(V.value={ID:void 0,name:void 0,description:void 0,startAt:void 0,status:void 0,format:void 0,location:void 0,scenario:void 0,teams:void 0,export:void 0,wifiName:void 0,wifiPassword:void 0},dn(Number(_)))},{immediate:!0});let Xe=L(()=>Number(V.value.ID)>0&&Ee.environment===`prod`&&Te.hasAnyRole([`admin`,`organizer`,`developer`])),Qe=F(!1),$e=F(!1),et=L(()=>Xe.value&&(V.value.export?.state===`preparing`||V.value.export?.state===`ready`)),X=F(!1),nt=F(!1),rt=F(``),it=L(()=>Ee.environment===`venue`&&V.value.status===`finish`&&Te.hasAnyRole([`admin`,`organizer`,`developer`])),ot=F(!1),ft=F(!1),pt=F([]),vt=F(``),yt=[{label:`Ожидает ответа`,value:`pending`},{label:`Подтверждено`,value:`confirmed`},{label:`Отменено`,value:`cancelled`}],bt=L(()=>(V.value.teams||[]).filter(e=>e.participationStatus!==`cancelled`).length),xt=F([]),St=F([]),Ct=F(),wt=F(!1),Tt=0,Et=Date.now(),{saveGroup:Dt,deleteGroup:Ot,reorderGroups:kt,setTrackGroup:At,createPlaylist:jt,renamePlaylist:Mt,reorderTracks:Nt,deletePlaylist:Pt,uploadTrack:Ft,deleteTrack:It}=Be(wt,()=>mn(!0),()=>{Tt+=1}),Z=F(!1),Rt=F(!0),zt=F(``),Bt=F(),Q=F([]),Vt=F(!1),Ht=F(!1),Wt=F(`use`),Gt=0,Kt=F([]),Jt=F([]),Xt=F(),Qt=F([]),$t=F(!1),en=F(!1),nn=F(100),rn=L(()=>xt.value.find(e=>e.status===`connected`)||xt.value[0]);ne(()=>rn.value?.volume,e=>{nn.value=e??100});function an(e){Me||Fe||(Fe=!0,T.warning(`Не удалось включить звуковые уведомления о выдаче улик`),console.error(`Звуковое уведомление о выдаче улик`,e))}async function cn(){if(!(!U.value||Me))try{G??=new AudioContext,G.state===`suspended`&&await G.resume();let e=G;Pe??=fetch(sn).then(async t=>{if(!t.ok)throw Error(`Не удалось загрузить звук уведомления`);return e.decodeAudioData(await t.arrayBuffer())}),await Pe}catch(e){Pe=void 0,an(e)}}async function ln(){if(!(!G||G.state!==`running`||!Pe))try{let e=await Pe;if(Me||G.state!==`running`)return;let t=G.createBufferSource();t.buffer=e,t.connect(G.destination),t.onended=()=>t.disconnect(),t.start()}catch(e){an(e)}}async function un(){await cn(),await ln()}s(()=>{window.addEventListener(`click`,cn),window.addEventListener(`keydown`,cn)}),u(()=>{Me=!0,ge++,fr(),window.removeEventListener(`click`,cn),window.removeEventListener(`keydown`,cn),G?.close().catch(e=>{console.error(`Закрытие звуковых уведомлений`,e)})});async function dn(e){let t=++W,n=U.value,i=await r.GetGame({ID:e});Me||n!==U.value||t{let n=0;(e.applications?.length||0)>0&&(n=1);let r=0;if((t.applications?.length||0)>0&&(r=1),n>r)return-1;if(na?1:ie.mode===`SCREEN_MODE_TEAMS`)){let e=await r.GetGame({ID:Number(_)});Xt.value=(e.game?.teams??[]).filter(e=>e.participationStatus!==`cancelled`).map(e=>e.name??``).sort((e,t)=>e.localeCompare(t,`ru`))}if((Wt.value===`edit`?Q.value:Bt.value?.steps)?.some(e=>e.mode===`SCREEN_MODE_RESULTS`)||rn.value?.mode===`SCREEN_MODE_RESULTS`){let e=await r.GetGameResults({gameID:Number(_)});Kt.value=e.questions||[],Jt.value=e.teams||[]}}catch(e){zt.value=e instanceof Error?e.message:`Не удалось получить состояние экранов`}finally{Rt.value=!1}}U.value&&fn();async function mn(e=!1){if(wt.value&&!e)return;let t=++Tt;try{let e=await r.GetGameMusic({gameID:Number(_)});if(t!==Tt)return;St.value=e.playlists||[],Ct.value=e.state,Et=Date.now()}catch(e){T.error(e instanceof Error?e.message:`Не удалось получить музыку игры`)}}U.value&&mn();function hn(){return Wt.value===`edit`}async function gn(){if(hn()||Vt.value||Z.value)return;let e=++Gt;try{let t=await r.GetScreenPlan({gameID:Number(_)});if(e!==Gt||hn()||Z.value||Vt.value)return;Bt.value=t.plan,Q.value=t.plan?.steps?.map(e=>({...e}))||[]}catch(e){T.error(e instanceof Error?e.message:`Не удалось получить план экранов`)}}U.value&&gn();function _n(){Q.value.push({mode:`SCREEN_MODE_TEXT`,text:`Новый экран`,timerLabel:`Перерыв`,timerDurationSeconds:600,qrUrl:``,timerType:`SCREEN_TIMER_TYPE_BREAK`}),Vt.value=!0,Wt.value=`edit`}function vn(){Bt.value&&(Q.value=Bt.value.steps?.map(e=>({...e}))||[],Wt.value=`edit`)}function yn(){Vt.value&&!window.confirm(`Отменить несохранённые изменения плана?`)||(Q.value=Bt.value?.steps?.map(e=>({...e}))||[],Vt.value=!1,Wt.value=`use`)}function bn(e){Q.value.splice(e,1),Vt.value=!0}function xn(e,t){let n=e+t;if(n<0||n>=Q.value.length)return;let[r]=Q.value.splice(e,1);Q.value.splice(n,0,r),Vt.value=!0}function Sn(){Vt.value=!0}function wn(){Q.value=[],Sn()}async function Tn(){if(Ht.value)return;let e=Q.value.findIndex(e=>e.mode===`SCREEN_MODE_TEXT`&&!e.text?.trim()||e.mode===`SCREEN_MODE_QR`&&!dt(e.qrUrl,e.text)||e.mode===`SCREEN_MODE_TIMER`&&(!Number.isInteger(e.timerDurationSeconds)||(e.timerDurationSeconds??0)<1||(e.timerDurationSeconds??0)>86400));if(e!==-1){T.error(`Проверьте ссылку QR, текст или длительность таймера в шаге ${e+1}`);return}Gt+=1,Ht.value=!0;try{let e=Math.min(Bt.value?.currentStep||0,Math.max(0,Q.value.length-1)),t=await r.SaveScreenPlan({gameID:Number(_),steps:Q.value,currentStep:e});Bt.value=t.plan,Q.value=t.plan?.steps?.map(e=>({...e}))||[],Vt.value=!1,Wt.value=`use`,T.success(t.plan?`План экранов сохранён`:`План экранов удалён`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось сохранить план экранов`)}finally{Ht.value=!1}}async function En(e){if(!(Vt.value||!Bt.value||Z.value||Ht.value)){Z.value=!0,Gt+=1;try{let t=await r.SetScreenPlanStep({gameID:Number(_),currentStep:e});Bt.value=t.plan,await fn()}catch(e){T.error(e instanceof Error?e.message:`Не удалось перейти на шаг плана`)}finally{Z.value=!1}}}async function Dn(e,t){if(!(Z.value||Ht.value||Vt.value||e!==`SCREEN_MODE_TIMER`&&e!==`SCREEN_MODE_INTRO`&&e!==`SCREEN_MODE_CONCLUSION`)){Z.value=!0;try{await r.SendScreenCommand({gameID:Number(_),command:t,positionMs:0,volume:Math.max(0,Math.min(100,Math.round(nn.value)))}),await fn()}catch(e){T.error(e instanceof Error?e.message:`Не удалось управлять экраном`)}finally{Z.value=!1}}}async function On(e,t){if(!Ce.value){Ce.value=!0;try{await r.BindScreen({screenID:e,accessToken:t,gameID:Number(_),initializeAudio:!1}),T.success(`Экран привязан к игре`),await fn()}catch(e){T.error(e instanceof Error?e.message:`Не удалось привязать экран`)}finally{Ce.value=!1}}}async function kn(){if($t.value||en.value)return;let e=await r.GetGameMap({gameID:Number(_)});$t.value||en.value||(Qt.value=e.items||[])}U.value&&kn();async function An(e,t=e.hidden){$t.value=!0;try{await r.UpdateGameMapItem({gameID:Number(_),kind:e.kind,itemID:e.itemID,x:Math.round(e.x||0),y:Math.round(e.y||0),hidden:t})}finally{$t.value=!1}}async function jn(e,t=e.hidden){await An(e,t),await kn()}async function Mn(e){if(!Z.value){Z.value=!0;try{await r.SetScreenSound({screenID:e.ID,soundEnabled:!0}),await fn()}catch(e){T.error(e instanceof Error?e.message:`Не удалось назначить звук`)}finally{Z.value=!1}}}async function Nn(e){if(wt.value)return;wt.value=!0,Tt+=1;let t=Ct.value;try{let n=await r.SetGameMusic({gameID:Number(_),playlistID:e.playlistID??t?.playlist?.ID??0,groupId:e.groupId??(e.playlistID===void 0?t?.groupId??0:0),trackIndex:e.trackIndex??t?.trackIndex??0,positionMs:e.positionMs??Number(t?.positionMs??0)+(t?.playback===`MUSIC_PLAYBACK_PLAYING`?Math.max(0,Date.now()-Et):0),volume:e.volume??t?.volume??100,loop:e.loop??t?.loop??!1,playback:e.playback??t?.playback??`MUSIC_PLAYBACK_STOPPED`});Ct.value=n.state,Et=Date.now()}catch(e){T.error(e instanceof Error?e.message:`Не удалось изменить музыку`)}finally{wt.value=!1}}async function Pn(e){if(!Z.value){Z.value=!0;try{await r.UnbindScreen({screenID:e.ID}),await fn()}catch(e){T.error(e instanceof Error?e.message:`Не удалось отвязать экран`)}finally{Z.value=!1}}}async function In(e,t,n=!1){let r=`/team-story/`+e+`?password=`+t;if(n){window.open(r,`_blank`);return}f.push(r)}async function Ln(){if(!(!Xe.value||Qe.value||X.value)){Qe.value=!0;try{let e=await r.StartGameExport({ID:V.value.ID});V.value.export=e.export}catch(e){T.error(e instanceof Error?e.message:`Не удалось подготовить пакет`)}finally{Qe.value=!1}}}function Rn(){!et.value||Qe.value||X.value||(rt.value=V.value.export?.ID||``,nt.value=!0)}async function zn(){if(!(!Xe.value||!rt.value||X.value)){X.value=!0;try{await r.ResetGameLocalMode({ID:V.value.ID,exportID:rt.value}),nt.value=!1,await dn(Number(V.value.ID)),T.success(`Локальный режим сброшен`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось сбросить локальный режим`)}finally{X.value=!1}}}async function Vn(){if(!(!Xe.value||$e.value||V.value.export?.state!==`ready`)){$e.value=!0;try{let{blob:e,filename:t}=await o.downloadGamePackage(V.value.ID),n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),1e3)}catch(e){T.error(e instanceof Error?e.message:`Не удалось скачать пакет`)}finally{$e.value=!1}}}function Hn({fileList:e}){ft.value||(pt.value=e.slice(-1),vt.value=``)}async function Un(){if(!(!it.value||ot.value)){ot.value=!0;try{let{blob:e,filename:t}=await o.downloadGameResultsPackage(V.value.ID),n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),1e3)}catch(e){T.error(e instanceof Error?e.message:`Не удалось скачать результаты`)}finally{ot.value=!1}}}async function Wn(){if(!Xe.value||ft.value)return;let e=pt.value[0]?.file;if(!e||e.size===0){vt.value=`Выберите непустой ZIP-файл`;return}if(!e.name.toLowerCase().endsWith(`.zip`)){vt.value=`Выберите файл с расширением .zip`;return}if(e.size>1024**3){vt.value=`Размер пакета не должен превышать 1 ГиБ`;return}ft.value=!0,vt.value=``;try{await o.applyGameResultsPackage(V.value.ID,e),T.success(`Результаты приняты`),n(`resultsApplied`)}catch(e){vt.value=e instanceof Error?e.message:`Не удалось применить результаты`}finally{ft.value=!1}}async function Gn(){let e=V.value.ID;if(!(!U.value||!e||d.value)){d.value=!0;try{let{blob:t,filename:n}=await o.downloadGamePrintMaterials(e),r=URL.createObjectURL(t),i=document.createElement(`a`);i.href=r,i.download=n,document.body.appendChild(i),i.click(),i.remove(),setTimeout(()=>URL.revokeObjectURL(r),1e3)}catch(e){T.error(e instanceof Error?e.message:`Не удалось скачать материалы для печати`)}finally{d.value=!1}}}async function Kn(){if(!(c.value||!V.value.teams?.length)){c.value=!0;try{let{blob:e,filename:t}=await o.downloadTeamQR(V.value.ID),n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),1e3)}catch(e){T.error(e instanceof Error?e.message:`Не удалось скачать QR команд`)}finally{c.value=!1}}}function qn(){f.push(`/games/`+_+`/results`)}async function Jn(){if(!D.value){if(new TextEncoder().encode(E.value.wifiName).length>32||/[\p{Cc}\p{Cf}\p{Zl}\p{Zp}]/u.test(E.value.wifiName)){T.error(`Название Wi-Fi — до 32 байт UTF-8, без управляющих символов`);return}if(!/^[\x20-\x7e]{0,64}$/.test(E.value.wifiPassword)){T.error(`Пароль Wi-Fi — до 64 печатных ASCII-символов`);return}D.value=!0;try{await r.UpdateGame({ID:V.value.ID,name:E.value.name,description:E.value.description,format:E.value.format,location:E.value.location.trim(),wifiName:E.value.wifiName,wifiPassword:E.value.wifiPassword,startAt:V.value.startAt,scenarioID:V.value.scenario?.ID}),await dn(V.value.ID),T.success(`Настройки игры сохранены`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось сохранить настройки игры`)}finally{D.value=!1}}}let Yn=F({ID:``,name:``,status:``,password:``,actionsCount:0,applications:[],captainEmail:void 0,participantsCount:void 0,participationStatus:void 0,participationSource:void 0,participationEmailError:void 0,participationEmailSent:void 0}),Zn=F(``),Qn=F({ID:``,name:``,status:``,password:``,actionsCount:0,applications:[],captainEmail:void 0,participantsCount:void 0,participationStatus:void 0,participationSource:void 0,participationEmailError:void 0,participationEmailSent:void 0}),$n=F({name:``,image:``,file_type:``}),er=window.location.href;function tr(e,t){Yn.value=e,$n.value=t,te.value=!0}async function nr(){if(oe.value<1||oe.value>8){T.error(`Укажите от 1 до 8 игроков`);return}await r.AddTeam({gameID:V.value.ID,name:j.value,captainEmail:M.value.trim(),participantsCount:oe.value}),await dn(V.value.ID),re.value=!1,M.value=``,oe.value=1}async function rr(){await r.GiveTeamApplications({ID:Yn.value.ID,name:$n.value.name}),await dn(V.value.ID),te.value=!1}async function ir(e){Qn.value=e,ie.value=!0}async function ar(){await r.DeleteTeam({ID:Qn.value.ID}),await dn(V.value.ID),ie.value=!1}async function or(){await r.DeleteGame({ID:V.value.ID}),T.success(`Игра удалена`),f.push(`/games`)}function sr(e,t){let n=new URL(`/team-story/${e}`,window.location.origin);return n.searchParams.set(`password`,t),n.toString()}function lr(e){qr(sr(e.ID,e.password),`Подсмотреть игру`)}function ur(e){if(Ee.environment!==`venue`||!e.ID||!e.name||e.participationStatus===`cancelled`){T.error(`У команды нет данных для печати чека`);return}fe.value={name:e.name,teamID:e.ID},de.value=!0}ne([de,()=>fe.value.teamID,U,()=>Ee.environment],pr);function fr(){R.value&&URL.revokeObjectURL(R.value),R.value=``}async function pr(){let e=++ge;if(fr(),he.value=``,me.value=!1,!(!de.value||!U.value||Ee.environment!==`venue`)){me.value=!0;try{let{blob:t}=await o.downloadTeamReceipt(Number(_),fe.value.teamID);e===ge&&(R.value=URL.createObjectURL(t))}catch(t){e===ge&&(he.value=t instanceof Error?t.message:`Не удалось подготовить чек`)}finally{e===ge&&(me.value=!1)}}}async function mr(){if(!(!R.value||pe.value||me.value)){pe.value=!0;try{await r.PrintTeamReceipt({gameID:Number(_),teamID:fe.value.teamID}),T.success(`Чек напечатан`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось напечатать чек`)}finally{pe.value=!1}}}async function qr(e,t){ce.value=e,ue.value=t,N.value=!0}async function Jr(){if(!(Se.value||!V.value.ID)){Se.value=!0;try{let e=await r.IssueGameTickets({gameID:V.value.ID,count:ve.value});ye.value=e.tickets||[],T.success(`Выпущено билетов: ${ye.value.length}`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось выпустить билеты`)}finally{Se.value=!1}}}at(()=>{!U.value||ft.value||(dn(Number(_)),fn(),mn(),gn(),kn())},2e3);async function Yr(){await r.ResetGame({ID:V.value.ID}),await dn(V.value.ID)}async function Xr(){await r.StartGame({ID:V.value.ID}),await dn(V.value.ID)}async function Zr(){await r.PauseGame({ID:V.value.ID}),await dn(V.value.ID)}async function Qr(){await r.PlayGame({ID:V.value.ID}),await dn(V.value.ID)}async function $r(){await r.FinishGame({ID:V.value.ID}),await dn(V.value.ID)}let ei=F(!1),ti=F([]),ni=F(0),ri=F(0),ii=F([]),ai=F([]),oi=F([]),si=F([]),ci=F(!1),li=F(!1);async function ui(){ci.value=!0,li.value=!1;try{let e=await r.GetGameResults({gameID:Number(_)});oi.value=e.questions||[],si.value=e.teams||[]}catch(e){li.value=!0,console.error(`Не удалось загрузить таблицу результатов`,e)}finally{ci.value=!1}}let di=F({});function fi(e,t){return(e??``)+`:`+(t??``)}function pi(e,t){return(e.answers||[]).find(e=>e.questionCode==t)?.answer||``}function mi(e,t){di.value[e]=t===null?void 0:t}async function hi(){let e=await r.GetGameAnswers({gameID:Number(_)});ii.value=e.questions||[],ai.value=e.teams||[];let t={};for(let e of ai.value)for(let n of e.answers||[])t[fi(e.team?.ID,n.questionCode)]=n.score;di.value=t,await ui()}async function gi(){ei.value=!0;let e=await r.GetGameReviewsForModeration({gameID:Number(_)});ti.value=e.reviews||[],ni.value=e.averageRating||0,ri.value=e.reviewsCount||0}async function _i(e,t){await r.ModerateGameReview({ID:e.ID,status:t}),await gi()}async function vi(){for(let e of ii.value)for(let t of ai.value){let n=di.value[fi(t.team?.ID,e.code)];await r.SetTeamAnswerScore({ID:t.team?.ID,questionCode:e.code,score:n??void 0})}T.success(`Баллы сохранены`),await hi()}ne([U,S],([e,t])=>{e&&t===`answers`&&hi()},{immediate:!0});function yi(){let e=new Date;return new Date(e.getTime()-e.getTimezoneOffset()*6e4)}function bi(e,t){if(e==``)return`Игра ещё не началась`;let n=ht(e),r=yi();t!=``&&(r=ht(t));let i=r.getTime()-n.getTime();if(i<0)return`Игра ещё не началась`;let a=Math.floor(i/1e3),o=Math.floor(a/60),s=Math.floor(o/60),c=Math.floor(s/24),l=Math.floor(c/30),u=Math.floor(c/365);return u>0?`${u}г ${c%365}д`:l>0?`${l}мес ${c%30}д`:c>0?`${c}д ${s%24}ч`:s>0?`${s}ч ${o%60}м`:o>0?`${o}м ${a%60}с`:`${a}с`}let xi=F(``);return at(()=>{xi.value=bi(V.value.startedAt||``,V.value.endedAt||``)},1e3),(e,t)=>(l(),h(k,null,[m(`div`,vr,[m(`div`,yr,[U.value&&(V.value.export?.state===`preparing`||V.value.export?.state===`ready`)?(l(),a($,{key:0},{default:P(()=>[A(i(q),{type:`info`,title:V.value.export.state===`ready`?`Игра в офлайн-режиме`:`Подготовка офлайн-пакета`},{default:P(()=>[p(v(V.value.export.state===`ready`?`Изменения на онлайн-сервере не синхронизируются с офлайн-площадкой.`:`Создаётся пакет для офлайн-площадки.`),1)]),_:1},8,[`title`])]),_:1})):I(``,!0),ze.value?(l(),a($,{key:1},{default:P(()=>[m(`h2`,null,v(V.value.name),1)]),_:1})):I(``,!0),A(i(Oe),{value:S.value,type:`line`,animated:``,"onUpdate:value":C},{default:P(()=>[U.value?(l(),a(i(De),{key:0,name:`settings`,tab:`Настройки`},{default:P(()=>[m(`div`,br,[A($,null,{default:P(()=>[A(i(Y),{justify:`end`},{default:P(()=>[A(i(H),{loading:d.value,disabled:!V.value.ID||d.value,onClick:Gn},{default:P(()=>[...t[49]||=[p(` Скачать материалы для печати `,-1)]]),_:1},8,[`loading`,`disabled`]),A(i(H),{quaternary:``,onClick:t[0]||=e=>qr(i(er),`Админка`)},{default:P(()=>[...t[50]||=[p(`QR`,-1)]]),_:1}),V.value.status==`finish`?(l(),a(i(H),{key:0,quaternary:``,onClick:t[1]||=e=>qn()},{default:P(()=>[A(i(B),{class:`settings-icon`},{default:P(()=>[A(i(on))]),_:1}),t[51]||=p(` Итоги `,-1)]),_:1})):I(``,!0),(V.value.teams?.length||0)==0?(l(),a(i(H),{key:1,type:`error`,quaternary:``,onClick:t[2]||=e=>ae.value=!0},{default:P(()=>[...t[52]||=[p(` Удалить игру `,-1)]]),_:1})):I(``,!0)]),_:1})]),_:1}),A($,null,{default:P(()=>[t[60]||=m(`p`,{class:`screens-title`},`Настройки игры`,-1),A(i(J),{vertical:``},{default:P(()=>[t[53]||=m(`p`,null,`Название`,-1),A(i(K),{value:E.value.name,"onUpdate:value":t[3]||=e=>E.value.name=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),t[54]||=m(`p`,{class:`settings-header`},`Формат игры`,-1),A(i(ke),{value:E.value.format,"onUpdate:value":t[4]||=e=>E.value.format=e,options:[{label:`Online`,value:`online`},{label:`Offline`,value:`offline`}],"aria-label":`Формат игры`},null,8,[`value`]),t[55]||=m(`p`,{class:`settings-header`},`Описание`,-1),A(i(K),{value:E.value.description,"onUpdate:value":t[5]||=e=>E.value.description=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`]),t[56]||=m(`p`,{class:`settings-header`},`Место проведения`,-1),A(i(K),{value:E.value.location,"onUpdate:value":t[6]||=e=>E.value.location=e,type:`text`,placeholder:`Оставьте пустым для онлайн-игры`},null,8,[`value`]),t[57]||=m(`p`,{class:`settings-header`},`Wi-Fi для игроков`,-1),A(i(K),{value:E.value.wifiName,"onUpdate:value":t[7]||=e=>E.value.wifiName=e,"aria-label":`Название сети Wi-Fi`,placeholder:`Название сети Wi-Fi`},null,8,[`value`]),A(i(K),{value:E.value.wifiPassword,"onUpdate:value":t[8]||=e=>E.value.wifiPassword=e,"aria-label":`Пароль Wi-Fi`,type:`password`,"show-password-on":`click`,placeholder:`Без пароля — оставьте пустым`,maxlength:64},null,8,[`value`]),t[58]||=m(`p`,null,` Название сети и пароль будут напечатаны рядом с QR-кодом команды в PDF и чеках. Оставьте название сети пустым, чтобы убрать инструкцию. `,-1)]),_:1}),A(i(Y),{justify:`end`,class:`settings-actions`},{default:P(()=>[A(i(H),{loading:D.value,disabled:D.value,onClick:t[9]||=e=>Jn()},{default:P(()=>[...t[59]||=[p(`Сохранить изменения`,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1}),it.value?(l(),a($,{key:0},{default:P(()=>[A(i(H),{loading:ot.value,disabled:ot.value,onClick:Un},{default:P(()=>[...t[61]||=[p(` Скачать результаты `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})):I(``,!0),Xe.value?(l(),a($,{key:1},{default:P(()=>[t[65]||=m(`p`,{class:`screens-title`},`Возврат результатов с площадки`,-1),A(i(J),{vertical:``},{default:P(()=>[A(i(q),{type:`warning`},{default:P(()=>[...t[62]||=[p(` Команды, билеты, результаты и игровой сценарий будут заменены данными пакета. Онлайн-правки этих данных потеряются. Оформление и музыка сохраняются. `,-1)]]),_:1}),A(i(Ne),{"file-list":pt.value,"default-upload":!1,max:1,accept:`.zip`,disabled:ft.value,onChange:Hn},{default:P(()=>[A(i(H),{disabled:ft.value},{default:P(()=>[...t[63]||=[p(`Выбрать ZIP результатов`,-1)]]),_:1},8,[`disabled`])]),_:1},8,[`file-list`,`disabled`]),vt.value?(l(),a(i(q),{key:0,type:`error`,role:`alert`},{default:P(()=>[p(v(vt.value),1)]),_:1})):I(``,!0),A(i(H),{loading:ft.value,disabled:ft.value||!pt.value.length,onClick:Wn},{default:P(()=>[...t[64]||=[p(` Применить ZIP и перезаписать результаты `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})):I(``,!0),Xe.value?(l(),a($,{key:2},{default:P(()=>[t[73]||=m(`p`,{class:`screens-title`},`Передача игры на площадку`,-1),A(i(J),{vertical:``},{default:P(()=>[t[71]||=m(`p`,null,` Пакет содержит снимок на момент подготовки. Последующие онлайн-изменения в него не попадут. На площадке игра начнётся с нуля: ходы, ответы и баллы в пакет не входят. Статус и прогресс игры на сервере сохраняются. Готовность пакета не подтверждает импорт на площадку. `,-1),V.value.export?.state===`preparing`?(l(),a(i(q),{key:0,type:`info`,role:`status`},{default:P(()=>[...t[66]||=[p(`Подготовка пакета…`,-1)]]),_:1})):V.value.export?.state===`ready`?(l(),a(i(q),{key:1,type:`success`,role:`status`},{default:P(()=>[...t[67]||=[p(`Пакет готов`,-1)]]),_:1})):V.value.export?.state===`failed`?(l(),a(i(q),{key:2,type:`error`,role:`alert`},{default:P(()=>[p(v(V.value.export.failure||`Не удалось подготовить пакет`),1)]),_:1})):I(``,!0),V.value.export?.state===`ready`?(l(),a(i(H),{key:3,loading:$e.value,disabled:$e.value,onClick:Vn},{default:P(()=>[...t[68]||=[p(`Скачать пакет`,-1)]]),_:1},8,[`loading`,`disabled`])):I(``,!0),A(i(H),{loading:Qe.value,disabled:Qe.value||X.value,onClick:Ln},{default:P(()=>[...t[69]||=[p(` Подготовить новый пакет `,-1)]]),_:1},8,[`loading`,`disabled`]),t[72]||=m(`p`,null,` Новый пакет заменяет текущую подготовку. Результаты ранее скачанных пакетов можно загрузить позже. `,-1),et.value?(l(),a(i(H),{key:4,type:`warning`,loading:X.value,disabled:Qe.value||X.value,onClick:Rn},{default:P(()=>[...t[70]||=[p(` Сбросить локальный режим `,-1)]]),_:1},8,[`loading`,`disabled`])):I(``,!0)]),_:1})]),_:1})):I(``,!0),A($,null,{default:P(()=>[t[76]||=m(`p`,{class:`screens-title`},`Выпуск билетов`,-1),A(i(J),{vertical:``},{default:P(()=>[A(i(Lt),{value:ve.value,"onUpdate:value":t[10]||=e=>ve.value=e,min:1,max:100},null,8,[`value`]),(l(!0),h(k,null,x(ye.value,e=>(l(),h(`div`,{key:e.ID,class:`issued-ticket`},[m(`div`,null,`Билет №`+v(e.ID),1),m(`a`,{href:e.URL,class:`payment-link`,target:`_blank`,rel:`noreferrer`},` Открыть страницу билета `,8,xr),A(i(H),{size:`small`,onClick:t=>qr(e.URL,`Билет №${e.ID}`)},{default:P(()=>[...t[74]||=[p(` Показать QR `,-1)]]),_:1},8,[`onClick`])]))),128))]),_:1}),A(i(Y),{justify:`end`,class:`settings-actions`},{default:P(()=>[A(i(H),{loading:Se.value,disabled:Se.value,onClick:t[11]||=e=>Jr()},{default:P(()=>[...t[75]||=[p(` Выпустить `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})])]),_:1})):I(``,!0),U.value?(l(),a(i(De),{key:1,name:`screens`,tab:`Экраны`},{default:P(()=>[m(`div`,Sr,[zt.value?(l(),a(i(q),{key:0,type:`error`},{default:P(()=>[p(v(zt.value),1)]),_:1})):I(``,!0),Rt.value?(l(),h(`p`,Cr,`Загрузка экранов…`)):I(``,!0),m(`div`,wr,[A($,null,{default:P(()=>[t[77]||=m(`h3`,{class:`screens-title`},`Превью экрана`,-1),rn.value?.status===`connected`?(l(),a(mt,{key:0,state:rn.value,questions:Kt.value,teams:Jt.value,"team-names":Xt.value},null,8,[`state`,`questions`,`teams`,`team-names`])):(l(),h(`div`,Tr,`Экран не подключён`))]),_:1}),A(Bn,{screens:xt.value,"screen-binding":Ce.value,"is-busy":Z.value,onBind:On,onSetSound:Mn,onUnbind:Pn},null,8,[`screens`,`screen-binding`,`is-busy`])]),m(`div`,Er,[A(Fn,{screens:xt.value,"preview-questions":Kt.value,"preview-teams":Jt.value,"team-names":Xt.value,"screen-plan":Bt.value,"screen-plan-draft":Q.value,"screen-plan-saving":Ht.value,"screen-plan-mode":Wt.value,"screen-volume":nn.value,"is-busy":Z.value,onAddStep:_n,onEdit:vn,onCancel:yn,onRemoveStep:bn,onMoveStep:xn,onDirty:Sn,onClearPlan:wn,onSave:Tn,onSetStep:En,onCommand:Dn,"onUpdate:screenVolume":t[12]||=e=>nn.value=e},null,8,[`screens`,`preview-questions`,`preview-teams`,`team-names`,`screen-plan`,`screen-plan-draft`,`screen-plan-saving`,`screen-plan-mode`,`screen-volume`,`is-busy`]),A(Cn,{playlists:St.value,music:Ct.value,"is-busy":wt.value,onSetMusic:Nn,onSaveGroup:i(Dt),onDeleteGroup:i(Ot),onReorderGroups:i(kt),onSetTrackGroup:i(At),onCreatePlaylist:i(jt),onRenamePlaylist:i(Mt),onReorderTracks:i(Nt),onDeletePlaylist:i(Pt),onUploadTrack:i(Ft),onDeleteTrack:i(It)},null,8,[`playlists`,`music`,`is-busy`,`onSaveGroup`,`onDeleteGroup`,`onReorderGroups`,`onSetTrackGroup`,`onCreatePlaylist`,`onRenamePlaylist`,`onReorderTracks`,`onDeletePlaylist`,`onUploadTrack`,`onDeleteTrack`])])])]),_:1})):I(``,!0),U.value?(l(),a(i(De),{key:2,name:`game`,tab:`Игра`},{default:P(()=>[m(`div`,Dr,[A($,null,{default:P(()=>[A(i(Y),{justify:`space-between`},{default:P(()=>[A(i(J),null,{default:P(()=>[A(i(z),{type:`info`},{default:P(()=>[p(v(xi.value),1)]),_:1}),i(gt)(V.value.startAt)?(l(),a(i(z),{key:0,type:`info`},{default:P(()=>[p(` Начало: `+v(i(gt)(V.value.startAt)),1)]),_:1})):I(``,!0)]),_:1}),A(i(Y),{justify:`end`},{default:P(()=>[A(i(H),{onClick:un},{default:P(()=>[...t[78]||=[p(`Проверить звук`,-1)]]),_:1}),V.value.status==`draft`?I(``,!0):(l(),a(i(H),{key:0,type:`info`,dashed:``,"aria-label":`Сбросить игру`,onClick:t[13]||=e=>Yr()},{default:P(()=>[A(i(B),null,{default:P(()=>[A(i(tn))]),_:1})]),_:1})),V.value.status==`draft`?(l(),a(i(H),{key:1,type:`info`,dashed:``,"aria-label":`Начать игру`,onClick:t[14]||=e=>Xr()},{default:P(()=>[A(i(B),null,{default:P(()=>[A(i(Zt))]),_:1})]),_:1})):I(``,!0),V.value.status==`pause`?(l(),a(i(H),{key:2,type:`info`,dashed:``,"aria-label":`Продолжить игру`,onClick:t[15]||=e=>Qr()},{default:P(()=>[A(i(B),null,{default:P(()=>[A(i(Zt))]),_:1})]),_:1})):I(``,!0),V.value.status==`run`?(l(),a(i(H),{key:3,type:`info`,dashed:``,"aria-label":`Поставить игру на паузу`,onClick:t[16]||=e=>Zr()},{default:P(()=>[A(i(B),null,{default:P(()=>[A(i(Yt))]),_:1})]),_:1})):I(``,!0),V.value.status==`finish`?I(``,!0):(l(),a(i(H),{key:4,type:`info`,dashed:``,"aria-label":`Завершить игру`,onClick:t[17]||=e=>$r()},{default:P(()=>[A(i(B),null,{default:P(()=>[A(i(qt))]),_:1})]),_:1}))]),_:1})]),_:1})]),_:1}),A(pn,{"map-items":Qt.value,teams:V.value.teams||[],onSaveItem:jn,onDragging:t[18]||=e=>en.value=e,onGiveApplication:tr},null,8,[`map-items`,`teams`]),A(i(Y),{justify:`space-between`,align:`center`},{default:P(()=>[A(i(z),{bordered:!1,type:`info`},{default:P(()=>[p(` Участвуют команд: `+v(bt.value),1)]),_:1}),bt.value?(l(),a(i(H),{key:0,quaternary:``,loading:c.value,disabled:c.value,onClick:t[19]||=e=>Kn()},{default:P(()=>[...t[79]||=[p(` QR команд `,-1)]]),_:1},8,[`loading`,`disabled`])):I(``,!0)]),_:1}),A(cr,{teams:V.value.teams||[],"can-print-receipts":i(Ee).environment===`venue`,"participation-options":yt,onAdd:t[20]||=e=>re.value=!0,onOpenQr:lr,onPrint:ur,onPreview:t[21]||=(e,t)=>In(e,t,!0),onDelete:ir,onGiveApplication:tr},null,8,[`teams`,`can-print-receipts`])])]),_:1})):I(``,!0),U.value?(l(),a(i(De),{key:3,name:`payment`,tab:`Оплата`},{default:P(()=>[m(`div`,Or,[A($,null,{default:P(()=>[A(i(Y),{align:`center`,justify:`space-between`},{default:P(()=>[t[81]||=m(`p`,{class:`screens-title`},`Билеты`,-1),A(i(H),{size:`small`,onClick:t[22]||=e=>_e.value=!0},{default:P(()=>[...t[80]||=[p(` Проверить билет `,-1)]]),_:1})]),_:1})]),_:1}),A($,null,{default:P(()=>[t[82]||=m(`p`,{class:`screens-title`},`Оплата игры`,-1),m(`div`,kr,[A(i(Ve),{value:Kr,size:300,padding:0})]),m(`p`,null,[m(`a`,{href:Kr,class:`payment-link`,target:`_blank`,rel:`noreferrer`},` Открыть ссылку оплаты `)])]),_:1})])]),_:1})):I(``,!0),U.value?(l(),a(i(De),{key:4,name:`answers`,tab:`Проверка ответов`},{default:P(()=>[m(`div`,Ar,[A($,null,{default:P(()=>[t[89]||=m(`p`,{class:`screens-title`},`Таблица результатов`,-1),t[90]||=m(`p`,null,`Сохранённые оценки. Таблица обновляется после сохранения баллов.`,-1),ci.value?(l(),a(i(Ue),{key:0},{default:P(()=>[...t[83]||=[p(`Загрузка результатов…`,-1)]]),_:1})):li.value?(l(),a(i(q),{key:1,type:`error`},{default:P(()=>[...t[84]||=[p(` Не удалось загрузить таблицу результатов. `,-1)]]),_:1})):si.value.length===0?(l(),h(`p`,jr,`Результатов пока нет.`)):(l(),h(`div`,Mr,[A(i(Ut),{"single-line":!1},{default:P(()=>[m(`thead`,null,[m(`tr`,null,[t[85]||=m(`th`,{scope:`col`},`Место`,-1),t[86]||=m(`th`,{scope:`col`},`Команда`,-1),(l(!0),h(k,null,x(oi.value,e=>(l(),h(`th`,{key:e.code,scope:`col`},v(e.code),1))),128)),t[87]||=m(`th`,{scope:`col`},`Сумма`,-1),t[88]||=m(`th`,{scope:`col`},`Поездки`,-1)])]),m(`tbody`,null,[(l(!0),h(k,null,x(si.value,e=>(l(),h(`tr`,{key:e.team?.ID},[m(`td`,null,v(e.place),1),m(`td`,null,v(e.team?.name),1),(l(!0),h(k,null,x(oi.value,t=>(l(),h(`td`,{key:t.code},v(e.answers?.find(e=>e.questionCode===t.code)?.score??`—`),1))),128)),m(`td`,null,v(e.totalScore),1),m(`td`,null,v(e.actionsCount),1)]))),128))])]),_:1})]))]),_:1}),ii.value.length===0||ai.value.length===0?(l(),h(`div`,Nr,` Вопросы дела не заданы или команды ещё не отвечали. `)):(l(!0),h(k,{key:1},x(ai.value,e=>(l(),a($,{key:e.team?.ID},{default:P(()=>[m(`h3`,Pr,v(e.team?.name),1),(l(!0),h(k,null,x(ii.value,t=>(l(),h(`div`,{key:t.code,class:`answers-question`},[m(`p`,Fr,v(t.code)+`: `+v(t.text),1),m(`p`,Ir,[m(`span`,Lr,v(t.answer||`—`),1)]),m(`div`,Rr,[m(`div`,zr,v(pi(e,t.code)||`—`),1),A(i(Lt),{value:di.value[fi(e.team?.ID,t.code)],"onUpdate:value":n=>mi(fi(e.team?.ID,t.code),n),placeholder:`Балл`,class:`answers-score-input`},null,8,[`value`,`onUpdate:value`])])]))),128))]),_:2},1024))),128)),A(i(Y),{justify:`end`},{default:P(()=>[A(i(H),{onClick:t[23]||=e=>vi(),disabled:ii.value.length===0||ai.value.length===0},{default:P(()=>[...t[91]||=[p(` Сохранить баллы `,-1)]]),_:1},8,[`disabled`])]),_:1})])]),_:1})):I(``,!0),Ie.value?(l(),a(i(De),{key:5,name:`state`,tab:`Состояние`,"tab-props":{tabindex:0,role:`tab`,"aria-selected":S.value===`state`,onKeydown:w}},{default:P(()=>[A(Xn,{devices:i(He),wifi:i(We),"server-time":i(Ge),"is-loading":i(Ke),"has-error":i(qe),summary:i(Je),onReload:i(Ye)},null,8,[`devices`,`wifi`,`server-time`,`is-loading`,`has-error`,`summary`,`onReload`])]),_:1},8,[`tab-props`])):I(``,!0)]),_:1},8,[`value`])])]),Xe.value?(l(),a(i(we),{key:0,show:nt.value,"onUpdate:show":t[25]||=e=>nt.value=e,"mask-closable":!X.value,"close-on-esc":!X.value},{default:P(()=>[A(i(Le),{class:`reset-local-mode-modal`,bordered:!1,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`reset-local-mode-title`,"aria-describedby":`reset-local-mode-description`},{header:P(()=>[...t[92]||=[m(`span`,{id:`reset-local-mode-title`},`Сбросить локальный режим?`,-1)]]),footer:P(()=>[A(i(Y),{justify:`end`},{default:P(()=>[A(i(H),{disabled:X.value,onClick:t[24]||=e=>nt.value=!1},{default:P(()=>[...t[93]||=[p(` Отмена `,-1)]]),_:1},8,[`disabled`]),A(i(H),{type:`warning`,loading:X.value,disabled:X.value,onClick:zn},{default:P(()=>[...t[94]||=[p(` Вернуть в обычный режим `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),default:P(()=>[t[95]||=m(`p`,{id:`reset-local-mode-description`},` Игра вернётся в обычный режим на сервере. Данные игры сохранятся. Локальная площадка продолжит работать отдельно; её результаты можно будет загрузить позже. `,-1)]),_:1})]),_:1},8,[`show`,`mask-closable`,`close-on-esc`])):I(``,!0),U.value?(l(),a(hr,{key:1,show:_e.value,"onUpdate:show":t[26]||=e=>_e.value=e},null,8,[`show`])):I(``,!0),U.value&&i(Ee).environment===`venue`?(l(),a(dr,{key:2,show:de.value,"onUpdate:show":t[27]||=e=>de.value=e,name:fe.value.name,preview:R.value,"preparation-error":he.value,"is-preparing":me.value,"is-printing":pe.value,onPrint:mr},null,8,[`show`,`name`,`preview`,`preparation-error`,`is-preparing`,`is-printing`])):I(``,!0),U.value?(l(),a(i(we),{key:3,show:te.value,"onUpdate:show":t[30]||=e=>te.value=e},{default:P(()=>[A(i(Le),{style:{width:`600px`},title:`Настройки игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":P(()=>[A(i(H),{onClick:t[28]||=e=>te.value=!1},{default:P(()=>[...t[96]||=[p(` x `,-1)]]),_:1})]),footer:P(()=>[A(i(Y),{justify:`end`},{default:P(()=>[A(i(H),{onClick:t[29]||=e=>rr(),ghost:``},{default:P(()=>[...t[99]||=[p(` Выдать `,-1)]]),_:1})]),_:1})]),default:P(()=>[A(i(J),{vertical:``},{default:P(()=>[t[97]||=m(`p`,null,`Команда`,-1),m(`h3`,null,v(Yn.value.name),1),t[98]||=m(`p`,null,`Улика`,-1),m(`h3`,null,v($n.value.name),1),i(lt)($n.value)==`image`&&$n.value.image?(l(),h(`div`,Br,[m(`img`,{src:i(ut)($n.value.image),class:`give-application-image`},null,8,Vr)])):i(lt)($n.value)==`audio`&&$n.value.image?(l(),h(`audio`,{key:1,src:i(ut)($n.value.image),controls:``,preload:`none`,class:`give-application-audio`},null,8,Hr)):i(lt)($n.value)==`pdf`&&$n.value.image?(l(),h(`a`,{key:2,href:i(ut)($n.value.image),target:`_blank`,rel:`noopener`,class:`give-application-pdf-link`},` PDF `,8,Ur)):I(``,!0)]),_:1})]),_:1})]),_:1},8,[`show`])):I(``,!0),U.value?(l(),a(i(we),{key:4,show:re.value,"onUpdate:show":t[36]||=e=>re.value=e},{default:P(()=>[A(i(Le),{style:{width:`600px`},title:`Создание команды`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":P(()=>[A(i(H),{onClick:t[31]||=e=>re.value=!1},{default:P(()=>[...t[100]||=[p(` x `,-1)]]),_:1})]),footer:P(()=>[A(i(Y),{justify:`end`},{default:P(()=>[A(i(H),{onClick:t[35]||=e=>nr(),disabled:j.value.length==0},{default:P(()=>[...t[101]||=[p(` Создать `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:P(()=>[A(i(J),{vertical:``},{default:P(()=>[A(i(K),{value:j.value,"onUpdate:value":t[32]||=e=>j.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`]),A(i(K),{value:M.value,"onUpdate:value":t[33]||=e=>M.value=e,"input-props":{type:`email`,autocomplete:`email`},placeholder:`Почта капитана (необязательно)`,"aria-label":`Почта капитана (необязательно)`},null,8,[`value`]),A(i(Lt),{value:oe.value,"onUpdate:value":t[34]||=e=>oe.value=e,min:1,max:8,precision:0,placeholder:`Количество игроков`,"aria-label":`Количество игроков`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`])):I(``,!0),U.value?(l(),a(i(we),{key:5,show:ie.value,"onUpdate:show":t[40]||=e=>ie.value=e},{default:P(()=>[A(i(Le),{style:{width:`600px`},title:`Удаление команды`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":P(()=>[A(i(H),{onClick:t[37]||=e=>ie.value=!1},{default:P(()=>[...t[102]||=[p(` x `,-1)]]),_:1})]),footer:P(()=>[A(i(Y),{justify:`end`},{default:P(()=>[A(i(H),{onClick:t[39]||=e=>ar(),disabled:Zn.value!=Qn.value.name},{default:P(()=>[...t[105]||=[p(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:P(()=>[A(i(J),{vertical:``},{default:P(()=>[m(`p`,null,[t[103]||=p(` Введите название команды `,-1),A(i(Ue),{class:`name-text`,strong:``},{default:P(()=>[p(v(Qn.value.name),1)]),_:1}),t[104]||=p(` чтобы удалить его `,-1)]),A(i(K),{value:Zn.value,"onUpdate:value":t[38]||=e=>Zn.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`])):I(``,!0),U.value?(l(),a(i(we),{key:6,show:ae.value,"onUpdate:show":t[44]||=e=>ae.value=e},{default:P(()=>[A(i(Le),{style:{width:`600px`},title:`Удаление игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":P(()=>[A(i(H),{onClick:t[41]||=e=>ae.value=!1},{default:P(()=>[...t[106]||=[p(` x `,-1)]]),_:1})]),footer:P(()=>[A(i(Y),{justify:`end`},{default:P(()=>[A(i(H),{onClick:t[43]||=e=>or(),disabled:se.value!=V.value.name},{default:P(()=>[...t[109]||=[p(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:P(()=>[A(i(J),{vertical:``},{default:P(()=>[m(`p`,null,[t[107]||=p(` Введите название игры `,-1),A(i(Ue),{class:`name-text`,strong:``},{default:P(()=>[p(v(V.value.name),1)]),_:1}),t[108]||=p(` чтобы удалить её `,-1)]),A(i(K),{value:se.value,"onUpdate:value":t[42]||=e=>se.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`])):I(``,!0),U.value?(l(),a(i(we),{key:7,show:N.value,"onUpdate:show":t[46]||=e=>N.value=e},{default:P(()=>[A(i(Le),{style:{width:`600px`},title:ue.value,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":P(()=>[A(i(H),{onClick:t[45]||=e=>N.value=!1},{default:P(()=>[...t[110]||=[p(` x `,-1)]]),_:1})]),footer:P(()=>[...t[111]||=[]]),default:P(()=>[A(i(J),{vertical:``},{default:P(()=>[m(`div`,Wr,[A(i(Ve),{value:ce.value,size:300,padding:0},null,8,[`value`])])]),_:1})]),_:1},8,[`title`])]),_:1},8,[`show`])):I(``,!0),U.value?(l(),a(i(we),{key:8,show:ei.value,"onUpdate:show":t[48]||=e=>ei.value=e},{default:P(()=>[A(i(Le),{style:{width:`min(94vw, 800px)`},title:`Отзывы игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`,"content-style":{maxHeight:`70vh`,overflow:`auto`}},{"header-extra":P(()=>[A(i(H),{onClick:t[47]||=e=>ei.value=!1},{default:P(()=>[...t[112]||=[p(` x `,-1)]]),_:1})]),default:P(()=>[A(i(Y),{align:`center`,class:`reviews-summary`},{default:P(()=>[A(i(Re),{value:ni.value,readonly:``,"allow-half":``},null,8,[`value`]),m(`span`,null,v(ri.value?`${ni.value.toFixed(1)} · ${ri.value}`:`Пока нет отзывов`),1)]),_:1}),ti.value.length==0?(l(),h(`div`,Gr,`Отзывов пока нет.`)):I(``,!0),(l(!0),h(k,null,x(ti.value,e=>(l(),h(`div`,{key:e.ID,class:`review-row`},[A(i(Y),{justify:`space-between`,align:`center`},{default:P(()=>[m(`strong`,null,v(e.teamName),1),A(i(z),null,{default:P(()=>[p(v(e.status),1)]),_:2},1024)]),_:2},1024),A(i(Re),{value:e.rating,readonly:``,size:`small`},null,8,[`value`]),m(`div`,null,`Сложность: `+v([``,`лёгкая`,`средняя`,`тяжёлая`][e.difficulty||0]),1),m(`p`,null,v(e.text),1),e.status==`pending`?(l(),a(i(Y),{key:0,justify:`end`},{default:P(()=>[A(i(H),{type:`success`,onClick:t=>_i(e,`approved`)},{default:P(()=>[...t[113]||=[p(`Одобрить`,-1)]]),_:1},8,[`onClick`]),A(i(H),{type:`error`,ghost:``,onClick:t=>_i(e,`rejected`)},{default:P(()=>[...t[114]||=[p(`Отклонить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):e.status==`approved`?(l(),a(i(Y),{key:1,justify:`end`},{default:P(()=>[A(i(H),{type:`error`,ghost:``,onClick:t=>_i(e,`hidden`)},{default:P(()=>[...t[115]||=[p(`Скрыть`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):I(``,!0)]))),128))]),_:1})]),_:1},8,[`show`])):I(``,!0),A(st,{active:`games`})],64))}}),[[`__scopeId`,`data-v-72b7e6f0`]]),Jr=n({__name:`GameView`,setup(e){let t=F(0),n=le();return(e,r)=>(l(),a(qr,{key:`${i(n).params.id}-${t.value}`,onResultsApplied:r[0]||=e=>t.value++}))}});export{Jr as default}; \ No newline at end of file diff --git a/frontend/dist/assets/GameView-CVuY3UkA.js b/frontend/dist/assets/GameView-CVuY3UkA.js new file mode 100644 index 0000000..b8b8727 --- /dev/null +++ b/frontend/dist/assets/GameView-CVuY3UkA.js @@ -0,0 +1,280 @@ +import{$ as e,$t as t,At as n,Bn as r,Cn as i,Ct as a,Ft as o,Gt as s,Ht as c,Jt as l,Kt as u,Lt as d,Nt as f,Ot as p,St as m,Tt as h,U as g,Ut as _,Vn as v,W as y,X as b,Xt as x,Yt as S,Zt as C,_ as w,at as T,cn as E,ct as D,d as O,f as ee,gt as k,hn as te,in as ne,kt as A,lt as re,m as ie,nn as ae,nt as j,ot as M,p as oe,q as se,rt as N,sn as P,st as ce,u as le,ut as ue,vn as F,wt as I,xn as de,xt as L,zn as fe,zt as pe}from"./client-DrrW410h.js";import{a as me,i as R,o as he,t as ge}from"./Follower-D4pTNocL.js";import{d as _e}from"./utils-BwK8vCu4.js";import{c as ve,s as ye}from"./Scrollbar-DGnXZ64x.js";import{i as z,n as B,r as be,t as xe}from"./ui-BXphkCO3.js";import{i as Se,n as Ce,w as V}from"./Suffix-1hsPP30m.js";import{t as we}from"./Modal-CBvJhnU9.js";import{t as Te}from"./use-merged-state-CIQwNmUb.js";import{n as Ee,t as H}from"./Button-VP0HlDWp.js";import{n as De,t as Oe}from"./Tabs-rQZTTap5.js";import{t as ke}from"./Select-BQpeZ0on.js";import{a as U,c as W,i as Ae,o as je,s as Me,t as G}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as Ne}from"./Upload-D5dycHVD.js";import{n as Pe}from"./use-form-item-CNQ45NOh.js";import{t as Fe}from"./Add-CkD1py6k.js";import{t as K}from"./Input-B0pT-V_P.js";import{t as Ie}from"./Remove-bjrmPf1I.js";import{t as q}from"./Alert-CKEVYkKu.js";import{t as Le}from"./Card-DpsyX5Gm.js";import{t as J}from"./Space-J-gv2y5L.js";import{t as Y}from"./Flex-C50LOLeC.js";import{t as Re}from"./Rate-DzWTiM8f.js";import{n as ze,t as Be}from"./usePlaylistActions-BX_JK6Ey.js";import{t as Ve}from"./QrCode-BtvoRbPn.js";import{t as He}from"./Spin-v_Oo9RkU.js";import{t as Ue}from"./text-DlU9yI4b.js";import{N as We,O as Ge,P as Ke,Q as qe,U as Je,at as Ye,ft as Xe,i as Ze,it as Qe,j as $e,lt as et,mt as X,o as tt,ot as nt,p as rt,pt as it,r as at,u as ot}from"./index-CvfVA1ID.js";import{t as st}from"./HeaderMenu-DjAjwijB.js";import{t as ct}from"./binary_client-BWJUWeZu.js";import{n as lt,r as ut}from"./application-Dx7AOLHI.js";import{i as dt,n as ft,r as pt,t as mt}from"./ScreenPreview-CRnT-dgP.js";import{n as ht,t as gt}from"./datetime-BJNH0M1T.js";import{t as _t}from"./useDeviceContext-BaGiXmRj.js";var vt=n({name:`ChevronLeft`,render(){return f(`svg`,{viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},f(`path`,{d:`M10.3536 3.14645C10.5488 3.34171 10.5488 3.65829 10.3536 3.85355L6.20711 8L10.3536 12.1464C10.5488 12.3417 10.5488 12.6583 10.3536 12.8536C10.1583 13.0488 9.84171 13.0488 9.64645 12.8536L5.14645 8.35355C4.95118 8.15829 4.95118 7.84171 5.14645 7.64645L9.64645 3.14645C9.84171 2.95118 10.1583 2.95118 10.3536 3.14645Z`,fill:`currentColor`}))}}),yt=n({name:`ChevronRight`,render(){return f(`svg`,{viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},f(`path`,{d:`M5.64645 3.14645C5.45118 3.34171 5.45118 3.65829 5.64645 3.85355L9.79289 8L5.64645 12.1464C5.45118 12.3417 5.45118 12.6583 5.64645 12.8536C5.84171 13.0488 6.15829 13.0488 6.35355 12.8536L10.8536 8.35355C11.0488 8.15829 11.0488 7.84171 10.8536 7.64645L6.35355 3.14645C6.15829 2.95118 5.84171 2.95118 5.64645 3.14645Z`,fill:`currentColor`}))}}),bt=N(`collapse`,`width: 100%;`,[N(`collapse-item`,` + font-size: var(--n-font-size); + color: var(--n-text-color); + transition: + color .3s var(--n-bezier), + border-color .3s var(--n-bezier); + margin: var(--n-item-margin); + `,[M(`disabled`,[T(`header`,`cursor: not-allowed;`,[T(`header-main`,` + color: var(--n-title-text-color-disabled); + `),N(`collapse-item-arrow`,` + color: var(--n-arrow-color-disabled); + `)])]),N(`collapse-item`,`margin-left: 32px;`),j(`&:first-child`,`margin-top: 0;`),j(`&:first-child >`,[T(`header`,`padding-top: 0;`)]),M(`left-arrow-placement`,[T(`header`,[N(`collapse-item-arrow`,`margin-right: 4px;`)])]),M(`right-arrow-placement`,[T(`header`,[N(`collapse-item-arrow`,`margin-left: 4px;`)])]),T(`content-wrapper`,[T(`content-inner`,`padding-top: 16px;`),Ke({duration:`0.15s`})]),M(`active`,[T(`header`,[M(`active`,[N(`collapse-item-arrow`,`transform: rotate(90deg);`)])])]),j(`&:not(:first-child)`,`border-top: 1px solid var(--n-divider-color);`),ce(`disabled`,[M(`trigger-area-main`,[T(`header`,[T(`header-main`,`cursor: pointer;`),N(`collapse-item-arrow`,`cursor: default;`)])]),M(`trigger-area-arrow`,[T(`header`,[N(`collapse-item-arrow`,`cursor: pointer;`)])]),M(`trigger-area-extra`,[T(`header`,[T(`header-extra`,`cursor: pointer;`)])])]),T(`header`,` + font-size: var(--n-title-font-size); + display: flex; + flex-wrap: nowrap; + align-items: center; + transition: color .3s var(--n-bezier); + position: relative; + padding: var(--n-title-padding); + color: var(--n-title-text-color); + `,[T(`header-main`,` + display: flex; + flex-wrap: nowrap; + align-items: center; + font-weight: var(--n-title-font-weight); + transition: color .3s var(--n-bezier); + flex: 1; + color: var(--n-title-text-color); + `),T(`header-extra`,` + display: flex; + align-items: center; + transition: color .3s var(--n-bezier); + color: var(--n-text-color); + `),N(`collapse-item-arrow`,` + display: flex; + transition: + transform .15s var(--n-bezier), + color .3s var(--n-bezier); + font-size: 18px; + color: var(--n-arrow-color); + `)])])]),xt=Object.assign(Object.assign({},ie.props),{defaultExpandedNames:{type:[Array,String],default:null},expandedNames:[Array,String],arrowPlacement:{type:String,default:`left`},accordion:{type:Boolean,default:!1},displayDirective:{type:String,default:`if`},triggerAreas:{type:Array,default:()=>[`main`,`extra`,`arrow`]},onItemHeaderClick:[Function,Array],"onUpdate:expandedNames":[Function,Array],onUpdateExpandedNames:[Function,Array],onExpandedNamesChange:{type:[Function,Array],validator:()=>!0,default:void 0}}),St=b(`n-collapse`),Ct=n({name:`Collapse`,props:xt,slots:Object,setup(e,{slots:t}){let{mergedClsPrefixRef:n,inlineThemeDisabled:r,mergedRtlRef:i}=y(e),a=F(e.defaultExpandedNames),o=Te(L(()=>e.expandedNames),a),s=ie(`Collapse`,`-collapse`,bt,Ge,e,n);function c(t){let{"onUpdate:expandedNames":n,onUpdateExpandedNames:r,onExpandedNamesChange:i}=e;r&&W(r,t),n&&W(n,t),i&&W(i,t),a.value=t}function l(t){let{onItemHeaderClick:n}=e;n&&W(n,t)}function u(t,n,r){let{accordion:i}=e,{value:a}=o;if(i)t?(c([n]),l({name:n,expanded:!0,event:r})):(c([]),l({name:n,expanded:!1,event:r}));else if(!Array.isArray(a))c([n]),l({name:n,expanded:!0,event:r});else{let e=a.slice(),t=e.findIndex(e=>n===e);~t?(e.splice(t,1),c(e),l({name:n,expanded:!1,event:r})):(e.push(n),c(e),l({name:n,expanded:!0,event:r}))}}S(St,{props:e,mergedClsPrefixRef:n,expandedNamesRef:o,slots:t,toggleItem:u});let d=w(`Collapse`,i,n),f=L(()=>{let{common:{cubicBezierEaseInOut:e},self:{titleFontWeight:t,dividerColor:n,titlePadding:r,titleTextColor:i,titleTextColorDisabled:a,textColor:o,arrowColor:c,fontSize:l,titleFontSize:u,arrowColorDisabled:d,itemMargin:f}}=s.value;return{"--n-font-size":l,"--n-bezier":e,"--n-text-color":o,"--n-divider-color":n,"--n-title-padding":r,"--n-title-font-size":u,"--n-title-text-color":i,"--n-title-text-color-disabled":a,"--n-title-font-weight":t,"--n-arrow-color":c,"--n-arrow-color-disabled":d,"--n-item-margin":f}}),p=r?g(`collapse`,void 0,f,e):void 0;return{rtlEnabled:d,mergedTheme:s,mergedClsPrefix:n,cssVars:r?void 0:f,themeClass:p?.themeClass,onRender:p?.onRender}},render(){var e;return(e=this.onRender)==null||e.call(this),f(`div`,{class:[`${this.mergedClsPrefix}-collapse`,this.rtlEnabled&&`${this.mergedClsPrefix}-collapse--rtl`,this.themeClass],style:this.cssVars},this.$slots)}}),wt=n({name:`CollapseItemContent`,props:{displayDirective:{type:String,required:!0},show:Boolean,clsPrefix:{type:String,required:!0}},setup(e){return{onceTrue:V(de(e,`show`))}},render(){return f(Je,null,{default:()=>{let{show:e,displayDirective:t,onceTrue:n,clsPrefix:r}=this,i=t===`show`&&n,a=f(`div`,{class:`${r}-collapse-item__content-wrapper`},f(`div`,{class:`${r}-collapse-item__content-inner`},this.$slots));return i?E(a,[[Xe,e]]):e?a:null}})}}),Tt=n({name:`CollapseItem`,props:{title:String,name:[String,Number],disabled:Boolean,displayDirective:String},setup(e){let{mergedRtlRef:t}=y(e),n=nt(),r=Ye(()=>e.name??n),i=o(St);i||se(`collapse-item`,"`n-collapse-item` must be placed inside `n-collapse`.");let{expandedNamesRef:a,props:s,mergedClsPrefixRef:c,slots:l}=i,u=L(()=>{let{value:e}=a;if(Array.isArray(e)){let{value:t}=r;return!~e.findIndex(e=>e===t)}else if(e){let{value:t}=r;return t!==e}return!0});return{rtlEnabled:w(`Collapse`,t,c),collapseSlots:l,randomName:n,mergedClsPrefix:c,collapsed:u,triggerAreas:de(s,`triggerAreas`),mergedDisplayDirective:L(()=>{let{displayDirective:t}=e;return t||s.displayDirective}),arrowPlacement:L(()=>s.arrowPlacement),handleClick(t){let n=`main`;_e(t,`arrow`)&&(n=`arrow`),_e(t,`extra`)&&(n=`extra`),s.triggerAreas.includes(n)&&i&&!e.disabled&&i.toggleItem(u.value,r.value,t)}}},render(){let{collapseSlots:e,$slots:t,arrowPlacement:n,collapsed:r,mergedDisplayDirective:i,mergedClsPrefix:a,disabled:o,triggerAreas:s}=this,c=U(t.header,{collapsed:r},()=>[this.title]),l=t[`header-extra`]||e[`header-extra`],u=t.arrow||e.arrow;return f(`div`,{class:[`${a}-collapse-item`,`${a}-collapse-item--${n}-arrow-placement`,o&&`${a}-collapse-item--disabled`,!r&&`${a}-collapse-item--active`,s.map(e=>`${a}-collapse-item--trigger-area-${e}`)]},f(`div`,{class:[`${a}-collapse-item__header`,!r&&`${a}-collapse-item__header--active`]},f(`div`,{class:`${a}-collapse-item__header-main`,onClick:this.handleClick},n===`right`&&c,f(`div`,{class:`${a}-collapse-item-arrow`,key:+!this.rtlEnabled,"data-arrow":!0},U(u,{collapsed:r},()=>[f(qe,{clsPrefix:a},{default:()=>this.rtlEnabled?f(vt,null):f(yt,null)})])),n===`left`&&c),Me(l,{collapsed:r},e=>f(`div`,{class:`${a}-collapse-item__header-extra`,onClick:this.handleClick,"data-extra":!0},e))),f(wt,{clsPrefix:a,displayDirective:i,show:!r},t))}});function Et(e){let{textColorDisabled:t}=e;return{iconColorDisabled:t}}var Dt=oe({name:`InputNumber`,common:ee,peers:{Button:$e,Input:We},self:Et});function Ot(e){let{railColor:t,primaryColor:n,baseColor:r,cardColor:i,modalColor:a,popoverColor:o,borderRadius:s,fontSize:c,opacityDisabled:l}=e;return Object.assign(Object.assign({},rt),{fontSize:c,markFontSize:c,railColor:t,railColorHover:t,fillColor:n,fillColorHover:n,opacityDisabled:l,handleColor:`#FFF`,dotColor:i,dotColorModal:a,dotColorPopover:o,handleBoxShadow:`0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)`,handleBoxShadowHover:`0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)`,handleBoxShadowActive:`0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)`,handleBoxShadowFocus:`0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)`,indicatorColor:`rgba(0, 0, 0, .85)`,indicatorBoxShadow:`0 2px 8px 0 rgba(0, 0, 0, 0.12)`,indicatorTextColor:r,indicatorBorderRadius:s,dotBorder:`2px solid ${t}`,dotBorderActive:`2px solid ${n}`,dotBoxShadow:``})}var kt={name:`Slider`,common:ee,self:Ot},At=j([N(`input-number-suffix`,` + display: inline-block; + margin-right: 10px; + `),N(`input-number-prefix`,` + display: inline-block; + margin-left: 10px; + `)]);function jt(e){return e==null||typeof e==`string`&&e.trim()===``?null:Number(e)}function Mt(e){return e.includes(`.`)&&(/^(-)?\d+.*(\.|0)$/.test(e)||/^-?\d*$/.test(e))||e===`-`||e===`-0`}function Nt(e){return e==null?!0:!Number.isNaN(e)}function Pt(e,t){return typeof e==`number`?t===void 0?String(e):e.toFixed(t):``}function Ft(e){if(e===null)return null;if(typeof e==`number`)return e;{let t=Number(e);return Number.isNaN(t)?null:t}}var It=800,Z=100,Lt=n({name:`InputNumber`,props:Object.assign(Object.assign({},ie.props),{autofocus:Boolean,loading:{type:Boolean,default:void 0},placeholder:String,defaultValue:{type:Number,default:null},value:Number,step:{type:[Number,String],default:1},min:[Number,String],max:[Number,String],size:String,disabled:{type:Boolean,default:void 0},validator:Function,bordered:{type:Boolean,default:void 0},showButton:{type:Boolean,default:!0},buttonPlacement:{type:String,default:`right`},inputProps:Object,readonly:Boolean,clearable:Boolean,keyboard:{type:Object,default:{}},updateValueOnInput:{type:Boolean,default:!0},round:{type:Boolean,default:void 0},parse:Function,format:Function,precision:Number,status:String,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onFocus:[Function,Array],onBlur:[Function,Array],onClear:[Function,Array],onChange:[Function,Array]}),slots:Object,setup(t){let{mergedBorderedRef:n,mergedClsPrefixRef:r,mergedRtlRef:i,mergedComponentPropsRef:a}=y(t),o=ie(`InputNumber`,`-input-number`,At,Dt,t,r),{localeRef:s}=Se(`InputNumber`),c=Pe(t,{mergedSize:e=>{let{size:n}=t;if(n)return n;let{mergedSize:r}=e||{};return r?.value?r.value:a?.value?.InputNumber?.size||`medium`}}),{mergedSizeRef:l,mergedDisabledRef:u,mergedStatusRef:d}=c,f=F(null),p=F(null),m=F(null),h=F(t.defaultValue),g=Te(de(t,`value`),h),_=F(``),v=e=>{let t=String(e).split(`.`)[1];return t?t.length:0},b=e=>{let n=[t.min,t.max,t.step,e].map(e=>e===void 0?0:v(e));return Math.max(...n)},x=Ye(()=>{let{placeholder:e}=t;return e===void 0?s.value.placeholder:e}),S=Ye(()=>{let e=Ft(t.step);return e===null||e===0?1:Math.abs(e)}),C=Ye(()=>{let e=Ft(t.min);return e===null?null:e}),T=Ye(()=>{let e=Ft(t.max);return e===null?null:e}),E=()=>{let{value:e}=g;if(Nt(e)){let{format:n,precision:r}=t;n?_.value=n(e):e===null||r===void 0||v(e)>r?_.value=Pt(e,void 0):_.value=Pt(e,r)}else _.value=String(e)};E();let D=e=>{let{value:n}=g;if(e===n){E();return}let{"onUpdate:value":r,onUpdateValue:i,onChange:a}=t,{nTriggerFormInput:o,nTriggerFormChange:s}=c;a&&W(a,e),i&&W(i,e),r&&W(r,e),h.value=e,o(),s()},O=({offset:e,doUpdateIfValid:n,fixPrecision:r,isInputing:i})=>{let{value:a}=_;if(i&&Mt(a))return!1;let o=(t.parse||jt)(a);if(o===null)return n&&D(null),null;if(Nt(o)){let a=v(o),{precision:s}=t;if(s!==void 0&&se){if(!n||i)return!1;c=e}if(r!==null&&cO({offset:0,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})===!1),k=Ye(()=>{let{value:e}=g;if(t.validator&&e===null)return!1;let{value:n}=S;return O({offset:-n,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})!==!1}),te=Ye(()=>{let{value:e}=g;if(t.validator&&e===null)return!1;let{value:n}=S;return O({offset:+n,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})!==!1});function A(e){let{onFocus:n}=t,{nTriggerFormFocus:r}=c;n&&W(n,e),r()}function re(e){if(e.target===f.value?.wrapperElRef)return;let n=O({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0});if(n!==!1){let e=f.value?.inputElRef;e&&(e.value=String(n||``)),g.value===n&&E()}else E();let{onBlur:r}=t,{nTriggerFormBlur:i}=c;r&&W(r,e),i(),pe(()=>{E()})}function ae(e){let{onClear:n}=t;n&&W(n,e)}function j(){let{value:e}=te;if(!e){R();return}let{value:n}=g;if(n===null)t.validator||D(N());else{let{value:e}=S;O({offset:e,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})}}function M(){let{value:e}=k;if(!e){fe();return}let{value:n}=g;if(n===null)t.validator||D(N());else{let{value:e}=S;O({offset:-e,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})}}let oe=A,se=re;function N(){if(t.validator)return null;let{value:e}=C,{value:n}=T;return e===null?n===null?0:Math.min(0,n):Math.max(0,e)}function P(e){ae(e),D(null)}function ce(e){var t;m.value?.$el.contains(e.target)&&e.preventDefault(),p.value?.$el.contains(e.target)&&e.preventDefault(),(t=f.value)==null||t.activate()}let le=null,ue=null,I=null;function fe(){I&&=(window.clearTimeout(I),null),le&&=(window.clearInterval(le),null)}let me=null;function R(){me&&=(window.clearTimeout(me),null),ue&&=(window.clearInterval(ue),null)}function he(){fe(),I=window.setTimeout(()=>{le=window.setInterval(()=>{M()},Z)},It),ve(`mouseup`,document,fe,{once:!0})}function ge(){R(),me=window.setTimeout(()=>{ue=window.setInterval(()=>{j()},Z)},It),ve(`mouseup`,document,R,{once:!0})}let _e=()=>{ue||j()},ye=()=>{le||M()};function z(e){var n;if(e.key===`Enter`){if(e.target===f.value?.wrapperElRef)return;O({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&((n=f.value)==null||n.deactivate())}else if(e.key===`ArrowUp`){if(!te.value||t.keyboard.ArrowUp===!1)return;e.preventDefault(),O({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&j()}else if(e.key===`ArrowDown`){if(!k.value||t.keyboard.ArrowDown===!1)return;e.preventDefault(),O({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&M()}}function B(e){_.value=e,t.updateValueOnInput&&!t.format&&!t.parse&&t.precision===void 0&&O({offset:0,doUpdateIfValid:!0,isInputing:!0,fixPrecision:!1})}ne(g,()=>{E()});let be={focus:()=>f.value?.focus(),blur:()=>f.value?.blur(),select:()=>f.value?.select()},xe=w(`InputNumber`,i,r);return Object.assign(Object.assign({},be),{rtlEnabled:xe,inputInstRef:f,minusButtonInstRef:p,addButtonInstRef:m,mergedClsPrefix:r,mergedBordered:n,uncontrolledValue:h,mergedValue:g,mergedPlaceholder:x,displayedValueInvalid:ee,mergedSize:l,mergedDisabled:u,displayedValue:_,addable:te,minusable:k,mergedStatus:d,handleFocus:oe,handleBlur:se,handleClear:P,handleMouseDown:ce,handleAddClick:_e,handleMinusClick:ye,handleAddMousedown:ge,handleMinusMousedown:he,handleKeyDown:z,handleUpdateDisplayedValue:B,mergedTheme:o,inputThemeOverrides:{paddingSmall:`0 8px 0 10px`,paddingMedium:`0 8px 0 12px`,paddingLarge:`0 8px 0 14px`},buttonThemeOverrides:L(()=>{let{self:{iconColorDisabled:t}}=o.value,[n,r,i,a]=e(t);return{textColorTextDisabled:`rgb(${n}, ${r}, ${i})`,opacityDisabled:`${a}`}})})},render(){let{mergedClsPrefix:e,$slots:t}=this,n=()=>f(Ee,{text:!0,disabled:!this.minusable||this.mergedDisabled||this.readonly,focusable:!1,theme:this.mergedTheme.peers.Button,themeOverrides:this.mergedTheme.peerOverrides.Button,builtinThemeOverrides:this.buttonThemeOverrides,onClick:this.handleMinusClick,onMousedown:this.handleMinusMousedown,ref:`minusButtonInstRef`},{icon:()=>Ae(t[`minus-icon`],()=>[f(qe,{clsPrefix:e},{default:()=>f(Ie,null)})])}),r=()=>f(Ee,{text:!0,disabled:!this.addable||this.mergedDisabled||this.readonly,focusable:!1,theme:this.mergedTheme.peers.Button,themeOverrides:this.mergedTheme.peerOverrides.Button,builtinThemeOverrides:this.buttonThemeOverrides,onClick:this.handleAddClick,onMousedown:this.handleAddMousedown,ref:`addButtonInstRef`},{icon:()=>Ae(t[`add-icon`],()=>[f(qe,{clsPrefix:e},{default:()=>f(Fe,null)})])});return f(`div`,{class:[`${e}-input-number`,this.rtlEnabled&&`${e}-input-number--rtl`]},f(K,{ref:`inputInstRef`,autofocus:this.autofocus,status:this.mergedStatus,bordered:this.mergedBordered,loading:this.loading,value:this.displayedValue,onUpdateValue:this.handleUpdateDisplayedValue,theme:this.mergedTheme.peers.Input,themeOverrides:this.mergedTheme.peerOverrides.Input,builtinThemeOverrides:this.inputThemeOverrides,size:this.mergedSize,placeholder:this.mergedPlaceholder,disabled:this.mergedDisabled,readonly:this.readonly,round:this.round,textDecoration:this.displayedValueInvalid?`line-through`:void 0,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeydown:this.handleKeyDown,onMousedown:this.handleMouseDown,onClear:this.handleClear,clearable:this.clearable,inputProps:this.inputProps,internalLoadingBeforeSuffix:!0},{prefix:()=>this.showButton&&this.buttonPlacement===`both`?[n(),je(t.prefix,t=>t?f(`span`,{class:`${e}-input-number-prefix`},t):null)]:t.prefix?.call(t),suffix:()=>this.showButton?[je(t.suffix,t=>t?f(`span`,{class:`${e}-input-number-suffix`},t):null),this.buttonPlacement===`right`?n():null,r()]:t.suffix?.call(t)}))}}),Rt=j([N(`slider`,` + display: block; + padding: calc((var(--n-handle-size) - var(--n-rail-height)) / 2) 0; + position: relative; + z-index: 0; + width: 100%; + cursor: pointer; + user-select: none; + -webkit-user-select: none; + `,[M(`reverse`,[N(`slider-handles`,[N(`slider-handle-wrapper`,` + transform: translate(50%, -50%); + `)]),N(`slider-dots`,[N(`slider-dot`,` + transform: translateX(50%, -50%); + `)]),M(`vertical`,[N(`slider-handles`,[N(`slider-handle-wrapper`,` + transform: translate(-50%, -50%); + `)]),N(`slider-marks`,[N(`slider-mark`,` + transform: translateY(calc(-50% + var(--n-dot-height) / 2)); + `)]),N(`slider-dots`,[N(`slider-dot`,` + transform: translateX(-50%) translateY(0); + `)])])]),M(`vertical`,` + box-sizing: content-box; + padding: 0 calc((var(--n-handle-size) - var(--n-rail-height)) / 2); + width: var(--n-rail-width-vertical); + height: 100%; + `,[N(`slider-handles`,` + top: calc(var(--n-handle-size) / 2); + right: 0; + bottom: calc(var(--n-handle-size) / 2); + left: 0; + `,[N(`slider-handle-wrapper`,` + top: unset; + left: 50%; + transform: translate(-50%, 50%); + `)]),N(`slider-rail`,` + height: 100%; + `,[T(`fill`,` + top: unset; + right: 0; + bottom: unset; + left: 0; + `)]),M(`with-mark`,` + width: var(--n-rail-width-vertical); + margin: 0 32px 0 8px; + `),N(`slider-marks`,` + top: calc(var(--n-handle-size) / 2); + right: unset; + bottom: calc(var(--n-handle-size) / 2); + left: 22px; + font-size: var(--n-mark-font-size); + `,[N(`slider-mark`,` + transform: translateY(50%); + white-space: nowrap; + `)]),N(`slider-dots`,` + top: calc(var(--n-handle-size) / 2); + right: unset; + bottom: calc(var(--n-handle-size) / 2); + left: 50%; + `,[N(`slider-dot`,` + transform: translateX(-50%) translateY(50%); + `)])]),M(`disabled`,` + cursor: not-allowed; + opacity: var(--n-opacity-disabled); + `,[N(`slider-handle`,` + cursor: not-allowed; + `)]),M(`with-mark`,` + width: 100%; + margin: 8px 0 32px 0; + `),j(`&:hover`,[N(`slider-rail`,{backgroundColor:`var(--n-rail-color-hover)`},[T(`fill`,{backgroundColor:`var(--n-fill-color-hover)`})]),N(`slider-handle`,{boxShadow:`var(--n-handle-box-shadow-hover)`})]),M(`active`,[N(`slider-rail`,{backgroundColor:`var(--n-rail-color-hover)`},[T(`fill`,{backgroundColor:`var(--n-fill-color-hover)`})]),N(`slider-handle`,{boxShadow:`var(--n-handle-box-shadow-hover)`})]),N(`slider-marks`,` + position: absolute; + top: 18px; + left: calc(var(--n-handle-size) / 2); + right: calc(var(--n-handle-size) / 2); + `,[N(`slider-mark`,` + position: absolute; + transform: translateX(-50%); + white-space: nowrap; + `)]),N(`slider-rail`,` + width: 100%; + position: relative; + height: var(--n-rail-height); + background-color: var(--n-rail-color); + transition: background-color .3s var(--n-bezier); + border-radius: calc(var(--n-rail-height) / 2); + `,[T(`fill`,` + position: absolute; + top: 0; + bottom: 0; + border-radius: calc(var(--n-rail-height) / 2); + transition: background-color .3s var(--n-bezier); + background-color: var(--n-fill-color); + `)]),N(`slider-handles`,` + position: absolute; + top: 0; + right: calc(var(--n-handle-size) / 2); + bottom: 0; + left: calc(var(--n-handle-size) / 2); + `,[N(`slider-handle-wrapper`,` + outline: none; + position: absolute; + top: 50%; + transform: translate(-50%, -50%); + cursor: pointer; + display: flex; + `,[N(`slider-handle`,` + height: var(--n-handle-size); + width: var(--n-handle-size); + border-radius: 50%; + overflow: hidden; + transition: box-shadow .2s var(--n-bezier), background-color .3s var(--n-bezier); + background-color: var(--n-handle-color); + box-shadow: var(--n-handle-box-shadow); + `,[j(`&:hover`,` + box-shadow: var(--n-handle-box-shadow-hover); + `)]),j(`&:focus`,[N(`slider-handle`,` + box-shadow: var(--n-handle-box-shadow-focus); + `,[j(`&:hover`,` + box-shadow: var(--n-handle-box-shadow-active); + `)])])])]),N(`slider-dots`,` + position: absolute; + top: 50%; + left: calc(var(--n-handle-size) / 2); + right: calc(var(--n-handle-size) / 2); + `,[M(`transition-disabled`,[N(`slider-dot`,`transition: none;`)]),N(`slider-dot`,` + transition: + border-color .3s var(--n-bezier), + box-shadow .3s var(--n-bezier), + background-color .3s var(--n-bezier); + position: absolute; + transform: translate(-50%, -50%); + height: var(--n-dot-height); + width: var(--n-dot-width); + border-radius: var(--n-dot-border-radius); + overflow: hidden; + box-sizing: border-box; + border: var(--n-dot-border); + background-color: var(--n-dot-color); + `,[M(`active`,`border: var(--n-dot-border-active);`)])])]),N(`slider-handle-indicator`,` + font-size: var(--n-font-size); + padding: 6px 10px; + border-radius: var(--n-indicator-border-radius); + color: var(--n-indicator-text-color); + background-color: var(--n-indicator-color); + box-shadow: var(--n-indicator-box-shadow); + `,[Ce()]),N(`slider-handle-indicator`,` + font-size: var(--n-font-size); + padding: 6px 10px; + border-radius: var(--n-indicator-border-radius); + color: var(--n-indicator-text-color); + background-color: var(--n-indicator-color); + box-shadow: var(--n-indicator-box-shadow); + `,[M(`top`,` + margin-bottom: 12px; + `),M(`right`,` + margin-left: 12px; + `),M(`bottom`,` + margin-top: 12px; + `),M(`left`,` + margin-right: 12px; + `),Ce()]),re(N(`slider`,[N(`slider-dot`,`background-color: var(--n-dot-color-modal);`)])),ue(N(`slider`,[N(`slider-dot`,`background-color: var(--n-dot-color-popover);`)]))]);function zt(e){return window.TouchEvent&&e instanceof window.TouchEvent}function Bt(){let e=new Map;return _(()=>{e.clear()}),[e,t=>n=>{e.set(t,n)}]}var Q=0,Vt=n({name:`Slider`,props:Object.assign(Object.assign({},ie.props),{to:he.propTo,defaultValue:{type:[Number,Array],default:0},marks:Object,disabled:{type:Boolean,default:void 0},formatTooltip:Function,keyboard:{type:Boolean,default:!0},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:[Number,String],default:1},range:Boolean,value:[Number,Array],placement:String,showTooltip:{type:Boolean,default:void 0},tooltip:{type:Boolean,default:!0},vertical:Boolean,reverse:Boolean,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onDragstart:[Function],onDragend:[Function]}),slots:Object,setup(e){let{mergedClsPrefixRef:t,namespaceRef:n,inlineThemeDisabled:r}=y(e),i=ie(`Slider`,`-slider`,Rt,kt,e,t),a=F(null),[o,s]=Bt(),[l,u]=Bt(),d=F(new Set),f=Pe(e),{mergedDisabledRef:p}=f,m=L(()=>{let{step:t}=e;if(Number(t)<=0||t===`mark`)return 0;let n=t.toString(),r=0;return n.includes(`.`)&&(r=n.length-n.indexOf(`.`)-1),r}),h=F(e.defaultValue),_=Te(de(e,`value`),h),v=L(()=>{let{value:t}=_;return(e.range?t:[t]).map(P)}),b=L(()=>v.value.length>2),x=L(()=>e.placement===void 0?e.vertical?`right`:`top`:e.placement),S=L(()=>{let{marks:t}=e;return t?Object.keys(t).map(Number.parseFloat):null}),C=F(-1),w=F(-1),T=F(-1),E=F(!1),D=F(!1),O=L(()=>{let{vertical:t,reverse:n}=e;return t?n?`top`:`bottom`:n?`right`:`left`}),ee=L(()=>{if(b.value)return;let t=v.value,n=ce(e.range?Math.min(...t):e.min),r=ce(e.range?Math.max(...t):t[0]),{value:i}=O;return e.vertical?{[i]:`${n}%`,height:`${r-n}%`}:{[i]:`${n}%`,width:`${r-n}%`}}),k=L(()=>{let t=[],{marks:n}=e;if(n){let r=v.value.slice();r.sort((e,t)=>e-t);let{value:i}=O,{value:a}=b,{range:o}=e,s=a?()=>!1:e=>o?e>=r[0]&&e<=r[r.length-1]:e<=r[0];for(let e of Object.keys(n)){let r=Number(e);t.push({active:s(r),key:r,label:n[e],style:{[i]:`${ce(r)}%`}})}}return t});function te(e,t){let n=ce(e),{value:r}=O;return{[r]:`${n}%`,zIndex:+(t===C.value)}}function A(t){return e.showTooltip||T.value===t||C.value===t&&E.value}function re(e){return E.value?!(C.value===e&&w.value===e):!0}function ae(e){var t;~e&&(C.value=e,(t=o.get(e))==null||t.focus())}function j(){l.forEach((e,t)=>{A(t)&&e.syncPosition()})}function M(t){let{"onUpdate:value":n,onUpdateValue:r}=e,{nTriggerFormInput:i,nTriggerFormChange:a}=f;r&&W(r,t),n&&W(n,t),h.value=t,i(),a()}function oe(t){let{range:n}=e;if(n){if(Array.isArray(t)){let{value:e}=v;t.join()!==e.join()&&M(t)}}else Array.isArray(t)||v.value[0]!==t&&M(t)}function se(t,n){if(e.range){let e=v.value.slice();e.splice(n,1,t),oe(e)}else oe(t)}function N(t,n,r){let i=r!==void 0;r||=t-n>0?1:-1;let a=S.value||[],{step:o}=e;if(o===`mark`){let e=I(t,a.concat(n),i?r:void 0);return e?e.value:n}if(o<=0)return n;let{value:s}=m,c;if(i){let e=Number((n/o).toFixed(s)),t=Math.floor(e),i=e>t?t:t-1,l=e0)&&(r===null||o0?1:-1),n)}function ge(t){if(p.value||!zt(t)&&t.button!==Q)return;let n=fe(t);if(n===void 0)return;let r=v.value.slice(),i=e.range?I(n,r)?.index??-1:0;i!==-1&&(t.preventDefault(),ae(i),_e(),se(N(n,v.value[i]),i))}function _e(){E.value||(E.value=!0,e.onDragstart&&W(e.onDragstart),ve(`touchend`,document,be),ve(`mouseup`,document,be),ve(`touchmove`,document,B),ve(`mousemove`,document,B))}function z(){E.value&&(E.value=!1,e.onDragend&&W(e.onDragend),ye(`touchend`,document,be),ye(`mouseup`,document,be),ye(`touchmove`,document,B),ye(`mousemove`,document,B))}function B(e){let{value:t}=C;if(!E.value||t===-1){z();return}let n=fe(e);n!==void 0&&se(N(n,v.value[t]),t)}function be(){z()}function xe(e){C.value=e,p.value||(T.value=e)}function Se(e){C.value===e&&(C.value=-1,z()),T.value===e&&(T.value=-1)}function Ce(e){T.value=e}function V(e){T.value===e&&(T.value=-1)}ne(C,(e,t)=>void pe(()=>w.value=t)),ne(_,()=>{if(e.marks){if(D.value)return;D.value=!0,pe(()=>{D.value=!1})}pe(j)}),c(()=>{z()});let we=L(()=>{let{self:{markFontSize:e,railColor:t,railColorHover:n,fillColor:r,fillColorHover:a,handleColor:o,opacityDisabled:s,dotColor:c,dotColorModal:l,handleBoxShadow:u,handleBoxShadowHover:d,handleBoxShadowActive:f,handleBoxShadowFocus:p,dotBorder:m,dotBoxShadow:h,railHeight:g,railWidthVertical:_,handleSize:v,dotHeight:y,dotWidth:b,dotBorderRadius:x,fontSize:S,dotBorderActive:C,dotColorPopover:w},common:{cubicBezierEaseInOut:T}}=i.value;return{"--n-bezier":T,"--n-dot-border":m,"--n-dot-border-active":C,"--n-dot-border-radius":x,"--n-dot-box-shadow":h,"--n-dot-color":c,"--n-dot-color-modal":l,"--n-dot-color-popover":w,"--n-dot-height":y,"--n-dot-width":b,"--n-fill-color":r,"--n-fill-color-hover":a,"--n-font-size":S,"--n-handle-box-shadow":u,"--n-handle-box-shadow-active":f,"--n-handle-box-shadow-focus":p,"--n-handle-box-shadow-hover":d,"--n-handle-color":o,"--n-handle-size":v,"--n-opacity-disabled":s,"--n-rail-color":t,"--n-rail-color-hover":n,"--n-rail-height":g,"--n-rail-width-vertical":_,"--n-mark-font-size":e}}),Ee=r?g(`slider`,void 0,we,e):void 0,H=L(()=>{let{self:{fontSize:e,indicatorColor:t,indicatorBoxShadow:n,indicatorTextColor:r,indicatorBorderRadius:a}}=i.value;return{"--n-font-size":e,"--n-indicator-border-radius":a,"--n-indicator-box-shadow":n,"--n-indicator-color":t,"--n-indicator-text-color":r}}),De=r?g(`slider-indicator`,void 0,H,e):void 0;return{mergedClsPrefix:t,namespace:n,uncontrolledValue:h,mergedValue:_,mergedDisabled:p,mergedPlacement:x,isMounted:Qe(),adjustedTo:he(e),dotTransitionDisabled:D,markInfos:k,isShowTooltip:A,shouldKeepTooltipTransition:re,handleRailRef:a,setHandleRefs:s,setFollowerRefs:u,fillStyle:ee,getHandleStyle:te,activeIndex:C,arrifiedValues:v,followerEnabledIndexSet:d,handleRailMouseDown:ge,handleHandleFocus:xe,handleHandleBlur:Se,handleHandleMouseEnter:Ce,handleHandleMouseLeave:V,handleRailKeyDown:me,indicatorCssVars:r?void 0:H,indicatorThemeClass:De?.themeClass,indicatorOnRender:De?.onRender,cssVars:r?void 0:we,themeClass:Ee?.themeClass,onRender:Ee?.onRender}},render(){var e;let{mergedClsPrefix:t,themeClass:n,formatTooltip:r}=this;return(e=this.onRender)==null||e.call(this),f(`div`,{class:[`${t}-slider`,n,{[`${t}-slider--disabled`]:this.mergedDisabled,[`${t}-slider--active`]:this.activeIndex!==-1,[`${t}-slider--with-mark`]:this.marks,[`${t}-slider--vertical`]:this.vertical,[`${t}-slider--reverse`]:this.reverse}],style:this.cssVars,onKeydown:this.handleRailKeyDown,onMousedown:this.handleRailMouseDown,onTouchstart:this.handleRailMouseDown},f(`div`,{class:`${t}-slider-rail`},f(`div`,{class:`${t}-slider-rail__fill`,style:this.fillStyle}),this.marks?f(`div`,{class:[`${t}-slider-dots`,this.dotTransitionDisabled&&`${t}-slider-dots--transition-disabled`]},this.markInfos.map(e=>f(`div`,{key:e.key,class:[`${t}-slider-dot`,{[`${t}-slider-dot--active`]:e.active}],style:e.style}))):null,f(`div`,{ref:`handleRailRef`,class:`${t}-slider-handles`},this.arrifiedValues.map((e,n)=>{let i=this.isShowTooltip(n);return f(me,null,{default:()=>[f(R,null,{default:()=>f(`div`,{ref:this.setHandleRefs(n),class:`${t}-slider-handle-wrapper`,tabindex:this.mergedDisabled?-1:0,role:`slider`,"aria-valuenow":e,"aria-valuemin":this.min,"aria-valuemax":this.max,"aria-orientation":this.vertical?`vertical`:`horizontal`,"aria-disabled":this.disabled,style:this.getHandleStyle(e,n),onFocus:()=>{this.handleHandleFocus(n)},onBlur:()=>{this.handleHandleBlur(n)},onMouseenter:()=>{this.handleHandleMouseEnter(n)},onMouseleave:()=>{this.handleHandleMouseLeave(n)}},Ae(this.$slots.thumb,()=>[f(`div`,{class:`${t}-slider-handle`})]))}),this.tooltip&&f(ge,{ref:this.setFollowerRefs(n),show:i,to:this.adjustedTo,enabled:this.showTooltip&&!this.range||this.followerEnabledIndexSet.has(n),teleportDisabled:this.adjustedTo===he.tdkey,placement:this.mergedPlacement,containerClass:this.namespace},{default:()=>f(et,{name:`fade-in-scale-up-transition`,appear:this.isMounted,css:this.shouldKeepTooltipTransition(n),onEnter:()=>{this.followerEnabledIndexSet.add(n)},onAfterLeave:()=>{this.followerEnabledIndexSet.delete(n)}},{default:()=>{var n;return i?((n=this.indicatorOnRender)==null||n.call(this),f(`div`,{class:[`${t}-slider-handle-indicator`,this.indicatorThemeClass,`${t}-slider-handle-indicator--${this.mergedPlacement}`],style:this.indicatorCssVars},typeof r==`function`?r(e):e)):null}})})]})})),this.marks?f(`div`,{class:`${t}-slider-marks`},this.markInfos.map(e=>f(`div`,{key:e.key,class:`${t}-slider-mark`,style:e.style},typeof e.label==`function`?e.label():e.label))):null))}}),Ht=j([N(`table`,` + font-size: var(--n-font-size); + font-variant-numeric: tabular-nums; + line-height: var(--n-line-height); + width: 100%; + border-radius: var(--n-border-radius) var(--n-border-radius) 0 0; + text-align: left; + border-collapse: separate; + border-spacing: 0; + overflow: hidden; + background-color: var(--n-td-color); + border-color: var(--n-merged-border-color); + transition: + background-color .3s var(--n-bezier), + border-color .3s var(--n-bezier), + color .3s var(--n-bezier); + --n-merged-border-color: var(--n-border-color); + `,[j(`th`,` + white-space: nowrap; + transition: + background-color .3s var(--n-bezier), + border-color .3s var(--n-bezier), + color .3s var(--n-bezier); + text-align: inherit; + padding: var(--n-th-padding); + vertical-align: inherit; + text-transform: none; + border: 0px solid var(--n-merged-border-color); + font-weight: var(--n-th-font-weight); + color: var(--n-th-text-color); + background-color: var(--n-th-color); + border-bottom: 1px solid var(--n-merged-border-color); + border-right: 1px solid var(--n-merged-border-color); + `,[j(`&:last-child`,` + border-right: 0px solid var(--n-merged-border-color); + `)]),j(`td`,` + transition: + background-color .3s var(--n-bezier), + border-color .3s var(--n-bezier), + color .3s var(--n-bezier); + padding: var(--n-td-padding); + color: var(--n-td-text-color); + background-color: var(--n-td-color); + border: 0px solid var(--n-merged-border-color); + border-right: 1px solid var(--n-merged-border-color); + border-bottom: 1px solid var(--n-merged-border-color); + `,[j(`&:last-child`,` + border-right: 0px solid var(--n-merged-border-color); + `)]),M(`bordered`,` + border: 1px solid var(--n-merged-border-color); + border-radius: var(--n-border-radius); + `,[j(`tr`,[j(`&:last-child`,[j(`td`,` + border-bottom: 0 solid var(--n-merged-border-color); + `)])])]),M(`single-line`,[j(`th`,` + border-right: 0px solid var(--n-merged-border-color); + `),j(`td`,` + border-right: 0px solid var(--n-merged-border-color); + `)]),M(`single-column`,[j(`tr`,[j(`&:not(:last-child)`,[j(`td`,` + border-bottom: 0px solid var(--n-merged-border-color); + `)])])]),M(`striped`,[j(`tr:nth-of-type(even)`,[j(`td`,`background-color: var(--n-td-color-striped)`)])]),ce(`bottom-bordered`,[j(`tr`,[j(`&:last-child`,[j(`td`,` + border-bottom: 0px solid var(--n-merged-border-color); + `)])])])]),re(N(`table`,` + background-color: var(--n-td-color-modal); + --n-merged-border-color: var(--n-border-color-modal); + `,[j(`th`,` + background-color: var(--n-th-color-modal); + `),j(`td`,` + background-color: var(--n-td-color-modal); + `)])),ue(N(`table`,` + background-color: var(--n-td-color-popover); + --n-merged-border-color: var(--n-border-color-popover); + `,[j(`th`,` + background-color: var(--n-th-color-popover); + `),j(`td`,` + background-color: var(--n-td-color-popover); + `)]))]),Ut=n({name:`Table`,props:Object.assign(Object.assign({},ie.props),{bordered:{type:Boolean,default:!0},bottomBordered:{type:Boolean,default:!0},singleLine:{type:Boolean,default:!0},striped:Boolean,singleColumn:Boolean,size:String}),setup(e){let{mergedClsPrefixRef:t,inlineThemeDisabled:n,mergedRtlRef:r,mergedComponentPropsRef:i}=y(e),a=L(()=>e.size||i?.value?.Table?.size||`medium`),o=ie(`Table`,`-table`,Ht,ot,e,t),s=w(`Table`,r,t),c=L(()=>{let e=a.value,{self:{borderColor:t,tdColor:n,tdColorModal:r,tdColorPopover:i,thColor:s,thColorModal:c,thColorPopover:l,thTextColor:u,tdTextColor:d,borderRadius:f,thFontWeight:p,lineHeight:m,borderColorModal:h,borderColorPopover:g,tdColorStriped:_,tdColorStripedModal:v,tdColorStripedPopover:y,[D(`fontSize`,e)]:b,[D(`tdPadding`,e)]:x,[D(`thPadding`,e)]:S},common:{cubicBezierEaseInOut:C}}=o.value;return{"--n-bezier":C,"--n-td-color":n,"--n-td-color-modal":r,"--n-td-color-popover":i,"--n-td-text-color":d,"--n-border-color":t,"--n-border-color-modal":h,"--n-border-color-popover":g,"--n-border-radius":f,"--n-font-size":b,"--n-th-color":s,"--n-th-color-modal":c,"--n-th-color-popover":l,"--n-th-font-weight":p,"--n-th-text-color":u,"--n-line-height":m,"--n-td-padding":x,"--n-th-padding":S,"--n-td-color-striped":_,"--n-td-color-striped-modal":v,"--n-td-color-striped-popover":y}}),l=n?g(`table`,L(()=>a.value[0]),c,e):void 0;return{rtlEnabled:s,mergedClsPrefix:t,cssVars:n?void 0:c,themeClass:l?.themeClass,onRender:l?.onRender}},render(){var e;let{mergedClsPrefix:t}=this;return(e=this.onRender)==null||e.call(this),f(`table`,{class:[`${t}-table`,this.themeClass,{[`${t}-table--rtl`]:this.rtlEnabled,[`${t}-table--bottom-bordered`]:this.bottomBordered,[`${t}-table--bordered`]:this.bordered,[`${t}-table--single-line`]:this.singleLine,[`${t}-table--single-column`]:this.singleColumn,[`${t}-table--striped`]:this.striped}],style:this.cssVars},this.$slots)}}),Wt={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},Gt=n({name:`Edit`,render:function(e,t){return l(),h(`svg`,Wt,t[0]||=[m(`path`,{d:`M2 26h28v2H2z`,fill:`currentColor`},null,-1),m(`path`,{d:`M25.4 9c.8-.8.8-2 0-2.8l-3.6-3.6c-.8-.8-2-.8-2.8 0l-15 15V24h6.4l15-15zm-5-5L24 7.6l-3 3L17.4 7l3-3zM6 22v-3.6l10-10l3.6 3.6l-10 10H6z`,fill:`currentColor`},null,-1)])}}),Kt={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},qt=n({name:`Flag`,render:function(e,t){return l(),h(`svg`,Kt,t[0]||=[m(`path`,{d:`M6 30H4V2h24l-5.8 9l5.8 9H6zm0-12h18.33l-4.53-7l4.53-7H6z`,fill:`currentColor`},null,-1)])}}),Jt={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},Yt=n({name:`Pause`,render:function(e,t){return l(),h(`svg`,Jt,t[0]||=[m(`path`,{d:`M12 8v16H8V8h4m0-2H8a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2z`,fill:`currentColor`},null,-1),m(`path`,{d:`M24 8v16h-4V8h4m0-2h-4a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2z`,fill:`currentColor`},null,-1)])}}),Xt={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},Zt=n({name:`Play`,render:function(e,t){return l(),h(`svg`,Xt,t[0]||=[m(`path`,{d:`M7 28a1 1 0 0 1-1-1V5a1 1 0 0 1 1.482-.876l20 11a1 1 0 0 1 0 1.752l-20 11A1 1 0 0 1 7 28zM8 6.69V25.31L24.925 16z`,fill:`currentColor`},null,-1)])}}),Qt={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},$t=n({name:`Repeat`,render:function(e,t){return l(),h(`svg`,Qt,t[0]||=[m(`path`,{d:`M6 6h20.172l-3.586-3.586L24 1l6 6l-6 6l-1.414-1.414L26.172 8H6v7H4V8a2.002 2.002 0 0 1 2-2z`,fill:`currentColor`},null,-1),m(`path`,{d:`M9.414 20.414L5.828 24H26v-7h2v7a2.002 2.002 0 0 1-2 2H5.828l3.586 3.586L8 31l-6-6l6-6z`,fill:`currentColor`},null,-1)])}}),en={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},tn=n({name:`Reset`,render:function(e,t){return l(),h(`svg`,en,t[0]||=[m(`path`,{d:`M18 28A12 12 0 1 0 6 16v6.2l-3.6-3.6L1 20l6 6l6-6l-1.4-1.4L8 22.2V16a10 10 0 1 1 10 10z`,fill:`currentColor`},null,-1)])}}),nn={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},rn=n({name:`Stop`,render:function(e,t){return l(),h(`svg`,nn,t[0]||=[m(`path`,{d:`M24 8v16H8V8h16m0-2H8a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2z`,fill:`currentColor`},null,-1)])}}),an={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},on=n({name:`Trophy`,render:function(e,t){return l(),h(`svg`,an,t[0]||=[m(`path`,{d:`M26 7h-2V6a2.002 2.002 0 0 0-2-2H10a2.002 2.002 0 0 0-2 2v1H6a2.002 2.002 0 0 0-2 2v3a4.005 4.005 0 0 0 4 4h.322A8.169 8.169 0 0 0 15 21.934V26h-5v2h12v-2h-5v-4.069A7.966 7.966 0 0 0 23.74 16H24a4.005 4.005 0 0 0 4-4V9a2.002 2.002 0 0 0-2-2zM8 14a2.002 2.002 0 0 1-2-2V9h2zm14 0a6 6 0 0 1-6.186 5.997A6.2 6.2 0 0 1 10 13.707V6h12zm4-2a2.002 2.002 0 0 1-2 2V9h2z`,fill:`currentColor`},null,-1)])}}),sn=`/assets/icq-uh-oh-DjThHNEb.wav`,$=G(n({__name:`UiBlock`,props:{tag:{default:`div`}},setup(e){return(n,r)=>(l(),a(t(e.tag),{class:`ui-block`},{default:P(()=>[C(n.$slots,`default`,{},void 0,!0)]),_:3}))}}),[[`__scopeId`,`data-v-80193f22`]]),cn=[`onPointerdown`],ln=[`onPointerdown`],un={key:2},dn=[`onClick`],fn=20,pn=G(n({__name:`GameMapPanel`,props:{mapItems:{},teams:{}},emits:[`saveItem`,`dragging`,`giveApplication`],setup(e,{emit:t}){let n=e,o=t,s=F(1),u=F({x:0,y:0}),d=F(),f=L(()=>new Map(n.teams.filter(e=>e.applications?.length).map(e=>[e.ID,e]))),g,_;function y(e){let t=d.value;if(!t)return;let n=t.getBoundingClientRect();return{x:(e.clientX-n.left-t.clientLeft-u.value.x)/s.value,y:(e.clientY-n.top-t.clientTop-u.value.y)/s.value}}function b(e,t){let n=y(t);n&&(g={item:e,offsetX:n.x-(e.x||0),offsetY:n.y-(e.y||0)},o(`dragging`,!0),window.addEventListener(`pointermove`,S),window.addEventListener(`pointerup`,C,{once:!0}),window.addEventListener(`pointercancel`,C,{once:!0}))}function S(e){if(!g)return;let t=y(e);t&&(g.item.x=Math.round((t.x-g.offsetX)/fn)*fn,g.item.y=Math.round((t.y-g.offsetY)/fn)*fn)}function C(){if(!g)return;let e=g.item;g=void 0,window.removeEventListener(`pointermove`,S),window.removeEventListener(`pointerup`,C),window.removeEventListener(`pointercancel`,C),o(`dragging`,!1),o(`saveItem`,e)}function w(e){e.hidden=!e.hidden,o(`saveItem`,e,e.hidden)}function T(e){s.value=Math.min(2,Math.max(.5,Number((s.value+e).toFixed(2))))}function D(){s.value=1,u.value={x:0,y:0}}function O(e){e.button===0&&(_={startX:e.clientX,startY:e.clientY,offsetX:u.value.x,offsetY:u.value.y},window.addEventListener(`pointermove`,ee),window.addEventListener(`pointerup`,te,{once:!0}))}function ee(e){_&&(u.value={x:_.offsetX+e.clientX-_.startX,y:_.offsetY+e.clientY-_.startY})}function te(){_=void 0,window.removeEventListener(`pointermove`,ee)}function ne(e){e.preventDefault(),T(e.deltaY<0?.1:-.1)}return c(()=>{g&&o(`dragging`,!1),window.removeEventListener(`pointermove`,S),window.removeEventListener(`pointerup`,C),window.removeEventListener(`pointercancel`,C),window.removeEventListener(`pointermove`,ee),window.removeEventListener(`pointerup`,te)}),(t,n)=>(l(),a($,null,{default:P(()=>[A(i(Y),{align:`center`,justify:`space-between`,class:`screen-header`},{default:P(()=>[n[6]||=m(`p`,{class:`screens-title`},`Карта помещения`,-1),A(i(J),null,{default:P(()=>[A(i(H),{size:`small`,onClick:n[0]||=e=>T(-.1)},{default:P(()=>[...n[3]||=[p(`−`,-1)]]),_:1}),A(i(Ue),null,{default:P(()=>[p(v(Math.round(s.value*100))+`%`,1)]),_:1}),A(i(H),{size:`small`,onClick:n[1]||=e=>T(.1)},{default:P(()=>[...n[4]||=[p(`+`,-1)]]),_:1}),A(i(H),{size:`small`,onClick:D},{default:P(()=>[...n[5]||=[p(`Сбросить`,-1)]]),_:1})]),_:1})]),_:1}),m(`div`,{ref_key:`mapField`,ref:d,class:`map-field`,onPointerdown:O,onWheel:ne},[m(`div`,{class:`map-canvas`,style:r({transform:`translate(${u.value.x}px, ${u.value.y}px) scale(${s.value})`})},[(l(!0),h(k,null,x(e.mapItems,e=>E((l(),h(`div`,{key:`${e.kind}-${e.itemID}`,class:fe([`map-item`,[e.kind===`screen`?`map-screen`:e.kind===`organizer_desk`?`map-organizer-desk`:`map-team`,{"map-team-needs-applications":e.kind===`team`&&f.value.has(e.itemID)}]]),style:r({left:`${e.x||0}px`,top:`${e.y||0}px`}),onPointerdown:X(t=>e.kind!==`team`&&b(e,t),[`stop`])},[e.kind===`team`?(l(),h(`div`,{key:0,class:`map-team-handle`,onPointerdown:X(t=>b(e,t),[`stop`])},null,40,ln)):I(``,!0),m(`span`,null,v(e.label),1),e.kind===`team`&&f.value.has(e.itemID)?(l(),a(i(J),{key:1,class:`map-team-applications`,vertical:``},{default:P(()=>[(l(!0),h(k,null,x(f.value.get(e.itemID)?.applications,t=>(l(),a(i(H),{key:t.name,size:`small`,onClick:n=>o(`giveApplication`,f.value.get(e.itemID),t)},{default:P(()=>[p(` Выдать: `+v(t.name),1)]),_:2},1032,[`onClick`]))),128))]),_:2},1024)):I(``,!0),e.kind===`screen`?(l(),h(`small`,un,v(e.status)+v(e.soundEnabled?` · звук`:``),1)):I(``,!0),m(`button`,{class:`map-item-hide`,type:`button`,onPointerdown:n[2]||=X(()=>{},[`stop`]),onClick:X(t=>w(e),[`stop`])},` × `,40,dn)],46,cn)),[[Xe,!e.hidden]])),128))],4)],544),e.mapItems.some(e=>e.hidden)?(l(),a(i(J),{key:0,class:`map-hidden-items`},{default:P(()=>[(l(!0),h(k,null,x(e.mapItems.filter(e=>e.hidden),e=>(l(),a(i(H),{key:`hidden-${e.kind}-${e.itemID}`,size:`small`,onClick:t=>w(e)},{default:P(()=>[p(` Добавить `+v(e.label),1)]),_:2},1032,[`onClick`]))),128))]),_:1})):I(``,!0)]),_:1}))}}),[[`__scopeId`,`data-v-5e2f9943`]]),mn={class:`playlist-picker`},hn={key:0,role:`status`},gn={class:`music-volume`},_n={key:1},vn={key:2},yn=[`aria-label`],bn={key:0},xn={key:1},Sn=[`aria-current`],Cn=G(n({__name:`GameMusicPlanPanel`,props:{playlists:{},music:{},isBusy:{type:Boolean}},emits:[`setMusic`,`saveGroup`,`deleteGroup`,`reorderGroups`,`setTrackGroup`,`createPlaylist`,`renamePlaylist`,`reorderTracks`,`deletePlaylist`,`uploadTrack`,`deleteTrack`],setup(e,{emit:t}){let n=e,r=t,o=F(!1),s=F(),c=F(n.music?.volume??100),u=L(()=>n.playlists.map(e=>({label:e.name,value:e.ID})));function d(){s.value?.confirmDiscard()&&(o.value=!1)}let f=L(()=>[...(n.music?.playlist?.groups??[]).map(e=>({...e,ID:e.ID??0,endMode:e.endMode??`PLAYLIST_GROUP_END_MODE_REPEAT`})),{ID:0,name:`Без группы`,endMode:void 0,position:void 0}]);function g(e){return(n.music?.playlist?.tracks??[]).map((e,t)=>({track:e,index:t})).filter(({track:t})=>(t.groupId??0)===e)}function _(e){let t=n.music?.playlist?.tracks?.findIndex(t=>t.groupId===e)??-1;t<0||r(`setMusic`,{groupId:e,trackIndex:t,positionMs:0,playback:`MUSIC_PLAYBACK_PLAYING`})}function y(e){return e===`PLAYLIST_GROUP_END_MODE_STOP`?`После группы — тишина`:e===`PLAYLIST_GROUP_END_MODE_NEXT`?`После группы — следующая`:`Повтор группы`}let b=L(()=>!!n.music?.playlist?.tracks?.length&&!n.isBusy),S=L(()=>n.music?.playback===`MUSIC_PLAYBACK_PLAYING`),C=L(()=>S.value?`Пауза`:n.music?.playback===`MUSIC_PLAYBACK_PAUSED`?`Продолжить`:`Старт`),w=L(()=>n.music?.playlist?.tracks?.[n.music.trackIndex??0]);function T(e,t){e===(n.music?.trackIndex??0)&&t===(n.music?.groupId??0)||r(`setMusic`,{trackIndex:e,groupId:t,positionMs:0})}return ne(()=>n.music?.volume,e=>{c.value=e??100}),(t,n)=>(l(),a($,{class:`music-panel`,"data-testid":`music-plan`},{default:P(()=>[A(i(J),{justify:`space-between`,align:`center`},{default:P(()=>[n[22]||=m(`h3`,null,`План музыки`,-1),o.value?(l(),a(i(H),{key:1,size:`small`,disabled:e.isBusy,onClick:d},{default:P(()=>[...n[21]||=[p(`Готово`,-1)]]),_:1},8,[`disabled`])):(l(),a(i(H),{key:0,size:`small`,square:``,"aria-label":`Редактировать музыку`,title:`Редактировать музыку`,disabled:e.isBusy,onClick:n[0]||=e=>o.value=!0},{default:P(()=>[A(i(B),{size:18},{default:P(()=>[A(i(Gt))]),_:1})]),_:1},8,[`disabled`]))]),_:1}),o.value?(l(),a(ze,{key:0,ref_key:`editor`,ref:s,playlists:e.playlists,music:e.music,"is-busy":e.isBusy,onSetMusic:n[1]||=e=>r(`setMusic`,e),onSaveGroup:n[2]||=(e,t,n,i)=>r(`saveGroup`,e,t,n,i),onDeleteGroup:n[3]||=(e,t)=>r(`deleteGroup`,e,t),onReorderGroups:n[4]||=(e,t)=>r(`reorderGroups`,e,t),onSetTrackGroup:n[5]||=(e,t,n)=>r(`setTrackGroup`,e,t,n),onCreatePlaylist:n[6]||=e=>r(`createPlaylist`,e),onRenamePlaylist:n[7]||=(e,t)=>r(`renamePlaylist`,e,t),onReorderTracks:n[8]||=(e,t)=>r(`reorderTracks`,e,t),onDeletePlaylist:n[9]||=e=>r(`deletePlaylist`,e),onUploadTrack:n[10]||=(e,t,n)=>r(`uploadTrack`,e,t,n),onDeleteTrack:n[11]||=(e,t)=>r(`deleteTrack`,e,t)},null,8,[`playlists`,`music`,`is-busy`])):(l(),a(i(J),{key:1,vertical:``,class:`music-content`},{default:P(()=>[m(`div`,mn,[A(i(ke),{value:e.music?.playlist?.ID,options:u.value,clearable:``,placeholder:`Выберите плейлист`,disabled:e.isBusy,"input-props":{"aria-label":`Музыка игры`},"onUpdate:value":n[12]||=e=>r(`setMusic`,{playlistID:e??0,trackIndex:0,positionMs:0,playback:`MUSIC_PLAYBACK_STOPPED`})},null,8,[`value`,`options`,`disabled`]),e.music?.groupId?I(``,!0):(l(),a(i(H),{key:0,square:``,type:e.music?.loop?`primary`:`default`,"aria-pressed":e.music?.loop??!1,"aria-label":`Повторять плейлист`,title:`Повторять плейлист`,disabled:e.isBusy,onClick:n[13]||=t=>r(`setMusic`,{loop:!e.music?.loop})},{default:P(()=>[A(i(B),{size:18},{default:P(()=>[A(i($t))]),_:1})]),_:1},8,[`type`,`aria-pressed`,`disabled`]))]),w.value?(l(),h(`p`,hn,v(w.value.name)+` · `+v(S.value?`Играет`:e.music?.playback===`MUSIC_PLAYBACK_PAUSED`?`Пауза`:`Остановлено`),1)):I(``,!0),A(i(J),{align:`center`},{default:P(()=>[A(i(H),{square:``,"aria-label":C.value,title:C.value,disabled:!b.value,onClick:n[14]||=e=>r(`setMusic`,{playback:S.value?`MUSIC_PLAYBACK_PAUSED`:`MUSIC_PLAYBACK_PLAYING`})},{default:P(()=>[A(i(B),{size:18},{default:P(()=>[S.value?(l(),a(i(Yt),{key:0})):(l(),a(i(Zt),{key:1}))]),_:1})]),_:1},8,[`aria-label`,`title`,`disabled`]),A(i(H),{square:``,"aria-label":`Стоп`,title:`Стоп`,disabled:!b.value,onClick:n[15]||=e=>r(`setMusic`,{playback:`MUSIC_PLAYBACK_STOPPED`,positionMs:0})},{default:P(()=>[A(i(B),{size:18},{default:P(()=>[A(i(rn))]),_:1})]),_:1},8,[`disabled`]),A(i(H),{square:``,"aria-label":`Сначала`,title:`Сначала`,disabled:!b.value,onClick:n[16]||=e=>r(`setMusic`,{playback:`MUSIC_PLAYBACK_PLAYING`,positionMs:0})},{default:P(()=>[A(i(B),{size:18},{default:P(()=>[A(i(tn))]),_:1})]),_:1},8,[`disabled`]),m(`div`,gn,[n[23]||=m(`span`,{id:`music-volume-label`},`Громкость`,-1),A(i(Vt),{value:c.value,min:0,max:100,disabled:e.isBusy||!e.music?.playlist,"aria-labelledby":`music-volume-label`,"format-tooltip":e=>`${e}%`,"onUpdate:value":n[17]||=e=>c.value=e,onDragend:n[18]||=e=>r(`setMusic`,{volume:c.value}),onKeyup:n[19]||=e=>r(`setMusic`,{volume:c.value})},null,8,[`value`,`disabled`,`format-tooltip`])])]),_:1}),e.music?.playlist?e.music.playlist.tracks?.length?I(``,!0):(l(),h(`p`,vn,`В плейлисте пока нет треков.`)):(l(),h(`p`,_n,`Выберите плейлист для игры.`)),e.music?.groupId?(l(),a(i(H),{key:3,size:`small`,disabled:!b.value,onClick:n[20]||=e=>r(`setMusic`,{groupId:0,trackIndex:0,positionMs:0,playback:`MUSIC_PLAYBACK_PLAYING`})},{default:P(()=>[...n[24]||=[p(`Играть весь плейлист`,-1)]]),_:1},8,[`disabled`])):I(``,!0),(l(!0),h(k,null,x(f.value,t=>(l(),h(`section`,{key:t.ID,class:`music-group`,"aria-label":t.name},[A(i(J),{align:`center`,justify:`space-between`},{default:P(()=>[m(`h4`,null,v(t.name)+v(t.ID&&t.ID===e.music?.groupId?` · Выбрана`:``),1),t.ID?(l(),a(i(H),{key:0,size:`small`,disabled:e.isBusy||!g(t.ID).length,onClick:e=>_(t.ID)},{default:P(()=>[...n[25]||=[p(`Играть группу`,-1)]]),_:1},8,[`disabled`,`onClick`])):I(``,!0)]),_:2},1024),t.ID?(l(),h(`p`,bn,v(y(t.endMode)),1)):I(``,!0),g(t.ID).length?I(``,!0):(l(),h(`p`,xn,`Треков пока нет.`)),(l(!0),h(k,null,x(g(t.ID),({track:n,index:r},a)=>(l(),h(`div`,{key:n.ID,class:fe([`track-row`,{"track-current":r===(e.music?.trackIndex??0)}]),"aria-current":r===(e.music?.trackIndex??0)?`true`:void 0},[m(`span`,null,v(a+1)+`. `+v(n.name),1),A(i(H),{size:`small`,disabled:e.isBusy||r===(e.music?.trackIndex??0)&&t.ID===(e.music?.groupId??0),onClick:e=>T(r,t.ID)},{default:P(()=>[p(v(r===(e.music?.trackIndex??0)&&t.ID===(e.music?.groupId??0)?`Выбран`:`Выбрать`),1)]),_:2},1032,[`disabled`,`onClick`])],10,Sn))),128))],8,yn))),128))]),_:1}))]),_:1}))}}),[[`__scopeId`,`data-v-f15e707a`]]),wn={key:0},Tn={class:`plan-steps`},En=[`aria-current`],Dn={class:`step-preview`,"aria-hidden":`true`},On={class:`step-content`},kn=[`for`],An=[`for`],jn=[`for`],Mn=[`for`],Nn={class:`step-heading`},Pn=[`id`],Fn=G(n({__name:`GameScreenPlanPanel`,props:{screens:{},previewQuestions:{},previewTeams:{},teamNames:{},screenPlan:{},screenPlanDraft:{},screenPlanSaving:{type:Boolean},screenPlanMode:{},screenVolume:{},isBusy:{type:Boolean}},emits:[`addStep`,`edit`,`cancel`,`removeStep`,`moveStep`,`dirty`,`clearPlan`,`save`,`setStep`,`command`,`update:screenVolume`],setup(e,{emit:n}){let r=e,o=n,s=L(()=>r.screens.find(e=>e.status===`connected`)||r.screens[0]),c=L(()=>s.value?.mode===`SCREEN_MODE_INTRO`?!!s.value.introAudio:!!s.value?.conclusionVideo),u=L(()=>r.screens.some(e=>e.status===`connected`)),d=L(()=>r.screenPlanSaving||r.isBusy),f=L(()=>r.screenPlanMode===`edit`?r.screenPlanDraft:r.screenPlan?.steps??[]),g=L(()=>s.value?.timerState===`SCREEN_TIMER_STATE_RUNNING`?{label:`Пауза`,command:`SCREEN_COMMAND_TIMER_PAUSE`,icon:Yt}:s.value?.timerState===`SCREEN_TIMER_STATE_PAUSED`?{label:`Продолжить`,command:`SCREEN_COMMAND_TIMER_RESUME`,icon:Zt}:{label:`Старт`,command:`SCREEN_COMMAND_TIMER_START`,icon:Zt}),_=[{label:`Запуск`,command:`SCREEN_COMMAND_PLAY`,icon:Zt},{label:`Пауза`,command:`SCREEN_COMMAND_PAUSE`,icon:Yt},{label:`Продолжить`,command:`SCREEN_COMMAND_RESUME`,icon:Zt},{label:`Стоп`,command:`SCREEN_COMMAND_STOP`,icon:rn},{label:`Сначала`,command:`SCREEN_COMMAND_REPLAY`,icon:tn}],y=[{label:`Обложка`,value:`SCREEN_MODE_COVER`},{label:`Введение`,value:`SCREEN_MODE_INTRO`},{label:`Закрывашка`,value:`SCREEN_MODE_CONCLUSION`},{label:`Результаты`,value:`SCREEN_MODE_RESULTS`},{label:`Таймер`,value:`SCREEN_MODE_TIMER`},{label:`Текст`,value:`SCREEN_MODE_TEXT`},{label:`QR-код`,value:`SCREEN_MODE_QR`},{label:`Список команд`,value:`SCREEN_MODE_TEAMS`}];function b(e,t){e.timerLabel=ft(e.timerLabel,e.timerType,t),e.timerType=t,o(`dirty`)}function S(e){return{...s.value,...e,timerState:`SCREEN_TIMER_STATE_STOPPED`,timerRemainingSeconds:e.timerDurationSeconds}}return(n,r)=>(l(),a($,{class:`screen-plan-panel`,"data-testid":`screen-plan`},{default:P(()=>[A(i(J),{align:`center`,justify:`space-between`},{default:P(()=>[r[15]||=m(`h3`,null,`План экранов`,-1),A(i(J),null,{default:P(()=>[e.screenPlanMode===`use`&&!e.screenPlan?(l(),a(i(H),{key:0,size:`small`,disabled:d.value,onClick:r[0]||=e=>o(`addStep`)},{default:P(()=>[...r[12]||=[p(`Создать план`,-1)]]),_:1},8,[`disabled`])):e.screenPlanMode===`use`?(l(),a(i(H),{key:1,size:`small`,square:``,"aria-label":`Редактировать план экранов`,title:`Редактировать план экранов`,disabled:d.value,onClick:r[1]||=e=>o(`edit`)},{default:P(()=>[A(i(B),{size:18},{default:P(()=>[A(i(Gt))]),_:1})]),_:1},8,[`disabled`])):(l(),h(k,{key:2},[A(i(H),{size:`small`,disabled:d.value,onClick:r[2]||=e=>o(`cancel`)},{default:P(()=>[...r[13]||=[p(`Отменить`,-1)]]),_:1},8,[`disabled`]),A(i(H),{size:`small`,type:`primary`,loading:e.screenPlanSaving,disabled:d.value,onClick:r[3]||=e=>o(`save`)},{default:P(()=>[...r[14]||=[p(`Сохранить план`,-1)]]),_:1},8,[`loading`,`disabled`])],64))]),_:1})]),_:1}),f.value.length?I(``,!0):(l(),h(`p`,wn,v(e.screenPlanMode===`edit`?`Добавьте шаги или сохраните пустой план для удаления.`:`План экранов ещё не создан.`),1)),m(`div`,Tn,[(l(!0),h(k,null,x(f.value,(n,s)=>(l(),h(`div`,{key:s,class:fe([`plan-step`,{"plan-step-current":e.screenPlanMode===`use`&&e.screenPlan?.currentStep===s}]),"aria-current":e.screenPlanMode===`use`&&e.screenPlan?.currentStep===s?`step`:void 0},[m(`div`,Dn,[A(mt,{state:S(n),questions:e.previewQuestions,teams:e.previewTeams,"team-names":e.teamNames,"is-thumbnail":``},null,8,[`state`,`questions`,`teams`,`team-names`])]),m(`div`,On,[e.screenPlanMode===`edit`?(l(),h(k,{key:0},[A(i(J),{align:`center`},{default:P(()=>[m(`span`,null,v(s+1),1),A(i(H),{size:`small`,disabled:d.value||s===0,"aria-label":`Поднять шаг ${s+1}`,onClick:e=>o(`moveStep`,s,-1)},{default:P(()=>[...r[16]||=[p(`↑`,-1)]]),_:1},8,[`disabled`,`aria-label`,`onClick`]),A(i(H),{size:`small`,disabled:d.value||s===f.value.length-1,"aria-label":`Опустить шаг ${s+1}`,onClick:e=>o(`moveStep`,s,1)},{default:P(()=>[...r[17]||=[p(`↓`,-1)]]),_:1},8,[`disabled`,`aria-label`,`onClick`]),A(i(H),{size:`small`,type:`error`,ghost:``,disabled:d.value,onClick:e=>o(`removeStep`,s)},{default:P(()=>[...r[18]||=[p(`Удалить`,-1)]]),_:1},8,[`disabled`,`onClick`])]),_:2},1024),A(i(ke),{value:n.mode,"onUpdate:value":[e=>n.mode=e,r[4]||=e=>o(`dirty`)],options:y,disabled:d.value,"input-props":{"aria-label":`Режим шага ${s+1}`}},null,8,[`value`,`onUpdate:value`,`disabled`,`input-props`]),n.mode===`SCREEN_MODE_TEXT`||n.mode===`SCREEN_MODE_QR`?(l(),a(i(K),{key:0,value:n.text,"onUpdate:value":[e=>n.text=e,r[5]||=e=>o(`dirty`)],type:`textarea`,placeholder:`Текст экрана`,disabled:d.value,"input-props":{"aria-label":`Текст шага ${s+1}`}},null,8,[`value`,`onUpdate:value`,`disabled`,`input-props`])):I(``,!0),n.mode===`SCREEN_MODE_QR`?(l(),h(k,{key:1},[m(`label`,{for:`qr-link-${s}`},`Ссылка для QR-кода (обязательно)`,8,kn),A(i(K),{value:n.qrUrl,"onUpdate:value":[e=>n.qrUrl=e,r[6]||=e=>o(`dirty`)],disabled:d.value,"input-props":{id:`qr-link-${s}`},placeholder:`https://example.com`},null,8,[`value`,`onUpdate:value`,`disabled`,`input-props`])],64)):I(``,!0),n.mode===`SCREEN_MODE_TIMER`?(l(),h(k,{key:2},[m(`label`,{for:`timer-type-${s}`},`Тип таймера`,8,An),A(i(ke),{value:n.timerType??`SCREEN_TIMER_TYPE_BREAK`,options:i(pt),disabled:d.value,"input-props":{id:`timer-type-${s}`},"onUpdate:value":e=>b(n,e)},null,8,[`value`,`options`,`disabled`,`input-props`,`onUpdate:value`]),m(`label`,{for:`timer-label-${s}`},`Надпись таймера`,8,jn),A(i(K),{value:n.timerLabel,"onUpdate:value":[e=>n.timerLabel=e,r[7]||=e=>o(`dirty`)],disabled:d.value,"input-props":{id:`timer-label-${s}`}},null,8,[`value`,`onUpdate:value`,`disabled`,`input-props`]),m(`label`,{for:`timer-duration-${s}`},`Длительность в секундах`,8,Mn),A(i(Lt),{value:n.timerDurationSeconds,"onUpdate:value":[e=>n.timerDurationSeconds=e,r[8]||=e=>o(`dirty`)],min:1,max:86400,disabled:d.value,"input-props":{id:`timer-duration-${s}`}},null,8,[`value`,`onUpdate:value`,`disabled`,`input-props`])],64)):I(``,!0)],64)):(l(),h(k,{key:1},[m(`div`,Nn,[m(`span`,null,[p(v(s+1)+`. `+v(y.find(e=>e.value===n.mode)?.label),1),n.mode===`SCREEN_MODE_TEXT`||n.mode===`SCREEN_MODE_QR`?(l(),h(k,{key:0},[p(`: `+v(n.text),1)],64)):I(``,!0),n.mode===`SCREEN_MODE_TIMER`?(l(),h(k,{key:1},[p(`: `+v(n.timerLabel)+` (`+v(n.timerDurationSeconds)+` с)`,1)],64)):I(``,!0)]),A(i(H),{size:`small`,disabled:d.value||e.screenPlan?.currentStep===s||!u.value,onClick:e=>o(`setStep`,s)},{default:P(()=>[p(v(e.screenPlan?.currentStep===s?`Показан`:`Показать`),1)]),_:2},1032,[`disabled`,`onClick`])]),e.screenPlan?.currentStep===s?(l(),h(k,{key:0},[n.mode===`SCREEN_MODE_TIMER`?(l(),a(i(J),{key:0},{default:P(()=>[A(i(H),{square:``,"aria-label":g.value.label,title:g.value.label,disabled:d.value||!u.value,onClick:e=>o(`command`,n.mode,g.value.command)},{default:P(()=>[A(i(B),{size:18},{default:P(()=>[(l(),a(t(g.value.icon)))]),_:1})]),_:1},8,[`aria-label`,`title`,`disabled`,`onClick`]),A(i(H),{square:``,"aria-label":`Сбросить таймер`,title:`Сбросить таймер`,disabled:d.value||!u.value,onClick:e=>o(`command`,n.mode,`SCREEN_COMMAND_TIMER_RESET`)},{default:P(()=>[A(i(B),{size:18},{default:P(()=>[A(i(tn))]),_:1})]),_:1},8,[`disabled`,`onClick`])]),_:2},1024)):n.mode===`SCREEN_MODE_INTRO`||n.mode===`SCREEN_MODE_CONCLUSION`?(l(),h(k,{key:1},[A(i(J),null,{default:P(()=>[(l(),h(k,null,x(_,e=>A(i(H),{key:e.command,square:``,"aria-label":e.label,title:e.label,disabled:d.value||!u.value||!c.value,onClick:t=>o(`command`,n.mode,e.command)},{default:P(()=>[A(i(B),{size:18},{default:P(()=>[(l(),a(t(e.icon)))]),_:2},1024)]),_:2},1032,[`aria-label`,`title`,`disabled`,`onClick`])),64))]),_:2},1024),m(`label`,{id:`main-volume-${s}`},`Громкость`,8,Pn),A(i(Vt),{value:e.screenVolume,min:0,max:100,disabled:d.value||!u.value,"aria-labelledby":`main-volume-${s}`,"format-tooltip":e=>`${e}%`,"onUpdate:value":r[9]||=e=>o(`update:screenVolume`,e),onDragend:e=>o(`command`,n.mode,`SCREEN_COMMAND_VOLUME`),onKeyup:e=>o(`command`,n.mode,`SCREEN_COMMAND_VOLUME`)},null,8,[`value`,`disabled`,`aria-labelledby`,`format-tooltip`,`onDragend`,`onKeyup`])],64)):I(``,!0)],64)):I(``,!0)],64))])],10,En))),128))]),e.screenPlanMode===`edit`?(l(),a(i(J),{key:1},{default:P(()=>[A(i(H),{size:`small`,disabled:d.value,onClick:r[10]||=e=>o(`addStep`)},{default:P(()=>[...r[19]||=[p(`Добавить шаг`,-1)]]),_:1},8,[`disabled`]),A(i(H),{size:`small`,disabled:d.value||!f.value.length,onClick:r[11]||=e=>o(`clearPlan`)},{default:P(()=>[...r[20]||=[p(`Удалить план`,-1)]]),_:1},8,[`disabled`])]),_:1})):I(``,!0)]),_:1}))}}),[[`__scopeId`,`data-v-6e25da79`]]),In=G(n({__name:`ScreenBindingModal`,props:d({binding:{type:Boolean}},{show:{type:Boolean,required:!0},showModifiers:{}}),emits:d([`scanned`],[`update:show`]),setup(e,{emit:t}){let n=ae(e,`show`),r=t,o=F(``),s=F(),u=F(!1),d,f=0;function h(){cancelAnimationFrame(f),d?.getTracks().forEach(e=>e.stop()),d=void 0,u.value=!1}function g(e){try{let t=new URL(e,window.location.origin),n=t.searchParams.get(`screenId`),r=t.searchParams.get(`accessToken`);return t.pathname!==`/screen`||!n||!r?void 0:{screenID:n,accessToken:r}}catch{return}}async function _(){let e=window.BarcodeDetector;if(!e||!navigator.mediaDevices?.getUserMedia){o.value=`Сканирование камерой не поддерживается в этом браузере.`;return}o.value=``;try{if(d=await navigator.mediaDevices.getUserMedia({video:{facingMode:`environment`}}),u.value=!0,await pe(),!s.value)return;s.value.srcObject=d,await s.value.play();let t=new e,i=async()=>{if(!(!s.value||!d))try{let e=(await t.detect(s.value))[0]?.rawValue;if(e){let t=g(e);if(t){h(),n.value=!1,r(`scanned`,t.screenID,t.accessToken);return}o.value=`Это не QR-код экрана.`}f=requestAnimationFrame(i)}catch{o.value=`Не удалось распознать QR-код.`,h()}};f=requestAnimationFrame(i)}catch{o.value=`Не удалось открыть камеру.`,h()}}function y(){h(),n.value=!1}return ne(n,e=>{e?_():h()}),c(h),(t,r)=>(l(),a(i(we),{show:n.value,"onUpdate:show":r[0]||=e=>n.value=e},{default:P(()=>[A(i(Le),{style:{width:`min(600px, 94vw)`},title:`Привязать экран`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":P(()=>[A(i(H),{onClick:y},{default:P(()=>[...r[1]||=[p(` x `,-1)]]),_:1})]),default:P(()=>[A(i(J),{vertical:``},{default:P(()=>[m(`video`,{ref_key:`scannerVideo`,ref:s,class:`screen-scanner-video`,muted:``,playsinline:``},null,512),o.value?(l(),a(i(q),{key:0,type:`error`},{default:P(()=>[p(v(o.value),1)]),_:1})):I(``,!0),!u.value&&!e.binding?(l(),a(i(H),{key:1,type:`primary`,onClick:_},{default:P(()=>[...r[2]||=[p(` Сканировать QR-код `,-1)]]),_:1})):I(``,!0),u.value?(l(),a(i(H),{key:2,onClick:h},{default:P(()=>[...r[3]||=[p(`Остановить камеру`,-1)]]),_:1})):I(``,!0),e.binding?(l(),a(i(H),{key:3,type:`primary`,loading:``},{default:P(()=>[...r[4]||=[p(`Привязка…`,-1)]]),_:1})):I(``,!0)]),_:1})]),_:1})]),_:1},8,[`show`]))}}),[[`__scopeId`,`data-v-5f530845`]]),Ln={key:1,class:`screen-empty`},Rn={class:`screen-status`},zn={key:0,class:`screen-error`},Bn=G(n({__name:`GameScreensPanel`,props:{screens:{},screenBinding:{type:Boolean},isBusy:{type:Boolean}},emits:[`bind`,`setSound`,`unbind`],setup(e,{emit:t}){let n=e,r=t,o=F(!1);return(t,s)=>(l(),h(k,null,[A($,null,{default:P(()=>[A(i(Y),{align:`center`,justify:`space-between`,class:`screen-header`},{default:P(()=>[s[4]||=m(`p`,{class:`screens-title`},`Экраны`,-1),A(i(H),{size:`small`,disabled:e.isBusy||e.screenBinding,onClick:s[0]||=e=>o.value=!0},{default:P(()=>[...s[3]||=[p(` Привязать экран `,-1)]]),_:1},8,[`disabled`])]),_:1}),e.screens.some(e=>e.status===`disconnected`)?(l(),a(i(q),{key:0,type:`warning`,title:`Проверьте подключение экрана`},{default:P(()=>[...s[5]||=[p(` Один или несколько экранов не выходят на связь более минуты. `,-1)]]),_:1})):I(``,!0),e.screens.length===0?(l(),h(`p`,Ln,`К игре пока не привязаны экраны.`)):(l(!0),h(k,{key:2},x(e.screens,t=>(l(),h(`div`,{key:t.ID,class:`screen-row`},[m(`div`,null,[m(`div`,null,`Экран `+v(t.ID),1),m(`div`,Rn,v(t.status===`connected`?`Онлайн`:`Оффлайн`),1),t.error?(l(),h(`div`,zn,v(t.error),1)):I(``,!0)]),A(i(Y),{justify:`end`},{default:P(()=>[t.soundEnabled?(l(),a(i(z),{key:0,type:`success`},{default:P(()=>[...s[6]||=[p(`Со звуком`,-1)]]),_:1})):(l(),a(i(H),{key:1,size:`small`,disabled:e.isBusy,onClick:e=>r(`setSound`,t)},{default:P(()=>[...s[7]||=[p(`Назначить звук`,-1)]]),_:1},8,[`disabled`,`onClick`])),A(i(H),{size:`small`,type:`error`,ghost:``,disabled:e.isBusy,onClick:e=>r(`unbind`,t)},{default:P(()=>[...s[8]||=[p(` Отвязать `,-1)]]),_:1},8,[`disabled`,`onClick`])]),_:2},1024)]))),128))]),_:1}),A(In,{show:o.value,"onUpdate:show":s[1]||=e=>o.value=e,binding:n.screenBinding,onScanned:s[2]||=(e,t)=>r(`bind`,e,t)},null,8,[`show`,`binding`])],64))}}),[[`__scopeId`,`data-v-361cce15`]]),Vn={key:0},Hn={key:3},Un={key:4},Wn={key:0},Gn={key:2},Kn={key:0},qn={class:`device-details`},Jn={key:0},Yn={key:1},Xn=G(n({__name:`GameStatePanel`,props:{devices:{},wifi:{},serverTime:{},isLoading:{type:Boolean},hasError:{type:Boolean},summary:{}},emits:[`reload`],setup(e){let t={browser:`Браузер`,organizer:`Организатор`,team:`Команда`,screen:`Экран`};return(n,r)=>(l(),h(k,null,[A($,null,{default:P(()=>[A(i(Y),null,{default:P(()=>[A(i(z),{type:`success`},{default:P(()=>[p(`Доступны: `+v(e.summary.connected),1)]),_:1}),A(i(z),{type:`warning`},{default:P(()=>[p(`Нет связи: `+v(e.summary.disconnected),1)]),_:1}),A(i(z),null,{default:P(()=>[p(`Подключения: `+v(e.summary.connections),1)]),_:1})]),_:1}),e.serverTime?(l(),h(`p`,Vn,`Последнее обновление: `+v(i(gt)(e.serverTime)),1)):I(``,!0),r[2]||=m(`p`,null,`«Нет связи» означает отсутствие heartbeat сайта. UUID обозначает браузерный профиль.`,-1),e.hasError?(l(),a(i(q),{key:1,type:`error`,title:`Не удалось обновить состояние`},{default:P(()=>[A(i(H),{loading:e.isLoading,onClick:r[0]||=e=>n.$emit(`reload`)},{default:P(()=>[...r[1]||=[p(`Повторить`,-1)]]),_:1},8,[`loading`])]),_:1})):I(``,!0),e.isLoading&&!e.serverTime?(l(),a(i(He),{key:2})):!e.hasError&&!e.serverTime&&!e.isLoading?(l(),h(`p`,Hn,`Загружаем состояние…`)):e.serverTime&&!e.devices.length?(l(),h(`p`,Un,`Устройства этой игры пока не зарегистрированы`)):I(``,!0)]),_:1}),A($,null,{default:P(()=>[r[4]||=m(`h3`,null,`Wi-Fi площадки`,-1),r[5]||=m(`p`,null,` Все Wi-Fi-клиенты Cudy, независимо от выбранной игры. MAC устройства и UUID браузера различаются. `,-1),e.wifi?.enabled?(l(),h(k,{key:1},[e.wifi.hasError?(l(),a(i(q),{key:0,type:`warning`,role:`alert`,title:`Не удалось обновить данные Cudy`})):I(``,!0),e.wifi.stale?(l(),a(i(z),{key:1,type:`warning`},{default:P(()=>[...r[3]||=[p(`Данные устарели`,-1)]]),_:1})):I(``,!0),e.wifi.collectedAt?(l(),h(`p`,Gn,` Последний снимок Cudy: `+v(i(gt)(e.wifi.collectedAt)),1)):I(``,!0),e.wifi.collectedAt?(l(),h(k,{key:3},[m(`p`,null,`Wi-Fi-клиентов: `+v(e.wifi.clients?.length||0),1),e.wifi.clients?.length?I(``,!0):(l(),h(`p`,Kn,`Wi-Fi-клиенты пока не подключены`)),(l(!0),h(k,null,x(e.wifi.clients,e=>(l(),h(`div`,{key:e.MAC,class:`connection device-details`},[m(`strong`,null,v(e.MAC),1),m(`p`,null,`IP: `+v(e.IP||`—`)+` · `+v(e.band),1),m(`p`,null,`Сигнал: `+v(e.signal===void 0?`Нет данных`:`${e.signal} dBm`),1)]))),128))],64)):I(``,!0)],64)):(l(),h(`p`,Wn,`Сбор данных Cudy не настроен`))]),_:1}),(l(!0),h(k,null,x(e.devices,e=>(l(),a($,{key:e.ID},{default:P(()=>[m(`div`,qn,[m(`strong`,null,v(e.ID),1),m(`p`,null,[A(i(z),{type:e.connected?`success`:`warning`},{default:P(()=>[p(v(e.connected?`Доступно`:`Нет связи`),1)]),_:2},1032,[`type`])]),m(`p`,null,`Последнее обращение: `+v(i(gt)(e.lastSeenAt)||`—`),1),A(i(Ct),null,{default:P(()=>[A(i(Tt),{title:`Подключения`,name:e.ID||``},{default:P(()=>[(l(!0),h(k,null,x(e.connections,e=>(l(),h(`div`,{key:e.ID,class:`connection`},[m(`strong`,null,v(t[e.kind||``]||e.kind),1),e.teamID?(l(),h(`p`,Jn,`ID команды: `+v(e.teamID),1)):I(``,!0),e.screenID?(l(),h(`p`,Yn,`ID экрана: `+v(e.screenID),1)):I(``,!0),m(`p`,null,v(e.connected?`Доступно`:`Нет связи`),1),m(`p`,null,`Последнее обращение: `+v(i(gt)(e.lastSeenAt)||`—`),1),m(`p`,null,`IP: `+v(e.IP||`—`),1),m(`p`,null,`User-Agent: `+v(e.userAgent||`—`),1)]))),128))]),_:2},1032,[`name`])]),_:2},1024)])]),_:2},1024))),128))],64))}}),[[`__scopeId`,`data-v-a670747a`]]),Zn={class:`team-content-block`},Qn={class:`title-block`},$n={class:`team-name-block`},er={key:0},tr={key:1},nr={key:0},rr={key:0},ir={key:1},ar={key:2},or={key:3},sr={key:4},cr=G(n({__name:`GameTeamsPanel`,props:{teams:{},canPrintReceipts:{type:Boolean},participationOptions:{}},emits:[`add`,`open-qr`,`print`,`preview`,`delete`,`give-application`],setup(e,{emit:t}){let n=t;return(t,r)=>(l(),h(k,null,[A($,{class:`team-block-hover`,onClick:r[0]||=e=>n(`add`)},{default:P(()=>[...r[1]||=[m(`p`,{class:`place-image-plus`},`+`,-1)]]),_:1}),(l(!0),h(k,null,x(e.teams,t=>(l(),a($,{key:t.ID},{default:P(()=>[m(`div`,Zn,[A(i(Y),{justify:`space-between`},{default:P(()=>[m(`div`,Qn,[m(`span`,$n,[p(v(t.name)+` `,1),t.captainEmail?(l(),h(`small`,er,` — `+v(t.captainEmail),1)):I(``,!0),t.participantsCount?(l(),h(`small`,tr,` · Участников: `+v(t.participantsCount),1)):I(``,!0)]),t.captainEmail||t.participationStatus!==`pending`?(l(),h(`div`,nr,[p(v(e.participationOptions.find(e=>e.value===t.participationStatus)?.label),1),t.participationSource===`automatic`?(l(),h(`span`,rr,` · автоматически`)):I(``,!0)])):I(``,!0),t.captainEmail?t.participationEmailError?(l(),h(`div`,ar,` Ошибка отправки: `+v(t.participationEmailError),1)):t.participationEmailSent?(l(),h(`div`,or,`Письмо отправлено`)):I(``,!0):(l(),h(`div`,ir,`Почта капитана не указана`)),t.participationStatus===`cancelled`?I(``,!0):(l(),h(`div`,sr,` Поездки: `+v(t.actionsCount),1))]),A(i(Y),{justify:`end`},{default:P(()=>[e.canPrintReceipts&&t.participationStatus!==`cancelled`?(l(),a(i(H),{key:0,onClick:e=>n(`print`,t)},{default:P(()=>[...r[2]||=[p(` Печать чека `,-1)]]),_:1},8,[`onClick`])):I(``,!0),t.participationStatus===`cancelled`?I(``,!0):(l(),a(i(H),{key:1,onClick:e=>n(`open-qr`,t)},{default:P(()=>[...r[3]||=[p(`QR`,-1)]]),_:1},8,[`onClick`])),t.participationStatus===`cancelled`?I(``,!0):(l(),a(i(H),{key:2,onClick:e=>n(`preview`,t.ID,t.password)},{default:P(()=>[...r[4]||=[p(`Подсмотреть игру`,-1)]]),_:1},8,[`onClick`])),A(i(H),{type:`error`,ghost:``,onClick:e=>n(`delete`,t)},{default:P(()=>[...r[5]||=[p(`Удалить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024),(l(!0),h(k,null,x(t.applications,e=>(l(),a(i(H),{key:e.name,class:`link-button`,onClick:r=>n(`give-application`,t,e)},{default:P(()=>[p(` Выдать: `+v(e.name),1)]),_:2},1032,[`onClick`]))),128))])]),_:2},1024))),128))],64))}}),[[`__scopeId`,`data-v-70e02c3e`]]),lr=[`src`,`alt`],ur={key:2},dr=G(n({__name:`TeamReceiptModal`,props:{show:{type:Boolean},name:{},preview:{},preparationError:{},isPreparing:{type:Boolean},isPrinting:{type:Boolean}},emits:[`update:show`,`print`],setup(e,{emit:t}){let n=t;return(t,r)=>(l(),a(i(we),{show:e.show,"mask-closable":!e.isPrinting,"close-on-esc":!e.isPrinting,"onUpdate:show":r[2]||=e=>n(`update:show`,e)},{default:P(()=>[A(i(Le),{class:`receipt-modal`,title:`Чек команды`,role:`dialog`,"aria-modal":`true`},{default:P(()=>[e.preparationError?(l(),a(i(q),{key:0,type:`error`},{default:P(()=>[p(v(e.preparationError),1)]),_:1})):e.preview?(l(),h(`img`,{key:1,class:`receipt-preview`,src:e.preview,alt:`Чек команды ${e.name}`},null,8,lr)):e.isPreparing?(l(),h(`p`,ur,`Подготовка чека…`)):I(``,!0),r[5]||=m(`p`,null,`Включите MXW01 рядом с сервером площадки. Сервер напечатает один чек.`,-1),A(i(Y),{justify:`end`},{default:P(()=>[A(i(H),{disabled:e.isPrinting,onClick:r[0]||=e=>n(`update:show`,!1)},{default:P(()=>[...r[3]||=[p(`Закрыть`,-1)]]),_:1},8,[`disabled`]),A(i(H),{type:`primary`,loading:e.isPrinting,disabled:!e.preview||e.isPreparing||e.isPrinting,onClick:r[1]||=e=>n(`print`)},{default:P(()=>[...r[4]||=[p(`Печатать`,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1},8,[`show`,`mask-closable`,`close-on-esc`]))}}),[[`__scopeId`,`data-v-f0b8d644`]]),fr={key:0},pr={key:1},mr={key:2},hr=G(n({__name:`TicketCheckModal`,props:{show:{type:Boolean,required:!0},showModifiers:{}},emits:[`update:show`],setup(e){let t=ae(e,`show`),n=Ze(),r=be(),o=F(``),s=F(),u=F(``),d=F(!1),f=F(),g=F(!1),_,y=0,b=L(()=>{try{return new URL(o.value.trim()).pathname.match(/\/tickets\/([^/]+)/)?.[1]||``}catch{return o.value.trim()}});async function x(){if(!(!b.value||d.value)){d.value=!0,u.value=``,s.value=void 0;try{let e=await n.GetTicket({token:b.value});e.ticket?s.value=e.ticket:u.value=`Билет не найден`}catch(e){u.value=e instanceof Error?e.message:`Не удалось проверить билет`}finally{d.value=!1}}}async function S(){if(!(!b.value||d.value)){d.value=!0,u.value=``;try{let e=await n.AcceptTicket({token:b.value});e.ticket?(s.value=e.ticket,r.success(`Билет принят`)):u.value=`Не удалось принять билет`}catch(e){u.value=e instanceof Error?e.message:`Не удалось принять билет`}finally{d.value=!1}}}async function C(){let e=window.BarcodeDetector;if(!e||!navigator.mediaDevices?.getUserMedia){u.value=`Сканирование камерой не поддерживается. Введите ссылку вручную.`;return}u.value=``;try{if(_=await navigator.mediaDevices.getUserMedia({video:{facingMode:`environment`}}),g.value=!0,await pe(),!f.value)return;f.value.srcObject=_,await f.value.play();let t=new e,n=async()=>{if(!(!g.value||!f.value))try{let e=(await t.detect(f.value))[0]?.rawValue;if(e){o.value=e,w(),await x();return}y=requestAnimationFrame(n)}catch{u.value=`Не удалось распознать QR-код.`,w()}};y=requestAnimationFrame(n)}catch{u.value=`Не удалось открыть камеру. Введите ссылку вручную.`,w()}}function w(){cancelAnimationFrame(y),_?.getTracks().forEach(e=>e.stop()),_=void 0,g.value=!1}function T(){w(),t.value=!1}return ne(t,e=>{e?C():w()}),c(w),(e,n)=>(l(),a(i(we),{show:t.value,"onUpdate:show":n[1]||=e=>t.value=e},{default:P(()=>[A(i(Le),{style:{width:`min(600px, 94vw)`},title:`Проверка билета`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":P(()=>[A(i(H),{onClick:T},{default:P(()=>[...n[2]||=[p(` x `,-1)]]),_:1})]),default:P(()=>[A(i(J),{vertical:``},{default:P(()=>[g.value?(l(),h(`video`,{key:0,ref_key:`video`,ref:f,class:`ticket-scanner-video`,muted:``,playsinline:``},null,512)):I(``,!0),u.value?(l(),a(i(q),{key:1,type:`error`},{default:P(()=>[p(v(u.value),1)]),_:1})):I(``,!0),g.value?(l(),a(i(H),{key:3,onClick:w},{default:P(()=>[...n[4]||=[p(`Остановить камеру`,-1)]]),_:1})):(l(),a(i(H),{key:2,onClick:C},{default:P(()=>[...n[3]||=[p(`Сканировать QR-код`,-1)]]),_:1})),A(i(K),{value:o.value,"onUpdate:value":n[0]||=e=>o.value=e,placeholder:`Или вставьте ссылку на билет`,onKeyup:it(x,[`enter`])},null,8,[`value`]),A(i(H),{type:`primary`,loading:d.value,onClick:x},{default:P(()=>[...n[5]||=[p(` Проверить билет `,-1)]]),_:1},8,[`loading`]),s.value?(l(),h(k,{key:4},[A(i(q),{type:s.value.status===`active`?`success`:`warning`},{default:P(()=>[p(v(s.value.gameName),1),n[6]||=m(`br`,null,null,-1),p(` Статус: `+v(s.value.status===`active`?`действителен`:`уже использован`)+` `,1),s.value.usedBy?(l(),h(`span`,fr,` · `+v(s.value.usedBy),1)):I(``,!0),s.value.usedAt?(l(),h(`br`,pr)):I(``,!0),s.value.usedAt?(l(),h(`span`,mr,`Использован: `+v(i(gt)(s.value.usedAt)),1)):I(``,!0)]),_:1},8,[`type`]),s.value.status===`active`&&s.value.gameStatus!==`finish`?(l(),a(i(H),{key:0,type:`primary`,loading:d.value,onClick:S},{default:P(()=>[...n[7]||=[p(` Принять билет `,-1)]]),_:1},8,[`loading`])):I(``,!0)],64)):I(``,!0)]),_:1})]),_:1})]),_:1},8,[`show`]))}}),[[`__scopeId`,`data-v-fe322487`]]);function gr(e,t){let n=Ze(),r=F([]),i=F(),a=F(),o=F(!1),s=F(!1),c=0,l=!1,u=!1,d=L(()=>({connected:r.value.filter(e=>e.connected).length,disconnected:r.value.filter(e=>!e.connected).length,connections:r.value.reduce((e,t)=>e+(t.connections?.length||0),0)}));async function f(){if(!t()||l||u)return;let d=c,p=e();u=!0,o.value=!0;try{let e=await n.GetDevices({gameID:p});if(l||!t()||d!==c)return;r.value=[...e.devices||[]].sort((e,t)=>Number(!!e.connected)-Number(!!t.connected)||(e.ID||``).localeCompare(t.ID||``)),i.value=e.wifi,a.value=e.serverTime,s.value=!1}catch{!l&&t()&&d===c&&(s.value=!0)}finally{u=!1,!l&&d===c&&(o.value=!1),!l&&t()&&d!==c&&f()}}return ne([e,t],([e],[n])=>{c++,o.value=!1,e!==n&&(r.value=[],i.value=void 0,a.value=void 0,s.value=!1),t()&&f()},{flush:`sync`}),at(()=>{f()},5e3),te(()=>{l=!0,c++}),{devices:r,wifi:i,serverTime:a,isLoading:o,hasError:s,summary:d,reload:f}}function _r(e,t){let n=new Set(e.flatMap(e=>(e.applications||[]).map(t=>JSON.stringify([e.ID,t.name]))));return t.some(e=>e.applications?.some(t=>!n.has(JSON.stringify([e.ID,t.name]))))}var vr={class:`center-block-custom`},yr={class:`width1200`},br={class:`game-tab-content`},xr=[`href`],Sr={class:`game-tab-content`},Cr={key:1,role:`status`},wr={class:`screen-overview`},Tr={key:1,class:`screen-preview-placeholder`},Er={class:`presentation-grid`},Dr={class:`game-tab-content`},Or={class:`game-tab-content`},kr={class:`qr-block`},Ar={class:`game-tab-content`},jr={key:2},Mr={key:3,class:`answer-results-scroll`},Nr={key:0,class:`answers-empty`},Pr={class:`answers-team-name`},Fr={class:`answers-question-title`},Ir={class:`answers-question-answer`},Lr={class:`correct-answer`},Rr={class:`answers-team-row`},zr={class:`answers-team-answer`},Br={key:0,class:`give-application-image-block`},Vr=[`src`],Hr=[`src`],Ur=[`href`],Wr={class:`qr-block`},Gr={key:0,class:`answers-empty`},Kr=`https://www.sberbank.ru/ru/choise_bank?requisiteNumber=79609361994&bankCode=100000000111`,qr=G(n({__name:`GamePage`,emits:[`resultsApplied`],setup(e,{emit:t}){let n=t,r=Ze(),o=ct(),c=F(!1),d=F(!1),f=O(),g=le(),_=g.params.id;function y(e){return[`settings`,`screens`,`game`,`payment`,`answers`,`state`].includes(e)}let b=typeof g.query.tab==`string`?g.query.tab:``,S=F(y(b)?b:`game`);async function C(e){!y(e)||(e===`state`?!Ie.value:!U.value)||(S.value=e,await f.replace({query:{...g.query,tab:e}}))}function w(e){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),C(`state`))}let T=be(),E=F({name:``,description:``,format:`online`,location:``,wifiName:``,wifiPassword:``}),D=F(!1),ee=F(!1),te=F(!1),re=F(!1),ie=F(!1),ae=F(!1),j=F(``),M=F(``),oe=F(1),se=F(``),N=F(!1),ce=F(``),ue=F(``),de=F(!1),fe=F({name:``,teamID:``}),pe=F(!1),me=F(!1),R=F(``),he=F(``),ge=0,_e=F(!1),ve=F(1),ye=F([]),Se=F(!1),Ce=F(!1),V=F({ID:void 0,name:void 0,description:void 0,startAt:void 0,status:void 0,format:void 0,location:void 0,scenario:void 0,teams:void 0,export:void 0,wifiName:void 0,wifiPassword:void 0}),Te=tt(),Ee=xe(),U=L(()=>Te.hasAnyRole([`admin`,`organizer`,`author`])),W=0,Ae=0,je=!1,Me=!1,G,Pe,Fe=!1,Ie=L(()=>Ee.environment===`venue`&&Te.hasAnyRole([`admin`,`organizer`,`developer`])),ze=L(()=>Ie.value&&!U.value);_t(()=>U.value?{organizerGameID:Number(_)}:{});let{devices:He,wifi:We,serverTime:Ge,isLoading:Ke,hasError:qe,summary:Je,reload:Ye}=gr(()=>Number(g.params.id),()=>Ie.value&&S.value===`state`);ne([()=>g.query.tab,Ie,U],()=>{let e=typeof g.query.tab==`string`?g.query.tab:``;S.value=ze.value?`state`:y(e)&&(e!==`state`||Ie.value)?e:`game`,ze.value&&e!==`state`&&f.replace({query:{...g.query,tab:`state`}})},{immediate:!0}),ne(ze,e=>{e&&(V.value={ID:void 0,name:void 0,description:void 0,startAt:void 0,status:void 0,format:void 0,location:void 0,scenario:void 0,teams:void 0,export:void 0,wifiName:void 0,wifiPassword:void 0},dn(Number(_)))},{immediate:!0});let Xe=L(()=>Number(V.value.ID)>0&&Ee.environment===`prod`&&Te.hasAnyRole([`admin`,`organizer`,`developer`])),Qe=F(!1),$e=F(!1),et=L(()=>Xe.value&&(V.value.export?.state===`preparing`||V.value.export?.state===`ready`)),X=F(!1),nt=F(!1),rt=F(``),it=L(()=>Ee.environment===`venue`&&V.value.status===`finish`&&Te.hasAnyRole([`admin`,`organizer`,`developer`])),ot=F(!1),ft=F(!1),pt=F([]),vt=F(``),yt=[{label:`Ожидает ответа`,value:`pending`},{label:`Подтверждено`,value:`confirmed`},{label:`Отменено`,value:`cancelled`}],bt=L(()=>(V.value.teams||[]).filter(e=>e.participationStatus!==`cancelled`).length),xt=F([]),St=F([]),Ct=F(),wt=F(!1),Tt=0,Et=Date.now(),{saveGroup:Dt,deleteGroup:Ot,reorderGroups:kt,setTrackGroup:At,createPlaylist:jt,renamePlaylist:Mt,reorderTracks:Nt,deletePlaylist:Pt,uploadTrack:Ft,deleteTrack:It}=Be(wt,()=>mn(!0),()=>{Tt+=1}),Z=F(!1),Rt=F(!0),zt=F(``),Bt=F(),Q=F([]),Vt=F(!1),Ht=F(!1),Wt=F(`use`),Gt=0,Kt=F([]),Jt=F([]),Xt=F(),Qt=F([]),$t=F(!1),en=F(!1),nn=F(100),rn=L(()=>xt.value.find(e=>e.status===`connected`)||xt.value[0]);ne(()=>rn.value?.volume,e=>{nn.value=e??100});function an(e){Me||Fe||(Fe=!0,T.warning(`Не удалось включить звуковые уведомления о выдаче улик`),console.error(`Звуковое уведомление о выдаче улик`,e))}async function cn(){if(!(!U.value||Me))try{G??=new AudioContext,G.state===`suspended`&&await G.resume();let e=G;Pe??=fetch(sn).then(async t=>{if(!t.ok)throw Error(`Не удалось загрузить звук уведомления`);return e.decodeAudioData(await t.arrayBuffer())}),await Pe}catch(e){Pe=void 0,an(e)}}async function ln(){if(!(!G||G.state!==`running`||!Pe))try{let e=await Pe;if(Me||G.state!==`running`)return;let t=G.createBufferSource();t.buffer=e,t.connect(G.destination),t.onended=()=>t.disconnect(),t.start()}catch(e){an(e)}}async function un(){await cn(),await ln()}s(()=>{window.addEventListener(`click`,cn),window.addEventListener(`keydown`,cn)}),u(()=>{Me=!0,ge++,fr(),window.removeEventListener(`click`,cn),window.removeEventListener(`keydown`,cn),G?.close().catch(e=>{console.error(`Закрытие звуковых уведомлений`,e)})});async function dn(e){let t=++W,n=U.value,i=await r.GetGame({ID:e});Me||n!==U.value||t{let n=0;(e.applications?.length||0)>0&&(n=1);let r=0;if((t.applications?.length||0)>0&&(r=1),n>r)return-1;if(na?1:ie.mode===`SCREEN_MODE_TEAMS`)){let e=await r.GetGame({ID:Number(_)});Xt.value=(e.game?.teams??[]).filter(e=>e.participationStatus!==`cancelled`).map(e=>e.name??``).sort((e,t)=>e.localeCompare(t,`ru`))}if((Wt.value===`edit`?Q.value:Bt.value?.steps)?.some(e=>e.mode===`SCREEN_MODE_RESULTS`)||rn.value?.mode===`SCREEN_MODE_RESULTS`){let e=await r.GetGameResults({gameID:Number(_)});Kt.value=e.questions||[],Jt.value=e.teams||[]}}catch(e){zt.value=e instanceof Error?e.message:`Не удалось получить состояние экранов`}finally{Rt.value=!1}}U.value&&fn();async function mn(e=!1){if(wt.value&&!e)return;let t=++Tt;try{let e=await r.GetGameMusic({gameID:Number(_)});if(t!==Tt)return;St.value=e.playlists||[],Ct.value=e.state,Et=Date.now()}catch(e){T.error(e instanceof Error?e.message:`Не удалось получить музыку игры`)}}U.value&&mn();function hn(){return Wt.value===`edit`}async function gn(){if(hn()||Vt.value||Z.value)return;let e=++Gt;try{let t=await r.GetScreenPlan({gameID:Number(_)});if(e!==Gt||hn()||Z.value||Vt.value)return;Bt.value=t.plan,Q.value=t.plan?.steps?.map(e=>({...e}))||[]}catch(e){T.error(e instanceof Error?e.message:`Не удалось получить план экранов`)}}U.value&&gn();function _n(){Q.value.push({mode:`SCREEN_MODE_TEXT`,text:`Новый экран`,timerLabel:`Перерыв`,timerDurationSeconds:600,qrUrl:``,timerType:`SCREEN_TIMER_TYPE_BREAK`}),Vt.value=!0,Wt.value=`edit`}function vn(){Bt.value&&(Q.value=Bt.value.steps?.map(e=>({...e}))||[],Wt.value=`edit`)}function yn(){Vt.value&&!window.confirm(`Отменить несохранённые изменения плана?`)||(Q.value=Bt.value?.steps?.map(e=>({...e}))||[],Vt.value=!1,Wt.value=`use`)}function bn(e){Q.value.splice(e,1),Vt.value=!0}function xn(e,t){let n=e+t;if(n<0||n>=Q.value.length)return;let[r]=Q.value.splice(e,1);Q.value.splice(n,0,r),Vt.value=!0}function Sn(){Vt.value=!0}function wn(){Q.value=[],Sn()}async function Tn(){if(Ht.value)return;let e=Q.value.findIndex(e=>e.mode===`SCREEN_MODE_TEXT`&&!e.text?.trim()||e.mode===`SCREEN_MODE_QR`&&!dt(e.qrUrl,e.text)||e.mode===`SCREEN_MODE_TIMER`&&(!Number.isInteger(e.timerDurationSeconds)||(e.timerDurationSeconds??0)<1||(e.timerDurationSeconds??0)>86400));if(e!==-1){T.error(`Проверьте ссылку QR, текст или длительность таймера в шаге ${e+1}`);return}Gt+=1,Ht.value=!0;try{let e=Math.min(Bt.value?.currentStep||0,Math.max(0,Q.value.length-1)),t=await r.SaveScreenPlan({gameID:Number(_),steps:Q.value,currentStep:e});Bt.value=t.plan,Q.value=t.plan?.steps?.map(e=>({...e}))||[],Vt.value=!1,Wt.value=`use`,T.success(t.plan?`План экранов сохранён`:`План экранов удалён`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось сохранить план экранов`)}finally{Ht.value=!1}}async function En(e){if(!(Vt.value||!Bt.value||Z.value||Ht.value)){Z.value=!0,Gt+=1;try{let t=await r.SetScreenPlanStep({gameID:Number(_),currentStep:e});Bt.value=t.plan,await fn()}catch(e){T.error(e instanceof Error?e.message:`Не удалось перейти на шаг плана`)}finally{Z.value=!1}}}async function Dn(e,t){if(!(Z.value||Ht.value||Vt.value||e!==`SCREEN_MODE_TIMER`&&e!==`SCREEN_MODE_INTRO`&&e!==`SCREEN_MODE_CONCLUSION`)){Z.value=!0;try{await r.SendScreenCommand({gameID:Number(_),command:t,positionMs:0,volume:Math.max(0,Math.min(100,Math.round(nn.value)))}),await fn()}catch(e){T.error(e instanceof Error?e.message:`Не удалось управлять экраном`)}finally{Z.value=!1}}}async function On(e,t){if(!Ce.value){Ce.value=!0;try{await r.BindScreen({screenID:e,accessToken:t,gameID:Number(_),initializeAudio:!1}),T.success(`Экран привязан к игре`),await fn()}catch(e){T.error(e instanceof Error?e.message:`Не удалось привязать экран`)}finally{Ce.value=!1}}}async function kn(){if($t.value||en.value)return;let e=await r.GetGameMap({gameID:Number(_)});$t.value||en.value||(Qt.value=e.items||[])}U.value&&kn();async function An(e,t=e.hidden){$t.value=!0;try{await r.UpdateGameMapItem({gameID:Number(_),kind:e.kind,itemID:e.itemID,x:Math.round(e.x||0),y:Math.round(e.y||0),hidden:t})}finally{$t.value=!1}}async function jn(e,t=e.hidden){await An(e,t),await kn()}async function Mn(e){if(!Z.value){Z.value=!0;try{await r.SetScreenSound({screenID:e.ID,soundEnabled:!0}),await fn()}catch(e){T.error(e instanceof Error?e.message:`Не удалось назначить звук`)}finally{Z.value=!1}}}async function Nn(e){if(wt.value)return;wt.value=!0,Tt+=1;let t=Ct.value;try{let n=await r.SetGameMusic({gameID:Number(_),playlistID:e.playlistID??t?.playlist?.ID??0,groupId:e.groupId??(e.playlistID===void 0?t?.groupId??0:0),trackIndex:e.trackIndex??t?.trackIndex??0,positionMs:e.positionMs??Number(t?.positionMs??0)+(t?.playback===`MUSIC_PLAYBACK_PLAYING`?Math.max(0,Date.now()-Et):0),volume:e.volume??t?.volume??100,loop:e.loop??t?.loop??!1,playback:e.playback??t?.playback??`MUSIC_PLAYBACK_STOPPED`});Ct.value=n.state,Et=Date.now()}catch(e){T.error(e instanceof Error?e.message:`Не удалось изменить музыку`)}finally{wt.value=!1}}async function Pn(e){if(!Z.value){Z.value=!0;try{await r.UnbindScreen({screenID:e.ID}),await fn()}catch(e){T.error(e instanceof Error?e.message:`Не удалось отвязать экран`)}finally{Z.value=!1}}}async function In(e,t,n=!1){let r=`/team-story/`+e+`?password=`+t;if(n){window.open(r,`_blank`);return}f.push(r)}async function Ln(){if(!(!Xe.value||Qe.value||X.value)){Qe.value=!0;try{let e=await r.StartGameExport({ID:V.value.ID});V.value.export=e.export}catch(e){T.error(e instanceof Error?e.message:`Не удалось подготовить пакет`)}finally{Qe.value=!1}}}function Rn(){!et.value||Qe.value||X.value||(rt.value=V.value.export?.ID||``,nt.value=!0)}async function zn(){if(!(!Xe.value||!rt.value||X.value)){X.value=!0;try{await r.ResetGameLocalMode({ID:V.value.ID,exportID:rt.value}),nt.value=!1,await dn(Number(V.value.ID)),T.success(`Локальный режим сброшен`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось сбросить локальный режим`)}finally{X.value=!1}}}async function Vn(){if(!(!Xe.value||$e.value||V.value.export?.state!==`ready`)){$e.value=!0;try{let{blob:e,filename:t}=await o.downloadGamePackage(V.value.ID),n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),1e3)}catch(e){T.error(e instanceof Error?e.message:`Не удалось скачать пакет`)}finally{$e.value=!1}}}function Hn({fileList:e}){ft.value||(pt.value=e.slice(-1),vt.value=``)}async function Un(){if(!(!it.value||ot.value)){ot.value=!0;try{let{blob:e,filename:t}=await o.downloadGameResultsPackage(V.value.ID),n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),1e3)}catch(e){T.error(e instanceof Error?e.message:`Не удалось скачать результаты`)}finally{ot.value=!1}}}async function Wn(){if(!Xe.value||ft.value)return;let e=pt.value[0]?.file;if(!e||e.size===0){vt.value=`Выберите непустой ZIP-файл`;return}if(!e.name.toLowerCase().endsWith(`.zip`)){vt.value=`Выберите файл с расширением .zip`;return}if(e.size>1024**3){vt.value=`Размер пакета не должен превышать 1 ГиБ`;return}ft.value=!0,vt.value=``;try{await o.applyGameResultsPackage(V.value.ID,e),T.success(`Результаты приняты`),n(`resultsApplied`)}catch(e){vt.value=e instanceof Error?e.message:`Не удалось применить результаты`}finally{ft.value=!1}}async function Gn(){let e=V.value.ID;if(!(!U.value||!e||d.value)){d.value=!0;try{let{blob:t,filename:n}=await o.downloadGamePrintMaterials(e),r=URL.createObjectURL(t),i=document.createElement(`a`);i.href=r,i.download=n,document.body.appendChild(i),i.click(),i.remove(),setTimeout(()=>URL.revokeObjectURL(r),1e3)}catch(e){T.error(e instanceof Error?e.message:`Не удалось скачать материалы для печати`)}finally{d.value=!1}}}async function Kn(){if(!(c.value||!V.value.teams?.length)){c.value=!0;try{let{blob:e,filename:t}=await o.downloadTeamQR(V.value.ID),n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),1e3)}catch(e){T.error(e instanceof Error?e.message:`Не удалось скачать QR команд`)}finally{c.value=!1}}}function qn(){f.push(`/games/`+_+`/results`)}async function Jn(){if(!D.value){if(new TextEncoder().encode(E.value.wifiName).length>32||/[\p{Cc}\p{Cf}\p{Zl}\p{Zp}]/u.test(E.value.wifiName)){T.error(`Название Wi-Fi — до 32 байт UTF-8, без управляющих символов`);return}if(!/^[\x20-\x7e]{0,64}$/.test(E.value.wifiPassword)){T.error(`Пароль Wi-Fi — до 64 печатных ASCII-символов`);return}D.value=!0;try{await r.UpdateGame({ID:V.value.ID,name:E.value.name,description:E.value.description,format:E.value.format,location:E.value.location.trim(),wifiName:E.value.wifiName,wifiPassword:E.value.wifiPassword,startAt:V.value.startAt,scenarioID:V.value.scenario?.ID}),await dn(V.value.ID),T.success(`Настройки игры сохранены`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось сохранить настройки игры`)}finally{D.value=!1}}}let Yn=F({ID:``,name:``,status:``,password:``,actionsCount:0,applications:[],captainEmail:void 0,participantsCount:void 0,participationStatus:void 0,participationSource:void 0,participationEmailError:void 0,participationEmailSent:void 0}),Zn=F(``),Qn=F({ID:``,name:``,status:``,password:``,actionsCount:0,applications:[],captainEmail:void 0,participantsCount:void 0,participationStatus:void 0,participationSource:void 0,participationEmailError:void 0,participationEmailSent:void 0}),$n=F({name:``,image:``,file_type:``}),er=window.location.href;function tr(e,t){Yn.value=e,$n.value=t,te.value=!0}async function nr(){if(oe.value<1||oe.value>8){T.error(`Укажите от 1 до 8 игроков`);return}await r.AddTeam({gameID:V.value.ID,name:j.value,captainEmail:M.value.trim(),participantsCount:oe.value}),await dn(V.value.ID),re.value=!1,M.value=``,oe.value=1}async function rr(){await r.GiveTeamApplications({ID:Yn.value.ID,name:$n.value.name}),await dn(V.value.ID),te.value=!1}async function ir(e){Qn.value=e,ie.value=!0}async function ar(){await r.DeleteTeam({ID:Qn.value.ID}),await dn(V.value.ID),ie.value=!1}async function or(){await r.DeleteGame({ID:V.value.ID}),T.success(`Игра удалена`),f.push(`/games`)}function sr(e,t){let n=new URL(`/team-story/${e}`,window.location.origin);return n.searchParams.set(`password`,t),n.toString()}function lr(e){qr(sr(e.ID,e.password),`Подсмотреть игру`)}function ur(e){if(Ee.environment!==`venue`||!e.ID||!e.name||e.participationStatus===`cancelled`){T.error(`У команды нет данных для печати чека`);return}fe.value={name:e.name,teamID:e.ID},de.value=!0}ne([de,()=>fe.value.teamID,U,()=>Ee.environment],pr);function fr(){R.value&&URL.revokeObjectURL(R.value),R.value=``}async function pr(){let e=++ge;if(fr(),he.value=``,me.value=!1,!(!de.value||!U.value||Ee.environment!==`venue`)){me.value=!0;try{let{blob:t}=await o.downloadTeamReceipt(Number(_),fe.value.teamID);e===ge&&(R.value=URL.createObjectURL(t))}catch(t){e===ge&&(he.value=t instanceof Error?t.message:`Не удалось подготовить чек`)}finally{e===ge&&(me.value=!1)}}}async function mr(){if(!(!R.value||pe.value||me.value)){pe.value=!0;try{await r.PrintTeamReceipt({gameID:Number(_),teamID:fe.value.teamID}),T.success(`Чек напечатан`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось напечатать чек`)}finally{pe.value=!1}}}async function qr(e,t){ce.value=e,ue.value=t,N.value=!0}async function Jr(){if(!(Se.value||!V.value.ID)){Se.value=!0;try{let e=await r.IssueGameTickets({gameID:V.value.ID,count:ve.value});ye.value=e.tickets||[],T.success(`Выпущено билетов: ${ye.value.length}`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось выпустить билеты`)}finally{Se.value=!1}}}at(()=>{!U.value||ft.value||(dn(Number(_)),fn(),mn(),gn(),kn())},2e3);async function Yr(){await r.ResetGame({ID:V.value.ID}),await dn(V.value.ID)}async function Xr(){await r.StartGame({ID:V.value.ID}),await dn(V.value.ID)}async function Zr(){await r.PauseGame({ID:V.value.ID}),await dn(V.value.ID)}async function Qr(){await r.PlayGame({ID:V.value.ID}),await dn(V.value.ID)}async function $r(){await r.FinishGame({ID:V.value.ID}),await dn(V.value.ID)}let ei=F(!1),ti=F([]),ni=F(0),ri=F(0),ii=F([]),ai=F([]),oi=F([]),si=F([]),ci=F(!1),li=F(!1);async function ui(){ci.value=!0,li.value=!1;try{let e=await r.GetGameResults({gameID:Number(_)});oi.value=e.questions||[],si.value=e.teams||[]}catch(e){li.value=!0,console.error(`Не удалось загрузить таблицу результатов`,e)}finally{ci.value=!1}}let di=F({});function fi(e,t){return(e??``)+`:`+(t??``)}function pi(e,t){return(e.answers||[]).find(e=>e.questionCode==t)?.answer||``}function mi(e,t){di.value[e]=t===null?void 0:t}async function hi(){let e=await r.GetGameAnswers({gameID:Number(_)});ii.value=e.questions||[],ai.value=e.teams||[];let t={};for(let e of ai.value)for(let n of e.answers||[])t[fi(e.team?.ID,n.questionCode)]=n.score;di.value=t,await ui()}async function gi(){ei.value=!0;let e=await r.GetGameReviewsForModeration({gameID:Number(_)});ti.value=e.reviews||[],ni.value=e.averageRating||0,ri.value=e.reviewsCount||0}async function _i(e,t){await r.ModerateGameReview({ID:e.ID,status:t}),await gi()}async function vi(){for(let e of ii.value)for(let t of ai.value){let n=di.value[fi(t.team?.ID,e.code)];await r.SetTeamAnswerScore({ID:t.team?.ID,questionCode:e.code,score:n??void 0})}T.success(`Баллы сохранены`),await hi()}ne([U,S],([e,t])=>{e&&t===`answers`&&hi()},{immediate:!0});function yi(){let e=new Date;return new Date(e.getTime()-e.getTimezoneOffset()*6e4)}function bi(e,t){if(e==``)return`Игра ещё не началась`;let n=ht(e),r=yi();t!=``&&(r=ht(t));let i=r.getTime()-n.getTime();if(i<0)return`Игра ещё не началась`;let a=Math.floor(i/1e3),o=Math.floor(a/60),s=Math.floor(o/60),c=Math.floor(s/24),l=Math.floor(c/30),u=Math.floor(c/365);return u>0?`${u}г ${c%365}д`:l>0?`${l}мес ${c%30}д`:c>0?`${c}д ${s%24}ч`:s>0?`${s}ч ${o%60}м`:o>0?`${o}м ${a%60}с`:`${a}с`}let xi=F(``);return at(()=>{xi.value=bi(V.value.startedAt||``,V.value.endedAt||``)},1e3),(e,t)=>(l(),h(k,null,[m(`div`,vr,[m(`div`,yr,[U.value&&(V.value.export?.state===`preparing`||V.value.export?.state===`ready`)?(l(),a($,{key:0},{default:P(()=>[A(i(q),{type:`info`,title:V.value.export.state===`ready`?`Игра в офлайн-режиме`:`Подготовка офлайн-пакета`},{default:P(()=>[p(v(V.value.export.state===`ready`?`Изменения на онлайн-сервере не синхронизируются с офлайн-площадкой.`:`Создаётся пакет для офлайн-площадки.`),1)]),_:1},8,[`title`])]),_:1})):I(``,!0),ze.value?(l(),a($,{key:1},{default:P(()=>[m(`h2`,null,v(V.value.name),1)]),_:1})):I(``,!0),A(i(Oe),{value:S.value,type:`line`,animated:``,"onUpdate:value":C},{default:P(()=>[U.value?(l(),a(i(De),{key:0,name:`settings`,tab:`Настройки`},{default:P(()=>[m(`div`,br,[A($,null,{default:P(()=>[A(i(Y),{justify:`end`},{default:P(()=>[A(i(H),{loading:d.value,disabled:!V.value.ID||d.value,onClick:Gn},{default:P(()=>[...t[49]||=[p(` Скачать материалы для печати `,-1)]]),_:1},8,[`loading`,`disabled`]),A(i(H),{quaternary:``,onClick:t[0]||=e=>qr(i(er),`Админка`)},{default:P(()=>[...t[50]||=[p(`QR`,-1)]]),_:1}),V.value.status==`finish`?(l(),a(i(H),{key:0,quaternary:``,onClick:t[1]||=e=>qn()},{default:P(()=>[A(i(B),{class:`settings-icon`},{default:P(()=>[A(i(on))]),_:1}),t[51]||=p(` Итоги `,-1)]),_:1})):I(``,!0),(V.value.teams?.length||0)==0?(l(),a(i(H),{key:1,type:`error`,quaternary:``,onClick:t[2]||=e=>ae.value=!0},{default:P(()=>[...t[52]||=[p(` Удалить игру `,-1)]]),_:1})):I(``,!0)]),_:1})]),_:1}),A($,null,{default:P(()=>[t[60]||=m(`p`,{class:`screens-title`},`Настройки игры`,-1),A(i(J),{vertical:``},{default:P(()=>[t[53]||=m(`p`,null,`Название`,-1),A(i(K),{value:E.value.name,"onUpdate:value":t[3]||=e=>E.value.name=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),t[54]||=m(`p`,{class:`settings-header`},`Формат игры`,-1),A(i(ke),{value:E.value.format,"onUpdate:value":t[4]||=e=>E.value.format=e,options:[{label:`Online`,value:`online`},{label:`Offline`,value:`offline`}],"aria-label":`Формат игры`},null,8,[`value`]),t[55]||=m(`p`,{class:`settings-header`},`Описание`,-1),A(i(K),{value:E.value.description,"onUpdate:value":t[5]||=e=>E.value.description=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`]),t[56]||=m(`p`,{class:`settings-header`},`Место проведения`,-1),A(i(K),{value:E.value.location,"onUpdate:value":t[6]||=e=>E.value.location=e,type:`text`,placeholder:`Оставьте пустым для онлайн-игры`},null,8,[`value`]),t[57]||=m(`p`,{class:`settings-header`},`Wi-Fi для игроков`,-1),A(i(K),{value:E.value.wifiName,"onUpdate:value":t[7]||=e=>E.value.wifiName=e,"aria-label":`Название сети Wi-Fi`,placeholder:`Название сети Wi-Fi`},null,8,[`value`]),A(i(K),{value:E.value.wifiPassword,"onUpdate:value":t[8]||=e=>E.value.wifiPassword=e,"aria-label":`Пароль Wi-Fi`,type:`password`,"show-password-on":`click`,placeholder:`Без пароля — оставьте пустым`,maxlength:64},null,8,[`value`]),t[58]||=m(`p`,null,` Название сети и пароль будут напечатаны рядом с QR-кодом команды в PDF и чеках. Оставьте название сети пустым, чтобы убрать инструкцию. `,-1)]),_:1}),A(i(Y),{justify:`end`,class:`settings-actions`},{default:P(()=>[A(i(H),{loading:D.value,disabled:D.value,onClick:t[9]||=e=>Jn()},{default:P(()=>[...t[59]||=[p(`Сохранить изменения`,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1}),it.value?(l(),a($,{key:0},{default:P(()=>[A(i(H),{loading:ot.value,disabled:ot.value,onClick:Un},{default:P(()=>[...t[61]||=[p(` Скачать результаты `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})):I(``,!0),Xe.value?(l(),a($,{key:1},{default:P(()=>[t[65]||=m(`p`,{class:`screens-title`},`Возврат результатов с площадки`,-1),A(i(J),{vertical:``},{default:P(()=>[A(i(q),{type:`warning`},{default:P(()=>[...t[62]||=[p(` Команды, билеты, результаты и игровой сценарий будут заменены данными пакета. Онлайн-правки этих данных потеряются. Оформление и музыка сохраняются. `,-1)]]),_:1}),A(i(Ne),{"file-list":pt.value,"default-upload":!1,max:1,accept:`.zip`,disabled:ft.value,onChange:Hn},{default:P(()=>[A(i(H),{disabled:ft.value},{default:P(()=>[...t[63]||=[p(`Выбрать ZIP результатов`,-1)]]),_:1},8,[`disabled`])]),_:1},8,[`file-list`,`disabled`]),vt.value?(l(),a(i(q),{key:0,type:`error`,role:`alert`},{default:P(()=>[p(v(vt.value),1)]),_:1})):I(``,!0),A(i(H),{loading:ft.value,disabled:ft.value||!pt.value.length,onClick:Wn},{default:P(()=>[...t[64]||=[p(` Применить ZIP и перезаписать результаты `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})):I(``,!0),Xe.value?(l(),a($,{key:2},{default:P(()=>[t[73]||=m(`p`,{class:`screens-title`},`Передача игры на площадку`,-1),A(i(J),{vertical:``},{default:P(()=>[t[71]||=m(`p`,null,` Пакет содержит снимок на момент подготовки. Последующие онлайн-изменения в него не попадут. На площадке игра начнётся с нуля: ходы, ответы и баллы в пакет не входят. Статус и прогресс игры на сервере сохраняются. Готовность пакета не подтверждает импорт на площадку. `,-1),V.value.export?.state===`preparing`?(l(),a(i(q),{key:0,type:`info`,role:`status`},{default:P(()=>[...t[66]||=[p(`Подготовка пакета…`,-1)]]),_:1})):V.value.export?.state===`ready`?(l(),a(i(q),{key:1,type:`success`,role:`status`},{default:P(()=>[...t[67]||=[p(`Пакет готов`,-1)]]),_:1})):V.value.export?.state===`failed`?(l(),a(i(q),{key:2,type:`error`,role:`alert`},{default:P(()=>[p(v(V.value.export.failure||`Не удалось подготовить пакет`),1)]),_:1})):I(``,!0),V.value.export?.state===`ready`?(l(),a(i(H),{key:3,loading:$e.value,disabled:$e.value,onClick:Vn},{default:P(()=>[...t[68]||=[p(`Скачать пакет`,-1)]]),_:1},8,[`loading`,`disabled`])):I(``,!0),A(i(H),{loading:Qe.value,disabled:Qe.value||X.value,onClick:Ln},{default:P(()=>[...t[69]||=[p(` Подготовить новый пакет `,-1)]]),_:1},8,[`loading`,`disabled`]),t[72]||=m(`p`,null,` Новый пакет заменяет текущую подготовку. Результаты ранее скачанных пакетов можно загрузить позже. `,-1),et.value?(l(),a(i(H),{key:4,type:`warning`,loading:X.value,disabled:Qe.value||X.value,onClick:Rn},{default:P(()=>[...t[70]||=[p(` Сбросить локальный режим `,-1)]]),_:1},8,[`loading`,`disabled`])):I(``,!0)]),_:1})]),_:1})):I(``,!0),A($,null,{default:P(()=>[t[76]||=m(`p`,{class:`screens-title`},`Выпуск билетов`,-1),A(i(J),{vertical:``},{default:P(()=>[A(i(Lt),{value:ve.value,"onUpdate:value":t[10]||=e=>ve.value=e,min:1,max:100},null,8,[`value`]),(l(!0),h(k,null,x(ye.value,e=>(l(),h(`div`,{key:e.ID,class:`issued-ticket`},[m(`div`,null,`Билет №`+v(e.ID),1),m(`a`,{href:e.URL,class:`payment-link`,target:`_blank`,rel:`noreferrer`},` Открыть страницу билета `,8,xr),A(i(H),{size:`small`,onClick:t=>qr(e.URL,`Билет №${e.ID}`)},{default:P(()=>[...t[74]||=[p(` Показать QR `,-1)]]),_:1},8,[`onClick`])]))),128))]),_:1}),A(i(Y),{justify:`end`,class:`settings-actions`},{default:P(()=>[A(i(H),{loading:Se.value,disabled:Se.value,onClick:t[11]||=e=>Jr()},{default:P(()=>[...t[75]||=[p(` Выпустить `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})])]),_:1})):I(``,!0),U.value?(l(),a(i(De),{key:1,name:`screens`,tab:`Экраны`},{default:P(()=>[m(`div`,Sr,[zt.value?(l(),a(i(q),{key:0,type:`error`},{default:P(()=>[p(v(zt.value),1)]),_:1})):I(``,!0),Rt.value?(l(),h(`p`,Cr,`Загрузка экранов…`)):I(``,!0),m(`div`,wr,[A($,null,{default:P(()=>[t[77]||=m(`h3`,{class:`screens-title`},`Превью экрана`,-1),rn.value?.status===`connected`?(l(),a(mt,{key:0,state:rn.value,questions:Kt.value,teams:Jt.value,"team-names":Xt.value},null,8,[`state`,`questions`,`teams`,`team-names`])):(l(),h(`div`,Tr,`Экран не подключён`))]),_:1}),A(Bn,{screens:xt.value,"screen-binding":Ce.value,"is-busy":Z.value,onBind:On,onSetSound:Mn,onUnbind:Pn},null,8,[`screens`,`screen-binding`,`is-busy`])]),m(`div`,Er,[A(Fn,{screens:xt.value,"preview-questions":Kt.value,"preview-teams":Jt.value,"team-names":Xt.value,"screen-plan":Bt.value,"screen-plan-draft":Q.value,"screen-plan-saving":Ht.value,"screen-plan-mode":Wt.value,"screen-volume":nn.value,"is-busy":Z.value,onAddStep:_n,onEdit:vn,onCancel:yn,onRemoveStep:bn,onMoveStep:xn,onDirty:Sn,onClearPlan:wn,onSave:Tn,onSetStep:En,onCommand:Dn,"onUpdate:screenVolume":t[12]||=e=>nn.value=e},null,8,[`screens`,`preview-questions`,`preview-teams`,`team-names`,`screen-plan`,`screen-plan-draft`,`screen-plan-saving`,`screen-plan-mode`,`screen-volume`,`is-busy`]),A(Cn,{playlists:St.value,music:Ct.value,"is-busy":wt.value,onSetMusic:Nn,onSaveGroup:i(Dt),onDeleteGroup:i(Ot),onReorderGroups:i(kt),onSetTrackGroup:i(At),onCreatePlaylist:i(jt),onRenamePlaylist:i(Mt),onReorderTracks:i(Nt),onDeletePlaylist:i(Pt),onUploadTrack:i(Ft),onDeleteTrack:i(It)},null,8,[`playlists`,`music`,`is-busy`,`onSaveGroup`,`onDeleteGroup`,`onReorderGroups`,`onSetTrackGroup`,`onCreatePlaylist`,`onRenamePlaylist`,`onReorderTracks`,`onDeletePlaylist`,`onUploadTrack`,`onDeleteTrack`])])])]),_:1})):I(``,!0),U.value?(l(),a(i(De),{key:2,name:`game`,tab:`Игра`},{default:P(()=>[m(`div`,Dr,[A($,null,{default:P(()=>[A(i(Y),{justify:`space-between`},{default:P(()=>[A(i(J),null,{default:P(()=>[A(i(z),{type:`info`},{default:P(()=>[p(v(xi.value),1)]),_:1}),i(gt)(V.value.startAt)?(l(),a(i(z),{key:0,type:`info`},{default:P(()=>[p(` Начало: `+v(i(gt)(V.value.startAt)),1)]),_:1})):I(``,!0)]),_:1}),A(i(Y),{justify:`end`},{default:P(()=>[A(i(H),{onClick:un},{default:P(()=>[...t[78]||=[p(`Проверить звук`,-1)]]),_:1}),V.value.status==`draft`?I(``,!0):(l(),a(i(H),{key:0,type:`info`,dashed:``,"aria-label":`Сбросить игру`,onClick:t[13]||=e=>Yr()},{default:P(()=>[A(i(B),null,{default:P(()=>[A(i(tn))]),_:1})]),_:1})),V.value.status==`draft`?(l(),a(i(H),{key:1,type:`info`,dashed:``,"aria-label":`Начать игру`,onClick:t[14]||=e=>Xr()},{default:P(()=>[A(i(B),null,{default:P(()=>[A(i(Zt))]),_:1})]),_:1})):I(``,!0),V.value.status==`pause`?(l(),a(i(H),{key:2,type:`info`,dashed:``,"aria-label":`Продолжить игру`,onClick:t[15]||=e=>Qr()},{default:P(()=>[A(i(B),null,{default:P(()=>[A(i(Zt))]),_:1})]),_:1})):I(``,!0),V.value.status==`run`?(l(),a(i(H),{key:3,type:`info`,dashed:``,"aria-label":`Поставить игру на паузу`,onClick:t[16]||=e=>Zr()},{default:P(()=>[A(i(B),null,{default:P(()=>[A(i(Yt))]),_:1})]),_:1})):I(``,!0),V.value.status==`finish`?I(``,!0):(l(),a(i(H),{key:4,type:`info`,dashed:``,"aria-label":`Завершить игру`,onClick:t[17]||=e=>$r()},{default:P(()=>[A(i(B),null,{default:P(()=>[A(i(qt))]),_:1})]),_:1}))]),_:1})]),_:1})]),_:1}),A(pn,{"map-items":Qt.value,teams:V.value.teams||[],onSaveItem:jn,onDragging:t[18]||=e=>en.value=e,onGiveApplication:tr},null,8,[`map-items`,`teams`]),A(i(Y),{justify:`space-between`,align:`center`},{default:P(()=>[A(i(z),{bordered:!1,type:`info`},{default:P(()=>[p(` Участвуют команд: `+v(bt.value),1)]),_:1}),bt.value?(l(),a(i(H),{key:0,quaternary:``,loading:c.value,disabled:c.value,onClick:t[19]||=e=>Kn()},{default:P(()=>[...t[79]||=[p(` QR команд `,-1)]]),_:1},8,[`loading`,`disabled`])):I(``,!0)]),_:1}),A(cr,{teams:V.value.teams||[],"can-print-receipts":i(Ee).environment===`venue`,"participation-options":yt,onAdd:t[20]||=e=>re.value=!0,onOpenQr:lr,onPrint:ur,onPreview:t[21]||=(e,t)=>In(e,t,!0),onDelete:ir,onGiveApplication:tr},null,8,[`teams`,`can-print-receipts`])])]),_:1})):I(``,!0),U.value?(l(),a(i(De),{key:3,name:`payment`,tab:`Оплата`},{default:P(()=>[m(`div`,Or,[A($,null,{default:P(()=>[A(i(Y),{align:`center`,justify:`space-between`},{default:P(()=>[t[81]||=m(`p`,{class:`screens-title`},`Билеты`,-1),A(i(H),{size:`small`,onClick:t[22]||=e=>_e.value=!0},{default:P(()=>[...t[80]||=[p(` Проверить билет `,-1)]]),_:1})]),_:1})]),_:1}),A($,null,{default:P(()=>[t[82]||=m(`p`,{class:`screens-title`},`Оплата игры`,-1),m(`div`,kr,[A(i(Ve),{value:Kr,size:300,padding:0})]),m(`p`,null,[m(`a`,{href:Kr,class:`payment-link`,target:`_blank`,rel:`noreferrer`},` Открыть ссылку оплаты `)])]),_:1})])]),_:1})):I(``,!0),U.value?(l(),a(i(De),{key:4,name:`answers`,tab:`Проверка ответов`},{default:P(()=>[m(`div`,Ar,[A($,null,{default:P(()=>[t[89]||=m(`p`,{class:`screens-title`},`Таблица результатов`,-1),t[90]||=m(`p`,null,`Сохранённые оценки. Таблица обновляется после сохранения баллов.`,-1),ci.value?(l(),a(i(Ue),{key:0},{default:P(()=>[...t[83]||=[p(`Загрузка результатов…`,-1)]]),_:1})):li.value?(l(),a(i(q),{key:1,type:`error`},{default:P(()=>[...t[84]||=[p(` Не удалось загрузить таблицу результатов. `,-1)]]),_:1})):si.value.length===0?(l(),h(`p`,jr,`Результатов пока нет.`)):(l(),h(`div`,Mr,[A(i(Ut),{"single-line":!1},{default:P(()=>[m(`thead`,null,[m(`tr`,null,[t[85]||=m(`th`,{scope:`col`},`Место`,-1),t[86]||=m(`th`,{scope:`col`},`Команда`,-1),(l(!0),h(k,null,x(oi.value,e=>(l(),h(`th`,{key:e.code,scope:`col`},v(e.code),1))),128)),t[87]||=m(`th`,{scope:`col`},`Сумма`,-1),t[88]||=m(`th`,{scope:`col`},`Поездки`,-1)])]),m(`tbody`,null,[(l(!0),h(k,null,x(si.value,e=>(l(),h(`tr`,{key:e.team?.ID},[m(`td`,null,v(e.place),1),m(`td`,null,v(e.team?.name),1),(l(!0),h(k,null,x(oi.value,t=>(l(),h(`td`,{key:t.code},v(e.answers?.find(e=>e.questionCode===t.code)?.score??`—`),1))),128)),m(`td`,null,v(e.totalScore),1),m(`td`,null,v(e.actionsCount),1)]))),128))])]),_:1})]))]),_:1}),ii.value.length===0||ai.value.length===0?(l(),h(`div`,Nr,` Вопросы дела не заданы или команды ещё не отвечали. `)):(l(!0),h(k,{key:1},x(ai.value,e=>(l(),a($,{key:e.team?.ID},{default:P(()=>[m(`h3`,Pr,v(e.team?.name),1),(l(!0),h(k,null,x(ii.value,t=>(l(),h(`div`,{key:t.code,class:`answers-question`},[m(`p`,Fr,v(t.code)+`: `+v(t.text),1),m(`p`,Ir,[m(`span`,Lr,v(t.answer||`—`),1)]),m(`div`,Rr,[m(`div`,zr,v(pi(e,t.code)||`—`),1),A(i(Lt),{value:di.value[fi(e.team?.ID,t.code)],"onUpdate:value":n=>mi(fi(e.team?.ID,t.code),n),placeholder:`Балл`,class:`answers-score-input`},null,8,[`value`,`onUpdate:value`])])]))),128))]),_:2},1024))),128)),A(i(Y),{justify:`end`},{default:P(()=>[A(i(H),{onClick:t[23]||=e=>vi(),disabled:ii.value.length===0||ai.value.length===0},{default:P(()=>[...t[91]||=[p(` Сохранить баллы `,-1)]]),_:1},8,[`disabled`])]),_:1})])]),_:1})):I(``,!0),Ie.value?(l(),a(i(De),{key:5,name:`state`,tab:`Состояние`,"tab-props":{tabindex:0,role:`tab`,"aria-selected":S.value===`state`,onKeydown:w}},{default:P(()=>[A(Xn,{devices:i(He),wifi:i(We),"server-time":i(Ge),"is-loading":i(Ke),"has-error":i(qe),summary:i(Je),onReload:i(Ye)},null,8,[`devices`,`wifi`,`server-time`,`is-loading`,`has-error`,`summary`,`onReload`])]),_:1},8,[`tab-props`])):I(``,!0)]),_:1},8,[`value`])])]),Xe.value?(l(),a(i(we),{key:0,show:nt.value,"onUpdate:show":t[25]||=e=>nt.value=e,"mask-closable":!X.value,"close-on-esc":!X.value},{default:P(()=>[A(i(Le),{class:`reset-local-mode-modal`,bordered:!1,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`reset-local-mode-title`,"aria-describedby":`reset-local-mode-description`},{header:P(()=>[...t[92]||=[m(`span`,{id:`reset-local-mode-title`},`Сбросить локальный режим?`,-1)]]),footer:P(()=>[A(i(Y),{justify:`end`},{default:P(()=>[A(i(H),{disabled:X.value,onClick:t[24]||=e=>nt.value=!1},{default:P(()=>[...t[93]||=[p(` Отмена `,-1)]]),_:1},8,[`disabled`]),A(i(H),{type:`warning`,loading:X.value,disabled:X.value,onClick:zn},{default:P(()=>[...t[94]||=[p(` Вернуть в обычный режим `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),default:P(()=>[t[95]||=m(`p`,{id:`reset-local-mode-description`},` Игра вернётся в обычный режим на сервере. Данные игры сохранятся. Локальная площадка продолжит работать отдельно; её результаты можно будет загрузить позже. `,-1)]),_:1})]),_:1},8,[`show`,`mask-closable`,`close-on-esc`])):I(``,!0),U.value?(l(),a(hr,{key:1,show:_e.value,"onUpdate:show":t[26]||=e=>_e.value=e},null,8,[`show`])):I(``,!0),U.value&&i(Ee).environment===`venue`?(l(),a(dr,{key:2,show:de.value,"onUpdate:show":t[27]||=e=>de.value=e,name:fe.value.name,preview:R.value,"preparation-error":he.value,"is-preparing":me.value,"is-printing":pe.value,onPrint:mr},null,8,[`show`,`name`,`preview`,`preparation-error`,`is-preparing`,`is-printing`])):I(``,!0),U.value?(l(),a(i(we),{key:3,show:te.value,"onUpdate:show":t[30]||=e=>te.value=e},{default:P(()=>[A(i(Le),{style:{width:`600px`},title:`Настройки игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":P(()=>[A(i(H),{onClick:t[28]||=e=>te.value=!1},{default:P(()=>[...t[96]||=[p(` x `,-1)]]),_:1})]),footer:P(()=>[A(i(Y),{justify:`end`},{default:P(()=>[A(i(H),{onClick:t[29]||=e=>rr(),ghost:``},{default:P(()=>[...t[99]||=[p(` Выдать `,-1)]]),_:1})]),_:1})]),default:P(()=>[A(i(J),{vertical:``},{default:P(()=>[t[97]||=m(`p`,null,`Команда`,-1),m(`h3`,null,v(Yn.value.name),1),t[98]||=m(`p`,null,`Улика`,-1),m(`h3`,null,v($n.value.name),1),i(lt)($n.value)==`image`&&$n.value.image?(l(),h(`div`,Br,[m(`img`,{src:i(ut)($n.value.image),class:`give-application-image`},null,8,Vr)])):i(lt)($n.value)==`audio`&&$n.value.image?(l(),h(`audio`,{key:1,src:i(ut)($n.value.image),controls:``,preload:`none`,class:`give-application-audio`},null,8,Hr)):i(lt)($n.value)==`pdf`&&$n.value.image?(l(),h(`a`,{key:2,href:i(ut)($n.value.image),target:`_blank`,rel:`noopener`,class:`give-application-pdf-link`},` PDF `,8,Ur)):I(``,!0)]),_:1})]),_:1})]),_:1},8,[`show`])):I(``,!0),U.value?(l(),a(i(we),{key:4,show:re.value,"onUpdate:show":t[36]||=e=>re.value=e},{default:P(()=>[A(i(Le),{style:{width:`600px`},title:`Создание команды`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":P(()=>[A(i(H),{onClick:t[31]||=e=>re.value=!1},{default:P(()=>[...t[100]||=[p(` x `,-1)]]),_:1})]),footer:P(()=>[A(i(Y),{justify:`end`},{default:P(()=>[A(i(H),{onClick:t[35]||=e=>nr(),disabled:j.value.length==0},{default:P(()=>[...t[101]||=[p(` Создать `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:P(()=>[A(i(J),{vertical:``},{default:P(()=>[A(i(K),{value:j.value,"onUpdate:value":t[32]||=e=>j.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`]),A(i(K),{value:M.value,"onUpdate:value":t[33]||=e=>M.value=e,"input-props":{type:`email`,autocomplete:`email`},placeholder:`Почта капитана (необязательно)`,"aria-label":`Почта капитана (необязательно)`},null,8,[`value`]),A(i(Lt),{value:oe.value,"onUpdate:value":t[34]||=e=>oe.value=e,min:1,max:8,precision:0,placeholder:`Количество игроков`,"aria-label":`Количество игроков`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`])):I(``,!0),U.value?(l(),a(i(we),{key:5,show:ie.value,"onUpdate:show":t[40]||=e=>ie.value=e},{default:P(()=>[A(i(Le),{style:{width:`600px`},title:`Удаление команды`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":P(()=>[A(i(H),{onClick:t[37]||=e=>ie.value=!1},{default:P(()=>[...t[102]||=[p(` x `,-1)]]),_:1})]),footer:P(()=>[A(i(Y),{justify:`end`},{default:P(()=>[A(i(H),{onClick:t[39]||=e=>ar(),disabled:Zn.value!=Qn.value.name},{default:P(()=>[...t[105]||=[p(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:P(()=>[A(i(J),{vertical:``},{default:P(()=>[m(`p`,null,[t[103]||=p(` Введите название команды `,-1),A(i(Ue),{class:`name-text`,strong:``},{default:P(()=>[p(v(Qn.value.name),1)]),_:1}),t[104]||=p(` чтобы удалить его `,-1)]),A(i(K),{value:Zn.value,"onUpdate:value":t[38]||=e=>Zn.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`])):I(``,!0),U.value?(l(),a(i(we),{key:6,show:ae.value,"onUpdate:show":t[44]||=e=>ae.value=e},{default:P(()=>[A(i(Le),{style:{width:`600px`},title:`Удаление игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":P(()=>[A(i(H),{onClick:t[41]||=e=>ae.value=!1},{default:P(()=>[...t[106]||=[p(` x `,-1)]]),_:1})]),footer:P(()=>[A(i(Y),{justify:`end`},{default:P(()=>[A(i(H),{onClick:t[43]||=e=>or(),disabled:se.value!=V.value.name},{default:P(()=>[...t[109]||=[p(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:P(()=>[A(i(J),{vertical:``},{default:P(()=>[m(`p`,null,[t[107]||=p(` Введите название игры `,-1),A(i(Ue),{class:`name-text`,strong:``},{default:P(()=>[p(v(V.value.name),1)]),_:1}),t[108]||=p(` чтобы удалить её `,-1)]),A(i(K),{value:se.value,"onUpdate:value":t[42]||=e=>se.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`])):I(``,!0),U.value?(l(),a(i(we),{key:7,show:N.value,"onUpdate:show":t[46]||=e=>N.value=e},{default:P(()=>[A(i(Le),{style:{width:`600px`},title:ue.value,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":P(()=>[A(i(H),{onClick:t[45]||=e=>N.value=!1},{default:P(()=>[...t[110]||=[p(` x `,-1)]]),_:1})]),footer:P(()=>[...t[111]||=[]]),default:P(()=>[A(i(J),{vertical:``},{default:P(()=>[m(`div`,Wr,[A(i(Ve),{value:ce.value,size:300,padding:0},null,8,[`value`])])]),_:1})]),_:1},8,[`title`])]),_:1},8,[`show`])):I(``,!0),U.value?(l(),a(i(we),{key:8,show:ei.value,"onUpdate:show":t[48]||=e=>ei.value=e},{default:P(()=>[A(i(Le),{style:{width:`min(94vw, 800px)`},title:`Отзывы игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`,"content-style":{maxHeight:`70vh`,overflow:`auto`}},{"header-extra":P(()=>[A(i(H),{onClick:t[47]||=e=>ei.value=!1},{default:P(()=>[...t[112]||=[p(` x `,-1)]]),_:1})]),default:P(()=>[A(i(Y),{align:`center`,class:`reviews-summary`},{default:P(()=>[A(i(Re),{value:ni.value,readonly:``,"allow-half":``},null,8,[`value`]),m(`span`,null,v(ri.value?`${ni.value.toFixed(1)} · ${ri.value}`:`Пока нет отзывов`),1)]),_:1}),ti.value.length==0?(l(),h(`div`,Gr,`Отзывов пока нет.`)):I(``,!0),(l(!0),h(k,null,x(ti.value,e=>(l(),h(`div`,{key:e.ID,class:`review-row`},[A(i(Y),{justify:`space-between`,align:`center`},{default:P(()=>[m(`strong`,null,v(e.teamName),1),A(i(z),null,{default:P(()=>[p(v(e.status),1)]),_:2},1024)]),_:2},1024),A(i(Re),{value:e.rating,readonly:``,size:`small`},null,8,[`value`]),m(`div`,null,`Сложность: `+v([``,`лёгкая`,`средняя`,`тяжёлая`][e.difficulty||0]),1),m(`p`,null,v(e.text),1),e.status==`pending`?(l(),a(i(Y),{key:0,justify:`end`},{default:P(()=>[A(i(H),{type:`success`,onClick:t=>_i(e,`approved`)},{default:P(()=>[...t[113]||=[p(`Одобрить`,-1)]]),_:1},8,[`onClick`]),A(i(H),{type:`error`,ghost:``,onClick:t=>_i(e,`rejected`)},{default:P(()=>[...t[114]||=[p(`Отклонить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):e.status==`approved`?(l(),a(i(Y),{key:1,justify:`end`},{default:P(()=>[A(i(H),{type:`error`,ghost:``,onClick:t=>_i(e,`hidden`)},{default:P(()=>[...t[115]||=[p(`Скрыть`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):I(``,!0)]))),128))]),_:1})]),_:1},8,[`show`])):I(``,!0),A(st,{active:`games`})],64))}}),[[`__scopeId`,`data-v-72b7e6f0`]]),Jr=n({__name:`GameView`,setup(e){let t=F(0),n=le();return(e,r)=>(l(),a(qr,{key:`${i(n).params.id}-${t.value}`,onResultsApplied:r[0]||=e=>t.value++}))}});export{Jr as default}; \ No newline at end of file diff --git a/frontend/dist/assets/GameView-Bk5-fnaP.css b/frontend/dist/assets/GameView-DCHwJep6.css similarity index 94% rename from frontend/dist/assets/GameView-Bk5-fnaP.css rename to frontend/dist/assets/GameView-DCHwJep6.css index 109f6c5..dd93a6e 100644 --- a/frontend/dist/assets/GameView-Bk5-fnaP.css +++ b/frontend/dist/assets/GameView-DCHwJep6.css @@ -1 +1 @@ -.ui-block[data-v-80193f22]{background-color:#222;border-radius:10px;margin:8px 0;padding:16px}.screens-title[data-v-5e2f9943]{margin:0;font-size:18px;font-weight:600}.screen-header[data-v-5e2f9943]{margin-bottom:8px}.map-field[data-v-5e2f9943]{aspect-ratio:4;cursor:grab;resize:vertical;touch-action:none;background-color:#151515;border:1px dashed #fff3;height:auto;min-height:200px;position:relative;overflow:hidden}.map-field[data-v-5e2f9943]:active{cursor:grabbing}.map-canvas[data-v-5e2f9943]{transform-origin:0 0;background-image:linear-gradient(#ffffff14 1px,#0000 1px),linear-gradient(90deg,#ffffff14 1px,#0000 1px);background-size:20px 20px;width:2000px;height:1000px;position:absolute}.map-item[data-v-5e2f9943]{cursor:grab;-webkit-user-select:none;user-select:none;border-radius:6px;min-width:90px;padding:8px 24px 8px 8px;position:absolute}.map-item[data-v-5e2f9943]:active{cursor:grabbing}.map-screen[data-v-5e2f9943]{background-color:#355b75}.map-organizer-desk[data-v-5e2f9943]{background-color:#48633a}.map-team[data-v-5e2f9943]{background-color:#222}.map-team[data-v-5e2f9943],.map-team[data-v-5e2f9943]:active{cursor:default}.map-team-handle[data-v-5e2f9943]{cursor:grab;background-color:#48633a;border-radius:6px 6px 0 0;margin:-8px -24px 8px -8px;padding:8px 24px 8px 8px}.map-team-handle[data-v-5e2f9943]:active{cursor:grabbing}.map-team-applications[data-v-5e2f9943]{margin-top:8px}.map-team-needs-applications[data-v-5e2f9943]{outline:2px solid gold}.map-item small[data-v-5e2f9943]{opacity:.75;display:block}.map-item-hide[data-v-5e2f9943]{color:inherit;cursor:pointer;background:0 0;border:0;font-size:16px;position:absolute;top:5px;right:5px}.map-team .map-item-hide[data-v-5e2f9943]{padding:0 2px;line-height:16px;top:0}.map-hidden-items[data-v-5e2f9943]{margin-top:16px}h3[data-v-01c1228e],h4[data-v-01c1228e],p[data-v-01c1228e]{margin:0}.music-group[data-v-01c1228e]{border-top:1px solid var(--brand-border);gap:8px;padding-top:12px;display:grid}.music-panel[data-v-01c1228e]{min-width:0}.music-content[data-v-01c1228e]{margin-top:12px}.playlist-picker[data-v-01c1228e]{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.music-volume[data-v-01c1228e]{align-items:center;gap:12px;width:210px;display:flex}.music-volume .n-slider[data-v-01c1228e]{min-width:100px}.track-row[data-v-01c1228e]{border:1px solid var(--brand-border);overflow-wrap:anywhere;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.track-current[data-v-01c1228e]{border-color:var(--brand-accent)}h3[data-v-6e25da79]{margin:0}.screen-plan-panel[data-v-6e25da79]{min-width:0}.plan-steps[data-v-6e25da79]{gap:12px;margin:12px 0;display:grid}.plan-step[data-v-6e25da79]{border:1px solid var(--brand-border);flex-wrap:wrap;align-items:start;gap:12px;padding:12px;display:flex}.plan-step-current[data-v-6e25da79]{border-color:var(--brand-accent)}.step-preview[data-v-6e25da79]{flex:0 0 160px;max-width:100%}.step-content[data-v-6e25da79]{overflow-wrap:anywhere;flex-direction:column;flex:240px;gap:8px;min-width:0;display:flex}.step-heading[data-v-6e25da79]{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;display:grid}.screen-scanner-video[data-v-5f530845]{aspect-ratio:1;object-fit:cover;background-color:#000;width:100%;max-height:60vh}.screens-title[data-v-361cce15]{margin:0;font-size:18px;font-weight:600}.screen-header[data-v-361cce15]{margin-bottom:8px}.screen-row[data-v-361cce15]{border-top:1px solid var(--brand-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;display:flex}.screen-status[data-v-361cce15]{color:var(--brand-text-muted);font-size:13px}.screen-empty[data-v-361cce15]{color:var(--brand-text-muted);margin:16px 0 0}.screen-error[data-v-361cce15]{color:var(--brand-error);font-size:13px}.device-details[data-v-a670747a]{overflow-wrap:anywhere}.connection[data-v-a670747a]{margin-top:16px}.team-block-hover[data-v-70e02c3e]:hover{cursor:pointer;background-color:#333}.team-content-block[data-v-70e02c3e]{padding:8px 16px}.team-name-block[data-v-70e02c3e]{font-size:20px}.link-button[data-v-70e02c3e]{margin:8px 8px 0 0}.place-image-plus[data-v-70e02c3e]{text-align:center;margin:0;padding:16px;font-size:32px}.receipt-modal[data-v-f0b8d644]{width:calc(100vw - 32px);max-width:460px;max-height:90vh;overflow-y:auto}.receipt-preview[data-v-f0b8d644]{width:384px;max-width:100%;height:auto;margin:0 auto 16px;display:block}.receipt-modal p[data-v-f0b8d644]{margin:16px 0}.ticket-scanner-video[data-v-fe322487]{aspect-ratio:1;object-fit:cover;background-color:#000;width:100%;max-height:60vh}.screen-overview[data-v-72b7e6f0],.presentation-grid[data-v-72b7e6f0]{align-items:start;gap:12px;min-width:0;display:grid}.screen-overview[data-v-72b7e6f0]>*,.presentation-grid[data-v-72b7e6f0]>*{min-width:0}@media (width>=1024px){.screen-overview[data-v-72b7e6f0],.presentation-grid[data-v-72b7e6f0]{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.reset-local-mode-modal[data-v-72b7e6f0]{width:560px;max-width:calc(100vw - 32px)}.reviews-summary[data-v-72b7e6f0]{margin-bottom:16px}.game-tab-content[data-v-72b7e6f0]{padding-top:0}.review-row[data-v-72b7e6f0]{border-top:1px solid #777;padding:16px 0}.review-row p[data-v-72b7e6f0]{white-space:pre-wrap}.team-block-hover[data-v-72b7e6f0]:hover{color:#63e2b7;cursor:pointer;border:1px solid #63e2b7}.team-content-block[data-v-72b7e6f0]{padding:20px}.team-name-block[data-v-72b7e6f0]{font-size:20px;font-weight:600}.settings-icon[data-v-72b7e6f0]{width:20px}.settings-actions[data-v-72b7e6f0]{margin-top:16px}.link-button[data-v-72b7e6f0]{width:100%;margin-top:16px}.place-image-plus[data-v-72b7e6f0]{justify-content:center;align-items:center;font-size:30px;display:flex}.name-text[data-v-72b7e6f0]{background-color:#ffffff1a;border-radius:3px;padding:3px}.qr-block[data-v-72b7e6f0]{background-color:#fff;margin:0 auto;padding:16px;line-height:0;display:inline-block}.payment-link[data-v-72b7e6f0]{color:#63e2b7}.payment-link[data-v-72b7e6f0]:focus,.payment-link[data-v-72b7e6f0]:hover{color:#8ff0cc}.give-application-image-block[data-v-72b7e6f0]{background-image:url(/assets/paper_white-ZSlTzOTx.jpg);background-size:cover;max-width:320px;margin:8px 0;padding:8px;box-shadow:0 3px 15px #626262}.give-application-image[data-v-72b7e6f0]{width:100%}.give-application-audio[data-v-72b7e6f0]{width:100%;margin:8px 0}.give-application-pdf-link[data-v-72b7e6f0]{margin:8px 0;text-decoration:underline;display:inline-block}.answer-results-scroll[data-v-72b7e6f0]{overflow-x:auto}.answers-empty[data-v-72b7e6f0]{color:#777}.answers-question[data-v-72b7e6f0]{overflow-wrap:anywhere;margin-top:16px}.answers-question-title[data-v-72b7e6f0]{margin:0 0 8px;font-size:17px;font-weight:600}.answers-question-answer[data-v-72b7e6f0]{color:#aaa;margin:0 0 16px}.correct-answer[data-v-72b7e6f0]{color:gold;white-space:pre-wrap;margin-top:8px;font-weight:500;display:inline-block}.answers-team-row[data-v-72b7e6f0]{background-color:#ffffff0d;border-radius:6px;flex-flow:wrap;align-items:center;gap:8px;margin:8px 0;padding:8px;display:flex}.answers-team-name[data-v-72b7e6f0]{overflow-wrap:anywhere;margin:0;font-size:18px;font-weight:600}.answers-team-answer[data-v-72b7e6f0]{color:#aaa;white-space:pre-wrap;flex:200px}.answers-score-input[data-v-72b7e6f0]{width:110px}.screens-title[data-v-72b7e6f0]{margin-bottom:8px;font-size:18px;font-weight:600}.screen-row[data-v-72b7e6f0]{border-top:1px solid #ffffff1a;justify-content:space-between;align-items:center;gap:8px;padding:16px 0;display:flex}.screen-status[data-v-72b7e6f0]{color:#aaa;font-size:13px}.screen-empty[data-v-72b7e6f0]{color:#aaa;margin:16px 0 0}.screen-error[data-v-72b7e6f0]{color:#f2a2a2;font-size:13px}.map-preview-layout[data-v-72b7e6f0]{grid-template-columns:minmax(0,1fr) minmax(280px,420px);gap:16px;display:grid}.screen-preview-placeholder[data-v-72b7e6f0]{aspect-ratio:16/9;color:#aaa;text-align:center;background-color:#111;justify-content:center;align-items:center;display:flex}.map-field[data-v-72b7e6f0]{cursor:grab;resize:vertical;touch-action:none;background-color:#151515;border:1px dashed #fff3;height:420px;min-height:200px;position:relative;overflow:hidden}.map-field[data-v-72b7e6f0]:active{cursor:grabbing}.map-canvas[data-v-72b7e6f0]{transform-origin:0 0;background-image:linear-gradient(#ffffff14 1px,#0000 1px),linear-gradient(90deg,#ffffff14 1px,#0000 1px);background-size:20px 20px;width:2000px;height:1000px;position:absolute}.map-item[data-v-72b7e6f0]{cursor:grab;-webkit-user-select:none;user-select:none;border-radius:6px;min-width:90px;padding:8px 24px 8px 8px;position:absolute}.map-item[data-v-72b7e6f0]:active{cursor:grabbing}.map-screen[data-v-72b7e6f0]{background-color:#355b75}.map-organizer-desk[data-v-72b7e6f0]{background-color:#48633a}.map-team[data-v-72b7e6f0]{background-color:#222}.map-team[data-v-72b7e6f0],.map-team[data-v-72b7e6f0]:active{cursor:default}.map-team-handle[data-v-72b7e6f0]{cursor:grab;background-color:#48633a;border-radius:6px 6px 0 0;margin:-8px -24px 8px -8px;padding:8px 24px 8px 10px}.map-team-handle[data-v-72b7e6f0]:active{cursor:grabbing}.map-team-applications[data-v-72b7e6f0]{margin-top:8px}.map-team-needs-applications[data-v-72b7e6f0]{outline:2px solid gold}.map-item small[data-v-72b7e6f0]{opacity:.75;display:block}.map-item-hide[data-v-72b7e6f0]{color:inherit;cursor:pointer;background:0 0;border:0;font-size:16px;position:absolute;top:5px;right:5px}.map-team .map-item-hide[data-v-72b7e6f0]{padding:0 2px;line-height:16px;top:0}.map-hidden-items[data-v-72b7e6f0]{margin-top:16px}@media (width<1024px){.map-preview-layout[data-v-72b7e6f0]{grid-template-columns:1fr}}.issued-ticket[data-v-72b7e6f0]{border-top:1px solid #777;flex-wrap:wrap;align-items:center;gap:8px;padding-top:8px;display:flex} +.ui-block[data-v-80193f22]{background-color:#222;border-radius:10px;margin:8px 0;padding:16px}.screens-title[data-v-5e2f9943]{margin:0;font-size:18px;font-weight:600}.screen-header[data-v-5e2f9943]{margin-bottom:8px}.map-field[data-v-5e2f9943]{aspect-ratio:4;cursor:grab;resize:vertical;touch-action:none;background-color:#151515;border:1px dashed #fff3;height:auto;min-height:200px;position:relative;overflow:hidden}.map-field[data-v-5e2f9943]:active{cursor:grabbing}.map-canvas[data-v-5e2f9943]{transform-origin:0 0;background-image:linear-gradient(#ffffff14 1px,#0000 1px),linear-gradient(90deg,#ffffff14 1px,#0000 1px);background-size:20px 20px;width:2000px;height:1000px;position:absolute}.map-item[data-v-5e2f9943]{cursor:grab;-webkit-user-select:none;user-select:none;border-radius:6px;min-width:90px;padding:8px 24px 8px 8px;position:absolute}.map-item[data-v-5e2f9943]:active{cursor:grabbing}.map-screen[data-v-5e2f9943]{background-color:#355b75}.map-organizer-desk[data-v-5e2f9943]{background-color:#48633a}.map-team[data-v-5e2f9943]{background-color:#222}.map-team[data-v-5e2f9943],.map-team[data-v-5e2f9943]:active{cursor:default}.map-team-handle[data-v-5e2f9943]{cursor:grab;background-color:#48633a;border-radius:6px 6px 0 0;margin:-8px -24px 8px -8px;padding:8px 24px 8px 8px}.map-team-handle[data-v-5e2f9943]:active{cursor:grabbing}.map-team-applications[data-v-5e2f9943]{margin-top:8px}.map-team-needs-applications[data-v-5e2f9943]{outline:2px solid gold}.map-item small[data-v-5e2f9943]{opacity:.75;display:block}.map-item-hide[data-v-5e2f9943]{color:inherit;cursor:pointer;background:0 0;border:0;font-size:16px;position:absolute;top:5px;right:5px}.map-team .map-item-hide[data-v-5e2f9943]{padding:0 2px;line-height:16px;top:0}.map-hidden-items[data-v-5e2f9943]{margin-top:16px}h3[data-v-f15e707a],h4[data-v-f15e707a],p[data-v-f15e707a]{margin:0}.music-group[data-v-f15e707a]{border-top:1px solid var(--brand-border);gap:8px;padding-top:12px;display:grid}.music-panel[data-v-f15e707a]{min-width:0}.music-content[data-v-f15e707a]{margin-top:12px}.playlist-picker[data-v-f15e707a]{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.music-volume[data-v-f15e707a]{align-items:center;gap:12px;width:210px;display:flex}.music-volume .n-slider[data-v-f15e707a]{min-width:100px}.track-row[data-v-f15e707a]{border:1px solid var(--brand-border);overflow-wrap:anywhere;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.track-current[data-v-f15e707a]{border-color:var(--brand-accent)}h3[data-v-6e25da79]{margin:0}.screen-plan-panel[data-v-6e25da79]{min-width:0}.plan-steps[data-v-6e25da79]{gap:12px;margin:12px 0;display:grid}.plan-step[data-v-6e25da79]{border:1px solid var(--brand-border);flex-wrap:wrap;align-items:start;gap:12px;padding:12px;display:flex}.plan-step-current[data-v-6e25da79]{border-color:var(--brand-accent)}.step-preview[data-v-6e25da79]{flex:0 0 160px;max-width:100%}.step-content[data-v-6e25da79]{overflow-wrap:anywhere;flex-direction:column;flex:240px;gap:8px;min-width:0;display:flex}.step-heading[data-v-6e25da79]{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;display:grid}.screen-scanner-video[data-v-5f530845]{aspect-ratio:1;object-fit:cover;background-color:#000;width:100%;max-height:60vh}.screens-title[data-v-361cce15]{margin:0;font-size:18px;font-weight:600}.screen-header[data-v-361cce15]{margin-bottom:8px}.screen-row[data-v-361cce15]{border-top:1px solid var(--brand-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;display:flex}.screen-status[data-v-361cce15]{color:var(--brand-text-muted);font-size:13px}.screen-empty[data-v-361cce15]{color:var(--brand-text-muted);margin:16px 0 0}.screen-error[data-v-361cce15]{color:var(--brand-error);font-size:13px}.device-details[data-v-a670747a]{overflow-wrap:anywhere}.connection[data-v-a670747a]{margin-top:16px}.team-block-hover[data-v-70e02c3e]:hover{cursor:pointer;background-color:#333}.team-content-block[data-v-70e02c3e]{padding:8px 16px}.team-name-block[data-v-70e02c3e]{font-size:20px}.link-button[data-v-70e02c3e]{margin:8px 8px 0 0}.place-image-plus[data-v-70e02c3e]{text-align:center;margin:0;padding:16px;font-size:32px}.receipt-modal[data-v-f0b8d644]{width:calc(100vw - 32px);max-width:460px;max-height:90vh;overflow-y:auto}.receipt-preview[data-v-f0b8d644]{width:384px;max-width:100%;height:auto;margin:0 auto 16px;display:block}.receipt-modal p[data-v-f0b8d644]{margin:16px 0}.ticket-scanner-video[data-v-fe322487]{aspect-ratio:1;object-fit:cover;background-color:#000;width:100%;max-height:60vh}.screen-overview[data-v-72b7e6f0],.presentation-grid[data-v-72b7e6f0]{align-items:start;gap:12px;min-width:0;display:grid}.screen-overview[data-v-72b7e6f0]>*,.presentation-grid[data-v-72b7e6f0]>*{min-width:0}@media (width>=1024px){.screen-overview[data-v-72b7e6f0],.presentation-grid[data-v-72b7e6f0]{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.reset-local-mode-modal[data-v-72b7e6f0]{width:560px;max-width:calc(100vw - 32px)}.reviews-summary[data-v-72b7e6f0]{margin-bottom:16px}.game-tab-content[data-v-72b7e6f0]{padding-top:0}.review-row[data-v-72b7e6f0]{border-top:1px solid #777;padding:16px 0}.review-row p[data-v-72b7e6f0]{white-space:pre-wrap}.team-block-hover[data-v-72b7e6f0]:hover{color:#63e2b7;cursor:pointer;border:1px solid #63e2b7}.team-content-block[data-v-72b7e6f0]{padding:20px}.team-name-block[data-v-72b7e6f0]{font-size:20px;font-weight:600}.settings-icon[data-v-72b7e6f0]{width:20px}.settings-actions[data-v-72b7e6f0]{margin-top:16px}.link-button[data-v-72b7e6f0]{width:100%;margin-top:16px}.place-image-plus[data-v-72b7e6f0]{justify-content:center;align-items:center;font-size:30px;display:flex}.name-text[data-v-72b7e6f0]{background-color:#ffffff1a;border-radius:3px;padding:3px}.qr-block[data-v-72b7e6f0]{background-color:#fff;margin:0 auto;padding:16px;line-height:0;display:inline-block}.payment-link[data-v-72b7e6f0]{color:#63e2b7}.payment-link[data-v-72b7e6f0]:focus,.payment-link[data-v-72b7e6f0]:hover{color:#8ff0cc}.give-application-image-block[data-v-72b7e6f0]{background-image:url(/assets/paper_white-ZSlTzOTx.jpg);background-size:cover;max-width:320px;margin:8px 0;padding:8px;box-shadow:0 3px 15px #626262}.give-application-image[data-v-72b7e6f0]{width:100%}.give-application-audio[data-v-72b7e6f0]{width:100%;margin:8px 0}.give-application-pdf-link[data-v-72b7e6f0]{margin:8px 0;text-decoration:underline;display:inline-block}.answer-results-scroll[data-v-72b7e6f0]{overflow-x:auto}.answers-empty[data-v-72b7e6f0]{color:#777}.answers-question[data-v-72b7e6f0]{overflow-wrap:anywhere;margin-top:16px}.answers-question-title[data-v-72b7e6f0]{margin:0 0 8px;font-size:17px;font-weight:600}.answers-question-answer[data-v-72b7e6f0]{color:#aaa;margin:0 0 16px}.correct-answer[data-v-72b7e6f0]{color:gold;white-space:pre-wrap;margin-top:8px;font-weight:500;display:inline-block}.answers-team-row[data-v-72b7e6f0]{background-color:#ffffff0d;border-radius:6px;flex-flow:wrap;align-items:center;gap:8px;margin:8px 0;padding:8px;display:flex}.answers-team-name[data-v-72b7e6f0]{overflow-wrap:anywhere;margin:0;font-size:18px;font-weight:600}.answers-team-answer[data-v-72b7e6f0]{color:#aaa;white-space:pre-wrap;flex:200px}.answers-score-input[data-v-72b7e6f0]{width:110px}.screens-title[data-v-72b7e6f0]{margin-bottom:8px;font-size:18px;font-weight:600}.screen-row[data-v-72b7e6f0]{border-top:1px solid #ffffff1a;justify-content:space-between;align-items:center;gap:8px;padding:16px 0;display:flex}.screen-status[data-v-72b7e6f0]{color:#aaa;font-size:13px}.screen-empty[data-v-72b7e6f0]{color:#aaa;margin:16px 0 0}.screen-error[data-v-72b7e6f0]{color:#f2a2a2;font-size:13px}.map-preview-layout[data-v-72b7e6f0]{grid-template-columns:minmax(0,1fr) minmax(280px,420px);gap:16px;display:grid}.screen-preview-placeholder[data-v-72b7e6f0]{aspect-ratio:16/9;color:#aaa;text-align:center;background-color:#111;justify-content:center;align-items:center;display:flex}.map-field[data-v-72b7e6f0]{cursor:grab;resize:vertical;touch-action:none;background-color:#151515;border:1px dashed #fff3;height:420px;min-height:200px;position:relative;overflow:hidden}.map-field[data-v-72b7e6f0]:active{cursor:grabbing}.map-canvas[data-v-72b7e6f0]{transform-origin:0 0;background-image:linear-gradient(#ffffff14 1px,#0000 1px),linear-gradient(90deg,#ffffff14 1px,#0000 1px);background-size:20px 20px;width:2000px;height:1000px;position:absolute}.map-item[data-v-72b7e6f0]{cursor:grab;-webkit-user-select:none;user-select:none;border-radius:6px;min-width:90px;padding:8px 24px 8px 8px;position:absolute}.map-item[data-v-72b7e6f0]:active{cursor:grabbing}.map-screen[data-v-72b7e6f0]{background-color:#355b75}.map-organizer-desk[data-v-72b7e6f0]{background-color:#48633a}.map-team[data-v-72b7e6f0]{background-color:#222}.map-team[data-v-72b7e6f0],.map-team[data-v-72b7e6f0]:active{cursor:default}.map-team-handle[data-v-72b7e6f0]{cursor:grab;background-color:#48633a;border-radius:6px 6px 0 0;margin:-8px -24px 8px -8px;padding:8px 24px 8px 10px}.map-team-handle[data-v-72b7e6f0]:active{cursor:grabbing}.map-team-applications[data-v-72b7e6f0]{margin-top:8px}.map-team-needs-applications[data-v-72b7e6f0]{outline:2px solid gold}.map-item small[data-v-72b7e6f0]{opacity:.75;display:block}.map-item-hide[data-v-72b7e6f0]{color:inherit;cursor:pointer;background:0 0;border:0;font-size:16px;position:absolute;top:5px;right:5px}.map-team .map-item-hide[data-v-72b7e6f0]{padding:0 2px;line-height:16px;top:0}.map-hidden-items[data-v-72b7e6f0]{margin-top:16px}@media (width<1024px){.map-preview-layout[data-v-72b7e6f0]{grid-template-columns:1fr}}.issued-ticket[data-v-72b7e6f0]{border-top:1px solid #777;flex-wrap:wrap;align-items:center;gap:8px;padding-top:8px;display:flex} diff --git a/frontend/dist/assets/GamesView-DXpswWeB.js b/frontend/dist/assets/GamesView-wn2Wd_PJ.js similarity index 93% rename from frontend/dist/assets/GamesView-DXpswWeB.js rename to frontend/dist/assets/GamesView-wn2Wd_PJ.js index ac7e580..d567c57 100644 --- a/frontend/dist/assets/GamesView-DXpswWeB.js +++ b/frontend/dist/assets/GamesView-wn2Wd_PJ.js @@ -1 +1 @@ -import{At as e,Cn as t,Ct as n,Jt as r,Ot as i,St as a,Tt as o,Vn as s,Xt as ee,d as c,gt as l,kt as u,sn as d,vn as f,wt as p,xt as m}from"./client-DrrW410h.js";import{i as h,r as te,t as ne}from"./ui-CXICC9ah.js";import{t as g}from"./Modal-CUD1N8ld.js";import{t as _}from"./DatePicker-UeEZr2Ml.js";import{t as v}from"./Button-BZxcJJGv.js";import{t as y}from"./Select-D0BL7DpH.js";import{t as b}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as re}from"./Upload-Q_ddyPUF.js";import{t as x}from"./Input-Bg8PolMg.js";import{t as S}from"./Alert-CewvQG_z.js";import{t as C}from"./Card-B6dtDIKO.js";import{t as w}from"./Space-CbidFwig.js";import{t as ie}from"./Flex-YVOjVK0A.js";import{i as ae,mt as oe,o as se}from"./index-cNEa5D1b.js";import{t as ce}from"./HeaderMenu-BvkSHjS4.js";import{t as le}from"./binary_client-CCuS4lkD.js";import{t as T}from"./datetime-BJNH0M1T.js";var ue={class:`center-block-custom`},de={class:`width1200`},fe=[`onClick`],pe={class:`game-title`},E={class:`game-description`},me={key:2,class:`game-date`},he={key:3,class:`game-date`},ge={key:4,class:`game-actions`},D={key:0},_e={key:0,class:`create-hint`},ve={key:1,class:`create-hint`},O=b(e({__name:`GamesPage`,setup(e){let b=ae(),O=te(),k=c(),A=f([]),ye=ne(),j=se(),M=le(),N=m(()=>j.hasAnyRole([`admin`,`organizer`,`author`])),P=m(()=>ye.environment===`venue`&&j.hasAnyRole([`admin`,`organizer`,`developer`])),F=f(!1),I=f([]),L=f(null),R=f(``),z=f(!1),B=f(!1);function be(){I.value=[],L.value=null,R.value=``,F.value=!0}function xe({fileList:e}){z.value||(I.value=e.slice(-1),R.value=``,L.value=null)}async function Se(){if(!P.value||z.value)return;let e=I.value[0]?.file;if(!e||e.size===0){R.value=`Выберите непустой ZIP-файл`;return}if(!e.name.toLowerCase().endsWith(`.zip`)){R.value=`Выберите файл с расширением .zip`;return}if(e.size>1024**3){R.value=`Размер пакета не должен превышать 1 ГиБ`;return}z.value=!0,R.value=``;try{L.value=await M.uploadGamePackage(e),await V()}catch(e){R.value=e instanceof Error?e.message:`Не удалось импортировать игру`}finally{z.value=!1}}async function Ce(){let e=L.value?.gameID;if(!(!e||B.value)){B.value=!0,R.value=``;try{if(!(await b.GetGame({ID:e})).game?.ID)throw Error(`Импортированная игра недоступна или удалена. Повторный импорт пакета не восстанавливает удалённую игру.`);await k.push(`/games/`+e)}catch(e){R.value=e instanceof Error?e.message:`Не удалось проверить доступность игры`}finally{B.value=!1}}}async function V(){try{A.value=[];let e=await b.GetGames({});A.value=e.games||[]}catch(e){O.error(e instanceof Error?e.message:`Не удалось загрузить игры`)}}V();async function we(e){k.push(`/games/`+e)}function Te(e){k.push(`/games/`+e+`/results`)}let H=f(!1),U=f(``),W=f(`online`),G=f(``),K=f(``),q=f(null),J=f(null),Y=f(!1),X=f(!1),Z=f(!1),Q=f([]),$=m(()=>Q.value.filter(e=>e.status==`public`&&e.ID!=null).map(e=>({label:e.name||``,value:e.ID})));async function Ee(){X.value=!0,Z.value=!1;try{let e=await b.GetScenariosCatalog({});Q.value=e.scenarios||[]}catch(e){Z.value=!0,O.error(e instanceof Error?e.message:`Не удалось загрузить сценарии`)}finally{X.value=!1}}function De(){U.value=``,W.value=`online`,G.value=``,K.value=``,q.value=null,J.value=null,H.value=!0,Ee()}async function Oe(){let e=U.value.trim(),t=q.value,n=J.value;if(!(e==``||t==null||n==null)){Y.value=!0;try{let r=await b.AddGame({name:e,description:G.value,location:K.value.trim(),format:W.value,startAt:new Date(n).toISOString(),scenarioID:t});O.success(`Игра создана`),H.value=!1,k.push(`/games/`+r.ID)}catch(e){O.error(e instanceof Error?e.message:`Не удалось создать игру`)}finally{Y.value=!1}}}return(e,c)=>(r(),o(l,null,[a(`div`,ue,[a(`div`,de,[P.value?(r(),n(t(v),{key:0,onClick:be},{default:d(()=>[...c[12]||=[i(`Импорт игры`,-1)]]),_:1})):p(``,!0),N.value?(r(),o(`div`,{key:1,class:`game-block game-block-hover`,onClick:c[0]||=e=>De()},[...c[13]||=[a(`div`,{class:`game-create-content`},[a(`span`,{class:`game-create-plus`},`+`),a(`span`,null,`Создать игру`)],-1)]])):p(``,!0),(r(!0),o(l,null,ee(A.value,e=>(r(),o(`div`,{key:e.ID,class:`game-block`,onClick:t=>we(e.ID)},[a(`div`,pe,s(e.name)+` — `+s(e.format===`offline`?`Offline`:`Online`),1),e.export?.state===`preparing`?(r(),n(t(h),{key:0,type:`warning`,size:`small`},{default:d(()=>[...c[14]||=[i(` Подготовка офлайн-пакета `,-1)]]),_:1})):e.export?.state===`ready`?(r(),n(t(h),{key:1,type:`info`,size:`small`},{default:d(()=>[...c[15]||=[i(` Игра в офлайн-режиме `,-1)]]),_:1})):p(``,!0),a(`div`,E,s(e.description),1),t(T)(e.startAt)?(r(),o(`div`,me,` Начало: `+s(t(T)(e.startAt)),1)):p(``,!0),e.location?(r(),o(`div`,he,`Место: `+s(e.location),1)):p(``,!0),N.value&&e.status==`finish`?(r(),o(`div`,ge,[u(t(v),{size:`small`,ghost:``,onClick:oe(t=>Te(e.ID),[`stop`])},{default:d(()=>[...c[16]||=[i(`Результаты`,-1)]]),_:1},8,[`onClick`])])):p(``,!0)],8,fe))),128))])]),u(t(g),{show:F.value,"onUpdate:show":c[2]||=e=>F.value=e,"mask-closable":!z.value,"close-on-esc":!z.value},{default:d(()=>[u(t(C),{style:{width:`min(94vw, 600px)`},title:`Импорт игры`,bordered:!1,role:`dialog`,"aria-modal":`true`},{"header-extra":d(()=>[u(t(v),{disabled:z.value,"aria-label":`Закрыть импорт`,onClick:c[1]||=e=>F.value=!1},{default:d(()=>[...c[17]||=[i(`Закрыть`,-1)]]),_:1},8,[`disabled`])]),default:d(()=>[u(t(w),{vertical:``},{default:d(()=>[c[22]||=a(`p`,null,`Выберите один ZIP-пакет размером до 1 ГиБ. Содержимое проверит сервер.`,-1),u(t(re),{"file-list":I.value,"default-upload":!1,max:1,accept:`.zip`,disabled:z.value,onChange:xe},{default:d(()=>[u(t(v),{disabled:z.value},{default:d(()=>[...c[18]||=[i(`Выбрать ZIP`,-1)]]),_:1},8,[`disabled`])]),_:1},8,[`file-list`,`disabled`]),I.value[0]?.file?(r(),o(`p`,D,s(I.value[0].name)+` — `+s(I.value[0].file.size.toLocaleString(`ru-RU`))+` байт `,1)):p(``,!0),z.value?(r(),n(t(S),{key:1,type:`info`,role:`status`},{default:d(()=>[...c[19]||=[i(`Импортируем пакет…`,-1)]]),_:1})):p(``,!0),R.value?(r(),n(t(S),{key:2,type:`error`,role:`alert`},{default:d(()=>[i(s(R.value),1)]),_:1})):p(``,!0),L.value?(r(),n(t(S),{key:3,type:`success`,role:`status`},{default:d(()=>[i(s(L.value.repeated?`Пакет уже импортирован`:`Игра импортирована`),1)]),_:1})):p(``,!0),L.value?(r(),n(t(v),{key:4,loading:B.value,disabled:B.value,onClick:Ce},{default:d(()=>[...c[20]||=[i(`Открыть игру`,-1)]]),_:1},8,[`loading`,`disabled`])):(r(),n(t(v),{key:5,loading:z.value,disabled:z.value||!I.value.length||!P.value,onClick:Se},{default:d(()=>[...c[21]||=[i(`Загрузить пакет`,-1)]]),_:1},8,[`loading`,`disabled`]))]),_:1})]),_:1})]),_:1},8,[`show`,`mask-closable`,`close-on-esc`]),u(t(g),{show:H.value,"onUpdate:show":c[11]||=e=>H.value=e},{default:d(()=>[u(t(C),{style:{width:`min(94vw, 600px)`},title:`Создание игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":d(()=>[u(t(v),{onClick:c[3]||=e=>H.value=!1},{default:d(()=>[...c[23]||=[i(` x `,-1)]]),_:1})]),footer:d(()=>[u(t(ie),{justify:`end`},{default:d(()=>[u(t(v),{onClick:c[10]||=e=>Oe(),loading:Y.value,disabled:U.value.trim().length==0||q.value==null||J.value==null||Y.value},{default:d(()=>[...c[30]||=[i(` Создать `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),default:d(()=>[u(t(w),{vertical:``},{default:d(()=>[c[24]||=a(`p`,null,`Название`,-1),u(t(x),{value:U.value,"onUpdate:value":c[4]||=e=>U.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),c[25]||=a(`p`,null,`Формат игры`,-1),u(t(y),{value:W.value,"onUpdate:value":c[5]||=e=>W.value=e,options:[{label:`Online`,value:`online`},{label:`Offline`,value:`offline`}],"aria-label":`Формат игры`},null,8,[`value`]),c[26]||=a(`p`,null,`Описание`,-1),u(t(x),{value:G.value,"onUpdate:value":c[6]||=e=>G.value=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`]),c[27]||=a(`p`,null,`Место проведения`,-1),u(t(x),{value:K.value,"onUpdate:value":c[7]||=e=>K.value=e,type:`text`,placeholder:`Оставьте пустым для онлайн-игры`},null,8,[`value`]),c[28]||=a(`p`,null,`Сценарий (дело из каталога)`,-1),u(t(y),{value:q.value,"onUpdate:value":c[8]||=e=>q.value=e,options:$.value,placeholder:`Выберите дело из каталога`},null,8,[`value`,`options`]),X.value?(r(),o(`p`,_e,`Загружаем сценарии...`)):$.value.length==0?(r(),o(`p`,ve,s(Z.value?`Не удалось загрузить список сценариев`:`В каталоге пока нет опубликованных сценариев`),1)):p(``,!0),c[29]||=a(`p`,null,`Дата и время проведения`,-1),u(t(_),{value:J.value,"onUpdate:value":c[9]||=e=>J.value=e,type:`datetime`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),u(ce,{active:`games`})],64))}}),[[`__scopeId`,`data-v-e8cd7764`]]),k=e({__name:`GamesView`,setup(e){return(e,t)=>(r(),n(O))}});export{k as default}; \ No newline at end of file +import{At as e,Cn as t,Ct as n,Jt as r,Ot as i,St as a,Tt as o,Vn as s,Xt as ee,d as c,gt as l,kt as u,sn as d,vn as f,wt as p,xt as m}from"./client-DrrW410h.js";import{i as h,r as te,t as ne}from"./ui-BXphkCO3.js";import{t as g}from"./Modal-CBvJhnU9.js";import{t as _}from"./DatePicker-CtSDNHOH.js";import{t as v}from"./Button-VP0HlDWp.js";import{t as y}from"./Select-BQpeZ0on.js";import{t as b}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as re}from"./Upload-D5dycHVD.js";import{t as x}from"./Input-B0pT-V_P.js";import{t as S}from"./Alert-CKEVYkKu.js";import{t as C}from"./Card-DpsyX5Gm.js";import{t as w}from"./Space-J-gv2y5L.js";import{t as ie}from"./Flex-C50LOLeC.js";import{i as ae,mt as oe,o as se}from"./index-CvfVA1ID.js";import{t as ce}from"./HeaderMenu-DjAjwijB.js";import{t as le}from"./binary_client-BWJUWeZu.js";import{t as T}from"./datetime-BJNH0M1T.js";var ue={class:`center-block-custom`},de={class:`width1200`},fe=[`onClick`],pe={class:`game-title`},E={class:`game-description`},me={key:2,class:`game-date`},he={key:3,class:`game-date`},ge={key:4,class:`game-actions`},D={key:0},_e={key:0,class:`create-hint`},ve={key:1,class:`create-hint`},O=b(e({__name:`GamesPage`,setup(e){let b=ae(),O=te(),k=c(),A=f([]),ye=ne(),j=se(),M=le(),N=m(()=>j.hasAnyRole([`admin`,`organizer`,`author`])),P=m(()=>ye.environment===`venue`&&j.hasAnyRole([`admin`,`organizer`,`developer`])),F=f(!1),I=f([]),L=f(null),R=f(``),z=f(!1),B=f(!1);function be(){I.value=[],L.value=null,R.value=``,F.value=!0}function xe({fileList:e}){z.value||(I.value=e.slice(-1),R.value=``,L.value=null)}async function Se(){if(!P.value||z.value)return;let e=I.value[0]?.file;if(!e||e.size===0){R.value=`Выберите непустой ZIP-файл`;return}if(!e.name.toLowerCase().endsWith(`.zip`)){R.value=`Выберите файл с расширением .zip`;return}if(e.size>1024**3){R.value=`Размер пакета не должен превышать 1 ГиБ`;return}z.value=!0,R.value=``;try{L.value=await M.uploadGamePackage(e),await V()}catch(e){R.value=e instanceof Error?e.message:`Не удалось импортировать игру`}finally{z.value=!1}}async function Ce(){let e=L.value?.gameID;if(!(!e||B.value)){B.value=!0,R.value=``;try{if(!(await b.GetGame({ID:e})).game?.ID)throw Error(`Импортированная игра недоступна или удалена. Повторный импорт пакета не восстанавливает удалённую игру.`);await k.push(`/games/`+e)}catch(e){R.value=e instanceof Error?e.message:`Не удалось проверить доступность игры`}finally{B.value=!1}}}async function V(){try{A.value=[];let e=await b.GetGames({});A.value=e.games||[]}catch(e){O.error(e instanceof Error?e.message:`Не удалось загрузить игры`)}}V();async function we(e){k.push(`/games/`+e)}function Te(e){k.push(`/games/`+e+`/results`)}let H=f(!1),U=f(``),W=f(`online`),G=f(``),K=f(``),q=f(null),J=f(null),Y=f(!1),X=f(!1),Z=f(!1),Q=f([]),$=m(()=>Q.value.filter(e=>e.status==`public`&&e.ID!=null).map(e=>({label:e.name||``,value:e.ID})));async function Ee(){X.value=!0,Z.value=!1;try{let e=await b.GetScenariosCatalog({});Q.value=e.scenarios||[]}catch(e){Z.value=!0,O.error(e instanceof Error?e.message:`Не удалось загрузить сценарии`)}finally{X.value=!1}}function De(){U.value=``,W.value=`online`,G.value=``,K.value=``,q.value=null,J.value=null,H.value=!0,Ee()}async function Oe(){let e=U.value.trim(),t=q.value,n=J.value;if(!(e==``||t==null||n==null)){Y.value=!0;try{let r=await b.AddGame({name:e,description:G.value,location:K.value.trim(),format:W.value,startAt:new Date(n).toISOString(),scenarioID:t});O.success(`Игра создана`),H.value=!1,k.push(`/games/`+r.ID)}catch(e){O.error(e instanceof Error?e.message:`Не удалось создать игру`)}finally{Y.value=!1}}}return(e,c)=>(r(),o(l,null,[a(`div`,ue,[a(`div`,de,[P.value?(r(),n(t(v),{key:0,onClick:be},{default:d(()=>[...c[12]||=[i(`Импорт игры`,-1)]]),_:1})):p(``,!0),N.value?(r(),o(`div`,{key:1,class:`game-block game-block-hover`,onClick:c[0]||=e=>De()},[...c[13]||=[a(`div`,{class:`game-create-content`},[a(`span`,{class:`game-create-plus`},`+`),a(`span`,null,`Создать игру`)],-1)]])):p(``,!0),(r(!0),o(l,null,ee(A.value,e=>(r(),o(`div`,{key:e.ID,class:`game-block`,onClick:t=>we(e.ID)},[a(`div`,pe,s(e.name)+` — `+s(e.format===`offline`?`Offline`:`Online`),1),e.export?.state===`preparing`?(r(),n(t(h),{key:0,type:`warning`,size:`small`},{default:d(()=>[...c[14]||=[i(` Подготовка офлайн-пакета `,-1)]]),_:1})):e.export?.state===`ready`?(r(),n(t(h),{key:1,type:`info`,size:`small`},{default:d(()=>[...c[15]||=[i(` Игра в офлайн-режиме `,-1)]]),_:1})):p(``,!0),a(`div`,E,s(e.description),1),t(T)(e.startAt)?(r(),o(`div`,me,` Начало: `+s(t(T)(e.startAt)),1)):p(``,!0),e.location?(r(),o(`div`,he,`Место: `+s(e.location),1)):p(``,!0),N.value&&e.status==`finish`?(r(),o(`div`,ge,[u(t(v),{size:`small`,ghost:``,onClick:oe(t=>Te(e.ID),[`stop`])},{default:d(()=>[...c[16]||=[i(`Результаты`,-1)]]),_:1},8,[`onClick`])])):p(``,!0)],8,fe))),128))])]),u(t(g),{show:F.value,"onUpdate:show":c[2]||=e=>F.value=e,"mask-closable":!z.value,"close-on-esc":!z.value},{default:d(()=>[u(t(C),{style:{width:`min(94vw, 600px)`},title:`Импорт игры`,bordered:!1,role:`dialog`,"aria-modal":`true`},{"header-extra":d(()=>[u(t(v),{disabled:z.value,"aria-label":`Закрыть импорт`,onClick:c[1]||=e=>F.value=!1},{default:d(()=>[...c[17]||=[i(`Закрыть`,-1)]]),_:1},8,[`disabled`])]),default:d(()=>[u(t(w),{vertical:``},{default:d(()=>[c[22]||=a(`p`,null,`Выберите один ZIP-пакет размером до 1 ГиБ. Содержимое проверит сервер.`,-1),u(t(re),{"file-list":I.value,"default-upload":!1,max:1,accept:`.zip`,disabled:z.value,onChange:xe},{default:d(()=>[u(t(v),{disabled:z.value},{default:d(()=>[...c[18]||=[i(`Выбрать ZIP`,-1)]]),_:1},8,[`disabled`])]),_:1},8,[`file-list`,`disabled`]),I.value[0]?.file?(r(),o(`p`,D,s(I.value[0].name)+` — `+s(I.value[0].file.size.toLocaleString(`ru-RU`))+` байт `,1)):p(``,!0),z.value?(r(),n(t(S),{key:1,type:`info`,role:`status`},{default:d(()=>[...c[19]||=[i(`Импортируем пакет…`,-1)]]),_:1})):p(``,!0),R.value?(r(),n(t(S),{key:2,type:`error`,role:`alert`},{default:d(()=>[i(s(R.value),1)]),_:1})):p(``,!0),L.value?(r(),n(t(S),{key:3,type:`success`,role:`status`},{default:d(()=>[i(s(L.value.repeated?`Пакет уже импортирован`:`Игра импортирована`),1)]),_:1})):p(``,!0),L.value?(r(),n(t(v),{key:4,loading:B.value,disabled:B.value,onClick:Ce},{default:d(()=>[...c[20]||=[i(`Открыть игру`,-1)]]),_:1},8,[`loading`,`disabled`])):(r(),n(t(v),{key:5,loading:z.value,disabled:z.value||!I.value.length||!P.value,onClick:Se},{default:d(()=>[...c[21]||=[i(`Загрузить пакет`,-1)]]),_:1},8,[`loading`,`disabled`]))]),_:1})]),_:1})]),_:1},8,[`show`,`mask-closable`,`close-on-esc`]),u(t(g),{show:H.value,"onUpdate:show":c[11]||=e=>H.value=e},{default:d(()=>[u(t(C),{style:{width:`min(94vw, 600px)`},title:`Создание игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":d(()=>[u(t(v),{onClick:c[3]||=e=>H.value=!1},{default:d(()=>[...c[23]||=[i(` x `,-1)]]),_:1})]),footer:d(()=>[u(t(ie),{justify:`end`},{default:d(()=>[u(t(v),{onClick:c[10]||=e=>Oe(),loading:Y.value,disabled:U.value.trim().length==0||q.value==null||J.value==null||Y.value},{default:d(()=>[...c[30]||=[i(` Создать `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),default:d(()=>[u(t(w),{vertical:``},{default:d(()=>[c[24]||=a(`p`,null,`Название`,-1),u(t(x),{value:U.value,"onUpdate:value":c[4]||=e=>U.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),c[25]||=a(`p`,null,`Формат игры`,-1),u(t(y),{value:W.value,"onUpdate:value":c[5]||=e=>W.value=e,options:[{label:`Online`,value:`online`},{label:`Offline`,value:`offline`}],"aria-label":`Формат игры`},null,8,[`value`]),c[26]||=a(`p`,null,`Описание`,-1),u(t(x),{value:G.value,"onUpdate:value":c[6]||=e=>G.value=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`]),c[27]||=a(`p`,null,`Место проведения`,-1),u(t(x),{value:K.value,"onUpdate:value":c[7]||=e=>K.value=e,type:`text`,placeholder:`Оставьте пустым для онлайн-игры`},null,8,[`value`]),c[28]||=a(`p`,null,`Сценарий (дело из каталога)`,-1),u(t(y),{value:q.value,"onUpdate:value":c[8]||=e=>q.value=e,options:$.value,placeholder:`Выберите дело из каталога`},null,8,[`value`,`options`]),X.value?(r(),o(`p`,_e,`Загружаем сценарии...`)):$.value.length==0?(r(),o(`p`,ve,s(Z.value?`Не удалось загрузить список сценариев`:`В каталоге пока нет опубликованных сценариев`),1)):p(``,!0),c[29]||=a(`p`,null,`Дата и время проведения`,-1),u(t(_),{value:J.value,"onUpdate:value":c[9]||=e=>J.value=e,type:`datetime`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),u(ce,{active:`games`})],64))}}),[[`__scopeId`,`data-v-e8cd7764`]]),k=e({__name:`GamesView`,setup(e){return(e,t)=>(r(),n(O))}});export{k as default}; \ No newline at end of file diff --git a/frontend/dist/assets/HeaderMenu-BvkSHjS4.js b/frontend/dist/assets/HeaderMenu-DjAjwijB.js similarity index 95% rename from frontend/dist/assets/HeaderMenu-BvkSHjS4.js rename to frontend/dist/assets/HeaderMenu-DjAjwijB.js index ab2f32d..a44ecaa 100644 --- a/frontend/dist/assets/HeaderMenu-BvkSHjS4.js +++ b/frontend/dist/assets/HeaderMenu-DjAjwijB.js @@ -1 +1 @@ -import{At as e,Cn as t,Ct as n,Jt as r,Ot as i,St as a,Tt as o,Vn as s,d as c,in as l,kt as u,sn as d,vn as f,wt as p,xt as m,zn as h}from"./client-DrrW410h.js";import{i as g,n as _,r as v,t as y}from"./ui-CXICC9ah.js";import{t as b}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{ct as x,o as S}from"./index-cNEa5D1b.js";var C={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 24 24`},w=e({name:`MenuOutlined`,render:function(e,t){return r(),o(`svg`,C,t[0]||=[a(`path`,{d:`M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z`,fill:`currentColor`},null,-1)])}}),T={class:`menu-block`},E=[`aria-expanded`,`aria-label`],D={class:`right-group`},O=b(e({__name:`HeaderMenu`,props:{active:{}},setup(e){let b=e,C=S(),O=c(),k=y(),A=v(),{permissions:j,environment:M,isLoadingEnvironment:N}=x(k),P=m(()=>N.value?`Среда: …`:M.value===`prod`?`Сервер`:M.value===`venue`?`Локальная сеть`:`Среда: ?`);l(()=>C.user,async()=>{try{await k.load()}catch(e){A.error(`Не удалось загрузить сведения сервера`),console.error(`Failed to load server information:`,e)}},{immediate:!0});function F(e){return j.value.includes(e)}let I=()=>{O.push(`/login`)},L=()=>{C.logout(),O.push(`/login`)},R=f(!1);return(e,c)=>(r(),o(`div`,T,[a(`button`,{type:`button`,class:`burger-button`,"aria-expanded":R.value,"aria-label":R.value?`Закрыть меню`:`Открыть меню`,onClick:c[0]||=e=>R.value=!R.value},[u(t(_),{class:`burger-icon`,size:`28`},{default:d(()=>[u(t(w))]),_:1})],8,E),a(`div`,{class:h([`left-group menu-buttons-block`,R.value?``:`menu-buttons-block-active`])},[a(`button`,{type:`button`,class:h([`menu-item-block`,{active:b.active==`main`}]),onClick:c[1]||=e=>t(O).push(`/`)},` Главная `,2),t(C).hasRole(`user`)?(r(),o(`button`,{key:0,type:`button`,class:h([`menu-item-block`,{active:b.active==`office`}]),onClick:c[2]||=e=>t(O).push(`/office`)},` Кабинет `,2)):p(``,!0),F(`games_page`)?(r(),o(`button`,{key:1,type:`button`,class:h([`menu-item-block`,{active:b.active==`games`}]),onClick:c[3]||=e=>t(O).push(`/games`)},` Игры `,2)):p(``,!0),t(C).isAuthenticated?(r(),o(`button`,{key:2,type:`button`,class:`menu-item-block`,onClick:c[4]||=e=>t(O).push(`/screen`)},` Экран `)):p(``,!0),t(C).hasAnyRole([`author`,`organizer`])?(r(),o(`button`,{key:3,type:`button`,class:h([`menu-item-block`,{active:b.active==`playlists`}]),onClick:c[5]||=e=>t(O).push(`/playlists`)},` Плейлисты `,2)):p(``,!0),a(`button`,{type:`button`,class:h([`menu-item-block`,{active:b.active==`catalog`}]),onClick:c[6]||=e=>t(O).push(`/catalog`)},` Каталог `,2),F(`scenarios_page`)?(r(),o(`button`,{key:4,type:`button`,class:h([`menu-item-block`,{active:b.active==`scenarios`}]),onClick:c[7]||=e=>t(O).push(`/scenarios`)},` Сценарии `,2)):p(``,!0),F(`tasks_page`)?(r(),o(`button`,{key:5,type:`button`,class:h([`menu-item-block`,{active:b.active==`tasks`}]),onClick:c[8]||=e=>t(O).push(`/tasks`)},` Задачи `,2)):p(``,!0),F(`users_page`)?(r(),o(`button`,{key:6,type:`button`,class:h([`menu-item-block`,{active:b.active==`users`}]),onClick:c[9]||=e=>t(O).push(`/users`)},` Пользователи `,2)):p(``,!0),F(`reviews_page`)?(r(),o(`button`,{key:7,type:`button`,class:h([`menu-item-block`,{active:b.active==`reviews`}]),onClick:c[10]||=e=>t(O).push(`/reviews`)},` Отзывы `,2)):p(``,!0)],2),a(`div`,D,[t(C).isAuthenticated?(r(),n(t(g),{key:0,size:`small`,type:t(M)===`venue`?`warning`:`default`,title:t(M)?`Среда подключённого сервера`:`Среда сервера не определена`,role:`status`},{default:d(()=>[i(s(P.value),1)]),_:1},8,[`type`,`title`])):p(``,!0),t(C).isAuthenticated?p(``,!0):(r(),o(`button`,{key:1,type:`button`,class:`menu-item-block right`,onClick:I},` Войти `)),t(C).isAuthenticated?(r(),o(`button`,{key:2,type:`button`,class:`menu-item-block right`,onClick:L},` Выйти `)):p(``,!0)])]))}}),[[`__scopeId`,`data-v-e44a1008`]]);export{O as t}; \ No newline at end of file +import{At as e,Cn as t,Ct as n,Jt as r,Ot as i,St as a,Tt as o,Vn as s,d as c,in as l,kt as u,sn as d,vn as f,wt as p,xt as m,zn as h}from"./client-DrrW410h.js";import{i as g,n as _,r as v,t as y}from"./ui-BXphkCO3.js";import{t as b}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{ct as x,o as S}from"./index-CvfVA1ID.js";var C={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 24 24`},w=e({name:`MenuOutlined`,render:function(e,t){return r(),o(`svg`,C,t[0]||=[a(`path`,{d:`M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z`,fill:`currentColor`},null,-1)])}}),T={class:`menu-block`},E=[`aria-expanded`,`aria-label`],D={class:`right-group`},O=b(e({__name:`HeaderMenu`,props:{active:{}},setup(e){let b=e,C=S(),O=c(),k=y(),A=v(),{permissions:j,environment:M,isLoadingEnvironment:N}=x(k),P=m(()=>N.value?`Среда: …`:M.value===`prod`?`Сервер`:M.value===`venue`?`Локальная сеть`:`Среда: ?`);l(()=>C.user,async()=>{try{await k.load()}catch(e){A.error(`Не удалось загрузить сведения сервера`),console.error(`Failed to load server information:`,e)}},{immediate:!0});function F(e){return j.value.includes(e)}let I=()=>{O.push(`/login`)},L=()=>{C.logout(),O.push(`/login`)},R=f(!1);return(e,c)=>(r(),o(`div`,T,[a(`button`,{type:`button`,class:`burger-button`,"aria-expanded":R.value,"aria-label":R.value?`Закрыть меню`:`Открыть меню`,onClick:c[0]||=e=>R.value=!R.value},[u(t(_),{class:`burger-icon`,size:`28`},{default:d(()=>[u(t(w))]),_:1})],8,E),a(`div`,{class:h([`left-group menu-buttons-block`,R.value?``:`menu-buttons-block-active`])},[a(`button`,{type:`button`,class:h([`menu-item-block`,{active:b.active==`main`}]),onClick:c[1]||=e=>t(O).push(`/`)},` Главная `,2),t(C).hasRole(`user`)?(r(),o(`button`,{key:0,type:`button`,class:h([`menu-item-block`,{active:b.active==`office`}]),onClick:c[2]||=e=>t(O).push(`/office`)},` Кабинет `,2)):p(``,!0),F(`games_page`)?(r(),o(`button`,{key:1,type:`button`,class:h([`menu-item-block`,{active:b.active==`games`}]),onClick:c[3]||=e=>t(O).push(`/games`)},` Игры `,2)):p(``,!0),t(C).isAuthenticated?(r(),o(`button`,{key:2,type:`button`,class:`menu-item-block`,onClick:c[4]||=e=>t(O).push(`/screen`)},` Экран `)):p(``,!0),t(C).hasAnyRole([`author`,`organizer`])?(r(),o(`button`,{key:3,type:`button`,class:h([`menu-item-block`,{active:b.active==`playlists`}]),onClick:c[5]||=e=>t(O).push(`/playlists`)},` Плейлисты `,2)):p(``,!0),a(`button`,{type:`button`,class:h([`menu-item-block`,{active:b.active==`catalog`}]),onClick:c[6]||=e=>t(O).push(`/catalog`)},` Каталог `,2),F(`scenarios_page`)?(r(),o(`button`,{key:4,type:`button`,class:h([`menu-item-block`,{active:b.active==`scenarios`}]),onClick:c[7]||=e=>t(O).push(`/scenarios`)},` Сценарии `,2)):p(``,!0),F(`tasks_page`)?(r(),o(`button`,{key:5,type:`button`,class:h([`menu-item-block`,{active:b.active==`tasks`}]),onClick:c[8]||=e=>t(O).push(`/tasks`)},` Задачи `,2)):p(``,!0),F(`users_page`)?(r(),o(`button`,{key:6,type:`button`,class:h([`menu-item-block`,{active:b.active==`users`}]),onClick:c[9]||=e=>t(O).push(`/users`)},` Пользователи `,2)):p(``,!0),F(`reviews_page`)?(r(),o(`button`,{key:7,type:`button`,class:h([`menu-item-block`,{active:b.active==`reviews`}]),onClick:c[10]||=e=>t(O).push(`/reviews`)},` Отзывы `,2)):p(``,!0)],2),a(`div`,D,[t(C).isAuthenticated?(r(),n(t(g),{key:0,size:`small`,type:t(M)===`venue`?`warning`:`default`,title:t(M)?`Среда подключённого сервера`:`Среда сервера не определена`,role:`status`},{default:d(()=>[i(s(P.value),1)]),_:1},8,[`type`,`title`])):p(``,!0),t(C).isAuthenticated?p(``,!0):(r(),o(`button`,{key:1,type:`button`,class:`menu-item-block right`,onClick:I},` Войти `)),t(C).isAuthenticated?(r(),o(`button`,{key:2,type:`button`,class:`menu-item-block right`,onClick:L},` Выйти `)):p(``,!0)])]))}}),[[`__scopeId`,`data-v-e44a1008`]]);export{O as t}; \ No newline at end of file diff --git a/frontend/dist/assets/HomeView-rBR7Fats.js b/frontend/dist/assets/HomeView-uP_nIScL.js similarity index 96% rename from frontend/dist/assets/HomeView-rBR7Fats.js rename to frontend/dist/assets/HomeView-uP_nIScL.js index 9ade06e..4064ec1 100644 --- a/frontend/dist/assets/HomeView-rBR7Fats.js +++ b/frontend/dist/assets/HomeView-uP_nIScL.js @@ -1 +1 @@ -import{At as e,Cn as t,Ct as n,Jt as r,Ot as i,St as a,Tt as o,Vn as s,Xt as c,a as l,gt as u,kt as d,on as f,sn as p,u as m,vn as h}from"./client-DrrW410h.js";import{t as g}from"./Button-BZxcJJGv.js";import{t as _}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as v}from"./HeaderMenu-BvkSHjS4.js";import{t as y}from"./SiteFooter-BjbzmgYc.js";import{t as b}from"./MessagePaper-B4rdZ1RT.js";var x={class:`width1200 home-content`},S={class:`hero`,"aria-labelledby":`home-title`},C={class:`hero-copy`},w={class:`actions`},T={class:`dossier`},E={class:`steps`},D={class:`step-number`,"aria-hidden":`true`},O={class:`closing`,"aria-labelledby":`closing-title`},k=_(e({__name:`HomePage`,setup(e){let n=m(),_=h(null),k=h(null),A=[{title:`Выберите дело`,text:`Найдите в каталоге историю, которую хочется распутать.`},{title:`Соберите компанию`,text:`Договоритесь о встрече и подготовьте сайт и бумажные материалы выбранного дела.`},{title:`Следуйте за уликами`,text:`Изучайте материалы, замечайте детали и обсуждайте версии. Каждый может увидеть то, что упустили другие.`},{title:`Найдите разгадку`,text:`Сопоставьте факты и сформулируйте общее решение. Какая версия объясняет всё?`}];function j(){let e=_.value,t=k.value;!e||!t||e.scrollTo({top:e.scrollTop+t.getBoundingClientRect().top-e.getBoundingClientRect().top-parseFloat(getComputedStyle(t).scrollMarginTop)})}return f(()=>{n.hash===`#how-it-works`&&j()}),(e,n)=>(r(),o(u,null,[d(v,{active:`main`}),a(`div`,{ref_key:`homeScroll`,ref:_,class:`center-block-custom home-scroll`},[a(`main`,x,[a(`section`,S,[a(`div`,C,[n[2]||=a(`p`,{class:`eyebrow`},`Вечерний детектив · расследование своей компанией`,-1),n[3]||=a(`h1`,{id:`home-title`},[i(`Соберите друзей.`),a(`br`),a(`span`,null,`Раскройте дело.`)],-1),n[4]||=a(`p`,{class:`hero-description`},` Изучайте материалы на сайте и на бумаге, сопоставляйте улики и обсуждайте версии. Вместе найдите разгадку детективной истории. `,-1),a(`div`,w,[d(t(l),{to:`/catalog`,custom:``},{default:p(({href:e,navigate:r})=>[d(t(g),{tag:`a`,href:e,type:`primary`,size:`large`,onClick:r},{default:p(()=>[...n[0]||=[i(` Выбрать дело `,-1)]]),_:1},8,[`href`,`onClick`])]),_:1}),d(t(g),{size:`large`,secondary:``,onClick:j},{default:p(()=>[...n[1]||=[i(` Как проходит игра `,-1)]]),_:1})]),n[5]||=a(`p`,{class:`hero-note`},`Ваша компания. Одна история. Множество версий.`,-1)]),a(`div`,T,[d(b,null,{default:p(()=>[...n[6]||=[a(`div`,{class:`dossier-content`},[a(`p`,{class:`dossier-label`},`Вечерний детектив / досье`),a(`h2`,{class:`dossier-title`},`Материалы дела`),a(`p`,{class:`dossier-intro`},`Истина складывается из деталей.`),a(`dl`,{class:`dossier-list`},[a(`div`,null,[a(`dt`,null,`01 / Улики`),a(`dd`,null,`Изучите. Сопоставьте. Заметьте связь.`)]),a(`div`,null,[a(`dt`,null,`02 / Версии`),a(`dd`,null,`Обсудите, что могло произойти.`)]),a(`div`,null,[a(`dt`,null,`03 / Ваше решение`),a(`dd`,null,`Соберите факты в одну историю.`)])]),a(`p`,{class:`dossier-footer`},`Дело ждёт своих детективов.`)],-1)]]),_:1})])]),a(`section`,{id:`how-it-works`,ref_key:`howItWorks`,ref:k,class:`how-it-works`,"aria-labelledby":`how-title`},[n[7]||=a(`div`,{class:`section-heading`},[a(`p`,{class:`eyebrow`},`От первой улики до разгадки`),a(`h2`,{id:`how-title`},`Как проходит игра`),a(`p`,{class:`section-description`},` Сайт и бумажные материалы — части одного дела. А главное в расследовании — вы и ваши обсуждения. `)],-1),a(`ol`,E,[(r(),o(u,null,c(A,(e,t)=>a(`li`,{key:e.title,class:`step`},[a(`span`,D,`0`+s(t+1),1),a(`h3`,null,s(e.title),1),a(`p`,null,s(e.text),1)])),64))])],512),a(`section`,O,[n[9]||=a(`p`,{class:`eyebrow`},`Планы на вечер найдены`,-1),n[10]||=a(`h2`,{id:`closing-title`},[i(`Один вечер.`),a(`br`),i(`Общее расследование.`)],-1),n[11]||=a(`p`,null,`Соберите тех, с кем хочется спорить о версиях и радоваться найденной разгадке.`,-1),d(t(l),{to:`/catalog`,custom:``},{default:p(({href:e,navigate:r})=>[d(t(g),{tag:`a`,href:e,type:`primary`,size:`large`,onClick:r},{default:p(()=>[...n[8]||=[i(` Выбрать дело `,-1)]]),_:1},8,[`href`,`onClick`])]),_:1})])]),d(y,{onShowHowItWorks:j})],512)],64))}}),[[`__scopeId`,`data-v-36bc927b`]]),A=e({__name:`HomeView`,setup(e){return(e,t)=>(r(),n(k))}});export{A as default}; \ No newline at end of file +import{At as e,Cn as t,Ct as n,Jt as r,Ot as i,St as a,Tt as o,Vn as s,Xt as c,a as l,gt as u,kt as d,on as f,sn as p,u as m,vn as h}from"./client-DrrW410h.js";import{t as g}from"./Button-VP0HlDWp.js";import{t as _}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as v}from"./HeaderMenu-DjAjwijB.js";import{t as y}from"./SiteFooter-BjbzmgYc.js";import{t as b}from"./MessagePaper-B4rdZ1RT.js";var x={class:`width1200 home-content`},S={class:`hero`,"aria-labelledby":`home-title`},C={class:`hero-copy`},w={class:`actions`},T={class:`dossier`},E={class:`steps`},D={class:`step-number`,"aria-hidden":`true`},O={class:`closing`,"aria-labelledby":`closing-title`},k=_(e({__name:`HomePage`,setup(e){let n=m(),_=h(null),k=h(null),A=[{title:`Выберите дело`,text:`Найдите в каталоге историю, которую хочется распутать.`},{title:`Соберите компанию`,text:`Договоритесь о встрече и подготовьте сайт и бумажные материалы выбранного дела.`},{title:`Следуйте за уликами`,text:`Изучайте материалы, замечайте детали и обсуждайте версии. Каждый может увидеть то, что упустили другие.`},{title:`Найдите разгадку`,text:`Сопоставьте факты и сформулируйте общее решение. Какая версия объясняет всё?`}];function j(){let e=_.value,t=k.value;!e||!t||e.scrollTo({top:e.scrollTop+t.getBoundingClientRect().top-e.getBoundingClientRect().top-parseFloat(getComputedStyle(t).scrollMarginTop)})}return f(()=>{n.hash===`#how-it-works`&&j()}),(e,n)=>(r(),o(u,null,[d(v,{active:`main`}),a(`div`,{ref_key:`homeScroll`,ref:_,class:`center-block-custom home-scroll`},[a(`main`,x,[a(`section`,S,[a(`div`,C,[n[2]||=a(`p`,{class:`eyebrow`},`Вечерний детектив · расследование своей компанией`,-1),n[3]||=a(`h1`,{id:`home-title`},[i(`Соберите друзей.`),a(`br`),a(`span`,null,`Раскройте дело.`)],-1),n[4]||=a(`p`,{class:`hero-description`},` Изучайте материалы на сайте и на бумаге, сопоставляйте улики и обсуждайте версии. Вместе найдите разгадку детективной истории. `,-1),a(`div`,w,[d(t(l),{to:`/catalog`,custom:``},{default:p(({href:e,navigate:r})=>[d(t(g),{tag:`a`,href:e,type:`primary`,size:`large`,onClick:r},{default:p(()=>[...n[0]||=[i(` Выбрать дело `,-1)]]),_:1},8,[`href`,`onClick`])]),_:1}),d(t(g),{size:`large`,secondary:``,onClick:j},{default:p(()=>[...n[1]||=[i(` Как проходит игра `,-1)]]),_:1})]),n[5]||=a(`p`,{class:`hero-note`},`Ваша компания. Одна история. Множество версий.`,-1)]),a(`div`,T,[d(b,null,{default:p(()=>[...n[6]||=[a(`div`,{class:`dossier-content`},[a(`p`,{class:`dossier-label`},`Вечерний детектив / досье`),a(`h2`,{class:`dossier-title`},`Материалы дела`),a(`p`,{class:`dossier-intro`},`Истина складывается из деталей.`),a(`dl`,{class:`dossier-list`},[a(`div`,null,[a(`dt`,null,`01 / Улики`),a(`dd`,null,`Изучите. Сопоставьте. Заметьте связь.`)]),a(`div`,null,[a(`dt`,null,`02 / Версии`),a(`dd`,null,`Обсудите, что могло произойти.`)]),a(`div`,null,[a(`dt`,null,`03 / Ваше решение`),a(`dd`,null,`Соберите факты в одну историю.`)])]),a(`p`,{class:`dossier-footer`},`Дело ждёт своих детективов.`)],-1)]]),_:1})])]),a(`section`,{id:`how-it-works`,ref_key:`howItWorks`,ref:k,class:`how-it-works`,"aria-labelledby":`how-title`},[n[7]||=a(`div`,{class:`section-heading`},[a(`p`,{class:`eyebrow`},`От первой улики до разгадки`),a(`h2`,{id:`how-title`},`Как проходит игра`),a(`p`,{class:`section-description`},` Сайт и бумажные материалы — части одного дела. А главное в расследовании — вы и ваши обсуждения. `)],-1),a(`ol`,E,[(r(),o(u,null,c(A,(e,t)=>a(`li`,{key:e.title,class:`step`},[a(`span`,D,`0`+s(t+1),1),a(`h3`,null,s(e.title),1),a(`p`,null,s(e.text),1)])),64))])],512),a(`section`,O,[n[9]||=a(`p`,{class:`eyebrow`},`Планы на вечер найдены`,-1),n[10]||=a(`h2`,{id:`closing-title`},[i(`Один вечер.`),a(`br`),i(`Общее расследование.`)],-1),n[11]||=a(`p`,null,`Соберите тех, с кем хочется спорить о версиях и радоваться найденной разгадке.`,-1),d(t(l),{to:`/catalog`,custom:``},{default:p(({href:e,navigate:r})=>[d(t(g),{tag:`a`,href:e,type:`primary`,size:`large`,onClick:r},{default:p(()=>[...n[8]||=[i(` Выбрать дело `,-1)]]),_:1},8,[`href`,`onClick`])]),_:1})])]),d(y,{onShowHowItWorks:j})],512)],64))}}),[[`__scopeId`,`data-v-36bc927b`]]),A=e({__name:`HomeView`,setup(e){return(e,t)=>(r(),n(k))}});export{A as default}; \ No newline at end of file diff --git a/frontend/dist/assets/Input-Bg8PolMg.js b/frontend/dist/assets/Input-B0pT-V_P.js similarity index 98% rename from frontend/dist/assets/Input-Bg8PolMg.js rename to frontend/dist/assets/Input-B0pT-V_P.js index 0740c2b..dfbfae1 100644 --- a/frontend/dist/assets/Input-Bg8PolMg.js +++ b/frontend/dist/assets/Input-B0pT-V_P.js @@ -1,4 +1,4 @@ -import{At as e,Ft as t,Gt as n,Nt as r,U as i,W as a,X as o,Yt as s,_ as c,an as l,at as u,ct as ee,gt as d,h as te,in as f,jt as ne,m as p,nt as m,ot as h,rt as g,st as _,vn as v,xn as y,xt as b,zt as x}from"./client-DrrW410h.js";import{a as S,c as C,s as re,t as w}from"./Scrollbar-BUURfLNv.js";import{s as ie}from"./ui-CXICC9ah.js";import{i as ae,r as T,t as E}from"./Suffix-CV0EsaP5.js";import{t as oe}from"./use-merged-state-CIQwNmUb.js";import{i as se}from"./Button-BZxcJJGv.js";import{a as D,c as O,i as k,o as A}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{n as ce}from"./use-form-item-CNQ45NOh.js";import{N as le,Q as j,at as M}from"./index-cNEa5D1b.js";var N=e({name:`Eye`,render(){return r(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},r(`path`,{d:`M255.66 112c-77.94 0-157.89 45.11-220.83 135.33a16 16 0 0 0-.27 17.77C82.92 340.8 161.8 400 255.66 400c92.84 0 173.34-59.38 221.79-135.25a16.14 16.14 0 0 0 0-17.47C428.89 172.28 347.8 112 255.66 112z`,fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`32`}),r(`circle`,{cx:`256`,cy:`256`,r:`80`,fill:`none`,stroke:`currentColor`,"stroke-miterlimit":`10`,"stroke-width":`32`}))}}),P=e({name:`EyeOff`,render(){return r(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},r(`path`,{d:`M432 448a15.92 15.92 0 0 1-11.31-4.69l-352-352a16 16 0 0 1 22.62-22.62l352 352A16 16 0 0 1 432 448z`,fill:`currentColor`}),r(`path`,{d:`M255.66 384c-41.49 0-81.5-12.28-118.92-36.5c-34.07-22-64.74-53.51-88.7-91v-.08c19.94-28.57 41.78-52.73 65.24-72.21a2 2 0 0 0 .14-2.94L93.5 161.38a2 2 0 0 0-2.71-.12c-24.92 21-48.05 46.76-69.08 76.92a31.92 31.92 0 0 0-.64 35.54c26.41 41.33 60.4 76.14 98.28 100.65C162 402 207.9 416 255.66 416a239.13 239.13 0 0 0 75.8-12.58a2 2 0 0 0 .77-3.31l-21.58-21.58a4 4 0 0 0-3.83-1a204.8 204.8 0 0 1-51.16 6.47z`,fill:`currentColor`}),r(`path`,{d:`M490.84 238.6c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.66 96a227.34 227.34 0 0 0-74.89 12.83a2 2 0 0 0-.75 3.31l21.55 21.55a4 4 0 0 0 3.88 1a192.82 192.82 0 0 1 50.21-6.69c40.69 0 80.58 12.43 118.55 37c34.71 22.4 65.74 53.88 89.76 91a.13.13 0 0 1 0 .16a310.72 310.72 0 0 1-64.12 72.73a2 2 0 0 0-.15 2.95l19.9 19.89a2 2 0 0 0 2.7.13a343.49 343.49 0 0 0 68.64-78.48a32.2 32.2 0 0 0-.1-34.78z`,fill:`currentColor`}),r(`path`,{d:`M256 160a95.88 95.88 0 0 0-21.37 2.4a2 2 0 0 0-1 3.38l112.59 112.56a2 2 0 0 0 3.38-1A96 96 0 0 0 256 160z`,fill:`currentColor`}),r(`path`,{d:`M165.78 233.66a2 2 0 0 0-3.38 1a96 96 0 0 0 115 115a2 2 0 0 0 1-3.38z`,fill:`currentColor`}))}}),F=o(`n-input`),ue=g(`input`,` +import{At as e,Ft as t,Gt as n,Nt as r,U as i,W as a,X as o,Yt as s,_ as c,an as l,at as u,ct as ee,gt as d,h as te,in as f,jt as ne,m as p,nt as m,ot as h,rt as g,st as _,vn as v,xn as y,xt as b,zt as x}from"./client-DrrW410h.js";import{a as S,c as C,s as re,t as w}from"./Scrollbar-DGnXZ64x.js";import{s as ie}from"./ui-BXphkCO3.js";import{i as ae,r as T,t as E}from"./Suffix-1hsPP30m.js";import{t as oe}from"./use-merged-state-CIQwNmUb.js";import{i as se}from"./Button-VP0HlDWp.js";import{a as D,c as O,i as k,o as A}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{n as ce}from"./use-form-item-CNQ45NOh.js";import{N as le,Q as j,at as M}from"./index-CvfVA1ID.js";var N=e({name:`Eye`,render(){return r(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},r(`path`,{d:`M255.66 112c-77.94 0-157.89 45.11-220.83 135.33a16 16 0 0 0-.27 17.77C82.92 340.8 161.8 400 255.66 400c92.84 0 173.34-59.38 221.79-135.25a16.14 16.14 0 0 0 0-17.47C428.89 172.28 347.8 112 255.66 112z`,fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`32`}),r(`circle`,{cx:`256`,cy:`256`,r:`80`,fill:`none`,stroke:`currentColor`,"stroke-miterlimit":`10`,"stroke-width":`32`}))}}),P=e({name:`EyeOff`,render(){return r(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},r(`path`,{d:`M432 448a15.92 15.92 0 0 1-11.31-4.69l-352-352a16 16 0 0 1 22.62-22.62l352 352A16 16 0 0 1 432 448z`,fill:`currentColor`}),r(`path`,{d:`M255.66 384c-41.49 0-81.5-12.28-118.92-36.5c-34.07-22-64.74-53.51-88.7-91v-.08c19.94-28.57 41.78-52.73 65.24-72.21a2 2 0 0 0 .14-2.94L93.5 161.38a2 2 0 0 0-2.71-.12c-24.92 21-48.05 46.76-69.08 76.92a31.92 31.92 0 0 0-.64 35.54c26.41 41.33 60.4 76.14 98.28 100.65C162 402 207.9 416 255.66 416a239.13 239.13 0 0 0 75.8-12.58a2 2 0 0 0 .77-3.31l-21.58-21.58a4 4 0 0 0-3.83-1a204.8 204.8 0 0 1-51.16 6.47z`,fill:`currentColor`}),r(`path`,{d:`M490.84 238.6c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.66 96a227.34 227.34 0 0 0-74.89 12.83a2 2 0 0 0-.75 3.31l21.55 21.55a4 4 0 0 0 3.88 1a192.82 192.82 0 0 1 50.21-6.69c40.69 0 80.58 12.43 118.55 37c34.71 22.4 65.74 53.88 89.76 91a.13.13 0 0 1 0 .16a310.72 310.72 0 0 1-64.12 72.73a2 2 0 0 0-.15 2.95l19.9 19.89a2 2 0 0 0 2.7.13a343.49 343.49 0 0 0 68.64-78.48a32.2 32.2 0 0 0-.1-34.78z`,fill:`currentColor`}),r(`path`,{d:`M256 160a95.88 95.88 0 0 0-21.37 2.4a2 2 0 0 0-1 3.38l112.59 112.56a2 2 0 0 0 3.38-1A96 96 0 0 0 256 160z`,fill:`currentColor`}),r(`path`,{d:`M165.78 233.66a2 2 0 0 0-3.38 1a96 96 0 0 0 115 115a2 2 0 0 0 1-3.38z`,fill:`currentColor`}))}}),F=o(`n-input`),ue=g(`input`,` max-width: 100%; cursor: text; line-height: 1.5; diff --git a/frontend/dist/assets/LoginView-BRVy_owT.js b/frontend/dist/assets/LoginView-BI6iUAsC.js similarity index 96% rename from frontend/dist/assets/LoginView-BRVy_owT.js rename to frontend/dist/assets/LoginView-BI6iUAsC.js index d876259..934daed 100644 --- a/frontend/dist/assets/LoginView-BRVy_owT.js +++ b/frontend/dist/assets/LoginView-BI6iUAsC.js @@ -1,4 +1,4 @@ -import{At as e,Cn as t,Ft as n,Jt as r,Nt as i,Ot as a,St as o,Tt as s,U as c,W as l,X as u,Yt as d,_ as f,at as p,cn as m,ct as h,d as g,gt as _,kt as v,lt as y,m as b,nt as x,ot as S,rt as C,sn as w,ut as T,vn as E,xn as D,xt as O}from"./client-DrrW410h.js";import{a as k,i as A,o as j,t as M}from"./Follower-BtPkzZJm.js";import{a as N,s as ee,t as te}from"./utils-B8DiXMbh.js";import{c as P,l as ne}from"./Scrollbar-BUURfLNv.js";import{r as F}from"./ui-CXICC9ah.js";import{d as I,m as L,n as R}from"./Suffix-CV0EsaP5.js";import{t as z}from"./use-merged-state-CIQwNmUb.js";import{t as B}from"./Button-BZxcJJGv.js";import{n as V,t as H}from"./Tabs-ChH8xf-T.js";import{c as U,o as W,t as G}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{n as K}from"./use-form-item-CNQ45NOh.js";import{t as q}from"./Input-Bg8PolMg.js";import{t as J}from"./Card-B6dtDIKO.js";import{t as Y}from"./Space-CbidFwig.js";import{G as re,M as ie,Z as ae,at as oe,it as se,k as ce,lt as le,o as ue,ot as de}from"./index-cNEa5D1b.js";import{t as fe}from"./HeaderMenu-BvkSHjS4.js";var pe=x([C(`auto-complete`,` +import{At as e,Cn as t,Ft as n,Jt as r,Nt as i,Ot as a,St as o,Tt as s,U as c,W as l,X as u,Yt as d,_ as f,at as p,cn as m,ct as h,d as g,gt as _,kt as v,lt as y,m as b,nt as x,ot as S,rt as C,sn as w,ut as T,vn as E,xn as D,xt as O}from"./client-DrrW410h.js";import{a as k,i as A,o as j,t as M}from"./Follower-D4pTNocL.js";import{a as N,s as ee,t as te}from"./utils-BwK8vCu4.js";import{c as P,l as ne}from"./Scrollbar-DGnXZ64x.js";import{r as F}from"./ui-BXphkCO3.js";import{d as I,m as L,n as R}from"./Suffix-1hsPP30m.js";import{t as z}from"./use-merged-state-CIQwNmUb.js";import{t as B}from"./Button-VP0HlDWp.js";import{n as V,t as H}from"./Tabs-rQZTTap5.js";import{c as U,o as W,t as G}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{n as K}from"./use-form-item-CNQ45NOh.js";import{t as q}from"./Input-B0pT-V_P.js";import{t as J}from"./Card-DpsyX5Gm.js";import{t as Y}from"./Space-J-gv2y5L.js";import{G as re,M as ie,Z as ae,at as oe,it as se,k as ce,lt as le,o as ue,ot as de}from"./index-CvfVA1ID.js";import{t as fe}from"./HeaderMenu-DjAjwijB.js";var pe=x([C(`auto-complete`,` z-index: auto; position: relative; display: inline-flex; diff --git a/frontend/dist/assets/Modal-CUD1N8ld.js b/frontend/dist/assets/Modal-CBvJhnU9.js similarity index 97% rename from frontend/dist/assets/Modal-CUD1N8ld.js rename to frontend/dist/assets/Modal-CBvJhnU9.js index eeb26f1..adcb3aa 100644 --- a/frontend/dist/assets/Modal-CUD1N8ld.js +++ b/frontend/dist/assets/Modal-CBvJhnU9.js @@ -1,4 +1,4 @@ -import{At as e,Ft as t,Gt as n,Ht as r,J as i,Kt as a,Nt as o,Rt as s,U as c,Vt as l,W as u,X as d,Yt as f,_ as p,_n as m,at as h,bt as g,cn as _,ct as v,in as y,lt as b,m as x,nt as S,ot as C,rt as w,tt as T,vn as E,xn as D,xt as O,zn as k,zt as A}from"./client-DrrW410h.js";import{c as j,i as ee,l as te,s as M,t as ne}from"./Scrollbar-BUURfLNv.js";import{s as re}from"./ui-CXICC9ah.js";import{C as N,S as P,_ as ie,b as ae,d as oe,f as se,m as ce,n as le,p as ue,v as de,x as fe,y as F}from"./Suffix-CV0EsaP5.js";import{a as pe,t as me}from"./Button-BZxcJJGv.js";import{i as he,n as ge,t as I}from"./keep-DYskFqGA.js";import{c as L,i as _e,o as R}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as ve}from"./fade-in.cssr-DIQ8XvO3.js";import{n as ye,r as be,t as xe}from"./Card-B6dtDIKO.js";import{J as z,K as Se,Q as Ce,S as we,W as Te,Y as Ee,ft as B,it as De,lt as V,nt as H,q as Oe,x as ke}from"./index-cNEa5D1b.js";var U=E(null);function W(e){if(e.clientX>0||e.clientY>0)U.value={x:e.clientX,y:e.clientY};else{let{target:t}=e;if(t instanceof Element){let{left:e,top:n,width:r,height:i}=t.getBoundingClientRect();e>0||n>0?U.value={x:e+r/2,y:n+i/2}:U.value={x:0,y:0}}else U.value=null}}var G=0,Ae=!0;function je(){if(!N)return m(E(null));G===0&&j(`click`,document,W,!0);let e=()=>{G+=1};return(Ae&&=P())?(l(e),r(()=>{--G,G===0&&M(`click`,document,W,!0)})):e(),m(U)}var Me=E(void 0),K=0;function q(){Me.value=Date.now()}var Ne=!0;function Pe(e){if(!N)return m(E(!1));let t=E(!1),n=null;function i(){n!==null&&window.clearTimeout(n)}function a(){i(),t.value=!0,n=window.setTimeout(()=>{t.value=!1},e)}K===0&&j(`click`,window,q,!0);let o=()=>{K+=1,j(`click`,window,a,!0)};return(Ne&&=P())?(l(o),r(()=>{--K,K===0&&M(`click`,window,q,!0),M(`click`,window,a,!0),i()})):o(),m(t)}var J=E(!1);function Fe(){J.value=!0}function Ie(){J.value=!1}var Y=0;function Le(){return pe&&(l(()=>{Y||(window.addEventListener(`compositionstart`,Fe),window.addEventListener(`compositionend`,Ie)),Y++}),r(()=>{Y<=1?(window.removeEventListener(`compositionstart`,Fe),window.removeEventListener(`compositionend`,Ie),Y=0):Y--})),J}var X=0,Re=``,ze=``,Be=``,Ve=``,He=E(`0px`);function Ue(e){if(typeof document>`u`)return;let t=document.documentElement,i,a=!1,o=()=>{t.style.marginRight=Re,t.style.overflow=ze,t.style.overflowX=Be,t.style.overflowY=Ve,He.value=`0px`};n(()=>{i=y(e,e=>{if(e){if(!X){let e=window.innerWidth-t.offsetWidth;e>0&&(Re=t.style.marginRight,t.style.marginRight=`${e}px`,He.value=`${e}px`),ze=t.style.overflow,Be=t.style.overflowX,Ve=t.style.overflowY,t.style.overflow=`hidden`,t.style.overflowX=`hidden`,t.style.overflowY=`hidden`}a=!0,X++}else X--,X||o(),a=!1},{immediate:!0})}),r(()=>{i?.(),a&&=(X--,X||o(),!1)})}var We=d(`n-dialog-provider`);d(`n-dialog-api`),d(`n-dialog-reactive-list`);var Z={icon:Function,type:{type:String,default:`default`},title:[String,Function],closable:{type:Boolean,default:!0},negativeText:String,positiveText:String,positiveButtonProps:Object,negativeButtonProps:Object,content:[String,Function],action:Function,showIcon:{type:Boolean,default:!0},loading:Boolean,bordered:Boolean,iconPlacement:String,titleClass:[String,Array],titleStyle:[String,Object],contentClass:[String,Array],contentStyle:[String,Object],actionClass:[String,Array],actionStyle:[String,Object],onPositiveClick:Function,onNegativeClick:Function,onClose:Function,closeFocusable:Boolean},Ge=ee(Z),Ke=S([w(`dialog`,` +import{At as e,Ft as t,Gt as n,Ht as r,J as i,Kt as a,Nt as o,Rt as s,U as c,Vt as l,W as u,X as d,Yt as f,_ as p,_n as m,at as h,bt as g,cn as _,ct as v,in as y,lt as b,m as x,nt as S,ot as C,rt as w,tt as T,vn as E,xn as D,xt as O,zn as k,zt as A}from"./client-DrrW410h.js";import{c as j,i as ee,l as te,s as M,t as ne}from"./Scrollbar-DGnXZ64x.js";import{s as re}from"./ui-BXphkCO3.js";import{C as N,S as P,_ as ie,b as ae,d as oe,f as se,m as ce,n as le,p as ue,v as de,x as fe,y as F}from"./Suffix-1hsPP30m.js";import{a as pe,t as me}from"./Button-VP0HlDWp.js";import{i as he,n as ge,t as I}from"./keep-CyT4Sxsq.js";import{c as L,i as _e,o as R}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as ve}from"./fade-in.cssr-DIQ8XvO3.js";import{n as ye,r as be,t as xe}from"./Card-DpsyX5Gm.js";import{J as z,K as Se,Q as Ce,S as we,W as Te,Y as Ee,ft as B,it as De,lt as V,nt as H,q as Oe,x as ke}from"./index-CvfVA1ID.js";var U=E(null);function W(e){if(e.clientX>0||e.clientY>0)U.value={x:e.clientX,y:e.clientY};else{let{target:t}=e;if(t instanceof Element){let{left:e,top:n,width:r,height:i}=t.getBoundingClientRect();e>0||n>0?U.value={x:e+r/2,y:n+i/2}:U.value={x:0,y:0}}else U.value=null}}var G=0,Ae=!0;function je(){if(!N)return m(E(null));G===0&&j(`click`,document,W,!0);let e=()=>{G+=1};return(Ae&&=P())?(l(e),r(()=>{--G,G===0&&M(`click`,document,W,!0)})):e(),m(U)}var Me=E(void 0),K=0;function q(){Me.value=Date.now()}var Ne=!0;function Pe(e){if(!N)return m(E(!1));let t=E(!1),n=null;function i(){n!==null&&window.clearTimeout(n)}function a(){i(),t.value=!0,n=window.setTimeout(()=>{t.value=!1},e)}K===0&&j(`click`,window,q,!0);let o=()=>{K+=1,j(`click`,window,a,!0)};return(Ne&&=P())?(l(o),r(()=>{--K,K===0&&M(`click`,window,q,!0),M(`click`,window,a,!0),i()})):o(),m(t)}var J=E(!1);function Fe(){J.value=!0}function Ie(){J.value=!1}var Y=0;function Le(){return pe&&(l(()=>{Y||(window.addEventListener(`compositionstart`,Fe),window.addEventListener(`compositionend`,Ie)),Y++}),r(()=>{Y<=1?(window.removeEventListener(`compositionstart`,Fe),window.removeEventListener(`compositionend`,Ie),Y=0):Y--})),J}var X=0,Re=``,ze=``,Be=``,Ve=``,He=E(`0px`);function Ue(e){if(typeof document>`u`)return;let t=document.documentElement,i,a=!1,o=()=>{t.style.marginRight=Re,t.style.overflow=ze,t.style.overflowX=Be,t.style.overflowY=Ve,He.value=`0px`};n(()=>{i=y(e,e=>{if(e){if(!X){let e=window.innerWidth-t.offsetWidth;e>0&&(Re=t.style.marginRight,t.style.marginRight=`${e}px`,He.value=`${e}px`),ze=t.style.overflow,Be=t.style.overflowX,Ve=t.style.overflowY,t.style.overflow=`hidden`,t.style.overflowX=`hidden`,t.style.overflowY=`hidden`}a=!0,X++}else X--,X||o(),a=!1},{immediate:!0})}),r(()=>{i?.(),a&&=(X--,X||o(),!1)})}var We=d(`n-dialog-provider`);d(`n-dialog-api`),d(`n-dialog-reactive-list`);var Z={icon:Function,type:{type:String,default:`default`},title:[String,Function],closable:{type:Boolean,default:!0},negativeText:String,positiveText:String,positiveButtonProps:Object,negativeButtonProps:Object,content:[String,Function],action:Function,showIcon:{type:Boolean,default:!0},loading:Boolean,bordered:Boolean,iconPlacement:String,titleClass:[String,Array],titleStyle:[String,Object],contentClass:[String,Array],contentStyle:[String,Object],actionClass:[String,Array],actionStyle:[String,Object],onPositiveClick:Function,onNegativeClick:Function,onClose:Function,closeFocusable:Boolean},Ge=ee(Z),Ke=S([w(`dialog`,` --n-icon-margin: var(--n-icon-margin-top) var(--n-icon-margin-right) var(--n-icon-margin-bottom) var(--n-icon-margin-left); word-break: break-word; line-height: var(--n-line-height); diff --git a/frontend/dist/assets/OfficeView-DBTI8yMv.js b/frontend/dist/assets/OfficeView-CsXrl85Z.js similarity index 97% rename from frontend/dist/assets/OfficeView-DBTI8yMv.js rename to frontend/dist/assets/OfficeView-CsXrl85Z.js index bba7514..1bdb98b 100644 --- a/frontend/dist/assets/OfficeView-DBTI8yMv.js +++ b/frontend/dist/assets/OfficeView-CsXrl85Z.js @@ -1 +1 @@ -import{At as e,Cn as t,Ct as n,Jt as r,Ot as i,St as a,Tt as o,Vn as s,d as c,gt as l,kt as u,sn as d,vn as f,wt as p}from"./client-DrrW410h.js";import{r as m}from"./ui-CXICC9ah.js";import{t as h}from"./Modal-CUD1N8ld.js";import{t as g}from"./Button-BZxcJJGv.js";import{t as _}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as v}from"./Input-Bg8PolMg.js";import{t as y}from"./Alert-CewvQG_z.js";import{t as b}from"./Card-B6dtDIKO.js";import{i as x,o as S,pt as C}from"./index-cNEa5D1b.js";import{t as w}from"./HeaderMenu-BvkSHjS4.js";var T={class:`center-block-custom`},E={class:`width700`},D={class:`danger-zone`},O={key:0,class:`delete-modal-error`},k={class:`delete-modal-buttons`},A=_(e({__name:`OfficePage`,setup(e){let n=S(),_=c(),A=m(),j=x(),M=f([]);async function N(){M.value=[];try{let e=await j.GetPermissions({});M.value=e.permissions||[]}catch(e){A.error(`Не удалось загрузить права доступа`),console.error(`Failed to load permissions:`,e)}}N();function P(){let e=new Date,t=e.getDay(),n=e.getDate(),r=e.getMonth()+1,i=t===1,a=t===5&&n===13,o=r===1&&n===1||r===12&&n===31,s=r>=6&&r<=8,c=r===12||r<=2,l=n%5==0,u=[`Всегда носи с собой запасную ручку — признания любят записывать в самый неподходящий момент.`,`Если подозреваемый слишком вежлив, он либо дипломат, либо прячет труп в гараже.`,`Кофе в участке — это не напиток, это яд для улик. Пей только свой.`,`Следы на месте преступления всегда ведут к тому, кто забыл закрыть дверь.`,`Лучший способ разговорить молчуна — предложить ему чай с тремя ложками сахара.`,`Если всё указывает на дворецкого, ищи того, кто нанимал дворецкого.`,`Записывай каждую мелочь. Особенно цвет носков убитого.`,`Не верь алиби, которое начинается со слов 'Я бы никогда...'`,`Преступник всегда возвращается на место преступления. Или за забытым телефоном.`,`Ищи того, кому есть что терять, кроме своего времени.`,`Если женщина плачет в кабинете — дай ей платок. Если мужчина — дай ему стакан воды.`,`Самое опасное оружие — не пистолет, а бухгалтерская книга.`,`Собака всегда знает убийцу. Но она не говорит, потому что у неё контракт.`,`Проверяй чеки, билеты и смс. Ложь не терпит документации.`,`Если у тела нет врагов — ты плохо искал врагов.`,`Лупа нужна не для увеличения улик, а для того, чтобы выглядеть умнее.`,`Интуиция — это когда ты уже знаешь ответ, но хочешь убедиться, что не ошибся.`,`Подозревай всех, даже самого себя. Иногда преступник — это ты в прошлом.`,`Хороший детектив видит улики. Великий — видит их отсутствие.`,`Никогда не допрашивай свидетеля на голодный желудок. И себя тоже.`,`Если дело зашло в тупик, переверни бумаги вверх ногами.`,`Самый ценный свидетель — это камера наблюдения, у которой сломана защита.`,`Не ищи мотив. Ищи возможность.`,`Преступник не оставляет следов. Он оставляет выбор.`,`Если дверь была закрыта изнутри — ищи люк, который открывается снаружи.`,`Лучший детектив — тот, кого не замечают в толпе.`,`Учись читать по губам. Пригодится на допросах с адвокатом.`,`Запах духов на месте преступления важнее запаха пороха.`,`Если ты нашел отпечаток пальца — проверь, не твой ли он.`,`Раскрыть дело — это искусство. Не раскрыть — тоже искусство, но другое.`,`Никогда не спорь с баллистикой. Она всегда права, даже если ты не согласен.`,`В каждом деле есть одна странная деталь. Найди её — и пазл сложится.`,`Если преступник умный — он оставит ложный след. Если глупый — он оставит следы в соцсетях.`,`Лучший друг детектива — тишина. Второй друг — кофе.`,`Если свидетель говорит слишком много, он врет. Если молчит — он тоже врет.`,`Преступление редко бывает идеальным. Идеальным бывает только алиби жены.`,`Всегда смотри на часы на трупе. Возможно, они показывают время, когда он перестал верить в людей.`,`Воры любят темноту. Детективы — свет. А маньяки — полную луну.`,`Если ты поймал преступника, не радуйся раньше времени — может, он просто лжец.`,`В каждом городе есть одно место, где собираются все сплетники. Начни оттуда.`,`Не верь в совпадения. Но верь в удачу.`,`Если у тебя нет улик — придумай их. Но только мысленно, чтобы знать, где искать.`,`Жертва всегда знала убийцу. Даже если она не знала, что знает.`,`Проверяй алиби на разрыв. Если оно выдерживает — ты ошибся.`,`Самый страшный враг детектива — не маньяк, а его собственная лень.`,`Если преступник оставил записку — прочитай её. И сожги, чтобы никто не узнал твой почерк.`,`Всегда носи с собой фонарик. Даже днём. Для эффекта.`,`В деле важно всё: от укуса комара до размера обуви.`,`Если ты думаешь, что дело простое — значит, ты не додумал.`,`Убийца всегда ищет внимания. Или наоборот, избегает его.`,`Стук в дверь в полночь — это либо полиция, либо заказчик.`,`Никогда не давай обещаний родственникам жертвы. Только факты.`,`Если у тебя есть три версии — выбирай четвёртую.`,`Лучшее оружие — это бумага. На ней можно написать что угодно.`,`Когда ты смотришь на улику, смотри на неё глазами преступника.`,`Все любят детективы, пока не становятся подозреваемыми.`,`Следы крови важны. Но важнее — следы лжи.`,`Если ты не спишь третьи сутки, значит, ты либо гений, либо дурак.`,`Проверяй каждого, кто говорит 'Я ничего не видел'.`,`В каждом деле есть один человек, который знает всё. И он не говорит.`,`Не суди преступника по одежде. Суди по тому, как он её снимал.`,`Дыра в алиби — это как дыра в лодке. Рано или поздно она утонет.`,`Если преступник использует перчатки — он профессионал. Если нет — он любитель.`,`Запомни: первая версия — всегда неверная.`,`Если у тебя кончились идеи, иди в бар. Там всегда есть кто-то, кто расскажет тебе дело.`,`Свидетель с фотороботом — это как слепой с компасом.`,`Никогда не смейся над уликами. Они могут обидеться и исчезнуть.`,`Если ты нашёл оружие — не трогай его. Иначе твои отпечатки будут на нём.`,`Преступник умён, но ты умнее. Потому что ты пьёшь правильный кофе.`,`Всегда пересматривай видеозаписи. Особенно в два раза медленнее.`,`Если на месте преступления есть кот — он видел всё. Но он не скажет.`,`Лучший способ поймать преступника — пригласить его на обед.`,`Если подозреваемый улыбается, он либо невиновен, либо психопат.`,`Проверяй мусор. В нём всегда есть что-то полезное.`,`Никогда не доверяй красивым историям. Только уродливым фактам.`,`Если ты нашёл улику слишком легко — это ловушка.`,`Убийца всегда оставляет послание. Даже если это просто тишина.`,`Если ты запнулся на допросе — делай вид, что так и задумано.`,`Помни: все врут. Даже я тебе советую.`,`Если ты боишься темноты — стань детективом. Страх пройдёт.`,`Самые лучшие признания случаются под утро, когда все устали.`,`Если преступник использовал компьютер, значит, он либо хакер, либо дурак.`,`Следы шин — это как подпись на дороге.`,`Никогда не забывай про запах. Он помнит дольше, чем люди.`,`Если ты не знаешь, что делать — съешь шоколадку.`,`В каждом деле есть одна минута слабости. Найди её.`,`Преступник всегда нервничает. Даже если он не нервничает.`,`Если у тебя есть подозреваемый и нет улик — подожди. Улики появятся.`,`Не верь в чудеса. Верь в логику.`,`Если ты устал — возьми отпуск. Преступление никуда не денется.`,`Запомни: самый опасный преступник — тот, кто читал детективы.`,`Если ты думаешь, что всё кончено — значит, ты пропустил поворот.`,`Следы на полу важнее следов в душе.`,`Если преступник оставил окурок — он курил. Или хотел, чтобы ты так думал.`,`Хороший детектив всегда голоден. Это помогает мыслить.`,`Не суди по первому впечатлению. Суди по второму, когда увидишь его в наручниках.`,`Если у тебя есть тайный агент — не доверяй ему.`,`В деле всегда есть тот, кто знает больше, чем говорит.`,`Если ты не можешь найти убийцу — стань им (в мыслях).`,`И последнее: всегда проверяй, закрыл ли ты дверь участка.`],d=[];i&&d.push(`☕ Понедельник: Сегодня даже преступники не хотят работать. Проверь тех, кто был слишком бодр.`),a&&d.push(`🔮 Пятница 13-е: Если улики ведут к чёрной кошке, ищи чёрного кота с алиби.`),o&&d.push(`🎄 Новый год: Свидетель в костюме Деда Мороза врёт. Настоящий Дед Мороз всегда в отпуске.`),s&&d.push(`☀️ Лето: В жару преступники забывают улики в карманах, потому что снимают пиджаки.`),c&&d.push(`❄️ Зима: Следы на снегу ведут к тому, у кого самые холодные руки.`),l&&d.push(`🌕 Полнолуние: Если подозреваемый воет на луну, он либо оборотень, либо фанат рока.`);let f=u.concat(d),p=f[Math.floor(Math.random()*f.length)],m=[`🔍 Заметки сыщика:`,`📓 Из дневника инспектора:`,`🕵️ Мудрость Шерлока:`,`🧠 Гениально и просто:`,`📌 Правило большого пальца:`,`☕ Кофейная истина:`];return{header:m[Math.floor(Math.random()*m.length)],text:p}}let F=P(),I=f(!1),L=f(``),R=f(``);async function z(){if(R.value=``,!await n.deleteAccount(L.value)){R.value=n.error||`Не удалось удалить аккаунт`;return}A.success(`Аккаунт и персональные данные удалены`),I.value=!1,_.push(`/login`)}return(e,c)=>(r(),o(l,null,[a(`div`,T,[a(`div`,E,[u(t(y),{title:t(F).header,"show-icon":!1,type:`info`,style:{"margin-bottom":`20px`}},{default:d(()=>[i(s(t(F).text),1)]),_:1},8,[`title`]),a(`p`,null,`Доброго времени суток, `+s(t(n).username)+`.`,1),a(`div`,D,[c[6]||=a(`div`,{class:`danger-zone-text`},[a(`div`,{class:`danger-zone-title`},`Удаление аккаунта`),a(`div`,{class:`danger-zone-hint`},` Удаление необратимо: аккаунт и все персональные данные будут стёрты (ст. 21 152-ФЗ). `)],-1),u(t(g),{type:`error`,ghost:``,onClick:c[0]||=e=>I.value=!0},{default:d(()=>[...c[5]||=[i(`Удалить аккаунт`,-1)]]),_:1})])])]),u(t(h),{show:I.value,"onUpdate:show":c[4]||=e=>I.value=e,class:`delete-modal`},{default:d(()=>[u(t(b),{title:`Удаление аккаунта`,bordered:!1,role:`dialog`,"aria-modal":`true`,closable:``,onClose:c[3]||=e=>I.value=!1},{default:d(()=>[c[9]||=a(`p`,{class:`delete-modal-text`},` Это действие необратимо. Для подтверждения удаления введите пароль от учётной записи — он понадобится, чтобы убедиться, что аккаунт удаляет его владелец. `,-1),u(t(v),{value:L.value,"onUpdate:value":c[1]||=e=>L.value=e,type:`password`,placeholder:`Пароль для подтверждения`,onKeyup:C(z,[`enter`])},null,8,[`value`]),R.value?(r(),o(`p`,O,s(R.value),1)):p(``,!0),a(`div`,k,[u(t(g),{onClick:c[2]||=e=>I.value=!1},{default:d(()=>[...c[7]||=[i(`Отмена`,-1)]]),_:1}),u(t(g),{type:`error`,disabled:L.value.length==0,loading:t(n).isLoading,onClick:z},{default:d(()=>[...c[8]||=[i(` Удалить навсегда `,-1)]]),_:1},8,[`disabled`,`loading`])])]),_:1})]),_:1},8,[`show`]),u(w,{active:`office`})],64))}}),[[`__scopeId`,`data-v-37e6a597`]]),j=e({__name:`OfficeView`,setup(e){return(e,t)=>(r(),n(A))}});export{j as default}; \ No newline at end of file +import{At as e,Cn as t,Ct as n,Jt as r,Ot as i,St as a,Tt as o,Vn as s,d as c,gt as l,kt as u,sn as d,vn as f,wt as p}from"./client-DrrW410h.js";import{r as m}from"./ui-BXphkCO3.js";import{t as h}from"./Modal-CBvJhnU9.js";import{t as g}from"./Button-VP0HlDWp.js";import{t as _}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as v}from"./Input-B0pT-V_P.js";import{t as y}from"./Alert-CKEVYkKu.js";import{t as b}from"./Card-DpsyX5Gm.js";import{i as x,o as S,pt as C}from"./index-CvfVA1ID.js";import{t as w}from"./HeaderMenu-DjAjwijB.js";var T={class:`center-block-custom`},E={class:`width700`},D={class:`danger-zone`},O={key:0,class:`delete-modal-error`},k={class:`delete-modal-buttons`},A=_(e({__name:`OfficePage`,setup(e){let n=S(),_=c(),A=m(),j=x(),M=f([]);async function N(){M.value=[];try{let e=await j.GetPermissions({});M.value=e.permissions||[]}catch(e){A.error(`Не удалось загрузить права доступа`),console.error(`Failed to load permissions:`,e)}}N();function P(){let e=new Date,t=e.getDay(),n=e.getDate(),r=e.getMonth()+1,i=t===1,a=t===5&&n===13,o=r===1&&n===1||r===12&&n===31,s=r>=6&&r<=8,c=r===12||r<=2,l=n%5==0,u=[`Всегда носи с собой запасную ручку — признания любят записывать в самый неподходящий момент.`,`Если подозреваемый слишком вежлив, он либо дипломат, либо прячет труп в гараже.`,`Кофе в участке — это не напиток, это яд для улик. Пей только свой.`,`Следы на месте преступления всегда ведут к тому, кто забыл закрыть дверь.`,`Лучший способ разговорить молчуна — предложить ему чай с тремя ложками сахара.`,`Если всё указывает на дворецкого, ищи того, кто нанимал дворецкого.`,`Записывай каждую мелочь. Особенно цвет носков убитого.`,`Не верь алиби, которое начинается со слов 'Я бы никогда...'`,`Преступник всегда возвращается на место преступления. Или за забытым телефоном.`,`Ищи того, кому есть что терять, кроме своего времени.`,`Если женщина плачет в кабинете — дай ей платок. Если мужчина — дай ему стакан воды.`,`Самое опасное оружие — не пистолет, а бухгалтерская книга.`,`Собака всегда знает убийцу. Но она не говорит, потому что у неё контракт.`,`Проверяй чеки, билеты и смс. Ложь не терпит документации.`,`Если у тела нет врагов — ты плохо искал врагов.`,`Лупа нужна не для увеличения улик, а для того, чтобы выглядеть умнее.`,`Интуиция — это когда ты уже знаешь ответ, но хочешь убедиться, что не ошибся.`,`Подозревай всех, даже самого себя. Иногда преступник — это ты в прошлом.`,`Хороший детектив видит улики. Великий — видит их отсутствие.`,`Никогда не допрашивай свидетеля на голодный желудок. И себя тоже.`,`Если дело зашло в тупик, переверни бумаги вверх ногами.`,`Самый ценный свидетель — это камера наблюдения, у которой сломана защита.`,`Не ищи мотив. Ищи возможность.`,`Преступник не оставляет следов. Он оставляет выбор.`,`Если дверь была закрыта изнутри — ищи люк, который открывается снаружи.`,`Лучший детектив — тот, кого не замечают в толпе.`,`Учись читать по губам. Пригодится на допросах с адвокатом.`,`Запах духов на месте преступления важнее запаха пороха.`,`Если ты нашел отпечаток пальца — проверь, не твой ли он.`,`Раскрыть дело — это искусство. Не раскрыть — тоже искусство, но другое.`,`Никогда не спорь с баллистикой. Она всегда права, даже если ты не согласен.`,`В каждом деле есть одна странная деталь. Найди её — и пазл сложится.`,`Если преступник умный — он оставит ложный след. Если глупый — он оставит следы в соцсетях.`,`Лучший друг детектива — тишина. Второй друг — кофе.`,`Если свидетель говорит слишком много, он врет. Если молчит — он тоже врет.`,`Преступление редко бывает идеальным. Идеальным бывает только алиби жены.`,`Всегда смотри на часы на трупе. Возможно, они показывают время, когда он перестал верить в людей.`,`Воры любят темноту. Детективы — свет. А маньяки — полную луну.`,`Если ты поймал преступника, не радуйся раньше времени — может, он просто лжец.`,`В каждом городе есть одно место, где собираются все сплетники. Начни оттуда.`,`Не верь в совпадения. Но верь в удачу.`,`Если у тебя нет улик — придумай их. Но только мысленно, чтобы знать, где искать.`,`Жертва всегда знала убийцу. Даже если она не знала, что знает.`,`Проверяй алиби на разрыв. Если оно выдерживает — ты ошибся.`,`Самый страшный враг детектива — не маньяк, а его собственная лень.`,`Если преступник оставил записку — прочитай её. И сожги, чтобы никто не узнал твой почерк.`,`Всегда носи с собой фонарик. Даже днём. Для эффекта.`,`В деле важно всё: от укуса комара до размера обуви.`,`Если ты думаешь, что дело простое — значит, ты не додумал.`,`Убийца всегда ищет внимания. Или наоборот, избегает его.`,`Стук в дверь в полночь — это либо полиция, либо заказчик.`,`Никогда не давай обещаний родственникам жертвы. Только факты.`,`Если у тебя есть три версии — выбирай четвёртую.`,`Лучшее оружие — это бумага. На ней можно написать что угодно.`,`Когда ты смотришь на улику, смотри на неё глазами преступника.`,`Все любят детективы, пока не становятся подозреваемыми.`,`Следы крови важны. Но важнее — следы лжи.`,`Если ты не спишь третьи сутки, значит, ты либо гений, либо дурак.`,`Проверяй каждого, кто говорит 'Я ничего не видел'.`,`В каждом деле есть один человек, который знает всё. И он не говорит.`,`Не суди преступника по одежде. Суди по тому, как он её снимал.`,`Дыра в алиби — это как дыра в лодке. Рано или поздно она утонет.`,`Если преступник использует перчатки — он профессионал. Если нет — он любитель.`,`Запомни: первая версия — всегда неверная.`,`Если у тебя кончились идеи, иди в бар. Там всегда есть кто-то, кто расскажет тебе дело.`,`Свидетель с фотороботом — это как слепой с компасом.`,`Никогда не смейся над уликами. Они могут обидеться и исчезнуть.`,`Если ты нашёл оружие — не трогай его. Иначе твои отпечатки будут на нём.`,`Преступник умён, но ты умнее. Потому что ты пьёшь правильный кофе.`,`Всегда пересматривай видеозаписи. Особенно в два раза медленнее.`,`Если на месте преступления есть кот — он видел всё. Но он не скажет.`,`Лучший способ поймать преступника — пригласить его на обед.`,`Если подозреваемый улыбается, он либо невиновен, либо психопат.`,`Проверяй мусор. В нём всегда есть что-то полезное.`,`Никогда не доверяй красивым историям. Только уродливым фактам.`,`Если ты нашёл улику слишком легко — это ловушка.`,`Убийца всегда оставляет послание. Даже если это просто тишина.`,`Если ты запнулся на допросе — делай вид, что так и задумано.`,`Помни: все врут. Даже я тебе советую.`,`Если ты боишься темноты — стань детективом. Страх пройдёт.`,`Самые лучшие признания случаются под утро, когда все устали.`,`Если преступник использовал компьютер, значит, он либо хакер, либо дурак.`,`Следы шин — это как подпись на дороге.`,`Никогда не забывай про запах. Он помнит дольше, чем люди.`,`Если ты не знаешь, что делать — съешь шоколадку.`,`В каждом деле есть одна минута слабости. Найди её.`,`Преступник всегда нервничает. Даже если он не нервничает.`,`Если у тебя есть подозреваемый и нет улик — подожди. Улики появятся.`,`Не верь в чудеса. Верь в логику.`,`Если ты устал — возьми отпуск. Преступление никуда не денется.`,`Запомни: самый опасный преступник — тот, кто читал детективы.`,`Если ты думаешь, что всё кончено — значит, ты пропустил поворот.`,`Следы на полу важнее следов в душе.`,`Если преступник оставил окурок — он курил. Или хотел, чтобы ты так думал.`,`Хороший детектив всегда голоден. Это помогает мыслить.`,`Не суди по первому впечатлению. Суди по второму, когда увидишь его в наручниках.`,`Если у тебя есть тайный агент — не доверяй ему.`,`В деле всегда есть тот, кто знает больше, чем говорит.`,`Если ты не можешь найти убийцу — стань им (в мыслях).`,`И последнее: всегда проверяй, закрыл ли ты дверь участка.`],d=[];i&&d.push(`☕ Понедельник: Сегодня даже преступники не хотят работать. Проверь тех, кто был слишком бодр.`),a&&d.push(`🔮 Пятница 13-е: Если улики ведут к чёрной кошке, ищи чёрного кота с алиби.`),o&&d.push(`🎄 Новый год: Свидетель в костюме Деда Мороза врёт. Настоящий Дед Мороз всегда в отпуске.`),s&&d.push(`☀️ Лето: В жару преступники забывают улики в карманах, потому что снимают пиджаки.`),c&&d.push(`❄️ Зима: Следы на снегу ведут к тому, у кого самые холодные руки.`),l&&d.push(`🌕 Полнолуние: Если подозреваемый воет на луну, он либо оборотень, либо фанат рока.`);let f=u.concat(d),p=f[Math.floor(Math.random()*f.length)],m=[`🔍 Заметки сыщика:`,`📓 Из дневника инспектора:`,`🕵️ Мудрость Шерлока:`,`🧠 Гениально и просто:`,`📌 Правило большого пальца:`,`☕ Кофейная истина:`];return{header:m[Math.floor(Math.random()*m.length)],text:p}}let F=P(),I=f(!1),L=f(``),R=f(``);async function z(){if(R.value=``,!await n.deleteAccount(L.value)){R.value=n.error||`Не удалось удалить аккаунт`;return}A.success(`Аккаунт и персональные данные удалены`),I.value=!1,_.push(`/login`)}return(e,c)=>(r(),o(l,null,[a(`div`,T,[a(`div`,E,[u(t(y),{title:t(F).header,"show-icon":!1,type:`info`,style:{"margin-bottom":`20px`}},{default:d(()=>[i(s(t(F).text),1)]),_:1},8,[`title`]),a(`p`,null,`Доброго времени суток, `+s(t(n).username)+`.`,1),a(`div`,D,[c[6]||=a(`div`,{class:`danger-zone-text`},[a(`div`,{class:`danger-zone-title`},`Удаление аккаунта`),a(`div`,{class:`danger-zone-hint`},` Удаление необратимо: аккаунт и все персональные данные будут стёрты (ст. 21 152-ФЗ). `)],-1),u(t(g),{type:`error`,ghost:``,onClick:c[0]||=e=>I.value=!0},{default:d(()=>[...c[5]||=[i(`Удалить аккаунт`,-1)]]),_:1})])])]),u(t(h),{show:I.value,"onUpdate:show":c[4]||=e=>I.value=e,class:`delete-modal`},{default:d(()=>[u(t(b),{title:`Удаление аккаунта`,bordered:!1,role:`dialog`,"aria-modal":`true`,closable:``,onClose:c[3]||=e=>I.value=!1},{default:d(()=>[c[9]||=a(`p`,{class:`delete-modal-text`},` Это действие необратимо. Для подтверждения удаления введите пароль от учётной записи — он понадобится, чтобы убедиться, что аккаунт удаляет его владелец. `,-1),u(t(v),{value:L.value,"onUpdate:value":c[1]||=e=>L.value=e,type:`password`,placeholder:`Пароль для подтверждения`,onKeyup:C(z,[`enter`])},null,8,[`value`]),R.value?(r(),o(`p`,O,s(R.value),1)):p(``,!0),a(`div`,k,[u(t(g),{onClick:c[2]||=e=>I.value=!1},{default:d(()=>[...c[7]||=[i(`Отмена`,-1)]]),_:1}),u(t(g),{type:`error`,disabled:L.value.length==0,loading:t(n).isLoading,onClick:z},{default:d(()=>[...c[8]||=[i(` Удалить навсегда `,-1)]]),_:1},8,[`disabled`,`loading`])])]),_:1})]),_:1},8,[`show`]),u(w,{active:`office`})],64))}}),[[`__scopeId`,`data-v-37e6a597`]]),j=e({__name:`OfficeView`,setup(e){return(e,t)=>(r(),n(A))}});export{j as default}; \ No newline at end of file diff --git a/frontend/dist/assets/ParticipationView-H_fOFAjM.js b/frontend/dist/assets/ParticipationView-BAG5ka1i.js similarity index 92% rename from frontend/dist/assets/ParticipationView-H_fOFAjM.js rename to frontend/dist/assets/ParticipationView-BAG5ka1i.js index 8577be6..b7c53d2 100644 --- a/frontend/dist/assets/ParticipationView-H_fOFAjM.js +++ b/frontend/dist/assets/ParticipationView-BAG5ka1i.js @@ -1 +1 @@ -import{At as e,Cn as t,Ct as n,Gt as r,Jt as i,Ot as a,St as o,Tt as s,Vn as c,gt as l,kt as u,sn as d,t as f,u as p,vn as m,wt as h}from"./client-DrrW410h.js";import{t as g}from"./Button-BZxcJJGv.js";import{t as _}from"./Card-B6dtDIKO.js";import{t as v}from"./Space-CbidFwig.js";import{o as y}from"./index-cNEa5D1b.js";import{t as b}from"./HeaderMenu-BvkSHjS4.js";import{t as x}from"./datetime-BJNH0M1T.js";var S={class:`center-block-custom`},C={class:`width700`},w={key:0,role:`alert`},T={key:0,role:`status`},E={key:1,role:`status`},D={key:2},O=e({__name:`ParticipationPage`,setup(e){let O=p(),k=new URLSearchParams(O.hash.slice(1)),A=k.get(`token`)||``,j=m(k.get(`answer`)===`cancelled`?`cancelled`:`confirmed`),M=f(),N=y(),P=m(),F=m(!1),I=m(``);async function L(){F.value=!0,I.value=``;try{let e=await M.GetParticipation({token:A});P.value=e}catch{I.value=`Не удалось загрузить данные. Попробуйте ещё раз.`}finally{F.value=!1}}async function R(){if(!F.value){F.value=!0,I.value=``;try{let e=await M.AnswerParticipation({token:A,answer:j.value});P.value=e}catch{I.value=`Не удалось сохранить ответ. Попробуйте ещё раз.`}finally{F.value=!1}}}return r(L),(e,r)=>(i(),s(l,null,[t(N).isAuthenticated?(i(),n(b,{key:0})):h(``,!0),o(`div`,S,[o(`div`,C,[u(t(_),{title:`Участие в игре`},{default:d(()=>[I.value?(i(),s(`p`,w,c(I.value),1)):h(``,!0),P.value?(i(),s(l,{key:1},[o(`h2`,null,c(P.value.gameName),1),o(`p`,null,`Команда: `+c(P.value.teamName),1),o(`p`,null,`Начало: `+c(t(x)(P.value.startAt)),1),o(`p`,null,`Участников: `+c(P.value.participantsCount),1),P.value.status===`confirmed`?(i(),s(`p`,T,` Участие подтверждено. Ждём вас на игре! Решение окончательное. `)):P.value.status===`cancelled`?(i(),s(`p`,E,` Запись отменена. Решение окончательное. `)):P.value.closed?(i(),s(`p`,D,` Приём ответов закрыт. Ваша запись сохранена со статусом «Ожидает ответа». `)):(i(),s(l,{key:3},[r[4]||=o(`p`,null,[o(`strong`,null,`Решение окончательное: изменить его нельзя.`)],-1),r[5]||=o(`p`,null,`Без ответа запись сохраняется со статусом «Ожидает ответа».`,-1),u(t(v),{vertical:``},{default:d(()=>[u(t(v),null,{default:d(()=>[u(t(g),{disabled:F.value,type:j.value===`confirmed`?`primary`:`default`,"aria-pressed":j.value===`confirmed`,onClick:r[0]||=e=>j.value=`confirmed`},{default:d(()=>[...r[2]||=[a(`Мы участвуем`,-1)]]),_:1},8,[`disabled`,`type`,`aria-pressed`]),u(t(g),{disabled:F.value,type:j.value===`cancelled`?`error`:`default`,"aria-pressed":j.value===`cancelled`,onClick:r[1]||=e=>j.value=`cancelled`},{default:d(()=>[...r[3]||=[a(`Мы не участвуем`,-1)]]),_:1},8,[`disabled`,`type`,`aria-pressed`])]),_:1}),u(t(g),{loading:F.value,disabled:F.value,type:j.value===`cancelled`?`error`:`primary`,onClick:R},{default:d(()=>[a(c(j.value===`confirmed`?`Подтверждаю участие`:`Подтверждаю отмену`),1)]),_:1},8,[`loading`,`disabled`,`type`])]),_:1})],64))],64)):(i(),n(t(g),{key:2,loading:F.value,onClick:L},{default:d(()=>[a(c(F.value?`Загрузка`:`Повторить`),1)]),_:1},8,[`loading`]))]),_:1})])])],64))}}),k=e({__name:`ParticipationView`,setup(e){return(e,t)=>(i(),n(O))}});export{k as default}; \ No newline at end of file +import{At as e,Cn as t,Ct as n,Gt as r,Jt as i,Ot as a,St as o,Tt as s,Vn as c,gt as l,kt as u,sn as d,t as f,u as p,vn as m,wt as h}from"./client-DrrW410h.js";import{t as g}from"./Button-VP0HlDWp.js";import{t as _}from"./Card-DpsyX5Gm.js";import{t as v}from"./Space-J-gv2y5L.js";import{o as y}from"./index-CvfVA1ID.js";import{t as b}from"./HeaderMenu-DjAjwijB.js";import{t as x}from"./datetime-BJNH0M1T.js";var S={class:`center-block-custom`},C={class:`width700`},w={key:0,role:`alert`},T={key:0,role:`status`},E={key:1,role:`status`},D={key:2},O=e({__name:`ParticipationPage`,setup(e){let O=p(),k=new URLSearchParams(O.hash.slice(1)),A=k.get(`token`)||``,j=m(k.get(`answer`)===`cancelled`?`cancelled`:`confirmed`),M=f(),N=y(),P=m(),F=m(!1),I=m(``);async function L(){F.value=!0,I.value=``;try{let e=await M.GetParticipation({token:A});P.value=e}catch{I.value=`Не удалось загрузить данные. Попробуйте ещё раз.`}finally{F.value=!1}}async function R(){if(!F.value){F.value=!0,I.value=``;try{let e=await M.AnswerParticipation({token:A,answer:j.value});P.value=e}catch{I.value=`Не удалось сохранить ответ. Попробуйте ещё раз.`}finally{F.value=!1}}}return r(L),(e,r)=>(i(),s(l,null,[t(N).isAuthenticated?(i(),n(b,{key:0})):h(``,!0),o(`div`,S,[o(`div`,C,[u(t(_),{title:`Участие в игре`},{default:d(()=>[I.value?(i(),s(`p`,w,c(I.value),1)):h(``,!0),P.value?(i(),s(l,{key:1},[o(`h2`,null,c(P.value.gameName),1),o(`p`,null,`Команда: `+c(P.value.teamName),1),o(`p`,null,`Начало: `+c(t(x)(P.value.startAt)),1),o(`p`,null,`Участников: `+c(P.value.participantsCount),1),P.value.status===`confirmed`?(i(),s(`p`,T,` Участие подтверждено. Ждём вас на игре! Решение окончательное. `)):P.value.status===`cancelled`?(i(),s(`p`,E,` Запись отменена. Решение окончательное. `)):P.value.closed?(i(),s(`p`,D,` Приём ответов закрыт. Ваша запись сохранена со статусом «Ожидает ответа». `)):(i(),s(l,{key:3},[r[4]||=o(`p`,null,[o(`strong`,null,`Решение окончательное: изменить его нельзя.`)],-1),r[5]||=o(`p`,null,`Без ответа запись сохраняется со статусом «Ожидает ответа».`,-1),u(t(v),{vertical:``},{default:d(()=>[u(t(v),null,{default:d(()=>[u(t(g),{disabled:F.value,type:j.value===`confirmed`?`primary`:`default`,"aria-pressed":j.value===`confirmed`,onClick:r[0]||=e=>j.value=`confirmed`},{default:d(()=>[...r[2]||=[a(`Мы участвуем`,-1)]]),_:1},8,[`disabled`,`type`,`aria-pressed`]),u(t(g),{disabled:F.value,type:j.value===`cancelled`?`error`:`default`,"aria-pressed":j.value===`cancelled`,onClick:r[1]||=e=>j.value=`cancelled`},{default:d(()=>[...r[3]||=[a(`Мы не участвуем`,-1)]]),_:1},8,[`disabled`,`type`,`aria-pressed`])]),_:1}),u(t(g),{loading:F.value,disabled:F.value,type:j.value===`cancelled`?`error`:`primary`,onClick:R},{default:d(()=>[a(c(j.value===`confirmed`?`Подтверждаю участие`:`Подтверждаю отмену`),1)]),_:1},8,[`loading`,`disabled`,`type`])]),_:1})],64))],64)):(i(),n(t(g),{key:2,loading:F.value,onClick:L},{default:d(()=>[a(c(F.value?`Загрузка`:`Повторить`),1)]),_:1},8,[`loading`]))]),_:1})])])],64))}}),k=e({__name:`ParticipationView`,setup(e){return(e,t)=>(i(),n(O))}});export{k as default}; \ No newline at end of file diff --git a/frontend/dist/assets/PlaceBlock-DlajveRU.js b/frontend/dist/assets/PlaceBlock-rRE4IOP9.js similarity index 98% rename from frontend/dist/assets/PlaceBlock-DlajveRU.js rename to frontend/dist/assets/PlaceBlock-rRE4IOP9.js index e3849b5..0bc6d66 100644 --- a/frontend/dist/assets/PlaceBlock-DlajveRU.js +++ b/frontend/dist/assets/PlaceBlock-rRE4IOP9.js @@ -1,4 +1,4 @@ -import{At as e,Bn as t,Cn as n,Ct as r,Dt as i,Ft as a,Jt as o,Nt as s,Ot as c,St as l,Tt as u,U as d,Vn as f,W as p,X as m,Xt as h,Yt as g,Z as _,Zt as v,_ as y,at as b,bn as x,ct as S,dn as C,f as w,gt as T,h as E,kt as D,m as O,nt as k,ot as A,p as j,r as M,rt as N,sn as P,st as F,vn as I,wt as L,xn as R,xt as z,zn as ee}from"./client-DrrW410h.js";import{a as B,c as V,i as te,n as ne}from"./ui-CXICC9ah.js";import{i as re}from"./Suffix-CV0EsaP5.js";import{t as ie}from"./Modal-CUD1N8ld.js";import{t as ae}from"./use-merged-state-CIQwNmUb.js";import{r as oe,t as H}from"./Button-BZxcJJGv.js";import{a as se,c as U,i as ce,o as W,r as le,t as ue}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{n as de,t as fe}from"./Upload-Q_ddyPUF.js";import{n as pe,t as me}from"./use-form-item-CNQ45NOh.js";import{t as he}from"./Add-CkD1py6k.js";import{t as G}from"./Input-Bg8PolMg.js";import{t as ge}from"./Remove-bjrmPf1I.js";import{t as _e}from"./Card-B6dtDIKO.js";import{t as K}from"./Space-CbidFwig.js";import{t as ve}from"./text-WRQwmy2U.js";import{G as ye,N as be,Q as q,V as xe,Z as Se,d as Ce,j as we,mt as J,ot as Te,y as Ee}from"./index-cNEa5D1b.js";import{n as Y,r as X,t as De}from"./application-Dx7AOLHI.js";import{t as Oe}from"./MessagePaper-B4rdZ1RT.js";var ke=e({name:`ArrowDown`,render(){return s(`svg`,{viewBox:`0 0 28 28`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`},s(`g`,{stroke:`none`,"stroke-width":`1`,"fill-rule":`evenodd`},s(`g`,{"fill-rule":`nonzero`},s(`path`,{d:`M23.7916,15.2664 C24.0788,14.9679 24.0696,14.4931 23.7711,14.206 C23.4726,13.9188 22.9978,13.928 22.7106,14.2265 L14.7511,22.5007 L14.7511,3.74792 C14.7511,3.33371 14.4153,2.99792 14.0011,2.99792 C13.5869,2.99792 13.2511,3.33371 13.2511,3.74793 L13.2511,22.4998 L5.29259,14.2265 C5.00543,13.928 4.53064,13.9188 4.23213,14.206 C3.93361,14.4931 3.9244,14.9679 4.21157,15.2664 L13.2809,24.6944 C13.6743,25.1034 14.3289,25.1034 14.7223,24.6944 L23.7916,15.2664 Z`}))))}}),Ae=e({name:`ArrowUp`,render(){return s(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`},s(`g`,{fill:`none`},s(`path`,{d:`M3.13 9.163a.5.5 0 1 0 .74.674L9.5 3.67V17.5a.5.5 0 0 0 1 0V3.672l5.63 6.165a.5.5 0 0 0 .738-.674l-6.315-6.916a.746.746 0 0 0-.632-.24a.746.746 0 0 0-.476.24L3.131 9.163z`,fill:`currentColor`})))}}),je=N(`input-group`,` +import{At as e,Bn as t,Cn as n,Ct as r,Dt as i,Ft as a,Jt as o,Nt as s,Ot as c,St as l,Tt as u,U as d,Vn as f,W as p,X as m,Xt as h,Yt as g,Z as _,Zt as v,_ as y,at as b,bn as x,ct as S,dn as C,f as w,gt as T,h as E,kt as D,m as O,nt as k,ot as A,p as j,r as M,rt as N,sn as P,st as F,vn as I,wt as L,xn as R,xt as z,zn as ee}from"./client-DrrW410h.js";import{a as B,c as V,i as te,n as ne}from"./ui-BXphkCO3.js";import{i as re}from"./Suffix-1hsPP30m.js";import{t as ie}from"./Modal-CBvJhnU9.js";import{t as ae}from"./use-merged-state-CIQwNmUb.js";import{r as oe,t as H}from"./Button-VP0HlDWp.js";import{a as se,c as U,i as ce,o as W,r as le,t as ue}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{n as de,t as fe}from"./Upload-D5dycHVD.js";import{n as pe,t as me}from"./use-form-item-CNQ45NOh.js";import{t as he}from"./Add-CkD1py6k.js";import{t as G}from"./Input-B0pT-V_P.js";import{t as ge}from"./Remove-bjrmPf1I.js";import{t as _e}from"./Card-DpsyX5Gm.js";import{t as K}from"./Space-J-gv2y5L.js";import{t as ve}from"./text-DlU9yI4b.js";import{G as ye,N as be,Q as q,V as xe,Z as Se,d as Ce,j as we,mt as J,ot as Te,y as Ee}from"./index-CvfVA1ID.js";import{n as Y,r as X,t as De}from"./application-Dx7AOLHI.js";import{t as Oe}from"./MessagePaper-B4rdZ1RT.js";var ke=e({name:`ArrowDown`,render(){return s(`svg`,{viewBox:`0 0 28 28`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`},s(`g`,{stroke:`none`,"stroke-width":`1`,"fill-rule":`evenodd`},s(`g`,{"fill-rule":`nonzero`},s(`path`,{d:`M23.7916,15.2664 C24.0788,14.9679 24.0696,14.4931 23.7711,14.206 C23.4726,13.9188 22.9978,13.928 22.7106,14.2265 L14.7511,22.5007 L14.7511,3.74792 C14.7511,3.33371 14.4153,2.99792 14.0011,2.99792 C13.5869,2.99792 13.2511,3.33371 13.2511,3.74793 L13.2511,22.4998 L5.29259,14.2265 C5.00543,13.928 4.53064,13.9188 4.23213,14.206 C3.93361,14.4931 3.9244,14.9679 4.21157,15.2664 L13.2809,24.6944 C13.6743,25.1034 14.3289,25.1034 14.7223,24.6944 L23.7916,15.2664 Z`}))))}}),Ae=e({name:`ArrowUp`,render(){return s(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`},s(`g`,{fill:`none`},s(`path`,{d:`M3.13 9.163a.5.5 0 1 0 .74.674L9.5 3.67V17.5a.5.5 0 0 0 1 0V3.672l5.63 6.165a.5.5 0 0 0 .738-.674l-6.315-6.916a.746.746 0 0 0-.632-.24a.746.746 0 0 0-.476.24L3.131 9.163z`,fill:`currentColor`})))}}),je=N(`input-group`,` display: inline-flex; width: 100%; flex-wrap: nowrap; diff --git a/frontend/dist/assets/PlaylistsView-DqRIOgQC.js b/frontend/dist/assets/PlaylistsView-CwJFmy03.js similarity index 88% rename from frontend/dist/assets/PlaylistsView-DqRIOgQC.js rename to frontend/dist/assets/PlaylistsView-CwJFmy03.js index b8aaeea..e7e38d7 100644 --- a/frontend/dist/assets/PlaylistsView-DqRIOgQC.js +++ b/frontend/dist/assets/PlaylistsView-CwJFmy03.js @@ -1 +1 @@ -import{At as e,Cn as t,Ct as n,Jt as r,Ot as i,St as a,Tt as o,Vn as s,gt as c,in as l,kt as u,sn as d,vn as f,wt as p,xt as m}from"./client-DrrW410h.js";import{t as h}from"./Button-BZxcJJGv.js";import{t as g}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as _}from"./ruRU-GUVPj0Y9.js";import{t as v}from"./Alert-CewvQG_z.js";import{n as y,t as b}from"./usePlaylistActions-BM2ULXiP.js";import{t as x}from"./Spin-D1uP99th.js";import{D as S,i as C,o as w}from"./index-cNEa5D1b.js";import{t as T}from"./HeaderMenu-BvkSHjS4.js";var E={class:`center-block-custom`},D={class:`width1200 playlists-page`},O=g(e({__name:`PlaylistsPage`,setup(e){let g=w(),O=C(),k=m(()=>g.hasAnyRole([`author`,`organizer`])),A=f([]),j=f(!1),M=f(!1),N=f(!1),P=f(``),F=0;async function I(){if(!k.value)return;let e=++F;j.value=!0,P.value=``;try{let t=await O.GetPlaylists({});if(e!==F)return;A.value=t.playlists??[],N.value=!0}catch(t){e===F&&(P.value=t instanceof Error?t.message:`Не удалось загрузить плейлисты`)}finally{e===F&&(j.value=!1)}}let{saveGroup:L,deleteGroup:R,reorderGroups:z,setTrackGroup:B,createPlaylist:V,renamePlaylist:H,reorderTracks:U,deletePlaylist:W,uploadTrack:G,deleteTrack:K}=b(M,I);return l(()=>g.user,()=>{F+=1,A.value=[],N.value=!1,j.value=!1,P.value=``,I()},{immediate:!0}),(e,l)=>(r(),o(c,null,[u(T,{active:`playlists`}),a(`div`,E,[u(t(S),{locale:t(_)},{default:d(()=>[a(`main`,D,[l[3]||=a(`h1`,null,`Плейлисты`,-1),t(g).isAuthenticated?!t(g).user&&!t(g).error?(r(),n(t(x),{key:1})):k.value?(r(),o(c,{key:3},[P.value?(r(),n(t(v),{key:0,type:`error`},{default:d(()=>[i(s(P.value)+` `,1),u(t(h),{disabled:M.value||j.value,onClick:I},{default:d(()=>[...l[2]||=[i(`Повторить загрузку`,-1)]]),_:1},8,[`disabled`])]),_:1})):p(``,!0),j.value&&!N.value?(r(),n(t(x),{key:1})):p(``,!0),N.value?(r(),n(y,{key:2,playlists:A.value,"is-busy":M.value||j.value,onSaveGroup:t(L),onDeleteGroup:t(R),onReorderGroups:t(z),onSetTrackGroup:t(B),onCreatePlaylist:t(V),onRenamePlaylist:t(H),onReorderTracks:t(U),onDeletePlaylist:t(W),onUploadTrack:t(G),onDeleteTrack:t(K)},null,8,[`playlists`,`is-busy`,`onSaveGroup`,`onDeleteGroup`,`onReorderGroups`,`onSetTrackGroup`,`onCreatePlaylist`,`onRenamePlaylist`,`onReorderTracks`,`onDeletePlaylist`,`onUploadTrack`,`onDeleteTrack`])):p(``,!0)],64)):(r(),n(t(v),{key:2,type:`warning`},{default:d(()=>[...l[1]||=[i(`Нет доступа к плейлистам. Нужна роль автора или организатора.`,-1)]]),_:1})):(r(),n(t(v),{key:0,type:`warning`},{default:d(()=>[...l[0]||=[i(`Войдите как автор или организатор для работы с плейлистами.`,-1)]]),_:1}))])]),_:1},8,[`locale`])])],64))}}),[[`__scopeId`,`data-v-c0ac573f`]]),k=e({__name:`PlaylistsView`,setup(e){return(e,t)=>(r(),n(O))}});export{k as default}; \ No newline at end of file +import{At as e,Cn as t,Ct as n,Jt as r,Ot as i,St as a,Tt as o,Vn as s,gt as c,in as l,kt as u,sn as d,vn as f,wt as p,xt as m}from"./client-DrrW410h.js";import{t as h}from"./Button-VP0HlDWp.js";import{t as g}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as _}from"./ruRU-GUVPj0Y9.js";import{t as v}from"./Alert-CKEVYkKu.js";import{n as y,t as b}from"./usePlaylistActions-BX_JK6Ey.js";import{t as x}from"./Spin-v_Oo9RkU.js";import{D as S,i as C,o as w}from"./index-CvfVA1ID.js";import{t as T}from"./HeaderMenu-DjAjwijB.js";var E={class:`center-block-custom`},D={class:`width1200 playlists-page`},O=g(e({__name:`PlaylistsPage`,setup(e){let g=w(),O=C(),k=m(()=>g.hasAnyRole([`author`,`organizer`])),A=f([]),j=f(!1),M=f(!1),N=f(!1),P=f(``),F=0;async function I(){if(!k.value)return;let e=++F;j.value=!0,P.value=``;try{let t=await O.GetPlaylists({});if(e!==F)return;A.value=t.playlists??[],N.value=!0}catch(t){e===F&&(P.value=t instanceof Error?t.message:`Не удалось загрузить плейлисты`)}finally{e===F&&(j.value=!1)}}let{saveGroup:L,deleteGroup:R,reorderGroups:z,setTrackGroup:B,createPlaylist:V,renamePlaylist:H,reorderTracks:U,deletePlaylist:W,uploadTrack:G,deleteTrack:K}=b(M,I);return l(()=>g.user,()=>{F+=1,A.value=[],N.value=!1,j.value=!1,P.value=``,I()},{immediate:!0}),(e,l)=>(r(),o(c,null,[u(T,{active:`playlists`}),a(`div`,E,[u(t(S),{locale:t(_)},{default:d(()=>[a(`main`,D,[l[3]||=a(`h1`,null,`Плейлисты`,-1),t(g).isAuthenticated?!t(g).user&&!t(g).error?(r(),n(t(x),{key:1})):k.value?(r(),o(c,{key:3},[P.value?(r(),n(t(v),{key:0,type:`error`},{default:d(()=>[i(s(P.value)+` `,1),u(t(h),{disabled:M.value||j.value,onClick:I},{default:d(()=>[...l[2]||=[i(`Повторить загрузку`,-1)]]),_:1},8,[`disabled`])]),_:1})):p(``,!0),j.value&&!N.value?(r(),n(t(x),{key:1})):p(``,!0),N.value?(r(),n(y,{key:2,playlists:A.value,"is-busy":M.value||j.value,onSaveGroup:t(L),onDeleteGroup:t(R),onReorderGroups:t(z),onSetTrackGroup:t(B),onCreatePlaylist:t(V),onRenamePlaylist:t(H),onReorderTracks:t(U),onDeletePlaylist:t(W),onUploadTrack:t(G),onDeleteTrack:t(K)},null,8,[`playlists`,`is-busy`,`onSaveGroup`,`onDeleteGroup`,`onReorderGroups`,`onSetTrackGroup`,`onCreatePlaylist`,`onRenamePlaylist`,`onReorderTracks`,`onDeletePlaylist`,`onUploadTrack`,`onDeleteTrack`])):p(``,!0)],64)):(r(),n(t(v),{key:2,type:`warning`},{default:d(()=>[...l[1]||=[i(`Нет доступа к плейлистам. Нужна роль автора или организатора.`,-1)]]),_:1})):(r(),n(t(v),{key:0,type:`warning`},{default:d(()=>[...l[0]||=[i(`Войдите как автор или организатор для работы с плейлистами.`,-1)]]),_:1}))])]),_:1},8,[`locale`])])],64))}}),[[`__scopeId`,`data-v-c0ac573f`]]),k=e({__name:`PlaylistsView`,setup(e){return(e,t)=>(r(),n(O))}});export{k as default}; \ No newline at end of file diff --git a/frontend/dist/assets/Popover-BjLYiaCj.js b/frontend/dist/assets/Popover-DoBIZ3BA.js similarity index 98% rename from frontend/dist/assets/Popover-BjLYiaCj.js rename to frontend/dist/assets/Popover-DoBIZ3BA.js index 8baf551..a0e2426 100644 --- a/frontend/dist/assets/Popover-BjLYiaCj.js +++ b/frontend/dist/assets/Popover-DoBIZ3BA.js @@ -1,4 +1,4 @@ -import{A as e,At as t,B as n,C as r,D as i,E as a,F as o,Ft as s,H as c,Ht as l,I as u,L as d,M as f,N as p,Nt as m,O as h,P as g,R as _,Rt as v,S as y,T as b,U as x,V as S,W as ee,Yt as C,_ as te,an as ne,at as w,b as T,bt as E,cn as D,gt as re,in as ie,it as ae,j as oe,k as O,m as k,nt as A,ot as j,rt as M,st as se,vn as N,vt as ce,w as le,x as P,xn as F,xt as I,y as ue,z as de}from"./client-DrrW410h.js";import{a as fe,i as pe,o as L,t as me}from"./Follower-BtPkzZJm.js";import{c as he,l as ge,n as _e,s as ve}from"./Scrollbar-BUURfLNv.js";import{_ as ye,m as be,p as xe,u as Se,v as Ce,x as we}from"./Suffix-CV0EsaP5.js";import{t as Te}from"./use-merged-state-CIQwNmUb.js";import{t as Ee}from"./use-compitable-BLe2cDdc.js";import{i as De,t as Oe}from"./keep-DYskFqGA.js";import{c as R,o as ke,r as Ae}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{a as je,i as Me,n as Ne,o as z,r as B,t as Pe}from"./get-C_ZePhTF.js";import{R as Fe,at as Ie,et as Le,ft as Re,it as ze,lt as Be}from"./index-cNEa5D1b.js";var V=`@@mmoContext`,Ve={mounted(e,{value:t}){e[V]={handler:void 0},typeof t==`function`&&(e[V].handler=t,he(`mousemoveoutside`,e,t))},updated(e,{value:t}){let n=e[V];typeof t==`function`?n.handler?n.handler!==t&&(ve(`mousemoveoutside`,e,n.handler),n.handler=t,he(`mousemoveoutside`,e,t)):(e[V].handler=t,he(`mousemoveoutside`,e,t)):n.handler&&=(ve(`mousemoveoutside`,e,n.handler),void 0)},unmounted(e){let{handler:t}=e[V];t&&ve(`mousemoveoutside`,e,t),e[V].handler=void 0}},H;function He(){return H===void 0&&(H=navigator.userAgent.includes(`Node.js`)||navigator.userAgent.includes(`jsdom`)),H}var U=g(c,`WeakMap`),Ue=le(Object.keys,Object),We=Object.prototype.hasOwnProperty;function Ge(e){if(!O(e))return Ue(e);var t=[];for(var n in Object(e))We.call(e,n)&&n!=`constructor`&&t.push(n);return t}function W(t){return e(t)?b(t):Ge(t)}function Ke(e,t){for(var n=-1,r=t.length,i=e.length;++ns))return!1;var l=a.get(e),u=a.get(t);if(l&&u)return l==t&&u==e;var d=-1,f=!0,p=n&vt?new Y:void 0;for(a.set(e,t),a.set(t,e);++ds))return!1;var l=a.get(e),u=a.get(t);if(l&&u)return l==t&&u==e;var d=-1,f=!0,p=n&vt?new Y:void 0;for(a.set(e,t),a.set(t,e);++d(t(),n(r,null,[i(o,{kind:`privacy`}),i(a)],64))}});export{s as default}; \ No newline at end of file +import{At as e,Jt as t,Tt as n,gt as r,kt as i}from"./client-DrrW410h.js";import{t as a}from"./HeaderMenu-DjAjwijB.js";import{t as o}from"./DocsPage-ZV8KFkx6.js";var s=e({__name:`PrivacyPolicyView`,setup(e){return(e,s)=>(t(),n(r,null,[i(o,{kind:`privacy`}),i(a)],64))}});export{s as default}; \ No newline at end of file diff --git a/frontend/dist/assets/Rate-Cc7RqaE1.js b/frontend/dist/assets/Rate-DzWTiM8f.js similarity index 98% rename from frontend/dist/assets/Rate-Cc7RqaE1.js rename to frontend/dist/assets/Rate-DzWTiM8f.js index dafa8ab..d6ae4fc 100644 --- a/frontend/dist/assets/Rate-Cc7RqaE1.js +++ b/frontend/dist/assets/Rate-DzWTiM8f.js @@ -1,4 +1,4 @@ -import{At as e,Nt as t,U as n,W as r,Xt as i,at as a,ct as o,f as s,m as c,nt as l,ot as u,rt as d,st as f,vn as p,xn as m,xt as h}from"./client-DrrW410h.js";import{t as g}from"./use-merged-state-CIQwNmUb.js";import{c as _,l as v}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{n as y}from"./use-form-item-CNQ45NOh.js";import{Q as b}from"./index-cNEa5D1b.js";function x(e){let{railColor:t}=e;return{itemColor:t,itemColorActive:`#FFCC33`,sizeSmall:`16px`,sizeMedium:`20px`,sizeLarge:`24px`}}var S={name:`Rate`,common:s,self:x},C=()=>t(`svg`,{viewBox:`0 0 512 512`},t(`path`,{d:`M394 480a16 16 0 01-9.39-3L256 383.76 127.39 477a16 16 0 01-24.55-18.08L153 310.35 23 221.2a16 16 0 019-29.2h160.38l48.4-148.95a16 16 0 0130.44 0l48.4 149H480a16 16 0 019.05 29.2L359 310.35l50.13 148.53A16 16 0 01394 480z`})),w=d(`rate`,{display:`inline-flex`,flexWrap:`nowrap`},[l(`&:hover`,[a(`item`,` +import{At as e,Nt as t,U as n,W as r,Xt as i,at as a,ct as o,f as s,m as c,nt as l,ot as u,rt as d,st as f,vn as p,xn as m,xt as h}from"./client-DrrW410h.js";import{t as g}from"./use-merged-state-CIQwNmUb.js";import{c as _,l as v}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{n as y}from"./use-form-item-CNQ45NOh.js";import{Q as b}from"./index-CvfVA1ID.js";function x(e){let{railColor:t}=e;return{itemColor:t,itemColorActive:`#FFCC33`,sizeSmall:`16px`,sizeMedium:`20px`,sizeLarge:`24px`}}var S={name:`Rate`,common:s,self:x},C=()=>t(`svg`,{viewBox:`0 0 512 512`},t(`path`,{d:`M394 480a16 16 0 01-9.39-3L256 383.76 127.39 477a16 16 0 01-24.55-18.08L153 310.35 23 221.2a16 16 0 019-29.2h160.38l48.4-148.95a16 16 0 0130.44 0l48.4 149H480a16 16 0 019.05 29.2L359 310.35l50.13 148.53A16 16 0 01394 480z`})),w=d(`rate`,{display:`inline-flex`,flexWrap:`nowrap`},[l(`&:hover`,[a(`item`,` transition: transform .1s var(--n-bezier), color .3s var(--n-bezier); diff --git a/frontend/dist/assets/ReviewsView-DgB2dabn.js b/frontend/dist/assets/ReviewsView-BWIp1pAW.js similarity index 85% rename from frontend/dist/assets/ReviewsView-DgB2dabn.js rename to frontend/dist/assets/ReviewsView-BWIp1pAW.js index f7a6f7c..259cfc1 100644 --- a/frontend/dist/assets/ReviewsView-DgB2dabn.js +++ b/frontend/dist/assets/ReviewsView-BWIp1pAW.js @@ -1 +1 @@ -import{At as e,Cn as t,Ct as n,Jt as r,Ot as i,St as a,Tt as o,Vn as s,Xt as c,gt as l,kt as u,sn as d,vn as f,wt as p}from"./client-DrrW410h.js";import{i as m,r as h}from"./ui-CXICC9ah.js";import{t as g}from"./Button-BZxcJJGv.js";import{t as _}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as v}from"./Card-B6dtDIKO.js";import{t as y}from"./Flex-YVOjVK0A.js";import{t as b}from"./Rate-Cc7RqaE1.js";import{i as x}from"./index-cNEa5D1b.js";import{t as S}from"./HeaderMenu-BvkSHjS4.js";var C={class:`center-block-custom`},w={class:`width1200`},T={class:`page-header`},E={class:`review-game`},D={class:`review-text`},O=_(e({__name:`ReviewsPage`,setup(e){let _=x(),O=h(),k=f([]);async function A(){try{let e=await _.GetReviewsForModeration({});k.value=e.reviews||[]}catch(e){O.error(e instanceof Error?e.message:`Не удалось загрузить отзывы`)}}async function j(e,t){try{await _.ModerateGameReview({ID:e.ID,status:t}),await A()}catch(e){O.error(e instanceof Error?e.message:`Не удалось изменить отзыв`)}}return A(),(e,f)=>(r(),o(l,null,[a(`div`,C,[a(`div`,w,[a(`div`,T,[f[1]||=a(`h1`,null,`Отзывы`,-1),u(t(g),{onClick:A},{default:d(()=>[...f[0]||=[i(`Обновить`,-1)]]),_:1})]),k.value.length==0?(r(),n(t(v),{key:0},{default:d(()=>[...f[2]||=[i(`Очередь отзывов пуста.`,-1)]]),_:1})):p(``,!0),(r(!0),o(l,null,c(k.value,e=>(r(),n(t(v),{key:e.ID,class:`review-card`},{default:d(()=>[u(t(y),{justify:`space-between`,align:`center`},{default:d(()=>[a(`div`,null,[a(`div`,E,s(e.gameName),1),a(`strong`,null,s(e.teamName),1)]),u(t(m),null,{default:d(()=>[i(s(e.status),1)]),_:2},1024)]),_:2},1024),u(t(b),{value:e.rating,readonly:``},null,8,[`value`]),a(`div`,null,`Сложность: `+s([``,`лёгкая`,`средняя`,`тяжёлая`][e.difficulty||0]),1),a(`p`,D,s(e.text),1),e.status==`pending`?(r(),n(t(y),{key:0,justify:`end`},{default:d(()=>[u(t(g),{type:`success`,onClick:t=>j(e,`approved`)},{default:d(()=>[...f[3]||=[i(`Одобрить`,-1)]]),_:1},8,[`onClick`]),u(t(g),{type:`error`,ghost:``,onClick:t=>j(e,`rejected`)},{default:d(()=>[...f[4]||=[i(`Отклонить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):e.status==`approved`?(r(),n(t(y),{key:1,justify:`end`},{default:d(()=>[u(t(g),{type:`error`,ghost:``,onClick:t=>j(e,`hidden`)},{default:d(()=>[...f[5]||=[i(`Скрыть`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):p(``,!0)]),_:2},1024))),128))])]),u(S,{active:`reviews`})],64))}}),[[`__scopeId`,`data-v-0b64d5d0`]]),k=e({__name:`ReviewsView`,setup(e){return(e,t)=>(r(),n(O))}});export{k as default}; \ No newline at end of file +import{At as e,Cn as t,Ct as n,Jt as r,Ot as i,St as a,Tt as o,Vn as s,Xt as c,gt as l,kt as u,sn as d,vn as f,wt as p}from"./client-DrrW410h.js";import{i as m,r as h}from"./ui-BXphkCO3.js";import{t as g}from"./Button-VP0HlDWp.js";import{t as _}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as v}from"./Card-DpsyX5Gm.js";import{t as y}from"./Flex-C50LOLeC.js";import{t as b}from"./Rate-DzWTiM8f.js";import{i as x}from"./index-CvfVA1ID.js";import{t as S}from"./HeaderMenu-DjAjwijB.js";var C={class:`center-block-custom`},w={class:`width1200`},T={class:`page-header`},E={class:`review-game`},D={class:`review-text`},O=_(e({__name:`ReviewsPage`,setup(e){let _=x(),O=h(),k=f([]);async function A(){try{let e=await _.GetReviewsForModeration({});k.value=e.reviews||[]}catch(e){O.error(e instanceof Error?e.message:`Не удалось загрузить отзывы`)}}async function j(e,t){try{await _.ModerateGameReview({ID:e.ID,status:t}),await A()}catch(e){O.error(e instanceof Error?e.message:`Не удалось изменить отзыв`)}}return A(),(e,f)=>(r(),o(l,null,[a(`div`,C,[a(`div`,w,[a(`div`,T,[f[1]||=a(`h1`,null,`Отзывы`,-1),u(t(g),{onClick:A},{default:d(()=>[...f[0]||=[i(`Обновить`,-1)]]),_:1})]),k.value.length==0?(r(),n(t(v),{key:0},{default:d(()=>[...f[2]||=[i(`Очередь отзывов пуста.`,-1)]]),_:1})):p(``,!0),(r(!0),o(l,null,c(k.value,e=>(r(),n(t(v),{key:e.ID,class:`review-card`},{default:d(()=>[u(t(y),{justify:`space-between`,align:`center`},{default:d(()=>[a(`div`,null,[a(`div`,E,s(e.gameName),1),a(`strong`,null,s(e.teamName),1)]),u(t(m),null,{default:d(()=>[i(s(e.status),1)]),_:2},1024)]),_:2},1024),u(t(b),{value:e.rating,readonly:``},null,8,[`value`]),a(`div`,null,`Сложность: `+s([``,`лёгкая`,`средняя`,`тяжёлая`][e.difficulty||0]),1),a(`p`,D,s(e.text),1),e.status==`pending`?(r(),n(t(y),{key:0,justify:`end`},{default:d(()=>[u(t(g),{type:`success`,onClick:t=>j(e,`approved`)},{default:d(()=>[...f[3]||=[i(`Одобрить`,-1)]]),_:1},8,[`onClick`]),u(t(g),{type:`error`,ghost:``,onClick:t=>j(e,`rejected`)},{default:d(()=>[...f[4]||=[i(`Отклонить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):e.status==`approved`?(r(),n(t(y),{key:1,justify:`end`},{default:d(()=>[u(t(g),{type:`error`,ghost:``,onClick:t=>j(e,`hidden`)},{default:d(()=>[...f[5]||=[i(`Скрыть`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):p(``,!0)]),_:2},1024))),128))])]),u(S,{active:`reviews`})],64))}}),[[`__scopeId`,`data-v-0b64d5d0`]]),k=e({__name:`ReviewsView`,setup(e){return(e,t)=>(r(),n(O))}});export{k as default}; \ No newline at end of file diff --git a/frontend/dist/assets/ScenarioView-B_-FLFQB.js b/frontend/dist/assets/ScenarioView-jwfdyWER.js similarity index 93% rename from frontend/dist/assets/ScenarioView-B_-FLFQB.js rename to frontend/dist/assets/ScenarioView-jwfdyWER.js index e790808..13b3f7e 100644 --- a/frontend/dist/assets/ScenarioView-B_-FLFQB.js +++ b/frontend/dist/assets/ScenarioView-jwfdyWER.js @@ -1 +1 @@ -import{At as e,Cn as t,Ct as n,Jt as r,Ot as i,St as a,Tt as o,Vn as s,Xt as c,gt as l,kt as u,sn as d,u as f,vn as p,wt as m}from"./client-DrrW410h.js";import{i as h,r as g}from"./ui-CXICC9ah.js";import{t as _}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as v}from"./Rate-Cc7RqaE1.js";import{i as y}from"./index-cNEa5D1b.js";import{t as b}from"./HeaderMenu-BvkSHjS4.js";import{t as x}from"./SiteFooter-BjbzmgYc.js";var S={class:`center-block-custom`},C={class:`width700`},w={class:`scenario-card`},T={class:`scenario-heading`},E={class:`scenario-title`},D={class:`scenario-image-frame`},O=[`src`,`alt`],k={class:`scenario-details`},A={class:`scenario-description`},j={class:`scenario-rating`},M={key:1},N={key:2},P={key:0,class:`scenario-difficulty`},F={class:`scenario-author`},I={key:1,class:`reviews-section`},L={class:`review-heading`},R={class:`review-game`},z={class:`review-text`},B=_(e({__name:`ScenarioPage`,setup(e){let _=g(),B=y(),V=f().params.id,H=p([]),U=p({ID:void 0,name:void 0,story:void 0,author:void 0,status:void 0,updatedAt:void 0,createdAt:void 0,publishedAt:void 0,averageRating:void 0,reviewsCount:void 0,difficulty:void 0});async function W(e){try{let t=await B.GetScenario({ID:e});U.value=t.scenario}catch(e){_.error(e instanceof Error?e.message:`Не удалось загрузить сценарий`)}}W(Number(V));async function G(e){try{let t=await B.GetScenarioReviews({scenarioID:e});H.value=t.reviews||[]}catch(e){_.error(e instanceof Error?e.message:`Не удалось загрузить отзывы`)}}return G(Number(V)),(e,f)=>(r(),o(l,null,[a(`div`,S,[a(`div`,C,[a(`section`,w,[a(`div`,T,[f[0]||=a(`p`,{class:`scenario-kicker`},`ДЕЛО ИЗ КАТАЛОГА`,-1),a(`h1`,E,s(U.value.name),1)]),a(`div`,D,[a(`img`,{class:`scenario-image`,src:U.value.image,alt:U.value.name},null,8,O)]),a(`div`,k,[a(`p`,A,s(U.value.description),1),a(`div`,j,[U.value.reviewsCount?(r(),n(t(v),{key:0,value:U.value.averageRating,readonly:``,"allow-half":``,size:`small`},null,8,[`value`])):m(``,!0),U.value.reviewsCount?(r(),o(`span`,M,s(U.value.averageRating?.toFixed(1))+` · `+s(U.value.reviewsCount)+` отзывов`,1)):(r(),o(`span`,N,`Пока нет оценок`))]),U.value.difficulty?(r(),o(`div`,P,`Сложность: `+s(U.value.difficulty),1)):m(``,!0),a(`div`,F,[u(t(h),{bordered:!1,type:`success`,class:`status-block`},{default:d(()=>[i(` Автор: `+s(U.value.author?.username),1)]),_:1})]),H.value.length?(r(),o(`section`,I,[f[1]||=a(`h2`,{class:`reviews-title`},`Отзывы команд`,-1),(r(!0),o(l,null,c(H.value,e=>(r(),o(`article`,{key:e.ID,class:`review-card`},[a(`div`,L,[a(`strong`,null,s(e.teamName),1),u(t(v),{value:e.rating,readonly:``,size:`small`},null,8,[`value`])]),a(`div`,null,`Сложность: `+s([``,`лёгкая`,`средняя`,`тяжёлая`][e.difficulty||0]),1),a(`div`,R,s(e.gameName),1),a(`p`,z,s(e.text),1)]))),128))])):m(``,!0)])])]),u(x)]),u(b,{active:`catalog`})],64))}}),[[`__scopeId`,`data-v-557cbdd2`]]),V=e({__name:`ScenarioView`,setup(e){return(e,t)=>(r(),n(B))}});export{V as default}; \ No newline at end of file +import{At as e,Cn as t,Ct as n,Jt as r,Ot as i,St as a,Tt as o,Vn as s,Xt as c,gt as l,kt as u,sn as d,u as f,vn as p,wt as m}from"./client-DrrW410h.js";import{i as h,r as g}from"./ui-BXphkCO3.js";import{t as _}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as v}from"./Rate-DzWTiM8f.js";import{i as y}from"./index-CvfVA1ID.js";import{t as b}from"./HeaderMenu-DjAjwijB.js";import{t as x}from"./SiteFooter-BjbzmgYc.js";var S={class:`center-block-custom`},C={class:`width700`},w={class:`scenario-card`},T={class:`scenario-heading`},E={class:`scenario-title`},D={class:`scenario-image-frame`},O=[`src`,`alt`],k={class:`scenario-details`},A={class:`scenario-description`},j={class:`scenario-rating`},M={key:1},N={key:2},P={key:0,class:`scenario-difficulty`},F={class:`scenario-author`},I={key:1,class:`reviews-section`},L={class:`review-heading`},R={class:`review-game`},z={class:`review-text`},B=_(e({__name:`ScenarioPage`,setup(e){let _=g(),B=y(),V=f().params.id,H=p([]),U=p({ID:void 0,name:void 0,story:void 0,author:void 0,status:void 0,updatedAt:void 0,createdAt:void 0,publishedAt:void 0,averageRating:void 0,reviewsCount:void 0,difficulty:void 0});async function W(e){try{let t=await B.GetScenario({ID:e});U.value=t.scenario}catch(e){_.error(e instanceof Error?e.message:`Не удалось загрузить сценарий`)}}W(Number(V));async function G(e){try{let t=await B.GetScenarioReviews({scenarioID:e});H.value=t.reviews||[]}catch(e){_.error(e instanceof Error?e.message:`Не удалось загрузить отзывы`)}}return G(Number(V)),(e,f)=>(r(),o(l,null,[a(`div`,S,[a(`div`,C,[a(`section`,w,[a(`div`,T,[f[0]||=a(`p`,{class:`scenario-kicker`},`ДЕЛО ИЗ КАТАЛОГА`,-1),a(`h1`,E,s(U.value.name),1)]),a(`div`,D,[a(`img`,{class:`scenario-image`,src:U.value.image,alt:U.value.name},null,8,O)]),a(`div`,k,[a(`p`,A,s(U.value.description),1),a(`div`,j,[U.value.reviewsCount?(r(),n(t(v),{key:0,value:U.value.averageRating,readonly:``,"allow-half":``,size:`small`},null,8,[`value`])):m(``,!0),U.value.reviewsCount?(r(),o(`span`,M,s(U.value.averageRating?.toFixed(1))+` · `+s(U.value.reviewsCount)+` отзывов`,1)):(r(),o(`span`,N,`Пока нет оценок`))]),U.value.difficulty?(r(),o(`div`,P,`Сложность: `+s(U.value.difficulty),1)):m(``,!0),a(`div`,F,[u(t(h),{bordered:!1,type:`success`,class:`status-block`},{default:d(()=>[i(` Автор: `+s(U.value.author?.username),1)]),_:1})]),H.value.length?(r(),o(`section`,I,[f[1]||=a(`h2`,{class:`reviews-title`},`Отзывы команд`,-1),(r(!0),o(l,null,c(H.value,e=>(r(),o(`article`,{key:e.ID,class:`review-card`},[a(`div`,L,[a(`strong`,null,s(e.teamName),1),u(t(v),{value:e.rating,readonly:``,size:`small`},null,8,[`value`])]),a(`div`,null,`Сложность: `+s([``,`лёгкая`,`средняя`,`тяжёлая`][e.difficulty||0]),1),a(`div`,R,s(e.gameName),1),a(`p`,z,s(e.text),1)]))),128))])):m(``,!0)])])]),u(x)]),u(b,{active:`catalog`})],64))}}),[[`__scopeId`,`data-v-557cbdd2`]]),V=e({__name:`ScenarioView`,setup(e){return(e,t)=>(r(),n(B))}});export{V as default}; \ No newline at end of file diff --git a/frontend/dist/assets/ScenariosEditorView-B0aWQk_b.js b/frontend/dist/assets/ScenariosEditorView-Cy8Ufmpq.js similarity index 96% rename from frontend/dist/assets/ScenariosEditorView-B0aWQk_b.js rename to frontend/dist/assets/ScenariosEditorView-Cy8Ufmpq.js index 44cbcca..c01a94a 100644 --- a/frontend/dist/assets/ScenariosEditorView-B0aWQk_b.js +++ b/frontend/dist/assets/ScenariosEditorView-Cy8Ufmpq.js @@ -1 +1 @@ -import{At as e,Cn as t,Ct as n,Jt as r,Ot as i,St as a,Tt as o,Vn as s,Xt as c,Zt as ee,gt as l,kt as u,sn as d,u as f,vn as p,wt as m,xt as h}from"./client-DrrW410h.js";import{i as g,n as _,r as te}from"./ui-CXICC9ah.js";import{t as ne}from"./Modal-CUD1N8ld.js";import{t as v}from"./Button-BZxcJJGv.js";import{t as re}from"./Select-D0BL7DpH.js";import{t as y}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{n as ie,t as b}from"./Upload-Q_ddyPUF.js";import{n as ae,r as oe,t as se}from"./PlaceBlock-DlajveRU.js";import{t as x}from"./Input-Bg8PolMg.js";import{t as ce}from"./Alert-CewvQG_z.js";import{t as S}from"./Card-B6dtDIKO.js";import{t as C}from"./Space-CbidFwig.js";import{t as w}from"./Flex-YVOjVK0A.js";import{t as T}from"./text-WRQwmy2U.js";import{i as le,o as ue,t as de}from"./index-cNEa5D1b.js";import{t as fe}from"./HeaderMenu-BvkSHjS4.js";import{t as pe}from"./binary_client-CCuS4lkD.js";import{r as me}from"./application-Dx7AOLHI.js";var E={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},he=e({name:`Settings`,render:function(e,t){return r(),o(`svg`,E,t[0]||=[a(`path`,{d:`M27 16.76V16v-.77l1.92-1.68A2 2 0 0 0 29.3 11l-2.36-4a2 2 0 0 0-1.73-1a2 2 0 0 0-.64.1l-2.43.82a11.35 11.35 0 0 0-1.31-.75l-.51-2.52a2 2 0 0 0-2-1.61h-4.68a2 2 0 0 0-2 1.61l-.51 2.52a11.48 11.48 0 0 0-1.32.75l-2.38-.86A2 2 0 0 0 6.79 6a2 2 0 0 0-1.73 1L2.7 11a2 2 0 0 0 .41 2.51L5 15.24v1.53l-1.89 1.68A2 2 0 0 0 2.7 21l2.36 4a2 2 0 0 0 1.73 1a2 2 0 0 0 .64-.1l2.43-.82a11.35 11.35 0 0 0 1.31.75l.51 2.52a2 2 0 0 0 2 1.61h4.72a2 2 0 0 0 2-1.61l.51-2.52a11.48 11.48 0 0 0 1.32-.75l2.42.82a2 2 0 0 0 .64.1a2 2 0 0 0 1.73-1l2.28-4a2 2 0 0 0-.41-2.51zM25.21 24l-3.43-1.16a8.86 8.86 0 0 1-2.71 1.57L18.36 28h-4.72l-.71-3.55a9.36 9.36 0 0 1-2.7-1.57L6.79 24l-2.36-4l2.72-2.4a8.9 8.9 0 0 1 0-3.13L4.43 12l2.36-4l3.43 1.16a8.86 8.86 0 0 1 2.71-1.57L13.64 4h4.72l.71 3.55a9.36 9.36 0 0 1 2.7 1.57L25.21 8l2.36 4l-2.72 2.4a8.9 8.9 0 0 1 0 3.13L27.57 20z`,fill:`currentColor`},null,-1),a(`path`,{d:`M16 22a6 6 0 1 1 6-6a5.94 5.94 0 0 1-6 6zm0-10a3.91 3.91 0 0 0-4 4a3.91 3.91 0 0 0 4 4a3.91 3.91 0 0 0 4-4a3.91 3.91 0 0 0-4-4z`,fill:`currentColor`},null,-1)])}}),D={key:1,class:`place-block`},O={class:`message-header`},k={class:`message-content`},A={key:0},j={class:`correct-answer`},M={key:1,class:`intro-empty`},N={key:3,class:`place-block`},P={class:`slot-block`},ge=y(e({__name:`QuestionBlock`,props:{newQuestionCode:{},newQuestionText:{},newQuestionAnswer:{},question:{},mode:{}},emits:[`update:newQuestionCode`,`update:newQuestionText`,`update:newQuestionAnswer`,`update:mode`],setup(e,{emit:n}){let c=e,f=n,p=e=>{f(`update:newQuestionCode`,e)},h=e=>{f(`update:newQuestionText`,e)},g=e=>{f(`update:newQuestionAnswer`,e)},_=e=>{f(`update:mode`,e)};return(n,f)=>(r(),o(l,null,[e.mode==`mini-add`?(r(),o(`div`,{key:0,class:`place-block-hover show-editor-block`,onClick:f[0]||=e=>_(`add`)},[...f[5]||=[a(`p`,{class:`place-image-plus`},`+`,-1)]])):m(``,!0),e.mode==`add`?(r(),o(`div`,D,[u(t(C),{vertical:``},{default:d(()=>[u(t(oe),null,{default:d(()=>[u(t(x),{style:{width:`25%`},value:e.newQuestionCode,"onUpdate:value":p,type:`text`,placeholder:`В-1`},null,8,[`value`]),u(t(x),{style:{width:`75%`},value:e.newQuestionText,"onUpdate:value":h,type:`text`,placeholder:`Кто украл пастуха?`},null,8,[`value`])]),_:1}),u(t(x),{value:e.newQuestionAnswer,"onUpdate:value":g,type:`textarea`,autosize:{minRows:2},placeholder:`Правильный ответ (виден только автору и организаторам)`},null,8,[`value`]),ee(n.$slots,`default`,{},void 0,!0)]),_:3})])):m(``,!0),e.mode==`show-editor`?(r(),o(`div`,{key:2,class:`place-block-hover show-editor-block`,onClick:f[1]||=e=>_(`edit`)},[a(`div`,O,s(c.question?.code)+`: `+s(c.question?.text),1),f[8]||=a(`hr`,{class:`hr`},null,-1),a(`div`,k,[c.question?.answer?(r(),o(`span`,A,[f[6]||=i(` Ответ:`,-1),f[7]||=a(`br`,null,null,-1),a(`span`,j,s(c.question.answer),1)])):(r(),o(`span`,M,`Ответ не задан`))])])):m(``,!0),e.mode==`edit`?(r(),o(`div`,N,[u(t(C),{vertical:``},{default:d(()=>[u(t(oe),null,{default:d(()=>[u(t(x),{style:{width:`25%`},value:c.question.code,"onUpdate:value":f[2]||=e=>c.question.code=e,type:`text`,placeholder:`В-1`},null,8,[`value`]),u(t(x),{style:{width:`75%`},value:c.question.text,"onUpdate:value":f[3]||=e=>c.question.text=e,type:`text`,placeholder:`Кто украл пастуха?`},null,8,[`value`])]),_:1}),f[10]||=a(`p`,{class:`settings-header`},`Правильный ответ`,-1),u(t(x),{value:c.question.answer,"onUpdate:value":f[4]||=e=>c.question.answer=e,type:`textarea`,autosize:{minRows:2},placeholder:`Правильный ответ (виден только автору и организаторам)`},null,8,[`value`]),u(t(T),{class:`hint`,depth:`3`},{default:d(()=>[...f[9]||=[i(` Смена кода вопроса не переносит ответы команд, отправленные под старым кодом. `,-1)]]),_:1}),a(`div`,P,[ee(n.$slots,`default`,{},void 0,!0)])]),_:3})])):m(``,!0)],64))}}),[[`__scopeId`,`data-v-b506c9f9`]]),_e={class:`width700`},ve={class:`places-container`},ye={class:`settings-block`},be=[`src`],xe=[`src`],Se=[`aria-label`],F=y(e({__name:`ScenariosEditorPage`,setup(e){let ee=ue(),y=le(),oe=pe(),E=f().params.id,D=p(!1),O=p(``),k=p(``),A=p(!1),j=te(),M=p([]),N=p({ID:void 0,name:void 0,story:void 0,author:void 0,status:void 0,updatedAt:void 0,createdAt:void 0,publishedAt:void 0,averageRating:void 0,reviewsCount:void 0,difficulty:void 0}),P=p([]),F=p(!1),I=p({text:``,audio:``}),L=p(`show-editor`),R=p({text:``,video:``}),z=p([]),B=p(!1),Ce=h(()=>me(R.value.video)),we=p([]),V=p(null);function H(){R.value={text:``,video:``,...N.value.story?.conclusion},z.value=[]}function Te(){R.value.video=``,z.value=[]}async function Ee(e=!1){B.value=!0;try{let t=Qe(R.value.video);if(!e&&z.value.length){let e=z.value[0].file;if(!e)return;let n=await G(e,`scenarios_`+N.value.ID+`_conclusion_`+e.name);if(!n.filename)return;if(n.fileType!==`video`){j.error(`Закрывашка должна содержать видео MP4 или WebM`);return}t=n.filename}let n=e?{text:``,video:``}:{text:R.value.text,video:t};await y.UpdateScenarioConclusion({ID:N.value.ID,conclusion:n}),N.value.story.conclusion=n,H(),j.success(e?`Закрывашка удалена`:`Закрывашка сохранена`)}catch{j.error(`Не удалось сохранить закрывашку`)}finally{B.value=!1}}let De=h(()=>N.value.story?.places||[]),Oe=p(null),U=new Map;function ke(e){let t=e?De.value.find(t=>(t.oldCode??t.code)===e):void 0,n=t&&U.get(t),r=Oe.value;if(!n||!r){j.error(e?`Точка «${e}» не найдена`:`У действия не указан код точки`);return}n.focus({preventScroll:!0}),r.scrollTo({top:r.scrollTop+n.getBoundingClientRect().top-r.getBoundingClientRect().top-10,behavior:`smooth`})}let Ae=h(()=>N.value.story?.questions||[]);async function W(e){let t=await y.GetFullScenario({ID:e});N.value=t.scenario,V.value=N.value.music_playlist_id||null,H(),N.value.story?.places?.forEach(e=>{let t=e;t.oldCode=t.code,t.mode=`show-editor`}),N.value.story?.questions?.forEach(e=>{let t=e;t.oldCode=t.code,t.mode=`show-editor`}),I.value=N.value.story?.introduction||{text:``,audio:``},L.value=`show-editor`}W(Number(E));async function je(){try{let e=await y.GetPlaylists({});we.value=e.playlists||[]}catch(e){j.error(e instanceof Error?e.message:`Не удалось загрузить плейлисты`)}}je();async function Me(e){try{await y.SetScenarioPlaylist({ID:Number(E),playlistID:e||0}),j.success(`Плейлист сценария сохранён`)}catch(e){j.error(e instanceof Error?e.message:`Не удалось сохранить плейлист`)}}async function Ne(e){await y.DeleteScenario({ID:e}),de.push(`/scenarios`)}async function Pe(e){await y.PublicScenario({ID:e}),await W(Number(E)),O.value=``,D.value=!1}async function Fe(e,t){let n=new Date().toISOString(),r=await y.AddGame({name:(`Тестовая игра: `+e).trim(),description:`Тестовая игра`,location:``,format:`online`,startAt:n,scenarioID:t}),i=await y.AddTeam({name:`Тестовая команда`,captainEmail:``,gameID:r.ID,participantsCount:void 0});de.push(`/team-story/`+i.ID+`?password=`+i.password)}async function Ie(e){await y.DraftScenario({ID:e}),await W(Number(E)),O.value=``,D.value=!1}async function Le(){A.value=!0;try{let{blob:e,filename:t}=await oe.downloadScenarioArchive(N.value.ID),n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),1e3),j.success(`Архив сценария скачан`)}catch(e){j.error(e instanceof Error?e.message:`Не удалось скачать архив`)}finally{A.value=!1}}async function G(e,t){if(!e)return{filename:``,fileType:``};let n=await e.arrayBuffer(),r=new Uint8Array(n),i=await y.UploadFile({filename:t,data:ze(r)});return{filename:i.filename||``,fileType:i.file_type||``}}async function Re(){let e=``;if(M.value&&M.value.length>0){let t=M.value[0].file||null;if(t==null)return;let n=await G(t,`scenarios_`+N.value.ID+`_`+t.name);if(n.filename===``)return;e=n.filename}await y.UpdateScenario({ID:N.value.ID,name:N.value.name,description:N.value.description,image:e}),await W(Number(E)),D.value=!1}function ze(e){let t=Be(e);return btoa(t)}function Be(e){let t=``;for(let n=0;ne.code==n.code)??await y.AddScenarioPlace({ID:e.ID,place:{code:n.code,name:n.name,text:void 0,image:void 0,hidden:!0,applications:void 0,doors:void 0,keys:void 0}})}async function We(e){await W(Number(E)),e.mode=`show-editor`}async function Ge(e){if(e.fileList&&e.fileList.length>0){let t=e.fileList[0].file||null;if(t==null)return;let n=await G(t,`scenarios_`+N.value.ID+`_place_`+e.code+`_`+t.name);if(n.filename===``)return;e.image=n.filename}let t=e.applications||[];for(let n of t){if(!n.fileList||n.fileList.length==0)continue;let t=n.fileList[0].file||null;if(t==null)continue;let r=await G(t,`scenarios_`+N.value.ID+`_place_`+e.code+`_app_`+t.name);if(r.filename===``)return;n.image=r.filename,n.file_type=r.fileType}await Ue(N.value,e),await y.UpdateScenarioPlace({ID:N.value.ID,code:e.oldCode,place:e}),await W(Number(E)),e.mode=`show-editor`}async function Ke(e){await y.DeleteScenarioPlace({ID:N.value.ID,code:e.oldCode}),await W(Number(E))}let X=p(``),Z=p(``),Q=p(``),$=p(`mini-add`);async function qe(){await y.AddScenarioQuestion({ID:N.value.ID,question:{code:X.value,text:Z.value,answer:Q.value}}),await W(Number(E)),X.value=``,Z.value=``,Q.value=``,$.value=`add`}async function Je(){X.value=``,Z.value=``,Q.value=``,$.value=`mini-add`}async function Ye(e){await y.UpdateScenarioQuestion({ID:N.value.ID,code:e.oldCode,question:{code:e.code,text:e.text,answer:e.answer}}),await W(Number(E)),e.mode=`show-editor`}async function Xe(e){await W(Number(E)),e.mode=`show-editor`}async function Ze(e){await y.DeleteScenarioQuestion({ID:N.value.ID,code:e.oldCode}),await W(Number(E))}function Qe(e){return e&&e.split(`/`).pop()||``}async function $e(){let e=``;if(I.value.fileList&&I.value.fileList.length>0){let t=I.value.fileList[0].file||null;if(t==null||(e=(await G(t,`scenarios_`+N.value.ID+`_intro_`+t.name)).filename,e===``))return}else e=Qe(I.value.audio);await y.UpdateScenarioIntro({ID:N.value.ID,introduction:{text:I.value.text,audio:e}}),await W(Number(E))}async function et(e=!1){F.value=!0;try{let t=``;if(!e){let e=P.value[0]?.file;if(!e)return;let n=await G(e,`scenarios_`+N.value.ID+`_background_`+e.name);if(!n.filename)return;if(n.fileType!==`image`){j.error(`Фон дела должен быть изображением`);return}t=n.filename}await y.UpdateScenarioBackground({ID:N.value.ID,background:t}),await W(Number(E)),P.value=[]}catch{j.error(`Не удалось сохранить фон дела`)}finally{F.value=!1}}async function tt(){await W(Number(E))}function nt(){let e=[{text:`Настя, ты просто ослепительна сегодня!`,nameForm:`Настя`},{text:`У Насти невероятный вкус!`,nameForm:`Насти`},{text:`Настенька, твоя улыбка делает мир ярче.`,nameForm:`Настенька`},{text:`С Настей всегда интересно общаться.`,nameForm:`Настей`},{text:`Настя, ты — источник вдохновения для всех вокруг.`,nameForm:`Настя`},{text:`Мне нравится, как Настя смотрит на мир.`,nameForm:`Настя`},{text:`Настюха, ты супер!`,nameForm:`Настюха`},{text:`Талант Насти поражает!`,nameForm:`Насти`},{text:`Настя, твоя энергия заряжает батарейки!`,nameForm:`Настя`},{text:`С Настей хочется проводить каждую минуту.`,nameForm:`Настей`},{text:`Настенька, ты — самое красивое, что случилось в этом мире.`,nameForm:`Настенька`},{text:`У Насти золотое сердце.`,nameForm:`Насти`}];return e[Math.floor(Math.random()*e.length)].text}return(e,f)=>(r(),o(l,null,[a(`div`,{ref_key:`scrollContainer`,ref:Oe,class:`center-block-custom`},[a(`div`,_e,[a(`div`,ve,[N.value.status==`public`?(r(),n(t(ce),{key:0,title:`Сценарий опубликован`,type:`warning`,style:{"margin-bottom":`20px`}},{default:d(()=>[...f[40]||=[i(` Не рекомендуется редактировать сценарий когда он опубликован. `,-1)]]),_:1})):m(``,!0),t(ee).user?.ID==2?(r(),n(t(ce),{key:1,title:nt(),type:`info`,style:{"margin-bottom":`20px`}},null,8,[`title`])):m(``,!0),a(`div`,ye,[i(` Точек: `+s(N.value.story?.places?.length)+`, Вопросов: `+s(N.value.story?.questions?.length)+` `,1),u(t(v),{quaternary:``,onClick:f[0]||=e=>D.value=!0,class:`settings-button`},{default:d(()=>[u(t(_),{class:`settings-icon`},{default:d(()=>[u(t(he))]),_:1}),f[41]||=i(` Настройки `,-1)]),_:1})]),u(t(S),{title:`Музыка сценария`},{default:d(()=>[u(t(re),{value:V.value,"onUpdate:value":[f[1]||=e=>V.value=e,Me],options:we.value.map(e=>({label:e.name,value:e.ID})),clearable:``,placeholder:`Плейлист по умолчанию`},null,8,[`value`,`options`])]),_:1}),u(t(S),{title:`Фон дела`},{default:d(()=>[u(t(C),{vertical:``},{default:d(()=>[N.value.story?.background?(r(),o(`img`,{key:0,src:N.value.story.background,alt:`Фон дела`,class:`background-preview`},null,8,be)):m(``,!0),u(t(b),{"file-list":P.value,"onUpdate:fileList":f[2]||=e=>P.value=e,accept:`.jpg,.jpeg,.png,.gif,.webp`,max:1,"default-upload":!1,disabled:F.value},{default:d(()=>[u(t(v),{disabled:F.value},{default:d(()=>[...f[42]||=[i(`Выбрать фон`,-1)]]),_:1},8,[`disabled`])]),_:1},8,[`file-list`,`disabled`]),u(t(w),null,{default:d(()=>[u(t(v),{loading:F.value,disabled:!P.value.length||F.value,onClick:f[3]||=e=>et()},{default:d(()=>[...f[43]||=[i(`Сохранить фон`,-1)]]),_:1},8,[`loading`,`disabled`]),N.value.story?.background?(r(),n(t(v),{key:0,disabled:F.value,onClick:f[4]||=e=>et(!0)},{default:d(()=>[...f[44]||=[i(`Удалить фон`,-1)]]),_:1},8,[`disabled`])):m(``,!0)]),_:1})]),_:1})]),_:1}),u(ae,{introduction:I.value,mode:L.value,"onUpdate:mode":f[7]||=e=>L.value=e},{default:d(()=>[u(t(w),{justify:`end`},{default:d(()=>[u(t(v),{onClick:f[5]||=e=>tt()},{default:d(()=>[...f[45]||=[i(`Отмена`,-1)]]),_:1}),u(t(v),{onClick:f[6]||=e=>$e()},{default:d(()=>[...f[46]||=[i(`Сохранить вступление`,-1)]]),_:1})]),_:1})]),_:1},8,[`introduction`,`mode`]),u(t(S),{title:`Закрывашка сценария`},{default:d(()=>[u(t(C),{vertical:``},{default:d(()=>[u(t(T),{depth:`3`},{default:d(()=>[...f[47]||=[i(`Разгадка дела для автора. Игрокам не показывается.`,-1)]]),_:1}),u(t(x),{value:R.value.text,"onUpdate:value":f[8]||=e=>R.value.text=e,type:`textarea`,autosize:{minRows:4,maxRows:12},placeholder:`Текст закрывашки`,"aria-label":`Текст закрывашки`,disabled:B.value},null,8,[`value`,`disabled`]),Ce.value?(r(),o(`video`,{key:0,src:Ce.value,controls:``,preload:`none`,class:`conclusion-video`,"aria-label":`Видео закрывашки`},null,8,xe)):m(``,!0),R.value.video?(r(),n(t(v),{key:1,disabled:B.value,onClick:f[9]||=e=>Te()},{default:d(()=>[...f[48]||=[i(`Убрать видео`,-1)]]),_:1},8,[`disabled`])):m(``,!0),u(t(b),{"file-list":z.value,"onUpdate:fileList":f[10]||=e=>z.value=e,accept:`.mp4,.webm`,max:1,"default-upload":!1,disabled:B.value},{default:d(()=>[u(t(v),{disabled:B.value},{default:d(()=>[...f[49]||=[i(`Выбрать видео MP4/WebM`,-1)]]),_:1},8,[`disabled`])]),_:1},8,[`file-list`,`disabled`]),u(t(w),{justify:`end`},{default:d(()=>[N.value.story?.conclusion?.text||N.value.story?.conclusion?.video?(r(),n(t(v),{key:0,disabled:B.value,onClick:f[11]||=e=>Ee(!0)},{default:d(()=>[...f[50]||=[i(`Удалить закрывашку`,-1)]]),_:1},8,[`disabled`])):m(``,!0),u(t(v),{disabled:B.value,onClick:f[12]||=e=>H()},{default:d(()=>[...f[51]||=[i(`Отмена`,-1)]]),_:1},8,[`disabled`]),u(t(v),{loading:B.value,disabled:B.value||!N.value.story,onClick:f[13]||=e=>Ee()},{default:d(()=>[...f[52]||=[i(`Сохранить закрывашку`,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1}),f[63]||=a(`div`,{class:`questions-header`},`Вопросы дела`,-1),u(ge,{mode:$.value,"onUpdate:mode":f[16]||=e=>$.value=e,newQuestionCode:X.value,"onUpdate:newQuestionCode":f[17]||=e=>X.value=e,newQuestionText:Z.value,"onUpdate:newQuestionText":f[18]||=e=>Z.value=e,newQuestionAnswer:Q.value,"onUpdate:newQuestionAnswer":f[19]||=e=>Q.value=e},{default:d(()=>[u(t(w),{justify:`end`},{default:d(()=>[u(t(v),{onClick:f[14]||=e=>Je()},{default:d(()=>[...f[53]||=[i(`Отмена`,-1)]]),_:1}),u(t(v),{onClick:f[15]||=e=>qe(),disabled:!X.value},{default:d(()=>[...f[54]||=[i(`Добавить вопрос`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`mode`,`newQuestionCode`,`newQuestionText`,`newQuestionAnswer`]),(r(!0),o(l,null,c(Ae.value,e=>(r(),n(ge,{question:e,mode:e.mode,"onUpdate:mode":t=>e.mode=t,key:e.oldCode??e.code??``},{default:d(()=>[u(t(w),{justify:`end`},{default:d(()=>[u(t(v),{onClick:t=>Ze(e),type:`error`,ghost:``},{default:d(()=>[...f[55]||=[i(`Удалить`,-1)]]),_:1},8,[`onClick`]),u(t(v),{onClick:t=>Xe(e)},{default:d(()=>[...f[56]||=[i(`Отмена`,-1)]]),_:1},8,[`onClick`]),u(t(v),{onClick:t=>Ye(e),disabled:e.code==``},{default:d(()=>[...f[57]||=[i(`Сохранить`,-1)]]),_:1},8,[`onClick`,`disabled`])]),_:2},1024)]),_:2},1032,[`question`,`mode`,`onUpdate:mode`]))),128)),u(se,{mode:Y.value,"onUpdate:mode":f[22]||=e=>Y.value=e,newPlaceCode:K.value,"onUpdate:newPlaceCode":f[23]||=e=>K.value=e,newPlaceName:q.value,"onUpdate:newPlaceName":f[24]||=e=>q.value=e,newPlaceText:J.value,"onUpdate:newPlaceText":f[25]||=e=>J.value=e},{default:d(()=>[u(t(w),{justify:`end`},{default:d(()=>[u(t(v),{onClick:f[20]||=e=>He()},{default:d(()=>[...f[58]||=[i(`Отмена`,-1)]]),_:1}),u(t(v),{onClick:f[21]||=e=>Ve(),disabled:!K.value},{default:d(()=>[...f[59]||=[i(`Добавить точку`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`mode`,`newPlaceCode`,`newPlaceName`,`newPlaceText`]),(r(!0),o(l,null,c(De.value,e=>(r(),o(`div`,{key:e.oldCode??e.code??``,ref_for:!0,ref:n=>n?t(U).set(e,n):t(U).delete(e),class:`place-card`,tabindex:`-1`,role:`group`,"aria-label":`${e.code}: ${e.name}`},[u(se,{place:e,mode:e.mode,"onUpdate:mode":t=>e.mode=t,onNavigate:ke},{default:d(()=>[u(t(w),{justify:`end`},{default:d(()=>[u(t(v),{onClick:t=>Ke(e),type:`error`,ghost:``},{default:d(()=>[...f[60]||=[i(`Удалить`,-1)]]),_:1},8,[`onClick`]),u(t(v),{onClick:t=>We(e)},{default:d(()=>[...f[61]||=[i(`Отмена`,-1)]]),_:1},8,[`onClick`]),u(t(v),{onClick:t=>Ge(e),disabled:e.code==``},{default:d(()=>[...f[62]||=[i(`Сохранить`,-1)]]),_:1},8,[`onClick`,`disabled`])]),_:2},1024)]),_:2},1032,[`place`,`mode`,`onUpdate:mode`])],8,Se))),128))])])],512),u(t(ne),{show:D.value,"onUpdate:show":f[39]||=e=>D.value=e},{default:d(()=>[u(t(S),{style:{width:`600px`},title:`Настройки сценария`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":d(()=>[u(t(v),{onClick:f[26]||=e=>D.value=!1},{default:d(()=>[...f[64]||=[i(` x `,-1)]]),_:1})]),footer:d(()=>[...f[88]||=[]]),default:d(()=>[u(t(C),{vertical:``},{default:d(()=>[f[77]||=a(`p`,null,`Название`,-1),u(t(x),{value:N.value.name,"onUpdate:value":f[27]||=e=>N.value.name=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),f[78]||=a(`p`,{class:`settings-header`},`Описание`,-1),u(t(x),{value:N.value.description,"onUpdate:value":f[28]||=e=>N.value.description=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`]),f[79]||=a(`p`,{class:`settings-header`},`Картинка`,-1),u(t(x),{value:N.value.image,"onUpdate:value":f[29]||=e=>N.value.image=e,type:`text`,placeholder:`default_scenario.png`,disabled:``},null,8,[`value`]),u(t(b),{"directory-dnd":``,max:1,"file-list":M.value,"onUpdate:fileList":f[30]||=e=>M.value=e},{default:d(()=>[u(t(ie),null,{default:d(()=>[u(t(T),{style:{"font-size":`16px`}},{default:d(()=>[...f[65]||=[i(` Щелкните или перетащите файл в эту область для загрузки `,-1)]]),_:1})]),_:1})]),_:1},8,[`file-list`]),u(t(v),{onClick:f[31]||=e=>Re(),ghost:``},{default:d(()=>[...f[66]||=[i(` Сохранить изменения `,-1)]]),_:1}),f[80]||=a(`hr`,{class:`settings-hr`},null,-1),f[81]||=a(`p`,{class:`settings-header`},`Архив сценария`,-1),f[82]||=a(`p`,{class:`settings-hint`},` Скачайте сценарий ZIP-архивом (scenario.json + изображения) и импортируйте его в другом аккаунте. `,-1),u(t(v),{loading:A.value,disabled:!N.value.ID,ghost:``,onClick:f[32]||=e=>Le()},{default:d(()=>[...f[67]||=[i(` Скачать архив (.zip) `,-1)]]),_:1},8,[`loading`,`disabled`]),f[83]||=a(`hr`,{class:`settings-hr`},null,-1),f[84]||=a(`p`,null,`Создать тестовую игру`,-1),u(t(v),{onClick:f[33]||=e=>Fe(N.value.name||``,N.value.ID),ghost:``},{default:d(()=>[...f[68]||=[i(` Создать игру `,-1)]]),_:1}),f[85]||=a(`hr`,{class:`settings-hr`},null,-1),f[86]||=a(`p`,null,`Публикация`,-1),a(`p`,null,[N.value.status==`public`?(r(),n(t(g),{key:0,bordered:!1,type:`success`,class:`status-block`},{default:d(()=>[...f[69]||=[i(` Опубликовано `,-1)]]),_:1})):m(``,!0),N.value.status==`draft`?(r(),n(t(g),{key:1,bordered:!1,type:`warning`,class:`status-block`},{default:d(()=>[...f[70]||=[i(` В разработке `,-1)]]),_:1})):m(``,!0)]),a(`p`,null,[f[71]||=i(` Введите название сценария `,-1),u(t(T),{class:`name-text`,strong:``},{default:d(()=>[i(s(N.value.name),1)]),_:1})]),u(t(x),{value:O.value,"onUpdate:value":f[34]||=e=>O.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),N.value.status==`public`?m(``,!0):(r(),n(t(v),{key:0,onClick:f[35]||=e=>Pe(N.value.ID),ghost:``,disabled:O.value!=N.value.name},{default:d(()=>[...f[72]||=[i(` Опубликовать сценарий `,-1)]]),_:1},8,[`disabled`])),N.value.status==`draft`?m(``,!0):(r(),n(t(v),{key:1,onClick:f[36]||=e=>Ie(N.value.ID),ghost:``,disabled:O.value!=N.value.name},{default:d(()=>[...f[73]||=[i(` Снять сценарий с публикации `,-1)]]),_:1},8,[`disabled`])),f[87]||=a(`hr`,{class:`settings-hr`},null,-1),a(`p`,null,[f[74]||=i(` Введите название сценария `,-1),u(t(T),{class:`name-text`,strong:``},{default:d(()=>[i(s(N.value.name),1)]),_:1}),f[75]||=i(` чтобы удалить его `,-1)]),u(t(x),{value:k.value,"onUpdate:value":f[37]||=e=>k.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),u(t(v),{onClick:f[38]||=e=>Ne(N.value.ID),type:`error`,ghost:``,disabled:k.value!=N.value.name},{default:d(()=>[...f[76]||=[i(` Удалить сценарий `,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`show`]),u(fe,{active:`scenarios`})],64))}}),[[`__scopeId`,`data-v-82e71240`]]),I=e({__name:`ScenariosEditorView`,setup(e){return(e,t)=>(r(),n(F))}});export{I as default}; \ No newline at end of file +import{At as e,Cn as t,Ct as n,Jt as r,Ot as i,St as a,Tt as o,Vn as s,Xt as c,Zt as ee,gt as l,kt as u,sn as d,u as f,vn as p,wt as m,xt as h}from"./client-DrrW410h.js";import{i as g,n as _,r as te}from"./ui-BXphkCO3.js";import{t as ne}from"./Modal-CBvJhnU9.js";import{t as v}from"./Button-VP0HlDWp.js";import{t as re}from"./Select-BQpeZ0on.js";import{t as y}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{n as ie,t as b}from"./Upload-D5dycHVD.js";import{n as ae,r as oe,t as se}from"./PlaceBlock-rRE4IOP9.js";import{t as x}from"./Input-B0pT-V_P.js";import{t as ce}from"./Alert-CKEVYkKu.js";import{t as S}from"./Card-DpsyX5Gm.js";import{t as C}from"./Space-J-gv2y5L.js";import{t as w}from"./Flex-C50LOLeC.js";import{t as T}from"./text-DlU9yI4b.js";import{i as le,o as ue,t as de}from"./index-CvfVA1ID.js";import{t as fe}from"./HeaderMenu-DjAjwijB.js";import{t as pe}from"./binary_client-BWJUWeZu.js";import{r as me}from"./application-Dx7AOLHI.js";var E={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},he=e({name:`Settings`,render:function(e,t){return r(),o(`svg`,E,t[0]||=[a(`path`,{d:`M27 16.76V16v-.77l1.92-1.68A2 2 0 0 0 29.3 11l-2.36-4a2 2 0 0 0-1.73-1a2 2 0 0 0-.64.1l-2.43.82a11.35 11.35 0 0 0-1.31-.75l-.51-2.52a2 2 0 0 0-2-1.61h-4.68a2 2 0 0 0-2 1.61l-.51 2.52a11.48 11.48 0 0 0-1.32.75l-2.38-.86A2 2 0 0 0 6.79 6a2 2 0 0 0-1.73 1L2.7 11a2 2 0 0 0 .41 2.51L5 15.24v1.53l-1.89 1.68A2 2 0 0 0 2.7 21l2.36 4a2 2 0 0 0 1.73 1a2 2 0 0 0 .64-.1l2.43-.82a11.35 11.35 0 0 0 1.31.75l.51 2.52a2 2 0 0 0 2 1.61h4.72a2 2 0 0 0 2-1.61l.51-2.52a11.48 11.48 0 0 0 1.32-.75l2.42.82a2 2 0 0 0 .64.1a2 2 0 0 0 1.73-1l2.28-4a2 2 0 0 0-.41-2.51zM25.21 24l-3.43-1.16a8.86 8.86 0 0 1-2.71 1.57L18.36 28h-4.72l-.71-3.55a9.36 9.36 0 0 1-2.7-1.57L6.79 24l-2.36-4l2.72-2.4a8.9 8.9 0 0 1 0-3.13L4.43 12l2.36-4l3.43 1.16a8.86 8.86 0 0 1 2.71-1.57L13.64 4h4.72l.71 3.55a9.36 9.36 0 0 1 2.7 1.57L25.21 8l2.36 4l-2.72 2.4a8.9 8.9 0 0 1 0 3.13L27.57 20z`,fill:`currentColor`},null,-1),a(`path`,{d:`M16 22a6 6 0 1 1 6-6a5.94 5.94 0 0 1-6 6zm0-10a3.91 3.91 0 0 0-4 4a3.91 3.91 0 0 0 4 4a3.91 3.91 0 0 0 4-4a3.91 3.91 0 0 0-4-4z`,fill:`currentColor`},null,-1)])}}),D={key:1,class:`place-block`},O={class:`message-header`},k={class:`message-content`},A={key:0},j={class:`correct-answer`},M={key:1,class:`intro-empty`},N={key:3,class:`place-block`},P={class:`slot-block`},ge=y(e({__name:`QuestionBlock`,props:{newQuestionCode:{},newQuestionText:{},newQuestionAnswer:{},question:{},mode:{}},emits:[`update:newQuestionCode`,`update:newQuestionText`,`update:newQuestionAnswer`,`update:mode`],setup(e,{emit:n}){let c=e,f=n,p=e=>{f(`update:newQuestionCode`,e)},h=e=>{f(`update:newQuestionText`,e)},g=e=>{f(`update:newQuestionAnswer`,e)},_=e=>{f(`update:mode`,e)};return(n,f)=>(r(),o(l,null,[e.mode==`mini-add`?(r(),o(`div`,{key:0,class:`place-block-hover show-editor-block`,onClick:f[0]||=e=>_(`add`)},[...f[5]||=[a(`p`,{class:`place-image-plus`},`+`,-1)]])):m(``,!0),e.mode==`add`?(r(),o(`div`,D,[u(t(C),{vertical:``},{default:d(()=>[u(t(oe),null,{default:d(()=>[u(t(x),{style:{width:`25%`},value:e.newQuestionCode,"onUpdate:value":p,type:`text`,placeholder:`В-1`},null,8,[`value`]),u(t(x),{style:{width:`75%`},value:e.newQuestionText,"onUpdate:value":h,type:`text`,placeholder:`Кто украл пастуха?`},null,8,[`value`])]),_:1}),u(t(x),{value:e.newQuestionAnswer,"onUpdate:value":g,type:`textarea`,autosize:{minRows:2},placeholder:`Правильный ответ (виден только автору и организаторам)`},null,8,[`value`]),ee(n.$slots,`default`,{},void 0,!0)]),_:3})])):m(``,!0),e.mode==`show-editor`?(r(),o(`div`,{key:2,class:`place-block-hover show-editor-block`,onClick:f[1]||=e=>_(`edit`)},[a(`div`,O,s(c.question?.code)+`: `+s(c.question?.text),1),f[8]||=a(`hr`,{class:`hr`},null,-1),a(`div`,k,[c.question?.answer?(r(),o(`span`,A,[f[6]||=i(` Ответ:`,-1),f[7]||=a(`br`,null,null,-1),a(`span`,j,s(c.question.answer),1)])):(r(),o(`span`,M,`Ответ не задан`))])])):m(``,!0),e.mode==`edit`?(r(),o(`div`,N,[u(t(C),{vertical:``},{default:d(()=>[u(t(oe),null,{default:d(()=>[u(t(x),{style:{width:`25%`},value:c.question.code,"onUpdate:value":f[2]||=e=>c.question.code=e,type:`text`,placeholder:`В-1`},null,8,[`value`]),u(t(x),{style:{width:`75%`},value:c.question.text,"onUpdate:value":f[3]||=e=>c.question.text=e,type:`text`,placeholder:`Кто украл пастуха?`},null,8,[`value`])]),_:1}),f[10]||=a(`p`,{class:`settings-header`},`Правильный ответ`,-1),u(t(x),{value:c.question.answer,"onUpdate:value":f[4]||=e=>c.question.answer=e,type:`textarea`,autosize:{minRows:2},placeholder:`Правильный ответ (виден только автору и организаторам)`},null,8,[`value`]),u(t(T),{class:`hint`,depth:`3`},{default:d(()=>[...f[9]||=[i(` Смена кода вопроса не переносит ответы команд, отправленные под старым кодом. `,-1)]]),_:1}),a(`div`,P,[ee(n.$slots,`default`,{},void 0,!0)])]),_:3})])):m(``,!0)],64))}}),[[`__scopeId`,`data-v-b506c9f9`]]),_e={class:`width700`},ve={class:`places-container`},ye={class:`settings-block`},be=[`src`],xe=[`src`],Se=[`aria-label`],F=y(e({__name:`ScenariosEditorPage`,setup(e){let ee=ue(),y=le(),oe=pe(),E=f().params.id,D=p(!1),O=p(``),k=p(``),A=p(!1),j=te(),M=p([]),N=p({ID:void 0,name:void 0,story:void 0,author:void 0,status:void 0,updatedAt:void 0,createdAt:void 0,publishedAt:void 0,averageRating:void 0,reviewsCount:void 0,difficulty:void 0}),P=p([]),F=p(!1),I=p({text:``,audio:``}),L=p(`show-editor`),R=p({text:``,video:``}),z=p([]),B=p(!1),Ce=h(()=>me(R.value.video)),we=p([]),V=p(null);function H(){R.value={text:``,video:``,...N.value.story?.conclusion},z.value=[]}function Te(){R.value.video=``,z.value=[]}async function Ee(e=!1){B.value=!0;try{let t=Qe(R.value.video);if(!e&&z.value.length){let e=z.value[0].file;if(!e)return;let n=await G(e,`scenarios_`+N.value.ID+`_conclusion_`+e.name);if(!n.filename)return;if(n.fileType!==`video`){j.error(`Закрывашка должна содержать видео MP4 или WebM`);return}t=n.filename}let n=e?{text:``,video:``}:{text:R.value.text,video:t};await y.UpdateScenarioConclusion({ID:N.value.ID,conclusion:n}),N.value.story.conclusion=n,H(),j.success(e?`Закрывашка удалена`:`Закрывашка сохранена`)}catch{j.error(`Не удалось сохранить закрывашку`)}finally{B.value=!1}}let De=h(()=>N.value.story?.places||[]),Oe=p(null),U=new Map;function ke(e){let t=e?De.value.find(t=>(t.oldCode??t.code)===e):void 0,n=t&&U.get(t),r=Oe.value;if(!n||!r){j.error(e?`Точка «${e}» не найдена`:`У действия не указан код точки`);return}n.focus({preventScroll:!0}),r.scrollTo({top:r.scrollTop+n.getBoundingClientRect().top-r.getBoundingClientRect().top-10,behavior:`smooth`})}let Ae=h(()=>N.value.story?.questions||[]);async function W(e){let t=await y.GetFullScenario({ID:e});N.value=t.scenario,V.value=N.value.music_playlist_id||null,H(),N.value.story?.places?.forEach(e=>{let t=e;t.oldCode=t.code,t.mode=`show-editor`}),N.value.story?.questions?.forEach(e=>{let t=e;t.oldCode=t.code,t.mode=`show-editor`}),I.value=N.value.story?.introduction||{text:``,audio:``},L.value=`show-editor`}W(Number(E));async function je(){try{let e=await y.GetPlaylists({});we.value=e.playlists||[]}catch(e){j.error(e instanceof Error?e.message:`Не удалось загрузить плейлисты`)}}je();async function Me(e){try{await y.SetScenarioPlaylist({ID:Number(E),playlistID:e||0}),j.success(`Плейлист сценария сохранён`)}catch(e){j.error(e instanceof Error?e.message:`Не удалось сохранить плейлист`)}}async function Ne(e){await y.DeleteScenario({ID:e}),de.push(`/scenarios`)}async function Pe(e){await y.PublicScenario({ID:e}),await W(Number(E)),O.value=``,D.value=!1}async function Fe(e,t){let n=new Date().toISOString(),r=await y.AddGame({name:(`Тестовая игра: `+e).trim(),description:`Тестовая игра`,location:``,format:`online`,startAt:n,scenarioID:t}),i=await y.AddTeam({name:`Тестовая команда`,captainEmail:``,gameID:r.ID,participantsCount:void 0});de.push(`/team-story/`+i.ID+`?password=`+i.password)}async function Ie(e){await y.DraftScenario({ID:e}),await W(Number(E)),O.value=``,D.value=!1}async function Le(){A.value=!0;try{let{blob:e,filename:t}=await oe.downloadScenarioArchive(N.value.ID),n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),1e3),j.success(`Архив сценария скачан`)}catch(e){j.error(e instanceof Error?e.message:`Не удалось скачать архив`)}finally{A.value=!1}}async function G(e,t){if(!e)return{filename:``,fileType:``};let n=await e.arrayBuffer(),r=new Uint8Array(n),i=await y.UploadFile({filename:t,data:ze(r)});return{filename:i.filename||``,fileType:i.file_type||``}}async function Re(){let e=``;if(M.value&&M.value.length>0){let t=M.value[0].file||null;if(t==null)return;let n=await G(t,`scenarios_`+N.value.ID+`_`+t.name);if(n.filename===``)return;e=n.filename}await y.UpdateScenario({ID:N.value.ID,name:N.value.name,description:N.value.description,image:e}),await W(Number(E)),D.value=!1}function ze(e){let t=Be(e);return btoa(t)}function Be(e){let t=``;for(let n=0;ne.code==n.code)??await y.AddScenarioPlace({ID:e.ID,place:{code:n.code,name:n.name,text:void 0,image:void 0,hidden:!0,applications:void 0,doors:void 0,keys:void 0}})}async function We(e){await W(Number(E)),e.mode=`show-editor`}async function Ge(e){if(e.fileList&&e.fileList.length>0){let t=e.fileList[0].file||null;if(t==null)return;let n=await G(t,`scenarios_`+N.value.ID+`_place_`+e.code+`_`+t.name);if(n.filename===``)return;e.image=n.filename}let t=e.applications||[];for(let n of t){if(!n.fileList||n.fileList.length==0)continue;let t=n.fileList[0].file||null;if(t==null)continue;let r=await G(t,`scenarios_`+N.value.ID+`_place_`+e.code+`_app_`+t.name);if(r.filename===``)return;n.image=r.filename,n.file_type=r.fileType}await Ue(N.value,e),await y.UpdateScenarioPlace({ID:N.value.ID,code:e.oldCode,place:e}),await W(Number(E)),e.mode=`show-editor`}async function Ke(e){await y.DeleteScenarioPlace({ID:N.value.ID,code:e.oldCode}),await W(Number(E))}let X=p(``),Z=p(``),Q=p(``),$=p(`mini-add`);async function qe(){await y.AddScenarioQuestion({ID:N.value.ID,question:{code:X.value,text:Z.value,answer:Q.value}}),await W(Number(E)),X.value=``,Z.value=``,Q.value=``,$.value=`add`}async function Je(){X.value=``,Z.value=``,Q.value=``,$.value=`mini-add`}async function Ye(e){await y.UpdateScenarioQuestion({ID:N.value.ID,code:e.oldCode,question:{code:e.code,text:e.text,answer:e.answer}}),await W(Number(E)),e.mode=`show-editor`}async function Xe(e){await W(Number(E)),e.mode=`show-editor`}async function Ze(e){await y.DeleteScenarioQuestion({ID:N.value.ID,code:e.oldCode}),await W(Number(E))}function Qe(e){return e&&e.split(`/`).pop()||``}async function $e(){let e=``;if(I.value.fileList&&I.value.fileList.length>0){let t=I.value.fileList[0].file||null;if(t==null||(e=(await G(t,`scenarios_`+N.value.ID+`_intro_`+t.name)).filename,e===``))return}else e=Qe(I.value.audio);await y.UpdateScenarioIntro({ID:N.value.ID,introduction:{text:I.value.text,audio:e}}),await W(Number(E))}async function et(e=!1){F.value=!0;try{let t=``;if(!e){let e=P.value[0]?.file;if(!e)return;let n=await G(e,`scenarios_`+N.value.ID+`_background_`+e.name);if(!n.filename)return;if(n.fileType!==`image`){j.error(`Фон дела должен быть изображением`);return}t=n.filename}await y.UpdateScenarioBackground({ID:N.value.ID,background:t}),await W(Number(E)),P.value=[]}catch{j.error(`Не удалось сохранить фон дела`)}finally{F.value=!1}}async function tt(){await W(Number(E))}function nt(){let e=[{text:`Настя, ты просто ослепительна сегодня!`,nameForm:`Настя`},{text:`У Насти невероятный вкус!`,nameForm:`Насти`},{text:`Настенька, твоя улыбка делает мир ярче.`,nameForm:`Настенька`},{text:`С Настей всегда интересно общаться.`,nameForm:`Настей`},{text:`Настя, ты — источник вдохновения для всех вокруг.`,nameForm:`Настя`},{text:`Мне нравится, как Настя смотрит на мир.`,nameForm:`Настя`},{text:`Настюха, ты супер!`,nameForm:`Настюха`},{text:`Талант Насти поражает!`,nameForm:`Насти`},{text:`Настя, твоя энергия заряжает батарейки!`,nameForm:`Настя`},{text:`С Настей хочется проводить каждую минуту.`,nameForm:`Настей`},{text:`Настенька, ты — самое красивое, что случилось в этом мире.`,nameForm:`Настенька`},{text:`У Насти золотое сердце.`,nameForm:`Насти`}];return e[Math.floor(Math.random()*e.length)].text}return(e,f)=>(r(),o(l,null,[a(`div`,{ref_key:`scrollContainer`,ref:Oe,class:`center-block-custom`},[a(`div`,_e,[a(`div`,ve,[N.value.status==`public`?(r(),n(t(ce),{key:0,title:`Сценарий опубликован`,type:`warning`,style:{"margin-bottom":`20px`}},{default:d(()=>[...f[40]||=[i(` Не рекомендуется редактировать сценарий когда он опубликован. `,-1)]]),_:1})):m(``,!0),t(ee).user?.ID==2?(r(),n(t(ce),{key:1,title:nt(),type:`info`,style:{"margin-bottom":`20px`}},null,8,[`title`])):m(``,!0),a(`div`,ye,[i(` Точек: `+s(N.value.story?.places?.length)+`, Вопросов: `+s(N.value.story?.questions?.length)+` `,1),u(t(v),{quaternary:``,onClick:f[0]||=e=>D.value=!0,class:`settings-button`},{default:d(()=>[u(t(_),{class:`settings-icon`},{default:d(()=>[u(t(he))]),_:1}),f[41]||=i(` Настройки `,-1)]),_:1})]),u(t(S),{title:`Музыка сценария`},{default:d(()=>[u(t(re),{value:V.value,"onUpdate:value":[f[1]||=e=>V.value=e,Me],options:we.value.map(e=>({label:e.name,value:e.ID})),clearable:``,placeholder:`Плейлист по умолчанию`},null,8,[`value`,`options`])]),_:1}),u(t(S),{title:`Фон дела`},{default:d(()=>[u(t(C),{vertical:``},{default:d(()=>[N.value.story?.background?(r(),o(`img`,{key:0,src:N.value.story.background,alt:`Фон дела`,class:`background-preview`},null,8,be)):m(``,!0),u(t(b),{"file-list":P.value,"onUpdate:fileList":f[2]||=e=>P.value=e,accept:`.jpg,.jpeg,.png,.gif,.webp`,max:1,"default-upload":!1,disabled:F.value},{default:d(()=>[u(t(v),{disabled:F.value},{default:d(()=>[...f[42]||=[i(`Выбрать фон`,-1)]]),_:1},8,[`disabled`])]),_:1},8,[`file-list`,`disabled`]),u(t(w),null,{default:d(()=>[u(t(v),{loading:F.value,disabled:!P.value.length||F.value,onClick:f[3]||=e=>et()},{default:d(()=>[...f[43]||=[i(`Сохранить фон`,-1)]]),_:1},8,[`loading`,`disabled`]),N.value.story?.background?(r(),n(t(v),{key:0,disabled:F.value,onClick:f[4]||=e=>et(!0)},{default:d(()=>[...f[44]||=[i(`Удалить фон`,-1)]]),_:1},8,[`disabled`])):m(``,!0)]),_:1})]),_:1})]),_:1}),u(ae,{introduction:I.value,mode:L.value,"onUpdate:mode":f[7]||=e=>L.value=e},{default:d(()=>[u(t(w),{justify:`end`},{default:d(()=>[u(t(v),{onClick:f[5]||=e=>tt()},{default:d(()=>[...f[45]||=[i(`Отмена`,-1)]]),_:1}),u(t(v),{onClick:f[6]||=e=>$e()},{default:d(()=>[...f[46]||=[i(`Сохранить вступление`,-1)]]),_:1})]),_:1})]),_:1},8,[`introduction`,`mode`]),u(t(S),{title:`Закрывашка сценария`},{default:d(()=>[u(t(C),{vertical:``},{default:d(()=>[u(t(T),{depth:`3`},{default:d(()=>[...f[47]||=[i(`Разгадка дела для автора. Игрокам не показывается.`,-1)]]),_:1}),u(t(x),{value:R.value.text,"onUpdate:value":f[8]||=e=>R.value.text=e,type:`textarea`,autosize:{minRows:4,maxRows:12},placeholder:`Текст закрывашки`,"aria-label":`Текст закрывашки`,disabled:B.value},null,8,[`value`,`disabled`]),Ce.value?(r(),o(`video`,{key:0,src:Ce.value,controls:``,preload:`none`,class:`conclusion-video`,"aria-label":`Видео закрывашки`},null,8,xe)):m(``,!0),R.value.video?(r(),n(t(v),{key:1,disabled:B.value,onClick:f[9]||=e=>Te()},{default:d(()=>[...f[48]||=[i(`Убрать видео`,-1)]]),_:1},8,[`disabled`])):m(``,!0),u(t(b),{"file-list":z.value,"onUpdate:fileList":f[10]||=e=>z.value=e,accept:`.mp4,.webm`,max:1,"default-upload":!1,disabled:B.value},{default:d(()=>[u(t(v),{disabled:B.value},{default:d(()=>[...f[49]||=[i(`Выбрать видео MP4/WebM`,-1)]]),_:1},8,[`disabled`])]),_:1},8,[`file-list`,`disabled`]),u(t(w),{justify:`end`},{default:d(()=>[N.value.story?.conclusion?.text||N.value.story?.conclusion?.video?(r(),n(t(v),{key:0,disabled:B.value,onClick:f[11]||=e=>Ee(!0)},{default:d(()=>[...f[50]||=[i(`Удалить закрывашку`,-1)]]),_:1},8,[`disabled`])):m(``,!0),u(t(v),{disabled:B.value,onClick:f[12]||=e=>H()},{default:d(()=>[...f[51]||=[i(`Отмена`,-1)]]),_:1},8,[`disabled`]),u(t(v),{loading:B.value,disabled:B.value||!N.value.story,onClick:f[13]||=e=>Ee()},{default:d(()=>[...f[52]||=[i(`Сохранить закрывашку`,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1}),f[63]||=a(`div`,{class:`questions-header`},`Вопросы дела`,-1),u(ge,{mode:$.value,"onUpdate:mode":f[16]||=e=>$.value=e,newQuestionCode:X.value,"onUpdate:newQuestionCode":f[17]||=e=>X.value=e,newQuestionText:Z.value,"onUpdate:newQuestionText":f[18]||=e=>Z.value=e,newQuestionAnswer:Q.value,"onUpdate:newQuestionAnswer":f[19]||=e=>Q.value=e},{default:d(()=>[u(t(w),{justify:`end`},{default:d(()=>[u(t(v),{onClick:f[14]||=e=>Je()},{default:d(()=>[...f[53]||=[i(`Отмена`,-1)]]),_:1}),u(t(v),{onClick:f[15]||=e=>qe(),disabled:!X.value},{default:d(()=>[...f[54]||=[i(`Добавить вопрос`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`mode`,`newQuestionCode`,`newQuestionText`,`newQuestionAnswer`]),(r(!0),o(l,null,c(Ae.value,e=>(r(),n(ge,{question:e,mode:e.mode,"onUpdate:mode":t=>e.mode=t,key:e.oldCode??e.code??``},{default:d(()=>[u(t(w),{justify:`end`},{default:d(()=>[u(t(v),{onClick:t=>Ze(e),type:`error`,ghost:``},{default:d(()=>[...f[55]||=[i(`Удалить`,-1)]]),_:1},8,[`onClick`]),u(t(v),{onClick:t=>Xe(e)},{default:d(()=>[...f[56]||=[i(`Отмена`,-1)]]),_:1},8,[`onClick`]),u(t(v),{onClick:t=>Ye(e),disabled:e.code==``},{default:d(()=>[...f[57]||=[i(`Сохранить`,-1)]]),_:1},8,[`onClick`,`disabled`])]),_:2},1024)]),_:2},1032,[`question`,`mode`,`onUpdate:mode`]))),128)),u(se,{mode:Y.value,"onUpdate:mode":f[22]||=e=>Y.value=e,newPlaceCode:K.value,"onUpdate:newPlaceCode":f[23]||=e=>K.value=e,newPlaceName:q.value,"onUpdate:newPlaceName":f[24]||=e=>q.value=e,newPlaceText:J.value,"onUpdate:newPlaceText":f[25]||=e=>J.value=e},{default:d(()=>[u(t(w),{justify:`end`},{default:d(()=>[u(t(v),{onClick:f[20]||=e=>He()},{default:d(()=>[...f[58]||=[i(`Отмена`,-1)]]),_:1}),u(t(v),{onClick:f[21]||=e=>Ve(),disabled:!K.value},{default:d(()=>[...f[59]||=[i(`Добавить точку`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`mode`,`newPlaceCode`,`newPlaceName`,`newPlaceText`]),(r(!0),o(l,null,c(De.value,e=>(r(),o(`div`,{key:e.oldCode??e.code??``,ref_for:!0,ref:n=>n?t(U).set(e,n):t(U).delete(e),class:`place-card`,tabindex:`-1`,role:`group`,"aria-label":`${e.code}: ${e.name}`},[u(se,{place:e,mode:e.mode,"onUpdate:mode":t=>e.mode=t,onNavigate:ke},{default:d(()=>[u(t(w),{justify:`end`},{default:d(()=>[u(t(v),{onClick:t=>Ke(e),type:`error`,ghost:``},{default:d(()=>[...f[60]||=[i(`Удалить`,-1)]]),_:1},8,[`onClick`]),u(t(v),{onClick:t=>We(e)},{default:d(()=>[...f[61]||=[i(`Отмена`,-1)]]),_:1},8,[`onClick`]),u(t(v),{onClick:t=>Ge(e),disabled:e.code==``},{default:d(()=>[...f[62]||=[i(`Сохранить`,-1)]]),_:1},8,[`onClick`,`disabled`])]),_:2},1024)]),_:2},1032,[`place`,`mode`,`onUpdate:mode`])],8,Se))),128))])])],512),u(t(ne),{show:D.value,"onUpdate:show":f[39]||=e=>D.value=e},{default:d(()=>[u(t(S),{style:{width:`600px`},title:`Настройки сценария`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":d(()=>[u(t(v),{onClick:f[26]||=e=>D.value=!1},{default:d(()=>[...f[64]||=[i(` x `,-1)]]),_:1})]),footer:d(()=>[...f[88]||=[]]),default:d(()=>[u(t(C),{vertical:``},{default:d(()=>[f[77]||=a(`p`,null,`Название`,-1),u(t(x),{value:N.value.name,"onUpdate:value":f[27]||=e=>N.value.name=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),f[78]||=a(`p`,{class:`settings-header`},`Описание`,-1),u(t(x),{value:N.value.description,"onUpdate:value":f[28]||=e=>N.value.description=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`]),f[79]||=a(`p`,{class:`settings-header`},`Картинка`,-1),u(t(x),{value:N.value.image,"onUpdate:value":f[29]||=e=>N.value.image=e,type:`text`,placeholder:`default_scenario.png`,disabled:``},null,8,[`value`]),u(t(b),{"directory-dnd":``,max:1,"file-list":M.value,"onUpdate:fileList":f[30]||=e=>M.value=e},{default:d(()=>[u(t(ie),null,{default:d(()=>[u(t(T),{style:{"font-size":`16px`}},{default:d(()=>[...f[65]||=[i(` Щелкните или перетащите файл в эту область для загрузки `,-1)]]),_:1})]),_:1})]),_:1},8,[`file-list`]),u(t(v),{onClick:f[31]||=e=>Re(),ghost:``},{default:d(()=>[...f[66]||=[i(` Сохранить изменения `,-1)]]),_:1}),f[80]||=a(`hr`,{class:`settings-hr`},null,-1),f[81]||=a(`p`,{class:`settings-header`},`Архив сценария`,-1),f[82]||=a(`p`,{class:`settings-hint`},` Скачайте сценарий ZIP-архивом (scenario.json + изображения) и импортируйте его в другом аккаунте. `,-1),u(t(v),{loading:A.value,disabled:!N.value.ID,ghost:``,onClick:f[32]||=e=>Le()},{default:d(()=>[...f[67]||=[i(` Скачать архив (.zip) `,-1)]]),_:1},8,[`loading`,`disabled`]),f[83]||=a(`hr`,{class:`settings-hr`},null,-1),f[84]||=a(`p`,null,`Создать тестовую игру`,-1),u(t(v),{onClick:f[33]||=e=>Fe(N.value.name||``,N.value.ID),ghost:``},{default:d(()=>[...f[68]||=[i(` Создать игру `,-1)]]),_:1}),f[85]||=a(`hr`,{class:`settings-hr`},null,-1),f[86]||=a(`p`,null,`Публикация`,-1),a(`p`,null,[N.value.status==`public`?(r(),n(t(g),{key:0,bordered:!1,type:`success`,class:`status-block`},{default:d(()=>[...f[69]||=[i(` Опубликовано `,-1)]]),_:1})):m(``,!0),N.value.status==`draft`?(r(),n(t(g),{key:1,bordered:!1,type:`warning`,class:`status-block`},{default:d(()=>[...f[70]||=[i(` В разработке `,-1)]]),_:1})):m(``,!0)]),a(`p`,null,[f[71]||=i(` Введите название сценария `,-1),u(t(T),{class:`name-text`,strong:``},{default:d(()=>[i(s(N.value.name),1)]),_:1})]),u(t(x),{value:O.value,"onUpdate:value":f[34]||=e=>O.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),N.value.status==`public`?m(``,!0):(r(),n(t(v),{key:0,onClick:f[35]||=e=>Pe(N.value.ID),ghost:``,disabled:O.value!=N.value.name},{default:d(()=>[...f[72]||=[i(` Опубликовать сценарий `,-1)]]),_:1},8,[`disabled`])),N.value.status==`draft`?m(``,!0):(r(),n(t(v),{key:1,onClick:f[36]||=e=>Ie(N.value.ID),ghost:``,disabled:O.value!=N.value.name},{default:d(()=>[...f[73]||=[i(` Снять сценарий с публикации `,-1)]]),_:1},8,[`disabled`])),f[87]||=a(`hr`,{class:`settings-hr`},null,-1),a(`p`,null,[f[74]||=i(` Введите название сценария `,-1),u(t(T),{class:`name-text`,strong:``},{default:d(()=>[i(s(N.value.name),1)]),_:1}),f[75]||=i(` чтобы удалить его `,-1)]),u(t(x),{value:k.value,"onUpdate:value":f[37]||=e=>k.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),u(t(v),{onClick:f[38]||=e=>Ne(N.value.ID),type:`error`,ghost:``,disabled:k.value!=N.value.name},{default:d(()=>[...f[76]||=[i(` Удалить сценарий `,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`show`]),u(fe,{active:`scenarios`})],64))}}),[[`__scopeId`,`data-v-82e71240`]]),I=e({__name:`ScenariosEditorView`,setup(e){return(e,t)=>(r(),n(F))}});export{I as default}; \ No newline at end of file diff --git a/frontend/dist/assets/ScenariosView-BcvCACNh.js b/frontend/dist/assets/ScenariosView-R9yDSC4s.js similarity index 92% rename from frontend/dist/assets/ScenariosView-BcvCACNh.js rename to frontend/dist/assets/ScenariosView-R9yDSC4s.js index ca5a8b2..9c25b62 100644 --- a/frontend/dist/assets/ScenariosView-BcvCACNh.js +++ b/frontend/dist/assets/ScenariosView-R9yDSC4s.js @@ -1 +1 @@ -import{At as e,Bn as t,Cn as n,Ct as r,Jt as i,Ot as a,St as o,Tt as s,Vn as c,Xt as l,d as u,gt as d,kt as f,sn as p,vn as m,wt as h}from"./client-DrrW410h.js";import{i as g,n as _,r as v}from"./ui-CXICC9ah.js";import{t as y}from"./Modal-CUD1N8ld.js";import{t as b}from"./Button-BZxcJJGv.js";import{t as x}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{n as S,t as C}from"./Upload-Q_ddyPUF.js";import{t as w}from"./Input-Bg8PolMg.js";import{t as T}from"./Card-B6dtDIKO.js";import{t as E}from"./Flex-YVOjVK0A.js";import{t as D}from"./text-WRQwmy2U.js";import{i as O}from"./index-cNEa5D1b.js";import{t as k}from"./HeaderMenu-BvkSHjS4.js";import{t as A}from"./binary_client-CCuS4lkD.js";var j={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},M=e({name:`Archive`,render:function(e,t){return i(),s(`svg`,j,t[0]||=[o(`path`,{d:`M14 19h4v2h-4z`,fill:`currentColor`},null,-1),o(`path`,{d:`M6 2v26a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V2zm18 26H8V16h16zm0-14H8v-4h16zM8 8V4h16v4z`,fill:`currentColor`},null,-1)])}}),N={class:`center-block-custom`},P={class:`width1200 display-table catalog-grid`},F={class:`scenario-image-block scenario-image-plus import-icon`},I=[`onClick`],L={class:`scenario-content-block`},R={class:`scenario-title`},z={class:`scenario-label`},B=x(e({__name:`ScenariosPage`,setup(e){let x=O(),j=A(),B=m([]),V=u(),H=v(),U=m(!1),W=m(``),G=m(!1),K=m([]),q=m(!1);async function J(){try{B.value=[];let e=await x.GetMyScenarios({});B.value=e.scenarios}catch(e){H.error(e instanceof Error?e.message:`Не удалось загрузить сценарии`)}}async function Y(e){try{await X((await x.AddScenario({name:e})).ID)}catch(e){H.error(e instanceof Error?e.message:`Не удалось создать сценарий`)}}async function X(e){V.push(`/scenarios/`+e+`/editor`)}function Z(){K.value=[],G.value=!1}async function Q(){let e=K.value[0]?.file;if(e){q.value=!0;try{let t=await j.uploadScenarioArchive(e);H.success(`Сценарий импортирован из архива`),Z(),await X(t.ID)}catch(e){H.error(e instanceof Error?e.message:`Не удалось импортировать архив`)}finally{q.value=!1}}}return J(),(e,u)=>(i(),s(d,null,[o(`div`,N,[o(`div`,P,[o(`div`,{class:`scenario-block`,onClick:u[0]||=e=>U.value=!0},[...u[11]||=[o(`div`,{class:`scenario-image-block scenario-image-plus`},`+`,-1),o(`div`,{class:`scenario-content-block`},[o(`p`,{class:`scenario-title`},`Создать новый сценарий`)],-1)]]),o(`div`,{class:`scenario-block`,onClick:u[1]||=e=>G.value=!0},[o(`div`,F,[f(n(_),null,{default:p(()=>[f(n(M))]),_:1})]),u[12]||=o(`div`,{class:`scenario-content-block`},[o(`p`,{class:`scenario-title`},`Импортировать из архива`)],-1)]),(i(!0),s(d,null,l(B.value,e=>(i(),s(`div`,{class:`scenario-block`,onClick:t=>X(e.ID),key:e.ID},[o(`div`,{class:`scenario-image-block scenario-image`,style:t({backgroundImage:`url(${e.image})`})},null,4),o(`div`,L,[o(`p`,R,c(e.name),1),o(`p`,z,[e.status==`public`?(i(),r(n(g),{key:0,bordered:!1,type:`success`,class:`status-block`},{default:p(()=>[...u[13]||=[a(`Опубликовано`,-1)]]),_:1})):h(``,!0),e.status==`draft`?(i(),r(n(g),{key:1,bordered:!1,type:`warning`,class:`status-block`},{default:p(()=>[...u[14]||=[a(`В разработке`,-1)]]),_:1})):h(``,!0)])])],8,I))),128))])]),f(n(y),{show:U.value,"onUpdate:show":u[5]||=e=>U.value=e},{default:p(()=>[f(n(T),{style:{width:`600px`},title:`Создание сценария`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":p(()=>[f(n(b),{onClick:u[2]||=e=>U.value=!1},{default:p(()=>[...u[15]||=[a(` x `,-1)]]),_:1})]),footer:p(()=>[f(n(E),{justify:`end`},{default:p(()=>[f(n(b),{onClick:u[4]||=e=>Y(W.value),disabled:W.value.length==0},{default:p(()=>[...u[16]||=[a(` Создать `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:p(()=>[f(n(w),{value:W.value,"onUpdate:value":u[3]||=e=>W.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`])]),_:1})]),_:1},8,[`show`]),f(n(y),{show:G.value,"onUpdate:show":u[10]||=e=>G.value=e},{default:p(()=>[f(n(T),{style:{width:`600px`},title:`Импорт сценария из архива`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":p(()=>[f(n(b),{onClick:u[6]||=e=>Z()},{default:p(()=>[...u[17]||=[a(` x `,-1)]]),_:1})]),footer:p(()=>[f(n(E),{justify:`end`},{default:p(()=>[f(n(b),{onClick:u[8]||=e=>Z()},{default:p(()=>[...u[19]||=[a(`Отмена`,-1)]]),_:1}),f(n(b),{type:`primary`,loading:q.value,disabled:K.value.length==0,onClick:u[9]||=e=>Q()},{default:p(()=>[...u[20]||=[a(` Импортировать `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),default:p(()=>[u[21]||=o(`p`,{class:`import-hint`},` Выберите ZIP-архив сценария (файл scenario.json + папка images). Архив можно получить через «Скачать архив» в настройках сценария. `,-1),f(n(C),{max:1,"file-list":K.value,"onUpdate:fileList":u[7]||=e=>K.value=e,accept:`.zip,application/zip,application/x-zip-compressed,application/octet-stream`},{default:p(()=>[f(n(S),null,{default:p(()=>[f(n(D),{style:{"font-size":`16px`}},{default:p(()=>[...u[18]||=[a(` Щелкните или перетащите ZIP-архив в эту область `,-1)]]),_:1})]),_:1})]),_:1},8,[`file-list`])]),_:1})]),_:1},8,[`show`]),f(k,{active:`scenarios`})],64))}}),[[`__scopeId`,`data-v-05f24200`]]),V=e({__name:`ScenariosView`,setup(e){return(e,t)=>(i(),r(B))}});export{V as default}; \ No newline at end of file +import{At as e,Bn as t,Cn as n,Ct as r,Jt as i,Ot as a,St as o,Tt as s,Vn as c,Xt as l,d as u,gt as d,kt as f,sn as p,vn as m,wt as h}from"./client-DrrW410h.js";import{i as g,n as _,r as v}from"./ui-BXphkCO3.js";import{t as y}from"./Modal-CBvJhnU9.js";import{t as b}from"./Button-VP0HlDWp.js";import{t as x}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{n as S,t as C}from"./Upload-D5dycHVD.js";import{t as w}from"./Input-B0pT-V_P.js";import{t as T}from"./Card-DpsyX5Gm.js";import{t as E}from"./Flex-C50LOLeC.js";import{t as D}from"./text-DlU9yI4b.js";import{i as O}from"./index-CvfVA1ID.js";import{t as k}from"./HeaderMenu-DjAjwijB.js";import{t as A}from"./binary_client-BWJUWeZu.js";var j={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},M=e({name:`Archive`,render:function(e,t){return i(),s(`svg`,j,t[0]||=[o(`path`,{d:`M14 19h4v2h-4z`,fill:`currentColor`},null,-1),o(`path`,{d:`M6 2v26a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V2zm18 26H8V16h16zm0-14H8v-4h16zM8 8V4h16v4z`,fill:`currentColor`},null,-1)])}}),N={class:`center-block-custom`},P={class:`width1200 display-table catalog-grid`},F={class:`scenario-image-block scenario-image-plus import-icon`},I=[`onClick`],L={class:`scenario-content-block`},R={class:`scenario-title`},z={class:`scenario-label`},B=x(e({__name:`ScenariosPage`,setup(e){let x=O(),j=A(),B=m([]),V=u(),H=v(),U=m(!1),W=m(``),G=m(!1),K=m([]),q=m(!1);async function J(){try{B.value=[];let e=await x.GetMyScenarios({});B.value=e.scenarios}catch(e){H.error(e instanceof Error?e.message:`Не удалось загрузить сценарии`)}}async function Y(e){try{await X((await x.AddScenario({name:e})).ID)}catch(e){H.error(e instanceof Error?e.message:`Не удалось создать сценарий`)}}async function X(e){V.push(`/scenarios/`+e+`/editor`)}function Z(){K.value=[],G.value=!1}async function Q(){let e=K.value[0]?.file;if(e){q.value=!0;try{let t=await j.uploadScenarioArchive(e);H.success(`Сценарий импортирован из архива`),Z(),await X(t.ID)}catch(e){H.error(e instanceof Error?e.message:`Не удалось импортировать архив`)}finally{q.value=!1}}}return J(),(e,u)=>(i(),s(d,null,[o(`div`,N,[o(`div`,P,[o(`div`,{class:`scenario-block`,onClick:u[0]||=e=>U.value=!0},[...u[11]||=[o(`div`,{class:`scenario-image-block scenario-image-plus`},`+`,-1),o(`div`,{class:`scenario-content-block`},[o(`p`,{class:`scenario-title`},`Создать новый сценарий`)],-1)]]),o(`div`,{class:`scenario-block`,onClick:u[1]||=e=>G.value=!0},[o(`div`,F,[f(n(_),null,{default:p(()=>[f(n(M))]),_:1})]),u[12]||=o(`div`,{class:`scenario-content-block`},[o(`p`,{class:`scenario-title`},`Импортировать из архива`)],-1)]),(i(!0),s(d,null,l(B.value,e=>(i(),s(`div`,{class:`scenario-block`,onClick:t=>X(e.ID),key:e.ID},[o(`div`,{class:`scenario-image-block scenario-image`,style:t({backgroundImage:`url(${e.image})`})},null,4),o(`div`,L,[o(`p`,R,c(e.name),1),o(`p`,z,[e.status==`public`?(i(),r(n(g),{key:0,bordered:!1,type:`success`,class:`status-block`},{default:p(()=>[...u[13]||=[a(`Опубликовано`,-1)]]),_:1})):h(``,!0),e.status==`draft`?(i(),r(n(g),{key:1,bordered:!1,type:`warning`,class:`status-block`},{default:p(()=>[...u[14]||=[a(`В разработке`,-1)]]),_:1})):h(``,!0)])])],8,I))),128))])]),f(n(y),{show:U.value,"onUpdate:show":u[5]||=e=>U.value=e},{default:p(()=>[f(n(T),{style:{width:`600px`},title:`Создание сценария`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":p(()=>[f(n(b),{onClick:u[2]||=e=>U.value=!1},{default:p(()=>[...u[15]||=[a(` x `,-1)]]),_:1})]),footer:p(()=>[f(n(E),{justify:`end`},{default:p(()=>[f(n(b),{onClick:u[4]||=e=>Y(W.value),disabled:W.value.length==0},{default:p(()=>[...u[16]||=[a(` Создать `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:p(()=>[f(n(w),{value:W.value,"onUpdate:value":u[3]||=e=>W.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`])]),_:1})]),_:1},8,[`show`]),f(n(y),{show:G.value,"onUpdate:show":u[10]||=e=>G.value=e},{default:p(()=>[f(n(T),{style:{width:`600px`},title:`Импорт сценария из архива`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":p(()=>[f(n(b),{onClick:u[6]||=e=>Z()},{default:p(()=>[...u[17]||=[a(` x `,-1)]]),_:1})]),footer:p(()=>[f(n(E),{justify:`end`},{default:p(()=>[f(n(b),{onClick:u[8]||=e=>Z()},{default:p(()=>[...u[19]||=[a(`Отмена`,-1)]]),_:1}),f(n(b),{type:`primary`,loading:q.value,disabled:K.value.length==0,onClick:u[9]||=e=>Q()},{default:p(()=>[...u[20]||=[a(` Импортировать `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),default:p(()=>[u[21]||=o(`p`,{class:`import-hint`},` Выберите ZIP-архив сценария (файл scenario.json + папка images). Архив можно получить через «Скачать архив» в настройках сценария. `,-1),f(n(C),{max:1,"file-list":K.value,"onUpdate:fileList":u[7]||=e=>K.value=e,accept:`.zip,application/zip,application/x-zip-compressed,application/octet-stream`},{default:p(()=>[f(n(S),null,{default:p(()=>[f(n(D),{style:{"font-size":`16px`}},{default:p(()=>[...u[18]||=[a(` Щелкните или перетащите ZIP-архив в эту область `,-1)]]),_:1})]),_:1})]),_:1},8,[`file-list`])]),_:1})]),_:1},8,[`show`]),f(k,{active:`scenarios`})],64))}}),[[`__scopeId`,`data-v-05f24200`]]),V=e({__name:`ScenariosView`,setup(e){return(e,t)=>(i(),r(B))}});export{V as default}; \ No newline at end of file diff --git a/frontend/dist/assets/ScreenView-CBMpnxAR.js b/frontend/dist/assets/ScreenView-kL9Y9uhX.js similarity index 96% rename from frontend/dist/assets/ScreenView-CBMpnxAR.js rename to frontend/dist/assets/ScreenView-kL9Y9uhX.js index 118ec80..f1a2437 100644 --- a/frontend/dist/assets/ScreenView-CBMpnxAR.js +++ b/frontend/dist/assets/ScreenView-kL9Y9uhX.js @@ -1 +1 @@ -import{At as e,Bn as t,Cn as n,Ct as r,Gt as i,Jt as a,Kt as o,Ot as s,St as c,Tt as l,Vn as u,Xt as d,cn as ee,gt as f,in as p,kt as m,sn as h,t as te,u as ne,vn as g,wt as _,xt as v,zt as y}from"./client-DrrW410h.js";import{r as re}from"./ui-CXICC9ah.js";import{t as b}from"./Button-BZxcJJGv.js";import{t as ie}from"./Select-D0BL7DpH.js";import{t as x}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as ae}from"./Card-B6dtDIKO.js";import{t as oe}from"./QrCode-BtvoRbPn.js";import{ft as se,i as ce,r as le}from"./index-cNEa5D1b.js";import{t as ue}from"./HeaderMenu-BvkSHjS4.js";import{r as S}from"./application-Dx7AOLHI.js";import{t as de}from"./ScreenPreview-CRnT-dgP.js";import{t as fe}from"./datetime-BJNH0M1T.js";import{t as pe}from"./useDeviceContext-XjFYIFKI.js";var me={key:0,class:`screen-center`},he={key:1,class:`screen-page`},ge={key:0,class:`screen-center`},_e={key:0,class:`screen-center`},ve={key:0,class:`screen-qr`},ye={key:0,class:`media-error`},be={key:1,class:`screen-media`},xe=[`src`,`muted`],Se=[`src`,`muted`],Ce={key:3,class:`conclusion-screen`},we=[`src`,`muted`],Te={key:4,class:`screen-message`},Ee={key:6,class:`screen-message`},De={key:7,class:`timer-screen`},Oe={class:`timer-label`},ke={class:`timer-value`},Ae={key:9,class:`screen-cover`},je=[`src`],Me={key:1,class:`cover-controls`},C=`evening-detective-screen-session`,w=x(e({__name:`ScreenPage`,setup(e){let x=te(),w=ce(),T=re(),E=ne(),D=g(``),O=g(``),k=g(),A=g(),j=-1/0,M=g([]),N=g([]),Ne=g(),P,Pe=!1,F=g([]),I=g(null),L=g(!1),R=g(``),z=g(!0),B=g(!1),Fe=g(!1),Ie=g(Date.now()),V=g(0),H=g(Date.now()),U=g(),W=g(!1),G=g(),K=g(),q=g(),J=!1,Y=0,X=null,Z=v(()=>!!(E.query.screenID&&E.query.accessToken));pe(()=>D.value&&O.value&&!Z.value?{screenID:D.value,accessToken:O.value}:{});let Le=v(()=>{if(!D.value||!O.value)return``;let e=new URL(`/screen`,window.location.origin);return e.searchParams.set(`screenId`,D.value),e.searchParams.set(`accessToken`,O.value),e.toString()}),Re=v(()=>F.value.map(e=>({label:`${fe(e.startAt).split(`,`)[0]||`дата не указана`} — ${e.name||`Игра ${e.ID}`}`,value:e.ID}))),Q=v(()=>k.value?.mode||`SCREEN_MODE_COVER`),ze=v(()=>k.value?.timerState===`SCREEN_TIMER_STATE_RUNNING`?Math.max(0,V.value-(Ie.value-H.value)/1e3):V.value),Be=v(()=>{let e=Math.floor(ze.value/60),t=Math.floor(ze.value%60);return`${String(e).padStart(2,`0`)}:${String(t).padStart(2,`0`)}`}),Ve=v(()=>S(k.value?.introAudio)),He=v(()=>S(k.value?.conclusionVideo)),Ue=v(()=>S((k.value?.music?.playlist?.tracks||[])[k.value?.music?.trackIndex||0]?.filename)),We=v(()=>[k.value?.music?.playlist?.ID,k.value?.music?.playlist?.tracks?.[k.value?.music?.trackIndex??0]?.ID,k.value?.music?.playback,k.value?.music?.stateVersion,k.value?.music?.positionMs]),Ge=v(()=>{let e=k.value?.backgroundImage||k.value?.coverImage;return e?{backgroundImage:`linear-gradient(rgb(0 0 0 / 55%), rgb(0 0 0 / 55%)), url("${e}")`}:{}});function Ke(){sessionStorage.setItem(C,JSON.stringify({screenID:D.value,accessToken:O.value}))}function qe(e){let t=Math.max(0,Number(e?.timerRemainingSeconds||0));if(e?.timerState===`SCREEN_TIMER_STATE_RUNNING`&&U.value===e.timerState){let e=Math.max(0,V.value-(Date.now()-H.value)/1e3);if(Math.abs(t-e)<=.5)return}V.value=t,H.value=Date.now(),U.value=e?.timerState}function Je(){try{let e=JSON.parse(sessionStorage.getItem(C)||`{}`);D.value=e.screenId||``,O.value=e.accessToken||``}catch{sessionStorage.removeItem(C)}}async function Ye(){let e=await x.CreateScreenSession({});if(!e.screenID||!e.accessToken)throw Error(`Не удалось создать сессию экрана`);D.value=e.screenID,O.value=e.accessToken,Ke()}async function $(e=!0){if(!(!D.value||!O.value))try{let e=await x.GetScreenState({screenID:D.value,accessToken:O.value});k.value?.gameID!==e.state?.gameID&&(A.value=void 0,j=-1/0),k.value?.gameID===e.state?.gameID&&k.value?.music&&e.state?.music&&BigInt(e.state.music.stateVersion??0)=5e3&&await Xe()}catch(t){if(e&&t instanceof Error&&t.message===`unauthorized`){sessionStorage.removeItem(C),D.value=``,O.value=``,await Ye(),await $(!1);return}T.error(t instanceof Error?t.message:`Не удалось получить состояние экрана`)}}async function Xe(){let e=k.value?.gameID,t=D.value;j=Date.now();let n=await x.GetScreenTeams({screenID:t,accessToken:O.value});k.value?.gameID!==e||D.value!==t||(A.value=(n.teams??[]).map(e=>e.name??``).sort((e,t)=>e.localeCompare(t,`ru`)))}async function Ze(){if(!D.value||!O.value)return;let e=await x.GetScreenResults({screenID:D.value,accessToken:O.value});if(N.value=e.questions||[],M.value=e.teams||[],!Pe){Pe=!0,await y();let e=Ne.value;e&&(e.scrollTop=e.scrollHeight,P=window.setInterval(()=>{e.scrollTop=Math.max(0,e.scrollTop-32),e.scrollTop===0&&P!=null&&(window.clearInterval(P),P=void 0)},1e3))}}async function Qe(){try{let e=await w.GetGames({});F.value=e.games||[]}catch(e){T.error(e instanceof Error?e.message:`Не удалось загрузить игры`)}}le(async()=>{W.value&&(await $(),await y(),K.value?.ended&&k.value?.music?.playback===`MUSIC_PLAYBACK_PLAYING`&&await et())},1e3),p(k,async e=>{if(!e||!e.command||e.stateVersion===Y)return;Y=e.stateVersion||0,await y();let t=Q.value===`SCREEN_MODE_CONCLUSION`?q.value:G.value;t&&([`SCREEN_COMMAND_PLAY`,`SCREEN_COMMAND_REPLAY`,`SCREEN_COMMAND_STOP`,`SCREEN_COMMAND_SEEK`].includes(e.command)&&(t.currentTime=(e.positionMs||0)/1e3),t.volume=Math.max(0,Math.min(1,(e.volume??100)/100)),e.command!==`SCREEN_COMMAND_SEEK`&&e.command!==`SCREEN_COMMAND_VOLUME`&&(e.command===`SCREEN_COMMAND_PLAY`||e.command===`SCREEN_COMMAND_RESUME`||e.command===`SCREEN_COMMAND_REPLAY`?(e.command===`SCREEN_COMMAND_REPLAY`&&(t.currentTime=0),t.play().catch(()=>{R.value=`Браузер заблокировал воспроизведение. Нажмите «Подготовить экран» на этом устройстве.`})):(e.command===`SCREEN_COMMAND_PAUSE`||e.command===`SCREEN_COMMAND_STOP`)&&t.pause()))});function $e(e){return e.readyState>=HTMLMediaElement.HAVE_METADATA?Promise.resolve():new Promise(t=>{let n=()=>{e.removeEventListener(`loadedmetadata`,n),e.removeEventListener(`error`,n),t()};e.addEventListener(`loadedmetadata`,n,{once:!0}),e.addEventListener(`error`,n,{once:!0})})}p(We,async(e,t)=>{let n=k.value?.music;if(!n||!n.playlist?.tracks?.length)return;await y();let r=K.value;if(!r)return;let i=!t||e[0]!==t[0]||e[1]!==t[1],a=!t||e[2]!==t[2],o=!!t&&e[3]!==t[3]&&Number(e[4]??0)BigInt(t[3]??0);!i&&!a&&!o&&!s||(await $e(r),r.currentTime=i?0:(n.positionMs||0)/1e3,n.playback===`MUSIC_PLAYBACK_PLAYING`?r.play().catch(()=>{R.value=`Браузер заблокировал воспроизведение музыки. Нажмите «Подготовить экран».`}):r.pause())},{immediate:!0}),p(()=>[k.value?.music?.volume,k.value?.soundEnabled],([e,t])=>{let n=K.value;n&&(n.volume=Math.max(0,Math.min(1,(e??100)/100)),n.muted=!t)},{immediate:!0});async function et(){if(J||!D.value||!O.value||!k.value?.soundEnabled)return;J=!0;let e=k.value.gameID,t=D.value;try{let n=await x.AdvanceScreenMusic({screenID:D.value,accessToken:O.value,expectedStateVersion:String(k.value?.music?.stateVersion??0)});k.value?.gameID===e&&D.value===t&&k.value&&n.state&&BigInt(n.state.stateVersion??0)>=BigInt(k.value.music?.stateVersion??0)&&(R.value=``,k.value.music=n.state)}catch{R.value=`Не удалось синхронизировать музыку. Повторная попытка выполняется автоматически.`}finally{J=!1}}async function tt(){if(!(!I.value||!E.query.screenID||!E.query.accessToken)){B.value=!0;try{await w.BindScreen({screenID:String(E.query.screenID),accessToken:String(E.query.accessToken),gameID:I.value,initializeAudio:!1}),Fe.value=!0}catch(e){T.error(e instanceof Error?e.message:`Не удалось привязать экран`)}finally{B.value=!1}}}async function nt(){try{await document.documentElement.requestFullscreen?.()}catch{T.warning(`Полноэкранный режим недоступен в этом браузере`)}L.value=!0,await y();for(let e of[G.value,q.value,K.value])if(e){e.muted=!0;try{await e.play(),e.pause(),e.currentTime=0,e.muted=!k.value?.soundEnabled}catch{R.value=`Браузер не разрешил подготовить воспроизведение на этом устройстве.`}}}return i(async()=>{if(Z.value){await Qe(),z.value=!1;return}Je();try{(!D.value||!O.value)&&await Ye(),await $(),W.value=!0,X=window.setInterval(()=>{Ie.value=Date.now()},250)}catch(e){T.error(e instanceof Error?e.message:`Не удалось подготовить экран`)}finally{z.value=!1}}),o(()=>{X!=null&&window.clearInterval(X),P!=null&&window.clearInterval(P)}),(e,i)=>(a(),l(f,null,[Z.value?(a(),l(`div`,me,[m(n(ae),{class:`binding-card`,title:`Привязка экрана`},{default:h(()=>[Fe.value?(a(),l(f,{key:0},[i[1]||=c(`p`,null,`Экран привязан к игре.`,-1),i[2]||=c(`p`,null,`Можно закрыть эту страницу.`,-1)],64)):(a(),l(f,{key:1},[i[4]||=c(`p`,null,`Выберите игру, к которой привязать экран.`,-1),m(n(ie),{value:I.value,"onUpdate:value":i[0]||=e=>I.value=e,options:Re.value,placeholder:`Игра`},null,8,[`value`,`options`]),m(n(b),{type:`primary`,loading:B.value,disabled:I.value==null,onClick:tt},{default:h(()=>[...i[3]||=[s(` Привязать `,-1)]]),_:1},8,[`loading`,`disabled`])],64))]),_:1})])):(a(),l(`div`,he,[z.value?(a(),l(`div`,ge,`Подготовка экрана…`)):(a(),l(f,{key:1},[k.value?.gameID?(a(),l(`div`,{key:1,class:`screen-content`,style:t(Ge.value)},[R.value?(a(),l(`p`,ye,u(R.value),1)):_(``,!0),k.value.introAudio?ee((a(),l(`div`,be,[c(`audio`,{ref_key:`introAudioElement`,ref:G,src:Ve.value,muted:!k.value.soundEnabled,controls:``},null,8,xe)],512)),[[se,Q.value===`SCREEN_MODE_INTRO`]]):_(``,!0),k.value.music?.playlist?.tracks?.length?(a(),l(`audio`,{key:2,ref_key:`musicAudioElement`,ref:K,src:Ue.value,muted:!k.value.soundEnabled,onEnded:et},null,40,Se)):_(``,!0),k.value.conclusionVideo?ee((a(),l(`div`,Ce,[c(`video`,{ref_key:`conclusionVideoElement`,ref:q,src:He.value,muted:!k.value.soundEnabled,playsinline:``},null,8,we)],512)),[[se,Q.value===`SCREEN_MODE_CONCLUSION`]]):_(``,!0),Q.value===`SCREEN_MODE_CONCLUSION`&&!k.value.conclusionVideo?(a(),l(`div`,Te,`Видео закрывашки не задано`)):_(``,!0),Q.value===`SCREEN_MODE_QR`||Q.value===`SCREEN_MODE_TEAMS`?(a(),r(de,{key:5,class:`static-screen`,state:k.value,questions:[],teams:[],"team-names":A.value},null,8,[`state`,`team-names`])):_(``,!0),Q.value===`SCREEN_MODE_TEXT`?(a(),l(`div`,Ee,u(k.value.text),1)):_(``,!0),Q.value===`SCREEN_MODE_TIMER`?(a(),l(`div`,De,[c(`h1`,Oe,u(k.value.timerLabel||`Перерыв`),1),c(`div`,ke,u(Be.value),1)])):_(``,!0),Q.value===`SCREEN_MODE_RESULTS`?(a(),l(`div`,{key:8,ref_key:`resultsContainer`,ref:Ne,class:`results-screen`},[i[11]||=c(`h1`,null,`Результаты`,-1),c(`table`,null,[c(`thead`,null,[c(`tr`,null,[i[7]||=c(`th`,null,`Место`,-1),i[8]||=c(`th`,null,`Команда`,-1),(a(!0),l(f,null,d(N.value,e=>(a(),l(`th`,{key:e.code},u(e.code),1))),128)),i[9]||=c(`th`,null,`Сумма`,-1),i[10]||=c(`th`,null,`Ходы`,-1)])]),c(`tbody`,null,[(a(!0),l(f,null,d(M.value,e=>(a(),l(`tr`,{key:e.team?.ID},[c(`td`,null,u(e.place),1),c(`td`,null,u(e.team?.name),1),(a(!0),l(f,null,d(N.value,t=>(a(),l(`td`,{key:t.code},u(e.answers?.find(e=>e.questionCode===t.code)?.score??0),1))),128)),c(`td`,null,u(e.totalScore),1),c(`td`,null,u(e.actionsCount),1)]))),128))])])],512)):_(``,!0),Q.value===`SCREEN_MODE_COVER`?(a(),l(`div`,Ae,[k.value.coverImage?(a(),l(`img`,{key:0,src:k.value.coverImage,class:`cover-image`,alt:`Обложка дела`},null,8,je)):_(``,!0),L.value?_(``,!0):(a(),l(`div`,Me,[m(n(b),{type:`primary`,onClick:nt},{default:h(()=>[...i[12]||=[s(`Подготовить экран`,-1)]]),_:1})]))])):_(``,!0)],4)):(a(),l(`div`,_e,[m(n(ae),{class:`qr-card`,title:`Подключение экрана`},{default:h(()=>[Le.value?(a(),l(`div`,ve,[m(n(oe),{value:Le.value,size:260,padding:0},null,8,[`value`])])):_(``,!0),i[6]||=c(`p`,null,`Отсканируйте QR телефоном организатора и выберите игру.`,-1),L.value?_(``,!0):(a(),r(n(b),{key:1,type:`primary`,onClick:nt},{default:h(()=>[...i[5]||=[s(`Подготовить экран`,-1)]]),_:1}))]),_:1})]))],64))])),Z.value?(a(),r(ue,{key:2,active:`games`})):_(``,!0)],64))}}),[[`__scopeId`,`data-v-881246d3`]]),T=e({__name:`ScreenView`,setup(e){return(e,t)=>(a(),r(w))}});export{T as default}; \ No newline at end of file +import{At as e,Bn as t,Cn as n,Ct as r,Gt as i,Jt as a,Kt as o,Ot as s,St as c,Tt as l,Vn as u,Xt as d,cn as ee,gt as f,in as p,kt as m,sn as h,t as te,u as ne,vn as g,wt as _,xt as v,zt as y}from"./client-DrrW410h.js";import{r as re}from"./ui-BXphkCO3.js";import{t as b}from"./Button-VP0HlDWp.js";import{t as ie}from"./Select-BQpeZ0on.js";import{t as x}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as ae}from"./Card-DpsyX5Gm.js";import{t as oe}from"./QrCode-BtvoRbPn.js";import{ft as se,i as ce,r as le}from"./index-CvfVA1ID.js";import{t as ue}from"./HeaderMenu-DjAjwijB.js";import{r as S}from"./application-Dx7AOLHI.js";import{t as de}from"./ScreenPreview-CRnT-dgP.js";import{t as fe}from"./datetime-BJNH0M1T.js";import{t as pe}from"./useDeviceContext-BaGiXmRj.js";var me={key:0,class:`screen-center`},he={key:1,class:`screen-page`},ge={key:0,class:`screen-center`},_e={key:0,class:`screen-center`},ve={key:0,class:`screen-qr`},ye={key:0,class:`media-error`},be={key:1,class:`screen-media`},xe=[`src`,`muted`],Se=[`src`,`muted`],Ce={key:3,class:`conclusion-screen`},we=[`src`,`muted`],Te={key:4,class:`screen-message`},Ee={key:6,class:`screen-message`},De={key:7,class:`timer-screen`},Oe={class:`timer-label`},ke={class:`timer-value`},Ae={key:9,class:`screen-cover`},je=[`src`],Me={key:1,class:`cover-controls`},C=`evening-detective-screen-session`,w=x(e({__name:`ScreenPage`,setup(e){let x=te(),w=ce(),T=re(),E=ne(),D=g(``),O=g(``),k=g(),A=g(),j=-1/0,M=g([]),N=g([]),Ne=g(),P,Pe=!1,F=g([]),I=g(null),L=g(!1),R=g(``),z=g(!0),B=g(!1),Fe=g(!1),Ie=g(Date.now()),V=g(0),H=g(Date.now()),U=g(),W=g(!1),G=g(),K=g(),q=g(),J=!1,Y=0,X=null,Z=v(()=>!!(E.query.screenID&&E.query.accessToken));pe(()=>D.value&&O.value&&!Z.value?{screenID:D.value,accessToken:O.value}:{});let Le=v(()=>{if(!D.value||!O.value)return``;let e=new URL(`/screen`,window.location.origin);return e.searchParams.set(`screenId`,D.value),e.searchParams.set(`accessToken`,O.value),e.toString()}),Re=v(()=>F.value.map(e=>({label:`${fe(e.startAt).split(`,`)[0]||`дата не указана`} — ${e.name||`Игра ${e.ID}`}`,value:e.ID}))),Q=v(()=>k.value?.mode||`SCREEN_MODE_COVER`),ze=v(()=>k.value?.timerState===`SCREEN_TIMER_STATE_RUNNING`?Math.max(0,V.value-(Ie.value-H.value)/1e3):V.value),Be=v(()=>{let e=Math.floor(ze.value/60),t=Math.floor(ze.value%60);return`${String(e).padStart(2,`0`)}:${String(t).padStart(2,`0`)}`}),Ve=v(()=>S(k.value?.introAudio)),He=v(()=>S(k.value?.conclusionVideo)),Ue=v(()=>S((k.value?.music?.playlist?.tracks||[])[k.value?.music?.trackIndex||0]?.filename)),We=v(()=>[k.value?.music?.playlist?.ID,k.value?.music?.playlist?.tracks?.[k.value?.music?.trackIndex??0]?.ID,k.value?.music?.playback,k.value?.music?.stateVersion,k.value?.music?.positionMs]),Ge=v(()=>{let e=k.value?.backgroundImage||k.value?.coverImage;return e?{backgroundImage:`linear-gradient(rgb(0 0 0 / 55%), rgb(0 0 0 / 55%)), url("${e}")`}:{}});function Ke(){sessionStorage.setItem(C,JSON.stringify({screenID:D.value,accessToken:O.value}))}function qe(e){let t=Math.max(0,Number(e?.timerRemainingSeconds||0));if(e?.timerState===`SCREEN_TIMER_STATE_RUNNING`&&U.value===e.timerState){let e=Math.max(0,V.value-(Date.now()-H.value)/1e3);if(Math.abs(t-e)<=.5)return}V.value=t,H.value=Date.now(),U.value=e?.timerState}function Je(){try{let e=JSON.parse(sessionStorage.getItem(C)||`{}`);D.value=e.screenId||``,O.value=e.accessToken||``}catch{sessionStorage.removeItem(C)}}async function Ye(){let e=await x.CreateScreenSession({});if(!e.screenID||!e.accessToken)throw Error(`Не удалось создать сессию экрана`);D.value=e.screenID,O.value=e.accessToken,Ke()}async function $(e=!0){if(!(!D.value||!O.value))try{let e=await x.GetScreenState({screenID:D.value,accessToken:O.value});k.value?.gameID!==e.state?.gameID&&(A.value=void 0,j=-1/0),k.value?.gameID===e.state?.gameID&&k.value?.music&&e.state?.music&&BigInt(e.state.music.stateVersion??0)=5e3&&await Xe()}catch(t){if(e&&t instanceof Error&&t.message===`unauthorized`){sessionStorage.removeItem(C),D.value=``,O.value=``,await Ye(),await $(!1);return}T.error(t instanceof Error?t.message:`Не удалось получить состояние экрана`)}}async function Xe(){let e=k.value?.gameID,t=D.value;j=Date.now();let n=await x.GetScreenTeams({screenID:t,accessToken:O.value});k.value?.gameID!==e||D.value!==t||(A.value=(n.teams??[]).map(e=>e.name??``).sort((e,t)=>e.localeCompare(t,`ru`)))}async function Ze(){if(!D.value||!O.value)return;let e=await x.GetScreenResults({screenID:D.value,accessToken:O.value});if(N.value=e.questions||[],M.value=e.teams||[],!Pe){Pe=!0,await y();let e=Ne.value;e&&(e.scrollTop=e.scrollHeight,P=window.setInterval(()=>{e.scrollTop=Math.max(0,e.scrollTop-32),e.scrollTop===0&&P!=null&&(window.clearInterval(P),P=void 0)},1e3))}}async function Qe(){try{let e=await w.GetGames({});F.value=e.games||[]}catch(e){T.error(e instanceof Error?e.message:`Не удалось загрузить игры`)}}le(async()=>{W.value&&(await $(),await y(),K.value?.ended&&k.value?.music?.playback===`MUSIC_PLAYBACK_PLAYING`&&await et())},1e3),p(k,async e=>{if(!e||!e.command||e.stateVersion===Y)return;Y=e.stateVersion||0,await y();let t=Q.value===`SCREEN_MODE_CONCLUSION`?q.value:G.value;t&&([`SCREEN_COMMAND_PLAY`,`SCREEN_COMMAND_REPLAY`,`SCREEN_COMMAND_STOP`,`SCREEN_COMMAND_SEEK`].includes(e.command)&&(t.currentTime=(e.positionMs||0)/1e3),t.volume=Math.max(0,Math.min(1,(e.volume??100)/100)),e.command!==`SCREEN_COMMAND_SEEK`&&e.command!==`SCREEN_COMMAND_VOLUME`&&(e.command===`SCREEN_COMMAND_PLAY`||e.command===`SCREEN_COMMAND_RESUME`||e.command===`SCREEN_COMMAND_REPLAY`?(e.command===`SCREEN_COMMAND_REPLAY`&&(t.currentTime=0),t.play().catch(()=>{R.value=`Браузер заблокировал воспроизведение. Нажмите «Подготовить экран» на этом устройстве.`})):(e.command===`SCREEN_COMMAND_PAUSE`||e.command===`SCREEN_COMMAND_STOP`)&&t.pause()))});function $e(e){return e.readyState>=HTMLMediaElement.HAVE_METADATA?Promise.resolve():new Promise(t=>{let n=()=>{e.removeEventListener(`loadedmetadata`,n),e.removeEventListener(`error`,n),t()};e.addEventListener(`loadedmetadata`,n,{once:!0}),e.addEventListener(`error`,n,{once:!0})})}p(We,async(e,t)=>{let n=k.value?.music;if(!n||!n.playlist?.tracks?.length)return;await y();let r=K.value;if(!r)return;let i=!t||e[0]!==t[0]||e[1]!==t[1],a=!t||e[2]!==t[2],o=!!t&&e[3]!==t[3]&&Number(e[4]??0)BigInt(t[3]??0);!i&&!a&&!o&&!s||(await $e(r),r.currentTime=i?0:(n.positionMs||0)/1e3,n.playback===`MUSIC_PLAYBACK_PLAYING`?r.play().catch(()=>{R.value=`Браузер заблокировал воспроизведение музыки. Нажмите «Подготовить экран».`}):r.pause())},{immediate:!0}),p(()=>[k.value?.music?.volume,k.value?.soundEnabled],([e,t])=>{let n=K.value;n&&(n.volume=Math.max(0,Math.min(1,(e??100)/100)),n.muted=!t)},{immediate:!0});async function et(){if(J||!D.value||!O.value||!k.value?.soundEnabled)return;J=!0;let e=k.value.gameID,t=D.value;try{let n=await x.AdvanceScreenMusic({screenID:D.value,accessToken:O.value,expectedStateVersion:String(k.value?.music?.stateVersion??0)});k.value?.gameID===e&&D.value===t&&k.value&&n.state&&BigInt(n.state.stateVersion??0)>=BigInt(k.value.music?.stateVersion??0)&&(R.value=``,k.value.music=n.state)}catch{R.value=`Не удалось синхронизировать музыку. Повторная попытка выполняется автоматически.`}finally{J=!1}}async function tt(){if(!(!I.value||!E.query.screenID||!E.query.accessToken)){B.value=!0;try{await w.BindScreen({screenID:String(E.query.screenID),accessToken:String(E.query.accessToken),gameID:I.value,initializeAudio:!1}),Fe.value=!0}catch(e){T.error(e instanceof Error?e.message:`Не удалось привязать экран`)}finally{B.value=!1}}}async function nt(){try{await document.documentElement.requestFullscreen?.()}catch{T.warning(`Полноэкранный режим недоступен в этом браузере`)}L.value=!0,await y();for(let e of[G.value,q.value,K.value])if(e){e.muted=!0;try{await e.play(),e.pause(),e.currentTime=0,e.muted=!k.value?.soundEnabled}catch{R.value=`Браузер не разрешил подготовить воспроизведение на этом устройстве.`}}}return i(async()=>{if(Z.value){await Qe(),z.value=!1;return}Je();try{(!D.value||!O.value)&&await Ye(),await $(),W.value=!0,X=window.setInterval(()=>{Ie.value=Date.now()},250)}catch(e){T.error(e instanceof Error?e.message:`Не удалось подготовить экран`)}finally{z.value=!1}}),o(()=>{X!=null&&window.clearInterval(X),P!=null&&window.clearInterval(P)}),(e,i)=>(a(),l(f,null,[Z.value?(a(),l(`div`,me,[m(n(ae),{class:`binding-card`,title:`Привязка экрана`},{default:h(()=>[Fe.value?(a(),l(f,{key:0},[i[1]||=c(`p`,null,`Экран привязан к игре.`,-1),i[2]||=c(`p`,null,`Можно закрыть эту страницу.`,-1)],64)):(a(),l(f,{key:1},[i[4]||=c(`p`,null,`Выберите игру, к которой привязать экран.`,-1),m(n(ie),{value:I.value,"onUpdate:value":i[0]||=e=>I.value=e,options:Re.value,placeholder:`Игра`},null,8,[`value`,`options`]),m(n(b),{type:`primary`,loading:B.value,disabled:I.value==null,onClick:tt},{default:h(()=>[...i[3]||=[s(` Привязать `,-1)]]),_:1},8,[`loading`,`disabled`])],64))]),_:1})])):(a(),l(`div`,he,[z.value?(a(),l(`div`,ge,`Подготовка экрана…`)):(a(),l(f,{key:1},[k.value?.gameID?(a(),l(`div`,{key:1,class:`screen-content`,style:t(Ge.value)},[R.value?(a(),l(`p`,ye,u(R.value),1)):_(``,!0),k.value.introAudio?ee((a(),l(`div`,be,[c(`audio`,{ref_key:`introAudioElement`,ref:G,src:Ve.value,muted:!k.value.soundEnabled,controls:``},null,8,xe)],512)),[[se,Q.value===`SCREEN_MODE_INTRO`]]):_(``,!0),k.value.music?.playlist?.tracks?.length?(a(),l(`audio`,{key:2,ref_key:`musicAudioElement`,ref:K,src:Ue.value,muted:!k.value.soundEnabled,onEnded:et},null,40,Se)):_(``,!0),k.value.conclusionVideo?ee((a(),l(`div`,Ce,[c(`video`,{ref_key:`conclusionVideoElement`,ref:q,src:He.value,muted:!k.value.soundEnabled,playsinline:``},null,8,we)],512)),[[se,Q.value===`SCREEN_MODE_CONCLUSION`]]):_(``,!0),Q.value===`SCREEN_MODE_CONCLUSION`&&!k.value.conclusionVideo?(a(),l(`div`,Te,`Видео закрывашки не задано`)):_(``,!0),Q.value===`SCREEN_MODE_QR`||Q.value===`SCREEN_MODE_TEAMS`?(a(),r(de,{key:5,class:`static-screen`,state:k.value,questions:[],teams:[],"team-names":A.value},null,8,[`state`,`team-names`])):_(``,!0),Q.value===`SCREEN_MODE_TEXT`?(a(),l(`div`,Ee,u(k.value.text),1)):_(``,!0),Q.value===`SCREEN_MODE_TIMER`?(a(),l(`div`,De,[c(`h1`,Oe,u(k.value.timerLabel||`Перерыв`),1),c(`div`,ke,u(Be.value),1)])):_(``,!0),Q.value===`SCREEN_MODE_RESULTS`?(a(),l(`div`,{key:8,ref_key:`resultsContainer`,ref:Ne,class:`results-screen`},[i[11]||=c(`h1`,null,`Результаты`,-1),c(`table`,null,[c(`thead`,null,[c(`tr`,null,[i[7]||=c(`th`,null,`Место`,-1),i[8]||=c(`th`,null,`Команда`,-1),(a(!0),l(f,null,d(N.value,e=>(a(),l(`th`,{key:e.code},u(e.code),1))),128)),i[9]||=c(`th`,null,`Сумма`,-1),i[10]||=c(`th`,null,`Ходы`,-1)])]),c(`tbody`,null,[(a(!0),l(f,null,d(M.value,e=>(a(),l(`tr`,{key:e.team?.ID},[c(`td`,null,u(e.place),1),c(`td`,null,u(e.team?.name),1),(a(!0),l(f,null,d(N.value,t=>(a(),l(`td`,{key:t.code},u(e.answers?.find(e=>e.questionCode===t.code)?.score??0),1))),128)),c(`td`,null,u(e.totalScore),1),c(`td`,null,u(e.actionsCount),1)]))),128))])])],512)):_(``,!0),Q.value===`SCREEN_MODE_COVER`?(a(),l(`div`,Ae,[k.value.coverImage?(a(),l(`img`,{key:0,src:k.value.coverImage,class:`cover-image`,alt:`Обложка дела`},null,8,je)):_(``,!0),L.value?_(``,!0):(a(),l(`div`,Me,[m(n(b),{type:`primary`,onClick:nt},{default:h(()=>[...i[12]||=[s(`Подготовить экран`,-1)]]),_:1})]))])):_(``,!0)],4)):(a(),l(`div`,_e,[m(n(ae),{class:`qr-card`,title:`Подключение экрана`},{default:h(()=>[Le.value?(a(),l(`div`,ve,[m(n(oe),{value:Le.value,size:260,padding:0},null,8,[`value`])])):_(``,!0),i[6]||=c(`p`,null,`Отсканируйте QR телефоном организатора и выберите игру.`,-1),L.value?_(``,!0):(a(),r(n(b),{key:1,type:`primary`,onClick:nt},{default:h(()=>[...i[5]||=[s(`Подготовить экран`,-1)]]),_:1}))]),_:1})]))],64))])),Z.value?(a(),r(ue,{key:2,active:`games`})):_(``,!0)],64))}}),[[`__scopeId`,`data-v-881246d3`]]),T=e({__name:`ScreenView`,setup(e){return(e,t)=>(a(),r(w))}});export{T as default}; \ No newline at end of file diff --git a/frontend/dist/assets/Scrollbar-BUURfLNv.js b/frontend/dist/assets/Scrollbar-DGnXZ64x.js similarity index 99% rename from frontend/dist/assets/Scrollbar-BUURfLNv.js rename to frontend/dist/assets/Scrollbar-DGnXZ64x.js index 273a022..03a7cbb 100644 --- a/frontend/dist/assets/Scrollbar-BUURfLNv.js +++ b/frontend/dist/assets/Scrollbar-DGnXZ64x.js @@ -1,4 +1,4 @@ -import{At as e,Bt as t,Gt as n,Ht as r,Nt as i,Rt as a,U as o,W as s,Wt as c,Zt as l,_ as u,an as d,at as f,gt as p,jt as m,m as h,nt as g,ot as _,rt as v,vn as y,xt as b}from"./client-DrrW410h.js";import{a as x,c as S,s as C}from"./ui-CXICC9ah.js";import{t as w}from"./fade-in.cssr-DIQ8XvO3.js";import{t as T}from"./light-CxYgWZGt.js";import{lt as E}from"./index-cNEa5D1b.js";function D(e){return e.composedPath()[0]||null}function O(e){return e.composedPath()[0]}var k={mousemoveoutside:new WeakMap,clickoutside:new WeakMap};function A(e,t,n){if(e===`mousemoveoutside`){let e=e=>{t.contains(O(e))||n(e)};return{mousemove:e,touchstart:e}}else if(e===`clickoutside`){let e=!1,r=n=>{e=!t.contains(O(n))},i=r=>{e&&(t.contains(O(r))||n(r))};return{mousedown:r,mouseup:i,touchstart:r,touchend:i}}return console.error(`[evtd/create-trap-handler]: name \`${e}\` is invalid. This could be a bug of evtd.`),{}}function j(e,t,n){let r=k[e],i=r.get(t);i===void 0&&r.set(t,i=new WeakMap);let a=i.get(n);return a===void 0&&i.set(n,a=A(e,t,n)),a}function ee(e,t,n,r){if(e===`mousemoveoutside`||e===`clickoutside`){let i=j(e,t,n);return Object.keys(i).forEach(e=>{N(e,document,i[e],r)}),!0}return!1}function te(e,t,n,r){if(e===`mousemoveoutside`||e===`clickoutside`){let i=j(e,t,n);return Object.keys(i).forEach(e=>{P(e,document,i[e],r)}),!0}return!1}function M(){if(typeof window>`u`)return{on:()=>{},off:()=>{}};let e=new WeakMap,t=new WeakMap;function n(){e.set(this,!0)}function r(){e.set(this,!0),t.set(this,!0)}function i(e,t,n){let r=e[t];return e[t]=function(){return n.apply(e,arguments),r.apply(e,arguments)},e}function a(e,t){e[t]=Event.prototype[t]}let o=new WeakMap,s=Object.getOwnPropertyDescriptor(Event.prototype,`currentTarget`);function c(){return o.get(this)??null}function l(e,t){s!==void 0&&Object.defineProperty(e,"currentTarget",{configurable:!0,enumerable:!0,get:t??s.get})}let u={bubble:{},capture:{}},d={};function f(){let s=function(s){let{type:d,eventPhase:f,bubbles:p}=s,m=O(s);if(f===2)return;let h=f===1?`capture`:`bubble`,g=m,_=[];for(;g===null&&(g=window),_.push(g),g!==window;)g=g.parentNode||null;let v=u.capture[d],y=u.bubble[d];if(i(s,`stopPropagation`,n),i(s,`stopImmediatePropagation`,r),l(s,c),h===`capture`){if(v===void 0)return;for(let n=_.length-1;n>=0&&!e.has(s);--n){let e=_[n],r=v.get(e);if(r!==void 0){o.set(s,e);for(let e of r){if(t.has(s))break;e(s)}}if(n===0&&!p&&y!==void 0){let n=y.get(e);if(n!==void 0)for(let e of n){if(t.has(s))break;e(s)}}}}else if(h===`bubble`){if(y===void 0)return;for(let n=0;n<_.length&&!e.has(s);++n){let e=_[n],r=y.get(e);if(r!==void 0){o.set(s,e);for(let e of r){if(t.has(s))break;e(s)}}}}a(s,`stopPropagation`),a(s,`stopImmediatePropagation`),l(s)};return s.displayName=`evtdUnifiedHandler`,s}function p(){let e=function(e){let{type:t,eventPhase:n}=e;if(n!==2)return;let r=d[t];r!==void 0&&r.forEach(t=>t(e))};return e.displayName=`evtdUnifiedWindowEventHandler`,e}let m=f(),h=p();function g(e,t){let n=u[e];return n[t]===void 0&&(n[t]=new Map,window.addEventListener(t,m,e===`capture`)),n[t]}function _(e){return d[e]===void 0&&(d[e]=new Set,window.addEventListener(e,h)),d[e]}function v(e,t){let n=e.get(t);return n===void 0&&e.set(t,n=new Set),n}function y(e,t,n,r){let i=u[t][n];if(i!==void 0){let t=i.get(e);if(t!==void 0&&t.has(r))return!0}return!1}function b(e,t){let n=d[e];return!!(n!==void 0&&n.has(t))}function x(e,t,n,r){let i;if(i=typeof r==`object`&&r.once===!0?a=>{S(e,t,i,r),n(a)}:n,ee(e,t,i,r))return;let a=v(g(r===!0||typeof r==`object`&&r.capture===!0?`capture`:`bubble`,e),t);if(a.has(i)||a.add(i),t===window){let t=_(e);t.has(i)||t.add(i)}}function S(e,t,n,r){if(te(e,t,n,r))return;let i=r===!0||typeof r==`object`&&r.capture===!0,a=i?`capture`:`bubble`,o=g(a,e),s=v(o,t);if(t===window&&!y(t,i?`bubble`:`capture`,e,n)&&b(e,n)){let t=d[e];t.delete(n),t.size===0&&(window.removeEventListener(e,h),d[e]=void 0)}s.has(n)&&s.delete(n),s.size===0&&o.delete(t),o.size===0&&(window.removeEventListener(e,m,a===`capture`),u[a][e]=void 0)}return{on:x,off:S}}var{on:N,off:P}=M(),F=(typeof window>`u`?!1:/iPad|iPhone|iPod/.test(navigator.platform)||navigator.platform===`MacIntel`&&navigator.maxTouchPoints>1)&&!window.MSStream;function ne(){return F}function re(e){let n={isDeactivated:!1},r=!1;return t(()=>{if(n.isDeactivated=!1,!r){r=!0;return}e()}),c(()=>{n.isDeactivated=!0,r||=!0}),n}function I(e,t){console.error(`[vueuc/${e}]: ${t}`)}var L=[],ie=function(){return L.some(function(e){return e.activeTargets.length>0})},ae=function(){return L.some(function(e){return e.skippedTargets.length>0})},oe=`ResizeObserver loop completed with undelivered notifications.`,se=function(){var e;typeof ErrorEvent==`function`?e=new ErrorEvent(`error`,{message:oe}):(e=document.createEvent(`Event`),e.initEvent(`error`,!1,!1),e.message=oe),window.dispatchEvent(e)},R;(function(e){e.BORDER_BOX=`border-box`,e.CONTENT_BOX=`content-box`,e.DEVICE_PIXEL_CONTENT_BOX=`device-pixel-content-box`})(R||={});var z=function(e){return Object.freeze(e)},ce=function(){function e(e,t){this.inlineSize=e,this.blockSize=t,z(this)}return e}(),B=function(){function e(e,t,n,r){return this.x=e,this.y=t,this.width=n,this.height=r,this.top=this.y,this.left=this.x,this.bottom=this.top+this.height,this.right=this.left+this.width,z(this)}return e.prototype.toJSON=function(){var e=this;return{x:e.x,y:e.y,top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.width,height:e.height}},e.fromRect=function(t){return new e(t.x,t.y,t.width,t.height)},e}(),le=function(e){return e instanceof SVGElement&&`getBBox`in e},ue=function(e){if(le(e)){var t=e.getBBox(),n=t.width,r=t.height;return!n&&!r}var i=e,a=i.offsetWidth,o=i.offsetHeight;return!(a||o||e.getClientRects().length)},de=function(e){if(e instanceof Element)return!0;var t=e?.ownerDocument?.defaultView;return!!(t&&e instanceof t.Element)},fe=function(e){switch(e.tagName){case`INPUT`:if(e.type!==`image`)break;case`VIDEO`:case`AUDIO`:case`EMBED`:case`OBJECT`:case`CANVAS`:case`IFRAME`:case`IMG`:return!0}return!1},V=typeof window<`u`?window:{},H=new WeakMap,U=/auto|scroll/,pe=/^tb|vertical/,me=/msie|trident/i.test(V.navigator&&V.navigator.userAgent),W=function(e){return parseFloat(e||`0`)},G=function(e,t,n){return e===void 0&&(e=0),t===void 0&&(t=0),n===void 0&&(n=!1),new ce((n?t:e)||0,(n?e:t)||0)},K=z({devicePixelContentBoxSize:G(),borderBoxSize:G(),contentBoxSize:G(),contentRect:new B(0,0,0,0)}),he=function(e,t){if(t===void 0&&(t=!1),H.has(e)&&!t)return H.get(e);if(ue(e))return H.set(e,K),K;var n=getComputedStyle(e),r=le(e)&&e.ownerSVGElement&&e.getBBox(),i=!me&&n.boxSizing===`border-box`,a=pe.test(n.writingMode||``),o=!r&&U.test(n.overflowY||``),s=!r&&U.test(n.overflowX||``),c=r?0:W(n.paddingTop),l=r?0:W(n.paddingRight),u=r?0:W(n.paddingBottom),d=r?0:W(n.paddingLeft),f=r?0:W(n.borderTopWidth),p=r?0:W(n.borderRightWidth),m=r?0:W(n.borderBottomWidth),h=r?0:W(n.borderLeftWidth),g=d+l,_=c+u,v=h+p,y=f+m,b=s?e.offsetHeight-y-e.clientHeight:0,x=o?e.offsetWidth-v-e.clientWidth:0,S=i?g+v:0,C=i?_+y:0,w=r?r.width:W(n.width)-S-x,T=r?r.height:W(n.height)-C-b,E=w+g+x+v,D=T+_+b+y,O=z({devicePixelContentBoxSize:G(Math.round(w*devicePixelRatio),Math.round(T*devicePixelRatio),a),borderBoxSize:G(E,D,a),contentBoxSize:G(w,T,a),contentRect:new B(d,c,w,T)});return H.set(e,O),O},ge=function(e,t,n){var r=he(e,n),i=r.borderBoxSize,a=r.contentBoxSize,o=r.devicePixelContentBoxSize;switch(t){case R.DEVICE_PIXEL_CONTENT_BOX:return o;case R.BORDER_BOX:return i;default:return a}},_e=function(){function e(e){var t=he(e);this.target=e,this.contentRect=t.contentRect,this.borderBoxSize=z([t.borderBoxSize]),this.contentBoxSize=z([t.contentBoxSize]),this.devicePixelContentBoxSize=z([t.devicePixelContentBoxSize])}return e}(),ve=function(e){if(ue(e))return 1/0;for(var t=0,n=e.parentNode;n;)t+=1,n=n.parentNode;return t},q=function(){var e=1/0,t=[];L.forEach(function(n){if(n.activeTargets.length!==0){var r=[];n.activeTargets.forEach(function(t){var n=new _e(t.target),i=ve(t.target);r.push(n),t.lastReportedSize=ge(t.target,t.observedBox),ie?t.activeTargets.push(n):t.skippedTargets.push(n))})})},be=function(){var e=0;for(ye(e);ie();)e=q(),ye(e);return ae()&&se(),e>0},J,xe=[],Se=function(){return xe.splice(0).forEach(function(e){return e()})},Ce=function(e){if(!J){var t=0,n=document.createTextNode(``);new MutationObserver(function(){return Se()}).observe(n,{characterData:!0}),J=function(){n.textContent=`${t?t--:t++}`}}xe.push(e),J()},we=function(e){Ce(function(){requestAnimationFrame(e)})},Y=0,Te=function(){return!!Y},Ee=250,De={attributes:!0,characterData:!0,childList:!0,subtree:!0},X=[`resize`,`load`,`transitionend`,`animationend`,`animationstart`,`animationiteration`,`keyup`,`keydown`,`mouseup`,`mousedown`,`mouseover`,`mouseout`,`blur`,`focus`],Oe=function(e){return e===void 0&&(e=0),Date.now()+e},ke=!1,Z=new(function(){function e(){var e=this;this.stopped=!0,this.listener=function(){return e.schedule()}}return e.prototype.run=function(e){var t=this;if(e===void 0&&(e=Ee),!ke){ke=!0;var n=Oe(e);we(function(){var r=!1;try{r=be()}finally{if(ke=!1,e=n-Oe(),!Te())return;r?t.run(1e3):e>0?t.run(e):t.start()}})}},e.prototype.schedule=function(){this.stop(),this.run()},e.prototype.observe=function(){var e=this,t=function(){return e.observer&&e.observer.observe(document.body,De)};document.body?t():V.addEventListener(`DOMContentLoaded`,t)},e.prototype.start=function(){var e=this;this.stopped&&(this.stopped=!1,this.observer=new MutationObserver(this.listener),this.observe(),X.forEach(function(t){return V.addEventListener(t,e.listener,!0)}))},e.prototype.stop=function(){var e=this;this.stopped||=(this.observer&&this.observer.disconnect(),X.forEach(function(t){return V.removeEventListener(t,e.listener,!0)}),!0)},e}()),Ae=function(e){!Y&&e>0&&Z.start(),Y+=e,!Y&&Z.stop()},je=function(e){return!le(e)&&!fe(e)&&getComputedStyle(e).display===`inline`},Q=function(){function e(e,t){this.target=e,this.observedBox=t||R.CONTENT_BOX,this.lastReportedSize={inlineSize:0,blockSize:0}}return e.prototype.isActive=function(){var e=ge(this.target,this.observedBox,!0);return je(this.target)&&(this.lastReportedSize=e),this.lastReportedSize.inlineSize!==e.inlineSize||this.lastReportedSize.blockSize!==e.blockSize},e}(),Me=function(){function e(e,t){this.activeTargets=[],this.skippedTargets=[],this.observationTargets=[],this.observer=e,this.callback=t}return e}(),$=new WeakMap,Ne=function(e,t){for(var n=0;n=0&&(i&&L.splice(L.indexOf(n),1),n.observationTargets.splice(r,1),Ae(-1))},e.disconnect=function(e){var t=this,n=$.get(e);n.observationTargets.slice().forEach(function(n){return t.unobserve(e,n.target)}),n.activeTargets.splice(0,n.activeTargets.length)},e}(),Fe=function(){function e(e){if(arguments.length===0)throw TypeError(`Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.`);if(typeof e!=`function`)throw TypeError(`Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.`);Pe.connect(this,e)}return e.prototype.observe=function(e,t){if(arguments.length===0)throw TypeError(`Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.`);if(!de(e))throw TypeError(`Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element`);Pe.observe(this,e,t)},e.prototype.unobserve=function(e){if(arguments.length===0)throw TypeError(`Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.`);if(!de(e))throw TypeError(`Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element`);Pe.unobserve(this,e)},e.prototype.disconnect=function(){Pe.disconnect(this)},e.toString=function(){return`function ResizeObserver () { [polyfill code] }`},e}(),Ie=new class{constructor(){this.handleResize=this.handleResize.bind(this),this.observer=new(typeof window<`u`&&window.ResizeObserver||Fe)(this.handleResize),this.elHandlersMap=new Map}handleResize(e){for(let t of e){let e=this.elHandlersMap.get(t.target);e!==void 0&&e(t)}}registerHandler(e,t){this.elHandlersMap.set(e,t),this.observer.observe(e)}unregisterHandler(e){this.elHandlersMap.has(e)&&(this.elHandlersMap.delete(e),this.observer.unobserve(e))}},Le=e({name:`ResizeObserver`,props:{onResize:Function},setup(e){let t=!1,i=m().proxy;function a(t){let{onResize:n}=e;n!==void 0&&n(t)}n(()=>{let e=i.$el;if(e===void 0){I(`resize-observer`,`$el does not exist.`);return}if(e.nextElementSibling!==e.nextSibling&&e.nodeType===3&&e.nodeValue!==``){I(`resize-observer`,`$el can not be observed (it may be a text node).`);return}e.nextElementSibling!==null&&(Ie.registerHandler(e.nextElementSibling,a),t=!0)}),r(()=>{t&&Ie.unregisterHandler(i.$el.nextElementSibling)})},render(){return l(this.$slots,`default`)}});function Re(e){let{left:t,right:n,top:r,bottom:i}=C(e);return`${r} ${t} ${i} ${n}`}function ze(e){return Object.keys(e)}var Be=e({render(){var e;return(e=this.$slots).default?.call(e)}}),Ve=v(`scrollbar`,` +import{At as e,Bt as t,Gt as n,Ht as r,Nt as i,Rt as a,U as o,W as s,Wt as c,Zt as l,_ as u,an as d,at as f,gt as p,jt as m,m as h,nt as g,ot as _,rt as v,vn as y,xt as b}from"./client-DrrW410h.js";import{a as x,c as S,s as C}from"./ui-BXphkCO3.js";import{t as w}from"./fade-in.cssr-DIQ8XvO3.js";import{t as T}from"./light-CxYgWZGt.js";import{lt as E}from"./index-CvfVA1ID.js";function D(e){return e.composedPath()[0]||null}function O(e){return e.composedPath()[0]}var k={mousemoveoutside:new WeakMap,clickoutside:new WeakMap};function A(e,t,n){if(e===`mousemoveoutside`){let e=e=>{t.contains(O(e))||n(e)};return{mousemove:e,touchstart:e}}else if(e===`clickoutside`){let e=!1,r=n=>{e=!t.contains(O(n))},i=r=>{e&&(t.contains(O(r))||n(r))};return{mousedown:r,mouseup:i,touchstart:r,touchend:i}}return console.error(`[evtd/create-trap-handler]: name \`${e}\` is invalid. This could be a bug of evtd.`),{}}function j(e,t,n){let r=k[e],i=r.get(t);i===void 0&&r.set(t,i=new WeakMap);let a=i.get(n);return a===void 0&&i.set(n,a=A(e,t,n)),a}function ee(e,t,n,r){if(e===`mousemoveoutside`||e===`clickoutside`){let i=j(e,t,n);return Object.keys(i).forEach(e=>{N(e,document,i[e],r)}),!0}return!1}function te(e,t,n,r){if(e===`mousemoveoutside`||e===`clickoutside`){let i=j(e,t,n);return Object.keys(i).forEach(e=>{P(e,document,i[e],r)}),!0}return!1}function M(){if(typeof window>`u`)return{on:()=>{},off:()=>{}};let e=new WeakMap,t=new WeakMap;function n(){e.set(this,!0)}function r(){e.set(this,!0),t.set(this,!0)}function i(e,t,n){let r=e[t];return e[t]=function(){return n.apply(e,arguments),r.apply(e,arguments)},e}function a(e,t){e[t]=Event.prototype[t]}let o=new WeakMap,s=Object.getOwnPropertyDescriptor(Event.prototype,`currentTarget`);function c(){return o.get(this)??null}function l(e,t){s!==void 0&&Object.defineProperty(e,"currentTarget",{configurable:!0,enumerable:!0,get:t??s.get})}let u={bubble:{},capture:{}},d={};function f(){let s=function(s){let{type:d,eventPhase:f,bubbles:p}=s,m=O(s);if(f===2)return;let h=f===1?`capture`:`bubble`,g=m,_=[];for(;g===null&&(g=window),_.push(g),g!==window;)g=g.parentNode||null;let v=u.capture[d],y=u.bubble[d];if(i(s,`stopPropagation`,n),i(s,`stopImmediatePropagation`,r),l(s,c),h===`capture`){if(v===void 0)return;for(let n=_.length-1;n>=0&&!e.has(s);--n){let e=_[n],r=v.get(e);if(r!==void 0){o.set(s,e);for(let e of r){if(t.has(s))break;e(s)}}if(n===0&&!p&&y!==void 0){let n=y.get(e);if(n!==void 0)for(let e of n){if(t.has(s))break;e(s)}}}}else if(h===`bubble`){if(y===void 0)return;for(let n=0;n<_.length&&!e.has(s);++n){let e=_[n],r=y.get(e);if(r!==void 0){o.set(s,e);for(let e of r){if(t.has(s))break;e(s)}}}}a(s,`stopPropagation`),a(s,`stopImmediatePropagation`),l(s)};return s.displayName=`evtdUnifiedHandler`,s}function p(){let e=function(e){let{type:t,eventPhase:n}=e;if(n!==2)return;let r=d[t];r!==void 0&&r.forEach(t=>t(e))};return e.displayName=`evtdUnifiedWindowEventHandler`,e}let m=f(),h=p();function g(e,t){let n=u[e];return n[t]===void 0&&(n[t]=new Map,window.addEventListener(t,m,e===`capture`)),n[t]}function _(e){return d[e]===void 0&&(d[e]=new Set,window.addEventListener(e,h)),d[e]}function v(e,t){let n=e.get(t);return n===void 0&&e.set(t,n=new Set),n}function y(e,t,n,r){let i=u[t][n];if(i!==void 0){let t=i.get(e);if(t!==void 0&&t.has(r))return!0}return!1}function b(e,t){let n=d[e];return!!(n!==void 0&&n.has(t))}function x(e,t,n,r){let i;if(i=typeof r==`object`&&r.once===!0?a=>{S(e,t,i,r),n(a)}:n,ee(e,t,i,r))return;let a=v(g(r===!0||typeof r==`object`&&r.capture===!0?`capture`:`bubble`,e),t);if(a.has(i)||a.add(i),t===window){let t=_(e);t.has(i)||t.add(i)}}function S(e,t,n,r){if(te(e,t,n,r))return;let i=r===!0||typeof r==`object`&&r.capture===!0,a=i?`capture`:`bubble`,o=g(a,e),s=v(o,t);if(t===window&&!y(t,i?`bubble`:`capture`,e,n)&&b(e,n)){let t=d[e];t.delete(n),t.size===0&&(window.removeEventListener(e,h),d[e]=void 0)}s.has(n)&&s.delete(n),s.size===0&&o.delete(t),o.size===0&&(window.removeEventListener(e,m,a===`capture`),u[a][e]=void 0)}return{on:x,off:S}}var{on:N,off:P}=M(),F=(typeof window>`u`?!1:/iPad|iPhone|iPod/.test(navigator.platform)||navigator.platform===`MacIntel`&&navigator.maxTouchPoints>1)&&!window.MSStream;function ne(){return F}function re(e){let n={isDeactivated:!1},r=!1;return t(()=>{if(n.isDeactivated=!1,!r){r=!0;return}e()}),c(()=>{n.isDeactivated=!0,r||=!0}),n}function I(e,t){console.error(`[vueuc/${e}]: ${t}`)}var L=[],ie=function(){return L.some(function(e){return e.activeTargets.length>0})},ae=function(){return L.some(function(e){return e.skippedTargets.length>0})},oe=`ResizeObserver loop completed with undelivered notifications.`,se=function(){var e;typeof ErrorEvent==`function`?e=new ErrorEvent(`error`,{message:oe}):(e=document.createEvent(`Event`),e.initEvent(`error`,!1,!1),e.message=oe),window.dispatchEvent(e)},R;(function(e){e.BORDER_BOX=`border-box`,e.CONTENT_BOX=`content-box`,e.DEVICE_PIXEL_CONTENT_BOX=`device-pixel-content-box`})(R||={});var z=function(e){return Object.freeze(e)},ce=function(){function e(e,t){this.inlineSize=e,this.blockSize=t,z(this)}return e}(),B=function(){function e(e,t,n,r){return this.x=e,this.y=t,this.width=n,this.height=r,this.top=this.y,this.left=this.x,this.bottom=this.top+this.height,this.right=this.left+this.width,z(this)}return e.prototype.toJSON=function(){var e=this;return{x:e.x,y:e.y,top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.width,height:e.height}},e.fromRect=function(t){return new e(t.x,t.y,t.width,t.height)},e}(),le=function(e){return e instanceof SVGElement&&`getBBox`in e},ue=function(e){if(le(e)){var t=e.getBBox(),n=t.width,r=t.height;return!n&&!r}var i=e,a=i.offsetWidth,o=i.offsetHeight;return!(a||o||e.getClientRects().length)},de=function(e){if(e instanceof Element)return!0;var t=e?.ownerDocument?.defaultView;return!!(t&&e instanceof t.Element)},fe=function(e){switch(e.tagName){case`INPUT`:if(e.type!==`image`)break;case`VIDEO`:case`AUDIO`:case`EMBED`:case`OBJECT`:case`CANVAS`:case`IFRAME`:case`IMG`:return!0}return!1},V=typeof window<`u`?window:{},H=new WeakMap,U=/auto|scroll/,pe=/^tb|vertical/,me=/msie|trident/i.test(V.navigator&&V.navigator.userAgent),W=function(e){return parseFloat(e||`0`)},G=function(e,t,n){return e===void 0&&(e=0),t===void 0&&(t=0),n===void 0&&(n=!1),new ce((n?t:e)||0,(n?e:t)||0)},K=z({devicePixelContentBoxSize:G(),borderBoxSize:G(),contentBoxSize:G(),contentRect:new B(0,0,0,0)}),he=function(e,t){if(t===void 0&&(t=!1),H.has(e)&&!t)return H.get(e);if(ue(e))return H.set(e,K),K;var n=getComputedStyle(e),r=le(e)&&e.ownerSVGElement&&e.getBBox(),i=!me&&n.boxSizing===`border-box`,a=pe.test(n.writingMode||``),o=!r&&U.test(n.overflowY||``),s=!r&&U.test(n.overflowX||``),c=r?0:W(n.paddingTop),l=r?0:W(n.paddingRight),u=r?0:W(n.paddingBottom),d=r?0:W(n.paddingLeft),f=r?0:W(n.borderTopWidth),p=r?0:W(n.borderRightWidth),m=r?0:W(n.borderBottomWidth),h=r?0:W(n.borderLeftWidth),g=d+l,_=c+u,v=h+p,y=f+m,b=s?e.offsetHeight-y-e.clientHeight:0,x=o?e.offsetWidth-v-e.clientWidth:0,S=i?g+v:0,C=i?_+y:0,w=r?r.width:W(n.width)-S-x,T=r?r.height:W(n.height)-C-b,E=w+g+x+v,D=T+_+b+y,O=z({devicePixelContentBoxSize:G(Math.round(w*devicePixelRatio),Math.round(T*devicePixelRatio),a),borderBoxSize:G(E,D,a),contentBoxSize:G(w,T,a),contentRect:new B(d,c,w,T)});return H.set(e,O),O},ge=function(e,t,n){var r=he(e,n),i=r.borderBoxSize,a=r.contentBoxSize,o=r.devicePixelContentBoxSize;switch(t){case R.DEVICE_PIXEL_CONTENT_BOX:return o;case R.BORDER_BOX:return i;default:return a}},_e=function(){function e(e){var t=he(e);this.target=e,this.contentRect=t.contentRect,this.borderBoxSize=z([t.borderBoxSize]),this.contentBoxSize=z([t.contentBoxSize]),this.devicePixelContentBoxSize=z([t.devicePixelContentBoxSize])}return e}(),ve=function(e){if(ue(e))return 1/0;for(var t=0,n=e.parentNode;n;)t+=1,n=n.parentNode;return t},q=function(){var e=1/0,t=[];L.forEach(function(n){if(n.activeTargets.length!==0){var r=[];n.activeTargets.forEach(function(t){var n=new _e(t.target),i=ve(t.target);r.push(n),t.lastReportedSize=ge(t.target,t.observedBox),ie?t.activeTargets.push(n):t.skippedTargets.push(n))})})},be=function(){var e=0;for(ye(e);ie();)e=q(),ye(e);return ae()&&se(),e>0},J,xe=[],Se=function(){return xe.splice(0).forEach(function(e){return e()})},Ce=function(e){if(!J){var t=0,n=document.createTextNode(``);new MutationObserver(function(){return Se()}).observe(n,{characterData:!0}),J=function(){n.textContent=`${t?t--:t++}`}}xe.push(e),J()},we=function(e){Ce(function(){requestAnimationFrame(e)})},Y=0,Te=function(){return!!Y},Ee=250,De={attributes:!0,characterData:!0,childList:!0,subtree:!0},X=[`resize`,`load`,`transitionend`,`animationend`,`animationstart`,`animationiteration`,`keyup`,`keydown`,`mouseup`,`mousedown`,`mouseover`,`mouseout`,`blur`,`focus`],Oe=function(e){return e===void 0&&(e=0),Date.now()+e},ke=!1,Z=new(function(){function e(){var e=this;this.stopped=!0,this.listener=function(){return e.schedule()}}return e.prototype.run=function(e){var t=this;if(e===void 0&&(e=Ee),!ke){ke=!0;var n=Oe(e);we(function(){var r=!1;try{r=be()}finally{if(ke=!1,e=n-Oe(),!Te())return;r?t.run(1e3):e>0?t.run(e):t.start()}})}},e.prototype.schedule=function(){this.stop(),this.run()},e.prototype.observe=function(){var e=this,t=function(){return e.observer&&e.observer.observe(document.body,De)};document.body?t():V.addEventListener(`DOMContentLoaded`,t)},e.prototype.start=function(){var e=this;this.stopped&&(this.stopped=!1,this.observer=new MutationObserver(this.listener),this.observe(),X.forEach(function(t){return V.addEventListener(t,e.listener,!0)}))},e.prototype.stop=function(){var e=this;this.stopped||=(this.observer&&this.observer.disconnect(),X.forEach(function(t){return V.removeEventListener(t,e.listener,!0)}),!0)},e}()),Ae=function(e){!Y&&e>0&&Z.start(),Y+=e,!Y&&Z.stop()},je=function(e){return!le(e)&&!fe(e)&&getComputedStyle(e).display===`inline`},Q=function(){function e(e,t){this.target=e,this.observedBox=t||R.CONTENT_BOX,this.lastReportedSize={inlineSize:0,blockSize:0}}return e.prototype.isActive=function(){var e=ge(this.target,this.observedBox,!0);return je(this.target)&&(this.lastReportedSize=e),this.lastReportedSize.inlineSize!==e.inlineSize||this.lastReportedSize.blockSize!==e.blockSize},e}(),Me=function(){function e(e,t){this.activeTargets=[],this.skippedTargets=[],this.observationTargets=[],this.observer=e,this.callback=t}return e}(),$=new WeakMap,Ne=function(e,t){for(var n=0;n=0&&(i&&L.splice(L.indexOf(n),1),n.observationTargets.splice(r,1),Ae(-1))},e.disconnect=function(e){var t=this,n=$.get(e);n.observationTargets.slice().forEach(function(n){return t.unobserve(e,n.target)}),n.activeTargets.splice(0,n.activeTargets.length)},e}(),Fe=function(){function e(e){if(arguments.length===0)throw TypeError(`Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.`);if(typeof e!=`function`)throw TypeError(`Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.`);Pe.connect(this,e)}return e.prototype.observe=function(e,t){if(arguments.length===0)throw TypeError(`Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.`);if(!de(e))throw TypeError(`Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element`);Pe.observe(this,e,t)},e.prototype.unobserve=function(e){if(arguments.length===0)throw TypeError(`Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.`);if(!de(e))throw TypeError(`Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element`);Pe.unobserve(this,e)},e.prototype.disconnect=function(){Pe.disconnect(this)},e.toString=function(){return`function ResizeObserver () { [polyfill code] }`},e}(),Ie=new class{constructor(){this.handleResize=this.handleResize.bind(this),this.observer=new(typeof window<`u`&&window.ResizeObserver||Fe)(this.handleResize),this.elHandlersMap=new Map}handleResize(e){for(let t of e){let e=this.elHandlersMap.get(t.target);e!==void 0&&e(t)}}registerHandler(e,t){this.elHandlersMap.set(e,t),this.observer.observe(e)}unregisterHandler(e){this.elHandlersMap.has(e)&&(this.elHandlersMap.delete(e),this.observer.unobserve(e))}},Le=e({name:`ResizeObserver`,props:{onResize:Function},setup(e){let t=!1,i=m().proxy;function a(t){let{onResize:n}=e;n!==void 0&&n(t)}n(()=>{let e=i.$el;if(e===void 0){I(`resize-observer`,`$el does not exist.`);return}if(e.nextElementSibling!==e.nextSibling&&e.nodeType===3&&e.nodeValue!==``){I(`resize-observer`,`$el can not be observed (it may be a text node).`);return}e.nextElementSibling!==null&&(Ie.registerHandler(e.nextElementSibling,a),t=!0)}),r(()=>{t&&Ie.unregisterHandler(i.$el.nextElementSibling)})},render(){return l(this.$slots,`default`)}});function Re(e){let{left:t,right:n,top:r,bottom:i}=C(e);return`${r} ${t} ${i} ${n}`}function ze(e){return Object.keys(e)}var Be=e({render(){var e;return(e=this.$slots).default?.call(e)}}),Ve=v(`scrollbar`,` overflow: hidden; position: relative; z-index: auto; diff --git a/frontend/dist/assets/Select-D0BL7DpH.js b/frontend/dist/assets/Select-BQpeZ0on.js similarity index 98% rename from frontend/dist/assets/Select-D0BL7DpH.js rename to frontend/dist/assets/Select-BQpeZ0on.js index 73b7031..64cb149 100644 --- a/frontend/dist/assets/Select-D0BL7DpH.js +++ b/frontend/dist/assets/Select-BQpeZ0on.js @@ -1,4 +1,4 @@ -import{At as e,Gt as t,Nt as n,U as r,W as i,Y as a,Zt as o,_ as s,an as c,at as l,cn as u,ct as d,gt as f,in as p,m,nt as h,ot as g,rt as _,st as v,vn as y,xn as b,xt as x,zt as S}from"./client-DrrW410h.js";import{a as C,i as w,n as T,o as E,r as D,t as O}from"./Follower-BtPkzZJm.js";import{a as k,d as A,i as j,l as M,n as ee,r as N,s as te,t as ne}from"./utils-B8DiXMbh.js";import{l as re,r as P}from"./Scrollbar-BUURfLNv.js";import{i as F,s as ie}from"./ui-CXICC9ah.js";import{i as ae,m as I,n as L,t as R}from"./Suffix-CV0EsaP5.js";import{t as z}from"./use-merged-state-CIQwNmUb.js";import{t as oe}from"./use-compitable-BLe2cDdc.js";import{t as B}from"./Popover-BjLYiaCj.js";import{r as se}from"./keep-DYskFqGA.js";import{c as V}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{n as H}from"./use-form-item-CNQ45NOh.js";import{E as U,I as W,ft as ce,it as le,lt as G,nt as K}from"./index-cNEa5D1b.js";var q=`v-hidden`,ue=T(`[v-hidden]`,{display:`none!important`}),J=e({name:`Overflow`,props:{getCounter:Function,getTail:Function,updateCounter:Function,onUpdateCount:Function,onUpdateOverflow:Function},setup(e,{slots:n}){let r=y(null),i=y(null);function o(t){let{value:a}=r,{getCounter:o,getTail:s}=e,c;if(c=o===void 0?i.value:o(),!a||!c)return;c.hasAttribute(q)&&c.removeAttribute(q);let{children:l}=a;if(t.showAllItemsBeforeCalculate)for(let e of l)e.hasAttribute(q)&&e.removeAttribute(q);let u=a.offsetWidth,d=[],f=n.tail?s?.():null,p=f?f.offsetWidth:0,m=!1,h=a.children.length-+!!n.tail;for(let t=0;tu){let{updateCounter:n}=e;for(let r=t;r>=0;--r){let i=h-1-r;n===void 0?c.textContent=`${i}`:n(i);let a=c.offsetWidth;if(p-=d[r],p+a<=u||r===0){m=!0,t=r-1,f&&(t===-1?(f.style.maxWidth=`${u-a}px`,f.style.boxSizing=`border-box`):f.style.maxWidth=``);let{onUpdateCount:n}=e;n&&n(i);break}}}}let{onUpdateOverflow:g}=e;m?g!==void 0&&g(!0):(g!==void 0&&g(!1),c.setAttribute(q,``))}let s=a();return ue.mount({id:`vueuc/overflow`,head:!0,anchorMetaName:D,ssr:s}),t(()=>o({showAllItemsBeforeCalculate:!1})),{selfRef:r,counterRef:i,sync:o}},render(){let{$slots:e}=this;return S(()=>this.sync({showAllItemsBeforeCalculate:!1})),n(`div`,{class:`v-overflow`,ref:`selfRef`},[o(e,`default`),e.counter?e.counter():n(`span`,{style:{display:`inline-block`},ref:`counterRef`}),e.tail?e.tail():null])}});function Y(e){switch(typeof e){case`string`:return e||void 0;case`number`:return String(e);default:return}}var de=h([_(`base-selection`,` +import{At as e,Gt as t,Nt as n,U as r,W as i,Y as a,Zt as o,_ as s,an as c,at as l,cn as u,ct as d,gt as f,in as p,m,nt as h,ot as g,rt as _,st as v,vn as y,xn as b,xt as x,zt as S}from"./client-DrrW410h.js";import{a as C,i as w,n as T,o as E,r as D,t as O}from"./Follower-D4pTNocL.js";import{a as k,d as A,i as j,l as M,n as ee,r as N,s as te,t as ne}from"./utils-BwK8vCu4.js";import{l as re,r as P}from"./Scrollbar-DGnXZ64x.js";import{i as F,s as ie}from"./ui-BXphkCO3.js";import{i as ae,m as I,n as L,t as R}from"./Suffix-1hsPP30m.js";import{t as z}from"./use-merged-state-CIQwNmUb.js";import{t as oe}from"./use-compitable-BLe2cDdc.js";import{t as B}from"./Popover-DoBIZ3BA.js";import{r as se}from"./keep-CyT4Sxsq.js";import{c as V}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{n as H}from"./use-form-item-CNQ45NOh.js";import{E as U,I as W,ft as ce,it as le,lt as G,nt as K}from"./index-CvfVA1ID.js";var q=`v-hidden`,ue=T(`[v-hidden]`,{display:`none!important`}),J=e({name:`Overflow`,props:{getCounter:Function,getTail:Function,updateCounter:Function,onUpdateCount:Function,onUpdateOverflow:Function},setup(e,{slots:n}){let r=y(null),i=y(null);function o(t){let{value:a}=r,{getCounter:o,getTail:s}=e,c;if(c=o===void 0?i.value:o(),!a||!c)return;c.hasAttribute(q)&&c.removeAttribute(q);let{children:l}=a;if(t.showAllItemsBeforeCalculate)for(let e of l)e.hasAttribute(q)&&e.removeAttribute(q);let u=a.offsetWidth,d=[],f=n.tail?s?.():null,p=f?f.offsetWidth:0,m=!1,h=a.children.length-+!!n.tail;for(let t=0;tu){let{updateCounter:n}=e;for(let r=t;r>=0;--r){let i=h-1-r;n===void 0?c.textContent=`${i}`:n(i);let a=c.offsetWidth;if(p-=d[r],p+a<=u||r===0){m=!0,t=r-1,f&&(t===-1?(f.style.maxWidth=`${u-a}px`,f.style.boxSizing=`border-box`):f.style.maxWidth=``);let{onUpdateCount:n}=e;n&&n(i);break}}}}let{onUpdateOverflow:g}=e;m?g!==void 0&&g(!0):(g!==void 0&&g(!1),c.setAttribute(q,``))}let s=a();return ue.mount({id:`vueuc/overflow`,head:!0,anchorMetaName:D,ssr:s}),t(()=>o({showAllItemsBeforeCalculate:!1})),{selfRef:r,counterRef:i,sync:o}},render(){let{$slots:e}=this;return S(()=>this.sync({showAllItemsBeforeCalculate:!1})),n(`div`,{class:`v-overflow`,ref:`selfRef`},[o(e,`default`),e.counter?e.counter():n(`span`,{style:{display:`inline-block`},ref:`counterRef`}),e.tail?e.tail():null])}});function Y(e){switch(typeof e){case`string`:return e||void 0;case`number`:return String(e);default:return}}var de=h([_(`base-selection`,` --n-padding-single: var(--n-padding-single-top) var(--n-padding-single-right) var(--n-padding-single-bottom) var(--n-padding-single-left); --n-padding-multiple: var(--n-padding-multiple-top) var(--n-padding-multiple-right) var(--n-padding-multiple-bottom) var(--n-padding-multiple-left); position: relative; diff --git a/frontend/dist/assets/Space-CbidFwig.js b/frontend/dist/assets/Space-J-gv2y5L.js similarity index 92% rename from frontend/dist/assets/Space-CbidFwig.js rename to frontend/dist/assets/Space-J-gv2y5L.js index 9635249..976b0de 100644 --- a/frontend/dist/assets/Space-CbidFwig.js +++ b/frontend/dist/assets/Space-J-gv2y5L.js @@ -1 +1 @@ -import{At as e,Nt as t,W as n,_ as r,ct as i,ht as a,m as o,xt as s}from"./client-DrrW410h.js";import{a as c,o as l}from"./ui-CXICC9ah.js";import{a as u}from"./Button-BZxcJJGv.js";import{t as d}from"./flatten-C6dhMlvE.js";import{t as f}from"./get-slot-6kXJmSMP.js";import{v as p}from"./index-cNEa5D1b.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:a,mergedComponentPropsRef:u}=n(e),d=s(()=>e.size||u?.value?.Space?.size||`medium`),f=o(`Space`,`-space`,void 0,h,e,t),p=r(`Space`,a,t);return{useGap:_(),rtlEnabled:p,mergedClsPrefix:t,margin:s(()=>{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:n,align:r,inline:i,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 t(`div`,{role:`none`,class:[`${p}-space`,m&&`${p}-space--rtl`],style:{display:i?`inline-flex`:`flex`,flexDirection:e&&!n?`column`:e&&n?`column-reverse`:!e&&n?`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:r,gap:h?`${l.vertical}px ${l.horizontal}px`:``}},!g&&(h||_)?v:v.map((n,r)=>n.type===a?n:t(`div`,{role:`none`,class:s,style:[c,{maxWidth:`100%`},h?``:e?{marginBottom:r===C?``:x}:m?{marginLeft:w?o===`space-between`&&r===C?``:b:r===C?``:y,marginRight:w?o===`space-between`&&r===0?``:b:``,paddingTop:S,paddingBottom:S}:{marginRight:w?o===`space-between`&&r===C?``:b:r===C?``:y,marginLeft:w?o===`space-between`&&r===0?``:b:``,paddingTop:S,paddingBottom:S}]},n)))}});export{v as t}; \ No newline at end of file +import{At as e,Nt as t,W as n,_ as r,ct as i,ht as a,m as o,xt as s}from"./client-DrrW410h.js";import{a as c,o as l}from"./ui-BXphkCO3.js";import{a as u}from"./Button-VP0HlDWp.js";import{t as d}from"./flatten-C6dhMlvE.js";import{t as f}from"./get-slot-6kXJmSMP.js";import{v as p}from"./index-CvfVA1ID.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:a,mergedComponentPropsRef:u}=n(e),d=s(()=>e.size||u?.value?.Space?.size||`medium`),f=o(`Space`,`-space`,void 0,h,e,t),p=r(`Space`,a,t);return{useGap:_(),rtlEnabled:p,mergedClsPrefix:t,margin:s(()=>{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:n,align:r,inline:i,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 t(`div`,{role:`none`,class:[`${p}-space`,m&&`${p}-space--rtl`],style:{display:i?`inline-flex`:`flex`,flexDirection:e&&!n?`column`:e&&n?`column-reverse`:!e&&n?`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:r,gap:h?`${l.vertical}px ${l.horizontal}px`:``}},!g&&(h||_)?v:v.map((n,r)=>n.type===a?n:t(`div`,{role:`none`,class:s,style:[c,{maxWidth:`100%`},h?``:e?{marginBottom:r===C?``:x}:m?{marginLeft:w?o===`space-between`&&r===C?``:b:r===C?``:y,marginRight:w?o===`space-between`&&r===0?``:b:``,paddingTop:S,paddingBottom:S}:{marginRight:w?o===`space-between`&&r===C?``:b:r===C?``:y,marginLeft:w?o===`space-between`&&r===0?``:b:``,paddingTop:S,paddingBottom:S}]},n)))}});export{v as t}; \ No newline at end of file diff --git a/frontend/dist/assets/Spin-D1uP99th.js b/frontend/dist/assets/Spin-v_Oo9RkU.js similarity index 96% rename from frontend/dist/assets/Spin-D1uP99th.js rename to frontend/dist/assets/Spin-v_Oo9RkU.js index 1a86f31..c792dbc 100644 --- a/frontend/dist/assets/Spin-D1uP99th.js +++ b/frontend/dist/assets/Spin-v_Oo9RkU.js @@ -1,4 +1,4 @@ -import{At as e,Nt as t,U as n,W as r,an as i,ct as a,m as o,nt as s,ot as c,rt as l,vn as u,xt as d}from"./client-DrrW410h.js";import{c as f}from"./ui-CXICC9ah.js";import{t as p}from"./use-compitable-BLe2cDdc.js";import{t as m}from"./fade-in.cssr-DIQ8XvO3.js";import{H as h,V as g,f as _,lt as v}from"./index-cNEa5D1b.js";var y=s([s(`@keyframes spin-rotate`,` +import{At as e,Nt as t,U as n,W as r,an as i,ct as a,m as o,nt as s,ot as c,rt as l,vn as u,xt as d}from"./client-DrrW410h.js";import{c as f}from"./ui-BXphkCO3.js";import{t as p}from"./use-compitable-BLe2cDdc.js";import{t as m}from"./fade-in.cssr-DIQ8XvO3.js";import{H as h,V as g,f as _,lt as v}from"./index-CvfVA1ID.js";var y=s([s(`@keyframes spin-rotate`,` from { transform: rotate(0); } diff --git a/frontend/dist/assets/Suffix-CV0EsaP5.js b/frontend/dist/assets/Suffix-1hsPP30m.js similarity index 99% rename from frontend/dist/assets/Suffix-CV0EsaP5.js rename to frontend/dist/assets/Suffix-1hsPP30m.js index c864228..3183e3d 100644 --- a/frontend/dist/assets/Suffix-CV0EsaP5.js +++ b/frontend/dist/assets/Suffix-1hsPP30m.js @@ -1,4 +1,4 @@ -import{At as e,Ft as t,G as n,J as r,Nt as i,Ot as a,X as o,_n as s,_t as c,at as l,g as u,gt as d,h as f,ht as ee,in as p,jt as m,nt as h,rt as g,vn as _,xn as v,xt as y}from"./client-DrrW410h.js";import{c as b,s as x}from"./Scrollbar-BUURfLNv.js";import{i as S}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as C}from"./flatten-C6dhMlvE.js";import{G as te,Q as w,V as T,X as E,Z as ne}from"./index-cNEa5D1b.js";function D(e){let t=_(!!e.value);if(t.value)return s(t);let n=p(e,e=>{e&&(t.value=!0,n())});return s(t)}function re(){return m()!==null}var ie=typeof window<`u`,ae=o(`n-drawer-body`);o(`n-drawer`);var O=o(`n-modal-body`),k=o(`n-modal-provider`),A=o(`n-modal`),j=o(`n-popover-body`);function M(e,t,n=`default`){let r=t[n];if(r===void 0)throw Error(`[vueuc/${e}]: slot[${n}] is empty.`);return r()}function N(e,t=!0,n=[]){return e.forEach(e=>{if(e!==null){if(typeof e!=`object`){(typeof e==`string`||typeof e==`number`)&&n.push(a(String(e)));return}if(Array.isArray(e)){N(e,t,n);return}if(e.type===d){if(e.children===null)return;Array.isArray(e.children)&&N(e.children,t,n)}else e.type!==ee&&n.push(e)}}),n}function P(e,t,n=`default`){let r=t[n];if(r===void 0)throw Error(`[vueuc/${e}]: slot[${n}] is empty.`);let i=N(r());if(i.length===1)return i[0];throw Error(`[vueuc/${e}]: slot[${n}] should have exactly one child.`)}var F=`@@coContext`,I={mounted(e,{value:t,modifiers:n}){e[F]={handler:void 0},typeof t==`function`&&(e[F].handler=t,b(`clickoutside`,e,t,{capture:n.capture}))},updated(e,{value:t,modifiers:n}){let r=e[F];typeof t==`function`?r.handler?r.handler!==t&&(x(`clickoutside`,e,r.handler,{capture:n.capture}),r.handler=t,b(`clickoutside`,e,t,{capture:n.capture})):(e[F].handler=t,b(`clickoutside`,e,t,{capture:n.capture})):r.handler&&=(x(`clickoutside`,e,r.handler,{capture:n.capture}),void 0)},unmounted(e,{modifiers:t}){let{handler:n}=e[F];n&&x(`clickoutside`,e,n,{capture:t.capture}),e[F].handler=void 0}};function L(e,t){console.error(`[vdirs/${e}]: ${t}`)}var R=new class{constructor(){this.elementZIndex=new Map,this.nextZIndex=2e3}get elementCount(){return this.elementZIndex.size}ensureZIndex(e,t){let{elementZIndex:n}=this;if(t!==void 0){e.style.zIndex=`${t}`,n.delete(e);return}let{nextZIndex:r}=this;n.has(e)&&n.get(e)+1===this.nextZIndex||(e.style.zIndex=`${r}`,n.set(e,r),this.nextZIndex=r+1,this.squashState())}unregister(e,t){let{elementZIndex:n}=this;n.has(e)?n.delete(e):t===void 0&&L(`z-index-manager/unregister-element`,`Element not found when unregistering.`),this.squashState()}squashState(){let{elementCount:e}=this;e||(this.nextZIndex=2e3),this.nextZIndex-e>2500&&this.rearrange()}rearrange(){let e=Array.from(this.elementZIndex.entries());e.sort((e,t)=>e[1]-t[1]),this.nextZIndex=2e3,e.forEach(e=>{let t=e[0],n=this.nextZIndex++;`${n}`!==t.style.zIndex&&(t.style.zIndex=`${n}`)})}},z=`@@ziContext`,B={mounted(e,t){let{value:n={}}=t,{zIndex:r,enabled:i}=n;e[z]={enabled:!!i,initialized:!1},i&&(R.ensureZIndex(e,r),e[z].initialized=!0)},updated(e,t){let{value:n={}}=t,{zIndex:r,enabled:i}=n,a=e[z].enabled;i&&!a&&(R.ensureZIndex(e,r),e[z].initialized=!0),e[z].enabled=!!i},unmounted(e,t){if(!e[z].initialized)return;let{value:n={}}=t,{zIndex:r}=n;R.unregister(e,r)}},V=e({name:`LazyTeleport`,props:{to:{type:[String,Object],default:void 0},disabled:Boolean,show:{type:Boolean,required:!0}},setup(e){return{showTeleport:D(v(e,`show`)),mergedTo:y(()=>{let{to:t}=e;return t??`body`})}},render(){return this.showTeleport?this.disabled?M(`lazy-teleport`,this.$slots):i(c,{disabled:this.disabled,to:this.mergedTo},M(`lazy-teleport`,this.$slots)):null}});function H(e,t=`default`,n=void 0){let i=e[t];if(!i)return r(`getFirstSlotVNode`,`slot[${t}] is empty`),null;let a=C(i(n));return a.length===1?a[0]:(r(`getFirstSlotVNode`,`slot[${t}] should have exactly one child`),null)}function U(e,t,n){if(!t)return null;let i=C(t(n));return i.length===1?i[0]:(r(`getFirstSlotVNode`,`slot[${e}] should have exactly one child`),null)}var W={name:`en-US`,global:{undo:`Undo`,redo:`Redo`,confirm:`Confirm`,clear:`Clear`},Popconfirm:{positiveText:`Confirm`,negativeText:`Cancel`},Cascader:{placeholder:`Please Select`,loading:`Loading`,loadingRequiredMessage:e=>`Please load all ${e}'s descendants before checking it.`},Time:{dateFormat:`yyyy-MM-dd`,dateTimeFormat:`yyyy-MM-dd HH:mm:ss`},DatePicker:{yearFormat:`yyyy`,monthFormat:`MMM`,dayFormat:`eeeeee`,yearTypeFormat:`yyyy`,monthTypeFormat:`yyyy-MM`,dateFormat:`yyyy-MM-dd`,dateTimeFormat:`yyyy-MM-dd HH:mm:ss`,quarterFormat:`yyyy-qqq`,weekFormat:`YYYY-w`,clear:`Clear`,now:`Now`,confirm:`Confirm`,selectTime:`Select Time`,selectDate:`Select Date`,datePlaceholder:`Select Date`,datetimePlaceholder:`Select Date and Time`,monthPlaceholder:`Select Month`,yearPlaceholder:`Select Year`,quarterPlaceholder:`Select Quarter`,weekPlaceholder:`Select Week`,startDatePlaceholder:`Start Date`,endDatePlaceholder:`End Date`,startDatetimePlaceholder:`Start Date and Time`,endDatetimePlaceholder:`End Date and Time`,startMonthPlaceholder:`Start Month`,endMonthPlaceholder:`End Month`,monthBeforeYear:!0,firstDayOfWeek:6,today:`Today`},DataTable:{checkTableAll:`Select all in the table`,uncheckTableAll:`Unselect all in the table`,confirm:`Confirm`,clear:`Clear`},LegacyTransfer:{sourceTitle:`Source`,targetTitle:`Target`},Transfer:{selectAll:`Select all`,unselectAll:`Unselect all`,clearAll:`Clear`,total:e=>`Total ${e} items`,selected:e=>`${e} items selected`},Empty:{description:`No Data`},Select:{placeholder:`Please Select`},TimePicker:{placeholder:`Select Time`,positiveText:`OK`,negativeText:`Cancel`,now:`Now`,clear:`Clear`},Pagination:{goto:`Goto`,selectionSuffix:`page`},DynamicTags:{add:`Add`},Log:{loading:`Loading`},Input:{placeholder:`Please Input`},InputNumber:{placeholder:`Please Input`},DynamicInput:{create:`Create`},ThemeEditor:{title:`Theme Editor`,clearAllVars:`Clear All Variables`,clearSearch:`Clear Search`,filterCompName:`Filter Component Name`,filterVarName:`Filter Variable Name`,import:`Import`,export:`Export`,restore:`Reset to Default`},Image:{tipPrevious:`Previous picture (←)`,tipNext:`Next picture (→)`,tipCounterclockwise:`Counterclockwise`,tipClockwise:`Clockwise`,tipZoomOut:`Zoom out`,tipZoomIn:`Zoom in`,tipDownload:`Download`,tipClose:`Close (Esc)`,tipOriginalSize:`Zoom to original size`},Heatmap:{less:`less`,more:`more`,monthFormat:`MMM`,weekdayFormat:`eee`}};function G(e){return(t={})=>{let n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}function K(e){return(t,n)=>{let r=n?.context?String(n.context):`standalone`,i;if(r===`formatting`&&e.formattingValues){let t=e.defaultFormattingWidth||e.defaultWidth,r=n?.width?String(n.width):t;i=e.formattingValues[r]||e.formattingValues[t]}else{let t=e.defaultWidth,r=n?.width?String(n.width):e.defaultWidth;i=e.values[r]||e.values[t]}let a=e.argumentCallback?e.argumentCallback(t):t;return i[a]}}function q(e){return(t,n={})=>{let r=n.width,i=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],a=t.match(i);if(!a)return null;let o=a[0],s=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(s)?se(s,e=>e.test(o)):oe(s,e=>e.test(o)),l;l=e.valueCallback?e.valueCallback(c):c,l=n.valueCallback?n.valueCallback(l):l;let u=t.slice(o.length);return{value:l,rest:u}}}function oe(e,t){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function se(e,t){for(let n=0;n{let r=t.match(e.matchPattern);if(!r)return null;let i=r[0],a=t.match(e.parsePattern);if(!a)return null;let o=e.valueCallback?e.valueCallback(a[0]):a[0];o=n.valueCallback?n.valueCallback(o):o;let s=t.slice(i.length);return{value:o,rest:s}}}var ce={lessThanXSeconds:{one:`less than a second`,other:`less than {{count}} seconds`},xSeconds:{one:`1 second`,other:`{{count}} seconds`},halfAMinute:`half a minute`,lessThanXMinutes:{one:`less than a minute`,other:`less than {{count}} minutes`},xMinutes:{one:`1 minute`,other:`{{count}} minutes`},aboutXHours:{one:`about 1 hour`,other:`about {{count}} hours`},xHours:{one:`1 hour`,other:`{{count}} hours`},xDays:{one:`1 day`,other:`{{count}} days`},aboutXWeeks:{one:`about 1 week`,other:`about {{count}} weeks`},xWeeks:{one:`1 week`,other:`{{count}} weeks`},aboutXMonths:{one:`about 1 month`,other:`about {{count}} months`},xMonths:{one:`1 month`,other:`{{count}} months`},aboutXYears:{one:`about 1 year`,other:`about {{count}} years`},xYears:{one:`1 year`,other:`{{count}} years`},overXYears:{one:`over 1 year`,other:`over {{count}} years`},almostXYears:{one:`almost 1 year`,other:`almost {{count}} years`}},le=(e,t,n)=>{let r,i=ce[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?`in `+r:r+` ago`:r},ue={lastWeek:`'last' eeee 'at' p`,yesterday:`'yesterday at' p`,today:`'today at' p`,tomorrow:`'tomorrow at' p`,nextWeek:`eeee 'at' p`,other:`P`},de=(e,t,n,r)=>ue[e],fe={ordinalNumber:(e,t)=>{let n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+`st`;case 2:return n+`nd`;case 3:return n+`rd`}return n+`th`},era:K({values:{narrow:[`B`,`A`],abbreviated:[`BC`,`AD`],wide:[`Before Christ`,`Anno Domini`]},defaultWidth:`wide`}),quarter:K({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`Q1`,`Q2`,`Q3`,`Q4`],wide:[`1st quarter`,`2nd quarter`,`3rd quarter`,`4th quarter`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:K({values:{narrow:[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`],abbreviated:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],wide:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`]},defaultWidth:`wide`}),day:K({values:{narrow:[`S`,`M`,`T`,`W`,`T`,`F`,`S`],short:[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`],abbreviated:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],wide:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`]},defaultWidth:`wide`}),dayPeriod:K({values:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`}},defaultFormattingWidth:`wide`})},pe={ordinalNumber:J({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:q({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:`any`}),quarter:q({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:q({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:`any`}),day:q({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:`any`}),dayPeriod:q({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:`any`})},Y={code:`en-US`,formatDistance:le,formatLong:{date:G({formats:{full:`EEEE, MMMM do, y`,long:`MMMM do, y`,medium:`MMM d, y`,short:`MM/dd/yyyy`},defaultWidth:`full`}),time:G({formats:{full:`h:mm:ss a zzzz`,long:`h:mm:ss a z`,medium:`h:mm:ss a`,short:`h:mm a`},defaultWidth:`full`}),dateTime:G({formats:{full:`{{date}} 'at' {{time}}`,long:`{{date}} 'at' {{time}}`,medium:`{{date}}, {{time}}`,short:`{{date}}, {{time}}`},defaultWidth:`full`})},formatRelative:de,localize:fe,match:pe,options:{weekStartsOn:0,firstWeekContainsDate:1}},me={name:`en-US`,locale:Y};function X(e){let{mergedLocaleRef:r,mergedDateLocaleRef:i}=t(n,null)||{},a=y(()=>r?.value?.[e]??W[e]);return{dateLocaleRef:y(()=>i?.value??me),localeRef:a}}var he=e({name:`ChevronDown`,render(){return i(`svg`,{viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},i(`path`,{d:`M3.14645 5.64645C3.34171 5.45118 3.65829 5.45118 3.85355 5.64645L8 9.79289L12.1464 5.64645C12.3417 5.45118 12.6583 5.45118 12.8536 5.64645C13.0488 5.84171 13.0488 6.15829 12.8536 6.35355L8.35355 10.8536C8.15829 11.0488 7.84171 11.0488 7.64645 10.8536L3.14645 6.35355C2.95118 6.15829 2.95118 5.84171 3.14645 5.64645Z`,fill:`currentColor`}))}}),ge=E(`clear`,()=>i(`svg`,{viewBox:`0 0 16 16`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`},i(`g`,{stroke:`none`,"stroke-width":`1`,fill:`none`,"fill-rule":`evenodd`},i(`g`,{fill:`currentColor`,"fill-rule":`nonzero`},i(`path`,{d:`M8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 C2,4.6862915 4.6862915,2 8,2 Z M6.5343055,5.83859116 C6.33943736,5.70359511 6.07001296,5.72288026 5.89644661,5.89644661 L5.89644661,5.89644661 L5.83859116,5.9656945 C5.70359511,6.16056264 5.72288026,6.42998704 5.89644661,6.60355339 L5.89644661,6.60355339 L7.293,8 L5.89644661,9.39644661 L5.83859116,9.4656945 C5.70359511,9.66056264 5.72288026,9.92998704 5.89644661,10.1035534 L5.89644661,10.1035534 L5.9656945,10.1614088 C6.16056264,10.2964049 6.42998704,10.2771197 6.60355339,10.1035534 L6.60355339,10.1035534 L8,8.707 L9.39644661,10.1035534 L9.4656945,10.1614088 C9.66056264,10.2964049 9.92998704,10.2771197 10.1035534,10.1035534 L10.1035534,10.1035534 L10.1614088,10.0343055 C10.2964049,9.83943736 10.2771197,9.57001296 10.1035534,9.39644661 L10.1035534,9.39644661 L8.707,8 L10.1035534,6.60355339 L10.1614088,6.5343055 C10.2964049,6.33943736 10.2771197,6.07001296 10.1035534,5.89644661 L10.1035534,5.89644661 L10.0343055,5.83859116 C9.83943736,5.70359511 9.57001296,5.72288026 9.39644661,5.89644661 L9.39644661,5.89644661 L8,7.293 L6.60355339,5.89644661 Z`}))))),_e=g(`base-clear`,` +import{At as e,Ft as t,G as n,J as r,Nt as i,Ot as a,X as o,_n as s,_t as c,at as l,g as u,gt as d,h as f,ht as ee,in as p,jt as m,nt as h,rt as g,vn as _,xn as v,xt as y}from"./client-DrrW410h.js";import{c as b,s as x}from"./Scrollbar-DGnXZ64x.js";import{i as S}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as C}from"./flatten-C6dhMlvE.js";import{G as te,Q as w,V as T,X as E,Z as ne}from"./index-CvfVA1ID.js";function D(e){let t=_(!!e.value);if(t.value)return s(t);let n=p(e,e=>{e&&(t.value=!0,n())});return s(t)}function re(){return m()!==null}var ie=typeof window<`u`,ae=o(`n-drawer-body`);o(`n-drawer`);var O=o(`n-modal-body`),k=o(`n-modal-provider`),A=o(`n-modal`),j=o(`n-popover-body`);function M(e,t,n=`default`){let r=t[n];if(r===void 0)throw Error(`[vueuc/${e}]: slot[${n}] is empty.`);return r()}function N(e,t=!0,n=[]){return e.forEach(e=>{if(e!==null){if(typeof e!=`object`){(typeof e==`string`||typeof e==`number`)&&n.push(a(String(e)));return}if(Array.isArray(e)){N(e,t,n);return}if(e.type===d){if(e.children===null)return;Array.isArray(e.children)&&N(e.children,t,n)}else e.type!==ee&&n.push(e)}}),n}function P(e,t,n=`default`){let r=t[n];if(r===void 0)throw Error(`[vueuc/${e}]: slot[${n}] is empty.`);let i=N(r());if(i.length===1)return i[0];throw Error(`[vueuc/${e}]: slot[${n}] should have exactly one child.`)}var F=`@@coContext`,I={mounted(e,{value:t,modifiers:n}){e[F]={handler:void 0},typeof t==`function`&&(e[F].handler=t,b(`clickoutside`,e,t,{capture:n.capture}))},updated(e,{value:t,modifiers:n}){let r=e[F];typeof t==`function`?r.handler?r.handler!==t&&(x(`clickoutside`,e,r.handler,{capture:n.capture}),r.handler=t,b(`clickoutside`,e,t,{capture:n.capture})):(e[F].handler=t,b(`clickoutside`,e,t,{capture:n.capture})):r.handler&&=(x(`clickoutside`,e,r.handler,{capture:n.capture}),void 0)},unmounted(e,{modifiers:t}){let{handler:n}=e[F];n&&x(`clickoutside`,e,n,{capture:t.capture}),e[F].handler=void 0}};function L(e,t){console.error(`[vdirs/${e}]: ${t}`)}var R=new class{constructor(){this.elementZIndex=new Map,this.nextZIndex=2e3}get elementCount(){return this.elementZIndex.size}ensureZIndex(e,t){let{elementZIndex:n}=this;if(t!==void 0){e.style.zIndex=`${t}`,n.delete(e);return}let{nextZIndex:r}=this;n.has(e)&&n.get(e)+1===this.nextZIndex||(e.style.zIndex=`${r}`,n.set(e,r),this.nextZIndex=r+1,this.squashState())}unregister(e,t){let{elementZIndex:n}=this;n.has(e)?n.delete(e):t===void 0&&L(`z-index-manager/unregister-element`,`Element not found when unregistering.`),this.squashState()}squashState(){let{elementCount:e}=this;e||(this.nextZIndex=2e3),this.nextZIndex-e>2500&&this.rearrange()}rearrange(){let e=Array.from(this.elementZIndex.entries());e.sort((e,t)=>e[1]-t[1]),this.nextZIndex=2e3,e.forEach(e=>{let t=e[0],n=this.nextZIndex++;`${n}`!==t.style.zIndex&&(t.style.zIndex=`${n}`)})}},z=`@@ziContext`,B={mounted(e,t){let{value:n={}}=t,{zIndex:r,enabled:i}=n;e[z]={enabled:!!i,initialized:!1},i&&(R.ensureZIndex(e,r),e[z].initialized=!0)},updated(e,t){let{value:n={}}=t,{zIndex:r,enabled:i}=n,a=e[z].enabled;i&&!a&&(R.ensureZIndex(e,r),e[z].initialized=!0),e[z].enabled=!!i},unmounted(e,t){if(!e[z].initialized)return;let{value:n={}}=t,{zIndex:r}=n;R.unregister(e,r)}},V=e({name:`LazyTeleport`,props:{to:{type:[String,Object],default:void 0},disabled:Boolean,show:{type:Boolean,required:!0}},setup(e){return{showTeleport:D(v(e,`show`)),mergedTo:y(()=>{let{to:t}=e;return t??`body`})}},render(){return this.showTeleport?this.disabled?M(`lazy-teleport`,this.$slots):i(c,{disabled:this.disabled,to:this.mergedTo},M(`lazy-teleport`,this.$slots)):null}});function H(e,t=`default`,n=void 0){let i=e[t];if(!i)return r(`getFirstSlotVNode`,`slot[${t}] is empty`),null;let a=C(i(n));return a.length===1?a[0]:(r(`getFirstSlotVNode`,`slot[${t}] should have exactly one child`),null)}function U(e,t,n){if(!t)return null;let i=C(t(n));return i.length===1?i[0]:(r(`getFirstSlotVNode`,`slot[${e}] should have exactly one child`),null)}var W={name:`en-US`,global:{undo:`Undo`,redo:`Redo`,confirm:`Confirm`,clear:`Clear`},Popconfirm:{positiveText:`Confirm`,negativeText:`Cancel`},Cascader:{placeholder:`Please Select`,loading:`Loading`,loadingRequiredMessage:e=>`Please load all ${e}'s descendants before checking it.`},Time:{dateFormat:`yyyy-MM-dd`,dateTimeFormat:`yyyy-MM-dd HH:mm:ss`},DatePicker:{yearFormat:`yyyy`,monthFormat:`MMM`,dayFormat:`eeeeee`,yearTypeFormat:`yyyy`,monthTypeFormat:`yyyy-MM`,dateFormat:`yyyy-MM-dd`,dateTimeFormat:`yyyy-MM-dd HH:mm:ss`,quarterFormat:`yyyy-qqq`,weekFormat:`YYYY-w`,clear:`Clear`,now:`Now`,confirm:`Confirm`,selectTime:`Select Time`,selectDate:`Select Date`,datePlaceholder:`Select Date`,datetimePlaceholder:`Select Date and Time`,monthPlaceholder:`Select Month`,yearPlaceholder:`Select Year`,quarterPlaceholder:`Select Quarter`,weekPlaceholder:`Select Week`,startDatePlaceholder:`Start Date`,endDatePlaceholder:`End Date`,startDatetimePlaceholder:`Start Date and Time`,endDatetimePlaceholder:`End Date and Time`,startMonthPlaceholder:`Start Month`,endMonthPlaceholder:`End Month`,monthBeforeYear:!0,firstDayOfWeek:6,today:`Today`},DataTable:{checkTableAll:`Select all in the table`,uncheckTableAll:`Unselect all in the table`,confirm:`Confirm`,clear:`Clear`},LegacyTransfer:{sourceTitle:`Source`,targetTitle:`Target`},Transfer:{selectAll:`Select all`,unselectAll:`Unselect all`,clearAll:`Clear`,total:e=>`Total ${e} items`,selected:e=>`${e} items selected`},Empty:{description:`No Data`},Select:{placeholder:`Please Select`},TimePicker:{placeholder:`Select Time`,positiveText:`OK`,negativeText:`Cancel`,now:`Now`,clear:`Clear`},Pagination:{goto:`Goto`,selectionSuffix:`page`},DynamicTags:{add:`Add`},Log:{loading:`Loading`},Input:{placeholder:`Please Input`},InputNumber:{placeholder:`Please Input`},DynamicInput:{create:`Create`},ThemeEditor:{title:`Theme Editor`,clearAllVars:`Clear All Variables`,clearSearch:`Clear Search`,filterCompName:`Filter Component Name`,filterVarName:`Filter Variable Name`,import:`Import`,export:`Export`,restore:`Reset to Default`},Image:{tipPrevious:`Previous picture (←)`,tipNext:`Next picture (→)`,tipCounterclockwise:`Counterclockwise`,tipClockwise:`Clockwise`,tipZoomOut:`Zoom out`,tipZoomIn:`Zoom in`,tipDownload:`Download`,tipClose:`Close (Esc)`,tipOriginalSize:`Zoom to original size`},Heatmap:{less:`less`,more:`more`,monthFormat:`MMM`,weekdayFormat:`eee`}};function G(e){return(t={})=>{let n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}function K(e){return(t,n)=>{let r=n?.context?String(n.context):`standalone`,i;if(r===`formatting`&&e.formattingValues){let t=e.defaultFormattingWidth||e.defaultWidth,r=n?.width?String(n.width):t;i=e.formattingValues[r]||e.formattingValues[t]}else{let t=e.defaultWidth,r=n?.width?String(n.width):e.defaultWidth;i=e.values[r]||e.values[t]}let a=e.argumentCallback?e.argumentCallback(t):t;return i[a]}}function q(e){return(t,n={})=>{let r=n.width,i=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],a=t.match(i);if(!a)return null;let o=a[0],s=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(s)?se(s,e=>e.test(o)):oe(s,e=>e.test(o)),l;l=e.valueCallback?e.valueCallback(c):c,l=n.valueCallback?n.valueCallback(l):l;let u=t.slice(o.length);return{value:l,rest:u}}}function oe(e,t){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function se(e,t){for(let n=0;n{let r=t.match(e.matchPattern);if(!r)return null;let i=r[0],a=t.match(e.parsePattern);if(!a)return null;let o=e.valueCallback?e.valueCallback(a[0]):a[0];o=n.valueCallback?n.valueCallback(o):o;let s=t.slice(i.length);return{value:o,rest:s}}}var ce={lessThanXSeconds:{one:`less than a second`,other:`less than {{count}} seconds`},xSeconds:{one:`1 second`,other:`{{count}} seconds`},halfAMinute:`half a minute`,lessThanXMinutes:{one:`less than a minute`,other:`less than {{count}} minutes`},xMinutes:{one:`1 minute`,other:`{{count}} minutes`},aboutXHours:{one:`about 1 hour`,other:`about {{count}} hours`},xHours:{one:`1 hour`,other:`{{count}} hours`},xDays:{one:`1 day`,other:`{{count}} days`},aboutXWeeks:{one:`about 1 week`,other:`about {{count}} weeks`},xWeeks:{one:`1 week`,other:`{{count}} weeks`},aboutXMonths:{one:`about 1 month`,other:`about {{count}} months`},xMonths:{one:`1 month`,other:`{{count}} months`},aboutXYears:{one:`about 1 year`,other:`about {{count}} years`},xYears:{one:`1 year`,other:`{{count}} years`},overXYears:{one:`over 1 year`,other:`over {{count}} years`},almostXYears:{one:`almost 1 year`,other:`almost {{count}} years`}},le=(e,t,n)=>{let r,i=ce[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?`in `+r:r+` ago`:r},ue={lastWeek:`'last' eeee 'at' p`,yesterday:`'yesterday at' p`,today:`'today at' p`,tomorrow:`'tomorrow at' p`,nextWeek:`eeee 'at' p`,other:`P`},de=(e,t,n,r)=>ue[e],fe={ordinalNumber:(e,t)=>{let n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+`st`;case 2:return n+`nd`;case 3:return n+`rd`}return n+`th`},era:K({values:{narrow:[`B`,`A`],abbreviated:[`BC`,`AD`],wide:[`Before Christ`,`Anno Domini`]},defaultWidth:`wide`}),quarter:K({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`Q1`,`Q2`,`Q3`,`Q4`],wide:[`1st quarter`,`2nd quarter`,`3rd quarter`,`4th quarter`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:K({values:{narrow:[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`],abbreviated:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],wide:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`]},defaultWidth:`wide`}),day:K({values:{narrow:[`S`,`M`,`T`,`W`,`T`,`F`,`S`],short:[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`],abbreviated:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],wide:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`]},defaultWidth:`wide`}),dayPeriod:K({values:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`}},defaultFormattingWidth:`wide`})},pe={ordinalNumber:J({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:q({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:`any`}),quarter:q({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:q({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:`any`}),day:q({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:`any`}),dayPeriod:q({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:`any`})},Y={code:`en-US`,formatDistance:le,formatLong:{date:G({formats:{full:`EEEE, MMMM do, y`,long:`MMMM do, y`,medium:`MMM d, y`,short:`MM/dd/yyyy`},defaultWidth:`full`}),time:G({formats:{full:`h:mm:ss a zzzz`,long:`h:mm:ss a z`,medium:`h:mm:ss a`,short:`h:mm a`},defaultWidth:`full`}),dateTime:G({formats:{full:`{{date}} 'at' {{time}}`,long:`{{date}} 'at' {{time}}`,medium:`{{date}}, {{time}}`,short:`{{date}}, {{time}}`},defaultWidth:`full`})},formatRelative:de,localize:fe,match:pe,options:{weekStartsOn:0,firstWeekContainsDate:1}},me={name:`en-US`,locale:Y};function X(e){let{mergedLocaleRef:r,mergedDateLocaleRef:i}=t(n,null)||{},a=y(()=>r?.value?.[e]??W[e]);return{dateLocaleRef:y(()=>i?.value??me),localeRef:a}}var he=e({name:`ChevronDown`,render(){return i(`svg`,{viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},i(`path`,{d:`M3.14645 5.64645C3.34171 5.45118 3.65829 5.45118 3.85355 5.64645L8 9.79289L12.1464 5.64645C12.3417 5.45118 12.6583 5.45118 12.8536 5.64645C13.0488 5.84171 13.0488 6.15829 12.8536 6.35355L8.35355 10.8536C8.15829 11.0488 7.84171 11.0488 7.64645 10.8536L3.14645 6.35355C2.95118 6.15829 2.95118 5.84171 3.14645 5.64645Z`,fill:`currentColor`}))}}),ge=E(`clear`,()=>i(`svg`,{viewBox:`0 0 16 16`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`},i(`g`,{stroke:`none`,"stroke-width":`1`,fill:`none`,"fill-rule":`evenodd`},i(`g`,{fill:`currentColor`,"fill-rule":`nonzero`},i(`path`,{d:`M8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 C2,4.6862915 4.6862915,2 8,2 Z M6.5343055,5.83859116 C6.33943736,5.70359511 6.07001296,5.72288026 5.89644661,5.89644661 L5.89644661,5.89644661 L5.83859116,5.9656945 C5.70359511,6.16056264 5.72288026,6.42998704 5.89644661,6.60355339 L5.89644661,6.60355339 L7.293,8 L5.89644661,9.39644661 L5.83859116,9.4656945 C5.70359511,9.66056264 5.72288026,9.92998704 5.89644661,10.1035534 L5.89644661,10.1035534 L5.9656945,10.1614088 C6.16056264,10.2964049 6.42998704,10.2771197 6.60355339,10.1035534 L6.60355339,10.1035534 L8,8.707 L9.39644661,10.1035534 L9.4656945,10.1614088 C9.66056264,10.2964049 9.92998704,10.2771197 10.1035534,10.1035534 L10.1035534,10.1035534 L10.1614088,10.0343055 C10.2964049,9.83943736 10.2771197,9.57001296 10.1035534,9.39644661 L10.1035534,9.39644661 L8.707,8 L10.1035534,6.60355339 L10.1614088,6.5343055 C10.2964049,6.33943736 10.2771197,6.07001296 10.1035534,5.89644661 L10.1035534,5.89644661 L10.0343055,5.83859116 C9.83943736,5.70359511 9.57001296,5.72288026 9.39644661,5.89644661 L9.39644661,5.89644661 L8,7.293 L6.60355339,5.89644661 Z`}))))),_e=g(`base-clear`,` flex-shrink: 0; height: 1em; width: 1em; diff --git a/frontend/dist/assets/Tabs-ChH8xf-T.js b/frontend/dist/assets/Tabs-rQZTTap5.js similarity index 99% rename from frontend/dist/assets/Tabs-ChH8xf-T.js rename to frontend/dist/assets/Tabs-rQZTTap5.js index 789c96c..b1a86de 100644 --- a/frontend/dist/assets/Tabs-ChH8xf-T.js +++ b/frontend/dist/assets/Tabs-rQZTTap5.js @@ -1,4 +1,4 @@ -import{At as e,Ft as t,Gt as n,H as r,L as i,Nt as a,Rt as o,U as s,W as c,X as l,Y as u,Yt as d,an as f,at as p,bt as m,cn as h,ct as g,gt as _,in as v,m as y,nt as b,ot as x,q as S,rt as C,st as w,vn as T,xn as E,xt as D,zt as O}from"./client-DrrW410h.js";import{l as ee,n as k,r as A}from"./Follower-BtPkzZJm.js";import{a as j}from"./Scrollbar-BUURfLNv.js";import{a as te,s as M}from"./ui-CXICC9ah.js";import{t as ne}from"./use-merged-state-CIQwNmUb.js";import{t as re}from"./use-compitable-BLe2cDdc.js";import{c as N,o as P}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as F}from"./flatten-C6dhMlvE.js";import{t as I}from"./Add-CkD1py6k.js";import{Q as ie,W as ae,ft as L,l as oe,nt as R,rt as se,tt as z,ut as B}from"./index-cNEa5D1b.js";var V=k(`.v-x-scroll`,{overflow:`auto`,scrollbarWidth:`none`},[k(`&::-webkit-scrollbar`,{width:0,height:0})]),ce=e({name:`XScroll`,props:{disabled:Boolean,onScroll:Function},setup(){let e=T(null);function t(e){!(e.currentTarget.offsetWidth=t||n<0||f&&r>=o}function v(){var e=J();if(_(e))return y(e);c=setTimeout(v,g(e))}function y(e){return c=void 0,p&&r?m(e):(r=a=void 0,s)}function b(){c!==void 0&&clearTimeout(c),u=0,r=l=a=c=void 0}function x(){return c===void 0?s:y(J())}function S(){var e=J(),n=_(e);if(r=arguments,a=this,l=e,n){if(c===void 0)return h(l);if(f)return clearTimeout(c),c=setTimeout(v,t),m(l)}return c===void 0&&(c=setTimeout(v,t)),s}return S.cancel=b,S.flush=x,S}var ge=`Expected a function`;function _e(e,t,n){var r=!0,a=!0;if(typeof e!=`function`)throw TypeError(ge);return i(n)&&(r=`leading`in n?!!n.leading:r,a=`trailing`in n?!!n.trailing:a),Y(e,t,{leading:r,maxWait:t,trailing:a})}var ve=l(`n-tabs`),ye={tab:[String,Number,Object,Function],name:{type:[String,Number],required:!0},disabled:Boolean,displayDirective:{type:String,default:`if`},closable:{type:Boolean,default:void 0},tabProps:Object,label:[String,Number,Object,Function]},X=e({__TAB_PANE__:!0,name:`TabPane`,alias:[`TabPanel`],props:ye,slots:Object,setup(e){let n=t(ve,null);return n||S(`tab-pane`,"`n-tab-pane` must be placed inside `n-tabs`."),{style:n.paneStyleRef,class:n.paneClassRef,mergedClsPrefix:n.mergedClsPrefixRef}},render(){return a(`div`,{class:[`${this.mergedClsPrefix}-tab-pane`,this.class],style:this.style},this.$slots)}}),Z=e({__TAB__:!0,inheritAttrs:!1,name:`Tab`,props:Object.assign({internalLeftPadded:Boolean,internalAddable:Boolean,internalCreatedByPane:Boolean},se(ye,[`displayDirective`])),setup(e){let{mergedClsPrefixRef:n,valueRef:r,typeRef:i,closableRef:a,tabStyleRef:o,addTabStyleRef:s,tabClassRef:c,addTabClassRef:l,tabChangeIdRef:u,onBeforeLeaveRef:d,triggerRef:f,handleAdd:p,activateTab:m,handleClose:h}=t(ve);return{trigger:f,mergedClosable:D(()=>{if(e.internalAddable)return!1;let{closable:t}=e;return t===void 0?a.value:t}),style:o,addStyle:s,tabClass:c,addTabClass:l,clsPrefix:n,value:r,type:i,handleClose(t){t.stopPropagation(),!e.disabled&&h(e.name)},activateTab(){if(e.disabled)return;if(e.internalAddable){p();return}let{name:t}=e,n=++u.id;if(t!==r.value){let{value:i}=d;i?Promise.resolve(i(e.name,r.value)).then(e=>{e&&u.id===n&&m(t)}):m(t)}}}},render(){let{internalAddable:e,clsPrefix:t,name:n,disabled:r,label:i,tab:s,value:c,mergedClosable:l,trigger:u,$slots:{default:d}}=this,f=i??s;return a(`div`,{class:`${t}-tabs-tab-wrapper`},this.internalLeftPadded?a(`div`,{class:`${t}-tabs-tab-pad`}):null,a(`div`,Object.assign({key:n,"data-name":n,"data-disabled":r?!0:void 0},o({class:[`${t}-tabs-tab`,c===n&&`${t}-tabs-tab--active`,r&&`${t}-tabs-tab--disabled`,l&&`${t}-tabs-tab--closable`,e&&`${t}-tabs-tab--addable`,e?this.addTabClass:this.tabClass],onClick:u===`click`?this.activateTab:void 0,onMouseenter:u===`hover`?this.activateTab:void 0,style:e?this.addStyle:this.style},this.internalCreatedByPane?this.tabProps||{}:this.$attrs)),a(`span`,{class:`${t}-tabs-tab__label`},e?a(_,null,a(`div`,{class:`${t}-tabs-tab__height-placeholder`},`\xA0`),a(ie,{clsPrefix:t},{default:()=>a(I,null)})):d?d():typeof f==`object`?f:R(f??n)),l&&this.type===`card`?a(ae,{clsPrefix:t,class:`${t}-tabs-tab__close`,onClick:this.handleClose,disabled:r}):null))}}),be=C(`tabs`,` +import{At as e,Ft as t,Gt as n,H as r,L as i,Nt as a,Rt as o,U as s,W as c,X as l,Y as u,Yt as d,an as f,at as p,bt as m,cn as h,ct as g,gt as _,in as v,m as y,nt as b,ot as x,q as S,rt as C,st as w,vn as T,xn as E,xt as D,zt as O}from"./client-DrrW410h.js";import{l as ee,n as k,r as A}from"./Follower-D4pTNocL.js";import{a as j}from"./Scrollbar-DGnXZ64x.js";import{a as te,s as M}from"./ui-BXphkCO3.js";import{t as ne}from"./use-merged-state-CIQwNmUb.js";import{t as re}from"./use-compitable-BLe2cDdc.js";import{c as N,o as P}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as F}from"./flatten-C6dhMlvE.js";import{t as I}from"./Add-CkD1py6k.js";import{Q as ie,W as ae,ft as L,l as oe,nt as R,rt as se,tt as z,ut as B}from"./index-CvfVA1ID.js";var V=k(`.v-x-scroll`,{overflow:`auto`,scrollbarWidth:`none`},[k(`&::-webkit-scrollbar`,{width:0,height:0})]),ce=e({name:`XScroll`,props:{disabled:Boolean,onScroll:Function},setup(){let e=T(null);function t(e){!(e.currentTarget.offsetWidth=t||n<0||f&&r>=o}function v(){var e=J();if(_(e))return y(e);c=setTimeout(v,g(e))}function y(e){return c=void 0,p&&r?m(e):(r=a=void 0,s)}function b(){c!==void 0&&clearTimeout(c),u=0,r=l=a=c=void 0}function x(){return c===void 0?s:y(J())}function S(){var e=J(),n=_(e);if(r=arguments,a=this,l=e,n){if(c===void 0)return h(l);if(f)return clearTimeout(c),c=setTimeout(v,t),m(l)}return c===void 0&&(c=setTimeout(v,t)),s}return S.cancel=b,S.flush=x,S}var ge=`Expected a function`;function _e(e,t,n){var r=!0,a=!0;if(typeof e!=`function`)throw TypeError(ge);return i(n)&&(r=`leading`in n?!!n.leading:r,a=`trailing`in n?!!n.trailing:a),Y(e,t,{leading:r,maxWait:t,trailing:a})}var ve=l(`n-tabs`),ye={tab:[String,Number,Object,Function],name:{type:[String,Number],required:!0},disabled:Boolean,displayDirective:{type:String,default:`if`},closable:{type:Boolean,default:void 0},tabProps:Object,label:[String,Number,Object,Function]},X=e({__TAB_PANE__:!0,name:`TabPane`,alias:[`TabPanel`],props:ye,slots:Object,setup(e){let n=t(ve,null);return n||S(`tab-pane`,"`n-tab-pane` must be placed inside `n-tabs`."),{style:n.paneStyleRef,class:n.paneClassRef,mergedClsPrefix:n.mergedClsPrefixRef}},render(){return a(`div`,{class:[`${this.mergedClsPrefix}-tab-pane`,this.class],style:this.style},this.$slots)}}),Z=e({__TAB__:!0,inheritAttrs:!1,name:`Tab`,props:Object.assign({internalLeftPadded:Boolean,internalAddable:Boolean,internalCreatedByPane:Boolean},se(ye,[`displayDirective`])),setup(e){let{mergedClsPrefixRef:n,valueRef:r,typeRef:i,closableRef:a,tabStyleRef:o,addTabStyleRef:s,tabClassRef:c,addTabClassRef:l,tabChangeIdRef:u,onBeforeLeaveRef:d,triggerRef:f,handleAdd:p,activateTab:m,handleClose:h}=t(ve);return{trigger:f,mergedClosable:D(()=>{if(e.internalAddable)return!1;let{closable:t}=e;return t===void 0?a.value:t}),style:o,addStyle:s,tabClass:c,addTabClass:l,clsPrefix:n,value:r,type:i,handleClose(t){t.stopPropagation(),!e.disabled&&h(e.name)},activateTab(){if(e.disabled)return;if(e.internalAddable){p();return}let{name:t}=e,n=++u.id;if(t!==r.value){let{value:i}=d;i?Promise.resolve(i(e.name,r.value)).then(e=>{e&&u.id===n&&m(t)}):m(t)}}}},render(){let{internalAddable:e,clsPrefix:t,name:n,disabled:r,label:i,tab:s,value:c,mergedClosable:l,trigger:u,$slots:{default:d}}=this,f=i??s;return a(`div`,{class:`${t}-tabs-tab-wrapper`},this.internalLeftPadded?a(`div`,{class:`${t}-tabs-tab-pad`}):null,a(`div`,Object.assign({key:n,"data-name":n,"data-disabled":r?!0:void 0},o({class:[`${t}-tabs-tab`,c===n&&`${t}-tabs-tab--active`,r&&`${t}-tabs-tab--disabled`,l&&`${t}-tabs-tab--closable`,e&&`${t}-tabs-tab--addable`,e?this.addTabClass:this.tabClass],onClick:u===`click`?this.activateTab:void 0,onMouseenter:u===`hover`?this.activateTab:void 0,style:e?this.addStyle:this.style},this.internalCreatedByPane?this.tabProps||{}:this.$attrs)),a(`span`,{class:`${t}-tabs-tab__label`},e?a(_,null,a(`div`,{class:`${t}-tabs-tab__height-placeholder`},`\xA0`),a(ie,{clsPrefix:t},{default:()=>a(I,null)})):d?d():typeof f==`object`?f:R(f??n)),l&&this.type===`card`?a(ae,{clsPrefix:t,class:`${t}-tabs-tab__close`,onClick:this.handleClose,disabled:r}):null))}}),be=C(`tabs`,` box-sizing: border-box; width: 100%; display: flex; diff --git a/frontend/dist/assets/TasksView-D7w3BSxr.js b/frontend/dist/assets/TasksView-DASqkTuN.js similarity index 97% rename from frontend/dist/assets/TasksView-D7w3BSxr.js rename to frontend/dist/assets/TasksView-DASqkTuN.js index 0939042..4757009 100644 --- a/frontend/dist/assets/TasksView-D7w3BSxr.js +++ b/frontend/dist/assets/TasksView-DASqkTuN.js @@ -1 +1 @@ -import{At as e,Cn as t,Ct as n,Gt as r,Jt as i,Ot as a,St as o,Tt as s,Vn as c,Xt as l,gn as ee,gt as u,kt as d,sn as f,vn as p,wt as m,xt as h}from"./client-DrrW410h.js";import{o as te}from"./utils-B8DiXMbh.js";import{i as g,r as ne}from"./ui-CXICC9ah.js";import{c as _,l as v,o as y,s as b}from"./Suffix-CV0EsaP5.js";import{t as x}from"./Modal-CUD1N8ld.js";import{n as S,t as re}from"./DatePicker-UeEZr2Ml.js";import{t as C}from"./FormItem-wq05wphK.js";import{t as w}from"./Button-BZxcJJGv.js";import{t as T}from"./Select-D0BL7DpH.js";import{t as E}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as ie}from"./ruRU-GUVPj0Y9.js";import{t as D}from"./Input-Bg8PolMg.js";import{t as O}from"./Alert-CewvQG_z.js";import{t as k}from"./Card-B6dtDIKO.js";import{t as A}from"./Flex-YVOjVK0A.js";import{t as j}from"./Spin-D1uP99th.js";import{D as ae,i as oe,mt as M}from"./index-cNEa5D1b.js";import{t as se}from"./HeaderMenu-BvkSHjS4.js";function N(e,t){if(e.one!==void 0&&t===1)return e.one;let n=t%10,r=t%100;return n===1&&r!==11?e.singularNominative.replace(`{{count}}`,String(t)):n>=2&&n<=4&&(r<10||r>20)?e.singularGenitive.replace(`{{count}}`,String(t)):e.pluralGenitive.replace(`{{count}}`,String(t))}function P(e){return(t,n)=>n?.addSuffix?n.comparison&&n.comparison>0?e.future?N(e.future,t):`через `+N(e.regular,t):e.past?N(e.past,t):N(e.regular,t)+` назад`:N(e.regular,t)}var F={lessThanXSeconds:P({regular:{one:`меньше секунды`,singularNominative:`меньше {{count}} секунды`,singularGenitive:`меньше {{count}} секунд`,pluralGenitive:`меньше {{count}} секунд`},future:{one:`меньше, чем через секунду`,singularNominative:`меньше, чем через {{count}} секунду`,singularGenitive:`меньше, чем через {{count}} секунды`,pluralGenitive:`меньше, чем через {{count}} секунд`}}),xSeconds:P({regular:{singularNominative:`{{count}} секунда`,singularGenitive:`{{count}} секунды`,pluralGenitive:`{{count}} секунд`},past:{singularNominative:`{{count}} секунду назад`,singularGenitive:`{{count}} секунды назад`,pluralGenitive:`{{count}} секунд назад`},future:{singularNominative:`через {{count}} секунду`,singularGenitive:`через {{count}} секунды`,pluralGenitive:`через {{count}} секунд`}}),halfAMinute:(e,t)=>t?.addSuffix?t.comparison&&t.comparison>0?`через полминуты`:`полминуты назад`:`полминуты`,lessThanXMinutes:P({regular:{one:`меньше минуты`,singularNominative:`меньше {{count}} минуты`,singularGenitive:`меньше {{count}} минут`,pluralGenitive:`меньше {{count}} минут`},future:{one:`меньше, чем через минуту`,singularNominative:`меньше, чем через {{count}} минуту`,singularGenitive:`меньше, чем через {{count}} минуты`,pluralGenitive:`меньше, чем через {{count}} минут`}}),xMinutes:P({regular:{singularNominative:`{{count}} минута`,singularGenitive:`{{count}} минуты`,pluralGenitive:`{{count}} минут`},past:{singularNominative:`{{count}} минуту назад`,singularGenitive:`{{count}} минуты назад`,pluralGenitive:`{{count}} минут назад`},future:{singularNominative:`через {{count}} минуту`,singularGenitive:`через {{count}} минуты`,pluralGenitive:`через {{count}} минут`}}),aboutXHours:P({regular:{singularNominative:`около {{count}} часа`,singularGenitive:`около {{count}} часов`,pluralGenitive:`около {{count}} часов`},future:{singularNominative:`приблизительно через {{count}} час`,singularGenitive:`приблизительно через {{count}} часа`,pluralGenitive:`приблизительно через {{count}} часов`}}),xHours:P({regular:{singularNominative:`{{count}} час`,singularGenitive:`{{count}} часа`,pluralGenitive:`{{count}} часов`}}),xDays:P({regular:{singularNominative:`{{count}} день`,singularGenitive:`{{count}} дня`,pluralGenitive:`{{count}} дней`}}),aboutXWeeks:P({regular:{singularNominative:`около {{count}} недели`,singularGenitive:`около {{count}} недель`,pluralGenitive:`около {{count}} недель`},future:{singularNominative:`приблизительно через {{count}} неделю`,singularGenitive:`приблизительно через {{count}} недели`,pluralGenitive:`приблизительно через {{count}} недель`}}),xWeeks:P({regular:{singularNominative:`{{count}} неделя`,singularGenitive:`{{count}} недели`,pluralGenitive:`{{count}} недель`}}),aboutXMonths:P({regular:{singularNominative:`около {{count}} месяца`,singularGenitive:`около {{count}} месяцев`,pluralGenitive:`около {{count}} месяцев`},future:{singularNominative:`приблизительно через {{count}} месяц`,singularGenitive:`приблизительно через {{count}} месяца`,pluralGenitive:`приблизительно через {{count}} месяцев`}}),xMonths:P({regular:{singularNominative:`{{count}} месяц`,singularGenitive:`{{count}} месяца`,pluralGenitive:`{{count}} месяцев`}}),aboutXYears:P({regular:{singularNominative:`около {{count}} года`,singularGenitive:`около {{count}} лет`,pluralGenitive:`около {{count}} лет`},future:{singularNominative:`приблизительно через {{count}} год`,singularGenitive:`приблизительно через {{count}} года`,pluralGenitive:`приблизительно через {{count}} лет`}}),xYears:P({regular:{singularNominative:`{{count}} год`,singularGenitive:`{{count}} года`,pluralGenitive:`{{count}} лет`}}),overXYears:P({regular:{singularNominative:`больше {{count}} года`,singularGenitive:`больше {{count}} лет`,pluralGenitive:`больше {{count}} лет`},future:{singularNominative:`больше, чем через {{count}} год`,singularGenitive:`больше, чем через {{count}} года`,pluralGenitive:`больше, чем через {{count}} лет`}}),almostXYears:P({regular:{singularNominative:`почти {{count}} год`,singularGenitive:`почти {{count}} года`,pluralGenitive:`почти {{count}} лет`},future:{singularNominative:`почти через {{count}} год`,singularGenitive:`почти через {{count}} года`,pluralGenitive:`почти через {{count}} лет`}})},I=(e,t,n)=>F[e](t,n),L={date:v({formats:{full:`EEEE, d MMMM y 'г.'`,long:`d MMMM y 'г.'`,medium:`d MMM y 'г.'`,short:`dd.MM.y`},defaultWidth:`full`}),time:v({formats:{full:`H:mm:ss zzzz`,long:`H:mm:ss z`,medium:`H:mm:ss`,short:`H:mm`},defaultWidth:`full`}),dateTime:v({formats:{any:`{{date}}, {{time}}`},defaultWidth:`any`})},R=[`воскресенье`,`понедельник`,`вторник`,`среду`,`четверг`,`пятницу`,`субботу`];function z(e){let t=R[e];switch(e){case 0:return`'в прошлое `+t+` в' p`;case 1:case 2:case 4:return`'в прошлый `+t+` в' p`;case 3:case 5:case 6:return`'в прошлую `+t+` в' p`}}function B(e){let t=R[e];return e===2?`'во `+t+` в' p`:`'в `+t+` в' p`}function V(e){let t=R[e];switch(e){case 0:return`'в следующее `+t+` в' p`;case 1:case 2:case 4:return`'в следующий `+t+` в' p`;case 3:case 5:case 6:return`'в следующую `+t+` в' p`}}var H={lastWeek:(e,t,n)=>{let r=e.getDay();return S(e,t,n)?B(r):z(r)},yesterday:`'вчера в' p`,today:`'сегодня в' p`,tomorrow:`'завтра в' p`,nextWeek:(e,t,n)=>{let r=e.getDay();return S(e,t,n)?B(r):V(r)},other:`P`},ce={name:`ru-RU`,locale:{code:`ru`,formatDistance:I,formatLong:L,formatRelative:(e,t,n,r)=>{let i=H[e];return typeof i==`function`?i(t,n,r):i},localize:{ordinalNumber:(e,t)=>{let n=Number(e),r=t?.unit,i;return i=r===`date`?`-е`:r===`week`||r===`minute`||r===`second`?`-я`:`-й`,n+i},era:_({values:{narrow:[`до н.э.`,`н.э.`],abbreviated:[`до н. э.`,`н. э.`],wide:[`до нашей эры`,`нашей эры`]},defaultWidth:`wide`}),quarter:_({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`1-й кв.`,`2-й кв.`,`3-й кв.`,`4-й кв.`],wide:[`1-й квартал`,`2-й квартал`,`3-й квартал`,`4-й квартал`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:_({values:{narrow:[`Я`,`Ф`,`М`,`А`,`М`,`И`,`И`,`А`,`С`,`О`,`Н`,`Д`],abbreviated:[`янв.`,`фев.`,`март`,`апр.`,`май`,`июнь`,`июль`,`авг.`,`сент.`,`окт.`,`нояб.`,`дек.`],wide:[`январь`,`февраль`,`март`,`апрель`,`май`,`июнь`,`июль`,`август`,`сентябрь`,`октябрь`,`ноябрь`,`декабрь`]},defaultWidth:`wide`,formattingValues:{narrow:[`Я`,`Ф`,`М`,`А`,`М`,`И`,`И`,`А`,`С`,`О`,`Н`,`Д`],abbreviated:[`янв.`,`фев.`,`мар.`,`апр.`,`мая`,`июн.`,`июл.`,`авг.`,`сент.`,`окт.`,`нояб.`,`дек.`],wide:[`января`,`февраля`,`марта`,`апреля`,`мая`,`июня`,`июля`,`августа`,`сентября`,`октября`,`ноября`,`декабря`]},defaultFormattingWidth:`wide`}),day:_({values:{narrow:[`В`,`П`,`В`,`С`,`Ч`,`П`,`С`],short:[`вс`,`пн`,`вт`,`ср`,`чт`,`пт`,`сб`],abbreviated:[`вск`,`пнд`,`втр`,`срд`,`чтв`,`птн`,`суб`],wide:[`воскресенье`,`понедельник`,`вторник`,`среда`,`четверг`,`пятница`,`суббота`]},defaultWidth:`wide`}),dayPeriod:_({values:{narrow:{am:`ДП`,pm:`ПП`,midnight:`полн.`,noon:`полд.`,morning:`утро`,afternoon:`день`,evening:`веч.`,night:`ночь`},abbreviated:{am:`ДП`,pm:`ПП`,midnight:`полн.`,noon:`полд.`,morning:`утро`,afternoon:`день`,evening:`веч.`,night:`ночь`},wide:{am:`ДП`,pm:`ПП`,midnight:`полночь`,noon:`полдень`,morning:`утро`,afternoon:`день`,evening:`вечер`,night:`ночь`}},defaultWidth:`any`,formattingValues:{narrow:{am:`ДП`,pm:`ПП`,midnight:`полн.`,noon:`полд.`,morning:`утра`,afternoon:`дня`,evening:`веч.`,night:`ночи`},abbreviated:{am:`ДП`,pm:`ПП`,midnight:`полн.`,noon:`полд.`,morning:`утра`,afternoon:`дня`,evening:`веч.`,night:`ночи`},wide:{am:`ДП`,pm:`ПП`,midnight:`полночь`,noon:`полдень`,morning:`утра`,afternoon:`дня`,evening:`вечера`,night:`ночи`}},defaultFormattingWidth:`wide`})},match:{ordinalNumber:y({matchPattern:/^(\d+)(-?(е|я|й|ое|ье|ая|ья|ый|ой|ий|ый))?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:b({matchPatterns:{narrow:/^((до )?н\.?\s?э\.?)/i,abbreviated:/^((до )?н\.?\s?э\.?)/i,wide:/^(до нашей эры|нашей эры|наша эра)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^д/i,/^н/i]},defaultParseWidth:`any`}),quarter:b({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^[1234](-?[ыои]?й?)? кв.?/i,wide:/^[1234](-?[ыои]?й?)? квартал/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:b({matchPatterns:{narrow:/^[яфмаисонд]/i,abbreviated:/^(янв|фев|март?|апр|ма[йя]|июн[ья]?|июл[ья]?|авг|сент?|окт|нояб?|дек)\.?/i,wide:/^(январ[ья]|феврал[ья]|марта?|апрел[ья]|ма[йя]|июн[ья]|июл[ья]|августа?|сентябр[ья]|октябр[ья]|октябр[ья]|ноябр[ья]|декабр[ья])/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^я/i,/^ф/i,/^м/i,/^а/i,/^м/i,/^и/i,/^и/i,/^а/i,/^с/i,/^о/i,/^н/i,/^я/i],any:[/^я/i,/^ф/i,/^мар/i,/^ап/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^ав/i,/^с/i,/^о/i,/^н/i,/^д/i]},defaultParseWidth:`any`}),day:b({matchPatterns:{narrow:/^[впсч]/i,short:/^(вс|во|пн|по|вт|ср|чт|че|пт|пя|сб|су)\.?/i,abbreviated:/^(вск|вос|пнд|пон|втр|вто|срд|сре|чтв|чет|птн|пят|суб).?/i,wide:/^(воскресень[ея]|понедельника?|вторника?|сред[аы]|четверга?|пятниц[аы]|суббот[аы])/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^в/i,/^п/i,/^в/i,/^с/i,/^ч/i,/^п/i,/^с/i],any:[/^в[ос]/i,/^п[он]/i,/^в/i,/^ср/i,/^ч/i,/^п[ят]/i,/^с[уб]/i]},defaultParseWidth:`any`}),dayPeriod:b({matchPatterns:{narrow:/^([дп]п|полн\.?|полд\.?|утр[оа]|день|дня|веч\.?|ноч[ьи])/i,abbreviated:/^([дп]п|полн\.?|полд\.?|утр[оа]|день|дня|веч\.?|ноч[ьи])/i,wide:/^([дп]п|полночь|полдень|утр[оа]|день|дня|вечера?|ноч[ьи])/i},defaultMatchWidth:`wide`,parsePatterns:{any:{am:/^дп/i,pm:/^пп/i,midnight:/^полн/i,noon:/^полд/i,morning:/^у/i,afternoon:/^д[ен]/i,evening:/^в/i,night:/^н/i}},defaultParseWidth:`any`})},options:{weekStartsOn:1,firstWeekContainsDate:1}}};function le(e,t=new Date){let n=`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`;return e.status!==`done`&&!!e.dueDate&&e.dueDateS.value.map(e=>({label:e.name||`#${e.ID}`,value:e.ID}))),W=h(()=>[{label:`Все ответственные`,value:`all`},{label:`Без ответственного`,value:0},...U.value,...b.value.filter(e=>e.assigneeID&&!S.value.some(t=>t.ID===e.assigneeID)).filter((e,t,n)=>n.findIndex(t=>t.assigneeID===e.assigneeID)===t).map(e=>({label:e.assigneeName||`#${e.assigneeID}`,value:e.assigneeID}))]),_e=h(()=>{if(!H.assigneeID||U.value.some(e=>e.value===H.assigneeID))return U.value;let e=b.value.find(e=>e.ID===R.value);return[...U.value,{label:`${e?.assigneeName||`#${H.assigneeID}`} (роль отозвана)`,value:H.assigneeID,disabled:!0}]}),ve=h(()=>y.map(e=>({...e,tasks:b.value.filter(t=>t.status===e.value&&(I.value===`all`||(t.assigneeID||0)===I.value))}))),G=h(()=>b.value.find(e=>e.ID===R.value)),K=h(()=>H.title.trim()?[...H.title.trim()].length>255?`Не более 255 символов`:void 0:`Введите название задачи`),q=h(()=>[...H.description].length>1e4?`Не более 10 000 символов`:void 0),J=h(()=>R.value!==void 0&&G.value!==void 0&&G.value.version!==z.value),Y=h(()=>R.value!==void 0&&!G.value);function ye(e){return y.find(t=>t.value===e)?.label||e}function X(e){return e?e.split(`-`).reverse().join(`.`):`Без срока`}async function Z(){if(!(N.value||P.value)){N.value=!0,F.value=``;try{let e=await _.GetPermissions({});if(E.value=e.permissions?.includes(`tasks_page`)||!1,!E.value)return;let[t,n]=await Promise.all([_.GetTasks({}),_.GetTaskAssignees({})]);b.value=t.tasks||[],S.value=n.assignees||[]}catch(e){F.value=e instanceof Error&&e.message===`unauthorized`?`Войдите под учётной записью разработчика или администратора`:e instanceof Error?e.message:`Не удалось загрузить задачи`,v.error(F.value)}finally{N.value=!1}}}function Q(e){P.value||(R.value=e?.ID,z.value=e?.version,Object.assign(H,{title:e?.title||``,description:e?.description||``,status:e?.status||`new`,assigneeID:e?.assigneeID??null,dueDate:e?.dueDate||null}),L.value=!0)}async function $(){if(P.value||N.value||J.value||Y.value)return;let e=H.title.trim();if(!e||[...e].length>255||[...H.description].length>1e4){v.error(`Введите название до 255 символов и описание до 10 000 символов`);return}P.value=!0;try{let t={title:e,description:H.description,status:H.status,assigneeID:H.assigneeID??void 0,dueDate:H.dueDate||``},n=R.value===void 0?await _.CreateTask(t):await _.UpdateTask({...t,ID:R.value,version:z.value});if(n.task){let e=n.task;b.value=R.value===void 0?[e,...b.value]:b.value.map(t=>t.ID===e.ID?e:t)}L.value=!1,v.success(`Задача сохранена`)}catch(e){v.error(e instanceof Error?e.message:`Не удалось сохранить задачу`)}finally{P.value=!1}await Z()}function be(e,t){if(P.value||N.value||!e.dataTransfer){e.preventDefault();return}V.value=t.ID,e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,String(t.ID))}async function xe(e){let t=b.value.find(e=>e.ID===V.value);if(V.value=void 0,!(!t||t.status===e||P.value||N.value)){P.value=!0;try{let n=await _.SetTaskStatus({ID:t.ID,status:e,version:t.version});if(n.task){let e=n.task;b.value=b.value.map(n=>n.ID===t.ID?e:n)}v.success(`Статус изменён`)}catch(e){v.error(e instanceof Error?e.message:`Не удалось изменить статус`)}finally{P.value=!1}await Z()}}async function Se(){if(!(!B.value||P.value||N.value)){P.value=!0;try{await _.DeleteTask({ID:B.value.ID,version:B.value.version}),b.value=b.value.filter(e=>e.ID!==B.value?.ID),B.value=null,L.value=!1,v.success(`Задача удалена`)}catch(e){v.error(e instanceof Error?e.message:`Не удалось удалить задачу`),B.value=null}finally{P.value=!1}await Z()}}function Ce(){z.value=G.value?.version}return r(()=>{N.value=!1,Z()}),(e,r)=>(i(),n(t(ae),{locale:t(ie),"date-locale":t(ce)},{default:f(()=>[o(`div`,ue,[o(`div`,de,[d(t(A),{class:`toolbar`,justify:`space-between`,align:`center`},{default:f(()=>[r[16]||=o(`h1`,null,`Задачи`,-1),d(t(A),null,{default:f(()=>[d(t(w),{loading:N.value,disabled:P.value,onClick:Z},{default:f(()=>[...r[14]||=[a(`Обновить`,-1)]]),_:1},8,[`loading`,`disabled`]),E.value?(i(),n(t(w),{key:0,type:`primary`,disabled:P.value||N.value,onClick:r[0]||=e=>Q()},{default:f(()=>[...r[15]||=[a(` Создать задачу `,-1)]]),_:1},8,[`disabled`])):m(``,!0)]),_:1})]),_:1}),F.value?(i(),n(t(O),{key:0,type:`error`,class:`notice`},{default:f(()=>[a(c(F.value),1)]),_:1})):m(``,!0),N.value&&!E.value?(i(),n(t(j),{key:1,class:`initial-loading`})):!E.value&&!F.value?(i(),n(t(O),{key:2,type:`warning`},{default:f(()=>[...r[17]||=[a(` Страница доступна разработчикам и администратору. `,-1)]]),_:1})):m(``,!0),E.value?(i(),s(u,{key:3},[d(t(T),{value:I.value,"onUpdate:value":r[1]||=e=>I.value=e,options:W.value,"aria-label":`Фильтр по ответственному`,class:`assignee-filter`},null,8,[`value`,`options`]),d(t(j),{show:N.value||P.value},{default:f(()=>[o(`div`,fe,[(i(!0),s(u,null,l(ve.value,e=>(i(),s(`section`,{key:e.value,class:`column`,"aria-label":e.label,onDragover:r[3]||=M(()=>{},[`prevent`]),onDrop:M(t=>xe(e.value),[`prevent`])},[d(t(A),{justify:`space-between`,align:`center`,class:`column-heading`},{default:f(()=>[o(`h2`,null,c(e.label),1),d(t(g),{size:`small`},{default:f(()=>[a(c(e.tasks.length),1)]),_:2},1024)]),_:2},1024),e.tasks.length?m(``,!0):(i(),n(t(te),{key:0,description:`Нет задач`,class:`empty-column`})),(i(!0),s(u,null,l(e.tasks,e=>(i(),n(t(k),{key:e.ID,class:`task-card`,size:`small`,draggable:!P.value&&!N.value,onDragstart:t=>be(t,e),onDragend:r[2]||=e=>V.value=void 0},{default:f(()=>[o(`div`,me,`#`+c(e.ID),1),o(`h3`,he,c(e.title),1),o(`p`,null,c(e.assigneeName||`Без ответственного`),1),d(t(A),{align:`center`,class:`task-due`},{default:f(()=>[o(`span`,null,c(X(e.dueDate)),1),t(le)(e)?(i(),n(t(g),{key:0,type:`error`,size:`small`},{default:f(()=>[...r[18]||=[a(`Просрочена`,-1)]]),_:1})):m(``,!0)]),_:2},1024),d(t(w),{size:`small`,disabled:P.value||N.value,onClick:t=>Q(e)},{default:f(()=>[...r[19]||=[a(` Открыть задачу `,-1)]]),_:1},8,[`disabled`,`onClick`])]),_:2},1032,[`draggable`,`onDragstart`]))),128))],40,pe))),128))])]),_:1},8,[`show`])],64)):m(``,!0)])]),d(se,{active:`tasks`}),d(t(x),{show:L.value,"onUpdate:show":r[11]||=e=>L.value=e,"mask-closable":!P.value,"close-on-esc":!P.value},{default:f(()=>[d(t(k),{class:`task-modal`,title:R.value?`Задача #${R.value}`:`Новая задача`,role:`dialog`,"aria-modal":`true`},{default:f(()=>[Y.value?(i(),n(t(O),{key:0,type:`warning`,class:`notice`},{default:f(()=>[...r[20]||=[a(` Задача удалена другим пользователем. Черновик сохранён в этой форме. `,-1)]]),_:1})):m(``,!0),J.value&&G.value?(i(),n(t(O),{key:1,type:`warning`,class:`notice`},{default:f(()=>[r[22]||=a(` Задача изменена другим пользователем. Ваш черновик сохранён. Актуальные данные: `,-1),o(`p`,null,c(G.value.title)+` — `+c(ye(G.value.status)),1),o(`p`,null,c(G.value.assigneeName||`Без ответственного`)+` · `+c(X(G.value.dueDate)),1),o(`p`,ge,c(G.value.description||`Без описания`),1),d(t(w),{disabled:N.value||P.value,onClick:Ce},{default:f(()=>[...r[21]||=[a(` Продолжить с моим черновиком `,-1)]]),_:1},8,[`disabled`])]),_:1})):m(``,!0),d(t(C),{label:`Название *`,"label-for":`task-title`,feedback:K.value,"validation-status":K.value?`error`:void 0},{default:f(()=>[d(t(D),{"input-props":{id:`task-title`},value:H.title,"onUpdate:value":r[4]||=e=>H.title=e,disabled:P.value,placeholder:`Название задачи`},null,8,[`value`,`disabled`])]),_:1},8,[`feedback`,`validation-status`]),d(t(C),{label:`Описание`,"label-for":`task-description`,feedback:q.value,"validation-status":q.value?`error`:void 0},{default:f(()=>[d(t(D),{"input-props":{id:`task-description`},value:H.description,"onUpdate:value":r[5]||=e=>H.description=e,type:`textarea`,disabled:P.value,placeholder:`Что нужно сделать`,autosize:{minRows:3,maxRows:10}},null,8,[`value`,`disabled`])]),_:1},8,[`feedback`,`validation-status`]),d(t(C),{label:`Статус`,"label-for":`task-status`},{default:f(()=>[d(t(T),{"input-props":{id:`task-status`,"aria-label":`Статус`},filterable:``,value:H.status,"onUpdate:value":r[6]||=e=>H.status=e,options:y,disabled:P.value},null,8,[`value`,`disabled`])]),_:1}),d(t(C),{label:`Ответственный`,"label-for":`task-assignee`},{default:f(()=>[d(t(T),{"input-props":{id:`task-assignee`,"aria-label":`Ответственный`},value:H.assigneeID,"onUpdate:value":r[7]||=e=>H.assigneeID=e,options:_e.value,disabled:P.value,placeholder:`Без ответственного`,clearable:``,filterable:``},null,8,[`value`,`options`,`disabled`])]),_:1}),d(t(C),{label:`Срок выполнения`,"label-for":`task-due-date`},{default:f(()=>[d(t(re),{id:`task-due-date`,"formatted-value":H.dueDate,"onUpdate:formattedValue":r[8]||=e=>H.dueDate=e,type:`date`,placeholder:`Дата завершения`,"value-format":`yyyy-MM-dd`,format:`dd.MM.yyyy`,disabled:P.value,clearable:``,class:`date-picker`},null,8,[`formatted-value`,`disabled`])]),_:1}),d(t(A),{justify:`space-between`},{default:f(()=>[R.value&&G.value?(i(),n(t(w),{key:0,type:`error`,disabled:P.value||N.value,onClick:r[9]||=e=>B.value=G.value},{default:f(()=>[...r[23]||=[a(`Удалить`,-1)]]),_:1},8,[`disabled`])):m(``,!0),d(t(A),null,{default:f(()=>[d(t(w),{disabled:P.value,onClick:r[10]||=e=>L.value=!1},{default:f(()=>[...r[24]||=[a(`Закрыть`,-1)]]),_:1},8,[`disabled`]),d(t(w),{type:`primary`,loading:P.value,disabled:N.value||J.value||Y.value||!!K.value||!!q.value,onClick:$},{default:f(()=>[...r[25]||=[a(`Сохранить`,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1},8,[`title`])]),_:1},8,[`show`,`mask-closable`,`close-on-esc`]),d(t(x),{show:!!B.value,"mask-closable":!P.value,"close-on-esc":!P.value,"onUpdate:show":r[13]||=e=>!P.value&&(B.value=null)},{default:f(()=>[d(t(k),{class:`task-modal`,title:`Удалить задачу?`,role:`dialog`,"aria-modal":`true`},{default:f(()=>[o(`p`,null,`Удалить «`+c(B.value?.title)+`»? Это действие необратимо.`,1),d(t(A),{justify:`end`,class:`delete-actions`},{default:f(()=>[d(t(w),{disabled:P.value,onClick:r[12]||=e=>B.value=null},{default:f(()=>[...r[26]||=[a(`Отмена`,-1)]]),_:1},8,[`disabled`]),d(t(w),{type:`error`,loading:P.value,onClick:Se},{default:f(()=>[...r[27]||=[a(`Удалить`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`show`,`mask-closable`,`close-on-esc`])]),_:1},8,[`locale`,`date-locale`]))}}),[[`__scopeId`,`data-v-ff75f974`]]),W=e({__name:`TasksView`,setup(e){return(e,t)=>(i(),n(U))}});export{W as default}; \ No newline at end of file +import{At as e,Cn as t,Ct as n,Gt as r,Jt as i,Ot as a,St as o,Tt as s,Vn as c,Xt as l,gn as ee,gt as u,kt as d,sn as f,vn as p,wt as m,xt as h}from"./client-DrrW410h.js";import{o as te}from"./utils-BwK8vCu4.js";import{i as g,r as ne}from"./ui-BXphkCO3.js";import{c as _,l as v,o as y,s as b}from"./Suffix-1hsPP30m.js";import{t as x}from"./Modal-CBvJhnU9.js";import{n as S,t as re}from"./DatePicker-CtSDNHOH.js";import{t as C}from"./FormItem-TGv2UHIS.js";import{t as w}from"./Button-VP0HlDWp.js";import{t as T}from"./Select-BQpeZ0on.js";import{t as E}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as ie}from"./ruRU-GUVPj0Y9.js";import{t as D}from"./Input-B0pT-V_P.js";import{t as O}from"./Alert-CKEVYkKu.js";import{t as k}from"./Card-DpsyX5Gm.js";import{t as A}from"./Flex-C50LOLeC.js";import{t as j}from"./Spin-v_Oo9RkU.js";import{D as ae,i as oe,mt as M}from"./index-CvfVA1ID.js";import{t as se}from"./HeaderMenu-DjAjwijB.js";function N(e,t){if(e.one!==void 0&&t===1)return e.one;let n=t%10,r=t%100;return n===1&&r!==11?e.singularNominative.replace(`{{count}}`,String(t)):n>=2&&n<=4&&(r<10||r>20)?e.singularGenitive.replace(`{{count}}`,String(t)):e.pluralGenitive.replace(`{{count}}`,String(t))}function P(e){return(t,n)=>n?.addSuffix?n.comparison&&n.comparison>0?e.future?N(e.future,t):`через `+N(e.regular,t):e.past?N(e.past,t):N(e.regular,t)+` назад`:N(e.regular,t)}var F={lessThanXSeconds:P({regular:{one:`меньше секунды`,singularNominative:`меньше {{count}} секунды`,singularGenitive:`меньше {{count}} секунд`,pluralGenitive:`меньше {{count}} секунд`},future:{one:`меньше, чем через секунду`,singularNominative:`меньше, чем через {{count}} секунду`,singularGenitive:`меньше, чем через {{count}} секунды`,pluralGenitive:`меньше, чем через {{count}} секунд`}}),xSeconds:P({regular:{singularNominative:`{{count}} секунда`,singularGenitive:`{{count}} секунды`,pluralGenitive:`{{count}} секунд`},past:{singularNominative:`{{count}} секунду назад`,singularGenitive:`{{count}} секунды назад`,pluralGenitive:`{{count}} секунд назад`},future:{singularNominative:`через {{count}} секунду`,singularGenitive:`через {{count}} секунды`,pluralGenitive:`через {{count}} секунд`}}),halfAMinute:(e,t)=>t?.addSuffix?t.comparison&&t.comparison>0?`через полминуты`:`полминуты назад`:`полминуты`,lessThanXMinutes:P({regular:{one:`меньше минуты`,singularNominative:`меньше {{count}} минуты`,singularGenitive:`меньше {{count}} минут`,pluralGenitive:`меньше {{count}} минут`},future:{one:`меньше, чем через минуту`,singularNominative:`меньше, чем через {{count}} минуту`,singularGenitive:`меньше, чем через {{count}} минуты`,pluralGenitive:`меньше, чем через {{count}} минут`}}),xMinutes:P({regular:{singularNominative:`{{count}} минута`,singularGenitive:`{{count}} минуты`,pluralGenitive:`{{count}} минут`},past:{singularNominative:`{{count}} минуту назад`,singularGenitive:`{{count}} минуты назад`,pluralGenitive:`{{count}} минут назад`},future:{singularNominative:`через {{count}} минуту`,singularGenitive:`через {{count}} минуты`,pluralGenitive:`через {{count}} минут`}}),aboutXHours:P({regular:{singularNominative:`около {{count}} часа`,singularGenitive:`около {{count}} часов`,pluralGenitive:`около {{count}} часов`},future:{singularNominative:`приблизительно через {{count}} час`,singularGenitive:`приблизительно через {{count}} часа`,pluralGenitive:`приблизительно через {{count}} часов`}}),xHours:P({regular:{singularNominative:`{{count}} час`,singularGenitive:`{{count}} часа`,pluralGenitive:`{{count}} часов`}}),xDays:P({regular:{singularNominative:`{{count}} день`,singularGenitive:`{{count}} дня`,pluralGenitive:`{{count}} дней`}}),aboutXWeeks:P({regular:{singularNominative:`около {{count}} недели`,singularGenitive:`около {{count}} недель`,pluralGenitive:`около {{count}} недель`},future:{singularNominative:`приблизительно через {{count}} неделю`,singularGenitive:`приблизительно через {{count}} недели`,pluralGenitive:`приблизительно через {{count}} недель`}}),xWeeks:P({regular:{singularNominative:`{{count}} неделя`,singularGenitive:`{{count}} недели`,pluralGenitive:`{{count}} недель`}}),aboutXMonths:P({regular:{singularNominative:`около {{count}} месяца`,singularGenitive:`около {{count}} месяцев`,pluralGenitive:`около {{count}} месяцев`},future:{singularNominative:`приблизительно через {{count}} месяц`,singularGenitive:`приблизительно через {{count}} месяца`,pluralGenitive:`приблизительно через {{count}} месяцев`}}),xMonths:P({regular:{singularNominative:`{{count}} месяц`,singularGenitive:`{{count}} месяца`,pluralGenitive:`{{count}} месяцев`}}),aboutXYears:P({regular:{singularNominative:`около {{count}} года`,singularGenitive:`около {{count}} лет`,pluralGenitive:`около {{count}} лет`},future:{singularNominative:`приблизительно через {{count}} год`,singularGenitive:`приблизительно через {{count}} года`,pluralGenitive:`приблизительно через {{count}} лет`}}),xYears:P({regular:{singularNominative:`{{count}} год`,singularGenitive:`{{count}} года`,pluralGenitive:`{{count}} лет`}}),overXYears:P({regular:{singularNominative:`больше {{count}} года`,singularGenitive:`больше {{count}} лет`,pluralGenitive:`больше {{count}} лет`},future:{singularNominative:`больше, чем через {{count}} год`,singularGenitive:`больше, чем через {{count}} года`,pluralGenitive:`больше, чем через {{count}} лет`}}),almostXYears:P({regular:{singularNominative:`почти {{count}} год`,singularGenitive:`почти {{count}} года`,pluralGenitive:`почти {{count}} лет`},future:{singularNominative:`почти через {{count}} год`,singularGenitive:`почти через {{count}} года`,pluralGenitive:`почти через {{count}} лет`}})},I=(e,t,n)=>F[e](t,n),L={date:v({formats:{full:`EEEE, d MMMM y 'г.'`,long:`d MMMM y 'г.'`,medium:`d MMM y 'г.'`,short:`dd.MM.y`},defaultWidth:`full`}),time:v({formats:{full:`H:mm:ss zzzz`,long:`H:mm:ss z`,medium:`H:mm:ss`,short:`H:mm`},defaultWidth:`full`}),dateTime:v({formats:{any:`{{date}}, {{time}}`},defaultWidth:`any`})},R=[`воскресенье`,`понедельник`,`вторник`,`среду`,`четверг`,`пятницу`,`субботу`];function z(e){let t=R[e];switch(e){case 0:return`'в прошлое `+t+` в' p`;case 1:case 2:case 4:return`'в прошлый `+t+` в' p`;case 3:case 5:case 6:return`'в прошлую `+t+` в' p`}}function B(e){let t=R[e];return e===2?`'во `+t+` в' p`:`'в `+t+` в' p`}function V(e){let t=R[e];switch(e){case 0:return`'в следующее `+t+` в' p`;case 1:case 2:case 4:return`'в следующий `+t+` в' p`;case 3:case 5:case 6:return`'в следующую `+t+` в' p`}}var H={lastWeek:(e,t,n)=>{let r=e.getDay();return S(e,t,n)?B(r):z(r)},yesterday:`'вчера в' p`,today:`'сегодня в' p`,tomorrow:`'завтра в' p`,nextWeek:(e,t,n)=>{let r=e.getDay();return S(e,t,n)?B(r):V(r)},other:`P`},ce={name:`ru-RU`,locale:{code:`ru`,formatDistance:I,formatLong:L,formatRelative:(e,t,n,r)=>{let i=H[e];return typeof i==`function`?i(t,n,r):i},localize:{ordinalNumber:(e,t)=>{let n=Number(e),r=t?.unit,i;return i=r===`date`?`-е`:r===`week`||r===`minute`||r===`second`?`-я`:`-й`,n+i},era:_({values:{narrow:[`до н.э.`,`н.э.`],abbreviated:[`до н. э.`,`н. э.`],wide:[`до нашей эры`,`нашей эры`]},defaultWidth:`wide`}),quarter:_({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`1-й кв.`,`2-й кв.`,`3-й кв.`,`4-й кв.`],wide:[`1-й квартал`,`2-й квартал`,`3-й квартал`,`4-й квартал`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:_({values:{narrow:[`Я`,`Ф`,`М`,`А`,`М`,`И`,`И`,`А`,`С`,`О`,`Н`,`Д`],abbreviated:[`янв.`,`фев.`,`март`,`апр.`,`май`,`июнь`,`июль`,`авг.`,`сент.`,`окт.`,`нояб.`,`дек.`],wide:[`январь`,`февраль`,`март`,`апрель`,`май`,`июнь`,`июль`,`август`,`сентябрь`,`октябрь`,`ноябрь`,`декабрь`]},defaultWidth:`wide`,formattingValues:{narrow:[`Я`,`Ф`,`М`,`А`,`М`,`И`,`И`,`А`,`С`,`О`,`Н`,`Д`],abbreviated:[`янв.`,`фев.`,`мар.`,`апр.`,`мая`,`июн.`,`июл.`,`авг.`,`сент.`,`окт.`,`нояб.`,`дек.`],wide:[`января`,`февраля`,`марта`,`апреля`,`мая`,`июня`,`июля`,`августа`,`сентября`,`октября`,`ноября`,`декабря`]},defaultFormattingWidth:`wide`}),day:_({values:{narrow:[`В`,`П`,`В`,`С`,`Ч`,`П`,`С`],short:[`вс`,`пн`,`вт`,`ср`,`чт`,`пт`,`сб`],abbreviated:[`вск`,`пнд`,`втр`,`срд`,`чтв`,`птн`,`суб`],wide:[`воскресенье`,`понедельник`,`вторник`,`среда`,`четверг`,`пятница`,`суббота`]},defaultWidth:`wide`}),dayPeriod:_({values:{narrow:{am:`ДП`,pm:`ПП`,midnight:`полн.`,noon:`полд.`,morning:`утро`,afternoon:`день`,evening:`веч.`,night:`ночь`},abbreviated:{am:`ДП`,pm:`ПП`,midnight:`полн.`,noon:`полд.`,morning:`утро`,afternoon:`день`,evening:`веч.`,night:`ночь`},wide:{am:`ДП`,pm:`ПП`,midnight:`полночь`,noon:`полдень`,morning:`утро`,afternoon:`день`,evening:`вечер`,night:`ночь`}},defaultWidth:`any`,formattingValues:{narrow:{am:`ДП`,pm:`ПП`,midnight:`полн.`,noon:`полд.`,morning:`утра`,afternoon:`дня`,evening:`веч.`,night:`ночи`},abbreviated:{am:`ДП`,pm:`ПП`,midnight:`полн.`,noon:`полд.`,morning:`утра`,afternoon:`дня`,evening:`веч.`,night:`ночи`},wide:{am:`ДП`,pm:`ПП`,midnight:`полночь`,noon:`полдень`,morning:`утра`,afternoon:`дня`,evening:`вечера`,night:`ночи`}},defaultFormattingWidth:`wide`})},match:{ordinalNumber:y({matchPattern:/^(\d+)(-?(е|я|й|ое|ье|ая|ья|ый|ой|ий|ый))?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:b({matchPatterns:{narrow:/^((до )?н\.?\s?э\.?)/i,abbreviated:/^((до )?н\.?\s?э\.?)/i,wide:/^(до нашей эры|нашей эры|наша эра)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^д/i,/^н/i]},defaultParseWidth:`any`}),quarter:b({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^[1234](-?[ыои]?й?)? кв.?/i,wide:/^[1234](-?[ыои]?й?)? квартал/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:b({matchPatterns:{narrow:/^[яфмаисонд]/i,abbreviated:/^(янв|фев|март?|апр|ма[йя]|июн[ья]?|июл[ья]?|авг|сент?|окт|нояб?|дек)\.?/i,wide:/^(январ[ья]|феврал[ья]|марта?|апрел[ья]|ма[йя]|июн[ья]|июл[ья]|августа?|сентябр[ья]|октябр[ья]|октябр[ья]|ноябр[ья]|декабр[ья])/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^я/i,/^ф/i,/^м/i,/^а/i,/^м/i,/^и/i,/^и/i,/^а/i,/^с/i,/^о/i,/^н/i,/^я/i],any:[/^я/i,/^ф/i,/^мар/i,/^ап/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^ав/i,/^с/i,/^о/i,/^н/i,/^д/i]},defaultParseWidth:`any`}),day:b({matchPatterns:{narrow:/^[впсч]/i,short:/^(вс|во|пн|по|вт|ср|чт|че|пт|пя|сб|су)\.?/i,abbreviated:/^(вск|вос|пнд|пон|втр|вто|срд|сре|чтв|чет|птн|пят|суб).?/i,wide:/^(воскресень[ея]|понедельника?|вторника?|сред[аы]|четверга?|пятниц[аы]|суббот[аы])/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^в/i,/^п/i,/^в/i,/^с/i,/^ч/i,/^п/i,/^с/i],any:[/^в[ос]/i,/^п[он]/i,/^в/i,/^ср/i,/^ч/i,/^п[ят]/i,/^с[уб]/i]},defaultParseWidth:`any`}),dayPeriod:b({matchPatterns:{narrow:/^([дп]п|полн\.?|полд\.?|утр[оа]|день|дня|веч\.?|ноч[ьи])/i,abbreviated:/^([дп]п|полн\.?|полд\.?|утр[оа]|день|дня|веч\.?|ноч[ьи])/i,wide:/^([дп]п|полночь|полдень|утр[оа]|день|дня|вечера?|ноч[ьи])/i},defaultMatchWidth:`wide`,parsePatterns:{any:{am:/^дп/i,pm:/^пп/i,midnight:/^полн/i,noon:/^полд/i,morning:/^у/i,afternoon:/^д[ен]/i,evening:/^в/i,night:/^н/i}},defaultParseWidth:`any`})},options:{weekStartsOn:1,firstWeekContainsDate:1}}};function le(e,t=new Date){let n=`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`;return e.status!==`done`&&!!e.dueDate&&e.dueDateS.value.map(e=>({label:e.name||`#${e.ID}`,value:e.ID}))),W=h(()=>[{label:`Все ответственные`,value:`all`},{label:`Без ответственного`,value:0},...U.value,...b.value.filter(e=>e.assigneeID&&!S.value.some(t=>t.ID===e.assigneeID)).filter((e,t,n)=>n.findIndex(t=>t.assigneeID===e.assigneeID)===t).map(e=>({label:e.assigneeName||`#${e.assigneeID}`,value:e.assigneeID}))]),_e=h(()=>{if(!H.assigneeID||U.value.some(e=>e.value===H.assigneeID))return U.value;let e=b.value.find(e=>e.ID===R.value);return[...U.value,{label:`${e?.assigneeName||`#${H.assigneeID}`} (роль отозвана)`,value:H.assigneeID,disabled:!0}]}),ve=h(()=>y.map(e=>({...e,tasks:b.value.filter(t=>t.status===e.value&&(I.value===`all`||(t.assigneeID||0)===I.value))}))),G=h(()=>b.value.find(e=>e.ID===R.value)),K=h(()=>H.title.trim()?[...H.title.trim()].length>255?`Не более 255 символов`:void 0:`Введите название задачи`),q=h(()=>[...H.description].length>1e4?`Не более 10 000 символов`:void 0),J=h(()=>R.value!==void 0&&G.value!==void 0&&G.value.version!==z.value),Y=h(()=>R.value!==void 0&&!G.value);function ye(e){return y.find(t=>t.value===e)?.label||e}function X(e){return e?e.split(`-`).reverse().join(`.`):`Без срока`}async function Z(){if(!(N.value||P.value)){N.value=!0,F.value=``;try{let e=await _.GetPermissions({});if(E.value=e.permissions?.includes(`tasks_page`)||!1,!E.value)return;let[t,n]=await Promise.all([_.GetTasks({}),_.GetTaskAssignees({})]);b.value=t.tasks||[],S.value=n.assignees||[]}catch(e){F.value=e instanceof Error&&e.message===`unauthorized`?`Войдите под учётной записью разработчика или администратора`:e instanceof Error?e.message:`Не удалось загрузить задачи`,v.error(F.value)}finally{N.value=!1}}}function Q(e){P.value||(R.value=e?.ID,z.value=e?.version,Object.assign(H,{title:e?.title||``,description:e?.description||``,status:e?.status||`new`,assigneeID:e?.assigneeID??null,dueDate:e?.dueDate||null}),L.value=!0)}async function $(){if(P.value||N.value||J.value||Y.value)return;let e=H.title.trim();if(!e||[...e].length>255||[...H.description].length>1e4){v.error(`Введите название до 255 символов и описание до 10 000 символов`);return}P.value=!0;try{let t={title:e,description:H.description,status:H.status,assigneeID:H.assigneeID??void 0,dueDate:H.dueDate||``},n=R.value===void 0?await _.CreateTask(t):await _.UpdateTask({...t,ID:R.value,version:z.value});if(n.task){let e=n.task;b.value=R.value===void 0?[e,...b.value]:b.value.map(t=>t.ID===e.ID?e:t)}L.value=!1,v.success(`Задача сохранена`)}catch(e){v.error(e instanceof Error?e.message:`Не удалось сохранить задачу`)}finally{P.value=!1}await Z()}function be(e,t){if(P.value||N.value||!e.dataTransfer){e.preventDefault();return}V.value=t.ID,e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,String(t.ID))}async function xe(e){let t=b.value.find(e=>e.ID===V.value);if(V.value=void 0,!(!t||t.status===e||P.value||N.value)){P.value=!0;try{let n=await _.SetTaskStatus({ID:t.ID,status:e,version:t.version});if(n.task){let e=n.task;b.value=b.value.map(n=>n.ID===t.ID?e:n)}v.success(`Статус изменён`)}catch(e){v.error(e instanceof Error?e.message:`Не удалось изменить статус`)}finally{P.value=!1}await Z()}}async function Se(){if(!(!B.value||P.value||N.value)){P.value=!0;try{await _.DeleteTask({ID:B.value.ID,version:B.value.version}),b.value=b.value.filter(e=>e.ID!==B.value?.ID),B.value=null,L.value=!1,v.success(`Задача удалена`)}catch(e){v.error(e instanceof Error?e.message:`Не удалось удалить задачу`),B.value=null}finally{P.value=!1}await Z()}}function Ce(){z.value=G.value?.version}return r(()=>{N.value=!1,Z()}),(e,r)=>(i(),n(t(ae),{locale:t(ie),"date-locale":t(ce)},{default:f(()=>[o(`div`,ue,[o(`div`,de,[d(t(A),{class:`toolbar`,justify:`space-between`,align:`center`},{default:f(()=>[r[16]||=o(`h1`,null,`Задачи`,-1),d(t(A),null,{default:f(()=>[d(t(w),{loading:N.value,disabled:P.value,onClick:Z},{default:f(()=>[...r[14]||=[a(`Обновить`,-1)]]),_:1},8,[`loading`,`disabled`]),E.value?(i(),n(t(w),{key:0,type:`primary`,disabled:P.value||N.value,onClick:r[0]||=e=>Q()},{default:f(()=>[...r[15]||=[a(` Создать задачу `,-1)]]),_:1},8,[`disabled`])):m(``,!0)]),_:1})]),_:1}),F.value?(i(),n(t(O),{key:0,type:`error`,class:`notice`},{default:f(()=>[a(c(F.value),1)]),_:1})):m(``,!0),N.value&&!E.value?(i(),n(t(j),{key:1,class:`initial-loading`})):!E.value&&!F.value?(i(),n(t(O),{key:2,type:`warning`},{default:f(()=>[...r[17]||=[a(` Страница доступна разработчикам и администратору. `,-1)]]),_:1})):m(``,!0),E.value?(i(),s(u,{key:3},[d(t(T),{value:I.value,"onUpdate:value":r[1]||=e=>I.value=e,options:W.value,"aria-label":`Фильтр по ответственному`,class:`assignee-filter`},null,8,[`value`,`options`]),d(t(j),{show:N.value||P.value},{default:f(()=>[o(`div`,fe,[(i(!0),s(u,null,l(ve.value,e=>(i(),s(`section`,{key:e.value,class:`column`,"aria-label":e.label,onDragover:r[3]||=M(()=>{},[`prevent`]),onDrop:M(t=>xe(e.value),[`prevent`])},[d(t(A),{justify:`space-between`,align:`center`,class:`column-heading`},{default:f(()=>[o(`h2`,null,c(e.label),1),d(t(g),{size:`small`},{default:f(()=>[a(c(e.tasks.length),1)]),_:2},1024)]),_:2},1024),e.tasks.length?m(``,!0):(i(),n(t(te),{key:0,description:`Нет задач`,class:`empty-column`})),(i(!0),s(u,null,l(e.tasks,e=>(i(),n(t(k),{key:e.ID,class:`task-card`,size:`small`,draggable:!P.value&&!N.value,onDragstart:t=>be(t,e),onDragend:r[2]||=e=>V.value=void 0},{default:f(()=>[o(`div`,me,`#`+c(e.ID),1),o(`h3`,he,c(e.title),1),o(`p`,null,c(e.assigneeName||`Без ответственного`),1),d(t(A),{align:`center`,class:`task-due`},{default:f(()=>[o(`span`,null,c(X(e.dueDate)),1),t(le)(e)?(i(),n(t(g),{key:0,type:`error`,size:`small`},{default:f(()=>[...r[18]||=[a(`Просрочена`,-1)]]),_:1})):m(``,!0)]),_:2},1024),d(t(w),{size:`small`,disabled:P.value||N.value,onClick:t=>Q(e)},{default:f(()=>[...r[19]||=[a(` Открыть задачу `,-1)]]),_:1},8,[`disabled`,`onClick`])]),_:2},1032,[`draggable`,`onDragstart`]))),128))],40,pe))),128))])]),_:1},8,[`show`])],64)):m(``,!0)])]),d(se,{active:`tasks`}),d(t(x),{show:L.value,"onUpdate:show":r[11]||=e=>L.value=e,"mask-closable":!P.value,"close-on-esc":!P.value},{default:f(()=>[d(t(k),{class:`task-modal`,title:R.value?`Задача #${R.value}`:`Новая задача`,role:`dialog`,"aria-modal":`true`},{default:f(()=>[Y.value?(i(),n(t(O),{key:0,type:`warning`,class:`notice`},{default:f(()=>[...r[20]||=[a(` Задача удалена другим пользователем. Черновик сохранён в этой форме. `,-1)]]),_:1})):m(``,!0),J.value&&G.value?(i(),n(t(O),{key:1,type:`warning`,class:`notice`},{default:f(()=>[r[22]||=a(` Задача изменена другим пользователем. Ваш черновик сохранён. Актуальные данные: `,-1),o(`p`,null,c(G.value.title)+` — `+c(ye(G.value.status)),1),o(`p`,null,c(G.value.assigneeName||`Без ответственного`)+` · `+c(X(G.value.dueDate)),1),o(`p`,ge,c(G.value.description||`Без описания`),1),d(t(w),{disabled:N.value||P.value,onClick:Ce},{default:f(()=>[...r[21]||=[a(` Продолжить с моим черновиком `,-1)]]),_:1},8,[`disabled`])]),_:1})):m(``,!0),d(t(C),{label:`Название *`,"label-for":`task-title`,feedback:K.value,"validation-status":K.value?`error`:void 0},{default:f(()=>[d(t(D),{"input-props":{id:`task-title`},value:H.title,"onUpdate:value":r[4]||=e=>H.title=e,disabled:P.value,placeholder:`Название задачи`},null,8,[`value`,`disabled`])]),_:1},8,[`feedback`,`validation-status`]),d(t(C),{label:`Описание`,"label-for":`task-description`,feedback:q.value,"validation-status":q.value?`error`:void 0},{default:f(()=>[d(t(D),{"input-props":{id:`task-description`},value:H.description,"onUpdate:value":r[5]||=e=>H.description=e,type:`textarea`,disabled:P.value,placeholder:`Что нужно сделать`,autosize:{minRows:3,maxRows:10}},null,8,[`value`,`disabled`])]),_:1},8,[`feedback`,`validation-status`]),d(t(C),{label:`Статус`,"label-for":`task-status`},{default:f(()=>[d(t(T),{"input-props":{id:`task-status`,"aria-label":`Статус`},filterable:``,value:H.status,"onUpdate:value":r[6]||=e=>H.status=e,options:y,disabled:P.value},null,8,[`value`,`disabled`])]),_:1}),d(t(C),{label:`Ответственный`,"label-for":`task-assignee`},{default:f(()=>[d(t(T),{"input-props":{id:`task-assignee`,"aria-label":`Ответственный`},value:H.assigneeID,"onUpdate:value":r[7]||=e=>H.assigneeID=e,options:_e.value,disabled:P.value,placeholder:`Без ответственного`,clearable:``,filterable:``},null,8,[`value`,`options`,`disabled`])]),_:1}),d(t(C),{label:`Срок выполнения`,"label-for":`task-due-date`},{default:f(()=>[d(t(re),{id:`task-due-date`,"formatted-value":H.dueDate,"onUpdate:formattedValue":r[8]||=e=>H.dueDate=e,type:`date`,placeholder:`Дата завершения`,"value-format":`yyyy-MM-dd`,format:`dd.MM.yyyy`,disabled:P.value,clearable:``,class:`date-picker`},null,8,[`formatted-value`,`disabled`])]),_:1}),d(t(A),{justify:`space-between`},{default:f(()=>[R.value&&G.value?(i(),n(t(w),{key:0,type:`error`,disabled:P.value||N.value,onClick:r[9]||=e=>B.value=G.value},{default:f(()=>[...r[23]||=[a(`Удалить`,-1)]]),_:1},8,[`disabled`])):m(``,!0),d(t(A),null,{default:f(()=>[d(t(w),{disabled:P.value,onClick:r[10]||=e=>L.value=!1},{default:f(()=>[...r[24]||=[a(`Закрыть`,-1)]]),_:1},8,[`disabled`]),d(t(w),{type:`primary`,loading:P.value,disabled:N.value||J.value||Y.value||!!K.value||!!q.value,onClick:$},{default:f(()=>[...r[25]||=[a(`Сохранить`,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1},8,[`title`])]),_:1},8,[`show`,`mask-closable`,`close-on-esc`]),d(t(x),{show:!!B.value,"mask-closable":!P.value,"close-on-esc":!P.value,"onUpdate:show":r[13]||=e=>!P.value&&(B.value=null)},{default:f(()=>[d(t(k),{class:`task-modal`,title:`Удалить задачу?`,role:`dialog`,"aria-modal":`true`},{default:f(()=>[o(`p`,null,`Удалить «`+c(B.value?.title)+`»? Это действие необратимо.`,1),d(t(A),{justify:`end`,class:`delete-actions`},{default:f(()=>[d(t(w),{disabled:P.value,onClick:r[12]||=e=>B.value=null},{default:f(()=>[...r[26]||=[a(`Отмена`,-1)]]),_:1},8,[`disabled`]),d(t(w),{type:`error`,loading:P.value,onClick:Se},{default:f(()=>[...r[27]||=[a(`Удалить`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`show`,`mask-closable`,`close-on-esc`])]),_:1},8,[`locale`,`date-locale`]))}}),[[`__scopeId`,`data-v-ff75f974`]]),W=e({__name:`TasksView`,setup(e){return(e,t)=>(i(),n(U))}});export{W as default}; \ No newline at end of file diff --git a/frontend/dist/assets/TeamStoryView-CjIQg04l.js b/frontend/dist/assets/TeamStoryView-KqctY9Vy.js similarity index 96% rename from frontend/dist/assets/TeamStoryView-CjIQg04l.js rename to frontend/dist/assets/TeamStoryView-KqctY9Vy.js index 6ea9657..e013e7c 100644 --- a/frontend/dist/assets/TeamStoryView-CjIQg04l.js +++ b/frontend/dist/assets/TeamStoryView-KqctY9Vy.js @@ -1 +1 @@ -import{At as e,Bn as t,Cn as n,Ct as r,Jt as i,Ot as a,Qt as o,St as s,Tt as c,Vn as l,Xt as u,Zt as d,cn as f,gt as p,kt as m,sn as h,u as g,vn as _,wt as v,xt as y,zn as b,zt as ee}from"./client-DrrW410h.js";import{n as x,r as te,t as ne}from"./ui-CXICC9ah.js";import{t as re}from"./Button-BZxcJJGv.js";import{t as S}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{n as ie,t as ae}from"./PlaceBlock-DlajveRU.js";import{t as C}from"./Input-Bg8PolMg.js";import{t as w}from"./Alert-CewvQG_z.js";import{t as T}from"./Flex-YVOjVK0A.js";import{t as oe}from"./Rate-Cc7RqaE1.js";import{t as se}from"./QrCode-BtvoRbPn.js";import{D as E,dt as D,i as ce,o as le,r as ue}from"./index-cNEa5D1b.js";import{t as O}from"./HeaderText-BIRJQexj.js";import{t as de}from"./useDeviceContext-XjFYIFKI.js";import{t as k}from"./MessagePaper-B4rdZ1RT.js";var A={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 24 24`},j=e({name:`ContactMailRound`,render:function(e,t){return i(),c(`svg`,A,t[0]||=[s(`path`,{d:`M21 8V7l-3 2l-3-2v1l2.72 1.82a.5.5 0 0 0 .55 0L21 8zm1-5H2C.9 3 0 3.9 0 5v14c0 1.1.9 2 2 2h20c1.1 0 1.99-.9 1.99-2L24 5c0-1.1-.9-2-2-2zM8 6c1.66 0 3 1.34 3 3s-1.34 3-3 3s-3-1.34-3-3s1.34-3 3-3zm6 12H2v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1zm7.5-6h-7c-.28 0-.5-.22-.5-.5v-5c0-.28.22-.5.5-.5h7c.28 0 .5.22.5.5v5c0 .28-.22.5-.5.5z`,fill:`currentColor`},null,-1)])}}),M={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 512 512`},N=e({name:`Footsteps`,render:function(e,t){return i(),c(`svg`,M,t[0]||=[s(`path`,{d:`M133.83 361.27c-22.61 0-41-8.17-54.79-24.39s-22.84-40.29-28.11-75.31c-7.76-51.61-.06-95.11 21.68-122.48c12.8-16.12 29.6-25.44 48.58-26.94c16.25-1.3 40.54 5.29 64 44c14.69 24.24 25.86 56.44 30.65 88.34c5.79 38.51 1.48 66.86-13.18 86.65c-11.64 15.72-29.54 25.46-53.21 29a106.46 106.46 0 0 1-15.62 1.13z`,fill:`currentColor`},null,-1),s(`path`,{d:`M173 496c-13.21 0-26.6-4.23-38.66-12.36a79.79 79.79 0 0 1-33.52-50.6c-2.85-14.66-1.14-26.31 5.22-35.64c10.33-15.15 28.87-18.56 48.49-22.18c2.07-.38 4.17-.76 6.3-1.17c4.52-.86 9.14-2 13.62-3.11c16.78-4.14 34.14-8.43 48.47 1.75c9.59 6.8 15 18.36 16.62 35.32c1.84 19.57-2.36 39.1-11.83 55c-10.19 17.11-25.47 28.42-43 31.86A61 61 0 0 1 173 496z`,fill:`currentColor`},null,-1),s(`path`,{d:`M378.17 265.27a106.69 106.69 0 0 1-15.6-1.2c-23.66-3.5-41.56-13.25-53.2-29c-14.66-19.79-19-48.13-13.18-86.65c4.79-31.93 15.93-64.1 30.55-88.25c23.34-38.57 47.66-45.26 64-44.08c18.92 1.38 35.69 10.57 48.51 26.6c21.89 27.37 29.65 71 21.86 122.84c-5.27 35-14.2 58.95-28.11 75.31s-32.22 24.43-54.83 24.43z`,fill:`currentColor`},null,-1),s(`path`,{d:`M339 400a61 61 0 0 1-11.68-1.13c-17.56-3.44-32.84-14.75-43-31.86c-9.47-15.9-13.67-35.43-11.83-55c1.6-17 7-28.52 16.62-35.33c14.33-10.17 31.69-5.89 48.47-1.74c4.48 1.1 9.1 2.24 13.62 3.11l6.29 1.17c19.63 3.61 38.17 7 48.5 22.17c6.36 9.33 8.07 21 5.22 35.64a79.78 79.78 0 0 1-33.52 50.61C365.56 395.78 352.17 400 339 400z`,fill:`currentColor`},null,-1)])}}),P={},F={class:`belt-block`};function I(e,t){return i(),c(`div`,null,[t[0]||=s(`div`,{class:`shadow shadow-top`},null,-1),t[1]||=s(`div`,{class:`shadow shadow-bottom`},null,-1),s(`div`,F,[d(e.$slots,`default`,{},void 0,!0)])])}var L=S(P,[[`render`,I],[`__scopeId`,`data-v-bec154c5`]]),R={},z={class:`plate-block`},B={class:`metal-plate-block`};function V(e,t){return i(),c(`div`,z,[s(`div`,B,[d(e.$slots,`default`,{},void 0,!0)]),t[0]||=s(`div`,{class:`pin pin-top-left`},null,-1),t[1]||=s(`div`,{class:`pin pin-top-right`},null,-1),t[2]||=s(`div`,{class:`pin pin-bottom-right`},null,-1),t[3]||=s(`div`,{class:`pin pin-bottom-left`},null,-1)])}var H=S(R,[[`render`,V],[`__scopeId`,`data-v-4833fe7e`]]),U={class:`form-custom`},W={class:`center-block-700`},G={class:`controller`},K={class:`counters-block`},q={class:`counter-block`},J={class:`places-text`},fe={class:`counter-block`},Y={class:`places-text`},X={class:`game-input`},Z=[`placeholder`,`disabled`],Q=[`aria-busy`,`disabled`],pe=S(e({__name:`GameInputForm`,props:{addAction:{type:Function},allPlacesCount:{},newPlacesCount:{},gameStatus:{}},setup(e){let t=e,o=_(``),d=_(!1);async function g(){if(!(d.value||t.gameStatus!=`run`||o.value.length==0)){d.value=!0;try{await t.addAction(o.value)&&(o.value=``)}finally{d.value=!1}}}function y(e){e%=100;let t=Math.floor(e/10)%10,n=e%10,r=`–`,i=`–`;return t>0&&(r=String(t)),(n>0||t>0)&&(i=String(n)),[r,i]}return(_,b)=>(i(),c(`div`,U,[m(L,{class:`input-form`},{default:h(()=>[m(H,{class:`controller-metal controller-metal-left`}),m(H,{class:`controller-metal controller-metal-right`}),s(`div`,W,[s(`div`,G,[s(`div`,K,[s(`div`,q,[s(`div`,J,[m(n(x),{class:`icon-for-counter`},{default:h(()=>[m(n(N))]),_:1})]),(i(!0),c(p,null,u(y(e.allPlacesCount),(e,t)=>(i(),c(`div`,{key:t,class:`places-text places-text-number`},l(e),1))),128))]),s(`div`,fe,[s(`div`,Y,[m(n(x),{class:`icon-for-counter`},{default:h(()=>[m(n(j))]),_:1})]),(i(!0),c(p,null,u(y(e.newPlacesCount),(e,t)=>(i(),c(`div`,{key:t,class:`places-text places-text-number`},l(e),1))),128))])]),s(`div`,X,[f(s(`input`,{id:`run`,class:`game-input-run`,"onUpdate:modelValue":b[0]||=e=>o.value=e,type:`text`,placeholder:t.gameStatus==`run`?`Место назначения`:`Ходы запрещены`,disabled:t.gameStatus!=`run`||d.value},null,8,Z),[[D,o.value]])]),b[3]||=s(`div`,{class:`game-button-run-shadow`},null,-1),s(`button`,{class:`game-button-run`,type:`submit`,"aria-busy":d.value,disabled:t.gameStatus!=`run`||o.value.length==0||d.value,onClick:g},[t.gameStatus==`run`?(i(),r(O,{key:0},{default:h(()=>[a(l(d.value?`Отправляем…`:`Поехали`),1)]),_:1})):v(``,!0),t.gameStatus==`pause`||t.gameStatus==`draft`?(i(),r(O,{key:1},{default:h(()=>[...b[1]||=[a(`Ждём`,-1)]]),_:1})):v(``,!0),t.gameStatus==`finish`?(i(),r(O,{key:2},{default:h(()=>[...b[2]||=[a(`Всё`,-1)]]),_:1})):v(``,!0)],8,Q)])])]),_:1})]))}}),[[`__scopeId`,`data-v-b5d098e6`]]),me={key:1,class:`center-block-custom`},he={class:`width700`},ge={key:0,class:`width700`},_e=[`disabled`],ve={key:1,class:`width700`},ye={class:`question-text`},be={class:`qr-main-block-text`},xe={class:`qr-block`},Se={key:4,class:`edit-panel`},$=S(e({__name:`TeamStoryPage`,setup(e){let d=le(),f=ne(),x=ce(),S=te(),D=g(),O=String(D.params.id),A=D.query.password;de(()=>({teamID:O,password:typeof A==`string`?A:void 0}));let j=_(0),M=_([]),N=_(``),P=0,F=0,I=!1,L=_(),R=_({introduction:void 0,places:[],questions:[]}),z=_({ID:void 0,name:void 0,description:void 0,startAt:void 0,status:void 0,format:void 0,location:void 0,scenario:void 0,teams:void 0,export:void 0,wifiName:void 0,wifiPassword:void 0}),B=_(``),V=y(()=>z.value?.teams?.find(e=>e.ID===O)?.name),H=y(()=>f.environment===`prod`&&z.value?.export?.state===`ready`),U=`game-review-${O}`,W=_(localStorage.getItem(U)===`1`),G=_(0),K=_(0),q=_(``),J=_(!1),fe=window.location.href,Y=()=>{let e=L.value;return e?e.scrollHeight-e.scrollTop-e.clientHeight<1:!1};async function X(e=!1){let t=++P;F++;let n;try{n=await x.GetTeamStory({ID:O,password:A})}catch(e){return t===P?(N.value=`Не удалось загрузить дело. Попробуйте обновить страницу.`,console.error(`Failed to load team story:`,e),!1):!1}finally{F--}if(t!==P)return!1;let r=R.value;N.value=``,z.value=n.game;let i=Y();i&&(j.value=0);let a=R.value.places.length;R.value={background:n.story.background,introduction:n.story.introduction,places:n.story.places?.map((e,t)=>({place:e,mode:r?.places[t]?.mode||`show`}))||[],questions:n.story.questions||[]},M.value=n.actions||[];let o=R.value.places.length;if(o>a&&a!=0&&(j.value+=o-a),await ee(),e){let e=L.value,t=e?.querySelectorAll(`.story-place`),n=t?.item(t.length-1);e&&n&&e.scrollTo({top:e.scrollTop+n.getBoundingClientRect().top-e.getBoundingClientRect().top,behavior:`instant`}),j.value=0}else if(i&&a!=0){let e=L.value;if(!e)return!1;e.scrollTop=e.scrollHeight}return!0}f.load().catch(e=>{S.error(`Не удалось загрузить сведения сервера`),console.error(`Failed to load server information:`,e)}),X(),$();async function Z(e){if(I)return!1;I=!0,P++;try{return await x.AddTeamAction({ID:O,password:A,code:e}),B.value=``,await X(!0)||S.error(`Ход сохранён, но не удалось обновить дело. Обновите страницу.`),!0}catch(e){return S.error(e instanceof Error?e.message:`Не удалось сделать ход`),!1}finally{I=!1}}let Q=_({});async function $(){let e;try{e=await x.GetTeamAnswers({ID:O,password:A})}catch(e){N.value=`Не удалось загрузить ответы команды. Попробуйте обновить страницу.`,console.error(`Failed to load team answers:`,e);return}N.value=``;let t={};for(let n of e.answers||[])t[n.questionCode||``]=n.answer||``;Q.value=t}async function Ce(){await x.SubmitTeamAnswers({ID:O,password:A,answers:(R.value.questions||[]).map(e=>({questionCode:e.code,answer:Q.value[e.code||``]||``}))}),S.success(`Ответы сохранены`),await $()}let we=y(()=>z.value?.format!==`offline`&&(z.value?.status==`run`||z.value?.status==`pause`)),Te=y(()=>z.value?.format!==`offline`&&(R.value.questions?.length||0)>0),Ee={Input:{border:`1px dashed black`,borderDisabled:`1px dashed black`,borderFocus:`1px solid black`,borderHover:`1px dashed black`,boxShadowFocus:`0 0 0 1px black`,caretColor:`black`,color:`transparent`,colorDisabled:`transparent`,colorFocus:`transparent`,fontSizeMedium:`18px`,placeholderColor:`black`,placeholderColorDisabled:`black`,textColor:`black`,textColorDisabled:`black`},Rate:{itemColor:`black`,itemColorHover:`#b8860b`,itemColorActive:`#b8860b`}};async function De(){if(!G.value||!K.value||q.value.trim()===``){S.error(`Поставьте оценки и напишите отзыв`);return}J.value=!0,await x.CreateGameReview({gameID:Number(z.value?.ID),teamID:O,password:A,rating:G.value,difficulty:K.value,text:q.value.trim()}),J.value=!1,W.value=!0,localStorage.setItem(U,`1`),S.success(`Спасибо за отзыв`)}async function Oe(){await x.DeleteLastTeamAction({ID:O}),await X(),B.value=``}return ue(()=>{!I&&F===0&&X()},2e3),(e,f)=>{let g=o(`n-space`);return i(),c(p,null,[R.value.background&&!H.value?(i(),c(`div`,{key:0,class:`case-background`,style:t({backgroundImage:`url(${JSON.stringify(R.value.background)})`}),"aria-hidden":`true`},null,4)):v(``,!0),H.value?(i(),c(`div`,me,[s(`div`,he,[m(n(w),{type:`error`,role:`alert`},{default:h(()=>[...f[4]||=[a(` Подключитесь к Wi-Fi организатора и обновите страницу. `,-1)]]),_:1})])])):(i(),c(`div`,{key:2,class:b([`center-block-custom bottom-margin smooth-scroll`,{"game-finished":z.value?.status===`finish`}]),ref_key:`scrollContainer`,ref:L},[z.value?.status===`finish`?(i(),c(`div`,ge,[m(k,{role:`status`},{default:h(()=>[...f[5]||=[s(`div`,{class:`font`},`Игра завершена. Спасибо за участие!`,-1)]]),_:1}),W.value?v(``,!0):(i(),r(k,{key:0,class:`review-block`},{default:h(()=>[f[8]||=s(`div`,{class:`font`},`Оцените игру`,-1),f[9]||=s(`hr`,{class:`questions-hr`},null,-1),m(n(E),{"theme-overrides":Ee},{default:h(()=>[f[6]||=s(`div`,{class:`review-rating font`},`Оценка`,-1),m(n(oe),{value:G.value,"onUpdate:value":f[0]||=e=>G.value=e,count:5,class:`review-rate`},null,8,[`value`]),f[7]||=s(`div`,{class:`review-rating font`},`Сложность`,-1),m(n(oe),{value:K.value,"onUpdate:value":f[1]||=e=>K.value=e,count:3,class:`review-rate`},null,8,[`value`]),m(n(C),{value:q.value,"onUpdate:value":f[2]||=e=>q.value=e,class:`review-input`,type:`textarea`,autosize:{minRows:4,maxRows:8},placeholder:`Расскажите, как прошла игра`},null,8,[`value`]),m(n(T),{justify:`end`,class:`questions-actions`},{default:h(()=>[s(`button`,{type:`button`,class:`paper-button`,disabled:J.value,onClick:De},` Отправить отзыв `,8,_e)]),_:1})]),_:1})]),_:1}))])):(i(),c(`div`,ve,[N.value?(i(),r(n(w),{key:0,type:`error`,role:`alert`},{default:h(()=>[a(l(N.value),1)]),_:1})):v(``,!0),m(pe,{addAction:Z,allPlacesCount:R.value.places.length,newPlacesCount:j.value,gameStatus:z.value?.status||``},null,8,[`allPlacesCount`,`newPlacesCount`,`gameStatus`]),z.value?.format!==`offline`&&z.value?.status&&z.value.status!=`draft`&&R.value.introduction&&(R.value.introduction.text||R.value.introduction.audio)?(i(),r(ie,{key:1,introduction:R.value.introduction,mode:`show`},null,8,[`introduction`])):v(``,!0),Te.value&&z.value?.status&&z.value.status!=`draft`?(i(),r(k,{key:2,class:`questions-block`},{default:h(()=>[f[10]||=s(`div`,{class:`font`},`Вопросы дела`,-1),f[11]||=s(`hr`,{class:`questions-hr`},null,-1),f[12]||=s(`p`,{class:`questions-hint font`},` Ответьте на вопросы дела. Ответы можно менять, пока игра идёт. `,-1),m(n(E),{"theme-overrides":Ee},{default:h(()=>[(i(!0),c(p,null,u(R.value.questions,e=>(i(),c(`div`,{key:e.code,class:`question-item font`},[s(`div`,ye,l(e.code)+`: `+l(e.text),1),m(n(C),{value:Q.value[e.code||``],"onUpdate:value":t=>Q.value[e.code||``]=t,type:`textarea`,autosize:{minRows:2,maxRows:6},disabled:!we.value,placeholder:`Ваш ответ...`},null,8,[`value`,`onUpdate:value`,`disabled`])]))),128)),we.value?(i(),r(n(T),{key:0,justify:`end`,class:`questions-actions`},{default:h(()=>[s(`button`,{type:`button`,class:`paper-button`,onClick:f[3]||=e=>Ce()},` Сохранить ответы `)]),_:1})):v(``,!0)]),_:1})]),_:1})):v(``,!0),(i(!0),c(p,null,u(R.value.places,(e,t)=>(i(),c(`div`,{key:`${z.value?.format}:${e.place.code}`,class:`story-place`},[m(ae,{place:e.place,mode:e.mode,"onUpdate:mode":t=>e.mode=t,mcp:n(d).hasRole(`author`)&&M.value[t]?.mcp,addAction:Z},null,8,[`place`,`mode`,`onUpdate:mode`,`mcp`])]))),128)),R.value.places.length==0&&z.value?.status==`draft`?(i(),r(k,{key:3,class:`qr-main-block`},{default:h(()=>[m(g,{vertical:``},{default:h(()=>[s(`p`,be,[s(`strong`,null,l(V.value),1)]),f[13]||=s(`h2`,{class:`qr-main-block-text`},`Код для подключения`,-1),s(`div`,xe,[m(n(se),{value:n(fe),size:300,padding:0},null,8,[`value`])]),f[14]||=s(`p`,{class:`qr-main-block-text`},`Игра скоро начнется`,-1)]),_:1})]),_:1})):v(``,!0),n(d).hasRole(`author`)&&R.value.places.length>0?(i(),c(`div`,Se,[m(n(T),{justify:`end`},{default:h(()=>[m(n(re),{onClick:Oe},{default:h(()=>[...f[15]||=[a(`Удалить последний ход`,-1)]]),_:1})]),_:1})])):v(``,!0)]))],2))],64)}}}),[[`__scopeId`,`data-v-9262e863`]]),Ce=e({__name:`TeamStoryView`,setup(e){let t=g();return(e,a)=>(i(),r($,{key:n(t).fullPath}))}});export{Ce as default}; \ No newline at end of file +import{At as e,Bn as t,Cn as n,Ct as r,Jt as i,Ot as a,Qt as o,St as s,Tt as c,Vn as l,Xt as u,Zt as d,cn as f,gt as p,kt as m,sn as h,u as g,vn as _,wt as v,xt as y,zn as b,zt as ee}from"./client-DrrW410h.js";import{n as x,r as te,t as ne}from"./ui-BXphkCO3.js";import{t as re}from"./Button-VP0HlDWp.js";import{t as S}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{n as ie,t as ae}from"./PlaceBlock-rRE4IOP9.js";import{t as C}from"./Input-B0pT-V_P.js";import{t as w}from"./Alert-CKEVYkKu.js";import{t as T}from"./Flex-C50LOLeC.js";import{t as oe}from"./Rate-DzWTiM8f.js";import{t as se}from"./QrCode-BtvoRbPn.js";import{D as E,dt as D,i as ce,o as le,r as ue}from"./index-CvfVA1ID.js";import{t as O}from"./HeaderText-BIRJQexj.js";import{t as de}from"./useDeviceContext-BaGiXmRj.js";import{t as k}from"./MessagePaper-B4rdZ1RT.js";var A={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 24 24`},j=e({name:`ContactMailRound`,render:function(e,t){return i(),c(`svg`,A,t[0]||=[s(`path`,{d:`M21 8V7l-3 2l-3-2v1l2.72 1.82a.5.5 0 0 0 .55 0L21 8zm1-5H2C.9 3 0 3.9 0 5v14c0 1.1.9 2 2 2h20c1.1 0 1.99-.9 1.99-2L24 5c0-1.1-.9-2-2-2zM8 6c1.66 0 3 1.34 3 3s-1.34 3-3 3s-3-1.34-3-3s1.34-3 3-3zm6 12H2v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1zm7.5-6h-7c-.28 0-.5-.22-.5-.5v-5c0-.28.22-.5.5-.5h7c.28 0 .5.22.5.5v5c0 .28-.22.5-.5.5z`,fill:`currentColor`},null,-1)])}}),M={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 512 512`},N=e({name:`Footsteps`,render:function(e,t){return i(),c(`svg`,M,t[0]||=[s(`path`,{d:`M133.83 361.27c-22.61 0-41-8.17-54.79-24.39s-22.84-40.29-28.11-75.31c-7.76-51.61-.06-95.11 21.68-122.48c12.8-16.12 29.6-25.44 48.58-26.94c16.25-1.3 40.54 5.29 64 44c14.69 24.24 25.86 56.44 30.65 88.34c5.79 38.51 1.48 66.86-13.18 86.65c-11.64 15.72-29.54 25.46-53.21 29a106.46 106.46 0 0 1-15.62 1.13z`,fill:`currentColor`},null,-1),s(`path`,{d:`M173 496c-13.21 0-26.6-4.23-38.66-12.36a79.79 79.79 0 0 1-33.52-50.6c-2.85-14.66-1.14-26.31 5.22-35.64c10.33-15.15 28.87-18.56 48.49-22.18c2.07-.38 4.17-.76 6.3-1.17c4.52-.86 9.14-2 13.62-3.11c16.78-4.14 34.14-8.43 48.47 1.75c9.59 6.8 15 18.36 16.62 35.32c1.84 19.57-2.36 39.1-11.83 55c-10.19 17.11-25.47 28.42-43 31.86A61 61 0 0 1 173 496z`,fill:`currentColor`},null,-1),s(`path`,{d:`M378.17 265.27a106.69 106.69 0 0 1-15.6-1.2c-23.66-3.5-41.56-13.25-53.2-29c-14.66-19.79-19-48.13-13.18-86.65c4.79-31.93 15.93-64.1 30.55-88.25c23.34-38.57 47.66-45.26 64-44.08c18.92 1.38 35.69 10.57 48.51 26.6c21.89 27.37 29.65 71 21.86 122.84c-5.27 35-14.2 58.95-28.11 75.31s-32.22 24.43-54.83 24.43z`,fill:`currentColor`},null,-1),s(`path`,{d:`M339 400a61 61 0 0 1-11.68-1.13c-17.56-3.44-32.84-14.75-43-31.86c-9.47-15.9-13.67-35.43-11.83-55c1.6-17 7-28.52 16.62-35.33c14.33-10.17 31.69-5.89 48.47-1.74c4.48 1.1 9.1 2.24 13.62 3.11l6.29 1.17c19.63 3.61 38.17 7 48.5 22.17c6.36 9.33 8.07 21 5.22 35.64a79.78 79.78 0 0 1-33.52 50.61C365.56 395.78 352.17 400 339 400z`,fill:`currentColor`},null,-1)])}}),P={},F={class:`belt-block`};function I(e,t){return i(),c(`div`,null,[t[0]||=s(`div`,{class:`shadow shadow-top`},null,-1),t[1]||=s(`div`,{class:`shadow shadow-bottom`},null,-1),s(`div`,F,[d(e.$slots,`default`,{},void 0,!0)])])}var L=S(P,[[`render`,I],[`__scopeId`,`data-v-bec154c5`]]),R={},z={class:`plate-block`},B={class:`metal-plate-block`};function V(e,t){return i(),c(`div`,z,[s(`div`,B,[d(e.$slots,`default`,{},void 0,!0)]),t[0]||=s(`div`,{class:`pin pin-top-left`},null,-1),t[1]||=s(`div`,{class:`pin pin-top-right`},null,-1),t[2]||=s(`div`,{class:`pin pin-bottom-right`},null,-1),t[3]||=s(`div`,{class:`pin pin-bottom-left`},null,-1)])}var H=S(R,[[`render`,V],[`__scopeId`,`data-v-4833fe7e`]]),U={class:`form-custom`},W={class:`center-block-700`},G={class:`controller`},K={class:`counters-block`},q={class:`counter-block`},J={class:`places-text`},fe={class:`counter-block`},Y={class:`places-text`},X={class:`game-input`},Z=[`placeholder`,`disabled`],Q=[`aria-busy`,`disabled`],pe=S(e({__name:`GameInputForm`,props:{addAction:{type:Function},allPlacesCount:{},newPlacesCount:{},gameStatus:{}},setup(e){let t=e,o=_(``),d=_(!1);async function g(){if(!(d.value||t.gameStatus!=`run`||o.value.length==0)){d.value=!0;try{await t.addAction(o.value)&&(o.value=``)}finally{d.value=!1}}}function y(e){e%=100;let t=Math.floor(e/10)%10,n=e%10,r=`–`,i=`–`;return t>0&&(r=String(t)),(n>0||t>0)&&(i=String(n)),[r,i]}return(_,b)=>(i(),c(`div`,U,[m(L,{class:`input-form`},{default:h(()=>[m(H,{class:`controller-metal controller-metal-left`}),m(H,{class:`controller-metal controller-metal-right`}),s(`div`,W,[s(`div`,G,[s(`div`,K,[s(`div`,q,[s(`div`,J,[m(n(x),{class:`icon-for-counter`},{default:h(()=>[m(n(N))]),_:1})]),(i(!0),c(p,null,u(y(e.allPlacesCount),(e,t)=>(i(),c(`div`,{key:t,class:`places-text places-text-number`},l(e),1))),128))]),s(`div`,fe,[s(`div`,Y,[m(n(x),{class:`icon-for-counter`},{default:h(()=>[m(n(j))]),_:1})]),(i(!0),c(p,null,u(y(e.newPlacesCount),(e,t)=>(i(),c(`div`,{key:t,class:`places-text places-text-number`},l(e),1))),128))])]),s(`div`,X,[f(s(`input`,{id:`run`,class:`game-input-run`,"onUpdate:modelValue":b[0]||=e=>o.value=e,type:`text`,placeholder:t.gameStatus==`run`?`Место назначения`:`Ходы запрещены`,disabled:t.gameStatus!=`run`||d.value},null,8,Z),[[D,o.value]])]),b[3]||=s(`div`,{class:`game-button-run-shadow`},null,-1),s(`button`,{class:`game-button-run`,type:`submit`,"aria-busy":d.value,disabled:t.gameStatus!=`run`||o.value.length==0||d.value,onClick:g},[t.gameStatus==`run`?(i(),r(O,{key:0},{default:h(()=>[a(l(d.value?`Отправляем…`:`Поехали`),1)]),_:1})):v(``,!0),t.gameStatus==`pause`||t.gameStatus==`draft`?(i(),r(O,{key:1},{default:h(()=>[...b[1]||=[a(`Ждём`,-1)]]),_:1})):v(``,!0),t.gameStatus==`finish`?(i(),r(O,{key:2},{default:h(()=>[...b[2]||=[a(`Всё`,-1)]]),_:1})):v(``,!0)],8,Q)])])]),_:1})]))}}),[[`__scopeId`,`data-v-b5d098e6`]]),me={key:1,class:`center-block-custom`},he={class:`width700`},ge={key:0,class:`width700`},_e=[`disabled`],ve={key:1,class:`width700`},ye={class:`question-text`},be={class:`qr-main-block-text`},xe={class:`qr-block`},Se={key:4,class:`edit-panel`},$=S(e({__name:`TeamStoryPage`,setup(e){let d=le(),f=ne(),x=ce(),S=te(),D=g(),O=String(D.params.id),A=D.query.password;de(()=>({teamID:O,password:typeof A==`string`?A:void 0}));let j=_(0),M=_([]),N=_(``),P=0,F=0,I=!1,L=_(),R=_({introduction:void 0,places:[],questions:[]}),z=_({ID:void 0,name:void 0,description:void 0,startAt:void 0,status:void 0,format:void 0,location:void 0,scenario:void 0,teams:void 0,export:void 0,wifiName:void 0,wifiPassword:void 0}),B=_(``),V=y(()=>z.value?.teams?.find(e=>e.ID===O)?.name),H=y(()=>f.environment===`prod`&&z.value?.export?.state===`ready`),U=`game-review-${O}`,W=_(localStorage.getItem(U)===`1`),G=_(0),K=_(0),q=_(``),J=_(!1),fe=window.location.href,Y=()=>{let e=L.value;return e?e.scrollHeight-e.scrollTop-e.clientHeight<1:!1};async function X(e=!1){let t=++P;F++;let n;try{n=await x.GetTeamStory({ID:O,password:A})}catch(e){return t===P?(N.value=`Не удалось загрузить дело. Попробуйте обновить страницу.`,console.error(`Failed to load team story:`,e),!1):!1}finally{F--}if(t!==P)return!1;let r=R.value;N.value=``,z.value=n.game;let i=Y();i&&(j.value=0);let a=R.value.places.length;R.value={background:n.story.background,introduction:n.story.introduction,places:n.story.places?.map((e,t)=>({place:e,mode:r?.places[t]?.mode||`show`}))||[],questions:n.story.questions||[]},M.value=n.actions||[];let o=R.value.places.length;if(o>a&&a!=0&&(j.value+=o-a),await ee(),e){let e=L.value,t=e?.querySelectorAll(`.story-place`),n=t?.item(t.length-1);e&&n&&e.scrollTo({top:e.scrollTop+n.getBoundingClientRect().top-e.getBoundingClientRect().top,behavior:`instant`}),j.value=0}else if(i&&a!=0){let e=L.value;if(!e)return!1;e.scrollTop=e.scrollHeight}return!0}f.load().catch(e=>{S.error(`Не удалось загрузить сведения сервера`),console.error(`Failed to load server information:`,e)}),X(),$();async function Z(e){if(I)return!1;I=!0,P++;try{return await x.AddTeamAction({ID:O,password:A,code:e}),B.value=``,await X(!0)||S.error(`Ход сохранён, но не удалось обновить дело. Обновите страницу.`),!0}catch(e){return S.error(e instanceof Error?e.message:`Не удалось сделать ход`),!1}finally{I=!1}}let Q=_({});async function $(){let e;try{e=await x.GetTeamAnswers({ID:O,password:A})}catch(e){N.value=`Не удалось загрузить ответы команды. Попробуйте обновить страницу.`,console.error(`Failed to load team answers:`,e);return}N.value=``;let t={};for(let n of e.answers||[])t[n.questionCode||``]=n.answer||``;Q.value=t}async function Ce(){await x.SubmitTeamAnswers({ID:O,password:A,answers:(R.value.questions||[]).map(e=>({questionCode:e.code,answer:Q.value[e.code||``]||``}))}),S.success(`Ответы сохранены`),await $()}let we=y(()=>z.value?.format!==`offline`&&(z.value?.status==`run`||z.value?.status==`pause`)),Te=y(()=>z.value?.format!==`offline`&&(R.value.questions?.length||0)>0),Ee={Input:{border:`1px dashed black`,borderDisabled:`1px dashed black`,borderFocus:`1px solid black`,borderHover:`1px dashed black`,boxShadowFocus:`0 0 0 1px black`,caretColor:`black`,color:`transparent`,colorDisabled:`transparent`,colorFocus:`transparent`,fontSizeMedium:`18px`,placeholderColor:`black`,placeholderColorDisabled:`black`,textColor:`black`,textColorDisabled:`black`},Rate:{itemColor:`black`,itemColorHover:`#b8860b`,itemColorActive:`#b8860b`}};async function De(){if(!G.value||!K.value||q.value.trim()===``){S.error(`Поставьте оценки и напишите отзыв`);return}J.value=!0,await x.CreateGameReview({gameID:Number(z.value?.ID),teamID:O,password:A,rating:G.value,difficulty:K.value,text:q.value.trim()}),J.value=!1,W.value=!0,localStorage.setItem(U,`1`),S.success(`Спасибо за отзыв`)}async function Oe(){await x.DeleteLastTeamAction({ID:O}),await X(),B.value=``}return ue(()=>{!I&&F===0&&X()},2e3),(e,f)=>{let g=o(`n-space`);return i(),c(p,null,[R.value.background&&!H.value?(i(),c(`div`,{key:0,class:`case-background`,style:t({backgroundImage:`url(${JSON.stringify(R.value.background)})`}),"aria-hidden":`true`},null,4)):v(``,!0),H.value?(i(),c(`div`,me,[s(`div`,he,[m(n(w),{type:`error`,role:`alert`},{default:h(()=>[...f[4]||=[a(` Подключитесь к Wi-Fi организатора и обновите страницу. `,-1)]]),_:1})])])):(i(),c(`div`,{key:2,class:b([`center-block-custom bottom-margin smooth-scroll`,{"game-finished":z.value?.status===`finish`}]),ref_key:`scrollContainer`,ref:L},[z.value?.status===`finish`?(i(),c(`div`,ge,[m(k,{role:`status`},{default:h(()=>[...f[5]||=[s(`div`,{class:`font`},`Игра завершена. Спасибо за участие!`,-1)]]),_:1}),W.value?v(``,!0):(i(),r(k,{key:0,class:`review-block`},{default:h(()=>[f[8]||=s(`div`,{class:`font`},`Оцените игру`,-1),f[9]||=s(`hr`,{class:`questions-hr`},null,-1),m(n(E),{"theme-overrides":Ee},{default:h(()=>[f[6]||=s(`div`,{class:`review-rating font`},`Оценка`,-1),m(n(oe),{value:G.value,"onUpdate:value":f[0]||=e=>G.value=e,count:5,class:`review-rate`},null,8,[`value`]),f[7]||=s(`div`,{class:`review-rating font`},`Сложность`,-1),m(n(oe),{value:K.value,"onUpdate:value":f[1]||=e=>K.value=e,count:3,class:`review-rate`},null,8,[`value`]),m(n(C),{value:q.value,"onUpdate:value":f[2]||=e=>q.value=e,class:`review-input`,type:`textarea`,autosize:{minRows:4,maxRows:8},placeholder:`Расскажите, как прошла игра`},null,8,[`value`]),m(n(T),{justify:`end`,class:`questions-actions`},{default:h(()=>[s(`button`,{type:`button`,class:`paper-button`,disabled:J.value,onClick:De},` Отправить отзыв `,8,_e)]),_:1})]),_:1})]),_:1}))])):(i(),c(`div`,ve,[N.value?(i(),r(n(w),{key:0,type:`error`,role:`alert`},{default:h(()=>[a(l(N.value),1)]),_:1})):v(``,!0),m(pe,{addAction:Z,allPlacesCount:R.value.places.length,newPlacesCount:j.value,gameStatus:z.value?.status||``},null,8,[`allPlacesCount`,`newPlacesCount`,`gameStatus`]),z.value?.format!==`offline`&&z.value?.status&&z.value.status!=`draft`&&R.value.introduction&&(R.value.introduction.text||R.value.introduction.audio)?(i(),r(ie,{key:1,introduction:R.value.introduction,mode:`show`},null,8,[`introduction`])):v(``,!0),Te.value&&z.value?.status&&z.value.status!=`draft`?(i(),r(k,{key:2,class:`questions-block`},{default:h(()=>[f[10]||=s(`div`,{class:`font`},`Вопросы дела`,-1),f[11]||=s(`hr`,{class:`questions-hr`},null,-1),f[12]||=s(`p`,{class:`questions-hint font`},` Ответьте на вопросы дела. Ответы можно менять, пока игра идёт. `,-1),m(n(E),{"theme-overrides":Ee},{default:h(()=>[(i(!0),c(p,null,u(R.value.questions,e=>(i(),c(`div`,{key:e.code,class:`question-item font`},[s(`div`,ye,l(e.code)+`: `+l(e.text),1),m(n(C),{value:Q.value[e.code||``],"onUpdate:value":t=>Q.value[e.code||``]=t,type:`textarea`,autosize:{minRows:2,maxRows:6},disabled:!we.value,placeholder:`Ваш ответ...`},null,8,[`value`,`onUpdate:value`,`disabled`])]))),128)),we.value?(i(),r(n(T),{key:0,justify:`end`,class:`questions-actions`},{default:h(()=>[s(`button`,{type:`button`,class:`paper-button`,onClick:f[3]||=e=>Ce()},` Сохранить ответы `)]),_:1})):v(``,!0)]),_:1})]),_:1})):v(``,!0),(i(!0),c(p,null,u(R.value.places,(e,t)=>(i(),c(`div`,{key:`${z.value?.format}:${e.place.code}`,class:`story-place`},[m(ae,{place:e.place,mode:e.mode,"onUpdate:mode":t=>e.mode=t,mcp:n(d).hasRole(`author`)&&M.value[t]?.mcp,addAction:Z},null,8,[`place`,`mode`,`onUpdate:mode`,`mcp`])]))),128)),R.value.places.length==0&&z.value?.status==`draft`?(i(),r(k,{key:3,class:`qr-main-block`},{default:h(()=>[m(g,{vertical:``},{default:h(()=>[s(`p`,be,[s(`strong`,null,l(V.value),1)]),f[13]||=s(`h2`,{class:`qr-main-block-text`},`Код для подключения`,-1),s(`div`,xe,[m(n(se),{value:n(fe),size:300,padding:0},null,8,[`value`])]),f[14]||=s(`p`,{class:`qr-main-block-text`},`Игра скоро начнется`,-1)]),_:1})]),_:1})):v(``,!0),n(d).hasRole(`author`)&&R.value.places.length>0?(i(),c(`div`,Se,[m(n(T),{justify:`end`},{default:h(()=>[m(n(re),{onClick:Oe},{default:h(()=>[...f[15]||=[a(`Удалить последний ход`,-1)]]),_:1})]),_:1})])):v(``,!0)]))],2))],64)}}}),[[`__scopeId`,`data-v-9262e863`]]),Ce=e({__name:`TeamStoryView`,setup(e){let t=g();return(e,a)=>(i(),r($,{key:n(t).fullPath}))}});export{Ce as default}; \ No newline at end of file diff --git a/frontend/dist/assets/TicketView-CyQly2Oq.js b/frontend/dist/assets/TicketView-ChJ5r-AW.js similarity index 94% rename from frontend/dist/assets/TicketView-CyQly2Oq.js rename to frontend/dist/assets/TicketView-ChJ5r-AW.js index af1229b..cb43a34 100644 --- a/frontend/dist/assets/TicketView-CyQly2Oq.js +++ b/frontend/dist/assets/TicketView-ChJ5r-AW.js @@ -1 +1 @@ -import{At as e,Cn as t,Ct as n,Gt as r,Jt as i,Ot as a,St as o,Tt as s,Vn as c,gt as l,kt as u,sn as d,t as f,u as p,vn as m,xt as h}from"./client-DrrW410h.js";import{t as g}from"./Button-BZxcJJGv.js";import{t as _}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as v}from"./QrCode-BtvoRbPn.js";import{t as y}from"./datetime-BJNH0M1T.js";import{t as b}from"./MessagePaper-B4rdZ1RT.js";var x={class:`ticket-page center-block-custom`},S={class:`width700`},C={class:`ticket-card`},w={key:0,class:`error`,role:`alert`},T={class:`qr-block`},E={class:`used`,role:`status`},D={key:1,class:`used`,role:`status`},O=_(e({__name:`TicketPage`,setup(e){let _=p(),O=f(),k=h(()=>String(_.params.token||``)),A=m(),j=m(!1),M=m(``),N=h(()=>window.location.href);async function P(){j.value=!0,M.value=``;try{let e=await O.GetTicket({token:k.value});if(!e.ticket){M.value=`Билет не найден`;return}A.value=e.ticket}catch{M.value=`Не удалось загрузить билет. Попробуйте ещё раз.`}finally{j.value=!1}}return r(P),(e,r)=>(i(),s(`div`,x,[o(`div`,S,[u(b,null,{default:d(()=>[o(`div`,C,[r[7]||=o(`p`,{class:`ticket-kicker`},`ВЕЧЕРНИЙ ДЕТЕКТИВ · ПРОПУСК`,-1),r[8]||=o(`h1`,null,`Билет на игру`,-1),M.value?(i(),s(`p`,w,c(M.value),1)):A.value?(i(),s(l,{key:1},[o(`h2`,null,c(A.value.gameName),1),r[5]||=o(`hr`,null,null,-1),o(`dl`,null,[o(`div`,null,[r[0]||=o(`dt`,null,`Начало`,-1),o(`dd`,null,c(t(y)(A.value.startAt)),1)]),o(`div`,null,[r[1]||=o(`dt`,null,`Место`,-1),o(`dd`,null,c(A.value.location||`Онлайн`),1)])]),o(`div`,T,[u(t(v),{value:N.value,size:300,padding:0},null,8,[`value`])]),r[6]||=o(`p`,null,`Покажите этот QR-код организатору.`,-1),A.value.status===`used`?(i(),s(l,{key:0},[r[2]||=o(`hr`,null,null,-1),o(`p`,E,` Билет уже использован`+c(A.value.usedAt?` ${t(y)(A.value.usedAt)}`:``)+c(A.value.usedBy?` организатором ${A.value.usedBy}`:``)+`. `,1)],64)):A.value.gameStatus===`finish`?(i(),s(`p`,D,` Игра уже завершена. `)):(i(),s(l,{key:2},[r[3]||=o(`hr`,null,null,-1),r[4]||=o(`p`,{class:`active`,role:`status`},`Билет действителен.`,-1)],64))],64)):(i(),n(t(g),{key:2,loading:j.value,onClick:P},{default:d(()=>[a(c(j.value?`Загрузка`:`Повторить`),1)]),_:1},8,[`loading`]))])]),_:1})])]))}}),[[`__scopeId`,`data-v-5f755593`]]),k=e({__name:`TicketView`,setup(e){return(e,t)=>(i(),n(O))}});export{k as default}; \ No newline at end of file +import{At as e,Cn as t,Ct as n,Gt as r,Jt as i,Ot as a,St as o,Tt as s,Vn as c,gt as l,kt as u,sn as d,t as f,u as p,vn as m,xt as h}from"./client-DrrW410h.js";import{t as g}from"./Button-VP0HlDWp.js";import{t as _}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as v}from"./QrCode-BtvoRbPn.js";import{t as y}from"./datetime-BJNH0M1T.js";import{t as b}from"./MessagePaper-B4rdZ1RT.js";var x={class:`ticket-page center-block-custom`},S={class:`width700`},C={class:`ticket-card`},w={key:0,class:`error`,role:`alert`},T={class:`qr-block`},E={class:`used`,role:`status`},D={key:1,class:`used`,role:`status`},O=_(e({__name:`TicketPage`,setup(e){let _=p(),O=f(),k=h(()=>String(_.params.token||``)),A=m(),j=m(!1),M=m(``),N=h(()=>window.location.href);async function P(){j.value=!0,M.value=``;try{let e=await O.GetTicket({token:k.value});if(!e.ticket){M.value=`Билет не найден`;return}A.value=e.ticket}catch{M.value=`Не удалось загрузить билет. Попробуйте ещё раз.`}finally{j.value=!1}}return r(P),(e,r)=>(i(),s(`div`,x,[o(`div`,S,[u(b,null,{default:d(()=>[o(`div`,C,[r[7]||=o(`p`,{class:`ticket-kicker`},`ВЕЧЕРНИЙ ДЕТЕКТИВ · ПРОПУСК`,-1),r[8]||=o(`h1`,null,`Билет на игру`,-1),M.value?(i(),s(`p`,w,c(M.value),1)):A.value?(i(),s(l,{key:1},[o(`h2`,null,c(A.value.gameName),1),r[5]||=o(`hr`,null,null,-1),o(`dl`,null,[o(`div`,null,[r[0]||=o(`dt`,null,`Начало`,-1),o(`dd`,null,c(t(y)(A.value.startAt)),1)]),o(`div`,null,[r[1]||=o(`dt`,null,`Место`,-1),o(`dd`,null,c(A.value.location||`Онлайн`),1)])]),o(`div`,T,[u(t(v),{value:N.value,size:300,padding:0},null,8,[`value`])]),r[6]||=o(`p`,null,`Покажите этот QR-код организатору.`,-1),A.value.status===`used`?(i(),s(l,{key:0},[r[2]||=o(`hr`,null,null,-1),o(`p`,E,` Билет уже использован`+c(A.value.usedAt?` ${t(y)(A.value.usedAt)}`:``)+c(A.value.usedBy?` организатором ${A.value.usedBy}`:``)+`. `,1)],64)):A.value.gameStatus===`finish`?(i(),s(`p`,D,` Игра уже завершена. `)):(i(),s(l,{key:2},[r[3]||=o(`hr`,null,null,-1),r[4]||=o(`p`,{class:`active`,role:`status`},`Билет действителен.`,-1)],64))],64)):(i(),n(t(g),{key:2,loading:j.value,onClick:P},{default:d(()=>[a(c(j.value?`Загрузка`:`Повторить`),1)]),_:1},8,[`loading`]))])]),_:1})])]))}}),[[`__scopeId`,`data-v-5f755593`]]),k=e({__name:`TicketView`,setup(e){return(e,t)=>(i(),n(O))}});export{k as default}; \ No newline at end of file diff --git a/frontend/dist/assets/Upload-Q_ddyPUF.js b/frontend/dist/assets/Upload-D5dycHVD.js similarity index 99% rename from frontend/dist/assets/Upload-Q_ddyPUF.js rename to frontend/dist/assets/Upload-D5dycHVD.js index 52a7e6c..6b00e41 100644 --- a/frontend/dist/assets/Upload-Q_ddyPUF.js +++ b/frontend/dist/assets/Upload-D5dycHVD.js @@ -1,4 +1,4 @@ -import{At as e,Bn as t,Ft as n,Gt as r,Ht as i,J as a,K as o,Nt as s,Sn as c,U as l,W as u,X as d,Yt as f,_ as p,_t as m,an as h,at as g,cn as _,ct as v,f as y,ft as b,gt as x,in as S,m as C,nt as w,ot as T,p as E,q as D,rt as O,st as k,vn as A,xn as j,xt as M,zt as ee}from"./client-DrrW410h.js";import{u as N}from"./Follower-BtPkzZJm.js";import{c as P,s as F}from"./Scrollbar-BUURfLNv.js";import{f as I,i as te,n as ne,p as re}from"./Suffix-CV0EsaP5.js";import{t as ie}from"./use-merged-state-CIQwNmUb.js";import{a as ae,t as L}from"./Button-BZxcJJGv.js";import{n as R,t as oe}from"./Popover-BjLYiaCj.js";import{c as z,i as B}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{o as V}from"./get-C_ZePhTF.js";import{n as H}from"./use-form-item-CNQ45NOh.js";import{t as U}from"./Add-CkD1py6k.js";import{n as se}from"./Input-Bg8PolMg.js";import{t as W}from"./fade-in.cssr-DIQ8XvO3.js";import{$ as ce,G as le,J as ue,K as de,P as fe,Q as G,T as K,U as q,X as J,Y,Z as pe,at as me,ft as he,it as ge,lt as _e,m as ve,ot as X,q as ye,s as be}from"./index-cNEa5D1b.js";function xe(e,t){if(!e)return;let n=document.createElement(`a`);n.href=e,t!==void 0&&(n.download=t),document.body.appendChild(n),n.click(),document.body.removeChild(n)}function Se(e,t,n,r){var i=-1,a=e==null?0:e.length;for(r&&a&&(n=e[++i]);++is(`svg`,{viewBox:`0 0 16 16`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`},s(`g`,{stroke:`none`,"stroke-width":`1`,fill:`none`,"fill-rule":`evenodd`},s(`g`,{fill:`currentColor`,"fill-rule":`nonzero`},s(`path`,{d:`M3.25735931,8.70710678 L7.85355339,4.1109127 C8.82986412,3.13460197 10.4127766,3.13460197 11.3890873,4.1109127 C12.365398,5.08722343 12.365398,6.67013588 11.3890873,7.64644661 L6.08578644,12.9497475 C5.69526215,13.3402718 5.06209717,13.3402718 4.67157288,12.9497475 C4.28104858,12.5592232 4.28104858,11.9260582 4.67157288,11.5355339 L9.97487373,6.23223305 C10.1701359,6.0369709 10.1701359,5.72038841 9.97487373,5.52512627 C9.77961159,5.32986412 9.4630291,5.32986412 9.26776695,5.52512627 L3.96446609,10.8284271 C3.18341751,11.6094757 3.18341751,12.8758057 3.96446609,13.6568542 C4.74551468,14.4379028 6.01184464,14.4379028 6.79289322,13.6568542 L12.0961941,8.35355339 C13.4630291,6.98671837 13.4630291,4.77064094 12.0961941,3.40380592 C10.7293591,2.0369709 8.51328163,2.0369709 7.14644661,3.40380592 L2.55025253,8 C2.35499039,8.19526215 2.35499039,8.51184464 2.55025253,8.70710678 C2.74551468,8.90236893 3.06209717,8.90236893 3.25735931,8.70710678 Z`}))))),yt=J(`cancel`,()=>s(`svg`,{viewBox:`0 0 16 16`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`},s(`g`,{stroke:`none`,"stroke-width":`1`,fill:`none`,"fill-rule":`evenodd`},s(`g`,{fill:`currentColor`,"fill-rule":`nonzero`},s(`path`,{d:`M2.58859116,2.7156945 L2.64644661,2.64644661 C2.82001296,2.47288026 3.08943736,2.45359511 3.2843055,2.58859116 L3.35355339,2.64644661 L8,7.293 L12.6464466,2.64644661 C12.8417088,2.45118446 13.1582912,2.45118446 13.3535534,2.64644661 C13.5488155,2.84170876 13.5488155,3.15829124 13.3535534,3.35355339 L8.707,8 L13.3535534,12.6464466 C13.5271197,12.820013 13.5464049,13.0894374 13.4114088,13.2843055 L13.3535534,13.3535534 C13.179987,13.5271197 12.9105626,13.5464049 12.7156945,13.4114088 L12.6464466,13.3535534 L8,8.707 L3.35355339,13.3535534 C3.15829124,13.5488155 2.84170876,13.5488155 2.64644661,13.3535534 C2.45118446,13.1582912 2.45118446,12.8417088 2.64644661,12.6464466 L7.293,8 L2.64644661,3.35355339 C2.47288026,3.17998704 2.45359511,2.91056264 2.58859116,2.7156945 L2.64644661,2.64644661 L2.58859116,2.7156945 Z`}))))),bt=J(`download`,()=>s(`svg`,{viewBox:`0 0 16 16`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`},s(`g`,{stroke:`none`,"stroke-width":`1`,fill:`none`,"fill-rule":`evenodd`},s(`g`,{fill:`currentColor`,"fill-rule":`nonzero`},s(`path`,{d:`M3.5,13 L12.5,13 C12.7761424,13 13,13.2238576 13,13.5 C13,13.7454599 12.8231248,13.9496084 12.5898756,13.9919443 L12.5,14 L3.5,14 C3.22385763,14 3,13.7761424 3,13.5 C3,13.2545401 3.17687516,13.0503916 3.41012437,13.0080557 L3.5,13 L12.5,13 L3.5,13 Z M7.91012437,1.00805567 L8,1 C8.24545989,1 8.44960837,1.17687516 8.49194433,1.41012437 L8.5,1.5 L8.5,10.292 L11.1819805,7.6109127 C11.3555469,7.43734635 11.6249713,7.4180612 11.8198394,7.55305725 L11.8890873,7.6109127 C12.0626536,7.78447906 12.0819388,8.05390346 11.9469427,8.2487716 L11.8890873,8.31801948 L8.35355339,11.8535534 C8.17998704,12.0271197 7.91056264,12.0464049 7.7156945,11.9114088 L7.64644661,11.8535534 L4.1109127,8.31801948 C3.91565056,8.12275734 3.91565056,7.80617485 4.1109127,7.6109127 C4.28447906,7.43734635 4.55390346,7.4180612 4.7487716,7.55305725 L4.81801948,7.6109127 L7.5,10.292 L7.5,1.5 C7.5,1.25454011 7.67687516,1.05039163 7.91012437,1.00805567 L8,1 L7.91012437,1.00805567 Z`}))))),xt=e({name:`ResizeSmall`,render(){return s(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`},s(`g`,{fill:`none`},s(`path`,{d:`M5.5 4A1.5 1.5 0 0 0 4 5.5v1a.5.5 0 0 1-1 0v-1A2.5 2.5 0 0 1 5.5 3h1a.5.5 0 0 1 0 1h-1zM16 5.5A1.5 1.5 0 0 0 14.5 4h-1a.5.5 0 0 1 0-1h1A2.5 2.5 0 0 1 17 5.5v1a.5.5 0 0 1-1 0v-1zm0 9a1.5 1.5 0 0 1-1.5 1.5h-1a.5.5 0 0 0 0 1h1a2.5 2.5 0 0 0 2.5-2.5v-1a.5.5 0 0 0-1 0v1zm-12 0A1.5 1.5 0 0 0 5.5 16h1.25a.5.5 0 0 1 0 1H5.5A2.5 2.5 0 0 1 3 14.5v-1.25a.5.5 0 0 1 1 0v1.25zM8.5 7A1.5 1.5 0 0 0 7 8.5v3A1.5 1.5 0 0 0 8.5 13h3a1.5 1.5 0 0 0 1.5-1.5v-3A1.5 1.5 0 0 0 11.5 7h-3zM8 8.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v3a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-3z`,fill:`currentColor`})))}}),St=J(`retry`,()=>s(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},s(`path`,{d:`M320,146s24.36-12-64-12A160,160,0,1,0,416,294`,style:`fill: none; stroke: currentcolor; stroke-linecap: round; stroke-miterlimit: 10; stroke-width: 32px;`}),s(`polyline`,{points:`256 58 336 138 256 218`,style:`fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;`}))),Ct=J(`rotateClockwise`,()=>s(`svg`,{viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},s(`path`,{d:`M3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10C17 12.7916 15.3658 15.2026 13 16.3265V14.5C13 14.2239 12.7761 14 12.5 14C12.2239 14 12 14.2239 12 14.5V17.5C12 17.7761 12.2239 18 12.5 18H15.5C15.7761 18 16 17.7761 16 17.5C16 17.2239 15.7761 17 15.5 17H13.8758C16.3346 15.6357 18 13.0128 18 10C18 5.58172 14.4183 2 10 2C5.58172 2 2 5.58172 2 10C2 10.2761 2.22386 10.5 2.5 10.5C2.77614 10.5 3 10.2761 3 10Z`,fill:`currentColor`}),s(`path`,{d:`M10 12C11.1046 12 12 11.1046 12 10C12 8.89543 11.1046 8 10 8C8.89543 8 8 8.89543 8 10C8 11.1046 8.89543 12 10 12ZM10 11C9.44772 11 9 10.5523 9 10C9 9.44772 9.44772 9 10 9C10.5523 9 11 9.44772 11 10C11 10.5523 10.5523 11 10 11Z`,fill:`currentColor`}))),wt=J(`rotateClockwise`,()=>s(`svg`,{viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},s(`path`,{d:`M17 10C17 6.13401 13.866 3 10 3C6.13401 3 3 6.13401 3 10C3 12.7916 4.63419 15.2026 7 16.3265V14.5C7 14.2239 7.22386 14 7.5 14C7.77614 14 8 14.2239 8 14.5V17.5C8 17.7761 7.77614 18 7.5 18H4.5C4.22386 18 4 17.7761 4 17.5C4 17.2239 4.22386 17 4.5 17H6.12422C3.66539 15.6357 2 13.0128 2 10C2 5.58172 5.58172 2 10 2C14.4183 2 18 5.58172 18 10C18 10.2761 17.7761 10.5 17.5 10.5C17.2239 10.5 17 10.2761 17 10Z`,fill:`currentColor`}),s(`path`,{d:`M10 12C8.89543 12 8 11.1046 8 10C8 8.89543 8.89543 8 10 8C11.1046 8 12 8.89543 12 10C12 11.1046 11.1046 12 10 12ZM10 11C10.5523 11 11 10.5523 11 10C11 9.44772 10.5523 9 10 9C9.44772 9 9 9.44772 9 10C9 10.5523 9.44772 11 10 11Z`,fill:`currentColor`}))),Tt=J(`trash`,()=>s(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},s(`path`,{d:`M432,144,403.33,419.74A32,32,0,0,1,371.55,448H140.46a32,32,0,0,1-31.78-28.26L80,144`,style:`fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;`}),s(`rect`,{x:`32`,y:`64`,width:`448`,height:`80`,rx:`16`,ry:`16`,style:`fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;`}),s(`line`,{x1:`312`,y1:`240`,x2:`200`,y2:`352`,style:`fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;`}),s(`line`,{x1:`312`,y1:`352`,x2:`200`,y2:`240`,style:`fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;`}))),Et=J(`zoomIn`,()=>s(`svg`,{viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},s(`path`,{d:`M11.5 8.5C11.5 8.22386 11.2761 8 11 8H9V6C9 5.72386 8.77614 5.5 8.5 5.5C8.22386 5.5 8 5.72386 8 6V8H6C5.72386 8 5.5 8.22386 5.5 8.5C5.5 8.77614 5.72386 9 6 9H8V11C8 11.2761 8.22386 11.5 8.5 11.5C8.77614 11.5 9 11.2761 9 11V9H11C11.2761 9 11.5 8.77614 11.5 8.5Z`,fill:`currentColor`}),s(`path`,{d:`M8.5 3C11.5376 3 14 5.46243 14 8.5C14 9.83879 13.5217 11.0659 12.7266 12.0196L16.8536 16.1464C17.0488 16.3417 17.0488 16.6583 16.8536 16.8536C16.68 17.0271 16.4106 17.0464 16.2157 16.9114L16.1464 16.8536L12.0196 12.7266C11.0659 13.5217 9.83879 14 8.5 14C5.46243 14 3 11.5376 3 8.5C3 5.46243 5.46243 3 8.5 3ZM8.5 4C6.01472 4 4 6.01472 4 8.5C4 10.9853 6.01472 13 8.5 13C10.9853 13 13 10.9853 13 8.5C13 6.01472 10.9853 4 8.5 4Z`,fill:`currentColor`}))),Dt=J(`zoomOut`,()=>s(`svg`,{viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},s(`path`,{d:`M11 8C11.2761 8 11.5 8.22386 11.5 8.5C11.5 8.77614 11.2761 9 11 9H6C5.72386 9 5.5 8.77614 5.5 8.5C5.5 8.22386 5.72386 8 6 8H11Z`,fill:`currentColor`}),s(`path`,{d:`M14 8.5C14 5.46243 11.5376 3 8.5 3C5.46243 3 3 5.46243 3 8.5C3 11.5376 5.46243 14 8.5 14C9.83879 14 11.0659 13.5217 12.0196 12.7266L16.1464 16.8536L16.2157 16.9114C16.4106 17.0464 16.68 17.0271 16.8536 16.8536C17.0488 16.6583 17.0488 16.3417 16.8536 16.1464L12.7266 12.0196C13.5217 11.0659 14 9.83879 14 8.5ZM4 8.5C4 6.01472 6.01472 4 8.5 4C10.9853 4 13 6.01472 13 8.5C13 10.9853 10.9853 13 8.5 13C6.01472 13 4 10.9853 4 8.5Z`,fill:`currentColor`}))),Ot=ae&&`loading`in document.createElement(`img`);function kt(e={}){let{root:t=null}=e;return{hash:`${e.rootMargin||`0px 0px 0px 0px`}-${Array.isArray(e.threshold)?e.threshold.join(`,`):e.threshold??`0`}`,options:Object.assign(Object.assign({},e),{root:(typeof t==`string`?document.querySelector(t):t)||document.documentElement})}}var At=new WeakMap,jt=new WeakMap,Mt=new WeakMap,Nt=(e,t,n)=>{if(!e)return()=>{};let r=kt(t),{root:i}=r.options,a,o=At.get(i);o?a=o:(a=new Map,At.set(i,a));let s,c;a.has(r.hash)?(c=a.get(r.hash),c[1].has(e)||(s=c[0],c[1].add(e),s.observe(e))):(s=new IntersectionObserver(e=>{e.forEach(e=>{if(e.isIntersecting){let t=jt.get(e.target),n=Mt.get(e.target);t&&t(),n&&(n.value=!0)}})},r.options),s.observe(e),c=[s,new Set([e])],a.set(r.hash,c));let l=!1,u=()=>{l||(jt.delete(e),Mt.delete(e),l=!0,c[1].has(e)&&(c[0].unobserve(e),c[1].delete(e)),c[1].size<=0&&a.delete(r.hash),a.size||At.delete(i))};return jt.set(e,u),Mt.set(e,n),u},Pt=e({name:`Tooltip`,props:Object.assign(Object.assign({},R),C.props),slots:Object,__popover__:!0,setup(e){let{mergedClsPrefixRef:t}=u(e),n=C(`Tooltip`,`-tooltip`,void 0,K,e,t),r=A(null);return Object.assign(Object.assign({},{syncPosition(){r.value.syncPosition()},setShow(e){r.value.setShow(e)}}),{popoverRef:r,mergedTheme:n,popoverThemeOverrides:M(()=>n.value.self)})},render(){let{mergedTheme:e,internalExtraClass:t}=this;return s(oe,Object.assign(Object.assign({},this.$props),{theme:e.peers.Popover,themeOverrides:e.peerOverrides.Popover,builtinThemeOverrides:this.popoverThemeOverrides,internalExtraClass:t.concat(`tooltip`),ref:`popoverRef`}),this.$slots)}});function Ft(){return{toolbarIconColor:`rgba(255, 255, 255, .9)`,toolbarColor:`rgba(0, 0, 0, .35)`,toolbarBoxShadow:`none`,toolbarBorderRadius:`24px`}}var It=E({name:`Image`,common:y,peers:{Tooltip:K},self:Ft});function Lt(){return s(`svg`,{viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},s(`path`,{d:`M6 5C5.75454 5 5.55039 5.17688 5.50806 5.41012L5.5 5.5V14.5C5.5 14.7761 5.72386 15 6 15C6.24546 15 6.44961 14.8231 6.49194 14.5899L6.5 14.5V5.5C6.5 5.22386 6.27614 5 6 5ZM13.8536 5.14645C13.68 4.97288 13.4106 4.9536 13.2157 5.08859L13.1464 5.14645L8.64645 9.64645C8.47288 9.82001 8.4536 10.0894 8.58859 10.2843L8.64645 10.3536L13.1464 14.8536C13.3417 15.0488 13.6583 15.0488 13.8536 14.8536C14.0271 14.68 14.0464 14.4106 13.9114 14.2157L13.8536 14.1464L9.70711 10L13.8536 5.85355C14.0488 5.65829 14.0488 5.34171 13.8536 5.14645Z`,fill:`currentColor`}))}function Rt(){return s(`svg`,{viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},s(`path`,{d:`M13.5 5C13.7455 5 13.9496 5.17688 13.9919 5.41012L14 5.5V14.5C14 14.7761 13.7761 15 13.5 15C13.2545 15 13.0504 14.8231 13.0081 14.5899L13 14.5V5.5C13 5.22386 13.2239 5 13.5 5ZM5.64645 5.14645C5.82001 4.97288 6.08944 4.9536 6.28431 5.08859L6.35355 5.14645L10.8536 9.64645C11.0271 9.82001 11.0464 10.0894 10.9114 10.2843L10.8536 10.3536L6.35355 14.8536C6.15829 15.0488 5.84171 15.0488 5.64645 14.8536C5.47288 14.68 5.4536 14.4106 5.58859 14.2157L5.64645 14.1464L9.79289 10L5.64645 5.85355C5.45118 5.65829 5.45118 5.34171 5.64645 5.14645Z`,fill:`currentColor`}))}function zt(){return s(`svg`,{viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},s(`path`,{d:`M4.089 4.216l.057-.07a.5.5 0 0 1 .638-.057l.07.057L10 9.293l5.146-5.147a.5.5 0 0 1 .638-.057l.07.057a.5.5 0 0 1 .057.638l-.057.07L10.707 10l5.147 5.146a.5.5 0 0 1 .057.638l-.057.07a.5.5 0 0 1-.638.057l-.07-.057L10 10.707l-5.146 5.147a.5.5 0 0 1-.638.057l-.07-.057a.5.5 0 0 1-.057-.638l.057-.07L9.293 10L4.146 4.854a.5.5 0 0 1-.057-.638l.057-.07l-.057.07z`,fill:`currentColor`}))}var Bt=Object.assign(Object.assign({},C.props),{onPreviewPrev:Function,onPreviewNext:Function,showToolbar:{type:Boolean,default:!0},showToolbarTooltip:Boolean,renderToolbar:Function}),Vt=d(`n-image`),Ht=w([w(`body >`,[O(`image-container`,`position: fixed;`)]),O(`image-preview-container`,` +import{At as e,Bn as t,Ft as n,Gt as r,Ht as i,J as a,K as o,Nt as s,Sn as c,U as l,W as u,X as d,Yt as f,_ as p,_t as m,an as h,at as g,cn as _,ct as v,f as y,ft as b,gt as x,in as S,m as C,nt as w,ot as T,p as E,q as D,rt as O,st as k,vn as A,xn as j,xt as M,zt as ee}from"./client-DrrW410h.js";import{u as N}from"./Follower-D4pTNocL.js";import{c as P,s as F}from"./Scrollbar-DGnXZ64x.js";import{f as I,i as te,n as ne,p as re}from"./Suffix-1hsPP30m.js";import{t as ie}from"./use-merged-state-CIQwNmUb.js";import{a as ae,t as L}from"./Button-VP0HlDWp.js";import{n as R,t as oe}from"./Popover-DoBIZ3BA.js";import{c as z,i as B}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{o as V}from"./get-D2WLJO9C.js";import{n as H}from"./use-form-item-CNQ45NOh.js";import{t as U}from"./Add-CkD1py6k.js";import{n as se}from"./Input-B0pT-V_P.js";import{t as W}from"./fade-in.cssr-DIQ8XvO3.js";import{$ as ce,G as le,J as ue,K as de,P as fe,Q as G,T as K,U as q,X as J,Y,Z as pe,at as me,ft as he,it as ge,lt as _e,m as ve,ot as X,q as ye,s as be}from"./index-CvfVA1ID.js";function xe(e,t){if(!e)return;let n=document.createElement(`a`);n.href=e,t!==void 0&&(n.download=t),document.body.appendChild(n),n.click(),document.body.removeChild(n)}function Se(e,t,n,r){var i=-1,a=e==null?0:e.length;for(r&&a&&(n=e[++i]);++is(`svg`,{viewBox:`0 0 16 16`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`},s(`g`,{stroke:`none`,"stroke-width":`1`,fill:`none`,"fill-rule":`evenodd`},s(`g`,{fill:`currentColor`,"fill-rule":`nonzero`},s(`path`,{d:`M3.25735931,8.70710678 L7.85355339,4.1109127 C8.82986412,3.13460197 10.4127766,3.13460197 11.3890873,4.1109127 C12.365398,5.08722343 12.365398,6.67013588 11.3890873,7.64644661 L6.08578644,12.9497475 C5.69526215,13.3402718 5.06209717,13.3402718 4.67157288,12.9497475 C4.28104858,12.5592232 4.28104858,11.9260582 4.67157288,11.5355339 L9.97487373,6.23223305 C10.1701359,6.0369709 10.1701359,5.72038841 9.97487373,5.52512627 C9.77961159,5.32986412 9.4630291,5.32986412 9.26776695,5.52512627 L3.96446609,10.8284271 C3.18341751,11.6094757 3.18341751,12.8758057 3.96446609,13.6568542 C4.74551468,14.4379028 6.01184464,14.4379028 6.79289322,13.6568542 L12.0961941,8.35355339 C13.4630291,6.98671837 13.4630291,4.77064094 12.0961941,3.40380592 C10.7293591,2.0369709 8.51328163,2.0369709 7.14644661,3.40380592 L2.55025253,8 C2.35499039,8.19526215 2.35499039,8.51184464 2.55025253,8.70710678 C2.74551468,8.90236893 3.06209717,8.90236893 3.25735931,8.70710678 Z`}))))),yt=J(`cancel`,()=>s(`svg`,{viewBox:`0 0 16 16`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`},s(`g`,{stroke:`none`,"stroke-width":`1`,fill:`none`,"fill-rule":`evenodd`},s(`g`,{fill:`currentColor`,"fill-rule":`nonzero`},s(`path`,{d:`M2.58859116,2.7156945 L2.64644661,2.64644661 C2.82001296,2.47288026 3.08943736,2.45359511 3.2843055,2.58859116 L3.35355339,2.64644661 L8,7.293 L12.6464466,2.64644661 C12.8417088,2.45118446 13.1582912,2.45118446 13.3535534,2.64644661 C13.5488155,2.84170876 13.5488155,3.15829124 13.3535534,3.35355339 L8.707,8 L13.3535534,12.6464466 C13.5271197,12.820013 13.5464049,13.0894374 13.4114088,13.2843055 L13.3535534,13.3535534 C13.179987,13.5271197 12.9105626,13.5464049 12.7156945,13.4114088 L12.6464466,13.3535534 L8,8.707 L3.35355339,13.3535534 C3.15829124,13.5488155 2.84170876,13.5488155 2.64644661,13.3535534 C2.45118446,13.1582912 2.45118446,12.8417088 2.64644661,12.6464466 L7.293,8 L2.64644661,3.35355339 C2.47288026,3.17998704 2.45359511,2.91056264 2.58859116,2.7156945 L2.64644661,2.64644661 L2.58859116,2.7156945 Z`}))))),bt=J(`download`,()=>s(`svg`,{viewBox:`0 0 16 16`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`},s(`g`,{stroke:`none`,"stroke-width":`1`,fill:`none`,"fill-rule":`evenodd`},s(`g`,{fill:`currentColor`,"fill-rule":`nonzero`},s(`path`,{d:`M3.5,13 L12.5,13 C12.7761424,13 13,13.2238576 13,13.5 C13,13.7454599 12.8231248,13.9496084 12.5898756,13.9919443 L12.5,14 L3.5,14 C3.22385763,14 3,13.7761424 3,13.5 C3,13.2545401 3.17687516,13.0503916 3.41012437,13.0080557 L3.5,13 L12.5,13 L3.5,13 Z M7.91012437,1.00805567 L8,1 C8.24545989,1 8.44960837,1.17687516 8.49194433,1.41012437 L8.5,1.5 L8.5,10.292 L11.1819805,7.6109127 C11.3555469,7.43734635 11.6249713,7.4180612 11.8198394,7.55305725 L11.8890873,7.6109127 C12.0626536,7.78447906 12.0819388,8.05390346 11.9469427,8.2487716 L11.8890873,8.31801948 L8.35355339,11.8535534 C8.17998704,12.0271197 7.91056264,12.0464049 7.7156945,11.9114088 L7.64644661,11.8535534 L4.1109127,8.31801948 C3.91565056,8.12275734 3.91565056,7.80617485 4.1109127,7.6109127 C4.28447906,7.43734635 4.55390346,7.4180612 4.7487716,7.55305725 L4.81801948,7.6109127 L7.5,10.292 L7.5,1.5 C7.5,1.25454011 7.67687516,1.05039163 7.91012437,1.00805567 L8,1 L7.91012437,1.00805567 Z`}))))),xt=e({name:`ResizeSmall`,render(){return s(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`},s(`g`,{fill:`none`},s(`path`,{d:`M5.5 4A1.5 1.5 0 0 0 4 5.5v1a.5.5 0 0 1-1 0v-1A2.5 2.5 0 0 1 5.5 3h1a.5.5 0 0 1 0 1h-1zM16 5.5A1.5 1.5 0 0 0 14.5 4h-1a.5.5 0 0 1 0-1h1A2.5 2.5 0 0 1 17 5.5v1a.5.5 0 0 1-1 0v-1zm0 9a1.5 1.5 0 0 1-1.5 1.5h-1a.5.5 0 0 0 0 1h1a2.5 2.5 0 0 0 2.5-2.5v-1a.5.5 0 0 0-1 0v1zm-12 0A1.5 1.5 0 0 0 5.5 16h1.25a.5.5 0 0 1 0 1H5.5A2.5 2.5 0 0 1 3 14.5v-1.25a.5.5 0 0 1 1 0v1.25zM8.5 7A1.5 1.5 0 0 0 7 8.5v3A1.5 1.5 0 0 0 8.5 13h3a1.5 1.5 0 0 0 1.5-1.5v-3A1.5 1.5 0 0 0 11.5 7h-3zM8 8.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v3a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-3z`,fill:`currentColor`})))}}),St=J(`retry`,()=>s(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},s(`path`,{d:`M320,146s24.36-12-64-12A160,160,0,1,0,416,294`,style:`fill: none; stroke: currentcolor; stroke-linecap: round; stroke-miterlimit: 10; stroke-width: 32px;`}),s(`polyline`,{points:`256 58 336 138 256 218`,style:`fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;`}))),Ct=J(`rotateClockwise`,()=>s(`svg`,{viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},s(`path`,{d:`M3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10C17 12.7916 15.3658 15.2026 13 16.3265V14.5C13 14.2239 12.7761 14 12.5 14C12.2239 14 12 14.2239 12 14.5V17.5C12 17.7761 12.2239 18 12.5 18H15.5C15.7761 18 16 17.7761 16 17.5C16 17.2239 15.7761 17 15.5 17H13.8758C16.3346 15.6357 18 13.0128 18 10C18 5.58172 14.4183 2 10 2C5.58172 2 2 5.58172 2 10C2 10.2761 2.22386 10.5 2.5 10.5C2.77614 10.5 3 10.2761 3 10Z`,fill:`currentColor`}),s(`path`,{d:`M10 12C11.1046 12 12 11.1046 12 10C12 8.89543 11.1046 8 10 8C8.89543 8 8 8.89543 8 10C8 11.1046 8.89543 12 10 12ZM10 11C9.44772 11 9 10.5523 9 10C9 9.44772 9.44772 9 10 9C10.5523 9 11 9.44772 11 10C11 10.5523 10.5523 11 10 11Z`,fill:`currentColor`}))),wt=J(`rotateClockwise`,()=>s(`svg`,{viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},s(`path`,{d:`M17 10C17 6.13401 13.866 3 10 3C6.13401 3 3 6.13401 3 10C3 12.7916 4.63419 15.2026 7 16.3265V14.5C7 14.2239 7.22386 14 7.5 14C7.77614 14 8 14.2239 8 14.5V17.5C8 17.7761 7.77614 18 7.5 18H4.5C4.22386 18 4 17.7761 4 17.5C4 17.2239 4.22386 17 4.5 17H6.12422C3.66539 15.6357 2 13.0128 2 10C2 5.58172 5.58172 2 10 2C14.4183 2 18 5.58172 18 10C18 10.2761 17.7761 10.5 17.5 10.5C17.2239 10.5 17 10.2761 17 10Z`,fill:`currentColor`}),s(`path`,{d:`M10 12C8.89543 12 8 11.1046 8 10C8 8.89543 8.89543 8 10 8C11.1046 8 12 8.89543 12 10C12 11.1046 11.1046 12 10 12ZM10 11C10.5523 11 11 10.5523 11 10C11 9.44772 10.5523 9 10 9C9.44772 9 9 9.44772 9 10C9 10.5523 9.44772 11 10 11Z`,fill:`currentColor`}))),Tt=J(`trash`,()=>s(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},s(`path`,{d:`M432,144,403.33,419.74A32,32,0,0,1,371.55,448H140.46a32,32,0,0,1-31.78-28.26L80,144`,style:`fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;`}),s(`rect`,{x:`32`,y:`64`,width:`448`,height:`80`,rx:`16`,ry:`16`,style:`fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;`}),s(`line`,{x1:`312`,y1:`240`,x2:`200`,y2:`352`,style:`fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;`}),s(`line`,{x1:`312`,y1:`352`,x2:`200`,y2:`240`,style:`fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;`}))),Et=J(`zoomIn`,()=>s(`svg`,{viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},s(`path`,{d:`M11.5 8.5C11.5 8.22386 11.2761 8 11 8H9V6C9 5.72386 8.77614 5.5 8.5 5.5C8.22386 5.5 8 5.72386 8 6V8H6C5.72386 8 5.5 8.22386 5.5 8.5C5.5 8.77614 5.72386 9 6 9H8V11C8 11.2761 8.22386 11.5 8.5 11.5C8.77614 11.5 9 11.2761 9 11V9H11C11.2761 9 11.5 8.77614 11.5 8.5Z`,fill:`currentColor`}),s(`path`,{d:`M8.5 3C11.5376 3 14 5.46243 14 8.5C14 9.83879 13.5217 11.0659 12.7266 12.0196L16.8536 16.1464C17.0488 16.3417 17.0488 16.6583 16.8536 16.8536C16.68 17.0271 16.4106 17.0464 16.2157 16.9114L16.1464 16.8536L12.0196 12.7266C11.0659 13.5217 9.83879 14 8.5 14C5.46243 14 3 11.5376 3 8.5C3 5.46243 5.46243 3 8.5 3ZM8.5 4C6.01472 4 4 6.01472 4 8.5C4 10.9853 6.01472 13 8.5 13C10.9853 13 13 10.9853 13 8.5C13 6.01472 10.9853 4 8.5 4Z`,fill:`currentColor`}))),Dt=J(`zoomOut`,()=>s(`svg`,{viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},s(`path`,{d:`M11 8C11.2761 8 11.5 8.22386 11.5 8.5C11.5 8.77614 11.2761 9 11 9H6C5.72386 9 5.5 8.77614 5.5 8.5C5.5 8.22386 5.72386 8 6 8H11Z`,fill:`currentColor`}),s(`path`,{d:`M14 8.5C14 5.46243 11.5376 3 8.5 3C5.46243 3 3 5.46243 3 8.5C3 11.5376 5.46243 14 8.5 14C9.83879 14 11.0659 13.5217 12.0196 12.7266L16.1464 16.8536L16.2157 16.9114C16.4106 17.0464 16.68 17.0271 16.8536 16.8536C17.0488 16.6583 17.0488 16.3417 16.8536 16.1464L12.7266 12.0196C13.5217 11.0659 14 9.83879 14 8.5ZM4 8.5C4 6.01472 6.01472 4 8.5 4C10.9853 4 13 6.01472 13 8.5C13 10.9853 10.9853 13 8.5 13C6.01472 13 4 10.9853 4 8.5Z`,fill:`currentColor`}))),Ot=ae&&`loading`in document.createElement(`img`);function kt(e={}){let{root:t=null}=e;return{hash:`${e.rootMargin||`0px 0px 0px 0px`}-${Array.isArray(e.threshold)?e.threshold.join(`,`):e.threshold??`0`}`,options:Object.assign(Object.assign({},e),{root:(typeof t==`string`?document.querySelector(t):t)||document.documentElement})}}var At=new WeakMap,jt=new WeakMap,Mt=new WeakMap,Nt=(e,t,n)=>{if(!e)return()=>{};let r=kt(t),{root:i}=r.options,a,o=At.get(i);o?a=o:(a=new Map,At.set(i,a));let s,c;a.has(r.hash)?(c=a.get(r.hash),c[1].has(e)||(s=c[0],c[1].add(e),s.observe(e))):(s=new IntersectionObserver(e=>{e.forEach(e=>{if(e.isIntersecting){let t=jt.get(e.target),n=Mt.get(e.target);t&&t(),n&&(n.value=!0)}})},r.options),s.observe(e),c=[s,new Set([e])],a.set(r.hash,c));let l=!1,u=()=>{l||(jt.delete(e),Mt.delete(e),l=!0,c[1].has(e)&&(c[0].unobserve(e),c[1].delete(e)),c[1].size<=0&&a.delete(r.hash),a.size||At.delete(i))};return jt.set(e,u),Mt.set(e,n),u},Pt=e({name:`Tooltip`,props:Object.assign(Object.assign({},R),C.props),slots:Object,__popover__:!0,setup(e){let{mergedClsPrefixRef:t}=u(e),n=C(`Tooltip`,`-tooltip`,void 0,K,e,t),r=A(null);return Object.assign(Object.assign({},{syncPosition(){r.value.syncPosition()},setShow(e){r.value.setShow(e)}}),{popoverRef:r,mergedTheme:n,popoverThemeOverrides:M(()=>n.value.self)})},render(){let{mergedTheme:e,internalExtraClass:t}=this;return s(oe,Object.assign(Object.assign({},this.$props),{theme:e.peers.Popover,themeOverrides:e.peerOverrides.Popover,builtinThemeOverrides:this.popoverThemeOverrides,internalExtraClass:t.concat(`tooltip`),ref:`popoverRef`}),this.$slots)}});function Ft(){return{toolbarIconColor:`rgba(255, 255, 255, .9)`,toolbarColor:`rgba(0, 0, 0, .35)`,toolbarBoxShadow:`none`,toolbarBorderRadius:`24px`}}var It=E({name:`Image`,common:y,peers:{Tooltip:K},self:Ft});function Lt(){return s(`svg`,{viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},s(`path`,{d:`M6 5C5.75454 5 5.55039 5.17688 5.50806 5.41012L5.5 5.5V14.5C5.5 14.7761 5.72386 15 6 15C6.24546 15 6.44961 14.8231 6.49194 14.5899L6.5 14.5V5.5C6.5 5.22386 6.27614 5 6 5ZM13.8536 5.14645C13.68 4.97288 13.4106 4.9536 13.2157 5.08859L13.1464 5.14645L8.64645 9.64645C8.47288 9.82001 8.4536 10.0894 8.58859 10.2843L8.64645 10.3536L13.1464 14.8536C13.3417 15.0488 13.6583 15.0488 13.8536 14.8536C14.0271 14.68 14.0464 14.4106 13.9114 14.2157L13.8536 14.1464L9.70711 10L13.8536 5.85355C14.0488 5.65829 14.0488 5.34171 13.8536 5.14645Z`,fill:`currentColor`}))}function Rt(){return s(`svg`,{viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},s(`path`,{d:`M13.5 5C13.7455 5 13.9496 5.17688 13.9919 5.41012L14 5.5V14.5C14 14.7761 13.7761 15 13.5 15C13.2545 15 13.0504 14.8231 13.0081 14.5899L13 14.5V5.5C13 5.22386 13.2239 5 13.5 5ZM5.64645 5.14645C5.82001 4.97288 6.08944 4.9536 6.28431 5.08859L6.35355 5.14645L10.8536 9.64645C11.0271 9.82001 11.0464 10.0894 10.9114 10.2843L10.8536 10.3536L6.35355 14.8536C6.15829 15.0488 5.84171 15.0488 5.64645 14.8536C5.47288 14.68 5.4536 14.4106 5.58859 14.2157L5.64645 14.1464L9.79289 10L5.64645 5.85355C5.45118 5.65829 5.45118 5.34171 5.64645 5.14645Z`,fill:`currentColor`}))}function zt(){return s(`svg`,{viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},s(`path`,{d:`M4.089 4.216l.057-.07a.5.5 0 0 1 .638-.057l.07.057L10 9.293l5.146-5.147a.5.5 0 0 1 .638-.057l.07.057a.5.5 0 0 1 .057.638l-.057.07L10.707 10l5.147 5.146a.5.5 0 0 1 .057.638l-.057.07a.5.5 0 0 1-.638.057l-.07-.057L10 10.707l-5.146 5.147a.5.5 0 0 1-.638.057l-.07-.057a.5.5 0 0 1-.057-.638l.057-.07L9.293 10L4.146 4.854a.5.5 0 0 1-.057-.638l.057-.07l-.057.07z`,fill:`currentColor`}))}var Bt=Object.assign(Object.assign({},C.props),{onPreviewPrev:Function,onPreviewNext:Function,showToolbar:{type:Boolean,default:!0},showToolbarTooltip:Boolean,renderToolbar:Function}),Vt=d(`n-image`),Ht=w([w(`body >`,[O(`image-container`,`position: fixed;`)]),O(`image-preview-container`,` position: fixed; left: 0; right: 0; diff --git a/frontend/dist/assets/UserAgreementView-Bg7Wfl-N.js b/frontend/dist/assets/UserAgreementView-Bkj3RvWy.js similarity index 55% rename from frontend/dist/assets/UserAgreementView-Bg7Wfl-N.js rename to frontend/dist/assets/UserAgreementView-Bkj3RvWy.js index 6aca874..0f4b8d8 100644 --- a/frontend/dist/assets/UserAgreementView-Bg7Wfl-N.js +++ b/frontend/dist/assets/UserAgreementView-Bkj3RvWy.js @@ -1 +1 @@ -import{At as e,Jt as t,Tt as n,gt as r,kt as i}from"./client-DrrW410h.js";import{t as a}from"./HeaderMenu-BvkSHjS4.js";import{t as o}from"./DocsPage-Bpk3oZFc.js";var s=e({__name:`UserAgreementView`,setup(e){return(e,s)=>(t(),n(r,null,[i(o,{kind:`terms`}),i(a)],64))}});export{s as default}; \ No newline at end of file +import{At as e,Jt as t,Tt as n,gt as r,kt as i}from"./client-DrrW410h.js";import{t as a}from"./HeaderMenu-DjAjwijB.js";import{t as o}from"./DocsPage-ZV8KFkx6.js";var s=e({__name:`UserAgreementView`,setup(e){return(e,s)=>(t(),n(r,null,[i(o,{kind:`terms`}),i(a)],64))}});export{s as default}; \ No newline at end of file diff --git a/frontend/dist/assets/UsersView-Dy8IBaU4.js b/frontend/dist/assets/UsersView-CUlWwgXw.js similarity index 91% rename from frontend/dist/assets/UsersView-Dy8IBaU4.js rename to frontend/dist/assets/UsersView-CUlWwgXw.js index 15c237f..adcd2ad 100644 --- a/frontend/dist/assets/UsersView-Dy8IBaU4.js +++ b/frontend/dist/assets/UsersView-CUlWwgXw.js @@ -1 +1 @@ -import{At as e,Cn as t,Ct as n,Jt as r,Ot as i,St as a,Tt as o,Vn as s,Xt as c,gt as l,kt as u,sn as d,vn as f,wt as p}from"./client-DrrW410h.js";import{i as m,r as h}from"./ui-CXICC9ah.js";import{t as g}from"./Modal-CUD1N8ld.js";import{t as _}from"./FormItem-wq05wphK.js";import{t as v}from"./Button-BZxcJJGv.js";import{t as y}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as b}from"./Input-Bg8PolMg.js";import{t as x}from"./Card-B6dtDIKO.js";import{t as S}from"./Space-CbidFwig.js";import{t as C}from"./Flex-YVOjVK0A.js";import{i as w,mt as T,o as E}from"./index-cNEa5D1b.js";import{t as D}from"./HeaderMenu-BvkSHjS4.js";var O={class:`center-block-custom`},k={class:`width700`},A={class:`user-field`},j={class:`user-field`},M={class:`user-field`},N=y(e({__name:`UsersPage`,setup(e){let y=w(),N=h(),P=f([]),F=E(),I=f(null),L=f(``),R=f(``),z=f(!1);function B(){I.value=null,L.value=``,R.value=``}async function V(){if(!(!I.value||z.value)){if([...L.value].length<8||[...L.value].length>16){N.error(`Пароль должен содержать минимум 8 символов и не более 16 символов`);return}if(L.value!==R.value){N.error(`Пароли не совпадают`);return}z.value=!0;try{await y.ChangeUserPassword({ID:I.value.ID,newPassword:L.value}),B(),N.success(`Пароль изменён`)}catch(e){N.error(e instanceof Error?e.message:`Не удалось изменить пароль`)}finally{z.value=!1}}}async function H(){try{let e=await y.GetUsers({});P.value=e.users}catch(e){N.error(e instanceof Error?e.message:`Не удалось загрузить пользователей`)}}H();async function U(e,t){try{await y.AddUserRole({ID:e,role:t}),await H()}catch(e){N.error(e instanceof Error?e.message:`Не удалось изменить роль`)}}async function W(e,t){try{await y.DeleteUserRole({ID:e,role:t}),await H()}catch(e){N.error(e instanceof Error?e.message:`Не удалось изменить роль`)}}return(e,f)=>(r(),o(l,null,[a(`div`,O,[a(`div`,k,[(r(!0),o(l,null,c(P.value,e=>(r(),o(`div`,{key:e.ID,class:`user-block`},[a(`div`,A,`Позывной: `+s(e.username),1),a(`div`,j,`Почта: `+s(e.email),1),a(`div`,M,[u(t(S),null,{default:d(()=>[f[3]||=i(` Роли: `,-1),(r(!0),o(l,null,c(e.roles,e=>(r(),n(t(m),{bordered:!1,key:e},{default:d(()=>[i(s(e),1)]),_:2},1024))),128))]),_:2},1024)]),u(t(C),{justify:`end`,class:`roles-buttons-block`},{default:d(()=>[t(F).hasRole(`admin`)&&t(F).user&&e.ID!==t(F).user.ID?(r(),n(t(v),{key:0,onClick:t=>I.value=e},{default:d(()=>[...f[4]||=[i(`Изменить пароль`,-1)]]),_:1},8,[`onClick`])):p(``,!0),e.roles?.includes(`developer`)?(r(),n(t(v),{key:2,onClick:t=>W(e.ID,`developer`)},{default:d(()=>[...f[6]||=[i(`Забрать роль разработчика`,-1)]]),_:1},8,[`onClick`])):(r(),n(t(v),{key:1,onClick:t=>U(e.ID,`developer`)},{default:d(()=>[...f[5]||=[i(`Выдать роль разработчика`,-1)]]),_:1},8,[`onClick`])),e.roles?.includes(`author`)?(r(),n(t(v),{key:4,onClick:t=>W(e.ID,`author`)},{default:d(()=>[...f[8]||=[i(`Забрать роль автора`,-1)]]),_:1},8,[`onClick`])):(r(),n(t(v),{key:3,onClick:t=>U(e.ID,`author`)},{default:d(()=>[...f[7]||=[i(`Сделать автором`,-1)]]),_:1},8,[`onClick`])),e.roles?.includes(`organizer`)?(r(),n(t(v),{key:6,onClick:t=>W(e.ID,`organizer`)},{default:d(()=>[...f[10]||=[i(`Забрать роль организатора`,-1)]]),_:1},8,[`onClick`])):(r(),n(t(v),{key:5,onClick:t=>U(e.ID,`organizer`)},{default:d(()=>[...f[9]||=[i(`Сделать организатором`,-1)]]),_:1},8,[`onClick`]))]),_:2},1024)]))),128))])]),u(t(g),{show:I.value!==null,style:{width:`min(94vw, 480px)`},closable:!z.value,"mask-closable":!z.value,"close-on-esc":!z.value,"onUpdate:show":f[2]||=e=>{e||B()}},{default:d(()=>[u(t(x),{title:`Изменить пароль`,bordered:!1,role:`dialog`,"aria-modal":`true`,closable:!z.value,onClose:B},{default:d(()=>[a(`p`,null,s(I.value?.username)+` — `+s(I.value?.email),1),a(`form`,{onSubmit:T(V,[`prevent`])},[u(t(_),{label:`Новый пароль`,"label-for":`new-user-password`},{default:d(()=>[u(t(b),{value:L.value,"onUpdate:value":f[0]||=e=>L.value=e,"input-props":{id:`new-user-password`,autocomplete:`new-password`},type:`password`,"show-password-on":`click`,disabled:z.value,placeholder:`От 8 символов, не более 16 символов`},null,8,[`value`,`disabled`])]),_:1}),u(t(_),{label:`Повторите пароль`,"label-for":`confirm-user-password`},{default:d(()=>[u(t(b),{value:R.value,"onUpdate:value":f[1]||=e=>R.value=e,"input-props":{id:`confirm-user-password`,autocomplete:`new-password`},type:`password`,"show-password-on":`click`,disabled:z.value,placeholder:`Повторите новый пароль`},null,8,[`value`,`disabled`])]),_:1}),u(t(C),{justify:`end`},{default:d(()=>[u(t(v),{disabled:z.value,onClick:B},{default:d(()=>[...f[11]||=[i(`Отмена`,-1)]]),_:1},8,[`disabled`]),u(t(v),{"attr-type":`submit`,type:`primary`,loading:z.value},{default:d(()=>[...f[12]||=[i(`Сохранить`,-1)]]),_:1},8,[`loading`])]),_:1})],32)]),_:1},8,[`closable`])]),_:1},8,[`show`,`closable`,`mask-closable`,`close-on-esc`]),u(D,{active:`users`})],64))}}),[[`__scopeId`,`data-v-da30be55`]]),P=e({__name:`UsersView`,setup(e){return(e,t)=>(r(),n(N))}});export{P as default}; \ No newline at end of file +import{At as e,Cn as t,Ct as n,Jt as r,Ot as i,St as a,Tt as o,Vn as s,Xt as c,gt as l,kt as u,sn as d,vn as f,wt as p}from"./client-DrrW410h.js";import{i as m,r as h}from"./ui-BXphkCO3.js";import{t as g}from"./Modal-CBvJhnU9.js";import{t as _}from"./FormItem-TGv2UHIS.js";import{t as v}from"./Button-VP0HlDWp.js";import{t as y}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as b}from"./Input-B0pT-V_P.js";import{t as x}from"./Card-DpsyX5Gm.js";import{t as S}from"./Space-J-gv2y5L.js";import{t as C}from"./Flex-C50LOLeC.js";import{i as w,mt as T,o as E}from"./index-CvfVA1ID.js";import{t as D}from"./HeaderMenu-DjAjwijB.js";var O={class:`center-block-custom`},k={class:`width700`},A={class:`user-field`},j={class:`user-field`},M={class:`user-field`},N=y(e({__name:`UsersPage`,setup(e){let y=w(),N=h(),P=f([]),F=E(),I=f(null),L=f(``),R=f(``),z=f(!1);function B(){I.value=null,L.value=``,R.value=``}async function V(){if(!(!I.value||z.value)){if([...L.value].length<8||[...L.value].length>16){N.error(`Пароль должен содержать минимум 8 символов и не более 16 символов`);return}if(L.value!==R.value){N.error(`Пароли не совпадают`);return}z.value=!0;try{await y.ChangeUserPassword({ID:I.value.ID,newPassword:L.value}),B(),N.success(`Пароль изменён`)}catch(e){N.error(e instanceof Error?e.message:`Не удалось изменить пароль`)}finally{z.value=!1}}}async function H(){try{let e=await y.GetUsers({});P.value=e.users}catch(e){N.error(e instanceof Error?e.message:`Не удалось загрузить пользователей`)}}H();async function U(e,t){try{await y.AddUserRole({ID:e,role:t}),await H()}catch(e){N.error(e instanceof Error?e.message:`Не удалось изменить роль`)}}async function W(e,t){try{await y.DeleteUserRole({ID:e,role:t}),await H()}catch(e){N.error(e instanceof Error?e.message:`Не удалось изменить роль`)}}return(e,f)=>(r(),o(l,null,[a(`div`,O,[a(`div`,k,[(r(!0),o(l,null,c(P.value,e=>(r(),o(`div`,{key:e.ID,class:`user-block`},[a(`div`,A,`Позывной: `+s(e.username),1),a(`div`,j,`Почта: `+s(e.email),1),a(`div`,M,[u(t(S),null,{default:d(()=>[f[3]||=i(` Роли: `,-1),(r(!0),o(l,null,c(e.roles,e=>(r(),n(t(m),{bordered:!1,key:e},{default:d(()=>[i(s(e),1)]),_:2},1024))),128))]),_:2},1024)]),u(t(C),{justify:`end`,class:`roles-buttons-block`},{default:d(()=>[t(F).hasRole(`admin`)&&t(F).user&&e.ID!==t(F).user.ID?(r(),n(t(v),{key:0,onClick:t=>I.value=e},{default:d(()=>[...f[4]||=[i(`Изменить пароль`,-1)]]),_:1},8,[`onClick`])):p(``,!0),e.roles?.includes(`developer`)?(r(),n(t(v),{key:2,onClick:t=>W(e.ID,`developer`)},{default:d(()=>[...f[6]||=[i(`Забрать роль разработчика`,-1)]]),_:1},8,[`onClick`])):(r(),n(t(v),{key:1,onClick:t=>U(e.ID,`developer`)},{default:d(()=>[...f[5]||=[i(`Выдать роль разработчика`,-1)]]),_:1},8,[`onClick`])),e.roles?.includes(`author`)?(r(),n(t(v),{key:4,onClick:t=>W(e.ID,`author`)},{default:d(()=>[...f[8]||=[i(`Забрать роль автора`,-1)]]),_:1},8,[`onClick`])):(r(),n(t(v),{key:3,onClick:t=>U(e.ID,`author`)},{default:d(()=>[...f[7]||=[i(`Сделать автором`,-1)]]),_:1},8,[`onClick`])),e.roles?.includes(`organizer`)?(r(),n(t(v),{key:6,onClick:t=>W(e.ID,`organizer`)},{default:d(()=>[...f[10]||=[i(`Забрать роль организатора`,-1)]]),_:1},8,[`onClick`])):(r(),n(t(v),{key:5,onClick:t=>U(e.ID,`organizer`)},{default:d(()=>[...f[9]||=[i(`Сделать организатором`,-1)]]),_:1},8,[`onClick`]))]),_:2},1024)]))),128))])]),u(t(g),{show:I.value!==null,style:{width:`min(94vw, 480px)`},closable:!z.value,"mask-closable":!z.value,"close-on-esc":!z.value,"onUpdate:show":f[2]||=e=>{e||B()}},{default:d(()=>[u(t(x),{title:`Изменить пароль`,bordered:!1,role:`dialog`,"aria-modal":`true`,closable:!z.value,onClose:B},{default:d(()=>[a(`p`,null,s(I.value?.username)+` — `+s(I.value?.email),1),a(`form`,{onSubmit:T(V,[`prevent`])},[u(t(_),{label:`Новый пароль`,"label-for":`new-user-password`},{default:d(()=>[u(t(b),{value:L.value,"onUpdate:value":f[0]||=e=>L.value=e,"input-props":{id:`new-user-password`,autocomplete:`new-password`},type:`password`,"show-password-on":`click`,disabled:z.value,placeholder:`От 8 символов, не более 16 символов`},null,8,[`value`,`disabled`])]),_:1}),u(t(_),{label:`Повторите пароль`,"label-for":`confirm-user-password`},{default:d(()=>[u(t(b),{value:R.value,"onUpdate:value":f[1]||=e=>R.value=e,"input-props":{id:`confirm-user-password`,autocomplete:`new-password`},type:`password`,"show-password-on":`click`,disabled:z.value,placeholder:`Повторите новый пароль`},null,8,[`value`,`disabled`])]),_:1}),u(t(C),{justify:`end`},{default:d(()=>[u(t(v),{disabled:z.value,onClick:B},{default:d(()=>[...f[11]||=[i(`Отмена`,-1)]]),_:1},8,[`disabled`]),u(t(v),{"attr-type":`submit`,type:`primary`,loading:z.value},{default:d(()=>[...f[12]||=[i(`Сохранить`,-1)]]),_:1},8,[`loading`])]),_:1})],32)]),_:1},8,[`closable`])]),_:1},8,[`show`,`closable`,`mask-closable`,`close-on-esc`]),u(D,{active:`users`})],64))}}),[[`__scopeId`,`data-v-da30be55`]]),P=e({__name:`UsersView`,setup(e){return(e,t)=>(r(),n(N))}});export{P as default}; \ No newline at end of file diff --git a/frontend/dist/assets/binary_client-CCuS4lkD.js b/frontend/dist/assets/binary_client-BWJUWeZu.js similarity index 97% rename from frontend/dist/assets/binary_client-CCuS4lkD.js rename to frontend/dist/assets/binary_client-BWJUWeZu.js index cbe0c34..d916ea0 100644 --- a/frontend/dist/assets/binary_client-CCuS4lkD.js +++ b/frontend/dist/assets/binary_client-BWJUWeZu.js @@ -1 +1 @@ -import{r as e}from"./client-DrrW410h.js";import{a as t,o as n}from"./index-cNEa5D1b.js";function r(){let e=n();return i(e.refreshTokenAction,e.getToken)}function i(n,r){async function i(i,a){return t(async()=>{let t=new Headers(a.headers),n=r();n&&t.set(`Authorization`,`Bearer ${n}`);let o=await fetch(`${e()}/${i}`,{...a,headers:t});if(o.status===401)throw Error(`unauthorized`);return o},n,r)}async function s(e,t){let n=await i(e,{method:`GET`});if(!n.ok)throw Error(await o(n));return{blob:await n.blob(),filename:a(n.headers.get(`Content-Disposition`))||t}}function c(e){return s(`api/scenarios/${e}/archive`,`scenario-${e}.zip`)}function l(e){return s(`api/games/${e}/teams/qr.pdf`,`game-${e}.pdf`)}function u(e,t){return s(`api/games/${e}/teams/${encodeURIComponent(t)}/receipt.png`,`receipt.png`)}function d(e){return s(`api/games/${e}/print-materials`,`game-${e}-print-materials.zip`)}function f(e){return s(`api/games/${e}/export/download`,`game-${e}.zip`)}function p(e){return s(`api/games/${e}/results-package/download`,`game-results-${e}.zip`)}async function m(e,t){let n=await i(`api/games/${e}/results-package/apply`,{method:`POST`,headers:{"Content-Type":`application/zip`},body:t});if(!n.ok)throw Error(await o(n));let r=await n.json();if(!r||typeof r!=`object`||!(`gameID`in r)||r.gameID!==e||!(`packageID`in r)||typeof r.packageID!=`string`||!(`appliedAt`in r)||typeof r.appliedAt!=`string`)throw Error(`Некорректный ответ применения результатов`);return{gameID:r.gameID,packageID:r.packageID,appliedAt:r.appliedAt}}async function h(e){let t=await i(`api/games/import`,{method:`POST`,headers:{"Content-Type":`application/zip`},body:e});if(!t.ok)throw Error(await o(t));let n=await t.json();if(!n||typeof n!=`object`||!(`gameID`in n)||typeof n.gameID!=`number`||!Number.isSafeInteger(n.gameID)||n.gameID<=0||!(`packageID`in n)||typeof n.packageID!=`string`||!(`repeated`in n)||typeof n.repeated!=`boolean`)throw Error(`Некорректный ответ импорта игры`);return{gameID:n.gameID,packageID:n.packageID,repeated:n.repeated}}async function g(e){let t=await i(`api/scenarios/archive`,{method:`POST`,headers:{"Content-Type":e.type||`application/zip`},body:e});if(!t.ok)throw Error(await o(t));let n=await t.json().catch(()=>null);return{ID:typeof n?.ID==`number`?n.ID:null}}return{downloadScenarioArchive:c,downloadTeamQR:l,downloadTeamReceipt:u,downloadGamePrintMaterials:d,uploadScenarioArchive:g,downloadGamePackage:f,uploadGamePackage:h,downloadGameResultsPackage:p,applyGameResultsPackage:m}}function a(e){if(!e)return``;let t=e.match(/filename\*=UTF-8''([^;]+)/i);if(t)try{return decodeURIComponent(t[1].trim()).replace(/[\\/:*?"<>|]/g,`_`)}catch{}let n=e.match(/filename="?([^";]+)"?/i);return(n?n[1]:``).replace(/[\\/:*?"<>|]/g,`_`)}async function o(e){let t=await e.json().catch(()=>null);if(t&&typeof t==`object`){if(`message`in t&&typeof t.message==`string`&&t.message!==``)return t.message;if(`error`in t&&typeof t.error==`string`&&t.error!==``)return t.error}return`Ошибка сервера (${e.status})`}export{r as t}; \ No newline at end of file +import{r as e}from"./client-DrrW410h.js";import{a as t,o as n}from"./index-CvfVA1ID.js";function r(){let e=n();return i(e.refreshTokenAction,e.getToken)}function i(n,r){async function i(i,a){return t(async()=>{let t=new Headers(a.headers),n=r();n&&t.set(`Authorization`,`Bearer ${n}`);let o=await fetch(`${e()}/${i}`,{...a,headers:t});if(o.status===401)throw Error(`unauthorized`);return o},n,r)}async function s(e,t){let n=await i(e,{method:`GET`});if(!n.ok)throw Error(await o(n));return{blob:await n.blob(),filename:a(n.headers.get(`Content-Disposition`))||t}}function c(e){return s(`api/scenarios/${e}/archive`,`scenario-${e}.zip`)}function l(e){return s(`api/games/${e}/teams/qr.pdf`,`game-${e}.pdf`)}function u(e,t){return s(`api/games/${e}/teams/${encodeURIComponent(t)}/receipt.png`,`receipt.png`)}function d(e){return s(`api/games/${e}/print-materials`,`game-${e}-print-materials.zip`)}function f(e){return s(`api/games/${e}/export/download`,`game-${e}.zip`)}function p(e){return s(`api/games/${e}/results-package/download`,`game-results-${e}.zip`)}async function m(e,t){let n=await i(`api/games/${e}/results-package/apply`,{method:`POST`,headers:{"Content-Type":`application/zip`},body:t});if(!n.ok)throw Error(await o(n));let r=await n.json();if(!r||typeof r!=`object`||!(`gameID`in r)||r.gameID!==e||!(`packageID`in r)||typeof r.packageID!=`string`||!(`appliedAt`in r)||typeof r.appliedAt!=`string`)throw Error(`Некорректный ответ применения результатов`);return{gameID:r.gameID,packageID:r.packageID,appliedAt:r.appliedAt}}async function h(e){let t=await i(`api/games/import`,{method:`POST`,headers:{"Content-Type":`application/zip`},body:e});if(!t.ok)throw Error(await o(t));let n=await t.json();if(!n||typeof n!=`object`||!(`gameID`in n)||typeof n.gameID!=`number`||!Number.isSafeInteger(n.gameID)||n.gameID<=0||!(`packageID`in n)||typeof n.packageID!=`string`||!(`repeated`in n)||typeof n.repeated!=`boolean`)throw Error(`Некорректный ответ импорта игры`);return{gameID:n.gameID,packageID:n.packageID,repeated:n.repeated}}async function g(e){let t=await i(`api/scenarios/archive`,{method:`POST`,headers:{"Content-Type":e.type||`application/zip`},body:e});if(!t.ok)throw Error(await o(t));let n=await t.json().catch(()=>null);return{ID:typeof n?.ID==`number`?n.ID:null}}return{downloadScenarioArchive:c,downloadTeamQR:l,downloadTeamReceipt:u,downloadGamePrintMaterials:d,uploadScenarioArchive:g,downloadGamePackage:f,uploadGamePackage:h,downloadGameResultsPackage:p,applyGameResultsPackage:m}}function a(e){if(!e)return``;let t=e.match(/filename\*=UTF-8''([^;]+)/i);if(t)try{return decodeURIComponent(t[1].trim()).replace(/[\\/:*?"<>|]/g,`_`)}catch{}let n=e.match(/filename="?([^";]+)"?/i);return(n?n[1]:``).replace(/[\\/:*?"<>|]/g,`_`)}async function o(e){let t=await e.json().catch(()=>null);if(t&&typeof t==`object`){if(`message`in t&&typeof t.message==`string`&&t.message!==``)return t.message;if(`error`in t&&typeof t.error==`string`&&t.error!==``)return t.error}return`Ошибка сервера (${e.status})`}export{r as t}; \ No newline at end of file diff --git a/frontend/dist/assets/get-C_ZePhTF.js b/frontend/dist/assets/get-D2WLJO9C.js similarity index 96% rename from frontend/dist/assets/get-C_ZePhTF.js rename to frontend/dist/assets/get-D2WLJO9C.js index bc7fc44..d109cf2 100644 --- a/frontend/dist/assets/get-C_ZePhTF.js +++ b/frontend/dist/assets/get-D2WLJO9C.js @@ -1 +1 @@ -import{R as e,S as t}from"./client-DrrW410h.js";import{$ as n,tt as r}from"./index-cNEa5D1b.js";var i=/^(\d|\.)+$/,a=/(\d|\.)+/;function o(e,{c:t=1,offset:n=0,attachPx:r=!0}={}){if(typeof e==`number`){let r=(e+n)*t;return r===0?`0`:`${r}px`}else if(typeof e==`string`)if(i.test(e)){let i=(Number(e)+n)*t;return r?i===0?`0`:`${i}px`:`${i}`}else{let r=a.exec(e);return r?e.replace(a,String((Number(r[0])+n)*t)):e}return e}var s=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,c=/^\w*$/;function l(t,n){if(e(t))return!1;var i=typeof t;return i==`number`||i==`symbol`||i==`boolean`||t==null||r(t)?!0:c.test(t)||!s.test(t)||n!=null&&t in Object(n)}var u=`Expected a function`;function d(e,n){if(typeof e!=`function`||n!=null&&typeof n!=`function`)throw TypeError(u);var r=function(){var t=arguments,i=n?n.apply(this,t):t[0],a=r.cache;if(a.has(i))return a.get(i);var o=e.apply(this,t);return r.cache=a.set(i,o)||a,o};return r.cache=new(d.Cache||t),r}d.Cache=t;var f=500;function p(e){var t=d(e,function(e){return n.size===f&&n.clear(),e}),n=t.cache;return t}var m=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,h=/\\(\\)?/g,g=p(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(``),e.replace(m,function(e,n,r,i){t.push(r?i.replace(h,`$1`):n||e)}),t});function _(t,r){return e(t)?t:l(t,r)?[t]:g(n(t))}var v=1/0;function y(e){if(typeof e==`string`||r(e))return e;var t=e+``;return t==`0`&&1/e==-v?`-0`:t}function b(e,t){t=_(t,e);for(var n=0,r=t.length;e!=null&&ni.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PlaylistsView-CwJFmy03.js","assets/client-DrrW410h.js","assets/Button-VP0HlDWp.js","assets/_plugin-vue_export-helper-2ZWAS1ss.js","assets/use-form-item-CNQ45NOh.js","assets/ruRU-GUVPj0Y9.js","assets/Alert-CKEVYkKu.js","assets/ui-BXphkCO3.js","assets/usePlaylistActions-BX_JK6Ey.js","assets/Scrollbar-DGnXZ64x.js","assets/fade-in.cssr-DIQ8XvO3.js","assets/light-CxYgWZGt.js","assets/Suffix-1hsPP30m.js","assets/flatten-C6dhMlvE.js","assets/Popover-DoBIZ3BA.js","assets/Follower-D4pTNocL.js","assets/use-merged-state-CIQwNmUb.js","assets/use-compitable-BLe2cDdc.js","assets/keep-CyT4Sxsq.js","assets/get-D2WLJO9C.js","assets/Select-BQpeZ0on.js","assets/utils-BwK8vCu4.js","assets/Upload-D5dycHVD.js","assets/Add-CkD1py6k.js","assets/Input-B0pT-V_P.js","assets/Space-J-gv2y5L.js","assets/get-slot-6kXJmSMP.js","assets/usePlaylistActions-DmUNxRG1.css","assets/Spin-v_Oo9RkU.js","assets/HeaderMenu-DjAjwijB.js","assets/HeaderMenu-BTcqp3TI.css","assets/PlaylistsView-C4xSGtiq.css","assets/ParticipationView-BAG5ka1i.js","assets/Card-DpsyX5Gm.js","assets/datetime-BJNH0M1T.js","assets/TicketView-ChJ5r-AW.js","assets/QrCode-BtvoRbPn.js","assets/MessagePaper-B4rdZ1RT.js","assets/MessagePaper-LComeSyV.css","assets/TicketView-CnMhzuVy.css","assets/HomeView-uP_nIScL.js","assets/SiteFooter-BjbzmgYc.js","assets/SiteFooter-B1_jro1D.css","assets/HomeView-Boj4PNHL.css","assets/LoginView-BI6iUAsC.js","assets/Tabs-rQZTTap5.js","assets/LoginView-DKQmdgOL.css","assets/OfficeView-CsXrl85Z.js","assets/Modal-CBvJhnU9.js","assets/OfficeView-DabVS74N.css","assets/UserAgreementView-Bkj3RvWy.js","assets/DocsPage-ZV8KFkx6.js","assets/HeaderText-BIRJQexj.js","assets/HeaderText-DghUu1Eo.css","assets/DocsPage-BIVNV4mI.css","assets/PrivacyPolicyView-Dy1kRRAM.js","assets/ConsentView-ChuaDqzZ.js","assets/GamesView-wn2Wd_PJ.js","assets/DatePicker-CtSDNHOH.js","assets/Flex-C50LOLeC.js","assets/binary_client-BWJUWeZu.js","assets/GamesView-DRcdkoqc.css","assets/ScreenView-kL9Y9uhX.js","assets/application-Dx7AOLHI.js","assets/ScreenPreview-CRnT-dgP.js","assets/ScreenPreview-CEgryOKL.css","assets/useDeviceContext-BaGiXmRj.js","assets/ScreenView-CI0FB4VD.css","assets/GameResultsView-CZyoqnko.js","assets/GameResultsView-DkYIsvlX.css","assets/GameView-CVuY3UkA.js","assets/Remove-bjrmPf1I.js","assets/Rate-DzWTiM8f.js","assets/text-DlU9yI4b.js","assets/GameView-DCHwJep6.css","assets/TeamStoryView-KqctY9Vy.js","assets/PlaceBlock-rRE4IOP9.js","assets/PlaceBlock-DJ2ZROXg.css","assets/TeamStoryView-CTW1Ph2w.css","assets/ScenariosView-R9yDSC4s.js","assets/ScenariosView-CPnxFjF8.css","assets/CatalogView-D6h9kJ7p.js","assets/CatalogView-B960cF7V.css","assets/ScenariosEditorView-Cy8Ufmpq.js","assets/ScenariosEditorView-BwbT183t.css","assets/ScenarioView-jwfdyWER.js","assets/ScenarioView-CeAgddtc.css","assets/TasksView-DASqkTuN.js","assets/FormItem-TGv2UHIS.js","assets/TasksView-BN0skjQJ.css","assets/UsersView-CUlWwgXw.js","assets/UsersView-BRqNFbMB.css","assets/ReviewsView-BWIp1pAW.js","assets/ReviewsView-cXuEHQyX.css"])))=>i.map(i=>d[i]); import{$ as e,An as t,At as n,B as r,Cn as i,Ct as a,Dn as o,En as s,Et as c,Fn as l,Ft as u,G as d,Gt as f,Hn as p,In as m,J as h,Jt as g,Kt as _,Ln as v,Mn as y,Mt as b,Nn as x,Nt as S,On as C,Ot as w,Pn as T,Pt as E,Q as D,R as O,Rn as k,Sn as ee,Tn as te,U as ne,V as re,W as ie,X as ae,Yt as oe,Z as A,_ as se,_n as ce,_t as le,at as ue,bn as de,c as fe,ct as j,en as pe,et as M,f as N,fn as me,ft as he,g as ge,gn as _e,gt as ve,h as ye,hn as be,i as xe,in as Se,jn as Ce,jt as we,kn as Te,kt as Ee,ln as De,m as Oe,mn as ke,mt as Ae,n as je,nt as P,o as Me,ot as F,p as I,pn as Ne,pt as Pe,qt as Fe,rn as Ie,rt as Le,s as Re,sn as ze,st as Be,t as Ve,tn as He,un as Ue,v as We,vn as L,wn as Ge,xn as Ke,xt as R,yn as qe,yt as Je,z as Ye,zt as Xe}from"./client-DrrW410h.js";import{n as Ze,t as z}from"./light-CxYgWZGt.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var Qe=void 0,$e=typeof window<`u`&&window.trustedTypes;if($e)try{Qe=$e.createPolicy(`vue`,{createHTML:e=>e})}catch{}var et=Qe?e=>Qe.createHTML(e):e=>e,tt=`http://www.w3.org/2000/svg`,nt=`http://www.w3.org/1998/Math/MathML`,B=typeof document<`u`?document:null,rt=B&&B.createElement(`template`),it={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i=t===`svg`?B.createElementNS(tt,e):t===`mathml`?B.createElementNS(nt,e):n?B.createElement(e,{is:n}):B.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>B.createTextNode(e),createComment:e=>B.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>B.querySelector(e),setScopeId(e,t){e.setAttribute(t,``)},insertStaticContent(e,t,n,r,i,a){let o=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===a||!(i=i.nextSibling)););else{rt.innerHTML=et(r===`svg`?`${e}`:r===`mathml`?`${e}`:e);let i=rt.content;if(r===`svg`||r===`mathml`){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},V=`transition`,at=`animation`,ot=Symbol(`_vtc`),st={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},ct=s({},Ae,st),lt=(e=>(e.displayName=`Transition`,e.props=ct,e))((e,{slots:t})=>S(Pe,ft(e),t)),ut=(e,n=[])=>{t(e)?e.forEach(e=>e(...n)):e&&e(...n)},dt=e=>e?t(e)?e.some(e=>e.length>1):e.length>1:!1;function ft(e){let t={};for(let n in e)n in st||(t[n]=e[n]);if(e.css===!1)return t;let{name:n=`v`,type:r,duration:i,enterFromClass:a=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:c=`${n}-enter-to`,appearFromClass:l=a,appearActiveClass:u=o,appearToClass:d=c,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,h=pt(i),g=h&&h[0],_=h&&h[1],{onBeforeEnter:v,onEnter:y,onEnterCancelled:b,onLeave:x,onLeaveCancelled:S,onBeforeAppear:C=v,onAppear:w=y,onAppearCancelled:T=b}=t,E=(e,t,n,r)=>{e._enterCancelled=r,U(e,t?d:c),U(e,t?u:o),n&&n()},D=(e,t)=>{e._isLeaving=!1,U(e,f),U(e,m),U(e,p),t&&t()},O=e=>(t,n)=>{let i=e?w:y,o=()=>E(t,e,n);ut(i,[t,o]),ht(()=>{U(t,e?l:a),H(t,e?d:c),dt(i)||_t(t,r,g,o)})};return s(t,{onBeforeEnter(e){ut(v,[e]),H(e,a),H(e,o)},onBeforeAppear(e){ut(C,[e]),H(e,l),H(e,u)},onEnter:O(!1),onAppear:O(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>D(e,t);H(e,f),e._enterCancelled?(H(e,p),xt(e)):(xt(e),H(e,p)),ht(()=>{e._isLeaving&&(U(e,f),H(e,m),dt(x)||_t(e,r,_,n))}),ut(x,[e,n])},onEnterCancelled(e){E(e,!1,void 0,!0),ut(b,[e])},onAppearCancelled(e){E(e,!0,void 0,!0),ut(T,[e])},onLeaveCancelled(e){D(e),ut(S,[e])}})}function pt(e){if(e==null)return null;if(x(e))return[mt(e.enter),mt(e.leave)];{let t=mt(e);return[t,t]}}function mt(e){return p(e)}function H(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[ot]||(e[ot]=new Set)).add(t)}function U(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[ot];n&&(n.delete(t),n.size||(e[ot]=void 0))}function ht(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}var gt=0;function _t(e,t,n,r){let i=e._endId=++gt,a=()=>{i===e._endId&&r()};if(n!=null)return setTimeout(a,n);let{type:o,timeout:s,propCount:c}=vt(e,t);if(!o)return r();let l=o+`end`,u=0,d=()=>{e.removeEventListener(l,f),a()},f=t=>{t.target===e&&++u>=c&&d()};setTimeout(()=>{u(n[e]||``).split(`, `),i=r(`${V}Delay`),a=r(`${V}Duration`),o=yt(i,a),s=r(`${at}Delay`),c=r(`${at}Duration`),l=yt(s,c),u=null,d=0,f=0;t===V?o>0&&(u=V,d=o,f=a.length):t===at?l>0&&(u=at,d=l,f=c.length):(d=Math.max(o,l),u=d>0?o>l?V:at:null,f=u?u===V?a.length:c.length:0);let p=u===V&&/\b(?:transform|all)(?:,|$)/.test(r(`${V}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:p}}function yt(e,t){for(;e.lengthbt(t)+bt(e[n])))}function bt(e){return e===`auto`?0:Number(e.slice(0,-1).replace(`,`,`.`))*1e3}function xt(e){return(e?e.ownerDocument:document).body.offsetHeight}function St(e,t,n){let r=e[ot];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var Ct=Symbol(`_vod`),wt=Symbol(`_vsh`),Tt={name:`show`,beforeMount(e,{value:t},{transition:n}){e[Ct]=e.style.display===`none`?``:e.style.display,n&&t?n.beforeEnter(e):Et(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),Et(e,!0),r.enter(e)):r.leave(e,()=>{Et(e,!1)}):Et(e,t))},beforeUnmount(e,{value:t}){Et(e,t)}};function Et(e,t){e.style.display=t?e[Ct]:`none`,e[wt]=!t}var Dt=Symbol(``),Ot=/(?:^|;)\s*display\s*:/;function kt(e,t,n){let r=e.style,i=m(n),a=!1;if(n&&!i){if(t)if(m(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??jt(r,t,``)}else for(let e in t)n[e]??jt(r,e,``);for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?jt(r,i,``):Ft(e,i,!m(t)&&t?t[i]:void 0,o)||jt(r,i,o)}}else if(i){if(t!==n){let e=r[Dt];e&&(n+=`;`+e),r.cssText=n,a=Ot.test(n)}}else t&&e.removeAttribute(`style`);Ct in e&&(e[Ct]=a?r.display:``,e[wt]&&(r.display=`none`))}var At=/\s*!important$/;function jt(e,n,r){if(t(r))r.forEach(t=>jt(e,n,t));else if(r??=``,n.startsWith(`--`))e.setProperty(n,r);else{let t=Pt(e,n);At.test(r)?e.setProperty(o(t),r.replace(At,``),`important`):e[t]=r}}var Mt=[`Webkit`,`Moz`,`ms`],Nt={};function Pt(e,t){let n=Nt[t];if(n)return n;let r=Ge(t);if(r!==`filter`&&r in e)return Nt[t]=r;r=te(r);for(let n=0;nKt||=(qt.then(()=>Kt=0),Date.now());function Yt(e,n){let r=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=r.attached)return;let i=r.value;if(t(i)){let t=e.stopImmediatePropagation;e.stopImmediatePropagation=()=>{t.call(e),e._stopped=!0};let r=i.slice(),a=[e];for(let t=0;te.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Zt=(e,t,n,r,i,a)=>{let o=i===`svg`;t===`class`?St(e,r,o):t===`style`?kt(e,n,r):T(t)?y(t)||Ht(e,t,n,r,a):(t[0]===`.`?(t=t.slice(1),!0):t[0]===`^`?(t=t.slice(1),!1):Qt(e,t,r,o))?(Rt(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&Lt(e,t,r,o,a,t!==`value`)):e._isVueCE&&($t(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!m(r)))?Rt(e,Ge(t),r,a,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),Lt(e,t,r,o))};function Qt(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&Xt(t)&&Ce(n));if(t===`spellcheck`||t===`draggable`||t===`translate`||t===`autocorrect`||t===`sandbox`&&e.tagName===`IFRAME`||t===`form`||t===`list`&&e.tagName===`INPUT`||t===`type`&&e.tagName===`TEXTAREA`)return!1;if(t===`width`||t===`height`){let t=e.tagName;if(t===`IMG`||t===`VIDEO`||t===`CANVAS`||t===`SOURCE`)return!1}return Xt(t)&&m(n)?!1:t in e}function $t(e,t){let n=e._def.props;if(!n)return!1;let r=Ge(t);return Array.isArray(n)?n.some(e=>Ge(e)===r):Object.keys(n).some(e=>Ge(e)===r)}var en=new WeakMap,tn=new WeakMap,nn=Symbol(`_moveCb`),rn=Symbol(`_enterCb`),an=(e=>(delete e.props.mode,e))({name:`TransitionGroup`,props:s({},ct,{tag:String,moveClass:String}),setup(e,{slots:t}){let n=we(),r=Ie(),i,a;return Fe(()=>{if(!i.length)return;let t=e.moveClass||`${e.name||`v`}-move`;if(!un(i[0].el,n.vnode.el,t)){i=[];return}i.forEach(on),i.forEach(sn);let r=i.filter(cn);xt(n.vnode.el),r.forEach(e=>{let n=e.el,r=n.style;H(n,t),r.transform=r.webkitTransform=r.transitionDuration=``;let i=n[nn]=e=>{e&&e.target!==n||(!e||e.propertyName.endsWith(`transform`))&&(n.removeEventListener(`transitionend`,i),n[nn]=null,U(n,t))};n.addEventListener(`transitionend`,i)}),i=[]}),()=>{let o=de(e),s=ft(o),c=o.tag||ve;if(i=[],a)for(let e=0;e{e.split(/\s+/).forEach(e=>e&&r.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&r.classList.add(e)),r.style.display=`none`;let a=t.nodeType===1?t:t.parentNode;a.appendChild(r);let{hasTransform:o}=vt(r);return a.removeChild(r),o}var dn=e=>{let n=e.props[`onUpdate:modelValue`]||!1;return t(n)?e=>Te(n,e):n};function fn(e){e.target.composing=!0}function pn(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event(`input`)))}var mn=Symbol(`_assign`);function hn(e,t,n){return t&&(e=e.trim()),n&&(e=k(e)),e}var gn={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[mn]=dn(i);let a=r||i.props&&i.props.type===`number`;zt(e,t?`change`:`input`,t=>{t.target.composing||e[mn](hn(e.value,n,a))}),(n||a)&&zt(e,`change`,()=>{e.value=hn(e.value,n,a)}),t||(zt(e,`compositionstart`,fn),zt(e,`compositionend`,pn),zt(e,`change`,pn))},mounted(e,{value:t}){e.value=t??``},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(e[mn]=dn(o),e.composing)return;let s=(a||e.type===`number`)&&!/^0\d/.test(e.value)?k(e.value):e.value,c=t??``;if(s===c)return;let l=e.getRootNode();(l instanceof Document||l instanceof ShadowRoot)&&l.activeElement===e&&e.type!==`range`&&(r&&t===n||i&&e.value.trim()===c)||(e.value=c)}},_n=[`ctrl`,`shift`,`alt`,`meta`],vn={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>`button`in e&&e.button!==0,middle:e=>`button`in e&&e.button!==1,right:e=>`button`in e&&e.button!==2,exact:(e,t)=>_n.some(n=>e[`${n}Key`]&&!t.includes(n))},yn=(e,t)=>{if(!e)return e;let n=e._withMods||={},r=t.join(`.`);return n[r]||(n[r]=((n,...r)=>{for(let e=0;e{let n=e._withKeys||={},r=t.join(`.`);return n[r]||(n[r]=(n=>{if(!(`key`in n))return;let r=o(n.key);if(t.some(e=>e===r||bn[e]===r))return e(n)}))},Sn=s({patchProp:Zt},it),Cn;function wn(){return Cn||=c(Sn)}var Tn=((...e)=>{let t=wn().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=Dn(e);if(!r)return;let i=t._component;!Ce(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,En(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t});function En(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function Dn(e){return m(e)?document.querySelector(e):e}var On=typeof window<`u`,kn,An=e=>kn=e,jn=Symbol();function Mn(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var Nn;(function(e){e.direct=`direct`,e.patchObject=`patch object`,e.patchFunction=`patch function`})(Nn||={});var Pn=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function Fn(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function In(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){Vn(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function Ln(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function Rn(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var zn=typeof navigator==`object`?navigator:{userAgent:``},Bn=/Macintosh/.test(zn.userAgent)&&/AppleWebKit/.test(zn.userAgent)&&!/Safari/.test(zn.userAgent),Vn=On?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!Bn?Hn:`msSaveOrOpenBlob`in zn?Un:Wn:()=>{};function Hn(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?Rn(r):Ln(r.href)?In(e,t,n):(r.target=`_blank`,Rn(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){Rn(r)},0))}function Un(e,t=`download`,n){if(typeof e==`string`)if(Ln(e))In(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){Rn(t)})}else navigator.msSaveOrOpenBlob(Fn(e,n),t)}function Wn(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return In(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(Pn.HTMLElement))||`safari`in Pn,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||Bn)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:Gn}=Object;function Kn(){let e=De(!0),t=e.run(()=>L({})),n=[],r=[],i=ke({install(e){An(i),i._a=e,e.provide(jn,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var qn=()=>{};function Jn(e,t,n,r=qn){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&Ue()&&be(i),i}function Yn(e,...t){e.forEach(e=>{e(...t)})}var Xn=e=>e(),Zn=Symbol(),Qn=Symbol();function $n(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!t.hasOwnProperty(n))continue;let r=t[n],i=e[n];Mn(i)&&Mn(r)&&e.hasOwnProperty(n)&&!Ne(r)&&!me(r)?e[n]=$n(i,r):e[n]=r}return e}var er=Symbol();function tr(e){return!Mn(e)||!Object.prototype.hasOwnProperty.call(e,er)}var{assign:W}=Object;function nr(e){return!!(Ne(e)&&e.effect)}function rr(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],c;function l(){return s||(n.state.value[e]=i?i():{}),W(ee(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=ke(R(()=>{An(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=ir(e,l,t,n,r,!0),c}function ir(e,t,n={},r,i,a){let o,s=W({actions:{}},n),c={deep:!0},l,u,d=new Set,f=new Set,p=r.state.value[e];!a&&!p&&(r.state.value[e]={}),L({});let m;function h(t){let n;l=u=!1,typeof t==`function`?(t(r.state.value[e]),n={type:Nn.patchFunction,storeId:e,events:void 0}):($n(r.state.value[e],t),n={type:Nn.patchObject,payload:t,storeId:e,events:void 0});let i=m=Symbol();Xe().then(()=>{m===i&&(l=!0)}),u=!0,Yn(d,n,r.state.value[e])}let g=a?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{W(e,t)})}:qn;function _(){o.stop(),d.clear(),f.clear(),r._s.delete(e)}let v=(t,n=``)=>{if(Zn in t)return t[Qn]=n,t;let i=function(){An(r);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}Yn(f,{args:n,name:i[Qn],store:y,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:y,n)}catch(e){throw Yn(o,e),e}return l instanceof Promise?l.then(e=>(Yn(a,e),e)).catch(e=>(Yn(o,e),Promise.reject(e))):(Yn(a,l),l)};return i[Zn]=!0,i[Qn]=n,i},y=_e({_p:r,$id:e,$onAction:Jn.bind(null,f),$patch:h,$reset:g,$subscribe(t,n={}){let i=Jn(d,t,n.detached,()=>a()),a=o.run(()=>Se(()=>r.state.value[e],r=>{(n.flush===`sync`?u:l)&&t({storeId:e,type:Nn.direct,events:void 0},r)},W({},c,n)));return i},$dispose:_});r._s.set(e,y);let b=(r._a&&r._a.runWithContext||Xn)(()=>r._e.run(()=>(o=De()).run(()=>t({action:v}))));for(let t in b){let n=b[t];Ne(n)&&!nr(n)||me(n)?a||(p&&tr(n)&&(Ne(n)?n.value=p[t]:$n(n,p[t])),r.state.value[e][t]=n):typeof n==`function`&&(b[t]=v(n,t),s.actions[t]=n)}return W(y,b),W(de(y),b),Object.defineProperty(y,"$state",{get:()=>r.state.value[e],set:e=>{h(t=>{W(t,e)})}}),r._p.forEach(e=>{W(y,o.run(()=>e({store:y,app:r._a,pinia:r,options:s})))}),p&&a&&n.hydrate&&n.hydrate(y.$state,p),l=!0,u=!0,y}function ar(e,t,n){let r,i=typeof t==`function`;r=i?n:t;function a(n,a){let o=E();return n||=o?u(jn,null):null,n&&An(n),n=kn,n._s.has(e)||(i?ir(e,t,r,n):rr(e,r,n)),n._s.get(e)}return a.$id=e,a}function or(e){let t=de(e),n={};for(let r in t){let i=t[r];i.effect?n[r]=R({get:()=>e[r],set(t){e[r]=t}}):(Ne(i)||me(i))&&(n[r]=Ke(e,r))}return n}function sr(e=8){return Math.random().toString(16).slice(2,2+e)}function cr(e){let t=R(e),n=L(t.value);return Se(t,e=>{n.value=e}),typeof e==`function`?n:{__v_isRef:!0,get value(){return n.value},set value(t){e.set(t)}}}function lr(){let e=L(!1);return f(()=>{e.value=!0}),ce(e)}function ur(e,t=[],n){let r={};return Object.getOwnPropertyNames(e).forEach(n=>{t.includes(n)||(r[n]=e[n])}),Object.assign(r,n)}function dr(e,...t){return typeof e==`function`?e(...t):typeof e==`string`?w(e):typeof e==`number`?w(String(e)):null}var fr=`[object Symbol]`;function pr(e){return typeof e==`symbol`||Ye(e)&&r(e)==fr}function mr(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++ni?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(i);++r=r?e:br(e,t,n)}var Sr=RegExp(`[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]`);function Cr(e){return Sr.test(e)}function wr(e){return e.split(``)}var Tr=`\\ud800-\\udfff`,Er=`\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff`,Dr=`\\ufe0e\\ufe0f`,Or=`[`+Tr+`]`,kr=`[`+Er+`]`,Ar=`\\ud83c[\\udffb-\\udfff]`,jr=`(?:`+kr+`|`+Ar+`)`,Mr=`[^`+Tr+`]`,Nr=`(?:\\ud83c[\\udde6-\\uddff]){2}`,Pr=`[\\ud800-\\udbff][\\udc00-\\udfff]`,Fr=`\\u200d`,Ir=jr+`?`,Lr=`[`+Dr+`]?`,Rr=`(?:`+Fr+`(?:`+[Mr,Nr,Pr].join(`|`)+`)`+Lr+Ir+`)*`,zr=Lr+Ir+Rr,Br=`(?:`+[Mr+kr+`?`,kr,Nr,Pr,Or].join(`|`)+`)`,Vr=RegExp(Ar+`(?=`+Ar+`)|`+Br+zr,`g`);function Hr(e){return e.match(Vr)||[]}function Ur(e){return Cr(e)?Hr(e):wr(e)}function Wr(e){return function(t){t=yr(t);var n=Cr(t)?Ur(t):void 0,r=n?n[0]:t.charAt(0),i=n?xr(n,1).join(``):t.slice(1);return r[e]()+i}}var Gr=Wr(`toUpperCase`),Kr=Le(`base-icon`,` height: 1em; width: 1em; @@ -197,4 +197,4 @@ import{$ as e,An as t,At as n,B as r,Cn as i,Ct as a,Dn as o,En as s,Et as c,Fn right: 12px; justify-content: flex-end; align-items: flex-end; - `)])]),No={info:()=>S(Qr,null),success:()=>S($r,null),warning:()=>S(ei,null),error:()=>S(Zr,null),default:()=>null},Po=n({name:`Message`,props:Object.assign(Object.assign({},jo),{render:Function}),setup(e){let{inlineThemeDisabled:t,mergedRtlRef:n}=ie(e),{props:r,mergedClsPrefixRef:i}=u(Eo),a=se(`Message`,n,i),o=Oe(`Message`,`-message`,Mo,ko,r,i),s=R(()=>{let{type:t}=e,{common:{cubicBezierEaseInOut:n},self:{padding:r,margin:i,maxWidth:a,iconMargin:s,closeMargin:c,closeSize:l,iconSize:u,fontSize:d,lineHeight:f,borderRadius:p,border:m,iconColorInfo:h,iconColorSuccess:g,iconColorWarning:_,iconColorError:v,iconColorLoading:y,closeIconSize:b,closeBorderRadius:x,[j(`textColor`,t)]:S,[j(`boxShadow`,t)]:C,[j(`color`,t)]:w,[j(`closeColorHover`,t)]:T,[j(`closeColorPressed`,t)]:E,[j(`closeIconColor`,t)]:D,[j(`closeIconColorPressed`,t)]:O,[j(`closeIconColorHover`,t)]:k}}=o.value;return{"--n-bezier":n,"--n-margin":i,"--n-padding":r,"--n-max-width":a,"--n-font-size":d,"--n-icon-margin":s,"--n-icon-size":u,"--n-close-icon-size":b,"--n-close-border-radius":x,"--n-close-size":l,"--n-close-margin":c,"--n-text-color":S,"--n-color":w,"--n-box-shadow":C,"--n-icon-color-info":h,"--n-icon-color-success":g,"--n-icon-color-warning":_,"--n-icon-color-error":v,"--n-icon-color-loading":y,"--n-close-color-hover":T,"--n-close-color-pressed":E,"--n-close-icon-color":D,"--n-close-icon-color-pressed":O,"--n-close-icon-color-hover":k,"--n-line-height":f,"--n-border-radius":p,"--n-border":m}}),c=t?ne(`message`,R(()=>e.type[0]),s,{}):void 0;return{mergedClsPrefix:i,rtlEnabled:a,messageProviderProps:r,handleClose(){var t;(t=e.onClose)==null||t.call(e)},cssVars:t?void 0:s,themeClass:c?.themeClass,onRender:c?.onRender,placement:r.placement}},render(){let{render:e,type:t,closable:n,content:r,mergedClsPrefix:i,cssVars:a,themeClass:o,onRender:s,icon:c,handleClose:l,showIcon:u}=this;s?.();let d;return S(`div`,{class:[`${i}-message-wrapper`,o],onMouseenter:this.onMouseenter,onMouseleave:this.onMouseleave,style:[{alignItems:this.placement.startsWith(`top`)?`flex-start`:`flex-end`},a]},e?e(this.$props):S(`div`,{class:[`${i}-message ${i}-message--${t}-type`,this.rtlEnabled&&`${i}-message--rtl`]},(d=Fo(c,t,i,this.spinProps))&&u?S(`div`,{class:`${i}-message__icon ${i}-message__icon--${t}-type`},S(Jr,null,{default:()=>d})):null,S(`div`,{class:`${i}-message__content`},dr(r)),n?S(ii,{clsPrefix:i,class:`${i}-message__close`,onClick:l,absolute:!0}):null))}});function Fo(e,t,n,r){if(typeof e==`function`)return e();{let e=t===`loading`?S(li,Object.assign({clsPrefix:n,strokeWidth:24,scale:.85},r)):No[t]();return e?S(qr,{clsPrefix:n,key:t},{default:()=>e}):null}}var Io=n({name:`MessageEnvironment`,props:Object.assign(Object.assign({},jo),{duration:{type:Number,default:3e3},onAfterLeave:Function,onLeave:Function,internalKey:{type:String,required:!0},onInternalAfterLeave:Function,onHide:Function,onAfterHide:Function}),setup(e){let t=null,n=L(!0);f(()=>{r()});function r(){let{duration:n}=e;n&&(t=window.setTimeout(o,n))}function i(e){e.currentTarget===e.target&&t!==null&&(window.clearTimeout(t),t=null)}function a(e){e.currentTarget===e.target&&r()}function o(){let{onHide:r}=e;n.value=!1,t&&=(window.clearTimeout(t),null),r&&r()}function s(){let{onClose:t}=e;t&&t(),o()}function c(){let{onAfterLeave:t,onInternalAfterLeave:n,onAfterHide:r,internalKey:i}=e;t&&t(),n&&n(i),r&&r()}function l(){o()}return{show:n,hide:o,handleClose:s,handleAfterLeave:c,handleMouseleave:a,handleMouseenter:i,deactivate:l}},render(){return S(ai,{appear:!0,onAfterLeave:this.handleAfterLeave,onLeave:this.onLeave},{default:()=>[this.show?S(Po,{content:this.content,type:this.type,icon:this.icon,showIcon:this.showIcon,closable:this.closable,spinProps:this.spinProps,onClose:this.handleClose,onMouseenter:this.keepAliveOnHover?this.handleMouseenter:void 0,onMouseleave:this.keepAliveOnHover?this.handleMouseleave:void 0}):null]})}}),Lo=n({name:`MessageProvider`,props:Object.assign(Object.assign({},Oe.props),{to:[String,Object],duration:{type:Number,default:3e3},keepAliveOnHover:Boolean,max:Number,placement:{type:String,default:`top`},closable:Boolean,containerClass:String,containerStyle:[String,Object]}),setup(e){let{mergedClsPrefixRef:t}=ie(e),n=L([]),r=L({}),i={create(e,t){return a(e,Object.assign({type:`default`},t))},info(e,t){return a(e,Object.assign(Object.assign({},t),{type:`info`}))},success(e,t){return a(e,Object.assign(Object.assign({},t),{type:`success`}))},warning(e,t){return a(e,Object.assign(Object.assign({},t),{type:`warning`}))},error(e,t){return a(e,Object.assign(Object.assign({},t),{type:`error`}))},loading(e,t){return a(e,Object.assign(Object.assign({},t),{type:`loading`}))},destroyAll:s};oe(Eo,{props:e,mergedClsPrefixRef:t}),oe(To,i);function a(t,i){let a=sr(),o=_e(Object.assign(Object.assign({},i),{content:t,key:a,destroy:()=>{var e;(e=r.value[a])==null||e.hide()}})),{max:s}=e;return s&&n.value.length>=s&&n.value.shift(),n.value.push(o),o}function o(e){n.value.splice(n.value.findIndex(t=>t.key===e),1),delete r.value[e]}function s(){Object.values(r.value).forEach(e=>{e.hide()})}return Object.assign({mergedClsPrefix:t,messageRefs:r,messageList:n,handleAfterLeave:o},i)},render(){var e;return S(ve,null,(e=this.$slots).default?.call(e),this.messageList.length?S(le,{to:this.to??`body`},S(`div`,{class:[`${this.mergedClsPrefix}-message-container`,`${this.mergedClsPrefix}-message-container--${this.placement}`,this.containerClass],key:`message-container`,style:this.containerStyle},this.messageList.map(e=>S(Io,Object.assign({ref:t=>{t&&(this.messageRefs[e.key]=t)},internalKey:e.key,onInternalAfterLeave:this.handleAfterLeave},ur(e,[`destroy`],void 0),{duration:e.duration===void 0?this.duration:e.duration,keepAliveOnHover:e.keepAliveOnHover===void 0?this.keepAliveOnHover:e.keepAliveOnHover,closable:e.closable===void 0?this.closable:e.closable}))))):null)}}),Ro={closeMargin:`16px 12px`,closeSize:`20px`,closeIconSize:`16px`,width:`365px`,padding:`16px`,titleFontSize:`16px`,metaFontSize:`12px`,descriptionFontSize:`12px`};function zo(e){let{textColor2:t,successColor:n,infoColor:r,warningColor:i,errorColor:a,popoverColor:o,closeIconColor:s,closeIconColorHover:c,closeIconColorPressed:l,closeColorHover:u,closeColorPressed:d,textColor1:f,textColor3:p,borderRadius:m,fontWeightStrong:h,boxShadow2:g,lineHeight:_,fontSize:v}=e;return Object.assign(Object.assign({},Ro),{borderRadius:m,lineHeight:_,fontSize:v,headerFontWeight:h,iconColor:t,iconColorSuccess:n,iconColorInfo:r,iconColorWarning:i,iconColorError:a,color:o,textColor:t,closeIconColor:s,closeIconColorHover:c,closeIconColorPressed:l,closeBorderRadius:m,closeColorHover:u,closeColorPressed:d,headerTextColor:f,descriptionTextColor:p,actionTextColor:t,boxShadow:g})}I({name:`Notification`,common:N,peers:{Scrollbar:z},self:zo});var Bo={name:`Notification`,common:q,peers:{Scrollbar:J},self:zo};function Vo(e){let{textColor1:t,dividerColor:n,fontWeightStrong:r}=e;return{textColor:t,color:n,fontWeight:r}}var Ho={name:`Divider`,common:q,self:Vo};function Uo(e){let{modalColor:t,textColor1:n,textColor2:r,boxShadow3:i,lineHeight:a,fontWeightStrong:o,dividerColor:s,closeColorHover:c,closeColorPressed:l,closeIconColor:u,closeIconColorHover:d,closeIconColorPressed:f,borderRadius:p,primaryColorHover:m}=e;return{bodyPadding:`16px 24px`,borderRadius:p,headerPadding:`16px 24px`,footerPadding:`16px 24px`,color:t,textColor:r,titleTextColor:n,titleFontSize:`18px`,titleFontWeight:o,boxShadow:i,lineHeight:a,headerBorderBottom:`1px solid ${s}`,footerBorderTop:`1px solid ${s}`,closeIconColor:u,closeIconColorHover:d,closeIconColorPressed:f,closeSize:`22px`,closeIconSize:`18px`,closeColorHover:c,closeColorPressed:l,closeBorderRadius:p,resizableTriggerColorHover:m}}I({name:`Drawer`,common:N,peers:{Scrollbar:z},self:Uo});var Wo={name:`Drawer`,common:q,peers:{Scrollbar:J},self:Uo},Go={actionMargin:`0 0 0 20px`,actionMarginRtl:`0 20px 0 0`},Ko={name:`DynamicInput`,common:q,peers:{Input:X,Button:Q},self(){return Go}},qo={gapSmall:`4px 8px`,gapMedium:`8px 12px`,gapLarge:`12px 16px`},Jo={name:`Space`,self(){return qo}},Yo={name:`DynamicTags`,common:q,peers:{Input:X,Button:Q,Tag:Di,Space:Jo},self(){return{inputWidth:`64px`}}},Xo={name:`Element`,common:q},Zo={gapSmall:`4px 8px`,gapMedium:`8px 12px`,gapLarge:`12px 16px`},Qo={name:`Flex`,self(){return Zo}},$o={name:`ButtonGroup`,common:q},es={feedbackPadding:`4px 0 0 2px`,feedbackHeightSmall:`24px`,feedbackHeightMedium:`24px`,feedbackHeightLarge:`26px`,feedbackFontSizeSmall:`13px`,feedbackFontSizeMedium:`14px`,feedbackFontSizeLarge:`14px`,labelFontSizeLeftSmall:`14px`,labelFontSizeLeftMedium:`14px`,labelFontSizeLeftLarge:`15px`,labelFontSizeTopSmall:`13px`,labelFontSizeTopMedium:`14px`,labelFontSizeTopLarge:`14px`,labelHeightSmall:`24px`,labelHeightMedium:`26px`,labelHeightLarge:`28px`,labelPaddingVertical:`0 0 6px 2px`,labelPaddingHorizontal:`0 12px 0 0`,labelTextAlignVertical:`left`,labelTextAlignHorizontal:`right`,labelFontWeight:`400`};function ts(e){let{heightSmall:t,heightMedium:n,heightLarge:r,textColor1:i,errorColor:a,warningColor:o,lineHeight:s,textColor3:c}=e;return Object.assign(Object.assign({},es),{blankHeightSmall:t,blankHeightMedium:n,blankHeightLarge:r,lineHeight:s,labelTextColor:i,asteriskColor:a,feedbackTextColorError:a,feedbackTextColorWarning:o,feedbackTextColor:c})}var ns={name:`Form`,common:N,self:ts},rs={name:`Form`,common:q,self:ts},is={name:`GradientText`,common:q,self(e){let{primaryColor:t,successColor:n,warningColor:r,errorColor:i,infoColor:a,primaryColorSuppl:o,successColorSuppl:s,warningColorSuppl:c,errorColorSuppl:l,infoColorSuppl:u,fontWeightStrong:d}=e;return{fontWeight:d,rotate:`252deg`,colorStartPrimary:t,colorEndPrimary:o,colorStartInfo:a,colorEndInfo:u,colorStartWarning:r,colorEndWarning:c,colorStartError:i,colorEndError:l,colorStartSuccess:n,colorEndSuccess:s}}},as={name:`InputNumber`,common:q,peers:{Button:Q,Input:X},self(e){let{textColorDisabled:t}=e;return{iconColorDisabled:t}}};function os(){return{inputWidthSmall:`24px`,inputWidthMedium:`30px`,inputWidthLarge:`36px`,gapSmall:`8px`,gapMedium:`8px`,gapLarge:`8px`}}I({name:`InputOtp`,common:N,peers:{Input:Ui},self:os});var ss={name:`InputOtp`,common:q,peers:{Input:X},self:os},cs={name:`Layout`,common:q,peers:{Scrollbar:J},self(e){let{textColor2:t,bodyColor:n,popoverColor:r,cardColor:i,dividerColor:a,scrollbarColor:o,scrollbarColorHover:s}=e;return{textColor:t,textColorInverted:t,color:n,colorEmbedded:n,headerColor:i,headerColorInverted:i,footerColor:i,footerColorInverted:i,headerBorderColor:a,headerBorderColorInverted:a,footerBorderColor:a,footerBorderColorInverted:a,siderBorderColor:a,siderBorderColorInverted:a,siderColor:i,siderColorInverted:i,siderToggleButtonBorder:`1px solid transparent`,siderToggleButtonColor:r,siderToggleButtonIconColor:t,siderToggleButtonIconColorInverted:t,siderToggleBarColor:D(n,o),siderToggleBarColorHover:D(n,s),__invertScrollbar:`false`}}},ls={name:`Row`,common:q};function us(e){let{textColor2:t,cardColor:n,modalColor:r,popoverColor:i,dividerColor:a,borderRadius:o,fontSize:s,hoverColor:c}=e;return{textColor:t,color:n,colorHover:c,colorModal:r,colorHoverModal:D(r,c),colorPopover:i,colorHoverPopover:D(i,c),borderColor:a,borderColorModal:D(r,a),borderColorPopover:D(i,a),borderRadius:o,fontSize:s}}var ds={name:`List`,common:q,self:us},fs={name:`Log`,common:q,peers:{Scrollbar:J,Code:xa},self(e){let{textColor2:t,inputColor:n,fontSize:r,primaryColor:i}=e;return{loaderFontSize:r,loaderTextColor:t,loaderColor:n,loaderBorder:`1px solid #0000`,loadingColor:i}}},ps={name:`Mention`,common:q,peers:{InternalSelectMenu:xi,Input:X},self(e){let{boxShadow2:t}=e;return{menuBoxShadow:t}}};function ms(e,t,n,r){return{itemColorHoverInverted:`#0000`,itemColorActiveInverted:t,itemColorActiveHoverInverted:t,itemColorActiveCollapsedInverted:t,itemTextColorInverted:e,itemTextColorHoverInverted:n,itemTextColorChildActiveInverted:n,itemTextColorChildActiveHoverInverted:n,itemTextColorActiveInverted:n,itemTextColorActiveHoverInverted:n,itemTextColorHorizontalInverted:e,itemTextColorHoverHorizontalInverted:n,itemTextColorChildActiveHorizontalInverted:n,itemTextColorChildActiveHoverHorizontalInverted:n,itemTextColorActiveHorizontalInverted:n,itemTextColorActiveHoverHorizontalInverted:n,itemIconColorInverted:e,itemIconColorHoverInverted:n,itemIconColorActiveInverted:n,itemIconColorActiveHoverInverted:n,itemIconColorChildActiveInverted:n,itemIconColorChildActiveHoverInverted:n,itemIconColorCollapsedInverted:e,itemIconColorHorizontalInverted:e,itemIconColorHoverHorizontalInverted:n,itemIconColorActiveHorizontalInverted:n,itemIconColorActiveHoverHorizontalInverted:n,itemIconColorChildActiveHorizontalInverted:n,itemIconColorChildActiveHoverHorizontalInverted:n,arrowColorInverted:e,arrowColorHoverInverted:n,arrowColorActiveInverted:n,arrowColorActiveHoverInverted:n,arrowColorChildActiveInverted:n,arrowColorChildActiveHoverInverted:n,groupTextColorInverted:r}}function hs(e){let{borderRadius:t,textColor3:n,primaryColor:r,textColor2:i,textColor1:a,fontSize:o,dividerColor:s,hoverColor:c,primaryColorHover:l}=e;return Object.assign({borderRadius:t,color:`#0000`,groupTextColor:n,itemColorHover:c,itemColorActive:A(r,{alpha:.1}),itemColorActiveHover:A(r,{alpha:.1}),itemColorActiveCollapsed:A(r,{alpha:.1}),itemTextColor:i,itemTextColorHover:i,itemTextColorActive:r,itemTextColorActiveHover:r,itemTextColorChildActive:r,itemTextColorChildActiveHover:r,itemTextColorHorizontal:i,itemTextColorHoverHorizontal:l,itemTextColorActiveHorizontal:r,itemTextColorActiveHoverHorizontal:r,itemTextColorChildActiveHorizontal:r,itemTextColorChildActiveHoverHorizontal:r,itemIconColor:a,itemIconColorHover:a,itemIconColorActive:r,itemIconColorActiveHover:r,itemIconColorChildActive:r,itemIconColorChildActiveHover:r,itemIconColorCollapsed:a,itemIconColorHorizontal:a,itemIconColorHoverHorizontal:l,itemIconColorActiveHorizontal:r,itemIconColorActiveHoverHorizontal:r,itemIconColorChildActiveHorizontal:r,itemIconColorChildActiveHoverHorizontal:r,itemHeight:`42px`,arrowColor:i,arrowColorHover:i,arrowColorActive:r,arrowColorActiveHover:r,arrowColorChildActive:r,arrowColorChildActiveHover:r,colorInverted:`#0000`,borderColorHorizontal:`#0000`,fontSize:o,dividerColor:s},ms(`#BBB`,r,`#FFF`,`#AAA`))}I({name:`Menu`,common:N,peers:{Tooltip:qa,Dropdown:Ha},self:hs});var gs={name:`Menu`,common:q,peers:{Tooltip:Ga,Dropdown:Ua},self(e){let{primaryColor:t,primaryColorSuppl:n}=e,r=hs(e);return r.itemColorActive=A(t,{alpha:.15}),r.itemColorActiveHover=A(t,{alpha:.15}),r.itemColorActiveCollapsed=A(t,{alpha:.15}),r.itemColorActiveInverted=n,r.itemColorActiveHoverInverted=n,r.itemColorActiveCollapsedInverted=n,r}},_s={titleFontSize:`18px`,backSize:`22px`};function vs(e){let{textColor1:t,textColor2:n,textColor3:r,fontSize:i,fontWeightStrong:a,primaryColorHover:o,primaryColorPressed:s}=e;return Object.assign(Object.assign({},_s),{titleFontWeight:a,fontSize:i,titleTextColor:t,backColor:n,backColorHover:o,backColorPressed:s,subtitleTextColor:r})}I({name:`PageHeader`,common:N,self:vs});var ys={name:`PageHeader`,common:q,self:vs},bs={iconSize:`22px`};function xs(e){let{fontSize:t,warningColor:n}=e;return Object.assign(Object.assign({},bs),{fontSize:t,iconColor:n})}var Ss=I({name:`Popconfirm`,common:N,peers:{Button:Z,Popover:wi},self:xs}),Cs={name:`Popconfirm`,common:q,peers:{Button:Q,Popover:Ti},self:xs};function ws(e){let{infoColor:t,successColor:n,warningColor:r,errorColor:i,textColor2:a,progressRailColor:o,fontSize:s,fontWeight:c}=e;return{fontSize:s,fontSizeCircle:`28px`,fontWeightCircle:c,railColor:o,railHeight:`8px`,iconSizeCircle:`36px`,iconSizeLine:`18px`,iconColor:t,iconColorInfo:t,iconColorSuccess:n,iconColorWarning:r,iconColorError:i,textColorCircle:a,textColorLineInner:`rgb(255, 255, 255)`,textColorLineOuter:a,fillColor:t,fillColorInfo:t,fillColorSuccess:n,fillColorWarning:r,fillColorError:i,lineBgProcessing:`linear-gradient(90deg, rgba(255, 255, 255, .3) 0%, rgba(255, 255, 255, .5) 100%)`}}var Ts={name:`Progress`,common:N,self:ws},Es={name:`Progress`,common:q,self(e){let t=ws(e);return t.textColorLineInner=`rgb(0, 0, 0)`,t.lineBgProcessing=`linear-gradient(90deg, rgba(255, 255, 255, .3) 0%, rgba(255, 255, 255, .5) 100%)`,t}},Ds={name:`Rate`,common:q,self(e){let{railColor:t}=e;return{itemColor:t,itemColorActive:`#CCAA33`,itemSize:`20px`,sizeSmall:`16px`,sizeMedium:`20px`,sizeLarge:`24px`}}},Os={titleFontSizeSmall:`26px`,titleFontSizeMedium:`32px`,titleFontSizeLarge:`40px`,titleFontSizeHuge:`48px`,fontSizeSmall:`14px`,fontSizeMedium:`14px`,fontSizeLarge:`15px`,fontSizeHuge:`16px`,iconSizeSmall:`64px`,iconSizeMedium:`80px`,iconSizeLarge:`100px`,iconSizeHuge:`125px`,iconColor418:void 0,iconColor404:void 0,iconColor403:void 0,iconColor500:void 0};function ks(e){let{textColor2:t,textColor1:n,errorColor:r,successColor:i,infoColor:a,warningColor:o,lineHeight:s,fontWeightStrong:c}=e;return Object.assign(Object.assign({},Os),{lineHeight:s,titleFontWeight:c,titleTextColor:n,textColor:t,iconColorError:r,iconColorSuccess:i,iconColorInfo:a,iconColorWarning:o})}var As={name:`Result`,common:q,self:ks},js={railHeight:`4px`,railWidthVertical:`4px`,handleSize:`18px`,dotHeight:`8px`,dotWidth:`8px`,dotBorderRadius:`4px`},Ms={name:`Slider`,common:q,self(e){let{railColor:t,modalColor:n,primaryColorSuppl:r,popoverColor:i,textColor2:a,cardColor:o,borderRadius:s,fontSize:c,opacityDisabled:l}=e;return Object.assign(Object.assign({},js),{fontSize:c,markFontSize:c,railColor:t,railColorHover:t,fillColor:r,fillColorHover:r,opacityDisabled:l,handleColor:`#FFF`,dotColor:o,dotColorModal:n,dotColorPopover:i,handleBoxShadow:`0px 2px 4px 0 rgba(0, 0, 0, 0.4)`,handleBoxShadowHover:`0px 2px 4px 0 rgba(0, 0, 0, 0.4)`,handleBoxShadowActive:`0px 2px 4px 0 rgba(0, 0, 0, 0.4)`,handleBoxShadowFocus:`0px 2px 4px 0 rgba(0, 0, 0, 0.4)`,indicatorColor:i,indicatorBoxShadow:`0 2px 8px 0 rgba(0, 0, 0, 0.12)`,indicatorTextColor:a,indicatorBorderRadius:s,dotBorder:`2px solid ${t}`,dotBorderActive:`2px solid ${r}`,dotBoxShadow:``})}};function Ns(e){let{opacityDisabled:t,heightTiny:n,heightSmall:r,heightMedium:i,heightLarge:a,heightHuge:o,primaryColor:s,fontSize:c}=e;return{fontSize:c,textColor:s,sizeTiny:n,sizeSmall:r,sizeMedium:i,sizeLarge:a,sizeHuge:o,color:s,opacitySpinning:t}}var Ps={name:`Spin`,common:N,self:Ns},Fs={name:`Spin`,common:q,self:Ns};function Is(e){let{textColor2:t,textColor3:n,fontSize:r,fontWeight:i}=e;return{labelFontSize:r,labelFontWeight:i,valueFontWeight:i,valueFontSize:`24px`,labelTextColor:n,valuePrefixTextColor:t,valueSuffixTextColor:t,valueTextColor:t}}var Ls={name:`Statistic`,common:q,self:Is},Rs={stepHeaderFontSizeSmall:`14px`,stepHeaderFontSizeMedium:`16px`,indicatorIndexFontSizeSmall:`14px`,indicatorIndexFontSizeMedium:`16px`,indicatorSizeSmall:`22px`,indicatorSizeMedium:`28px`,indicatorIconSizeSmall:`14px`,indicatorIconSizeMedium:`18px`};function zs(e){let{fontWeightStrong:t,baseColor:n,textColorDisabled:r,primaryColor:i,errorColor:a,textColor1:o,textColor2:s}=e;return Object.assign(Object.assign({},Rs),{stepHeaderFontWeight:t,indicatorTextColorProcess:n,indicatorTextColorWait:r,indicatorTextColorFinish:i,indicatorTextColorError:a,indicatorBorderColorProcess:i,indicatorBorderColorWait:r,indicatorBorderColorFinish:i,indicatorBorderColorError:a,indicatorColorProcess:i,indicatorColorWait:`#0000`,indicatorColorFinish:`#0000`,indicatorColorError:`#0000`,splitorColorProcess:r,splitorColorWait:r,splitorColorFinish:i,splitorColorError:r,headerTextColorProcess:o,headerTextColorWait:r,headerTextColorFinish:r,headerTextColorError:a,descriptionTextColorProcess:s,descriptionTextColorWait:r,descriptionTextColorFinish:r,descriptionTextColorError:a})}var Bs={name:`Steps`,common:q,self:zs},Vs={buttonHeightSmall:`14px`,buttonHeightMedium:`18px`,buttonHeightLarge:`22px`,buttonWidthSmall:`14px`,buttonWidthMedium:`18px`,buttonWidthLarge:`22px`,buttonWidthPressedSmall:`20px`,buttonWidthPressedMedium:`24px`,buttonWidthPressedLarge:`28px`,railHeightSmall:`18px`,railHeightMedium:`22px`,railHeightLarge:`26px`,railWidthSmall:`32px`,railWidthMedium:`40px`,railWidthLarge:`48px`},Hs={name:`Switch`,common:q,self(e){let{primaryColorSuppl:t,opacityDisabled:n,borderRadius:r,primaryColor:i,textColor2:a,baseColor:o}=e;return Object.assign(Object.assign({},Vs),{iconColor:o,textColor:a,loadingColor:t,opacityDisabled:n,railColor:`rgba(255, 255, 255, .20)`,railColorActive:t,buttonBoxShadow:`0px 2px 4px 0 rgba(0, 0, 0, 0.4)`,buttonColor:`#FFF`,railBorderRadiusSmall:r,railBorderRadiusMedium:r,railBorderRadiusLarge:r,buttonBorderRadiusSmall:r,buttonBorderRadiusMedium:r,buttonBorderRadiusLarge:r,boxShadowFocus:`0 0 8px 0 ${A(i,{alpha:.3})}`})}},Us={thPaddingSmall:`6px`,thPaddingMedium:`12px`,thPaddingLarge:`12px`,tdPaddingSmall:`6px`,tdPaddingMedium:`12px`,tdPaddingLarge:`12px`};function Ws(e){let{dividerColor:t,cardColor:n,modalColor:r,popoverColor:i,tableHeaderColor:a,tableColorStriped:o,textColor1:s,textColor2:c,borderRadius:l,fontWeightStrong:u,lineHeight:d,fontSizeSmall:f,fontSizeMedium:p,fontSizeLarge:m}=e;return Object.assign(Object.assign({},Us),{fontSizeSmall:f,fontSizeMedium:p,fontSizeLarge:m,lineHeight:d,borderRadius:l,borderColor:D(n,t),borderColorModal:D(r,t),borderColorPopover:D(i,t),tdColor:n,tdColorModal:r,tdColorPopover:i,tdColorStriped:D(n,o),tdColorStripedModal:D(r,o),tdColorStripedPopover:D(i,o),thColor:D(n,a),thColorModal:D(r,a),thColorPopover:D(i,a),thTextColor:s,tdTextColor:c,thFontWeight:u})}var Gs={name:`Table`,common:N,self:Ws},Ks={name:`Table`,common:q,self:Ws},qs={tabFontSizeSmall:`14px`,tabFontSizeMedium:`14px`,tabFontSizeLarge:`16px`,tabGapSmallLine:`36px`,tabGapMediumLine:`36px`,tabGapLargeLine:`36px`,tabGapSmallLineVertical:`8px`,tabGapMediumLineVertical:`8px`,tabGapLargeLineVertical:`8px`,tabPaddingSmallLine:`6px 0`,tabPaddingMediumLine:`10px 0`,tabPaddingLargeLine:`14px 0`,tabPaddingVerticalSmallLine:`6px 12px`,tabPaddingVerticalMediumLine:`8px 16px`,tabPaddingVerticalLargeLine:`10px 20px`,tabGapSmallBar:`36px`,tabGapMediumBar:`36px`,tabGapLargeBar:`36px`,tabGapSmallBarVertical:`8px`,tabGapMediumBarVertical:`8px`,tabGapLargeBarVertical:`8px`,tabPaddingSmallBar:`4px 0`,tabPaddingMediumBar:`6px 0`,tabPaddingLargeBar:`10px 0`,tabPaddingVerticalSmallBar:`6px 12px`,tabPaddingVerticalMediumBar:`8px 16px`,tabPaddingVerticalLargeBar:`10px 20px`,tabGapSmallCard:`4px`,tabGapMediumCard:`4px`,tabGapLargeCard:`4px`,tabGapSmallCardVertical:`4px`,tabGapMediumCardVertical:`4px`,tabGapLargeCardVertical:`4px`,tabPaddingSmallCard:`8px 16px`,tabPaddingMediumCard:`10px 20px`,tabPaddingLargeCard:`12px 24px`,tabPaddingSmallSegment:`4px 0`,tabPaddingMediumSegment:`6px 0`,tabPaddingLargeSegment:`8px 0`,tabPaddingVerticalLargeSegment:`0 8px`,tabPaddingVerticalSmallCard:`8px 12px`,tabPaddingVerticalMediumCard:`10px 16px`,tabPaddingVerticalLargeCard:`12px 20px`,tabPaddingVerticalSmallSegment:`0 4px`,tabPaddingVerticalMediumSegment:`0 6px`,tabGapSmallSegment:`0`,tabGapMediumSegment:`0`,tabGapLargeSegment:`0`,tabGapSmallSegmentVertical:`0`,tabGapMediumSegmentVertical:`0`,tabGapLargeSegmentVertical:`0`,panePaddingSmall:`8px 0 0 0`,panePaddingMedium:`12px 0 0 0`,panePaddingLarge:`16px 0 0 0`,closeSize:`18px`,closeIconSize:`14px`};function Js(e){let{textColor2:t,primaryColor:n,textColorDisabled:r,closeIconColor:i,closeIconColorHover:a,closeIconColorPressed:o,closeColorHover:s,closeColorPressed:c,tabColor:l,baseColor:u,dividerColor:d,fontWeight:f,textColor1:p,borderRadius:m,fontSize:h,fontWeightStrong:g}=e;return Object.assign(Object.assign({},qs),{colorSegment:l,tabFontSizeCard:h,tabTextColorLine:p,tabTextColorActiveLine:n,tabTextColorHoverLine:n,tabTextColorDisabledLine:r,tabTextColorSegment:p,tabTextColorActiveSegment:t,tabTextColorHoverSegment:t,tabTextColorDisabledSegment:r,tabTextColorBar:p,tabTextColorActiveBar:n,tabTextColorHoverBar:n,tabTextColorDisabledBar:r,tabTextColorCard:p,tabTextColorHoverCard:p,tabTextColorActiveCard:n,tabTextColorDisabledCard:r,barColor:n,closeIconColor:i,closeIconColorHover:a,closeIconColorPressed:o,closeColorHover:s,closeColorPressed:c,closeBorderRadius:m,tabColor:l,tabColorSegment:u,tabBorderColor:d,tabFontWeightActive:f,tabFontWeight:f,tabBorderRadius:m,paneTextColor:t,fontWeightStrong:g})}var Ys={name:`Tabs`,common:N,self:Js},Xs={name:`Tabs`,common:q,self(e){let t=Js(e),{inputColor:n}=e;return t.colorSegment=n,t.tabColorSegment=n,t}};function Zs(e){let{textColor1:t,textColor2:n,fontWeightStrong:r,fontSize:i}=e;return{fontSize:i,titleTextColor:t,textColor:n,titleFontWeight:r}}var Qs={name:`Thing`,common:q,self:Zs},$s={titleMarginMedium:`0 0 6px 0`,titleMarginLarge:`-2px 0 6px 0`,titleFontSizeMedium:`14px`,titleFontSizeLarge:`16px`,iconSizeMedium:`14px`,iconSizeLarge:`14px`},ec={name:`Timeline`,common:q,self(e){let{textColor3:t,infoColorSuppl:n,errorColorSuppl:r,successColorSuppl:i,warningColorSuppl:a,textColor1:o,textColor2:s,railColor:c,fontWeightStrong:l,fontSize:u}=e;return Object.assign(Object.assign({},$s),{contentFontSize:u,titleFontWeight:l,circleBorder:`2px solid ${t}`,circleBorderInfo:`2px solid ${n}`,circleBorderError:`2px solid ${r}`,circleBorderSuccess:`2px solid ${i}`,circleBorderWarning:`2px solid ${a}`,iconColor:t,iconColorInfo:n,iconColorError:r,iconColorSuccess:i,iconColorWarning:a,titleTextColor:o,contentTextColor:s,metaTextColor:t,lineColor:c})}},tc={extraFontSizeSmall:`12px`,extraFontSizeMedium:`12px`,extraFontSizeLarge:`14px`,titleFontSizeSmall:`14px`,titleFontSizeMedium:`16px`,titleFontSizeLarge:`16px`,closeSize:`20px`,closeIconSize:`16px`,headerHeightSmall:`44px`,headerHeightMedium:`44px`,headerHeightLarge:`50px`},nc={name:`Transfer`,common:q,peers:{Checkbox:va,Scrollbar:J,Input:X,Empty:_i,Button:Q},self(e){let{fontWeight:t,fontSizeLarge:n,fontSizeMedium:r,fontSizeSmall:i,heightLarge:a,heightMedium:o,borderRadius:s,inputColor:c,tableHeaderColor:l,textColor1:u,textColorDisabled:d,textColor2:f,textColor3:p,hoverColor:m,closeColorHover:h,closeColorPressed:g,closeIconColor:_,closeIconColorHover:v,closeIconColorPressed:y,dividerColor:b}=e;return Object.assign(Object.assign({},tc),{itemHeightSmall:o,itemHeightMedium:o,itemHeightLarge:a,fontSizeSmall:i,fontSizeMedium:r,fontSizeLarge:n,borderRadius:s,dividerColor:b,borderColor:`#0000`,listColor:c,headerColor:l,titleTextColor:u,titleTextColorDisabled:d,extraTextColor:p,extraTextColorDisabled:d,itemTextColor:f,itemTextColorDisabled:d,itemColorPending:m,titleFontWeight:t,closeColorHover:h,closeColorPressed:g,closeIconColor:_,closeIconColorHover:v,closeIconColorPressed:y})}};function rc(e){let{borderRadiusSmall:t,dividerColor:n,hoverColor:r,pressedColor:i,primaryColor:a,textColor3:o,textColor2:s,textColorDisabled:c,fontSize:l}=e;return{fontSize:l,lineHeight:`1.5`,nodeHeight:`30px`,nodeWrapperPadding:`3px 0`,nodeBorderRadius:t,nodeColorHover:r,nodeColorPressed:i,nodeColorActive:A(a,{alpha:.1}),arrowColor:o,nodeTextColor:s,nodeTextColorDisabled:c,loadingColor:a,dropMarkColor:a,lineColor:n}}I({name:`Tree`,common:N,peers:{Checkbox:_a,Scrollbar:z,Empty:gi},self:rc});var ic={name:`Tree`,common:q,peers:{Checkbox:va,Scrollbar:J,Empty:_i},self(e){let{primaryColor:t}=e,n=rc(e);return n.nodeColorActive=A(t,{alpha:.15}),n}},ac={name:`TreeSelect`,common:q,peers:{Tree:ic,Empty:_i,InternalSelection:ki}},oc={headerFontSize1:`30px`,headerFontSize2:`22px`,headerFontSize3:`18px`,headerFontSize4:`16px`,headerFontSize5:`16px`,headerFontSize6:`16px`,headerMargin1:`28px 0 20px 0`,headerMargin2:`28px 0 20px 0`,headerMargin3:`28px 0 20px 0`,headerMargin4:`28px 0 18px 0`,headerMargin5:`28px 0 18px 0`,headerMargin6:`28px 0 18px 0`,headerPrefixWidth1:`16px`,headerPrefixWidth2:`16px`,headerPrefixWidth3:`12px`,headerPrefixWidth4:`12px`,headerPrefixWidth5:`12px`,headerPrefixWidth6:`12px`,headerBarWidth1:`4px`,headerBarWidth2:`4px`,headerBarWidth3:`3px`,headerBarWidth4:`3px`,headerBarWidth5:`3px`,headerBarWidth6:`3px`,pMargin:`16px 0 16px 0`,liMargin:`.25em 0 0 0`,olPadding:`0 0 0 2em`,ulPadding:`0 0 0 2em`};function sc(e){let{primaryColor:t,textColor2:n,borderColor:r,lineHeight:i,fontSize:a,borderRadiusSmall:o,dividerColor:s,fontWeightStrong:c,textColor1:l,textColor3:u,infoColor:d,warningColor:f,errorColor:p,successColor:m,codeColor:h}=e;return Object.assign(Object.assign({},oc),{aTextColor:t,blockquoteTextColor:n,blockquotePrefixColor:r,blockquoteLineHeight:i,blockquoteFontSize:a,codeBorderRadius:o,liTextColor:n,liLineHeight:i,liFontSize:a,hrColor:s,headerFontWeight:c,headerTextColor:l,pTextColor:n,pTextColor1Depth:l,pTextColor2Depth:n,pTextColor3Depth:u,pLineHeight:i,pFontSize:a,headerBarColor:t,headerBarColorPrimary:t,headerBarColorInfo:d,headerBarColorError:p,headerBarColorWarning:f,headerBarColorSuccess:m,textColor:n,textColor1Depth:l,textColor2Depth:n,textColor3Depth:u,textColorPrimary:t,textColorInfo:d,textColorSuccess:m,textColorWarning:f,textColorError:p,codeTextColor:n,codeColor:h,codeBorder:`1px solid #0000`})}var cc={name:`Typography`,common:N,self:sc},lc={name:`Typography`,common:q,self:sc};function uc(e){let{iconColor:t,primaryColor:n,errorColor:r,textColor2:i,successColor:a,opacityDisabled:o,actionColor:s,borderColor:c,hoverColor:l,lineHeight:u,borderRadius:d,fontSize:f}=e;return{fontSize:f,lineHeight:u,borderRadius:d,draggerColor:s,draggerBorder:`1px dashed ${c}`,draggerBorderHover:`1px dashed ${n}`,itemColorHover:l,itemColorHoverError:A(r,{alpha:.06}),itemTextColor:i,itemTextColorError:r,itemTextColorSuccess:a,itemIconColor:t,itemDisabledOpacity:o,itemBorderImageCardError:`1px solid ${r}`,itemBorderImageCard:`1px solid ${c}`}}var dc=I({name:`Upload`,common:N,peers:{Button:Z,Progress:Ts},self:uc}),fc={name:`Upload`,common:q,peers:{Button:Q,Progress:Es},self(e){let{errorColor:t}=e,n=uc(e);return n.itemColorHoverError=A(t,{alpha:.09}),n}},pc={name:`Watermark`,common:q,self(e){let{fontFamily:t}=e;return{fontFamily:t}}},mc={name:`FloatButton`,common:q,self(e){let{popoverColor:t,textColor2:n,buttonColor2Hover:r,buttonColor2Pressed:i,primaryColor:a,primaryColorHover:o,primaryColorPressed:s,baseColor:c,borderRadius:l}=e;return{color:t,textColor:n,boxShadow:`0 2px 8px 0px rgba(0, 0, 0, .12)`,boxShadowHover:`0 2px 12px 0px rgba(0, 0, 0, .18)`,boxShadowPressed:`0 2px 12px 0px rgba(0, 0, 0, .18)`,colorHover:r,colorPressed:i,colorPrimary:a,colorPrimaryHover:o,colorPrimaryPressed:s,textColorPrimary:c,borderRadiusSquare:l}}};function hc(e){let{borderRadius:t,fontSizeMini:n,fontSizeTiny:r,fontSizeSmall:i,fontWeight:a,textColor2:o,cardColor:s,buttonColor2Hover:c}=e;return{activeColors:[`#9be9a8`,`#40c463`,`#30a14e`,`#216e39`],borderRadius:t,borderColor:s,textColor:o,mininumColor:c,fontWeight:a,loadingColorStart:`rgba(0, 0, 0, 0.06)`,loadingColorEnd:`rgba(0, 0, 0, 0.12)`,rectSizeSmall:`10px`,rectSizeMedium:`11px`,rectSizeLarge:`12px`,borderRadiusSmall:`2px`,borderRadiusMedium:`2px`,borderRadiusLarge:`2px`,xGapSmall:`2px`,xGapMedium:`3px`,xGapLarge:`3px`,yGapSmall:`2px`,yGapMedium:`3px`,yGapLarge:`3px`,fontSizeSmall:r,fontSizeMedium:n,fontSizeLarge:i}}I({name:`Heatmap`,common:N,self:hc});var gc={name:`Heatmap`,common:q,self(e){let t=hc(e);return Object.assign(Object.assign({},t),{activeColors:[`#0d4429`,`#006d32`,`#26a641`,`#39d353`],mininumColor:`rgba(255, 255, 255, 0.1)`,loadingColorStart:`rgba(255, 255, 255, 0.12)`,loadingColorEnd:`rgba(255, 255, 255, 0.18)`})}};function _c(e){let{primaryColor:t,baseColor:n}=e;return{color:t,iconColor:n}}var vc={name:`IconWrapper`,common:q,self:_c},yc={name:`Image`,common:q,peers:{Tooltip:Ga},self:e=>{let{textColor2:t}=e;return{toolbarIconColor:t,toolbarColor:`rgba(0, 0, 0, .35)`,toolbarBoxShadow:`none`,toolbarBorderRadius:`24px`}}},bc={extraFontSize:`12px`,width:`440px`},xc={name:`Transfer`,common:q,peers:{Checkbox:va,Scrollbar:J,Input:X,Empty:_i,Button:Q},self(e){let{iconColorDisabled:t,iconColor:n,fontWeight:r,fontSizeLarge:i,fontSizeMedium:a,fontSizeSmall:o,heightLarge:s,heightMedium:c,heightSmall:l,borderRadius:u,inputColor:d,tableHeaderColor:f,textColor1:p,textColorDisabled:m,textColor2:h,hoverColor:g}=e;return Object.assign(Object.assign({},bc),{itemHeightSmall:l,itemHeightMedium:c,itemHeightLarge:s,fontSizeSmall:o,fontSizeMedium:a,fontSizeLarge:i,borderRadius:u,borderColor:`#0000`,listColor:d,headerColor:f,titleTextColor:p,titleTextColorDisabled:m,extraTextColor:h,filterDividerColor:`#0000`,itemTextColor:h,itemTextColorDisabled:m,itemColorPending:g,titleFontWeight:r,iconColor:n,iconColorDisabled:t})}};function Sc(){return{}}var Cc={name:`dark`,common:q,Alert:Ni,Anchor:zi,AutoComplete:Ki,Avatar:Yi,AvatarGroup:Zi,BackTop:$i,Badge:ea,Breadcrumb:ra,Button:Q,ButtonGroup:$o,Calendar:ca,Card:fa,Carousel:ma,Cascader:ba,Checkbox:va,Code:xa,Collapse:wa,CollapseTransition:Ea,ColorPicker:Oa,DataTable:no,DatePicker:po,Descriptions:go,Dialog:bo,Divider:Ho,Drawer:Wo,Dropdown:Ua,DynamicInput:Ko,DynamicTags:Yo,Element:Xo,Empty:_i,Ellipsis:Ja,Equation:{name:`Equation`,common:q,self:()=>({})},Flex:Qo,Form:rs,GradientText:is,Heatmap:gc,Icon:io,IconWrapper:vc,Image:yc,Input:X,InputNumber:as,InputOtp:ss,LegacyTransfer:xc,Layout:cs,List:ds,LoadingBar:wo,Log:fs,Menu:gs,Mention:ps,Message:Ao,Modal:Co,Notification:Bo,PageHeader:ys,Pagination:za,Popconfirm:Cs,Popover:Ti,Popselect:Aa,Progress:Es,QrCode:{name:`QrCode`,common:q,self:e=>({borderRadius:e.borderRadius})},Radio:Za,Rate:Ds,Result:As,Row:ls,Scrollbar:J,Select:Fa,Skeleton:{name:`Skeleton`,common:q,self(e){let{heightSmall:t,heightMedium:n,heightLarge:r,borderRadius:i}=e;return{color:`rgba(255, 255, 255, 0.12)`,colorEnd:`rgba(255, 255, 255, 0.18)`,borderRadius:i,heightSmall:t,heightMedium:n,heightLarge:r}}},Slider:Ms,Space:Jo,Spin:Fs,Statistic:Ls,Steps:Bs,Switch:Hs,Table:Ks,Tabs:Xs,Tag:Di,Thing:Qs,TimePicker:co,Timeline:ec,Tooltip:Ga,Transfer:nc,Tree:ic,TreeSelect:ac,Typography:lc,Upload:fc,Watermark:pc,Split:{name:`Split`,common:q},FloatButton:mc,FloatButtonGroup:{name:`FloatButtonGroup`,common:q,self(e){let{popoverColor:t,dividerColor:n,borderRadius:r}=e;return{color:t,buttonBorderColor:n,borderRadiusSquare:r,boxShadow:`0 2px 8px 0px rgba(0, 0, 0, .12)`}}},Marquee:{name:`Marquee`,common:q,self:Sc}},wc=ar(`auth`,()=>{let e=L(null),t=L(null),n=L(null),r=L(!1),i=L(null),a=null,o=0,s=!1,c=R(()=>!!e.value),l=R(()=>n.value?.username||``),u=R(()=>n.value?.roles||[]);function d(){e.value=localStorage.getItem(`accessToken`),t.value=localStorage.getItem(`refreshToken`)}function f(n,r){e.value=n,t.value=r||null,r?localStorage.setItem(`refreshToken`,r):localStorage.removeItem(`refreshToken`),localStorage.setItem(`accessToken`,n)}function p(){d(),s||=(window.addEventListener(`storage`,e=>{if(e.storageArea!==localStorage||e.key!==`accessToken`&&e.key!==null)return;let t=()=>{o++,d(),n.value=null,i.value=null,h()};a&&localStorage.getItem(`accessToken`)&&localStorage.getItem(`refreshToken`)?a.then(t,t):t()}),!0),h()}function m(){return e.value}async function h(){if(!e.value)return;let t=o;try{let r=await Ec().GetMe({});r.user&&t===o&&e.value&&(n.value=r.user,i.value=null)}catch(e){t===o&&(i.value=e instanceof Error?e.message:`Не удалось восстановить сессию`)}}async function g(e,t){r.value=!0,i.value=null;let a=++o;try{let r=await Ve().Login({email:e,password:t});return r.accessToken&&a===o?(n.value=null,f(r.accessToken,r.refreshToken),await h(),!0):!1}catch(e){return i.value=e instanceof Error?e.message:`Login failed`,!1}finally{r.value=!1}}function _(n=e.value){if(a)return a;let r=o,i=t.value,s=async()=>{if(r!==o)return!1;if(d(),!e.value||!t.value)return await x(),!1;if(e.value!==n||t.value!==i)return!0;try{let e=await Ve().Refresh({refreshToken:i||void 0});if(r!==o||localStorage.getItem(`refreshToken`)!==i)return!1;if(!e.accessToken||!e.refreshToken)throw Error(`Сервер не вернул токены сессии`);return f(e.accessToken,e.refreshToken),!0}catch(e){if(r!==o||localStorage.getItem(`refreshToken`)!==i)return!1;if(e instanceof Error&&e.message===`unauthorized`)return await x(),!1;throw e}};return a=(navigator.locks?navigator.locks.request(`evening-detective-auth-refresh`,s):s()).finally(()=>{a=null}),a}async function v(e,t,n,a){r.value=!0,i.value=null;try{return await Ve(m).Signup({username:e,email:t,acceptTerms:n,acceptPrivacy:a}),!0}catch(e){return i.value=e instanceof Error?e.message:`Signup failed`,!1}finally{r.value=!1}}async function y(e){r.value=!0,i.value=null;try{return await Ec(()=>({"X-Password":e})).DeleteAccount({}),await x(),!0}catch(e){return i.value=e instanceof Error?e.message:`Account deletion failed`,!1}finally{r.value=!1}}async function b(e){r.value=!0,i.value=null;try{return await Ve(m).RefreshPassword({email:e}),!0}catch(e){return i.value=e instanceof Error?e.message:`Password reset failed`,!1}finally{r.value=!1}}async function x(){o++,e.value=null,t.value=null,n.value=null,i.value=null,localStorage.removeItem(`refreshToken`),localStorage.removeItem(`accessToken`)}function S(e){return u.value.includes(e)}function C(e){return e.some(e=>u.value.includes(e))}return{accessToken:e,refreshToken:t,user:n,isLoading:r,error:i,isAuthenticated:c,username:l,userRoles:u,initFromStorage:p,getToken:m,login:g,signup:v,deleteAccount:y,refreshPassword:b,logout:x,fetchUser:h,refreshTokenAction:_,hasRole:S,hasAnyRole:C}});async function Tc(e,t,n){let r=n();try{return await e()}catch(n){if(!(n instanceof Error)||n.message!==`unauthorized`||!await t(r))throw n;return e()}}function Ec(e){let t=wc();return Dc(t.refreshTokenAction,t.getToken,e)}function Dc(e,t,n){let r=je(t,n);return xe(n=>Tc(()=>r(n),e,t))}function Oc(e,t=5e3){let n=L(!0),r=null,i=()=>{n.value=!0,e(),r=window.setInterval(e,t)},a=()=>{n.value=!1,r&&=(clearInterval(r),null)};return f(i),_(a),{isActive:n,start:i,stop:a}}var kc=ar(`devicePresence`,()=>{let e=qe({}),t;function n(){let n=Symbol();return t=n,e.value={},{set(r){t===n&&(e.value=r)},clear(){t===n&&(t=void 0,e.value={})}}}return{context:e,claim:n}}),Ac=`evening-detective-device-ID`,jc=/^[\da-f]{8}-[\da-f]{4}-4[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i;function Mc(){let e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function Nc(){let e=Mc();try{let t=localStorage.getItem(Ac);if(t&&jc.test(t))return t;localStorage.setItem(Ac,e)}catch{}return e}function Pc(){let e=Ec(),t=Ve(),n=kc(),r=Nc(),i=Mc(),a=!0,o=!1,s=!1,c=!1;async function l(){if(!(!a||s)){if(o){c=!0;return}o=!0,c=!1;try{(await(n.context.organizerGameID?e:t).DeviceHeartbeat({deviceID:r,connectionID:i,organizerGameID:n.context.organizerGameID,teamID:n.context.teamID,password:n.context.password,screenID:n.context.screenID,accessToken:n.context.accessToken})).enabled===!1&&(a=!1,d.stop())}catch{console.warn(`Не удалось обновить присутствие устройства; повтор по интервалу`),c=!1}finally{o=!1,c&&l()}}}function u(){document.visibilityState===`visible`&&l()}let d=Oc(()=>void l(),2e4);Se(()=>n.context,()=>void l()),f(()=>{document.addEventListener(`visibilitychange`,u),window.addEventListener(`online`,l)}),_(()=>{s=!0,document.removeEventListener(`visibilitychange`,u),window.removeEventListener(`online`,l)})}var Fc=n({__name:`App`,setup(e){return Pc(),(e,t)=>(g(),a(i(ka),{theme:i(Cc)},{default:ze(()=>[Ee(i(Lo),null,{default:ze(()=>[Ee(i(Me))]),_:1})]),_:1},8,[`theme`]))}}),Ic=`modulepreload`,Lc=function(e){return`/`+e},Rc={},$=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,new URL(`../../../src/node/plugins/importAnalysisBuild.ts`,import.meta.url)).href}r=o(t.map(t=>{if(t=Lc(t,n),t=s(t),t in Rc)return;Rc[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:Ic,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},zc=Re({history:fe(`/`),routes:[{path:`/playlists`,name:`playlists`,component:()=>$(()=>import(`./PlaylistsView-DqRIOgQC.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]))},{path:`/participation`,name:`participation`,component:()=>$(()=>import(`./ParticipationView-H_fOFAjM.js`),__vite__mapDeps([32,1,2,3,4,33,9,7,10,11,25,13,26,29,30,34]))},{path:`/tickets/:token`,name:`ticket`,component:()=>$(()=>import(`./TicketView-CyQly2Oq.js`),__vite__mapDeps([35,1,2,3,4,36,34,37,38,39]))},{path:`/`,name:`home`,component:()=>$(()=>import(`./HomeView-rBR7Fats.js`),__vite__mapDeps([40,1,2,3,4,29,7,30,41,42,37,38,43]))},{path:`/login`,name:`login`,component:()=>$(()=>import(`./LoginView-BRVy_owT.js`),__vite__mapDeps([44,1,15,9,7,3,10,11,12,13,21,16,2,4,45,17,23,24,33,25,26,29,30,46]))},{path:`/office`,name:`office`,component:()=>$(()=>import(`./OfficeView-DBTI8yMv.js`),__vite__mapDeps([47,1,7,3,48,9,10,11,12,13,2,4,18,33,24,16,6,29,30,49]))},{path:`/user-agreement`,name:`user-agreement`,component:()=>$(()=>import(`./UserAgreementView-Bg7Wfl-N.js`),__vite__mapDeps([50,1,29,7,3,30,51,6,28,17,10,41,42,52,53,54]))},{path:`/privacy-policy`,name:`privacy-policy`,component:()=>$(()=>import(`./PrivacyPolicyView-DuML8ehx.js`),__vite__mapDeps([55,1,29,7,3,30,51,6,28,17,10,41,42,52,53,54]))},{path:`/consent`,name:`consent`,component:()=>$(()=>import(`./ConsentView-DZwCglI2.js`),__vite__mapDeps([56,1,29,7,3,30,51,6,28,17,10,41,42,52,53,54]))},{path:`/games`,name:`games`,component:()=>$(()=>import(`./GamesView-DXpswWeB.js`),__vite__mapDeps([57,1,7,3,48,9,10,11,12,13,2,4,18,33,58,15,21,16,24,20,17,14,19,22,23,6,25,26,59,29,30,60,34,61]))},{path:`/screen`,name:`screen`,component:()=>$(()=>import(`./ScreenView-CBMpnxAR.js`),__vite__mapDeps([62,1,7,3,2,4,20,15,9,10,11,12,13,21,16,17,14,18,19,33,36,29,30,63,64,65,34,66,67]))},{path:`/games/:id/results`,name:`game-results`,component:()=>$(()=>import(`./GameResultsView-wOwrSkiZ.js`),__vite__mapDeps([68,1,7,3,2,4,59,13,26,29,30,69]))},{path:`/games/:id`,name:`game`,component:()=>$(()=>import(`./GameView-CFltwlqp.js`),__vite__mapDeps([70,1,15,9,7,3,10,11,12,13,21,48,2,4,18,33,16,45,17,23,20,14,19,22,24,71,6,25,26,59,72,8,27,36,28,73,29,30,60,63,64,65,34,66,74]))},{path:`/team-story/:id`,name:`team-story`,component:()=>$(()=>import(`./TeamStoryView-CjIQg04l.js`),__vite__mapDeps([75,1,7,3,2,4,76,12,9,10,11,13,48,18,33,16,22,15,14,17,19,23,24,71,25,26,73,63,37,38,77,6,59,72,36,52,53,66,78]))},{path:`/scenarios`,name:`scenarios`,component:()=>$(()=>import(`./ScenariosView-BcvCACNh.js`),__vite__mapDeps([79,1,7,3,48,9,10,11,12,13,2,4,18,33,22,15,16,14,17,19,23,24,59,26,73,29,30,60,80]))},{path:`/catalog`,name:`catalog`,component:()=>$(()=>import(`./CatalogView-DT_TOgRX.js`),__vite__mapDeps([81,1,7,3,72,16,4,29,30,41,42,82]))},{path:`/scenarios/:id/editor`,name:`scenario-editor`,component:()=>$(()=>import(`./ScenariosEditorView-B0aWQk_b.js`),__vite__mapDeps([83,1,7,3,48,9,10,11,12,13,2,4,18,33,20,15,21,16,17,14,19,22,23,24,76,71,25,26,73,63,37,38,77,6,59,29,30,60,84]))},{path:`/scenarios/:id`,name:`scenario`,component:()=>$(()=>import(`./ScenarioView-B_-FLFQB.js`),__vite__mapDeps([85,1,7,3,72,16,4,29,30,41,42,86]))},{path:`/tasks`,name:`tasks`,component:()=>$(()=>import(`./TasksView-D7w3BSxr.js`),__vite__mapDeps([87,1,21,15,9,7,3,10,11,12,13,48,2,4,18,33,58,16,24,88,19,20,17,14,5,6,59,26,28,29,30,89]))},{path:`/users`,name:`users`,component:()=>$(()=>import(`./UsersView-Dy8IBaU4.js`),__vite__mapDeps([90,1,7,3,48,9,10,11,12,13,2,4,18,33,88,19,24,16,25,26,59,29,30,91]))},{path:`/reviews`,name:`reviews`,component:()=>$(()=>import(`./ReviewsView-DgB2dabn.js`),__vite__mapDeps([92,1,7,3,2,4,33,9,10,11,59,13,26,72,16,29,30,93]))}]}),Bc=Tn(Fc);Bc.use(Kn()),wc().initFromStorage(),Bc.use(zc),Bc.mount(`#app`);export{yr as $,da as A,gi as B,fo as C,ka as D,Pa as E,Mi as F,ni as G,ci as H,ji as I,Qr as J,ei as K,Ei as L,Gi as M,Ui as N,Ca as O,Ii as P,qr as Q,wi as R,yo as S,qa as T,ai as U,li as V,ii as W,Yr as X,Zr as Y,Jr as Z,Zo as _,Tc as a,cr as at,To as b,cc as c,or as ct,Vs as d,gn as dt,mr as et,Ps as f,Tt as ft,ns as g,Ss as h,Ec as i,lr as it,Z as j,_a as k,Ys as l,lt,Ts as m,yn as mt,kc as n,dr as nt,wc as o,sr as ot,js as p,xn as pt,$r as q,Oc as r,ur as rt,dc as s,ar as st,zc as t,pr as tt,Gs as u,an as ut,qo as v,so as w,So as x,Go as y,bi as z}; \ No newline at end of file + `)])]),No={info:()=>S(Qr,null),success:()=>S($r,null),warning:()=>S(ei,null),error:()=>S(Zr,null),default:()=>null},Po=n({name:`Message`,props:Object.assign(Object.assign({},jo),{render:Function}),setup(e){let{inlineThemeDisabled:t,mergedRtlRef:n}=ie(e),{props:r,mergedClsPrefixRef:i}=u(Eo),a=se(`Message`,n,i),o=Oe(`Message`,`-message`,Mo,ko,r,i),s=R(()=>{let{type:t}=e,{common:{cubicBezierEaseInOut:n},self:{padding:r,margin:i,maxWidth:a,iconMargin:s,closeMargin:c,closeSize:l,iconSize:u,fontSize:d,lineHeight:f,borderRadius:p,border:m,iconColorInfo:h,iconColorSuccess:g,iconColorWarning:_,iconColorError:v,iconColorLoading:y,closeIconSize:b,closeBorderRadius:x,[j(`textColor`,t)]:S,[j(`boxShadow`,t)]:C,[j(`color`,t)]:w,[j(`closeColorHover`,t)]:T,[j(`closeColorPressed`,t)]:E,[j(`closeIconColor`,t)]:D,[j(`closeIconColorPressed`,t)]:O,[j(`closeIconColorHover`,t)]:k}}=o.value;return{"--n-bezier":n,"--n-margin":i,"--n-padding":r,"--n-max-width":a,"--n-font-size":d,"--n-icon-margin":s,"--n-icon-size":u,"--n-close-icon-size":b,"--n-close-border-radius":x,"--n-close-size":l,"--n-close-margin":c,"--n-text-color":S,"--n-color":w,"--n-box-shadow":C,"--n-icon-color-info":h,"--n-icon-color-success":g,"--n-icon-color-warning":_,"--n-icon-color-error":v,"--n-icon-color-loading":y,"--n-close-color-hover":T,"--n-close-color-pressed":E,"--n-close-icon-color":D,"--n-close-icon-color-pressed":O,"--n-close-icon-color-hover":k,"--n-line-height":f,"--n-border-radius":p,"--n-border":m}}),c=t?ne(`message`,R(()=>e.type[0]),s,{}):void 0;return{mergedClsPrefix:i,rtlEnabled:a,messageProviderProps:r,handleClose(){var t;(t=e.onClose)==null||t.call(e)},cssVars:t?void 0:s,themeClass:c?.themeClass,onRender:c?.onRender,placement:r.placement}},render(){let{render:e,type:t,closable:n,content:r,mergedClsPrefix:i,cssVars:a,themeClass:o,onRender:s,icon:c,handleClose:l,showIcon:u}=this;s?.();let d;return S(`div`,{class:[`${i}-message-wrapper`,o],onMouseenter:this.onMouseenter,onMouseleave:this.onMouseleave,style:[{alignItems:this.placement.startsWith(`top`)?`flex-start`:`flex-end`},a]},e?e(this.$props):S(`div`,{class:[`${i}-message ${i}-message--${t}-type`,this.rtlEnabled&&`${i}-message--rtl`]},(d=Fo(c,t,i,this.spinProps))&&u?S(`div`,{class:`${i}-message__icon ${i}-message__icon--${t}-type`},S(Jr,null,{default:()=>d})):null,S(`div`,{class:`${i}-message__content`},dr(r)),n?S(ii,{clsPrefix:i,class:`${i}-message__close`,onClick:l,absolute:!0}):null))}});function Fo(e,t,n,r){if(typeof e==`function`)return e();{let e=t===`loading`?S(li,Object.assign({clsPrefix:n,strokeWidth:24,scale:.85},r)):No[t]();return e?S(qr,{clsPrefix:n,key:t},{default:()=>e}):null}}var Io=n({name:`MessageEnvironment`,props:Object.assign(Object.assign({},jo),{duration:{type:Number,default:3e3},onAfterLeave:Function,onLeave:Function,internalKey:{type:String,required:!0},onInternalAfterLeave:Function,onHide:Function,onAfterHide:Function}),setup(e){let t=null,n=L(!0);f(()=>{r()});function r(){let{duration:n}=e;n&&(t=window.setTimeout(o,n))}function i(e){e.currentTarget===e.target&&t!==null&&(window.clearTimeout(t),t=null)}function a(e){e.currentTarget===e.target&&r()}function o(){let{onHide:r}=e;n.value=!1,t&&=(window.clearTimeout(t),null),r&&r()}function s(){let{onClose:t}=e;t&&t(),o()}function c(){let{onAfterLeave:t,onInternalAfterLeave:n,onAfterHide:r,internalKey:i}=e;t&&t(),n&&n(i),r&&r()}function l(){o()}return{show:n,hide:o,handleClose:s,handleAfterLeave:c,handleMouseleave:a,handleMouseenter:i,deactivate:l}},render(){return S(ai,{appear:!0,onAfterLeave:this.handleAfterLeave,onLeave:this.onLeave},{default:()=>[this.show?S(Po,{content:this.content,type:this.type,icon:this.icon,showIcon:this.showIcon,closable:this.closable,spinProps:this.spinProps,onClose:this.handleClose,onMouseenter:this.keepAliveOnHover?this.handleMouseenter:void 0,onMouseleave:this.keepAliveOnHover?this.handleMouseleave:void 0}):null]})}}),Lo=n({name:`MessageProvider`,props:Object.assign(Object.assign({},Oe.props),{to:[String,Object],duration:{type:Number,default:3e3},keepAliveOnHover:Boolean,max:Number,placement:{type:String,default:`top`},closable:Boolean,containerClass:String,containerStyle:[String,Object]}),setup(e){let{mergedClsPrefixRef:t}=ie(e),n=L([]),r=L({}),i={create(e,t){return a(e,Object.assign({type:`default`},t))},info(e,t){return a(e,Object.assign(Object.assign({},t),{type:`info`}))},success(e,t){return a(e,Object.assign(Object.assign({},t),{type:`success`}))},warning(e,t){return a(e,Object.assign(Object.assign({},t),{type:`warning`}))},error(e,t){return a(e,Object.assign(Object.assign({},t),{type:`error`}))},loading(e,t){return a(e,Object.assign(Object.assign({},t),{type:`loading`}))},destroyAll:s};oe(Eo,{props:e,mergedClsPrefixRef:t}),oe(To,i);function a(t,i){let a=sr(),o=_e(Object.assign(Object.assign({},i),{content:t,key:a,destroy:()=>{var e;(e=r.value[a])==null||e.hide()}})),{max:s}=e;return s&&n.value.length>=s&&n.value.shift(),n.value.push(o),o}function o(e){n.value.splice(n.value.findIndex(t=>t.key===e),1),delete r.value[e]}function s(){Object.values(r.value).forEach(e=>{e.hide()})}return Object.assign({mergedClsPrefix:t,messageRefs:r,messageList:n,handleAfterLeave:o},i)},render(){var e;return S(ve,null,(e=this.$slots).default?.call(e),this.messageList.length?S(le,{to:this.to??`body`},S(`div`,{class:[`${this.mergedClsPrefix}-message-container`,`${this.mergedClsPrefix}-message-container--${this.placement}`,this.containerClass],key:`message-container`,style:this.containerStyle},this.messageList.map(e=>S(Io,Object.assign({ref:t=>{t&&(this.messageRefs[e.key]=t)},internalKey:e.key,onInternalAfterLeave:this.handleAfterLeave},ur(e,[`destroy`],void 0),{duration:e.duration===void 0?this.duration:e.duration,keepAliveOnHover:e.keepAliveOnHover===void 0?this.keepAliveOnHover:e.keepAliveOnHover,closable:e.closable===void 0?this.closable:e.closable}))))):null)}}),Ro={closeMargin:`16px 12px`,closeSize:`20px`,closeIconSize:`16px`,width:`365px`,padding:`16px`,titleFontSize:`16px`,metaFontSize:`12px`,descriptionFontSize:`12px`};function zo(e){let{textColor2:t,successColor:n,infoColor:r,warningColor:i,errorColor:a,popoverColor:o,closeIconColor:s,closeIconColorHover:c,closeIconColorPressed:l,closeColorHover:u,closeColorPressed:d,textColor1:f,textColor3:p,borderRadius:m,fontWeightStrong:h,boxShadow2:g,lineHeight:_,fontSize:v}=e;return Object.assign(Object.assign({},Ro),{borderRadius:m,lineHeight:_,fontSize:v,headerFontWeight:h,iconColor:t,iconColorSuccess:n,iconColorInfo:r,iconColorWarning:i,iconColorError:a,color:o,textColor:t,closeIconColor:s,closeIconColorHover:c,closeIconColorPressed:l,closeBorderRadius:m,closeColorHover:u,closeColorPressed:d,headerTextColor:f,descriptionTextColor:p,actionTextColor:t,boxShadow:g})}I({name:`Notification`,common:N,peers:{Scrollbar:z},self:zo});var Bo={name:`Notification`,common:q,peers:{Scrollbar:J},self:zo};function Vo(e){let{textColor1:t,dividerColor:n,fontWeightStrong:r}=e;return{textColor:t,color:n,fontWeight:r}}var Ho={name:`Divider`,common:q,self:Vo};function Uo(e){let{modalColor:t,textColor1:n,textColor2:r,boxShadow3:i,lineHeight:a,fontWeightStrong:o,dividerColor:s,closeColorHover:c,closeColorPressed:l,closeIconColor:u,closeIconColorHover:d,closeIconColorPressed:f,borderRadius:p,primaryColorHover:m}=e;return{bodyPadding:`16px 24px`,borderRadius:p,headerPadding:`16px 24px`,footerPadding:`16px 24px`,color:t,textColor:r,titleTextColor:n,titleFontSize:`18px`,titleFontWeight:o,boxShadow:i,lineHeight:a,headerBorderBottom:`1px solid ${s}`,footerBorderTop:`1px solid ${s}`,closeIconColor:u,closeIconColorHover:d,closeIconColorPressed:f,closeSize:`22px`,closeIconSize:`18px`,closeColorHover:c,closeColorPressed:l,closeBorderRadius:p,resizableTriggerColorHover:m}}I({name:`Drawer`,common:N,peers:{Scrollbar:z},self:Uo});var Wo={name:`Drawer`,common:q,peers:{Scrollbar:J},self:Uo},Go={actionMargin:`0 0 0 20px`,actionMarginRtl:`0 20px 0 0`},Ko={name:`DynamicInput`,common:q,peers:{Input:X,Button:Q},self(){return Go}},qo={gapSmall:`4px 8px`,gapMedium:`8px 12px`,gapLarge:`12px 16px`},Jo={name:`Space`,self(){return qo}},Yo={name:`DynamicTags`,common:q,peers:{Input:X,Button:Q,Tag:Di,Space:Jo},self(){return{inputWidth:`64px`}}},Xo={name:`Element`,common:q},Zo={gapSmall:`4px 8px`,gapMedium:`8px 12px`,gapLarge:`12px 16px`},Qo={name:`Flex`,self(){return Zo}},$o={name:`ButtonGroup`,common:q},es={feedbackPadding:`4px 0 0 2px`,feedbackHeightSmall:`24px`,feedbackHeightMedium:`24px`,feedbackHeightLarge:`26px`,feedbackFontSizeSmall:`13px`,feedbackFontSizeMedium:`14px`,feedbackFontSizeLarge:`14px`,labelFontSizeLeftSmall:`14px`,labelFontSizeLeftMedium:`14px`,labelFontSizeLeftLarge:`15px`,labelFontSizeTopSmall:`13px`,labelFontSizeTopMedium:`14px`,labelFontSizeTopLarge:`14px`,labelHeightSmall:`24px`,labelHeightMedium:`26px`,labelHeightLarge:`28px`,labelPaddingVertical:`0 0 6px 2px`,labelPaddingHorizontal:`0 12px 0 0`,labelTextAlignVertical:`left`,labelTextAlignHorizontal:`right`,labelFontWeight:`400`};function ts(e){let{heightSmall:t,heightMedium:n,heightLarge:r,textColor1:i,errorColor:a,warningColor:o,lineHeight:s,textColor3:c}=e;return Object.assign(Object.assign({},es),{blankHeightSmall:t,blankHeightMedium:n,blankHeightLarge:r,lineHeight:s,labelTextColor:i,asteriskColor:a,feedbackTextColorError:a,feedbackTextColorWarning:o,feedbackTextColor:c})}var ns={name:`Form`,common:N,self:ts},rs={name:`Form`,common:q,self:ts},is={name:`GradientText`,common:q,self(e){let{primaryColor:t,successColor:n,warningColor:r,errorColor:i,infoColor:a,primaryColorSuppl:o,successColorSuppl:s,warningColorSuppl:c,errorColorSuppl:l,infoColorSuppl:u,fontWeightStrong:d}=e;return{fontWeight:d,rotate:`252deg`,colorStartPrimary:t,colorEndPrimary:o,colorStartInfo:a,colorEndInfo:u,colorStartWarning:r,colorEndWarning:c,colorStartError:i,colorEndError:l,colorStartSuccess:n,colorEndSuccess:s}}},as={name:`InputNumber`,common:q,peers:{Button:Q,Input:X},self(e){let{textColorDisabled:t}=e;return{iconColorDisabled:t}}};function os(){return{inputWidthSmall:`24px`,inputWidthMedium:`30px`,inputWidthLarge:`36px`,gapSmall:`8px`,gapMedium:`8px`,gapLarge:`8px`}}I({name:`InputOtp`,common:N,peers:{Input:Ui},self:os});var ss={name:`InputOtp`,common:q,peers:{Input:X},self:os},cs={name:`Layout`,common:q,peers:{Scrollbar:J},self(e){let{textColor2:t,bodyColor:n,popoverColor:r,cardColor:i,dividerColor:a,scrollbarColor:o,scrollbarColorHover:s}=e;return{textColor:t,textColorInverted:t,color:n,colorEmbedded:n,headerColor:i,headerColorInverted:i,footerColor:i,footerColorInverted:i,headerBorderColor:a,headerBorderColorInverted:a,footerBorderColor:a,footerBorderColorInverted:a,siderBorderColor:a,siderBorderColorInverted:a,siderColor:i,siderColorInverted:i,siderToggleButtonBorder:`1px solid transparent`,siderToggleButtonColor:r,siderToggleButtonIconColor:t,siderToggleButtonIconColorInverted:t,siderToggleBarColor:D(n,o),siderToggleBarColorHover:D(n,s),__invertScrollbar:`false`}}},ls={name:`Row`,common:q};function us(e){let{textColor2:t,cardColor:n,modalColor:r,popoverColor:i,dividerColor:a,borderRadius:o,fontSize:s,hoverColor:c}=e;return{textColor:t,color:n,colorHover:c,colorModal:r,colorHoverModal:D(r,c),colorPopover:i,colorHoverPopover:D(i,c),borderColor:a,borderColorModal:D(r,a),borderColorPopover:D(i,a),borderRadius:o,fontSize:s}}var ds={name:`List`,common:q,self:us},fs={name:`Log`,common:q,peers:{Scrollbar:J,Code:xa},self(e){let{textColor2:t,inputColor:n,fontSize:r,primaryColor:i}=e;return{loaderFontSize:r,loaderTextColor:t,loaderColor:n,loaderBorder:`1px solid #0000`,loadingColor:i}}},ps={name:`Mention`,common:q,peers:{InternalSelectMenu:xi,Input:X},self(e){let{boxShadow2:t}=e;return{menuBoxShadow:t}}};function ms(e,t,n,r){return{itemColorHoverInverted:`#0000`,itemColorActiveInverted:t,itemColorActiveHoverInverted:t,itemColorActiveCollapsedInverted:t,itemTextColorInverted:e,itemTextColorHoverInverted:n,itemTextColorChildActiveInverted:n,itemTextColorChildActiveHoverInverted:n,itemTextColorActiveInverted:n,itemTextColorActiveHoverInverted:n,itemTextColorHorizontalInverted:e,itemTextColorHoverHorizontalInverted:n,itemTextColorChildActiveHorizontalInverted:n,itemTextColorChildActiveHoverHorizontalInverted:n,itemTextColorActiveHorizontalInverted:n,itemTextColorActiveHoverHorizontalInverted:n,itemIconColorInverted:e,itemIconColorHoverInverted:n,itemIconColorActiveInverted:n,itemIconColorActiveHoverInverted:n,itemIconColorChildActiveInverted:n,itemIconColorChildActiveHoverInverted:n,itemIconColorCollapsedInverted:e,itemIconColorHorizontalInverted:e,itemIconColorHoverHorizontalInverted:n,itemIconColorActiveHorizontalInverted:n,itemIconColorActiveHoverHorizontalInverted:n,itemIconColorChildActiveHorizontalInverted:n,itemIconColorChildActiveHoverHorizontalInverted:n,arrowColorInverted:e,arrowColorHoverInverted:n,arrowColorActiveInverted:n,arrowColorActiveHoverInverted:n,arrowColorChildActiveInverted:n,arrowColorChildActiveHoverInverted:n,groupTextColorInverted:r}}function hs(e){let{borderRadius:t,textColor3:n,primaryColor:r,textColor2:i,textColor1:a,fontSize:o,dividerColor:s,hoverColor:c,primaryColorHover:l}=e;return Object.assign({borderRadius:t,color:`#0000`,groupTextColor:n,itemColorHover:c,itemColorActive:A(r,{alpha:.1}),itemColorActiveHover:A(r,{alpha:.1}),itemColorActiveCollapsed:A(r,{alpha:.1}),itemTextColor:i,itemTextColorHover:i,itemTextColorActive:r,itemTextColorActiveHover:r,itemTextColorChildActive:r,itemTextColorChildActiveHover:r,itemTextColorHorizontal:i,itemTextColorHoverHorizontal:l,itemTextColorActiveHorizontal:r,itemTextColorActiveHoverHorizontal:r,itemTextColorChildActiveHorizontal:r,itemTextColorChildActiveHoverHorizontal:r,itemIconColor:a,itemIconColorHover:a,itemIconColorActive:r,itemIconColorActiveHover:r,itemIconColorChildActive:r,itemIconColorChildActiveHover:r,itemIconColorCollapsed:a,itemIconColorHorizontal:a,itemIconColorHoverHorizontal:l,itemIconColorActiveHorizontal:r,itemIconColorActiveHoverHorizontal:r,itemIconColorChildActiveHorizontal:r,itemIconColorChildActiveHoverHorizontal:r,itemHeight:`42px`,arrowColor:i,arrowColorHover:i,arrowColorActive:r,arrowColorActiveHover:r,arrowColorChildActive:r,arrowColorChildActiveHover:r,colorInverted:`#0000`,borderColorHorizontal:`#0000`,fontSize:o,dividerColor:s},ms(`#BBB`,r,`#FFF`,`#AAA`))}I({name:`Menu`,common:N,peers:{Tooltip:qa,Dropdown:Ha},self:hs});var gs={name:`Menu`,common:q,peers:{Tooltip:Ga,Dropdown:Ua},self(e){let{primaryColor:t,primaryColorSuppl:n}=e,r=hs(e);return r.itemColorActive=A(t,{alpha:.15}),r.itemColorActiveHover=A(t,{alpha:.15}),r.itemColorActiveCollapsed=A(t,{alpha:.15}),r.itemColorActiveInverted=n,r.itemColorActiveHoverInverted=n,r.itemColorActiveCollapsedInverted=n,r}},_s={titleFontSize:`18px`,backSize:`22px`};function vs(e){let{textColor1:t,textColor2:n,textColor3:r,fontSize:i,fontWeightStrong:a,primaryColorHover:o,primaryColorPressed:s}=e;return Object.assign(Object.assign({},_s),{titleFontWeight:a,fontSize:i,titleTextColor:t,backColor:n,backColorHover:o,backColorPressed:s,subtitleTextColor:r})}I({name:`PageHeader`,common:N,self:vs});var ys={name:`PageHeader`,common:q,self:vs},bs={iconSize:`22px`};function xs(e){let{fontSize:t,warningColor:n}=e;return Object.assign(Object.assign({},bs),{fontSize:t,iconColor:n})}var Ss=I({name:`Popconfirm`,common:N,peers:{Button:Z,Popover:wi},self:xs}),Cs={name:`Popconfirm`,common:q,peers:{Button:Q,Popover:Ti},self:xs};function ws(e){let{infoColor:t,successColor:n,warningColor:r,errorColor:i,textColor2:a,progressRailColor:o,fontSize:s,fontWeight:c}=e;return{fontSize:s,fontSizeCircle:`28px`,fontWeightCircle:c,railColor:o,railHeight:`8px`,iconSizeCircle:`36px`,iconSizeLine:`18px`,iconColor:t,iconColorInfo:t,iconColorSuccess:n,iconColorWarning:r,iconColorError:i,textColorCircle:a,textColorLineInner:`rgb(255, 255, 255)`,textColorLineOuter:a,fillColor:t,fillColorInfo:t,fillColorSuccess:n,fillColorWarning:r,fillColorError:i,lineBgProcessing:`linear-gradient(90deg, rgba(255, 255, 255, .3) 0%, rgba(255, 255, 255, .5) 100%)`}}var Ts={name:`Progress`,common:N,self:ws},Es={name:`Progress`,common:q,self(e){let t=ws(e);return t.textColorLineInner=`rgb(0, 0, 0)`,t.lineBgProcessing=`linear-gradient(90deg, rgba(255, 255, 255, .3) 0%, rgba(255, 255, 255, .5) 100%)`,t}},Ds={name:`Rate`,common:q,self(e){let{railColor:t}=e;return{itemColor:t,itemColorActive:`#CCAA33`,itemSize:`20px`,sizeSmall:`16px`,sizeMedium:`20px`,sizeLarge:`24px`}}},Os={titleFontSizeSmall:`26px`,titleFontSizeMedium:`32px`,titleFontSizeLarge:`40px`,titleFontSizeHuge:`48px`,fontSizeSmall:`14px`,fontSizeMedium:`14px`,fontSizeLarge:`15px`,fontSizeHuge:`16px`,iconSizeSmall:`64px`,iconSizeMedium:`80px`,iconSizeLarge:`100px`,iconSizeHuge:`125px`,iconColor418:void 0,iconColor404:void 0,iconColor403:void 0,iconColor500:void 0};function ks(e){let{textColor2:t,textColor1:n,errorColor:r,successColor:i,infoColor:a,warningColor:o,lineHeight:s,fontWeightStrong:c}=e;return Object.assign(Object.assign({},Os),{lineHeight:s,titleFontWeight:c,titleTextColor:n,textColor:t,iconColorError:r,iconColorSuccess:i,iconColorInfo:a,iconColorWarning:o})}var As={name:`Result`,common:q,self:ks},js={railHeight:`4px`,railWidthVertical:`4px`,handleSize:`18px`,dotHeight:`8px`,dotWidth:`8px`,dotBorderRadius:`4px`},Ms={name:`Slider`,common:q,self(e){let{railColor:t,modalColor:n,primaryColorSuppl:r,popoverColor:i,textColor2:a,cardColor:o,borderRadius:s,fontSize:c,opacityDisabled:l}=e;return Object.assign(Object.assign({},js),{fontSize:c,markFontSize:c,railColor:t,railColorHover:t,fillColor:r,fillColorHover:r,opacityDisabled:l,handleColor:`#FFF`,dotColor:o,dotColorModal:n,dotColorPopover:i,handleBoxShadow:`0px 2px 4px 0 rgba(0, 0, 0, 0.4)`,handleBoxShadowHover:`0px 2px 4px 0 rgba(0, 0, 0, 0.4)`,handleBoxShadowActive:`0px 2px 4px 0 rgba(0, 0, 0, 0.4)`,handleBoxShadowFocus:`0px 2px 4px 0 rgba(0, 0, 0, 0.4)`,indicatorColor:i,indicatorBoxShadow:`0 2px 8px 0 rgba(0, 0, 0, 0.12)`,indicatorTextColor:a,indicatorBorderRadius:s,dotBorder:`2px solid ${t}`,dotBorderActive:`2px solid ${r}`,dotBoxShadow:``})}};function Ns(e){let{opacityDisabled:t,heightTiny:n,heightSmall:r,heightMedium:i,heightLarge:a,heightHuge:o,primaryColor:s,fontSize:c}=e;return{fontSize:c,textColor:s,sizeTiny:n,sizeSmall:r,sizeMedium:i,sizeLarge:a,sizeHuge:o,color:s,opacitySpinning:t}}var Ps={name:`Spin`,common:N,self:Ns},Fs={name:`Spin`,common:q,self:Ns};function Is(e){let{textColor2:t,textColor3:n,fontSize:r,fontWeight:i}=e;return{labelFontSize:r,labelFontWeight:i,valueFontWeight:i,valueFontSize:`24px`,labelTextColor:n,valuePrefixTextColor:t,valueSuffixTextColor:t,valueTextColor:t}}var Ls={name:`Statistic`,common:q,self:Is},Rs={stepHeaderFontSizeSmall:`14px`,stepHeaderFontSizeMedium:`16px`,indicatorIndexFontSizeSmall:`14px`,indicatorIndexFontSizeMedium:`16px`,indicatorSizeSmall:`22px`,indicatorSizeMedium:`28px`,indicatorIconSizeSmall:`14px`,indicatorIconSizeMedium:`18px`};function zs(e){let{fontWeightStrong:t,baseColor:n,textColorDisabled:r,primaryColor:i,errorColor:a,textColor1:o,textColor2:s}=e;return Object.assign(Object.assign({},Rs),{stepHeaderFontWeight:t,indicatorTextColorProcess:n,indicatorTextColorWait:r,indicatorTextColorFinish:i,indicatorTextColorError:a,indicatorBorderColorProcess:i,indicatorBorderColorWait:r,indicatorBorderColorFinish:i,indicatorBorderColorError:a,indicatorColorProcess:i,indicatorColorWait:`#0000`,indicatorColorFinish:`#0000`,indicatorColorError:`#0000`,splitorColorProcess:r,splitorColorWait:r,splitorColorFinish:i,splitorColorError:r,headerTextColorProcess:o,headerTextColorWait:r,headerTextColorFinish:r,headerTextColorError:a,descriptionTextColorProcess:s,descriptionTextColorWait:r,descriptionTextColorFinish:r,descriptionTextColorError:a})}var Bs={name:`Steps`,common:q,self:zs},Vs={buttonHeightSmall:`14px`,buttonHeightMedium:`18px`,buttonHeightLarge:`22px`,buttonWidthSmall:`14px`,buttonWidthMedium:`18px`,buttonWidthLarge:`22px`,buttonWidthPressedSmall:`20px`,buttonWidthPressedMedium:`24px`,buttonWidthPressedLarge:`28px`,railHeightSmall:`18px`,railHeightMedium:`22px`,railHeightLarge:`26px`,railWidthSmall:`32px`,railWidthMedium:`40px`,railWidthLarge:`48px`},Hs={name:`Switch`,common:q,self(e){let{primaryColorSuppl:t,opacityDisabled:n,borderRadius:r,primaryColor:i,textColor2:a,baseColor:o}=e;return Object.assign(Object.assign({},Vs),{iconColor:o,textColor:a,loadingColor:t,opacityDisabled:n,railColor:`rgba(255, 255, 255, .20)`,railColorActive:t,buttonBoxShadow:`0px 2px 4px 0 rgba(0, 0, 0, 0.4)`,buttonColor:`#FFF`,railBorderRadiusSmall:r,railBorderRadiusMedium:r,railBorderRadiusLarge:r,buttonBorderRadiusSmall:r,buttonBorderRadiusMedium:r,buttonBorderRadiusLarge:r,boxShadowFocus:`0 0 8px 0 ${A(i,{alpha:.3})}`})}},Us={thPaddingSmall:`6px`,thPaddingMedium:`12px`,thPaddingLarge:`12px`,tdPaddingSmall:`6px`,tdPaddingMedium:`12px`,tdPaddingLarge:`12px`};function Ws(e){let{dividerColor:t,cardColor:n,modalColor:r,popoverColor:i,tableHeaderColor:a,tableColorStriped:o,textColor1:s,textColor2:c,borderRadius:l,fontWeightStrong:u,lineHeight:d,fontSizeSmall:f,fontSizeMedium:p,fontSizeLarge:m}=e;return Object.assign(Object.assign({},Us),{fontSizeSmall:f,fontSizeMedium:p,fontSizeLarge:m,lineHeight:d,borderRadius:l,borderColor:D(n,t),borderColorModal:D(r,t),borderColorPopover:D(i,t),tdColor:n,tdColorModal:r,tdColorPopover:i,tdColorStriped:D(n,o),tdColorStripedModal:D(r,o),tdColorStripedPopover:D(i,o),thColor:D(n,a),thColorModal:D(r,a),thColorPopover:D(i,a),thTextColor:s,tdTextColor:c,thFontWeight:u})}var Gs={name:`Table`,common:N,self:Ws},Ks={name:`Table`,common:q,self:Ws},qs={tabFontSizeSmall:`14px`,tabFontSizeMedium:`14px`,tabFontSizeLarge:`16px`,tabGapSmallLine:`36px`,tabGapMediumLine:`36px`,tabGapLargeLine:`36px`,tabGapSmallLineVertical:`8px`,tabGapMediumLineVertical:`8px`,tabGapLargeLineVertical:`8px`,tabPaddingSmallLine:`6px 0`,tabPaddingMediumLine:`10px 0`,tabPaddingLargeLine:`14px 0`,tabPaddingVerticalSmallLine:`6px 12px`,tabPaddingVerticalMediumLine:`8px 16px`,tabPaddingVerticalLargeLine:`10px 20px`,tabGapSmallBar:`36px`,tabGapMediumBar:`36px`,tabGapLargeBar:`36px`,tabGapSmallBarVertical:`8px`,tabGapMediumBarVertical:`8px`,tabGapLargeBarVertical:`8px`,tabPaddingSmallBar:`4px 0`,tabPaddingMediumBar:`6px 0`,tabPaddingLargeBar:`10px 0`,tabPaddingVerticalSmallBar:`6px 12px`,tabPaddingVerticalMediumBar:`8px 16px`,tabPaddingVerticalLargeBar:`10px 20px`,tabGapSmallCard:`4px`,tabGapMediumCard:`4px`,tabGapLargeCard:`4px`,tabGapSmallCardVertical:`4px`,tabGapMediumCardVertical:`4px`,tabGapLargeCardVertical:`4px`,tabPaddingSmallCard:`8px 16px`,tabPaddingMediumCard:`10px 20px`,tabPaddingLargeCard:`12px 24px`,tabPaddingSmallSegment:`4px 0`,tabPaddingMediumSegment:`6px 0`,tabPaddingLargeSegment:`8px 0`,tabPaddingVerticalLargeSegment:`0 8px`,tabPaddingVerticalSmallCard:`8px 12px`,tabPaddingVerticalMediumCard:`10px 16px`,tabPaddingVerticalLargeCard:`12px 20px`,tabPaddingVerticalSmallSegment:`0 4px`,tabPaddingVerticalMediumSegment:`0 6px`,tabGapSmallSegment:`0`,tabGapMediumSegment:`0`,tabGapLargeSegment:`0`,tabGapSmallSegmentVertical:`0`,tabGapMediumSegmentVertical:`0`,tabGapLargeSegmentVertical:`0`,panePaddingSmall:`8px 0 0 0`,panePaddingMedium:`12px 0 0 0`,panePaddingLarge:`16px 0 0 0`,closeSize:`18px`,closeIconSize:`14px`};function Js(e){let{textColor2:t,primaryColor:n,textColorDisabled:r,closeIconColor:i,closeIconColorHover:a,closeIconColorPressed:o,closeColorHover:s,closeColorPressed:c,tabColor:l,baseColor:u,dividerColor:d,fontWeight:f,textColor1:p,borderRadius:m,fontSize:h,fontWeightStrong:g}=e;return Object.assign(Object.assign({},qs),{colorSegment:l,tabFontSizeCard:h,tabTextColorLine:p,tabTextColorActiveLine:n,tabTextColorHoverLine:n,tabTextColorDisabledLine:r,tabTextColorSegment:p,tabTextColorActiveSegment:t,tabTextColorHoverSegment:t,tabTextColorDisabledSegment:r,tabTextColorBar:p,tabTextColorActiveBar:n,tabTextColorHoverBar:n,tabTextColorDisabledBar:r,tabTextColorCard:p,tabTextColorHoverCard:p,tabTextColorActiveCard:n,tabTextColorDisabledCard:r,barColor:n,closeIconColor:i,closeIconColorHover:a,closeIconColorPressed:o,closeColorHover:s,closeColorPressed:c,closeBorderRadius:m,tabColor:l,tabColorSegment:u,tabBorderColor:d,tabFontWeightActive:f,tabFontWeight:f,tabBorderRadius:m,paneTextColor:t,fontWeightStrong:g})}var Ys={name:`Tabs`,common:N,self:Js},Xs={name:`Tabs`,common:q,self(e){let t=Js(e),{inputColor:n}=e;return t.colorSegment=n,t.tabColorSegment=n,t}};function Zs(e){let{textColor1:t,textColor2:n,fontWeightStrong:r,fontSize:i}=e;return{fontSize:i,titleTextColor:t,textColor:n,titleFontWeight:r}}var Qs={name:`Thing`,common:q,self:Zs},$s={titleMarginMedium:`0 0 6px 0`,titleMarginLarge:`-2px 0 6px 0`,titleFontSizeMedium:`14px`,titleFontSizeLarge:`16px`,iconSizeMedium:`14px`,iconSizeLarge:`14px`},ec={name:`Timeline`,common:q,self(e){let{textColor3:t,infoColorSuppl:n,errorColorSuppl:r,successColorSuppl:i,warningColorSuppl:a,textColor1:o,textColor2:s,railColor:c,fontWeightStrong:l,fontSize:u}=e;return Object.assign(Object.assign({},$s),{contentFontSize:u,titleFontWeight:l,circleBorder:`2px solid ${t}`,circleBorderInfo:`2px solid ${n}`,circleBorderError:`2px solid ${r}`,circleBorderSuccess:`2px solid ${i}`,circleBorderWarning:`2px solid ${a}`,iconColor:t,iconColorInfo:n,iconColorError:r,iconColorSuccess:i,iconColorWarning:a,titleTextColor:o,contentTextColor:s,metaTextColor:t,lineColor:c})}},tc={extraFontSizeSmall:`12px`,extraFontSizeMedium:`12px`,extraFontSizeLarge:`14px`,titleFontSizeSmall:`14px`,titleFontSizeMedium:`16px`,titleFontSizeLarge:`16px`,closeSize:`20px`,closeIconSize:`16px`,headerHeightSmall:`44px`,headerHeightMedium:`44px`,headerHeightLarge:`50px`},nc={name:`Transfer`,common:q,peers:{Checkbox:va,Scrollbar:J,Input:X,Empty:_i,Button:Q},self(e){let{fontWeight:t,fontSizeLarge:n,fontSizeMedium:r,fontSizeSmall:i,heightLarge:a,heightMedium:o,borderRadius:s,inputColor:c,tableHeaderColor:l,textColor1:u,textColorDisabled:d,textColor2:f,textColor3:p,hoverColor:m,closeColorHover:h,closeColorPressed:g,closeIconColor:_,closeIconColorHover:v,closeIconColorPressed:y,dividerColor:b}=e;return Object.assign(Object.assign({},tc),{itemHeightSmall:o,itemHeightMedium:o,itemHeightLarge:a,fontSizeSmall:i,fontSizeMedium:r,fontSizeLarge:n,borderRadius:s,dividerColor:b,borderColor:`#0000`,listColor:c,headerColor:l,titleTextColor:u,titleTextColorDisabled:d,extraTextColor:p,extraTextColorDisabled:d,itemTextColor:f,itemTextColorDisabled:d,itemColorPending:m,titleFontWeight:t,closeColorHover:h,closeColorPressed:g,closeIconColor:_,closeIconColorHover:v,closeIconColorPressed:y})}};function rc(e){let{borderRadiusSmall:t,dividerColor:n,hoverColor:r,pressedColor:i,primaryColor:a,textColor3:o,textColor2:s,textColorDisabled:c,fontSize:l}=e;return{fontSize:l,lineHeight:`1.5`,nodeHeight:`30px`,nodeWrapperPadding:`3px 0`,nodeBorderRadius:t,nodeColorHover:r,nodeColorPressed:i,nodeColorActive:A(a,{alpha:.1}),arrowColor:o,nodeTextColor:s,nodeTextColorDisabled:c,loadingColor:a,dropMarkColor:a,lineColor:n}}I({name:`Tree`,common:N,peers:{Checkbox:_a,Scrollbar:z,Empty:gi},self:rc});var ic={name:`Tree`,common:q,peers:{Checkbox:va,Scrollbar:J,Empty:_i},self(e){let{primaryColor:t}=e,n=rc(e);return n.nodeColorActive=A(t,{alpha:.15}),n}},ac={name:`TreeSelect`,common:q,peers:{Tree:ic,Empty:_i,InternalSelection:ki}},oc={headerFontSize1:`30px`,headerFontSize2:`22px`,headerFontSize3:`18px`,headerFontSize4:`16px`,headerFontSize5:`16px`,headerFontSize6:`16px`,headerMargin1:`28px 0 20px 0`,headerMargin2:`28px 0 20px 0`,headerMargin3:`28px 0 20px 0`,headerMargin4:`28px 0 18px 0`,headerMargin5:`28px 0 18px 0`,headerMargin6:`28px 0 18px 0`,headerPrefixWidth1:`16px`,headerPrefixWidth2:`16px`,headerPrefixWidth3:`12px`,headerPrefixWidth4:`12px`,headerPrefixWidth5:`12px`,headerPrefixWidth6:`12px`,headerBarWidth1:`4px`,headerBarWidth2:`4px`,headerBarWidth3:`3px`,headerBarWidth4:`3px`,headerBarWidth5:`3px`,headerBarWidth6:`3px`,pMargin:`16px 0 16px 0`,liMargin:`.25em 0 0 0`,olPadding:`0 0 0 2em`,ulPadding:`0 0 0 2em`};function sc(e){let{primaryColor:t,textColor2:n,borderColor:r,lineHeight:i,fontSize:a,borderRadiusSmall:o,dividerColor:s,fontWeightStrong:c,textColor1:l,textColor3:u,infoColor:d,warningColor:f,errorColor:p,successColor:m,codeColor:h}=e;return Object.assign(Object.assign({},oc),{aTextColor:t,blockquoteTextColor:n,blockquotePrefixColor:r,blockquoteLineHeight:i,blockquoteFontSize:a,codeBorderRadius:o,liTextColor:n,liLineHeight:i,liFontSize:a,hrColor:s,headerFontWeight:c,headerTextColor:l,pTextColor:n,pTextColor1Depth:l,pTextColor2Depth:n,pTextColor3Depth:u,pLineHeight:i,pFontSize:a,headerBarColor:t,headerBarColorPrimary:t,headerBarColorInfo:d,headerBarColorError:p,headerBarColorWarning:f,headerBarColorSuccess:m,textColor:n,textColor1Depth:l,textColor2Depth:n,textColor3Depth:u,textColorPrimary:t,textColorInfo:d,textColorSuccess:m,textColorWarning:f,textColorError:p,codeTextColor:n,codeColor:h,codeBorder:`1px solid #0000`})}var cc={name:`Typography`,common:N,self:sc},lc={name:`Typography`,common:q,self:sc};function uc(e){let{iconColor:t,primaryColor:n,errorColor:r,textColor2:i,successColor:a,opacityDisabled:o,actionColor:s,borderColor:c,hoverColor:l,lineHeight:u,borderRadius:d,fontSize:f}=e;return{fontSize:f,lineHeight:u,borderRadius:d,draggerColor:s,draggerBorder:`1px dashed ${c}`,draggerBorderHover:`1px dashed ${n}`,itemColorHover:l,itemColorHoverError:A(r,{alpha:.06}),itemTextColor:i,itemTextColorError:r,itemTextColorSuccess:a,itemIconColor:t,itemDisabledOpacity:o,itemBorderImageCardError:`1px solid ${r}`,itemBorderImageCard:`1px solid ${c}`}}var dc=I({name:`Upload`,common:N,peers:{Button:Z,Progress:Ts},self:uc}),fc={name:`Upload`,common:q,peers:{Button:Q,Progress:Es},self(e){let{errorColor:t}=e,n=uc(e);return n.itemColorHoverError=A(t,{alpha:.09}),n}},pc={name:`Watermark`,common:q,self(e){let{fontFamily:t}=e;return{fontFamily:t}}},mc={name:`FloatButton`,common:q,self(e){let{popoverColor:t,textColor2:n,buttonColor2Hover:r,buttonColor2Pressed:i,primaryColor:a,primaryColorHover:o,primaryColorPressed:s,baseColor:c,borderRadius:l}=e;return{color:t,textColor:n,boxShadow:`0 2px 8px 0px rgba(0, 0, 0, .12)`,boxShadowHover:`0 2px 12px 0px rgba(0, 0, 0, .18)`,boxShadowPressed:`0 2px 12px 0px rgba(0, 0, 0, .18)`,colorHover:r,colorPressed:i,colorPrimary:a,colorPrimaryHover:o,colorPrimaryPressed:s,textColorPrimary:c,borderRadiusSquare:l}}};function hc(e){let{borderRadius:t,fontSizeMini:n,fontSizeTiny:r,fontSizeSmall:i,fontWeight:a,textColor2:o,cardColor:s,buttonColor2Hover:c}=e;return{activeColors:[`#9be9a8`,`#40c463`,`#30a14e`,`#216e39`],borderRadius:t,borderColor:s,textColor:o,mininumColor:c,fontWeight:a,loadingColorStart:`rgba(0, 0, 0, 0.06)`,loadingColorEnd:`rgba(0, 0, 0, 0.12)`,rectSizeSmall:`10px`,rectSizeMedium:`11px`,rectSizeLarge:`12px`,borderRadiusSmall:`2px`,borderRadiusMedium:`2px`,borderRadiusLarge:`2px`,xGapSmall:`2px`,xGapMedium:`3px`,xGapLarge:`3px`,yGapSmall:`2px`,yGapMedium:`3px`,yGapLarge:`3px`,fontSizeSmall:r,fontSizeMedium:n,fontSizeLarge:i}}I({name:`Heatmap`,common:N,self:hc});var gc={name:`Heatmap`,common:q,self(e){let t=hc(e);return Object.assign(Object.assign({},t),{activeColors:[`#0d4429`,`#006d32`,`#26a641`,`#39d353`],mininumColor:`rgba(255, 255, 255, 0.1)`,loadingColorStart:`rgba(255, 255, 255, 0.12)`,loadingColorEnd:`rgba(255, 255, 255, 0.18)`})}};function _c(e){let{primaryColor:t,baseColor:n}=e;return{color:t,iconColor:n}}var vc={name:`IconWrapper`,common:q,self:_c},yc={name:`Image`,common:q,peers:{Tooltip:Ga},self:e=>{let{textColor2:t}=e;return{toolbarIconColor:t,toolbarColor:`rgba(0, 0, 0, .35)`,toolbarBoxShadow:`none`,toolbarBorderRadius:`24px`}}},bc={extraFontSize:`12px`,width:`440px`},xc={name:`Transfer`,common:q,peers:{Checkbox:va,Scrollbar:J,Input:X,Empty:_i,Button:Q},self(e){let{iconColorDisabled:t,iconColor:n,fontWeight:r,fontSizeLarge:i,fontSizeMedium:a,fontSizeSmall:o,heightLarge:s,heightMedium:c,heightSmall:l,borderRadius:u,inputColor:d,tableHeaderColor:f,textColor1:p,textColorDisabled:m,textColor2:h,hoverColor:g}=e;return Object.assign(Object.assign({},bc),{itemHeightSmall:l,itemHeightMedium:c,itemHeightLarge:s,fontSizeSmall:o,fontSizeMedium:a,fontSizeLarge:i,borderRadius:u,borderColor:`#0000`,listColor:d,headerColor:f,titleTextColor:p,titleTextColorDisabled:m,extraTextColor:h,filterDividerColor:`#0000`,itemTextColor:h,itemTextColorDisabled:m,itemColorPending:g,titleFontWeight:r,iconColor:n,iconColorDisabled:t})}};function Sc(){return{}}var Cc={name:`dark`,common:q,Alert:Ni,Anchor:zi,AutoComplete:Ki,Avatar:Yi,AvatarGroup:Zi,BackTop:$i,Badge:ea,Breadcrumb:ra,Button:Q,ButtonGroup:$o,Calendar:ca,Card:fa,Carousel:ma,Cascader:ba,Checkbox:va,Code:xa,Collapse:wa,CollapseTransition:Ea,ColorPicker:Oa,DataTable:no,DatePicker:po,Descriptions:go,Dialog:bo,Divider:Ho,Drawer:Wo,Dropdown:Ua,DynamicInput:Ko,DynamicTags:Yo,Element:Xo,Empty:_i,Ellipsis:Ja,Equation:{name:`Equation`,common:q,self:()=>({})},Flex:Qo,Form:rs,GradientText:is,Heatmap:gc,Icon:io,IconWrapper:vc,Image:yc,Input:X,InputNumber:as,InputOtp:ss,LegacyTransfer:xc,Layout:cs,List:ds,LoadingBar:wo,Log:fs,Menu:gs,Mention:ps,Message:Ao,Modal:Co,Notification:Bo,PageHeader:ys,Pagination:za,Popconfirm:Cs,Popover:Ti,Popselect:Aa,Progress:Es,QrCode:{name:`QrCode`,common:q,self:e=>({borderRadius:e.borderRadius})},Radio:Za,Rate:Ds,Result:As,Row:ls,Scrollbar:J,Select:Fa,Skeleton:{name:`Skeleton`,common:q,self(e){let{heightSmall:t,heightMedium:n,heightLarge:r,borderRadius:i}=e;return{color:`rgba(255, 255, 255, 0.12)`,colorEnd:`rgba(255, 255, 255, 0.18)`,borderRadius:i,heightSmall:t,heightMedium:n,heightLarge:r}}},Slider:Ms,Space:Jo,Spin:Fs,Statistic:Ls,Steps:Bs,Switch:Hs,Table:Ks,Tabs:Xs,Tag:Di,Thing:Qs,TimePicker:co,Timeline:ec,Tooltip:Ga,Transfer:nc,Tree:ic,TreeSelect:ac,Typography:lc,Upload:fc,Watermark:pc,Split:{name:`Split`,common:q},FloatButton:mc,FloatButtonGroup:{name:`FloatButtonGroup`,common:q,self(e){let{popoverColor:t,dividerColor:n,borderRadius:r}=e;return{color:t,buttonBorderColor:n,borderRadiusSquare:r,boxShadow:`0 2px 8px 0px rgba(0, 0, 0, .12)`}}},Marquee:{name:`Marquee`,common:q,self:Sc}},wc=ar(`auth`,()=>{let e=L(null),t=L(null),n=L(null),r=L(!1),i=L(null),a=null,o=0,s=!1,c=R(()=>!!e.value),l=R(()=>n.value?.username||``),u=R(()=>n.value?.roles||[]);function d(){e.value=localStorage.getItem(`accessToken`),t.value=localStorage.getItem(`refreshToken`)}function f(n,r){e.value=n,t.value=r||null,r?localStorage.setItem(`refreshToken`,r):localStorage.removeItem(`refreshToken`),localStorage.setItem(`accessToken`,n)}function p(){d(),s||=(window.addEventListener(`storage`,e=>{if(e.storageArea!==localStorage||e.key!==`accessToken`&&e.key!==null)return;let t=()=>{o++,d(),n.value=null,i.value=null,h()};a&&localStorage.getItem(`accessToken`)&&localStorage.getItem(`refreshToken`)?a.then(t,t):t()}),!0),h()}function m(){return e.value}async function h(){if(!e.value)return;let t=o;try{let r=await Ec().GetMe({});r.user&&t===o&&e.value&&(n.value=r.user,i.value=null)}catch(e){t===o&&(i.value=e instanceof Error?e.message:`Не удалось восстановить сессию`)}}async function g(e,t){r.value=!0,i.value=null;let a=++o;try{let r=await Ve().Login({email:e,password:t});return r.accessToken&&a===o?(n.value=null,f(r.accessToken,r.refreshToken),await h(),!0):!1}catch(e){return i.value=e instanceof Error?e.message:`Login failed`,!1}finally{r.value=!1}}function _(n=e.value){if(a)return a;let r=o,i=t.value,s=async()=>{if(r!==o)return!1;if(d(),!e.value||!t.value)return await x(),!1;if(e.value!==n||t.value!==i)return!0;try{let e=await Ve().Refresh({refreshToken:i||void 0});if(r!==o||localStorage.getItem(`refreshToken`)!==i)return!1;if(!e.accessToken||!e.refreshToken)throw Error(`Сервер не вернул токены сессии`);return f(e.accessToken,e.refreshToken),!0}catch(e){if(r!==o||localStorage.getItem(`refreshToken`)!==i)return!1;if(e instanceof Error&&e.message===`unauthorized`)return await x(),!1;throw e}};return a=(navigator.locks?navigator.locks.request(`evening-detective-auth-refresh`,s):s()).finally(()=>{a=null}),a}async function v(e,t,n,a){r.value=!0,i.value=null;try{return await Ve(m).Signup({username:e,email:t,acceptTerms:n,acceptPrivacy:a}),!0}catch(e){return i.value=e instanceof Error?e.message:`Signup failed`,!1}finally{r.value=!1}}async function y(e){r.value=!0,i.value=null;try{return await Ec(()=>({"X-Password":e})).DeleteAccount({}),await x(),!0}catch(e){return i.value=e instanceof Error?e.message:`Account deletion failed`,!1}finally{r.value=!1}}async function b(e){r.value=!0,i.value=null;try{return await Ve(m).RefreshPassword({email:e}),!0}catch(e){return i.value=e instanceof Error?e.message:`Password reset failed`,!1}finally{r.value=!1}}async function x(){o++,e.value=null,t.value=null,n.value=null,i.value=null,localStorage.removeItem(`refreshToken`),localStorage.removeItem(`accessToken`)}function S(e){return u.value.includes(e)}function C(e){return e.some(e=>u.value.includes(e))}return{accessToken:e,refreshToken:t,user:n,isLoading:r,error:i,isAuthenticated:c,username:l,userRoles:u,initFromStorage:p,getToken:m,login:g,signup:v,deleteAccount:y,refreshPassword:b,logout:x,fetchUser:h,refreshTokenAction:_,hasRole:S,hasAnyRole:C}});async function Tc(e,t,n){let r=n();try{return await e()}catch(n){if(!(n instanceof Error)||n.message!==`unauthorized`||!await t(r))throw n;return e()}}function Ec(e){let t=wc();return Dc(t.refreshTokenAction,t.getToken,e)}function Dc(e,t,n){let r=je(t,n);return xe(n=>Tc(()=>r(n),e,t))}function Oc(e,t=5e3){let n=L(!0),r=null,i=()=>{n.value=!0,e(),r=window.setInterval(e,t)},a=()=>{n.value=!1,r&&=(clearInterval(r),null)};return f(i),_(a),{isActive:n,start:i,stop:a}}var kc=ar(`devicePresence`,()=>{let e=qe({}),t;function n(){let n=Symbol();return t=n,e.value={},{set(r){t===n&&(e.value=r)},clear(){t===n&&(t=void 0,e.value={})}}}return{context:e,claim:n}}),Ac=`evening-detective-device-ID`,jc=/^[\da-f]{8}-[\da-f]{4}-4[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i;function Mc(){let e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function Nc(){let e=Mc();try{let t=localStorage.getItem(Ac);if(t&&jc.test(t))return t;localStorage.setItem(Ac,e)}catch{}return e}function Pc(){let e=Ec(),t=Ve(),n=kc(),r=Nc(),i=Mc(),a=!0,o=!1,s=!1,c=!1;async function l(){if(!(!a||s)){if(o){c=!0;return}o=!0,c=!1;try{(await(n.context.organizerGameID?e:t).DeviceHeartbeat({deviceID:r,connectionID:i,organizerGameID:n.context.organizerGameID,teamID:n.context.teamID,password:n.context.password,screenID:n.context.screenID,accessToken:n.context.accessToken})).enabled===!1&&(a=!1,d.stop())}catch{console.warn(`Не удалось обновить присутствие устройства; повтор по интервалу`),c=!1}finally{o=!1,c&&l()}}}function u(){document.visibilityState===`visible`&&l()}let d=Oc(()=>void l(),2e4);Se(()=>n.context,()=>void l()),f(()=>{document.addEventListener(`visibilitychange`,u),window.addEventListener(`online`,l)}),_(()=>{s=!0,document.removeEventListener(`visibilitychange`,u),window.removeEventListener(`online`,l)})}var Fc=n({__name:`App`,setup(e){return Pc(),(e,t)=>(g(),a(i(ka),{theme:i(Cc)},{default:ze(()=>[Ee(i(Lo),null,{default:ze(()=>[Ee(i(Me))]),_:1})]),_:1},8,[`theme`]))}}),Ic=`modulepreload`,Lc=function(e){return`/`+e},Rc={},$=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,new URL(`../../../src/node/plugins/importAnalysisBuild.ts`,import.meta.url)).href}r=o(t.map(t=>{if(t=Lc(t,n),t=s(t),t in Rc)return;Rc[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:Ic,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},zc=Re({history:fe(`/`),routes:[{path:`/playlists`,name:`playlists`,component:()=>$(()=>import(`./PlaylistsView-CwJFmy03.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]))},{path:`/participation`,name:`participation`,component:()=>$(()=>import(`./ParticipationView-BAG5ka1i.js`),__vite__mapDeps([32,1,2,3,4,33,9,7,10,11,25,13,26,29,30,34]))},{path:`/tickets/:token`,name:`ticket`,component:()=>$(()=>import(`./TicketView-ChJ5r-AW.js`),__vite__mapDeps([35,1,2,3,4,36,34,37,38,39]))},{path:`/`,name:`home`,component:()=>$(()=>import(`./HomeView-uP_nIScL.js`),__vite__mapDeps([40,1,2,3,4,29,7,30,41,42,37,38,43]))},{path:`/login`,name:`login`,component:()=>$(()=>import(`./LoginView-BI6iUAsC.js`),__vite__mapDeps([44,1,15,9,7,3,10,11,12,13,21,16,2,4,45,17,23,24,33,25,26,29,30,46]))},{path:`/office`,name:`office`,component:()=>$(()=>import(`./OfficeView-CsXrl85Z.js`),__vite__mapDeps([47,1,7,3,48,9,10,11,12,13,2,4,18,33,24,16,6,29,30,49]))},{path:`/user-agreement`,name:`user-agreement`,component:()=>$(()=>import(`./UserAgreementView-Bkj3RvWy.js`),__vite__mapDeps([50,1,29,7,3,30,51,6,28,17,10,41,42,52,53,54]))},{path:`/privacy-policy`,name:`privacy-policy`,component:()=>$(()=>import(`./PrivacyPolicyView-Dy1kRRAM.js`),__vite__mapDeps([55,1,29,7,3,30,51,6,28,17,10,41,42,52,53,54]))},{path:`/consent`,name:`consent`,component:()=>$(()=>import(`./ConsentView-ChuaDqzZ.js`),__vite__mapDeps([56,1,29,7,3,30,51,6,28,17,10,41,42,52,53,54]))},{path:`/games`,name:`games`,component:()=>$(()=>import(`./GamesView-wn2Wd_PJ.js`),__vite__mapDeps([57,1,7,3,48,9,10,11,12,13,2,4,18,33,58,15,21,16,24,20,17,14,19,22,23,6,25,26,59,29,30,60,34,61]))},{path:`/screen`,name:`screen`,component:()=>$(()=>import(`./ScreenView-kL9Y9uhX.js`),__vite__mapDeps([62,1,7,3,2,4,20,15,9,10,11,12,13,21,16,17,14,18,19,33,36,29,30,63,64,65,34,66,67]))},{path:`/games/:id/results`,name:`game-results`,component:()=>$(()=>import(`./GameResultsView-CZyoqnko.js`),__vite__mapDeps([68,1,7,3,2,4,59,13,26,29,30,69]))},{path:`/games/:id`,name:`game`,component:()=>$(()=>import(`./GameView-CVuY3UkA.js`),__vite__mapDeps([70,1,15,9,7,3,10,11,12,13,21,48,2,4,18,33,16,45,17,23,20,14,19,22,24,71,6,25,26,59,72,8,27,36,28,73,29,30,60,63,64,65,34,66,74]))},{path:`/team-story/:id`,name:`team-story`,component:()=>$(()=>import(`./TeamStoryView-KqctY9Vy.js`),__vite__mapDeps([75,1,7,3,2,4,76,12,9,10,11,13,48,18,33,16,22,15,14,17,19,23,24,71,25,26,73,63,37,38,77,6,59,72,36,52,53,66,78]))},{path:`/scenarios`,name:`scenarios`,component:()=>$(()=>import(`./ScenariosView-R9yDSC4s.js`),__vite__mapDeps([79,1,7,3,48,9,10,11,12,13,2,4,18,33,22,15,16,14,17,19,23,24,59,26,73,29,30,60,80]))},{path:`/catalog`,name:`catalog`,component:()=>$(()=>import(`./CatalogView-D6h9kJ7p.js`),__vite__mapDeps([81,1,7,3,72,16,4,29,30,41,42,82]))},{path:`/scenarios/:id/editor`,name:`scenario-editor`,component:()=>$(()=>import(`./ScenariosEditorView-Cy8Ufmpq.js`),__vite__mapDeps([83,1,7,3,48,9,10,11,12,13,2,4,18,33,20,15,21,16,17,14,19,22,23,24,76,71,25,26,73,63,37,38,77,6,59,29,30,60,84]))},{path:`/scenarios/:id`,name:`scenario`,component:()=>$(()=>import(`./ScenarioView-jwfdyWER.js`),__vite__mapDeps([85,1,7,3,72,16,4,29,30,41,42,86]))},{path:`/tasks`,name:`tasks`,component:()=>$(()=>import(`./TasksView-DASqkTuN.js`),__vite__mapDeps([87,1,21,15,9,7,3,10,11,12,13,48,2,4,18,33,58,16,24,88,19,20,17,14,5,6,59,26,28,29,30,89]))},{path:`/users`,name:`users`,component:()=>$(()=>import(`./UsersView-CUlWwgXw.js`),__vite__mapDeps([90,1,7,3,48,9,10,11,12,13,2,4,18,33,88,19,24,16,25,26,59,29,30,91]))},{path:`/reviews`,name:`reviews`,component:()=>$(()=>import(`./ReviewsView-BWIp1pAW.js`),__vite__mapDeps([92,1,7,3,2,4,33,9,10,11,59,13,26,72,16,29,30,93]))}]}),Bc=Tn(Fc);Bc.use(Kn()),wc().initFromStorage(),Bc.use(zc),Bc.mount(`#app`);export{yr as $,da as A,gi as B,fo as C,ka as D,Pa as E,Mi as F,ni as G,ci as H,ji as I,Qr as J,ei as K,Ei as L,Gi as M,Ui as N,Ca as O,Ii as P,qr as Q,wi as R,yo as S,qa as T,ai as U,li as V,ii as W,Yr as X,Zr as Y,Jr as Z,Zo as _,Tc as a,cr as at,To as b,cc as c,or as ct,Vs as d,gn as dt,mr as et,Ps as f,Tt as ft,ns as g,Ss as h,Ec as i,lr as it,Z as j,_a as k,Ys as l,lt,Ts as m,yn as mt,kc as n,dr as nt,wc as o,sr as ot,js as p,xn as pt,$r as q,Oc as r,ur as rt,dc as s,ar as st,zc as t,pr as tt,Gs as u,an as ut,qo as v,so as w,So as x,Go as y,bi as z}; \ No newline at end of file diff --git a/frontend/dist/assets/keep-DYskFqGA.js b/frontend/dist/assets/keep-CyT4Sxsq.js similarity index 98% rename from frontend/dist/assets/keep-DYskFqGA.js rename to frontend/dist/assets/keep-CyT4Sxsq.js index 88f00a6..595620d 100644 --- a/frontend/dist/assets/keep-DYskFqGA.js +++ b/frontend/dist/assets/keep-CyT4Sxsq.js @@ -1 +1 @@ -import{At as e,Gt as t,Ht as n,Nt as r,gt as i,in as a,vn as o}from"./client-DrrW410h.js";import{c as s,l as c,s as l}from"./Scrollbar-BUURfLNv.js";import{ot as u}from"./index-cNEa5D1b.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=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 r=u(),i=o(null),f=o(null),h=!1,g=!1,v=typeof document>`u`?null:document.activeElement;function y(){return _[_.length-1]===r}function b(t){var n;t.code===`Escape`&&y()&&((n=e.onEsc)==null||n.call(e,t))}t(()=>{a(()=>e.active,e=>{e?(C(),s(`keydown`,document,b)):(l(`keydown`,document,b),h&&w())},{immediate:!0})}),n(()=>{l(`keydown`,document,b),h&&w()});function x(e){if(!g&&y()){let t=S();if(t===null||t.contains(c(e)))return;T(`first`)}}function S(){let e=i.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(r),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!==r),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=i.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===i.value?T(`last`):T(`first`))}return{focusableStartRef:i,focusableEndRef:f,focusableStyle:`position: absolute; height: 0; width: 0;`,handleStartFocus:E,handleEndFocus:D}},render(){let{default:e}=this.$slots;if(e===void 0)return null;if(this.disabled)return e();let{active:t,focusableStyle:n}=this;return r(i,null,[r(`div`,{"aria-hidden":`true`,tabindex:t?`0`:`-1`,ref:`focusableStartRef`,style:n,onFocus:this.handleStartFocus}),e(),r(`div`,{"aria-hidden":`true`,style:n,ref:`focusableEndRef`,tabindex:t?`0`:`-1`,onFocus:this.handleEndFocus})])}}),y=new WeakSet;function b(e){y.add(e)}function x(e){return!y.has(e)}function S(e,t=[],n){let r={};return t.forEach(t=>{r[t]=e[t]}),Object.assign(r,n)}export{v as i,x as n,b as r,S as t}; \ No newline at end of file +import{At as e,Gt as t,Ht as n,Nt as r,gt as i,in as a,vn as o}from"./client-DrrW410h.js";import{c as s,l as c,s as l}from"./Scrollbar-DGnXZ64x.js";import{ot as u}from"./index-CvfVA1ID.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=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 r=u(),i=o(null),f=o(null),h=!1,g=!1,v=typeof document>`u`?null:document.activeElement;function y(){return _[_.length-1]===r}function b(t){var n;t.code===`Escape`&&y()&&((n=e.onEsc)==null||n.call(e,t))}t(()=>{a(()=>e.active,e=>{e?(C(),s(`keydown`,document,b)):(l(`keydown`,document,b),h&&w())},{immediate:!0})}),n(()=>{l(`keydown`,document,b),h&&w()});function x(e){if(!g&&y()){let t=S();if(t===null||t.contains(c(e)))return;T(`first`)}}function S(){let e=i.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(r),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!==r),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=i.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===i.value?T(`last`):T(`first`))}return{focusableStartRef:i,focusableEndRef:f,focusableStyle:`position: absolute; height: 0; width: 0;`,handleStartFocus:E,handleEndFocus:D}},render(){let{default:e}=this.$slots;if(e===void 0)return null;if(this.disabled)return e();let{active:t,focusableStyle:n}=this;return r(i,null,[r(`div`,{"aria-hidden":`true`,tabindex:t?`0`:`-1`,ref:`focusableStartRef`,style:n,onFocus:this.handleStartFocus}),e(),r(`div`,{"aria-hidden":`true`,style:n,ref:`focusableEndRef`,tabindex:t?`0`:`-1`,onFocus:this.handleEndFocus})])}}),y=new WeakSet;function b(e){y.add(e)}function x(e){return!y.has(e)}function S(e,t=[],n){let r={};return t.forEach(t=>{r[t]=e[t]}),Object.assign(r,n)}export{v as i,x as n,b as r,S as t}; \ No newline at end of file diff --git a/frontend/dist/assets/text-WRQwmy2U.js b/frontend/dist/assets/text-DlU9yI4b.js similarity index 97% rename from frontend/dist/assets/text-WRQwmy2U.js rename to frontend/dist/assets/text-DlU9yI4b.js index cd18815..1b72e5b 100644 --- a/frontend/dist/assets/text-WRQwmy2U.js +++ b/frontend/dist/assets/text-DlU9yI4b.js @@ -1,4 +1,4 @@ -import{At as e,Nt as t,U as n,W as r,ct as i,m as a,ot as o,rt as s,xt as c}from"./client-DrrW410h.js";import{t as l}from"./use-compitable-BLe2cDdc.js";import{c as u}from"./index-cNEa5D1b.js";var d=s(`text`,` +import{At as e,Nt as t,U as n,W as r,ct as i,m as a,ot as o,rt as s,xt as c}from"./client-DrrW410h.js";import{t as l}from"./use-compitable-BLe2cDdc.js";import{c as u}from"./index-CvfVA1ID.js";var d=s(`text`,` transition: color .3s var(--n-bezier); color: var(--n-text-color); `,[o(`strong`,` diff --git a/frontend/dist/assets/ui-CXICC9ah.js b/frontend/dist/assets/ui-BXphkCO3.js similarity index 99% rename from frontend/dist/assets/ui-CXICC9ah.js rename to frontend/dist/assets/ui-BXphkCO3.js index 78e452d..82e8119 100644 --- a/frontend/dist/assets/ui-CXICC9ah.js +++ b/frontend/dist/assets/ui-BXphkCO3.js @@ -1,4 +1,4 @@ -import{At as e,Ft as t,Nt as n,U as r,Vt as i,W as a,X as o,Yt as s,Z as c,Zt as l,_ as u,at as d,ct as f,f as p,ft as m,m as h,nt as g,ot as _,q as v,rt as y,st as b,vn as x,xn as S,xt as C}from"./client-DrrW410h.js";import{c as w,l as T,o as E}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{L as D,W as O,b as k,i as A,o as j,st as ee}from"./index-cNEa5D1b.js";function M(e){return typeof e==`string`?e.endsWith(`px`)?Number(e.slice(0,e.length-2)):Number(e):e}function N(e){if(e!=null)return typeof e==`number`?`${e}px`:e.endsWith(`px`)?e:`${e}px`}function P(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 F(e,t){let[n,r]=e.split(` `);return t?t===`row`?n:r:{row:n,col:r||n}}function I(e){let{textColor2:t,primaryColorHover:n,primaryColorPressed:r,primaryColor:i,infoColor:a,successColor:o,warningColor:s,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:w,heightMedium:T,closeColorHover:E,closeColorPressed:O,buttonColor2Hover:k,buttonColor2Pressed:A,fontWeightStrong:j}=e;return Object.assign(Object.assign({},D),{closeBorderRadius:_,heightTiny:S,heightSmall:C,heightMedium:w,heightLarge:T,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:E,closeColorPressed:O,borderPrimary:`1px solid ${c(i,{alpha:.3})}`,textColorPrimary:i,colorPrimary:c(i,{alpha:.12}),colorBorderedPrimary:c(i,{alpha:.1}),closeIconColorPrimary:i,closeIconColorHoverPrimary:i,closeIconColorPressedPrimary:i,closeColorHoverPrimary:c(i,{alpha:.12}),closeColorPressedPrimary:c(i,{alpha:.18}),borderInfo:`1px solid ${c(a,{alpha:.3})}`,textColorInfo:a,colorInfo:c(a,{alpha:.12}),colorBorderedInfo:c(a,{alpha:.1}),closeIconColorInfo:a,closeIconColorHoverInfo:a,closeIconColorPressedInfo:a,closeColorHoverInfo:c(a,{alpha:.12}),closeColorPressedInfo:c(a,{alpha:.18}),borderSuccess:`1px solid ${c(o,{alpha:.3})}`,textColorSuccess:o,colorSuccess:c(o,{alpha:.12}),colorBorderedSuccess:c(o,{alpha:.1}),closeIconColorSuccess:o,closeIconColorHoverSuccess:o,closeIconColorPressedSuccess:o,closeColorHoverSuccess:c(o,{alpha:.12}),closeColorPressedSuccess:c(o,{alpha:.18}),borderWarning:`1px solid ${c(s,{alpha:.35})}`,textColorWarning:s,colorWarning:c(s,{alpha:.15}),colorBorderedWarning:c(s,{alpha:.12}),closeIconColorWarning:s,closeIconColorHoverWarning:s,closeIconColorPressedWarning:s,closeColorHoverWarning:c(s,{alpha:.12}),closeColorPressedWarning:c(s,{alpha:.18}),borderError:`1px solid ${c(l,{alpha:.23})}`,textColorError:l,colorError:c(l,{alpha:.1}),colorBorderedError:c(l,{alpha:.08}),closeIconColorError:l,closeIconColorHoverError:l,closeIconColorPressedError:l,closeColorHoverError:c(l,{alpha:.12}),closeColorPressedError:c(l,{alpha:.18})})}var L={name:`Tag`,common:p,self:I},R={color:Object,type:{type:String,default:`default`},round:Boolean,size:String,closable:Boolean,disabled:{type:Boolean,default:void 0}},z=y(`tag`,` +import{At as e,Ft as t,Nt as n,U as r,Vt as i,W as a,X as o,Yt as s,Z as c,Zt as l,_ as u,at as d,ct as f,f as p,ft as m,m as h,nt as g,ot as _,q as v,rt as y,st as b,vn as x,xn as S,xt as C}from"./client-DrrW410h.js";import{c as w,l as T,o as E}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{L as D,W as O,b as k,i as A,o as j,st as ee}from"./index-CvfVA1ID.js";function M(e){return typeof e==`string`?e.endsWith(`px`)?Number(e.slice(0,e.length-2)):Number(e):e}function N(e){if(e!=null)return typeof e==`number`?`${e}px`:e.endsWith(`px`)?e:`${e}px`}function P(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 F(e,t){let[n,r]=e.split(` `);return t?t===`row`?n:r:{row:n,col:r||n}}function I(e){let{textColor2:t,primaryColorHover:n,primaryColorPressed:r,primaryColor:i,infoColor:a,successColor:o,warningColor:s,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:w,heightMedium:T,closeColorHover:E,closeColorPressed:O,buttonColor2Hover:k,buttonColor2Pressed:A,fontWeightStrong:j}=e;return Object.assign(Object.assign({},D),{closeBorderRadius:_,heightTiny:S,heightSmall:C,heightMedium:w,heightLarge:T,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:E,closeColorPressed:O,borderPrimary:`1px solid ${c(i,{alpha:.3})}`,textColorPrimary:i,colorPrimary:c(i,{alpha:.12}),colorBorderedPrimary:c(i,{alpha:.1}),closeIconColorPrimary:i,closeIconColorHoverPrimary:i,closeIconColorPressedPrimary:i,closeColorHoverPrimary:c(i,{alpha:.12}),closeColorPressedPrimary:c(i,{alpha:.18}),borderInfo:`1px solid ${c(a,{alpha:.3})}`,textColorInfo:a,colorInfo:c(a,{alpha:.12}),colorBorderedInfo:c(a,{alpha:.1}),closeIconColorInfo:a,closeIconColorHoverInfo:a,closeIconColorPressedInfo:a,closeColorHoverInfo:c(a,{alpha:.12}),closeColorPressedInfo:c(a,{alpha:.18}),borderSuccess:`1px solid ${c(o,{alpha:.3})}`,textColorSuccess:o,colorSuccess:c(o,{alpha:.12}),colorBorderedSuccess:c(o,{alpha:.1}),closeIconColorSuccess:o,closeIconColorHoverSuccess:o,closeIconColorPressedSuccess:o,closeColorHoverSuccess:c(o,{alpha:.12}),closeColorPressedSuccess:c(o,{alpha:.18}),borderWarning:`1px solid ${c(s,{alpha:.35})}`,textColorWarning:s,colorWarning:c(s,{alpha:.15}),colorBorderedWarning:c(s,{alpha:.12}),closeIconColorWarning:s,closeIconColorHoverWarning:s,closeIconColorPressedWarning:s,closeColorHoverWarning:c(s,{alpha:.12}),closeColorPressedWarning:c(s,{alpha:.18}),borderError:`1px solid ${c(l,{alpha:.23})}`,textColorError:l,colorError:c(l,{alpha:.1}),colorBorderedError:c(l,{alpha:.08}),closeIconColorError:l,closeIconColorHoverError:l,closeIconColorPressedError:l,closeColorHoverError:c(l,{alpha:.12}),closeColorPressedError:c(l,{alpha:.18})})}var L={name:`Tag`,common:p,self:I},R={color:Object,type:{type:String,default:`default`},round:Boolean,size:String,closable:Boolean,disabled:{type:Boolean,default:void 0}},z=y(`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; diff --git a/frontend/dist/assets/useDeviceContext-XjFYIFKI.js b/frontend/dist/assets/useDeviceContext-BaGiXmRj.js similarity index 62% rename from frontend/dist/assets/useDeviceContext-XjFYIFKI.js rename to frontend/dist/assets/useDeviceContext-BaGiXmRj.js index ef68da0..7e57757 100644 --- a/frontend/dist/assets/useDeviceContext-XjFYIFKI.js +++ b/frontend/dist/assets/useDeviceContext-BaGiXmRj.js @@ -1 +1 @@ -import{hn as e,in as t}from"./client-DrrW410h.js";import{n}from"./index-cNEa5D1b.js";function r(r){let i=n().claim();t(r,i.set,{immediate:!0}),e(i.clear)}export{r as t}; \ No newline at end of file +import{hn as e,in as t}from"./client-DrrW410h.js";import{n}from"./index-CvfVA1ID.js";function r(r){let i=n().claim();t(r,i.set,{immediate:!0}),e(i.clear)}export{r as t}; \ No newline at end of file diff --git a/frontend/dist/assets/usePlaylistActions-BM2ULXiP.js b/frontend/dist/assets/usePlaylistActions-BM2ULXiP.js deleted file mode 100644 index 89b2261..0000000 --- a/frontend/dist/assets/usePlaylistActions-BM2ULXiP.js +++ /dev/null @@ -1,16 +0,0 @@ -import{At as e,Cn as t,Ct as n,Ft as r,Jt as i,Nt as a,Ot as o,St as s,Tt as c,U as l,Vn as u,W as d,X as f,Xt as p,Yt as m,at as h,gt as g,in as _,kt as v,l as ee,m as y,nt as b,rt as x,sn as S,vn as C,wt as w,xn as T,xt as E}from"./client-DrrW410h.js";import{i as D}from"./Scrollbar-BUURfLNv.js";import{r as O}from"./ui-CXICC9ah.js";import{i as k}from"./Suffix-CV0EsaP5.js";import{t as A}from"./Button-BZxcJJGv.js";import{n as j,t as M}from"./Popover-BjLYiaCj.js";import{t as N}from"./keep-DYskFqGA.js";import{t as P}from"./Select-D0BL7DpH.js";import{c as F,i as I,o as L,t as R}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as te}from"./Upload-Q_ddyPUF.js";import{t as z}from"./Input-Bg8PolMg.js";import{t as B}from"./Alert-CewvQG_z.js";import{t as V}from"./Space-CbidFwig.js";import{K as H,Q as U,h as W,i as G,rt as K}from"./index-cNEa5D1b.js";var q=f(`n-popconfirm`),J={positiveText:String,negativeText:String,showIcon:{type:Boolean,default:!0},onPositiveClick:{type:Function,required:!0},onNegativeClick:{type:Function,required:!0}},Y=D(J),X=e({name:`NPopconfirmPanel`,props:J,setup(e){let{localeRef:t}=k(`Popconfirm`),{inlineThemeDisabled:n}=d(),{mergedClsPrefixRef:i,mergedThemeRef:a,props:o}=r(q),s=E(()=>{let{common:{cubicBezierEaseInOut:e},self:{fontSize:t,iconSize:n,iconColor:r}}=a.value;return{"--n-bezier":e,"--n-font-size":t,"--n-icon-size":n,"--n-icon-color":r}}),c=n?l(`popconfirm-panel`,void 0,s,o):void 0;return Object.assign(Object.assign({},k(`Popconfirm`)),{mergedClsPrefix:i,cssVars:n?void 0:s,localizedPositiveText:E(()=>e.positiveText||t.value.positiveText),localizedNegativeText:E(()=>e.negativeText||t.value.negativeText),positiveButtonProps:T(o,`positiveButtonProps`),negativeButtonProps:T(o,`negativeButtonProps`),handlePositiveClick(t){e.onPositiveClick(t)},handleNegativeClick(t){e.onNegativeClick(t)},themeClass:c?.themeClass,onRender:c?.onRender})},render(){var e;let{mergedClsPrefix:t,showIcon:n,$slots:r}=this,i=I(r.action,()=>this.negativeText===null&&this.positiveText===null?[]:[this.negativeText!==null&&a(A,Object.assign({size:`small`,onClick:this.handleNegativeClick},this.negativeButtonProps),{default:()=>this.localizedNegativeText}),this.positiveText!==null&&a(A,Object.assign({size:`small`,type:`primary`,onClick:this.handlePositiveClick},this.positiveButtonProps),{default:()=>this.localizedPositiveText})]);return(e=this.onRender)==null||e.call(this),a(`div`,{class:[`${t}-popconfirm__panel`,this.themeClass],style:this.cssVars},L(r.default,e=>n||e?a(`div`,{class:`${t}-popconfirm__body`},n?a(`div`,{class:`${t}-popconfirm__icon`},I(r.icon,()=>[a(U,{clsPrefix:t},{default:()=>a(H,null)})])):null,e):null),i?a(`div`,{class:[`${t}-popconfirm__action`]},i):null)}}),Z=x(`popconfirm`,[h(`body`,` - font-size: var(--n-font-size); - display: flex; - align-items: center; - flex-wrap: nowrap; - position: relative; - `,[h(`icon`,` - display: flex; - font-size: var(--n-icon-size); - color: var(--n-icon-color); - transition: color .3s var(--n-bezier); - margin: 0 8px 0 0; - `)]),h(`action`,` - display: flex; - justify-content: flex-end; - `,[b(`&:not(:first-child)`,`margin-top: 8px`),x(`button`,[b(`&:not(:last-child)`,`margin-right: 8px;`)])])]),Q=e({name:`Popconfirm`,props:Object.assign(Object.assign(Object.assign({},y.props),j),{positiveText:String,negativeText:String,showIcon:{type:Boolean,default:!0},trigger:{type:String,default:`click`},positiveButtonProps:Object,negativeButtonProps:Object,onPositiveClick:Function,onNegativeClick:Function}),slots:Object,__popover__:!0,setup(e){let{mergedClsPrefixRef:t}=d(),n=y(`Popconfirm`,`-popconfirm`,Z,W,e,t),r=C(null);function i(t){if(!r.value?.getMergedShow())return;let{onPositiveClick:n,"onUpdate:show":i}=e;Promise.resolve(n?n(t):!0).then(e=>{var t;e!==!1&&((t=r.value)==null||t.setShow(!1),i&&F(i,!1))})}function a(t){if(!r.value?.getMergedShow())return;let{onNegativeClick:n,"onUpdate:show":i}=e;Promise.resolve(n?n(t):!0).then(e=>{var t;e!==!1&&((t=r.value)==null||t.setShow(!1),i&&F(i,!1))})}return m(q,{mergedThemeRef:n,mergedClsPrefixRef:t,props:e}),{setShow(e){var t;(t=r.value)==null||t.setShow(e)},syncPosition(){var e;(e=r.value)==null||e.syncPosition()},mergedTheme:n,popoverInstRef:r,handlePositiveClick:i,handleNegativeClick:a}},render(){let{$slots:e,$props:t,mergedTheme:n}=this;return a(M,Object.assign({},K(t,Y),{theme:n.peers.Popover,themeOverrides:n.peerOverrides.Popover,internalExtraClass:[`popconfirm`],ref:`popoverInstRef`}),{trigger:e.trigger,default:()=>{let n=N(t,Y);return a(X,Object.assign({},n,{onPositiveClick:this.handlePositiveClick,onNegativeClick:this.handleNegativeClick}),e)}})}}),ne=e({__name:`PlaylistGroupEditor`,props:{group:{},isBusy:{type:Boolean},isLocked:{type:Boolean},isMissing:{type:Boolean},canMoveUp:{type:Boolean},canMoveDown:{type:Boolean}},emits:[`save`,`remove`,`move`,`dirty`],setup(e,{emit:r}){let a=e,s=r,c=C(a.group.name??``),l=C(a.group.endMode),d=C(JSON.stringify([a.group.name,a.group.endMode])),f=E(()=>c.value!==a.group.name||l.value!==a.group.endMode),p=E(()=>f.value&&JSON.stringify([a.group.name,a.group.endMode])!==d.value),m=[{label:`Повторять группу`,value:`PLAYLIST_GROUP_END_MODE_REPEAT`},{label:`Остановиться`,value:`PLAYLIST_GROUP_END_MODE_STOP`},{label:`Следующая группа`,value:`PLAYLIST_GROUP_END_MODE_NEXT`}];function h(){c.value=a.group.name??``,l.value=a.group.endMode,d.value=JSON.stringify([a.group.name,a.group.endMode])}return _(f,e=>s(`dirty`,e),{immediate:!0}),_(()=>a.group,(e,t)=>{(c.value===t.name&&l.value===t.endMode||c.value.trim()===e.name&&l.value===e.endMode)&&h()}),(r,a)=>(i(),n(t(V),{vertical:``},{default:S(()=>[v(t(z),{value:c.value,"onUpdate:value":a[0]||=e=>c.value=e,disabled:e.isBusy,maxlength:255,"aria-label":`Название группы ${e.group.name}`},null,8,[`value`,`disabled`,`aria-label`]),v(t(P),{value:l.value,"onUpdate:value":a[1]||=e=>l.value=e,options:m,disabled:e.isBusy||e.isLocked||e.isMissing,"input-props":{"aria-label":`Завершение группы ${e.group.name}`}},null,8,[`value`,`disabled`,`input-props`]),e.isMissing?(i(),n(t(B),{key:0,type:`warning`},{default:S(()=>[...a[6]||=[o(`Группа удалена на сервере. Черновик сохранён до отмены изменений.`,-1)]]),_:1})):w(``,!0),p.value?(i(),n(t(B),{key:1,type:`warning`},{default:S(()=>[...a[7]||=[o(` Группа изменена на сервере. Черновик сохранён; загрузите актуальные данные перед сохранением. `,-1)]]),_:1})):w(``,!0),v(t(V),null,{default:S(()=>[v(t(A),{size:`small`,disabled:e.isBusy||!c.value.trim()||!f.value||p.value||e.isMissing,onClick:a[2]||=e=>s(`save`,c.value.trim(),l.value)},{default:S(()=>[...a[8]||=[o(`Сохранить группу`,-1)]]),_:1},8,[`disabled`]),f.value||p.value||e.isMissing?(i(),n(t(A),{key:0,size:`small`,disabled:e.isBusy,onClick:h},{default:S(()=>[...a[9]||=[o(` Отменить изменения `,-1)]]),_:1},8,[`disabled`])):w(``,!0),v(t(A),{size:`small`,disabled:e.isBusy||e.isLocked||e.isMissing||!e.canMoveUp,"aria-label":`Поднять группу ${e.group.name}`,onClick:a[3]||=e=>s(`move`,-1)},{default:S(()=>[...a[10]||=[o(`↑`,-1)]]),_:1},8,[`disabled`,`aria-label`]),v(t(A),{size:`small`,disabled:e.isBusy||e.isLocked||e.isMissing||!e.canMoveDown,"aria-label":`Опустить группу ${e.group.name}`,onClick:a[4]||=e=>s(`move`,1)},{default:S(()=>[...a[11]||=[o(`↓`,-1)]]),_:1},8,[`disabled`,`aria-label`]),v(t(Q),{onPositiveClick:a[5]||=e=>s(`remove`)},{trigger:S(()=>[v(t(A),{size:`small`,type:`error`,ghost:``,disabled:e.isBusy||e.isLocked||e.isMissing},{default:S(()=>[...a[12]||=[o(` Удалить группу `,-1)]]),_:1},8,[`disabled`])]),default:S(()=>[o(` Удалить группу «`+u(e.group.name)+`»? Треки останутся в плейлисте без группы. `,1)]),_:1})]),_:1})]),_:1}))}}),re={key:0},ie={key:2},ae={key:`music-groups`,class:`music-groups`},oe=[`aria-label`],se={key:1},ce=R(e({__name:`PlaylistEditor`,props:{playlists:{},music:{},isBusy:{type:Boolean}},emits:[`setMusic`,`saveGroup`,`deleteGroup`,`reorderGroups`,`setTrackGroup`,`createPlaylist`,`renamePlaylist`,`reorderTracks`,`deletePlaylist`,`uploadTrack`,`deleteTrack`],setup(e,{expose:r,emit:a}){let l=e,d=a,f=C(l.music?.playlist?.ID??l.playlists[0]?.ID??null),m=C(``),h=C(``),y=C(``),b=C({}),x=E(()=>Object.values(b.value).some(Boolean)),T=C(``),D=C([]),O=C([]),k=C(l.playlists.find(e=>e.ID===f.value)),j=E(()=>l.playlists.find(e=>e.ID===f.value)??(x.value||R.value||L.value||y.value.trim()?k.value:void 0)),M=E(()=>!!f.value&&!l.playlists.some(e=>e.ID===f.value)),N=C(k.value?.groups??[]),F=E(()=>[...j.value?.groups??[],...N.value.filter(e=>e.ID!=null&&b.value[e.ID]&&!j.value?.groups?.some(t=>t.ID===e.ID))]),I=E(()=>l.playlists.map(e=>({label:e.name,value:e.ID}))),L=E(()=>JSON.stringify(D.value)!==JSON.stringify(O.value)),R=E(()=>m.value!==T.value),H=E(()=>M.value||!!j.value&&JSON.stringify(j.value.tracks?.map(e=>e.ID)??[])!==JSON.stringify(O.value)),U=E(()=>[...F.value.map(e=>({...e,ID:e.ID??0,endMode:e.endMode??`PLAYLIST_GROUP_END_MODE_REPEAT`})),{ID:0,name:`Без группы`,endMode:void 0,position:void 0}]),W=E(()=>U.value.map(e=>({label:e.name,value:e.ID}))),G=E(()=>f.value===l.music?.playlist?.ID&&l.music?.playback!==`MUSIC_PLAYBACK_STOPPED`);function K(e){return G.value&&(!l.music?.groupId||l.music.groupId===e)}function q(e){return D.value.filter(t=>(j.value?.tracks?.find(e=>e.ID===t)?.groupId??0)===e)}function J(e,t,n){let r=f.value;r!=null&&d(`saveGroup`,r,e,t,n)}function Y(e,t){let n=j.value?.groups?.flatMap(e=>e.ID==null?[]:[e.ID])??[],r=n.indexOf(e),i=r+t;if(!f.value||r<0||i<0||i>=n.length)return;let a=n.splice(r,1)[0];a!==void 0&&(n.splice(i,0,a),d(`reorderGroups`,f.value,n))}function X(){(M.value||!j.value)&&(f.value=null),m.value=j.value?.name??``,T.value=m.value,D.value=j.value?.tracks?.flatMap(e=>e.ID==null?[]:[e.ID])??[],O.value=[...D.value],y.value=``}function Z(e,t,n){let r=q(t),i=r.indexOf(e),a=r[i+n];if(i<0||a==null)return;let o=D.value.indexOf(e),s=D.value.indexOf(a);D.value[o]=a,D.value[s]=e}function ce(e){f.value&&e.file.file&&d(`uploadTrack`,f.value,e.file.file)}_(f,()=>{k.value=l.playlists.find(e=>e.ID===f.value),N.value=k.value?.groups??[],b.value={},X()}),_(()=>l.playlists,(e,t)=>{let n=t.find(e=>e.ID===f.value)?.groups??[],r=j.value?.groups?.find(e=>!n.some(t=>t.ID===e.ID));l.isBusy&&r?.name===y.value.trim()&&(y.value=``);let i=e.find(e=>!t.some(t=>t.ID===e.ID));if(i&&l.isBusy&&i.name===h.value.trim()&&!L.value&&!R.value&&!x.value&&!y.value.trim()){f.value=i.ID??null,h.value=``,X();return}if(!j.value){if(L.value||R.value||x.value||y.value.trim())return;f.value=null,X();return}let a=e.find(e=>e.ID===f.value);a&&(k.value=a,N.value=[...a.groups??[],...N.value.filter(e=>e.ID!=null&&b.value[e.ID]&&!a.groups?.some(t=>t.ID===e.ID))]),(!R.value||m.value.trim()===j.value.name)&&(m.value=j.value.name??``,T.value=m.value);let o=j.value.tracks?.flatMap(e=>e.ID==null?[]:[e.ID])??[];(!L.value||JSON.stringify(o)===JSON.stringify(D.value))&&(D.value=o,O.value=[...o])});function $(){return!(L.value||R.value||x.value||y.value.trim()||h.value.trim())||window.confirm(`Отменить несохранённые изменения плейлиста?`)}return ee($),r({confirmDiscard:$}),X(),(r,a)=>(i(),n(t(V),{vertical:``,"wrap-item":!1,class:`music-content`,"data-testid":`music-editor`},{default:S(()=>[v(t(V),{wrap:!1},{default:S(()=>[v(t(z),{value:h.value,"onUpdate:value":a[0]||=e=>h.value=e,placeholder:`Новый плейлист`,"aria-label":`Название нового плейлиста`,disabled:e.isBusy},null,8,[`value`,`disabled`]),v(t(A),{disabled:e.isBusy||x.value||!!y.value.trim()||!h.value.trim(),onClick:a[1]||=e=>d(`createPlaylist`,h.value.trim())},{default:S(()=>[...a[10]||=[o(`Создать`,-1)]]),_:1},8,[`disabled`])]),_:1}),v(t(P),{value:f.value,"onUpdate:value":a[2]||=e=>f.value=e,options:I.value,placeholder:`Плейлист для редактирования`,disabled:e.isBusy||L.value||R.value||x.value,"input-props":{"aria-label":`Плейлист для редактирования`}},null,8,[`value`,`options`,`disabled`]),e.playlists.length?w(``,!0):(i(),c(`p`,re,`Плейлистов пока нет.`)),M.value?(i(),n(t(B),{key:1,type:`warning`},{default:S(()=>[a[12]||=o(` Плейлист удалён на сервере. Несохранённый черновик сохранён до отмены. `,-1),v(t(A),{size:`small`,disabled:e.isBusy,onClick:X},{default:S(()=>[...a[11]||=[o(`Загрузить актуальный список`,-1)]]),_:1},8,[`disabled`])]),_:1})):w(``,!0),j.value&&f.value?(i(),c(g,{key:2},[a[24]||=s(`label`,{for:`music-playlist-name`},`Название плейлиста`,-1),v(t(z),{value:m.value,"onUpdate:value":a[3]||=e=>m.value=e,disabled:e.isBusy,"input-props":{id:`music-playlist-name`}},null,8,[`value`,`disabled`]),v(t(V),null,{default:S(()=>[v(t(A),{size:`small`,disabled:e.isBusy||!m.value.trim()||!R.value,onClick:a[4]||=e=>d(`renamePlaylist`,f.value,m.value.trim())},{default:S(()=>[...a[13]||=[o(`Сохранить название`,-1)]]),_:1},8,[`disabled`]),v(t(te),{accept:`.mp3,audio/mpeg`,"default-upload":!1,"show-file-list":!1,disabled:e.isBusy||L.value||H.value,onChange:ce},{default:S(()=>[v(t(A),{size:`small`,disabled:e.isBusy||L.value||H.value},{default:S(()=>[...a[14]||=[o(`Добавить MP3`,-1)]]),_:1},8,[`disabled`])]),_:1},8,[`disabled`]),e.music?(i(),n(t(A),{key:0,size:`small`,disabled:e.isBusy||L.value||H.value||!D.value.length,onClick:a[5]||=e=>d(`setMusic`,{playlistID:f.value??void 0,trackIndex:0,positionMs:0,playback:`MUSIC_PLAYBACK_STOPPED`})},{default:S(()=>[...a[15]||=[o(`Использовать в игре`,-1)]]),_:1},8,[`disabled`])):w(``,!0),v(t(Q),{onPositiveClick:a[6]||=e=>d(`deletePlaylist`,f.value)},{trigger:S(()=>[v(t(A),{size:`small`,type:`error`,ghost:``,disabled:e.isBusy||L.value||R.value||x.value},{default:S(()=>[...a[16]||=[o(`Удалить плейлист`,-1)]]),_:1},8,[`disabled`])]),default:S(()=>[o(` Удалить плейлист «`+u(j.value.name)+`»? `,1)]),_:1})]),_:1}),H.value?(i(),n(t(B),{key:0,type:`warning`},{default:S(()=>[...a[17]||=[o(`Порядок или состав треков изменился на сервере. Загрузите актуальный список перед сохранением.`,-1)]]),_:1})):w(``,!0),L.value||R.value||H.value?(i(),n(t(V),{key:1},{default:S(()=>[v(t(A),{size:`small`,disabled:e.isBusy||!L.value||H.value,onClick:a[7]||=e=>d(`reorderTracks`,f.value,[...D.value])},{default:S(()=>[...a[18]||=[o(`Сохранить порядок`,-1)]]),_:1},8,[`disabled`]),v(t(A),{size:`small`,disabled:e.isBusy,onClick:X},{default:S(()=>[o(u(H.value?`Загрузить актуальный список`:`Отменить изменения`),1)]),_:1},8,[`disabled`])]),_:1})):w(``,!0),v(t(V),{wrap:!1},{default:S(()=>[v(t(z),{value:y.value,"onUpdate:value":a[8]||=e=>y.value=e,placeholder:`Новая группа`,"aria-label":`Название новой группы`,maxlength:255,disabled:e.isBusy},null,8,[`value`,`disabled`]),v(t(A),{disabled:e.isBusy||L.value||H.value||!y.value.trim(),onClick:a[9]||=e=>J(0,y.value.trim(),`PLAYLIST_GROUP_END_MODE_REPEAT`)},{default:S(()=>[...a[19]||=[o(`Добавить группу`,-1)]]),_:1},8,[`disabled`])]),_:1}),G.value?(i(),c(`p`,ie,` Для изменения активной группы и порядка групп остановите музыку. Другие игры также могут блокировать редактирование. `)):w(``,!0),s(`div`,ae,[(i(!0),c(g,null,p(U.value,(r,l)=>(i(),c(`section`,{key:r.ID,class:`music-group`,"aria-label":r.name},[s(`h4`,null,u(r.name),1),r.ID?(i(),n(ne,{key:0,group:r,"is-missing":M.value||!j.value.groups?.some(e=>e.ID===r.ID),"is-busy":e.isBusy||L.value||H.value,"is-locked":K(r.ID),"can-move-up":!G.value&&l>0,"can-move-down":!G.value&&l<(j.value.groups?.length??0)-1,onSave:(e,t)=>J(r.ID,e,t),onRemove:e=>d(`deleteGroup`,f.value,r.ID),onDirty:e=>b.value[r.ID]=e,onMove:e=>Y(r.ID,e)},null,8,[`group`,`is-missing`,`is-busy`,`is-locked`,`can-move-up`,`can-move-down`,`onSave`,`onRemove`,`onDirty`,`onMove`])):w(``,!0),q(r.ID).length?w(``,!0):(i(),c(`p`,se,`Треков пока нет.`)),(i(!0),c(g,null,p(q(r.ID),(n,l)=>(i(),c(`div`,{key:n,class:`track-row`},[s(`span`,null,u(l+1)+`. `+u(j.value.tracks?.find(e=>e.ID===n)?.name??`Трек удалён на сервере`),1),v(t(P),{value:r.ID,options:W.value,disabled:e.isBusy||L.value||H.value||K(r.ID),"input-props":{"aria-label":`Группа трека ${j.value.tracks?.find(e=>e.ID===n)?.name}`},"onUpdate:value":e=>d(`setTrackGroup`,f.value,n,e)},null,8,[`value`,`options`,`disabled`,`input-props`,`onUpdate:value`]),v(t(V),null,{default:S(()=>[v(t(A),{size:`small`,disabled:e.isBusy||H.value||K(r.ID)||l===0,"aria-label":`Поднять трек ${l+1} в группе ${r.name}`,onClick:e=>Z(n,r.ID,-1)},{default:S(()=>[...a[20]||=[o(`↑`,-1)]]),_:1},8,[`disabled`,`aria-label`,`onClick`]),v(t(A),{size:`small`,disabled:e.isBusy||H.value||K(r.ID)||l===q(r.ID).length-1,"aria-label":`Опустить трек ${l+1} в группе ${r.name}`,onClick:e=>Z(n,r.ID,1)},{default:S(()=>[...a[21]||=[o(`↓`,-1)]]),_:1},8,[`disabled`,`aria-label`,`onClick`]),v(t(Q),{onPositiveClick:e=>d(`deleteTrack`,f.value,n)},{trigger:S(()=>[v(t(A),{size:`small`,type:`error`,ghost:``,disabled:e.isBusy||L.value||H.value||K(r.ID)},{default:S(()=>[...a[22]||=[o(`Удалить`,-1)]]),_:1},8,[`disabled`])]),default:S(()=>[a[23]||=o(` Удалить трек из плейлиста? `,-1)]),_:2},1032,[`onPositiveClick`])]),_:2},1024)]))),128))],8,oe))),128))])],64)):w(``,!0)]),_:1}))}}),[[`__scopeId`,`data-v-b464a3cf`]]);function $(e,t,n=()=>{}){let r=G(),i=O();async function a(a,o,s,c){if(!e.value){e.value=!0,n();try{await r.SavePlaylistGroup({playlistID:a,groupID:o,name:s,endMode:c}),await t()}catch(e){i.error(e instanceof Error?e.message:`Не удалось изменить группы музыки`)}finally{e.value=!1}}}async function o(a,o){if(!e.value){e.value=!0,n();try{await r.DeletePlaylistGroup({playlistID:a,groupID:o}),await t()}catch(e){i.error(e instanceof Error?e.message:`Не удалось изменить группы музыки`)}finally{e.value=!1}}}async function s(a,o){if(!e.value){e.value=!0,n();try{await r.ReorderPlaylistGroups({playlistID:a,groupIDs:o}),await t()}catch(e){i.error(e instanceof Error?e.message:`Не удалось изменить группы музыки`)}finally{e.value=!1}}}async function c(a,o,s){if(!e.value){e.value=!0,n();try{await r.SetPlaylistTrackGroup({playlistID:a,trackID:o,groupID:s}),await t()}catch(e){i.error(e instanceof Error?e.message:`Не удалось изменить группы музыки`)}finally{e.value=!1}}}async function l(a){if(!(e.value||!a.trim())){e.value=!0,n();try{await r.CreatePlaylist({name:a.trim()}),await t()}catch(e){i.error(e instanceof Error?e.message:`Не удалось создать плейлист`)}finally{e.value=!1}}}async function u(a,o){if(!(e.value||!o.trim())){e.value=!0,n();try{await r.UpdatePlaylist({ID:a,name:o.trim()}),await t()}catch(e){i.error(e instanceof Error?e.message:`Не удалось переименовать плейлист`)}finally{e.value=!1}}}async function d(a,o){if(!e.value){e.value=!0,n();try{await r.ReorderPlaylistTracks({playlistID:a,trackIDs:o}),await t()}catch(e){i.error(e instanceof Error?e.message:`Не удалось сохранить порядок треков`)}finally{e.value=!1}}}async function f(a){if(!e.value){e.value=!0,n();try{await r.DeletePlaylist({ID:a}),await t()}catch(e){i.error(e instanceof Error?e.message:`Не удалось удалить плейлист`)}finally{e.value=!1}}}async function p(a,o){if(!e.value){if(!/\.mp3$/i.test(o.name)||o.size===0||o.size>64*1024*1024){i.error(`Выберите непустой MP3 размером до 64 МиБ`);return}e.value=!0,n();try{let e=h(new Uint8Array(await o.arrayBuffer()));await r.UploadPlaylistTrack({playlistID:a,name:o.name,filename:o.name,data:e}),await t()}catch(e){i.error(e instanceof Error?e.message:`Не удалось загрузить MP3`)}finally{e.value=!1}}}async function m(a,o){if(!e.value){e.value=!0,n();try{await r.DeletePlaylistTrack({playlistID:a,trackID:o}),await t()}catch(e){i.error(e instanceof Error?e.message:`Не удалось удалить трек`)}finally{e.value=!1}}}function h(e){let t=``;for(let n=0;n{let{common:{cubicBezierEaseInOut:e},self:{fontSize:t,iconSize:n,iconColor:r}}=a.value;return{"--n-bezier":e,"--n-font-size":t,"--n-icon-size":n,"--n-icon-color":r}}),c=n?l(`popconfirm-panel`,void 0,s,o):void 0;return Object.assign(Object.assign({},k(`Popconfirm`)),{mergedClsPrefix:i,cssVars:n?void 0:s,localizedPositiveText:E(()=>e.positiveText||t.value.positiveText),localizedNegativeText:E(()=>e.negativeText||t.value.negativeText),positiveButtonProps:T(o,`positiveButtonProps`),negativeButtonProps:T(o,`negativeButtonProps`),handlePositiveClick(t){e.onPositiveClick(t)},handleNegativeClick(t){e.onNegativeClick(t)},themeClass:c?.themeClass,onRender:c?.onRender})},render(){var e;let{mergedClsPrefix:t,showIcon:n,$slots:r}=this,i=I(r.action,()=>this.negativeText===null&&this.positiveText===null?[]:[this.negativeText!==null&&a(A,Object.assign({size:`small`,onClick:this.handleNegativeClick},this.negativeButtonProps),{default:()=>this.localizedNegativeText}),this.positiveText!==null&&a(A,Object.assign({size:`small`,type:`primary`,onClick:this.handlePositiveClick},this.positiveButtonProps),{default:()=>this.localizedPositiveText})]);return(e=this.onRender)==null||e.call(this),a(`div`,{class:[`${t}-popconfirm__panel`,this.themeClass],style:this.cssVars},L(r.default,e=>n||e?a(`div`,{class:`${t}-popconfirm__body`},n?a(`div`,{class:`${t}-popconfirm__icon`},I(r.icon,()=>[a(U,{clsPrefix:t},{default:()=>a(H,null)})])):null,e):null),i?a(`div`,{class:[`${t}-popconfirm__action`]},i):null)}}),Z=x(`popconfirm`,[h(`body`,` + font-size: var(--n-font-size); + display: flex; + align-items: center; + flex-wrap: nowrap; + position: relative; + `,[h(`icon`,` + display: flex; + font-size: var(--n-icon-size); + color: var(--n-icon-color); + transition: color .3s var(--n-bezier); + margin: 0 8px 0 0; + `)]),h(`action`,` + display: flex; + justify-content: flex-end; + `,[b(`&:not(:first-child)`,`margin-top: 8px`),x(`button`,[b(`&:not(:last-child)`,`margin-right: 8px;`)])])]),Q=e({name:`Popconfirm`,props:Object.assign(Object.assign(Object.assign({},y.props),j),{positiveText:String,negativeText:String,showIcon:{type:Boolean,default:!0},trigger:{type:String,default:`click`},positiveButtonProps:Object,negativeButtonProps:Object,onPositiveClick:Function,onNegativeClick:Function}),slots:Object,__popover__:!0,setup(e){let{mergedClsPrefixRef:t}=d(),n=y(`Popconfirm`,`-popconfirm`,Z,W,e,t),r=C(null);function i(t){if(!r.value?.getMergedShow())return;let{onPositiveClick:n,"onUpdate:show":i}=e;Promise.resolve(n?n(t):!0).then(e=>{var t;e!==!1&&((t=r.value)==null||t.setShow(!1),i&&F(i,!1))})}function a(t){if(!r.value?.getMergedShow())return;let{onNegativeClick:n,"onUpdate:show":i}=e;Promise.resolve(n?n(t):!0).then(e=>{var t;e!==!1&&((t=r.value)==null||t.setShow(!1),i&&F(i,!1))})}return m(q,{mergedThemeRef:n,mergedClsPrefixRef:t,props:e}),{setShow(e){var t;(t=r.value)==null||t.setShow(e)},syncPosition(){var e;(e=r.value)==null||e.syncPosition()},mergedTheme:n,popoverInstRef:r,handlePositiveClick:i,handleNegativeClick:a}},render(){let{$slots:e,$props:t,mergedTheme:n}=this;return a(M,Object.assign({},K(t,Y),{theme:n.peers.Popover,themeOverrides:n.peerOverrides.Popover,internalExtraClass:[`popconfirm`],ref:`popoverInstRef`}),{trigger:e.trigger,default:()=>{let n=N(t,Y);return a(X,Object.assign({},n,{onPositiveClick:this.handlePositiveClick,onNegativeClick:this.handleNegativeClick}),e)}})}}),ne=e({__name:`PlaylistGroupEditor`,props:{group:{},isBusy:{type:Boolean},isLocked:{type:Boolean},isMissing:{type:Boolean},canMoveUp:{type:Boolean},canMoveDown:{type:Boolean}},emits:[`save`,`remove`,`move`,`dirty`],setup(e,{emit:r}){let a=e,s=r,c=C(a.group.name??``),l=C(a.group.endMode),d=C(JSON.stringify([a.group.name,a.group.endMode])),f=E(()=>c.value!==a.group.name||l.value!==a.group.endMode),p=E(()=>f.value&&JSON.stringify([a.group.name,a.group.endMode])!==d.value),m=[{label:`Повторять группу`,value:`PLAYLIST_GROUP_END_MODE_REPEAT`},{label:`Остановиться`,value:`PLAYLIST_GROUP_END_MODE_STOP`},{label:`Следующая группа`,value:`PLAYLIST_GROUP_END_MODE_NEXT`}];function h(){c.value=a.group.name??``,l.value=a.group.endMode,d.value=JSON.stringify([a.group.name,a.group.endMode])}return _(f,e=>s(`dirty`,e),{immediate:!0}),_(()=>a.group,(e,t)=>{(c.value===t.name&&l.value===t.endMode||c.value.trim()===e.name&&l.value===e.endMode)&&h()}),(r,a)=>(i(),n(t(V),{vertical:``},{default:S(()=>[v(t(z),{value:c.value,"onUpdate:value":a[0]||=e=>c.value=e,disabled:e.isBusy,maxlength:255,"aria-label":`Название группы ${e.group.name}`},null,8,[`value`,`disabled`,`aria-label`]),v(t(P),{value:l.value,"onUpdate:value":a[1]||=e=>l.value=e,options:m,disabled:e.isBusy||e.isLocked||e.isMissing,"input-props":{"aria-label":`Завершение группы ${e.group.name}`}},null,8,[`value`,`disabled`,`input-props`]),e.isMissing?(i(),n(t(B),{key:0,type:`warning`},{default:S(()=>[...a[6]||=[o(`Группа удалена на сервере. Черновик сохранён до отмены изменений.`,-1)]]),_:1})):w(``,!0),p.value?(i(),n(t(B),{key:1,type:`warning`},{default:S(()=>[...a[7]||=[o(` Группа изменена на сервере. Черновик сохранён; загрузите актуальные данные перед сохранением. `,-1)]]),_:1})):w(``,!0),v(t(V),null,{default:S(()=>[v(t(A),{size:`small`,disabled:e.isBusy||!c.value.trim()||!f.value||p.value||e.isMissing,onClick:a[2]||=e=>s(`save`,c.value.trim(),l.value)},{default:S(()=>[...a[8]||=[o(`Сохранить группу`,-1)]]),_:1},8,[`disabled`]),f.value||p.value||e.isMissing?(i(),n(t(A),{key:0,size:`small`,disabled:e.isBusy,onClick:h},{default:S(()=>[...a[9]||=[o(` Отменить изменения `,-1)]]),_:1},8,[`disabled`])):w(``,!0),v(t(A),{size:`small`,disabled:e.isBusy||e.isLocked||e.isMissing||!e.canMoveUp,"aria-label":`Поднять группу ${e.group.name}`,onClick:a[3]||=e=>s(`move`,-1)},{default:S(()=>[...a[10]||=[o(`↑`,-1)]]),_:1},8,[`disabled`,`aria-label`]),v(t(A),{size:`small`,disabled:e.isBusy||e.isLocked||e.isMissing||!e.canMoveDown,"aria-label":`Опустить группу ${e.group.name}`,onClick:a[4]||=e=>s(`move`,1)},{default:S(()=>[...a[11]||=[o(`↓`,-1)]]),_:1},8,[`disabled`,`aria-label`]),v(t(Q),{onPositiveClick:a[5]||=e=>s(`remove`)},{trigger:S(()=>[v(t(A),{size:`small`,type:`error`,ghost:``,disabled:e.isBusy||e.isLocked||e.isMissing},{default:S(()=>[...a[12]||=[o(` Удалить группу `,-1)]]),_:1},8,[`disabled`])]),default:S(()=>[o(` Удалить группу «`+u(e.group.name)+`»? Треки останутся в плейлисте без группы. `,1)]),_:1})]),_:1})]),_:1}))}}),re={key:0},ie={key:2},ae={key:`music-groups`,class:`music-groups`},oe=[`aria-label`],se={key:1},$=R(e({__name:`PlaylistEditor`,props:{playlists:{},music:{},isBusy:{type:Boolean}},emits:[`setMusic`,`saveGroup`,`deleteGroup`,`reorderGroups`,`setTrackGroup`,`createPlaylist`,`renamePlaylist`,`reorderTracks`,`deletePlaylist`,`uploadTrack`,`deleteTrack`],setup(e,{expose:r,emit:a}){let l=e,d=a,f=C(l.music?.playlist?.ID??l.playlists[0]?.ID??null),m=C(``),h=C(``),y=C(``),b=C({}),x=E(()=>Object.values(b.value).some(Boolean)),T=C(``),D=C([]),O=C([]),k=C(l.playlists.find(e=>e.ID===f.value)),j=E(()=>l.playlists.find(e=>e.ID===f.value)??(x.value||R.value||L.value||y.value.trim()?k.value:void 0)),M=E(()=>!!f.value&&!l.playlists.some(e=>e.ID===f.value)),N=C(k.value?.groups??[]),F=E(()=>[...j.value?.groups??[],...N.value.filter(e=>e.ID!=null&&b.value[e.ID]&&!j.value?.groups?.some(t=>t.ID===e.ID))]),I=E(()=>l.playlists.map(e=>({label:e.name,value:e.ID}))),L=E(()=>JSON.stringify(D.value)!==JSON.stringify(O.value)),R=E(()=>m.value!==T.value),H=E(()=>M.value||!!j.value&&JSON.stringify(j.value.tracks?.map(e=>e.ID)??[])!==JSON.stringify(O.value)),U=E(()=>[...F.value.map(e=>({...e,ID:e.ID??0,endMode:e.endMode??`PLAYLIST_GROUP_END_MODE_REPEAT`})),{ID:0,name:`Без группы`,endMode:void 0,position:void 0}]),W=E(()=>U.value.map(e=>({label:e.name,value:e.ID}))),G=E(()=>f.value===l.music?.playlist?.ID&&l.music?.playback!==`MUSIC_PLAYBACK_STOPPED`);function K(e){return M.value||e!==0&&!j.value?.groups?.some(t=>t.ID===e)}function q(e){return G.value&&(!l.music?.groupId||l.music.groupId===e)}function J(e){return D.value.filter(t=>(j.value?.tracks?.find(e=>e.ID===t)?.groupId??0)===e)}function Y(e,t,n){let r=f.value;r!=null&&d(`saveGroup`,r,e,t,n)}function X(e,t){let n=j.value?.groups?.flatMap(e=>e.ID==null?[]:[e.ID])??[],r=n.indexOf(e),i=r+t;if(!f.value||r<0||i<0||i>=n.length)return;let a=n.splice(r,1)[0];a!==void 0&&(n.splice(i,0,a),d(`reorderGroups`,f.value,n))}function Z(){(M.value||!j.value)&&(f.value=null),m.value=j.value?.name??``,T.value=m.value,D.value=j.value?.tracks?.flatMap(e=>e.ID==null?[]:[e.ID])??[],O.value=[...D.value],y.value=``}function $(e,t,n){let r=J(t),i=r.indexOf(e),a=r[i+n];if(i<0||a==null)return;let o=D.value.indexOf(e),s=D.value.indexOf(a);D.value[o]=a,D.value[s]=e}function ce(e,t){f.value&&e.file.file&&d(`uploadTrack`,f.value,e.file.file,t)}_(f,()=>{k.value=l.playlists.find(e=>e.ID===f.value),N.value=k.value?.groups??[],b.value={},Z()}),_(()=>l.playlists,(e,t)=>{let n=t.find(e=>e.ID===f.value)?.groups??[],r=j.value?.groups?.find(e=>!n.some(t=>t.ID===e.ID));l.isBusy&&r?.name===y.value.trim()&&(y.value=``);let i=e.find(e=>!t.some(t=>t.ID===e.ID));if(i&&l.isBusy&&i.name===h.value.trim()&&!L.value&&!R.value&&!x.value&&!y.value.trim()){f.value=i.ID??null,h.value=``,Z();return}if(!j.value){if(L.value||R.value||x.value||y.value.trim())return;f.value=null,Z();return}let a=e.find(e=>e.ID===f.value);a&&(k.value=a,N.value=[...a.groups??[],...N.value.filter(e=>e.ID!=null&&b.value[e.ID]&&!a.groups?.some(t=>t.ID===e.ID))]),(!R.value||m.value.trim()===j.value.name)&&(m.value=j.value.name??``,T.value=m.value);let o=j.value.tracks?.flatMap(e=>e.ID==null?[]:[e.ID])??[];(!L.value||JSON.stringify(o)===JSON.stringify(D.value))&&(D.value=o,O.value=[...o])});function le(){return!(L.value||R.value||x.value||y.value.trim()||h.value.trim())||window.confirm(`Отменить несохранённые изменения плейлиста?`)}return ee(le),r({confirmDiscard:le}),Z(),(r,a)=>(i(),n(t(V),{vertical:``,"wrap-item":!1,class:`music-content`,"data-testid":`music-editor`},{default:S(()=>[v(t(V),{wrap:!1},{default:S(()=>[v(t(z),{value:h.value,"onUpdate:value":a[0]||=e=>h.value=e,placeholder:`Новый плейлист`,"aria-label":`Название нового плейлиста`,disabled:e.isBusy},null,8,[`value`,`disabled`]),v(t(A),{disabled:e.isBusy||x.value||!!y.value.trim()||!h.value.trim(),onClick:a[1]||=e=>d(`createPlaylist`,h.value.trim())},{default:S(()=>[...a[10]||=[o(`Создать`,-1)]]),_:1},8,[`disabled`])]),_:1}),v(t(P),{value:f.value,"onUpdate:value":a[2]||=e=>f.value=e,options:I.value,placeholder:`Плейлист для редактирования`,disabled:e.isBusy||L.value||R.value||x.value,"input-props":{"aria-label":`Плейлист для редактирования`}},null,8,[`value`,`options`,`disabled`]),e.playlists.length?w(``,!0):(i(),c(`p`,re,`Плейлистов пока нет.`)),M.value?(i(),n(t(B),{key:1,type:`warning`},{default:S(()=>[a[12]||=o(` Плейлист удалён на сервере. Несохранённый черновик сохранён до отмены. `,-1),v(t(A),{size:`small`,disabled:e.isBusy,onClick:Z},{default:S(()=>[...a[11]||=[o(`Загрузить актуальный список`,-1)]]),_:1},8,[`disabled`])]),_:1})):w(``,!0),j.value&&f.value?(i(),c(g,{key:2},[a[24]||=s(`label`,{for:`music-playlist-name`},`Название плейлиста`,-1),v(t(z),{value:m.value,"onUpdate:value":a[3]||=e=>m.value=e,disabled:e.isBusy,"input-props":{id:`music-playlist-name`}},null,8,[`value`,`disabled`]),v(t(V),null,{default:S(()=>[v(t(A),{size:`small`,disabled:e.isBusy||!m.value.trim()||!R.value,onClick:a[4]||=e=>d(`renamePlaylist`,f.value,m.value.trim())},{default:S(()=>[...a[13]||=[o(`Сохранить название`,-1)]]),_:1},8,[`disabled`]),e.music?(i(),n(t(A),{key:0,size:`small`,disabled:e.isBusy||L.value||H.value||!D.value.length,onClick:a[5]||=e=>d(`setMusic`,{playlistID:f.value??void 0,trackIndex:0,positionMs:0,playback:`MUSIC_PLAYBACK_STOPPED`})},{default:S(()=>[...a[14]||=[o(`Использовать в игре`,-1)]]),_:1},8,[`disabled`])):w(``,!0),v(t(Q),{onPositiveClick:a[6]||=e=>d(`deletePlaylist`,f.value)},{trigger:S(()=>[v(t(A),{size:`small`,type:`error`,ghost:``,disabled:e.isBusy||L.value||R.value||x.value},{default:S(()=>[...a[15]||=[o(`Удалить плейлист`,-1)]]),_:1},8,[`disabled`])]),default:S(()=>[o(` Удалить плейлист «`+u(j.value.name)+`»? `,1)]),_:1})]),_:1}),H.value?(i(),n(t(B),{key:0,type:`warning`},{default:S(()=>[...a[16]||=[o(`Порядок или состав треков изменился на сервере. Загрузите актуальный список перед сохранением.`,-1)]]),_:1})):w(``,!0),L.value||R.value||H.value?(i(),n(t(V),{key:1},{default:S(()=>[v(t(A),{size:`small`,disabled:e.isBusy||!L.value||H.value,onClick:a[7]||=e=>d(`reorderTracks`,f.value,[...D.value])},{default:S(()=>[...a[17]||=[o(`Сохранить порядок`,-1)]]),_:1},8,[`disabled`]),v(t(A),{size:`small`,disabled:e.isBusy,onClick:Z},{default:S(()=>[o(u(H.value?`Загрузить актуальный список`:`Отменить изменения`),1)]),_:1},8,[`disabled`])]),_:1})):w(``,!0),v(t(V),{wrap:!1},{default:S(()=>[v(t(z),{value:y.value,"onUpdate:value":a[8]||=e=>y.value=e,placeholder:`Новая группа`,"aria-label":`Название новой группы`,maxlength:255,disabled:e.isBusy},null,8,[`value`,`disabled`]),v(t(A),{disabled:e.isBusy||L.value||H.value||!y.value.trim(),onClick:a[9]||=e=>Y(0,y.value.trim(),`PLAYLIST_GROUP_END_MODE_REPEAT`)},{default:S(()=>[...a[18]||=[o(`Добавить группу`,-1)]]),_:1},8,[`disabled`])]),_:1}),G.value?(i(),c(`p`,ie,` Для изменения активной группы и порядка групп остановите музыку. Другие игры также могут блокировать редактирование. `)):w(``,!0),s(`div`,ae,[(i(!0),c(g,null,p(U.value,(r,l)=>(i(),c(`section`,{key:r.ID,class:`music-group`,"aria-label":r.name},[s(`h4`,null,u(r.name),1),r.ID?(i(),n(ne,{key:0,group:r,"is-missing":K(r.ID),"is-busy":e.isBusy||L.value||H.value,"is-locked":q(r.ID),"can-move-up":!G.value&&l>0,"can-move-down":!G.value&&l<(j.value.groups?.length??0)-1,onSave:(e,t)=>Y(r.ID,e,t),onRemove:e=>d(`deleteGroup`,f.value,r.ID),onDirty:e=>b.value[r.ID]=e,onMove:e=>X(r.ID,e)},null,8,[`group`,`is-missing`,`is-busy`,`is-locked`,`can-move-up`,`can-move-down`,`onSave`,`onRemove`,`onDirty`,`onMove`])):w(``,!0),v(t(te),{accept:`.mp3,audio/mpeg`,"default-upload":!1,"show-file-list":!1,disabled:e.isBusy||L.value||H.value||K(r.ID)||r.ID!==0&&q(r.ID),onChange:e=>ce(e,r.ID)},{default:S(()=>[v(t(A),{size:`small`,disabled:e.isBusy||L.value||H.value||K(r.ID)||r.ID!==0&&q(r.ID),"aria-label":`Добавить MP3 в группу ${r.name}`},{default:S(()=>[...a[19]||=[o(`Добавить MP3`,-1)]]),_:1},8,[`disabled`,`aria-label`])]),_:2},1032,[`disabled`,`onChange`]),J(r.ID).length?w(``,!0):(i(),c(`p`,se,`Треков пока нет.`)),(i(!0),c(g,null,p(J(r.ID),(n,l)=>(i(),c(`div`,{key:n,class:`track-row`},[s(`span`,null,u(l+1)+`. `+u(j.value.tracks?.find(e=>e.ID===n)?.name??`Трек удалён на сервере`),1),v(t(P),{value:r.ID,options:W.value,disabled:e.isBusy||L.value||H.value||q(r.ID),"input-props":{"aria-label":`Группа трека ${j.value.tracks?.find(e=>e.ID===n)?.name}`},"onUpdate:value":e=>d(`setTrackGroup`,f.value,n,e)},null,8,[`value`,`options`,`disabled`,`input-props`,`onUpdate:value`]),v(t(V),null,{default:S(()=>[v(t(A),{size:`small`,disabled:e.isBusy||H.value||q(r.ID)||l===0,"aria-label":`Поднять трек ${l+1} в группе ${r.name}`,onClick:e=>$(n,r.ID,-1)},{default:S(()=>[...a[20]||=[o(`↑`,-1)]]),_:1},8,[`disabled`,`aria-label`,`onClick`]),v(t(A),{size:`small`,disabled:e.isBusy||H.value||q(r.ID)||l===J(r.ID).length-1,"aria-label":`Опустить трек ${l+1} в группе ${r.name}`,onClick:e=>$(n,r.ID,1)},{default:S(()=>[...a[21]||=[o(`↓`,-1)]]),_:1},8,[`disabled`,`aria-label`,`onClick`]),v(t(Q),{onPositiveClick:e=>d(`deleteTrack`,f.value,n)},{trigger:S(()=>[v(t(A),{size:`small`,type:`error`,ghost:``,disabled:e.isBusy||L.value||H.value||q(r.ID)},{default:S(()=>[...a[22]||=[o(`Удалить`,-1)]]),_:1},8,[`disabled`])]),default:S(()=>[a[23]||=o(` Удалить трек из плейлиста? `,-1)]),_:2},1032,[`onPositiveClick`])]),_:2},1024)]))),128))],8,oe))),128))])],64)):w(``,!0)]),_:1}))}}),[[`__scopeId`,`data-v-bffdf215`]]);function ce(e,t,n=()=>{}){let r=G(),i=O();async function a(a,o,s,c){if(!e.value){e.value=!0,n();try{await r.SavePlaylistGroup({playlistID:a,groupID:o,name:s,endMode:c}),await t()}catch(e){i.error(e instanceof Error?e.message:`Не удалось изменить группы музыки`)}finally{e.value=!1}}}async function o(a,o){if(!e.value){e.value=!0,n();try{await r.DeletePlaylistGroup({playlistID:a,groupID:o}),await t()}catch(e){i.error(e instanceof Error?e.message:`Не удалось изменить группы музыки`)}finally{e.value=!1}}}async function s(a,o){if(!e.value){e.value=!0,n();try{await r.ReorderPlaylistGroups({playlistID:a,groupIDs:o}),await t()}catch(e){i.error(e instanceof Error?e.message:`Не удалось изменить группы музыки`)}finally{e.value=!1}}}async function c(a,o,s){if(!e.value){e.value=!0,n();try{await r.SetPlaylistTrackGroup({playlistID:a,trackID:o,groupID:s}),await t()}catch(e){i.error(e instanceof Error?e.message:`Не удалось изменить группы музыки`)}finally{e.value=!1}}}async function l(a){if(!(e.value||!a.trim())){e.value=!0,n();try{await r.CreatePlaylist({name:a.trim()}),await t()}catch(e){i.error(e instanceof Error?e.message:`Не удалось создать плейлист`)}finally{e.value=!1}}}async function u(a,o){if(!(e.value||!o.trim())){e.value=!0,n();try{await r.UpdatePlaylist({ID:a,name:o.trim()}),await t()}catch(e){i.error(e instanceof Error?e.message:`Не удалось переименовать плейлист`)}finally{e.value=!1}}}async function d(a,o){if(!e.value){e.value=!0,n();try{await r.ReorderPlaylistTracks({playlistID:a,trackIDs:o}),await t()}catch(e){i.error(e instanceof Error?e.message:`Не удалось сохранить порядок треков`)}finally{e.value=!1}}}async function f(a){if(!e.value){e.value=!0,n();try{await r.DeletePlaylist({ID:a}),await t()}catch(e){i.error(e instanceof Error?e.message:`Не удалось удалить плейлист`)}finally{e.value=!1}}}async function p(a,o,s){if(!e.value){if(!/\.mp3$/i.test(o.name)||o.size===0||o.size>64*1024*1024){i.error(`Выберите непустой MP3 размером до 64 МиБ`);return}e.value=!0,n();try{let e=h(new Uint8Array(await o.arrayBuffer()));await r.UploadPlaylistTrack({playlistID:a,groupID:s,name:o.name,filename:o.name,data:e}),await t()}catch(e){i.error(e instanceof Error?e.message:`Не удалось загрузить MP3`)}finally{e.value=!1}}}async function m(a,o){if(!e.value){e.value=!0,n();try{await r.DeletePlaylistTrack({playlistID:a,trackID:o}),await t()}catch(e){i.error(e instanceof Error?e.message:`Не удалось удалить трек`)}finally{e.value=!1}}}function h(e){let t=``;for(let n=0;nr)throw Error("[FinweckTree.sum]: `i` is larger than length.");let i=e*n;for(;e>0;)i+=t[e],e-=H(e);return i}getBound(e){let t=0,n=this.l;for(;n>t;){let r=Math.floor((t+n)/2),i=this.sum(r);if(i>e){n=r;continue}else if(i`u`?!1:(W===void 0&&(W=`matchMedia`in window?window.matchMedia(`(pointer:coarse)`).matches:!1),W)}var K;function q(){return typeof document>`u`?1:(K===void 0&&(K=`chrome`in window?window.devicePixelRatio:1),K)}var J=`VVirtualListXScroll`;function Y({columnsRef:e,renderColRef:t,renderItemWithColsRef:n}){let r=x(0),i=x(0),a=C(()=>{let t=e.value;if(t.length===0)return null;let n=new U(t.length,0);return t.forEach((e,t)=>{n.add(t,e.width)}),n});return d(J,{startIndexRef:z(()=>{let e=a.value;return e===null?0:Math.max(e.getBound(i.value)-1,0)}),endIndexRef:z(()=>{let t=a.value;return t===null?0:Math.min(t.getBound(i.value+r.value)+1,e.value.length-1)}),columnsRef:e,renderColRef:t,renderItemWithColsRef:n,getLeft:e=>{let t=a.value;return t===null?0:t.sum(e)}}),{listWidthRef:r,scrollLeftRef:i}}var X=e({name:`VirtualListRow`,props:{index:{type:Number,required:!0},item:{type:Object,required:!0}},setup(){let{startIndexRef:e,endIndexRef:t,columnsRef:r,getLeft:i,renderColRef:a,renderItemWithColsRef:o}=n(J);return{startIndex:e,endIndex:t,columns:r,renderCol:a,renderItemWithCols:o,getLeft:i}},render(){let{startIndex:e,endIndex:t,columns:n,renderCol:r,renderItemWithCols:i,getLeft:a,item:o}=this;if(i!=null)return i({itemIndex:this.index,startColIndex:e,endColIndex:t,allColumns:n,item:o,getLeft:a});if(r!=null){let i=[];for(let s=e;s<=t;++s){let e=n[s];i.push(r({column:e,left:a(s),item:o}))}return i}return null}}),oe=E(`.v-vl`,{maxHeight:`inherit`,height:`100%`,overflow:`auto`,minWidth:`1px`},[E(`&:not(.v-vl--show-scrollbar)`,{scrollbarWidth:`none`},[E(`&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb`,{width:0,height:0,display:`none`})])]),se=e({name:`VirtualList`,inheritAttrs:!1,props:{showScrollbar:{type:Boolean,default:!0},columns:{type:Array,default:()=>[]},renderCol:Function,renderItemWithCols:Function,items:{type:Array,default:()=>[]},itemSize:{type:Number,required:!0},itemResizable:Boolean,itemsStyle:[String,Object],visibleItemsTag:{type:[String,Object],default:`div`},visibleItemsProps:Object,ignoreItemResize:Boolean,onScroll:Function,onWheel:Function,onResize:Function,defaultScrollKey:[Number,String],defaultScrollIndex:Number,keyField:{type:String,default:`key`},paddingTop:{type:[Number,String],default:0},paddingBottom:{type:[Number,String],default:0}},setup(e){let n=u();oe.mount({id:`vueuc/virtual-list`,head:!0,anchorMetaName:D,ssr:n}),r(()=>{let{defaultScrollIndex:t,defaultScrollKey:n}=e;t==null?n!=null&&b({key:n}):b({index:t})});let i=!1,a=!1;t(()=>{if(i=!1,!a){a=!0;return}b({top:_.value,left:c.value})}),l(()=>{i=!0,a||=!0});let o=z(()=>{if(e.renderCol==null&&e.renderItemWithCols==null||e.columns.length===0)return;let t=0;return e.columns.forEach(e=>{t+=e.width}),t}),s=C(()=>{let t=new Map,{keyField:n}=e;return e.items.forEach((e,r)=>{t.set(e[n],r)}),t}),{scrollLeftRef:c,listWidthRef:d}=Y({columnsRef:S(e,`columns`),renderColRef:S(e,`renderCol`),renderItemWithColsRef:S(e,`renderItemWithCols`)}),f=x(null),p=x(void 0),m=new Map,h=C(()=>{let{items:t,itemSize:n,keyField:r}=e,i=new U(t.length,n);return t.forEach((e,t)=>{let n=e[r],a=m.get(n);a!==void 0&&i.add(t,a)}),i}),g=x(0),_=x(0),v=z(()=>Math.max(h.value.getBound(_.value-N(e.paddingTop))-1,0)),y=C(()=>{let{value:t}=p;if(t===void 0)return[];let{items:n,itemSize:r}=e,i=v.value,a=Math.min(i+Math.ceil(t/r+1),n.length-1),o=[];for(let e=i;e<=a;++e)o.push(n[e]);return o}),b=(e,t)=>{if(typeof e==`number`){O(e,t,`auto`);return}let{left:n,top:r,index:i,key:a,position:o,behavior:c,debounce:l=!0}=e;if(n!==void 0||r!==void 0)O(n,r,c);else if(i!==void 0)E(i,c,l);else if(a!==void 0){let e=s.value.get(a);e!==void 0&&E(e,c,l)}else o===`bottom`?O(0,2**53-1,c):o===`top`&&O(0,0,c)},w,T=null;function E(t,n,r){let{value:i}=h,a=i.sum(t)+N(e.paddingTop);if(!r)f.value.scrollTo({left:0,top:a,behavior:n});else{w=t,T!==null&&window.clearTimeout(T),T=window.setTimeout(()=>{w=void 0,T=null},16);let{scrollTop:e,offsetHeight:r}=f.value;if(a>e){let o=i.get(t);a+o<=e+r||f.value.scrollTo({left:0,top:a+o-r,behavior:n})}else f.value.scrollTo({left:0,top:a,behavior:n})}}function O(e,t,n){f.value.scrollTo({left:e,top:t,behavior:n})}function A(t,n){if(i||e.ignoreItemResize||R(n.target))return;let{value:r}=h,a=s.value.get(t),o=r.get(a),c=n.borderBoxSize?.[0]?.blockSize??n.contentRect.height;if(c===o)return;c-e.itemSize===0?m.delete(t):m.set(t,c-e.itemSize);let l=c-o;if(l===0)return;r.add(a,l);let u=f.value;if(u!=null){if(w===void 0){let e=r.sum(a);u.scrollTop>e&&u.scrollBy(0,l)}else(au.scrollTop+u.offsetHeight)&&u.scrollBy(0,l);L()}g.value++}let j=!G(),M=!1;function F(t){var n;(n=e.onScroll)==null||n.call(e,t),(!j||!M)&&L()}function ee(t){var n;if((n=e.onWheel)==null||n.call(e,t),j){let e=f.value;if(e!=null){if(t.deltaX===0&&(e.scrollTop===0&&t.deltaY<=0||e.scrollTop+e.offsetHeight>=e.scrollHeight&&t.deltaY>=0))return;t.preventDefault(),e.scrollTop+=t.deltaY/q(),e.scrollLeft+=t.deltaX/q(),L(),M=!0,k(()=>{M=!1})}}}function I(t){if(i||R(t.target))return;if(e.renderCol==null&&e.renderItemWithCols==null){if(t.contentRect.height===p.value)return}else if(t.contentRect.height===p.value&&t.contentRect.width===d.value)return;p.value=t.contentRect.height,d.value=t.contentRect.width;let{onResize:n}=e;n!==void 0&&n(t)}function L(){let{value:e}=f;e!=null&&(_.value=e.scrollTop,c.value=e.scrollLeft)}function R(e){let t=e;for(;t!==null;){if(t.style.display===`none`)return!0;t=t.parentElement}return!1}return{listHeight:p,listStyle:{overflow:`auto`},keyToIndex:s,itemsStyle:C(()=>{let{itemResizable:t}=e,n=P(h.value.sum());return g.value,[e.itemsStyle,{boxSizing:`content-box`,width:P(o.value),height:t?``:n,minHeight:t?n:``,paddingTop:P(e.paddingTop),paddingBottom:P(e.paddingBottom)}]}),visibleItemsStyle:C(()=>(g.value,{transform:`translateY(${P(h.value.sum(v.value))})`})),viewportItems:y,listElRef:f,itemsElRef:x(null),scrollTo:b,handleListResize:I,handleListScroll:F,handleListWheel:ee,handleItemResize:A}},render(){let{itemResizable:e,keyField:t,keyToIndex:n,visibleItemsTag:r}=this;return a(A,{onResize:this.handleListResize},{default:()=>{var i;return a(`div`,o(this.$attrs,{class:[`v-vl`,this.showScrollbar&&`v-vl--show-scrollbar`],onScroll:this.handleListScroll,onWheel:this.handleListWheel,ref:`listElRef`}),[this.items.length===0?(i=this.$slots).empty?.call(i):a(`div`,{ref:`itemsElRef`,class:`v-vl-items`,style:this.itemsStyle},[a(r,Object.assign({class:`v-vl-visible-items`,style:this.visibleItemsStyle},this.visibleItemsProps),{default:()=>{let{renderCol:r,renderItemWithCols:i}=this;return this.viewportItems.map(o=>{let s=o[t],c=n.get(s),l=r==null?void 0:a(X,{index:c,item:o}),u=i==null?void 0:a(X,{index:c,item:o}),d=this.$slots.default({item:o,renderedCols:l,renderedItemWithCols:u,index:c})[0];return e?a(A,{key:s,onResize:e=>this.handleItemResize(s,e)},{default:()=>d}):(d.key=s,d)})}})])])}})}});function ce(e,t){t&&(r(()=>{let{value:n}=e;n&&j.registerHandler(n,t)}),h(e,(e,t)=>{t&&j.unregisterHandler(t)},{deep:!1}),i(()=>{let{value:t}=e;t&&j.unregisterHandler(t)}))}function Z(e){let t=e.filter(e=>e!==void 0);if(t.length!==0)return t.length===1?t[0]:t=>{e.forEach(e=>{e&&e(t)})}}var le=e({name:`Checkmark`,render(){return a(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 16 16`},a(`g`,{fill:`none`},a(`path`,{d:`M14.046 3.486a.75.75 0 0 1-.032 1.06l-7.93 7.474a.85.85 0 0 1-1.188-.022l-2.68-2.72a.75.75 0 1 1 1.068-1.053l2.234 2.267l7.468-7.038a.75.75 0 0 1 1.06.032z`,fill:`currentColor`})))}}),ue=e({name:`Empty`,render(){return a(`svg`,{viewBox:`0 0 28 28`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},a(`path`,{d:`M26 7.5C26 11.0899 23.0899 14 19.5 14C15.9101 14 13 11.0899 13 7.5C13 3.91015 15.9101 1 19.5 1C23.0899 1 26 3.91015 26 7.5ZM16.8536 4.14645C16.6583 3.95118 16.3417 3.95118 16.1464 4.14645C15.9512 4.34171 15.9512 4.65829 16.1464 4.85355L18.7929 7.5L16.1464 10.1464C15.9512 10.3417 15.9512 10.6583 16.1464 10.8536C16.3417 11.0488 16.6583 11.0488 16.8536 10.8536L19.5 8.20711L22.1464 10.8536C22.3417 11.0488 22.6583 11.0488 22.8536 10.8536C23.0488 10.6583 23.0488 10.3417 22.8536 10.1464L20.2071 7.5L22.8536 4.85355C23.0488 4.65829 23.0488 4.34171 22.8536 4.14645C22.6583 3.95118 22.3417 3.95118 22.1464 4.14645L19.5 6.79289L16.8536 4.14645Z`,fill:`currentColor`}),a(`path`,{d:`M25 22.75V12.5991C24.5572 13.0765 24.053 13.4961 23.5 13.8454V16H17.5L17.3982 16.0068C17.0322 16.0565 16.75 16.3703 16.75 16.75C16.75 18.2688 15.5188 19.5 14 19.5C12.4812 19.5 11.25 18.2688 11.25 16.75L11.2432 16.6482C11.1935 16.2822 10.8797 16 10.5 16H4.5V7.25C4.5 6.2835 5.2835 5.5 6.25 5.5H12.2696C12.4146 4.97463 12.6153 4.47237 12.865 4H6.25C4.45507 4 3 5.45507 3 7.25V22.75C3 24.5449 4.45507 26 6.25 26H21.75C23.5449 26 25 24.5449 25 22.75ZM4.5 22.75V17.5H9.81597L9.85751 17.7041C10.2905 19.5919 11.9808 21 14 21L14.215 20.9947C16.2095 20.8953 17.842 19.4209 18.184 17.5H23.5V22.75C23.5 23.7165 22.7165 24.5 21.75 24.5H6.25C5.2835 24.5 4.5 23.7165 4.5 22.75Z`,fill:`currentColor`}))}}),de=e({props:{onFocus:Function,onBlur:Function},setup(e){return()=>a(`div`,{style:`width: 0; height: 0`,tabindex:0,onFocus:e.onFocus,onBlur:e.onBlur})}});function fe(e){return Array.isArray(e)?e:[e]}var pe={STOP:`STOP`};function me(e,t){let n=t(e);e.children!==void 0&&n!==pe.STOP&&e.children.forEach(e=>me(e,t))}function he(e,t={}){let{preserveGroup:n=!1}=t,r=[],i=n?e=>{e.isLeaf||(r.push(e.key),a(e.children))}:e=>{e.isLeaf||(e.isGroup||r.push(e.key),a(e.children))};function a(e){e.forEach(i)}return a(e),r}function ge(e,t){let{isLeaf:n}=e;return n===void 0?!t(e):n}function _e(e){return e.children}function ve(e){return e.key}function ye(){return!1}function be(e,t){let{isLeaf:n}=e;return!(n===!1&&!Array.isArray(t(e)))}function xe(e){return e.disabled===!0}function Se(e,t){return e.isLeaf===!1&&!Array.isArray(t(e))}function Ce(e){return e==null?[]:Array.isArray(e)?e:e.checkedKeys??[]}function we(e){return e==null||Array.isArray(e)?[]:e.indeterminateKeys??[]}function Te(e,t){let n=new Set(e);return t.forEach(e=>{n.has(e)||n.add(e)}),Array.from(n)}function Ee(e,t){let n=new Set(e);return t.forEach(e=>{n.has(e)&&n.delete(e)}),Array.from(n)}function De(e){return e?.type===`group`}function Oe(e){let t=new Map;return e.forEach((e,n)=>{t.set(e.key,n)}),e=>t.get(e)??null}var ke=class extends Error{constructor(){super(),this.message=`SubtreeNotLoadedError: checking a subtree whose required nodes are not fully loaded.`}};function Ae(e,t,n,r){return Q(t.concat(e),n,r,!1)}function je(e,t){let n=new Set;return e.forEach(e=>{let r=t.treeNodeMap.get(e);if(r!==void 0){let e=r.parent;for(;e!==null&&!(e.disabled||n.has(e.key));)n.add(e.key),e=e.parent}}),n}function Me(e,t,n,r){let i=Q(t,n,r,!1),a=Q(e,n,r,!0),o=je(e,n),s=[];return i.forEach(e=>{(a.has(e)||o.has(e))&&s.push(e)}),s.forEach(e=>i.delete(e)),i}function Ne(e,t){let{checkedKeys:n,keysToCheck:r,keysToUncheck:i,indeterminateKeys:a,cascade:o,leafOnly:s,checkStrategy:c,allowNotLoaded:l}=e;if(!o)return r===void 0?i===void 0?{checkedKeys:Array.from(n),indeterminateKeys:Array.from(a)}:{checkedKeys:Ee(n,i),indeterminateKeys:Array.from(a)}:{checkedKeys:Te(n,r),indeterminateKeys:Array.from(a)};let{levelTreeNodeMap:u}=t,d;d=i===void 0?r===void 0?Q(n,t,l,!1):Ae(r,n,t,l):Me(i,n,t,l);let f=c===`parent`,p=c===`child`||s,m=d,h=new Set,g=Math.max.apply(null,Array.from(u.keys()));for(let e=g;e>=0;--e){let t=e===0,n=u.get(e);for(let e of n){if(e.isLeaf)continue;let{key:n,shallowLoaded:r}=e;if(p&&r&&e.children.forEach(e=>{!e.disabled&&!e.isLeaf&&e.shallowLoaded&&m.has(e.key)&&m.delete(e.key)}),e.disabled||!r)continue;let i=!0,a=!1,o=!0;for(let t of e.children){let e=t.key;if(!t.disabled){if(o&&=!1,m.has(e))a=!0;else if(h.has(e)){a=!0,i=!1;break}else if(i=!1,a)break}}i&&!o?(f&&e.children.forEach(e=>{!e.disabled&&m.has(e.key)&&m.delete(e.key)}),m.add(n)):a&&h.add(n),t&&p&&m.has(n)&&m.delete(n)}}return{checkedKeys:Array.from(m),indeterminateKeys:Array.from(h)}}function Q(e,t,n,r){let{treeNodeMap:i,getChildren:a}=t,o=new Set,s=new Set(e);return e.forEach(e=>{let t=i.get(e);t!==void 0&&me(t,e=>{if(e.disabled)return pe.STOP;let{key:t}=e;if(!o.has(t)&&(o.add(t),s.add(t),Se(e.rawNode,a))){if(r)return pe.STOP;if(!n)throw new ke}})}),s}function Pe(e,{includeGroup:t=!1,includeSelf:n=!0},r){let i=r.treeNodeMap,a=e==null?null:i.get(e)??null,o={keyPath:[],treeNodePath:[],treeNode:a};if(a?.ignored)return o.treeNode=null,o;for(;a;)!a.ignored&&(t||!a.isGroup)&&o.treeNodePath.push(a),a=a.parent;return o.treeNodePath.reverse(),n||o.treeNodePath.pop(),o.keyPath=o.treeNodePath.map(e=>e.key),o}function Fe(e){if(e.length===0)return null;let t=e[0];return t.isGroup||t.ignored||t.disabled?t.getNext():t}function Ie(e,t){let n=e.siblings,r=n.length,{index:i}=e;return t?n[(i+1)%r]:i===n.length-1?null:n[i+1]}function Le(e,t,{loop:n=!1,includeDisabled:r=!1}={}){let i=t===`prev`?Re:Ie,a={reverse:t===`prev`},o=!1,s=null;function c(t){if(t!==null){if(t===e){if(!o)o=!0;else if(!e.disabled&&!e.isGroup){s=e;return}}else if((!t.disabled||r)&&!t.ignored&&!t.isGroup){s=t;return}if(t.isGroup){let e=Be(t,a);e===null?c(i(t,n)):s=e}else{let e=i(t,!1);if(e!==null)c(e);else{let e=ze(t);e?.isGroup?c(i(e,n)):n&&c(i(t,!0))}}}}return c(e),s}function Re(e,t){let n=e.siblings,r=n.length,{index:i}=e;return t?n[(i-1+r)%r]:i===0?null:n[i-1]}function ze(e){return e.parent}function Be(e,t={}){let{reverse:n=!1}=t,{children:r}=e;if(r){let{length:e}=r,i=n?e-1:0,a=n?-1:e,o=n?-1:1;for(let e=i;e!==a;e+=o){let n=r[e];if(!n.disabled&&!n.ignored)if(n.isGroup){let e=Be(n,t);if(e!==null)return e}else return n}}return null}var Ve={getChild(){return this.ignored?null:Be(this)},getParent(){let{parent:e}=this;return e?.isGroup?e.getParent():e},getNext(e={}){return Le(this,`next`,e)},getPrev(e={}){return Le(this,`prev`,e)}};function He(e,t){let n=t?new Set(t):void 0,r=[];function i(e){e.forEach(e=>{r.push(e),!(e.isLeaf||!e.children||e.ignored)&&(e.isGroup||n===void 0||n.has(e.key))&&i(e.children)})}return i(e),r}function Ue(e,t){let n=e.key;for(;t;){if(t.key===n)return!0;t=t.parent}return!1}function We(e,t,n,r,i,a=null,o=0){let s=[];return e.forEach((c,l)=>{var u;let d=Object.create(r);if(d.rawNode=c,d.siblings=s,d.level=o,d.index=l,d.isFirstChild=l===0,d.isLastChild=l+1===e.length,d.parent=a,!d.ignored){let e=i(c);Array.isArray(e)&&(d.children=We(e,t,n,r,i,d,o+1))}s.push(d),t.set(d.key,d),n.has(o)||n.set(o,[]),(u=n.get(o))==null||u.push(d)}),s}function Ge(e,t={}){let n=new Map,r=new Map,{getDisabled:i=xe,getIgnored:a=ye,getIsGroup:o=De,getKey:s=ve}=t,c=t.getChildren??_e,l=t.ignoreEmptyChildren?e=>{let t=c(e);return Array.isArray(t)?t.length?t:null:t}:c,u=We(e,n,r,Object.assign({get key(){return s(this.rawNode)},get disabled(){return i(this.rawNode)},get isGroup(){return o(this.rawNode)},get isLeaf(){return ge(this.rawNode,l)},get shallowLoaded(){return be(this.rawNode,l)},get ignored(){return a(this.rawNode)},contains(e){return Ue(this,e)}},Ve),l);function d(e){if(e==null)return null;let t=n.get(e);return t&&!t.isGroup&&!t.ignored?t:null}function f(e){if(e==null)return null;let t=n.get(e);return t&&!t.ignored?t:null}function p(e,t){let n=f(e);return n?n.getPrev(t):null}function m(e,t){let n=f(e);return n?n.getNext(t):null}function h(e){let t=f(e);return t?t.getParent():null}function g(e){let t=f(e);return t?t.getChild():null}let _={treeNodes:u,treeNodeMap:n,levelTreeNodeMap:r,maxLevel:Math.max(...r.keys()),getChildren:l,getFlattenedNodes(e){return He(u,e)},getNode:d,getPrev:p,getNext:m,getParent:h,getChild:g,getFirstAvailableNode(){return Fe(u)},getPath(e,t={}){return Pe(e,t,_)},getCheckedKeys(e,t={}){let{cascade:n=!0,leafOnly:r=!1,checkStrategy:i=`all`,allowNotLoaded:a=!1}=t;return Ne({checkedKeys:Ce(e),indeterminateKeys:we(e),cascade:n,leafOnly:r,checkStrategy:i,allowNotLoaded:a},_)},check(e,t,n={}){let{cascade:r=!0,leafOnly:i=!1,checkStrategy:a=`all`,allowNotLoaded:o=!1}=n;return Ne({checkedKeys:Ce(t),indeterminateKeys:we(t),keysToCheck:e==null?[]:fe(e),cascade:r,leafOnly:i,checkStrategy:a,allowNotLoaded:o},_)},uncheck(e,t,n={}){let{cascade:r=!0,leafOnly:i=!1,checkStrategy:a=`all`,allowNotLoaded:o=!1}=n;return Ne({checkedKeys:Ce(t),indeterminateKeys:we(t),keysToUncheck:e==null?[]:fe(e),cascade:r,leafOnly:i,checkStrategy:a,allowNotLoaded:o},_)},getNonLeafKeys(e={}){return he(u,e)}};return _}var Ke=y(`empty`,` +import{At as e,Bt as t,Ft as n,Gt as r,Ht as i,Nt as a,Rt as o,U as s,W as c,Wt as l,Y as u,Yt as d,_ as f,at as p,ct as m,in as h,m as g,nt as _,ot as v,rt as y,st as b,vn as x,xn as S,xt as C,zt as w}from"./client-DrrW410h.js";import{c as T,n as E,r as D,s as O,u as k}from"./Follower-D4pTNocL.js";import{a as A,o as j,t as M}from"./Scrollbar-DGnXZ64x.js";import{a as N,c as P,s as F}from"./ui-BXphkCO3.js";import{i as ee,n as I}from"./Suffix-1hsPP30m.js";import{i as L,o as R}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{B as te,Q as ne,V as re,at as z,lt as ie,nt as B,z as ae}from"./index-CvfVA1ID.js";function V(e,t){let{target:n}=e;for(;n;){if(n.dataset&&n.dataset[t]!==void 0)return!0;n=n.parentElement}return!1}function H(e){return e&-e}var U=class{constructor(e,t){this.l=e,this.min=t;let n=Array(e+1);for(let t=0;tr)throw Error("[FinweckTree.sum]: `i` is larger than length.");let i=e*n;for(;e>0;)i+=t[e],e-=H(e);return i}getBound(e){let t=0,n=this.l;for(;n>t;){let r=Math.floor((t+n)/2),i=this.sum(r);if(i>e){n=r;continue}else if(i`u`?!1:(W===void 0&&(W=`matchMedia`in window?window.matchMedia(`(pointer:coarse)`).matches:!1),W)}var K;function q(){return typeof document>`u`?1:(K===void 0&&(K=`chrome`in window?window.devicePixelRatio:1),K)}var J=`VVirtualListXScroll`;function Y({columnsRef:e,renderColRef:t,renderItemWithColsRef:n}){let r=x(0),i=x(0),a=C(()=>{let t=e.value;if(t.length===0)return null;let n=new U(t.length,0);return t.forEach((e,t)=>{n.add(t,e.width)}),n});return d(J,{startIndexRef:z(()=>{let e=a.value;return e===null?0:Math.max(e.getBound(i.value)-1,0)}),endIndexRef:z(()=>{let t=a.value;return t===null?0:Math.min(t.getBound(i.value+r.value)+1,e.value.length-1)}),columnsRef:e,renderColRef:t,renderItemWithColsRef:n,getLeft:e=>{let t=a.value;return t===null?0:t.sum(e)}}),{listWidthRef:r,scrollLeftRef:i}}var X=e({name:`VirtualListRow`,props:{index:{type:Number,required:!0},item:{type:Object,required:!0}},setup(){let{startIndexRef:e,endIndexRef:t,columnsRef:r,getLeft:i,renderColRef:a,renderItemWithColsRef:o}=n(J);return{startIndex:e,endIndex:t,columns:r,renderCol:a,renderItemWithCols:o,getLeft:i}},render(){let{startIndex:e,endIndex:t,columns:n,renderCol:r,renderItemWithCols:i,getLeft:a,item:o}=this;if(i!=null)return i({itemIndex:this.index,startColIndex:e,endColIndex:t,allColumns:n,item:o,getLeft:a});if(r!=null){let i=[];for(let s=e;s<=t;++s){let e=n[s];i.push(r({column:e,left:a(s),item:o}))}return i}return null}}),oe=E(`.v-vl`,{maxHeight:`inherit`,height:`100%`,overflow:`auto`,minWidth:`1px`},[E(`&:not(.v-vl--show-scrollbar)`,{scrollbarWidth:`none`},[E(`&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb`,{width:0,height:0,display:`none`})])]),se=e({name:`VirtualList`,inheritAttrs:!1,props:{showScrollbar:{type:Boolean,default:!0},columns:{type:Array,default:()=>[]},renderCol:Function,renderItemWithCols:Function,items:{type:Array,default:()=>[]},itemSize:{type:Number,required:!0},itemResizable:Boolean,itemsStyle:[String,Object],visibleItemsTag:{type:[String,Object],default:`div`},visibleItemsProps:Object,ignoreItemResize:Boolean,onScroll:Function,onWheel:Function,onResize:Function,defaultScrollKey:[Number,String],defaultScrollIndex:Number,keyField:{type:String,default:`key`},paddingTop:{type:[Number,String],default:0},paddingBottom:{type:[Number,String],default:0}},setup(e){let n=u();oe.mount({id:`vueuc/virtual-list`,head:!0,anchorMetaName:D,ssr:n}),r(()=>{let{defaultScrollIndex:t,defaultScrollKey:n}=e;t==null?n!=null&&b({key:n}):b({index:t})});let i=!1,a=!1;t(()=>{if(i=!1,!a){a=!0;return}b({top:_.value,left:c.value})}),l(()=>{i=!0,a||=!0});let o=z(()=>{if(e.renderCol==null&&e.renderItemWithCols==null||e.columns.length===0)return;let t=0;return e.columns.forEach(e=>{t+=e.width}),t}),s=C(()=>{let t=new Map,{keyField:n}=e;return e.items.forEach((e,r)=>{t.set(e[n],r)}),t}),{scrollLeftRef:c,listWidthRef:d}=Y({columnsRef:S(e,`columns`),renderColRef:S(e,`renderCol`),renderItemWithColsRef:S(e,`renderItemWithCols`)}),f=x(null),p=x(void 0),m=new Map,h=C(()=>{let{items:t,itemSize:n,keyField:r}=e,i=new U(t.length,n);return t.forEach((e,t)=>{let n=e[r],a=m.get(n);a!==void 0&&i.add(t,a)}),i}),g=x(0),_=x(0),v=z(()=>Math.max(h.value.getBound(_.value-N(e.paddingTop))-1,0)),y=C(()=>{let{value:t}=p;if(t===void 0)return[];let{items:n,itemSize:r}=e,i=v.value,a=Math.min(i+Math.ceil(t/r+1),n.length-1),o=[];for(let e=i;e<=a;++e)o.push(n[e]);return o}),b=(e,t)=>{if(typeof e==`number`){O(e,t,`auto`);return}let{left:n,top:r,index:i,key:a,position:o,behavior:c,debounce:l=!0}=e;if(n!==void 0||r!==void 0)O(n,r,c);else if(i!==void 0)E(i,c,l);else if(a!==void 0){let e=s.value.get(a);e!==void 0&&E(e,c,l)}else o===`bottom`?O(0,2**53-1,c):o===`top`&&O(0,0,c)},w,T=null;function E(t,n,r){let{value:i}=h,a=i.sum(t)+N(e.paddingTop);if(!r)f.value.scrollTo({left:0,top:a,behavior:n});else{w=t,T!==null&&window.clearTimeout(T),T=window.setTimeout(()=>{w=void 0,T=null},16);let{scrollTop:e,offsetHeight:r}=f.value;if(a>e){let o=i.get(t);a+o<=e+r||f.value.scrollTo({left:0,top:a+o-r,behavior:n})}else f.value.scrollTo({left:0,top:a,behavior:n})}}function O(e,t,n){f.value.scrollTo({left:e,top:t,behavior:n})}function A(t,n){if(i||e.ignoreItemResize||R(n.target))return;let{value:r}=h,a=s.value.get(t),o=r.get(a),c=n.borderBoxSize?.[0]?.blockSize??n.contentRect.height;if(c===o)return;c-e.itemSize===0?m.delete(t):m.set(t,c-e.itemSize);let l=c-o;if(l===0)return;r.add(a,l);let u=f.value;if(u!=null){if(w===void 0){let e=r.sum(a);u.scrollTop>e&&u.scrollBy(0,l)}else(au.scrollTop+u.offsetHeight)&&u.scrollBy(0,l);L()}g.value++}let j=!G(),M=!1;function F(t){var n;(n=e.onScroll)==null||n.call(e,t),(!j||!M)&&L()}function ee(t){var n;if((n=e.onWheel)==null||n.call(e,t),j){let e=f.value;if(e!=null){if(t.deltaX===0&&(e.scrollTop===0&&t.deltaY<=0||e.scrollTop+e.offsetHeight>=e.scrollHeight&&t.deltaY>=0))return;t.preventDefault(),e.scrollTop+=t.deltaY/q(),e.scrollLeft+=t.deltaX/q(),L(),M=!0,k(()=>{M=!1})}}}function I(t){if(i||R(t.target))return;if(e.renderCol==null&&e.renderItemWithCols==null){if(t.contentRect.height===p.value)return}else if(t.contentRect.height===p.value&&t.contentRect.width===d.value)return;p.value=t.contentRect.height,d.value=t.contentRect.width;let{onResize:n}=e;n!==void 0&&n(t)}function L(){let{value:e}=f;e!=null&&(_.value=e.scrollTop,c.value=e.scrollLeft)}function R(e){let t=e;for(;t!==null;){if(t.style.display===`none`)return!0;t=t.parentElement}return!1}return{listHeight:p,listStyle:{overflow:`auto`},keyToIndex:s,itemsStyle:C(()=>{let{itemResizable:t}=e,n=P(h.value.sum());return g.value,[e.itemsStyle,{boxSizing:`content-box`,width:P(o.value),height:t?``:n,minHeight:t?n:``,paddingTop:P(e.paddingTop),paddingBottom:P(e.paddingBottom)}]}),visibleItemsStyle:C(()=>(g.value,{transform:`translateY(${P(h.value.sum(v.value))})`})),viewportItems:y,listElRef:f,itemsElRef:x(null),scrollTo:b,handleListResize:I,handleListScroll:F,handleListWheel:ee,handleItemResize:A}},render(){let{itemResizable:e,keyField:t,keyToIndex:n,visibleItemsTag:r}=this;return a(A,{onResize:this.handleListResize},{default:()=>{var i;return a(`div`,o(this.$attrs,{class:[`v-vl`,this.showScrollbar&&`v-vl--show-scrollbar`],onScroll:this.handleListScroll,onWheel:this.handleListWheel,ref:`listElRef`}),[this.items.length===0?(i=this.$slots).empty?.call(i):a(`div`,{ref:`itemsElRef`,class:`v-vl-items`,style:this.itemsStyle},[a(r,Object.assign({class:`v-vl-visible-items`,style:this.visibleItemsStyle},this.visibleItemsProps),{default:()=>{let{renderCol:r,renderItemWithCols:i}=this;return this.viewportItems.map(o=>{let s=o[t],c=n.get(s),l=r==null?void 0:a(X,{index:c,item:o}),u=i==null?void 0:a(X,{index:c,item:o}),d=this.$slots.default({item:o,renderedCols:l,renderedItemWithCols:u,index:c})[0];return e?a(A,{key:s,onResize:e=>this.handleItemResize(s,e)},{default:()=>d}):(d.key=s,d)})}})])])}})}});function ce(e,t){t&&(r(()=>{let{value:n}=e;n&&j.registerHandler(n,t)}),h(e,(e,t)=>{t&&j.unregisterHandler(t)},{deep:!1}),i(()=>{let{value:t}=e;t&&j.unregisterHandler(t)}))}function Z(e){let t=e.filter(e=>e!==void 0);if(t.length!==0)return t.length===1?t[0]:t=>{e.forEach(e=>{e&&e(t)})}}var le=e({name:`Checkmark`,render(){return a(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 16 16`},a(`g`,{fill:`none`},a(`path`,{d:`M14.046 3.486a.75.75 0 0 1-.032 1.06l-7.93 7.474a.85.85 0 0 1-1.188-.022l-2.68-2.72a.75.75 0 1 1 1.068-1.053l2.234 2.267l7.468-7.038a.75.75 0 0 1 1.06.032z`,fill:`currentColor`})))}}),ue=e({name:`Empty`,render(){return a(`svg`,{viewBox:`0 0 28 28`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},a(`path`,{d:`M26 7.5C26 11.0899 23.0899 14 19.5 14C15.9101 14 13 11.0899 13 7.5C13 3.91015 15.9101 1 19.5 1C23.0899 1 26 3.91015 26 7.5ZM16.8536 4.14645C16.6583 3.95118 16.3417 3.95118 16.1464 4.14645C15.9512 4.34171 15.9512 4.65829 16.1464 4.85355L18.7929 7.5L16.1464 10.1464C15.9512 10.3417 15.9512 10.6583 16.1464 10.8536C16.3417 11.0488 16.6583 11.0488 16.8536 10.8536L19.5 8.20711L22.1464 10.8536C22.3417 11.0488 22.6583 11.0488 22.8536 10.8536C23.0488 10.6583 23.0488 10.3417 22.8536 10.1464L20.2071 7.5L22.8536 4.85355C23.0488 4.65829 23.0488 4.34171 22.8536 4.14645C22.6583 3.95118 22.3417 3.95118 22.1464 4.14645L19.5 6.79289L16.8536 4.14645Z`,fill:`currentColor`}),a(`path`,{d:`M25 22.75V12.5991C24.5572 13.0765 24.053 13.4961 23.5 13.8454V16H17.5L17.3982 16.0068C17.0322 16.0565 16.75 16.3703 16.75 16.75C16.75 18.2688 15.5188 19.5 14 19.5C12.4812 19.5 11.25 18.2688 11.25 16.75L11.2432 16.6482C11.1935 16.2822 10.8797 16 10.5 16H4.5V7.25C4.5 6.2835 5.2835 5.5 6.25 5.5H12.2696C12.4146 4.97463 12.6153 4.47237 12.865 4H6.25C4.45507 4 3 5.45507 3 7.25V22.75C3 24.5449 4.45507 26 6.25 26H21.75C23.5449 26 25 24.5449 25 22.75ZM4.5 22.75V17.5H9.81597L9.85751 17.7041C10.2905 19.5919 11.9808 21 14 21L14.215 20.9947C16.2095 20.8953 17.842 19.4209 18.184 17.5H23.5V22.75C23.5 23.7165 22.7165 24.5 21.75 24.5H6.25C5.2835 24.5 4.5 23.7165 4.5 22.75Z`,fill:`currentColor`}))}}),de=e({props:{onFocus:Function,onBlur:Function},setup(e){return()=>a(`div`,{style:`width: 0; height: 0`,tabindex:0,onFocus:e.onFocus,onBlur:e.onBlur})}});function fe(e){return Array.isArray(e)?e:[e]}var pe={STOP:`STOP`};function me(e,t){let n=t(e);e.children!==void 0&&n!==pe.STOP&&e.children.forEach(e=>me(e,t))}function he(e,t={}){let{preserveGroup:n=!1}=t,r=[],i=n?e=>{e.isLeaf||(r.push(e.key),a(e.children))}:e=>{e.isLeaf||(e.isGroup||r.push(e.key),a(e.children))};function a(e){e.forEach(i)}return a(e),r}function ge(e,t){let{isLeaf:n}=e;return n===void 0?!t(e):n}function _e(e){return e.children}function ve(e){return e.key}function ye(){return!1}function be(e,t){let{isLeaf:n}=e;return!(n===!1&&!Array.isArray(t(e)))}function xe(e){return e.disabled===!0}function Se(e,t){return e.isLeaf===!1&&!Array.isArray(t(e))}function Ce(e){return e==null?[]:Array.isArray(e)?e:e.checkedKeys??[]}function we(e){return e==null||Array.isArray(e)?[]:e.indeterminateKeys??[]}function Te(e,t){let n=new Set(e);return t.forEach(e=>{n.has(e)||n.add(e)}),Array.from(n)}function Ee(e,t){let n=new Set(e);return t.forEach(e=>{n.has(e)&&n.delete(e)}),Array.from(n)}function De(e){return e?.type===`group`}function Oe(e){let t=new Map;return e.forEach((e,n)=>{t.set(e.key,n)}),e=>t.get(e)??null}var ke=class extends Error{constructor(){super(),this.message=`SubtreeNotLoadedError: checking a subtree whose required nodes are not fully loaded.`}};function Ae(e,t,n,r){return Q(t.concat(e),n,r,!1)}function je(e,t){let n=new Set;return e.forEach(e=>{let r=t.treeNodeMap.get(e);if(r!==void 0){let e=r.parent;for(;e!==null&&!(e.disabled||n.has(e.key));)n.add(e.key),e=e.parent}}),n}function Me(e,t,n,r){let i=Q(t,n,r,!1),a=Q(e,n,r,!0),o=je(e,n),s=[];return i.forEach(e=>{(a.has(e)||o.has(e))&&s.push(e)}),s.forEach(e=>i.delete(e)),i}function Ne(e,t){let{checkedKeys:n,keysToCheck:r,keysToUncheck:i,indeterminateKeys:a,cascade:o,leafOnly:s,checkStrategy:c,allowNotLoaded:l}=e;if(!o)return r===void 0?i===void 0?{checkedKeys:Array.from(n),indeterminateKeys:Array.from(a)}:{checkedKeys:Ee(n,i),indeterminateKeys:Array.from(a)}:{checkedKeys:Te(n,r),indeterminateKeys:Array.from(a)};let{levelTreeNodeMap:u}=t,d;d=i===void 0?r===void 0?Q(n,t,l,!1):Ae(r,n,t,l):Me(i,n,t,l);let f=c===`parent`,p=c===`child`||s,m=d,h=new Set,g=Math.max.apply(null,Array.from(u.keys()));for(let e=g;e>=0;--e){let t=e===0,n=u.get(e);for(let e of n){if(e.isLeaf)continue;let{key:n,shallowLoaded:r}=e;if(p&&r&&e.children.forEach(e=>{!e.disabled&&!e.isLeaf&&e.shallowLoaded&&m.has(e.key)&&m.delete(e.key)}),e.disabled||!r)continue;let i=!0,a=!1,o=!0;for(let t of e.children){let e=t.key;if(!t.disabled){if(o&&=!1,m.has(e))a=!0;else if(h.has(e)){a=!0,i=!1;break}else if(i=!1,a)break}}i&&!o?(f&&e.children.forEach(e=>{!e.disabled&&m.has(e.key)&&m.delete(e.key)}),m.add(n)):a&&h.add(n),t&&p&&m.has(n)&&m.delete(n)}}return{checkedKeys:Array.from(m),indeterminateKeys:Array.from(h)}}function Q(e,t,n,r){let{treeNodeMap:i,getChildren:a}=t,o=new Set,s=new Set(e);return e.forEach(e=>{let t=i.get(e);t!==void 0&&me(t,e=>{if(e.disabled)return pe.STOP;let{key:t}=e;if(!o.has(t)&&(o.add(t),s.add(t),Se(e.rawNode,a))){if(r)return pe.STOP;if(!n)throw new ke}})}),s}function Pe(e,{includeGroup:t=!1,includeSelf:n=!0},r){let i=r.treeNodeMap,a=e==null?null:i.get(e)??null,o={keyPath:[],treeNodePath:[],treeNode:a};if(a?.ignored)return o.treeNode=null,o;for(;a;)!a.ignored&&(t||!a.isGroup)&&o.treeNodePath.push(a),a=a.parent;return o.treeNodePath.reverse(),n||o.treeNodePath.pop(),o.keyPath=o.treeNodePath.map(e=>e.key),o}function Fe(e){if(e.length===0)return null;let t=e[0];return t.isGroup||t.ignored||t.disabled?t.getNext():t}function Ie(e,t){let n=e.siblings,r=n.length,{index:i}=e;return t?n[(i+1)%r]:i===n.length-1?null:n[i+1]}function Le(e,t,{loop:n=!1,includeDisabled:r=!1}={}){let i=t===`prev`?Re:Ie,a={reverse:t===`prev`},o=!1,s=null;function c(t){if(t!==null){if(t===e){if(!o)o=!0;else if(!e.disabled&&!e.isGroup){s=e;return}}else if((!t.disabled||r)&&!t.ignored&&!t.isGroup){s=t;return}if(t.isGroup){let e=Be(t,a);e===null?c(i(t,n)):s=e}else{let e=i(t,!1);if(e!==null)c(e);else{let e=ze(t);e?.isGroup?c(i(e,n)):n&&c(i(t,!0))}}}}return c(e),s}function Re(e,t){let n=e.siblings,r=n.length,{index:i}=e;return t?n[(i-1+r)%r]:i===0?null:n[i-1]}function ze(e){return e.parent}function Be(e,t={}){let{reverse:n=!1}=t,{children:r}=e;if(r){let{length:e}=r,i=n?e-1:0,a=n?-1:e,o=n?-1:1;for(let e=i;e!==a;e+=o){let n=r[e];if(!n.disabled&&!n.ignored)if(n.isGroup){let e=Be(n,t);if(e!==null)return e}else return n}}return null}var Ve={getChild(){return this.ignored?null:Be(this)},getParent(){let{parent:e}=this;return e?.isGroup?e.getParent():e},getNext(e={}){return Le(this,`next`,e)},getPrev(e={}){return Le(this,`prev`,e)}};function He(e,t){let n=t?new Set(t):void 0,r=[];function i(e){e.forEach(e=>{r.push(e),!(e.isLeaf||!e.children||e.ignored)&&(e.isGroup||n===void 0||n.has(e.key))&&i(e.children)})}return i(e),r}function Ue(e,t){let n=e.key;for(;t;){if(t.key===n)return!0;t=t.parent}return!1}function We(e,t,n,r,i,a=null,o=0){let s=[];return e.forEach((c,l)=>{var u;let d=Object.create(r);if(d.rawNode=c,d.siblings=s,d.level=o,d.index=l,d.isFirstChild=l===0,d.isLastChild=l+1===e.length,d.parent=a,!d.ignored){let e=i(c);Array.isArray(e)&&(d.children=We(e,t,n,r,i,d,o+1))}s.push(d),t.set(d.key,d),n.has(o)||n.set(o,[]),(u=n.get(o))==null||u.push(d)}),s}function Ge(e,t={}){let n=new Map,r=new Map,{getDisabled:i=xe,getIgnored:a=ye,getIsGroup:o=De,getKey:s=ve}=t,c=t.getChildren??_e,l=t.ignoreEmptyChildren?e=>{let t=c(e);return Array.isArray(t)?t.length?t:null:t}:c,u=We(e,n,r,Object.assign({get key(){return s(this.rawNode)},get disabled(){return i(this.rawNode)},get isGroup(){return o(this.rawNode)},get isLeaf(){return ge(this.rawNode,l)},get shallowLoaded(){return be(this.rawNode,l)},get ignored(){return a(this.rawNode)},contains(e){return Ue(this,e)}},Ve),l);function d(e){if(e==null)return null;let t=n.get(e);return t&&!t.isGroup&&!t.ignored?t:null}function f(e){if(e==null)return null;let t=n.get(e);return t&&!t.ignored?t:null}function p(e,t){let n=f(e);return n?n.getPrev(t):null}function m(e,t){let n=f(e);return n?n.getNext(t):null}function h(e){let t=f(e);return t?t.getParent():null}function g(e){let t=f(e);return t?t.getChild():null}let _={treeNodes:u,treeNodeMap:n,levelTreeNodeMap:r,maxLevel:Math.max(...r.keys()),getChildren:l,getFlattenedNodes(e){return He(u,e)},getNode:d,getPrev:p,getNext:m,getParent:h,getChild:g,getFirstAvailableNode(){return Fe(u)},getPath(e,t={}){return Pe(e,t,_)},getCheckedKeys(e,t={}){let{cascade:n=!0,leafOnly:r=!1,checkStrategy:i=`all`,allowNotLoaded:a=!1}=t;return Ne({checkedKeys:Ce(e),indeterminateKeys:we(e),cascade:n,leafOnly:r,checkStrategy:i,allowNotLoaded:a},_)},check(e,t,n={}){let{cascade:r=!0,leafOnly:i=!1,checkStrategy:a=`all`,allowNotLoaded:o=!1}=n;return Ne({checkedKeys:Ce(t),indeterminateKeys:we(t),keysToCheck:e==null?[]:fe(e),cascade:r,leafOnly:i,checkStrategy:a,allowNotLoaded:o},_)},uncheck(e,t,n={}){let{cascade:r=!0,leafOnly:i=!1,checkStrategy:a=`all`,allowNotLoaded:o=!1}=n;return Ne({checkedKeys:Ce(t),indeterminateKeys:we(t),keysToUncheck:e==null?[]:fe(e),cascade:r,leafOnly:i,checkStrategy:a,allowNotLoaded:o},_)},getNonLeafKeys(e={}){return he(u,e)}};return _}var Ke=y(`empty`,` display: flex; flex-direction: column; align-items: center; diff --git a/frontend/dist/index.html b/frontend/dist/index.html index db60a62..898059d 100644 --- a/frontend/dist/index.html +++ b/frontend/dist/index.html @@ -5,7 +5,7 @@ Вечерний детектив - +