295 lines
132 KiB
JavaScript
295 lines
132 KiB
JavaScript
import{Bn as e,Ct as t,Dt as n,Gt as r,H as i,Ht as a,It as o,Jt as s,K as c,Mt as l,Ot as u,Pt as d,Q as f,Qt as p,Rn as m,Rt as h,Sn as g,St as _,U as v,Vt as y,Wt as b,Xt as x,Y as S,Yt as C,_n as w,at as T,bn as E,bt as D,ct as O,d as k,f as A,g as j,ht as M,it as N,kt as P,l as ee,lt as te,mn as ne,nt as F,on as I,ot as re,p as ie,qt as L,rn as ae,sn as oe,st as se,tn as ce,tt as R,u as le,wt as z,xt as B,zn as ue}from"./client-Cla4nwje.js";import{a as de,i as fe,o as pe,t as me}from"./Follower-DWxDqXiH.js";import{d as he}from"./utils-CHX2YzAW.js";import{d as ge,s as _e,t as ve,u as ye}from"./Card-4DjzIxun.js";import{i as be,n as V,r as xe,t as Se}from"./ui-DEaRtHGn.js";import{i as Ce,n as H,w as we}from"./Suffix-CwgyECAu.js";import{t as Te}from"./Modal-nuK96SRD.js";import{t as Ee}from"./use-merged-state-CUjBEXGr.js";import{n as U,t as W}from"./Button-CO8jWHc6.js";import{n as De,t as Oe}from"./Popover-BgjicTB8.js";import{t as ke}from"./keep-BN7wbZ-H.js";import{n as Ae,t as je}from"./Tabs-CwfU-ea3.js";import{t as Me}from"./Select-ChJX7zEq.js";import{a as Ne,c as G,i as Pe,o as Fe,s as Ie,t as Le}from"./_plugin-vue_export-helper-B7eW7EFJ.js";import{t as Re}from"./Upload-D8piM_PS.js";import{n as ze}from"./use-form-item-CLnY4YBF.js";import{t as Be}from"./Add-C1fA8bsS.js";import{t as Ve}from"./Input-DgjzQgV4.js";import{t as He}from"./Remove-BjQxGX6n.js";import{t as K}from"./Alert-DvJHNok4.js";import{t as q}from"./Space-DrAReMRX.js";import{t as J}from"./Flex-BHOH2CnH.js";import{t as Ue}from"./Rate-N4eDJVtn.js";import{t as We}from"./QrCode-Bpn3d7Xa.js";import{t as Ge}from"./Spin-CgEUbJlh.js";import{t as Ke}from"./text-kNJZsdRI.js";import{A as qe,G as Je,H as Ye,M as Xe,N as Ze,O as Qe,Z as $e,at as et,ct as tt,dt as nt,ft as rt,h as it,i as at,it as Y,nt as ot,o as st,p as ct,pt as lt,r as ut,rt as dt,u as ft}from"./index-Ew5kbqon.js";import{t as pt}from"./HeaderMenu-JIl2V8pE.js";import{t as mt}from"./binary_client-BQlWWiFb.js";import{n as ht,r as gt}from"./application-i1Z_D_jG.js";import{i as _t,n as vt,r as yt,t as bt}from"./ScreenPreview-C9-EnGe4.js";import{n as xt,t as St}from"./datetime-BJNH0M1T.js";import{t as Ct}from"./useDeviceContext-Bf2RvCIa.js";var X=P({name:`ChevronLeft`,render(){return l(`svg`,{viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},l(`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`}))}}),wt=P({name:`ChevronRight`,render(){return l(`svg`,{viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},l(`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`}))}}),Tt=F(`collapse`,`width: 100%;`,[F(`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);
|
||
`,[T(`disabled`,[N(`header`,`cursor: not-allowed;`,[N(`header-main`,`
|
||
color: var(--n-title-text-color-disabled);
|
||
`),F(`collapse-item-arrow`,`
|
||
color: var(--n-arrow-color-disabled);
|
||
`)])]),F(`collapse-item`,`margin-left: 32px;`),R(`&:first-child`,`margin-top: 0;`),R(`&:first-child >`,[N(`header`,`padding-top: 0;`)]),T(`left-arrow-placement`,[N(`header`,[F(`collapse-item-arrow`,`margin-right: 4px;`)])]),T(`right-arrow-placement`,[N(`header`,[F(`collapse-item-arrow`,`margin-left: 4px;`)])]),N(`content-wrapper`,[N(`content-inner`,`padding-top: 16px;`),Ze({duration:`0.15s`})]),T(`active`,[N(`header`,[T(`active`,[F(`collapse-item-arrow`,`transform: rotate(90deg);`)])])]),R(`&:not(:first-child)`,`border-top: 1px solid var(--n-divider-color);`),re(`disabled`,[T(`trigger-area-main`,[N(`header`,[N(`header-main`,`cursor: pointer;`),F(`collapse-item-arrow`,`cursor: default;`)])]),T(`trigger-area-arrow`,[N(`header`,[F(`collapse-item-arrow`,`cursor: pointer;`)])]),T(`trigger-area-extra`,[N(`header`,[N(`header-extra`,`cursor: pointer;`)])])]),N(`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);
|
||
`,[N(`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);
|
||
`),N(`header-extra`,`
|
||
display: flex;
|
||
align-items: center;
|
||
transition: color .3s var(--n-bezier);
|
||
color: var(--n-text-color);
|
||
`),F(`collapse-item-arrow`,`
|
||
display: flex;
|
||
transition:
|
||
transform .15s var(--n-bezier),
|
||
color .3s var(--n-bezier);
|
||
font-size: 18px;
|
||
color: var(--n-arrow-color);
|
||
`)])])]),Z=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}}),Et=S(`n-collapse`),Dt=P({name:`Collapse`,props:Z,slots:Object,setup(e,{slots:t}){let{mergedClsPrefixRef:n,inlineThemeDisabled:r,mergedRtlRef:a}=v(e),o=w(e.defaultExpandedNames),c=Ee(D(()=>e.expandedNames),o),l=ie(`Collapse`,`-collapse`,Tt,Qe,e,n);function u(t){let{"onUpdate:expandedNames":n,onUpdateExpandedNames:r,onExpandedNamesChange:i}=e;r&&G(r,t),n&&G(n,t),i&&G(i,t),o.value=t}function d(t){let{onItemHeaderClick:n}=e;n&&G(n,t)}function f(t,n,r){let{accordion:i}=e,{value:a}=c;if(i)t?(u([n]),d({name:n,expanded:!0,event:r})):(u([]),d({name:n,expanded:!1,event:r}));else if(!Array.isArray(a))u([n]),d({name:n,expanded:!0,event:r});else{let e=a.slice(),t=e.findIndex(e=>n===e);~t?(e.splice(t,1),u(e),d({name:n,expanded:!1,event:r})):(e.push(n),u(e),d({name:n,expanded:!0,event:r}))}}s(Et,{props:e,mergedClsPrefixRef:n,expandedNamesRef:c,slots:t,toggleItem:f});let p=j(`Collapse`,a,n),m=D(()=>{let{common:{cubicBezierEaseInOut:e},self:{titleFontWeight:t,dividerColor:n,titlePadding:r,titleTextColor:i,titleTextColorDisabled:a,textColor:o,arrowColor:s,fontSize:c,titleFontSize:u,arrowColorDisabled:d,itemMargin:f}}=l.value;return{"--n-font-size":c,"--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":s,"--n-arrow-color-disabled":d,"--n-item-margin":f}}),h=r?i(`collapse`,void 0,m,e):void 0;return{rtlEnabled:p,mergedTheme:l,mergedClsPrefix:n,cssVars:r?void 0:m,themeClass:h?.themeClass,onRender:h?.onRender}},render(){var e;return(e=this.onRender)==null||e.call(this),l(`div`,{class:[`${this.mergedClsPrefix}-collapse`,this.rtlEnabled&&`${this.mergedClsPrefix}-collapse--rtl`,this.themeClass],style:this.cssVars},this.$slots)}}),Ot=P({name:`CollapseItemContent`,props:{displayDirective:{type:String,required:!0},show:Boolean,clsPrefix:{type:String,required:!0}},setup(e){return{onceTrue:we(E(e,`show`))}},render(){return l(Ye,null,{default:()=>{let{show:e,displayDirective:t,onceTrue:n,clsPrefix:r}=this,i=t===`show`&&n,a=l(`div`,{class:`${r}-collapse-item__content-wrapper`},l(`div`,{class:`${r}-collapse-item__content-inner`},this.$slots));return i?oe(a,[[nt,e]]):e?a:null}})}}),Q=P({name:`CollapseItem`,props:{title:String,name:[String,Number],disabled:Boolean,displayDirective:String},setup(e){let{mergedRtlRef:t}=v(e),n=et(),r=Y(()=>e.name??n),i=d(Et);i||c(`collapse-item`,"`n-collapse-item` must be placed inside `n-collapse`.");let{expandedNamesRef:a,props:o,mergedClsPrefixRef:s,slots:l}=i,u=D(()=>{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:j(`Collapse`,t,s),collapseSlots:l,randomName:n,mergedClsPrefix:s,collapsed:u,triggerAreas:E(o,`triggerAreas`),mergedDisplayDirective:D(()=>{let{displayDirective:t}=e;return t||o.displayDirective}),arrowPlacement:D(()=>o.arrowPlacement),handleClick(t){let n=`main`;he(t,`arrow`)&&(n=`arrow`),he(t,`extra`)&&(n=`extra`),o.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=Ne(t.header,{collapsed:r},()=>[this.title]),u=t[`header-extra`]||e[`header-extra`],d=t.arrow||e.arrow;return l(`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}`)]},l(`div`,{class:[`${a}-collapse-item__header`,!r&&`${a}-collapse-item__header--active`]},l(`div`,{class:`${a}-collapse-item__header-main`,onClick:this.handleClick},n===`right`&&c,l(`div`,{class:`${a}-collapse-item-arrow`,key:+!this.rtlEnabled,"data-arrow":!0},Ne(d,{collapsed:r},()=>[l($e,{clsPrefix:a},{default:()=>this.rtlEnabled?l(X,null):l(wt,null)})])),n===`left`&&c),Ie(u,{collapsed:r},e=>l(`div`,{class:`${a}-collapse-item__header-extra`,onClick:this.handleClick,"data-extra":!0},e))),l(Ot,{clsPrefix:a,displayDirective:i,show:!r},t))}});function kt(e){let{textColorDisabled:t}=e;return{iconColorDisabled:t}}var At=A({name:`InputNumber`,common:k,peers:{Button:qe,Input:Xe},self:kt});function jt(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({},ct),{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 Mt={name:`Slider`,common:k,self:jt},Nt=R([F(`input-number-suffix`,`
|
||
display: inline-block;
|
||
margin-right: 10px;
|
||
`),F(`input-number-prefix`,`
|
||
display: inline-block;
|
||
margin-left: 10px;
|
||
`)]);function Pt(e){return e==null||typeof e==`string`&&e.trim()===``?null:Number(e)}function Ft(e){return e.includes(`.`)&&(/^(-)?\d+.*(\.|0)$/.test(e)||/^-?\d*$/.test(e))||e===`-`||e===`-0`}function It(e){return e==null?!0:!Number.isNaN(e)}function Lt(e,t){return typeof e==`number`?t===void 0?String(e):e.toFixed(t):``}function Rt(e){if(e===null)return null;if(typeof e==`number`)return e;{let t=Number(e);return Number.isNaN(t)?null:t}}var zt=800,Bt=100,Vt=P({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(e){let{mergedBorderedRef:t,mergedClsPrefixRef:n,mergedRtlRef:r,mergedComponentPropsRef:i}=v(e),a=ie(`InputNumber`,`-input-number`,Nt,At,e,n),{localeRef:o}=Ce(`InputNumber`),s=ze(e,{mergedSize:t=>{let{size:n}=e;if(n)return n;let{mergedSize:r}=t||{};return r?.value?r.value:i?.value?.InputNumber?.size||`medium`}}),{mergedSizeRef:c,mergedDisabledRef:l,mergedStatusRef:u}=s,d=w(null),p=w(null),m=w(null),g=w(e.defaultValue),_=Ee(E(e,`value`),g),y=w(``),b=e=>{let t=String(e).split(`.`)[1];return t?t.length:0},x=t=>{let n=[e.min,e.max,e.step,t].map(e=>e===void 0?0:b(e));return Math.max(...n)},S=Y(()=>{let{placeholder:t}=e;return t===void 0?o.value.placeholder:t}),C=Y(()=>{let t=Rt(e.step);return t===null||t===0?1:Math.abs(t)}),T=Y(()=>{let t=Rt(e.min);return t===null?null:t}),O=Y(()=>{let t=Rt(e.max);return t===null?null:t}),k=()=>{let{value:t}=_;if(It(t)){let{format:n,precision:r}=e;n?y.value=n(t):t===null||r===void 0||b(t)>r?y.value=Lt(t,void 0):y.value=Lt(t,r)}else y.value=String(t)};k();let A=t=>{let{value:n}=_;if(t===n){k();return}let{"onUpdate:value":r,onUpdateValue:i,onChange:a}=e,{nTriggerFormInput:o,nTriggerFormChange:c}=s;a&&G(a,t),i&&G(i,t),r&&G(r,t),g.value=t,o(),c()},M=({offset:t,doUpdateIfValid:n,fixPrecision:r,isInputing:i})=>{let{value:a}=y;if(i&&Ft(a))return!1;let o=(e.parse||Pt)(a);if(o===null)return n&&A(null),null;if(It(o)){let a=b(o),{precision:s}=e;if(s!==void 0&&s<a&&!r)return!1;let c=Number.parseFloat((o+t).toFixed(s??x(o)));if(It(c)){let{value:t}=O,{value:r}=T;if(t!==null&&c>t){if(!n||i)return!1;c=t}if(r!==null&&c<r){if(!n||i)return!1;c=r}return e.validator&&!e.validator(c)?!1:(n&&A(c),c)}}return!1},N=Y(()=>M({offset:0,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})===!1),P=Y(()=>{let{value:t}=_;if(e.validator&&t===null)return!1;let{value:n}=C;return M({offset:-n,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})!==!1}),ee=Y(()=>{let{value:t}=_;if(e.validator&&t===null)return!1;let{value:n}=C;return M({offset:+n,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})!==!1});function te(t){let{onFocus:n}=e,{nTriggerFormFocus:r}=s;n&&G(n,t),r()}function ne(t){if(t.target===d.value?.wrapperElRef)return;let n=M({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0});if(n!==!1){let e=d.value?.inputElRef;e&&(e.value=String(n||``)),_.value===n&&k()}else k();let{onBlur:r}=e,{nTriggerFormBlur:i}=s;r&&G(r,t),i(),h(()=>{k()})}function F(t){let{onClear:n}=e;n&&G(n,t)}function I(){let{value:t}=ee;if(!t){fe();return}let{value:n}=_;if(n===null)e.validator||A(se());else{let{value:e}=C;M({offset:e,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})}}function re(){let{value:t}=P;if(!t){ue();return}let{value:n}=_;if(n===null)e.validator||A(se());else{let{value:e}=C;M({offset:-e,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})}}let L=te,oe=ne;function se(){if(e.validator)return null;let{value:t}=T,{value:n}=O;return t===null?n===null?0:Math.min(0,n):Math.max(0,t)}function ce(e){F(e),A(null)}function R(e){var t;m.value?.$el.contains(e.target)&&e.preventDefault(),p.value?.$el.contains(e.target)&&e.preventDefault(),(t=d.value)==null||t.activate()}let le=null,z=null,B=null;function ue(){B&&=(window.clearTimeout(B),null),le&&=(window.clearInterval(le),null)}let de=null;function fe(){de&&=(window.clearTimeout(de),null),z&&=(window.clearInterval(z),null)}function pe(){ue(),B=window.setTimeout(()=>{le=window.setInterval(()=>{re()},Bt)},zt),ge(`mouseup`,document,ue,{once:!0})}function me(){fe(),de=window.setTimeout(()=>{z=window.setInterval(()=>{I()},Bt)},zt),ge(`mouseup`,document,fe,{once:!0})}let he=()=>{z||I()},_e=()=>{le||re()};function ve(t){var n;if(t.key===`Enter`){if(t.target===d.value?.wrapperElRef)return;M({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&((n=d.value)==null||n.deactivate())}else if(t.key===`ArrowUp`){if(!ee.value||e.keyboard.ArrowUp===!1)return;t.preventDefault(),M({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&I()}else if(t.key===`ArrowDown`){if(!P.value||e.keyboard.ArrowDown===!1)return;t.preventDefault(),M({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&re()}}function ye(t){y.value=t,e.updateValueOnInput&&!e.format&&!e.parse&&e.precision===void 0&&M({offset:0,doUpdateIfValid:!0,isInputing:!0,fixPrecision:!1})}ae(_,()=>{k()});let be={focus:()=>d.value?.focus(),blur:()=>d.value?.blur(),select:()=>d.value?.select()},V=j(`InputNumber`,r,n);return Object.assign(Object.assign({},be),{rtlEnabled:V,inputInstRef:d,minusButtonInstRef:p,addButtonInstRef:m,mergedClsPrefix:n,mergedBordered:t,uncontrolledValue:g,mergedValue:_,mergedPlaceholder:S,displayedValueInvalid:N,mergedSize:c,mergedDisabled:l,displayedValue:y,addable:ee,minusable:P,mergedStatus:u,handleFocus:L,handleBlur:oe,handleClear:ce,handleMouseDown:R,handleAddClick:he,handleMinusClick:_e,handleAddMousedown:me,handleMinusMousedown:pe,handleKeyDown:ve,handleUpdateDisplayedValue:ye,mergedTheme:a,inputThemeOverrides:{paddingSmall:`0 8px 0 10px`,paddingMedium:`0 8px 0 12px`,paddingLarge:`0 8px 0 14px`},buttonThemeOverrides:D(()=>{let{self:{iconColorDisabled:e}}=a.value,[t,n,r,i]=f(e);return{textColorTextDisabled:`rgb(${t}, ${n}, ${r})`,opacityDisabled:`${i}`}})})},render(){let{mergedClsPrefix:e,$slots:t}=this,n=()=>l(U,{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:()=>Pe(t[`minus-icon`],()=>[l($e,{clsPrefix:e},{default:()=>l(He,null)})])}),r=()=>l(U,{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:()=>Pe(t[`add-icon`],()=>[l($e,{clsPrefix:e},{default:()=>l(Be,null)})])});return l(`div`,{class:[`${e}-input-number`,this.rtlEnabled&&`${e}-input-number--rtl`]},l(Ve,{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(),Fe(t.prefix,t=>t?l(`span`,{class:`${e}-input-number-prefix`},t):null)]:t.prefix?.call(t),suffix:()=>this.showButton?[Fe(t.suffix,t=>t?l(`span`,{class:`${e}-input-number-suffix`},t):null),this.buttonPlacement===`right`?n():null,r()]:t.suffix?.call(t)}))}}),Ht=S(`n-popconfirm`),Ut={positiveText:String,negativeText:String,showIcon:{type:Boolean,default:!0},onPositiveClick:{type:Function,required:!0},onNegativeClick:{type:Function,required:!0}},Wt=_e(Ut),Gt=P({name:`NPopconfirmPanel`,props:Ut,setup(e){let{localeRef:t}=Ce(`Popconfirm`),{inlineThemeDisabled:n}=v(),{mergedClsPrefixRef:r,mergedThemeRef:a,props:o}=d(Ht),s=D(()=>{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?i(`popconfirm-panel`,void 0,s,o):void 0;return Object.assign(Object.assign({},Ce(`Popconfirm`)),{mergedClsPrefix:r,cssVars:n?void 0:s,localizedPositiveText:D(()=>e.positiveText||t.value.positiveText),localizedNegativeText:D(()=>e.negativeText||t.value.negativeText),positiveButtonProps:E(o,`positiveButtonProps`),negativeButtonProps:E(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=Pe(r.action,()=>this.negativeText===null&&this.positiveText===null?[]:[this.negativeText!==null&&l(W,Object.assign({size:`small`,onClick:this.handleNegativeClick},this.negativeButtonProps),{default:()=>this.localizedNegativeText}),this.positiveText!==null&&l(W,Object.assign({size:`small`,type:`primary`,onClick:this.handlePositiveClick},this.positiveButtonProps),{default:()=>this.localizedPositiveText})]);return(e=this.onRender)==null||e.call(this),l(`div`,{class:[`${t}-popconfirm__panel`,this.themeClass],style:this.cssVars},Fe(r.default,e=>n||e?l(`div`,{class:`${t}-popconfirm__body`},n?l(`div`,{class:`${t}-popconfirm__icon`},Pe(r.icon,()=>[l($e,{clsPrefix:t},{default:()=>l(Je,null)})])):null,e):null),i?l(`div`,{class:[`${t}-popconfirm__action`]},i):null)}}),Kt=F(`popconfirm`,[N(`body`,`
|
||
font-size: var(--n-font-size);
|
||
display: flex;
|
||
align-items: center;
|
||
flex-wrap: nowrap;
|
||
position: relative;
|
||
`,[N(`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;
|
||
`)]),N(`action`,`
|
||
display: flex;
|
||
justify-content: flex-end;
|
||
`,[R(`&:not(:first-child)`,`margin-top: 8px`),F(`button`,[R(`&:not(:last-child)`,`margin-right: 8px;`)])])]),qt=P({name:`Popconfirm`,props:Object.assign(Object.assign(Object.assign({},ie.props),De),{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}=v(),n=ie(`Popconfirm`,`-popconfirm`,Kt,it,e,t),r=w(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&&G(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&&G(i,!1))})}return s(Ht,{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 l(Oe,Object.assign({},ot(t,Wt),{theme:n.peers.Popover,themeOverrides:n.peerOverrides.Popover,internalExtraClass:[`popconfirm`],ref:`popoverInstRef`}),{trigger:e.trigger,default:()=>{let n=ke(t,Wt);return l(Gt,Object.assign({},n,{onPositiveClick:this.handlePositiveClick,onNegativeClick:this.handleNegativeClick}),e)}})}}),Jt=R([F(`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;
|
||
`,[T(`reverse`,[F(`slider-handles`,[F(`slider-handle-wrapper`,`
|
||
transform: translate(50%, -50%);
|
||
`)]),F(`slider-dots`,[F(`slider-dot`,`
|
||
transform: translateX(50%, -50%);
|
||
`)]),T(`vertical`,[F(`slider-handles`,[F(`slider-handle-wrapper`,`
|
||
transform: translate(-50%, -50%);
|
||
`)]),F(`slider-marks`,[F(`slider-mark`,`
|
||
transform: translateY(calc(-50% + var(--n-dot-height) / 2));
|
||
`)]),F(`slider-dots`,[F(`slider-dot`,`
|
||
transform: translateX(-50%) translateY(0);
|
||
`)])])]),T(`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%;
|
||
`,[F(`slider-handles`,`
|
||
top: calc(var(--n-handle-size) / 2);
|
||
right: 0;
|
||
bottom: calc(var(--n-handle-size) / 2);
|
||
left: 0;
|
||
`,[F(`slider-handle-wrapper`,`
|
||
top: unset;
|
||
left: 50%;
|
||
transform: translate(-50%, 50%);
|
||
`)]),F(`slider-rail`,`
|
||
height: 100%;
|
||
`,[N(`fill`,`
|
||
top: unset;
|
||
right: 0;
|
||
bottom: unset;
|
||
left: 0;
|
||
`)]),T(`with-mark`,`
|
||
width: var(--n-rail-width-vertical);
|
||
margin: 0 32px 0 8px;
|
||
`),F(`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);
|
||
`,[F(`slider-mark`,`
|
||
transform: translateY(50%);
|
||
white-space: nowrap;
|
||
`)]),F(`slider-dots`,`
|
||
top: calc(var(--n-handle-size) / 2);
|
||
right: unset;
|
||
bottom: calc(var(--n-handle-size) / 2);
|
||
left: 50%;
|
||
`,[F(`slider-dot`,`
|
||
transform: translateX(-50%) translateY(50%);
|
||
`)])]),T(`disabled`,`
|
||
cursor: not-allowed;
|
||
opacity: var(--n-opacity-disabled);
|
||
`,[F(`slider-handle`,`
|
||
cursor: not-allowed;
|
||
`)]),T(`with-mark`,`
|
||
width: 100%;
|
||
margin: 8px 0 32px 0;
|
||
`),R(`&:hover`,[F(`slider-rail`,{backgroundColor:`var(--n-rail-color-hover)`},[N(`fill`,{backgroundColor:`var(--n-fill-color-hover)`})]),F(`slider-handle`,{boxShadow:`var(--n-handle-box-shadow-hover)`})]),T(`active`,[F(`slider-rail`,{backgroundColor:`var(--n-rail-color-hover)`},[N(`fill`,{backgroundColor:`var(--n-fill-color-hover)`})]),F(`slider-handle`,{boxShadow:`var(--n-handle-box-shadow-hover)`})]),F(`slider-marks`,`
|
||
position: absolute;
|
||
top: 18px;
|
||
left: calc(var(--n-handle-size) / 2);
|
||
right: calc(var(--n-handle-size) / 2);
|
||
`,[F(`slider-mark`,`
|
||
position: absolute;
|
||
transform: translateX(-50%);
|
||
white-space: nowrap;
|
||
`)]),F(`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);
|
||
`,[N(`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);
|
||
`)]),F(`slider-handles`,`
|
||
position: absolute;
|
||
top: 0;
|
||
right: calc(var(--n-handle-size) / 2);
|
||
bottom: 0;
|
||
left: calc(var(--n-handle-size) / 2);
|
||
`,[F(`slider-handle-wrapper`,`
|
||
outline: none;
|
||
position: absolute;
|
||
top: 50%;
|
||
transform: translate(-50%, -50%);
|
||
cursor: pointer;
|
||
display: flex;
|
||
`,[F(`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);
|
||
`,[R(`&:hover`,`
|
||
box-shadow: var(--n-handle-box-shadow-hover);
|
||
`)]),R(`&:focus`,[F(`slider-handle`,`
|
||
box-shadow: var(--n-handle-box-shadow-focus);
|
||
`,[R(`&:hover`,`
|
||
box-shadow: var(--n-handle-box-shadow-active);
|
||
`)])])])]),F(`slider-dots`,`
|
||
position: absolute;
|
||
top: 50%;
|
||
left: calc(var(--n-handle-size) / 2);
|
||
right: calc(var(--n-handle-size) / 2);
|
||
`,[T(`transition-disabled`,[F(`slider-dot`,`transition: none;`)]),F(`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);
|
||
`,[T(`active`,`border: var(--n-dot-border-active);`)])])]),F(`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);
|
||
`,[H()]),F(`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);
|
||
`,[T(`top`,`
|
||
margin-bottom: 12px;
|
||
`),T(`right`,`
|
||
margin-left: 12px;
|
||
`),T(`bottom`,`
|
||
margin-top: 12px;
|
||
`),T(`left`,`
|
||
margin-right: 12px;
|
||
`),H()]),O(F(`slider`,[F(`slider-dot`,`background-color: var(--n-dot-color-modal);`)])),te(F(`slider`,[F(`slider-dot`,`background-color: var(--n-dot-color-popover);`)]))]);function Yt(e){return window.TouchEvent&&e instanceof window.TouchEvent}function Xt(){let e=new Map;return a(()=>{e.clear()}),[e,t=>n=>{e.set(t,n)}]}var Zt=0,Qt=P({name:`Slider`,props:Object.assign(Object.assign({},ie.props),{to:pe.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}=v(e),a=ie(`Slider`,`-slider`,Jt,Mt,e,t),o=w(null),[s,c]=Xt(),[l,u]=Xt(),d=w(new Set),f=ze(e),{mergedDisabledRef:p}=f,m=D(()=>{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}),g=w(e.defaultValue),_=Ee(E(e,`value`),g),b=D(()=>{let{value:t}=_;return(e.range?t:[t]).map(ce)}),x=D(()=>b.value.length>2),S=D(()=>e.placement===void 0?e.vertical?`right`:`top`:e.placement),C=D(()=>{let{marks:t}=e;return t?Object.keys(t).map(Number.parseFloat):null}),T=w(-1),O=w(-1),k=w(-1),A=w(!1),j=w(!1),M=D(()=>{let{vertical:t,reverse:n}=e;return t?n?`top`:`bottom`:n?`right`:`left`}),N=D(()=>{if(x.value)return;let t=b.value,n=R(e.range?Math.min(...t):e.min),r=R(e.range?Math.max(...t):t[0]),{value:i}=M;return e.vertical?{[i]:`${n}%`,height:`${r-n}%`}:{[i]:`${n}%`,width:`${r-n}%`}}),P=D(()=>{let t=[],{marks:n}=e;if(n){let r=b.value.slice();r.sort((e,t)=>e-t);let{value:i}=M,{value:a}=x,{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]:`${R(r)}%`}})}}return t});function ee(e,t){let n=R(e),{value:r}=M;return{[r]:`${n}%`,zIndex:+(t===T.value)}}function te(t){return e.showTooltip||k.value===t||T.value===t&&A.value}function ne(e){return A.value?!(T.value===e&&O.value===e):!0}function F(e){var t;~e&&(T.value=e,(t=s.get(e))==null||t.focus())}function I(){l.forEach((e,t)=>{te(t)&&e.syncPosition()})}function re(t){let{"onUpdate:value":n,onUpdateValue:r}=e,{nTriggerFormInput:i,nTriggerFormChange:a}=f;r&&G(r,t),n&&G(n,t),g.value=t,i(),a()}function L(t){let{range:n}=e;if(n){if(Array.isArray(t)){let{value:e}=b;t.join()!==e.join()&&re(t)}}else Array.isArray(t)||b.value[0]!==t&&re(t)}function oe(t,n){if(e.range){let e=b.value.slice();e.splice(n,1,t),L(e)}else L(t)}function se(t,n,r){let i=r!==void 0;r||=t-n>0?1:-1;let a=C.value||[],{step:o}=e;if(o===`mark`){let e=B(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=e<t?t:t+1;c=B(n,[Number((i*o).toFixed(s)),Number((l*o).toFixed(s)),...a],r)}else{let e=z(t);c=B(t,[...a,e])}return c?ce(c.value):n}function ce(t){return Math.min(e.max,Math.max(e.min,t))}function R(t){let{max:n,min:r}=e;return(t-r)/(n-r)*100}function le(t){let{max:n,min:r}=e;return r+(n-r)*t}function z(t){let{step:n,min:r}=e;if(Number(n)<=0||n===`mark`)return t;let i=Math.round((t-r)/n)*n+r;return Number(i.toFixed(m.value))}function B(e,t=C.value,n){if(!t?.length)return null;let r=null,i=-1;for(;++i<t.length;){let a=t[i]-e,o=Math.abs(a);(n===void 0||a*n>0)&&(r===null||o<r.distance)&&(r={index:i,distance:o,value:t[i]})}return r}function ue(t){let n=o.value;if(!n)return;let r=Yt(t)?t.touches[0]:t,i=n.getBoundingClientRect(),a;return a=e.vertical?(i.bottom-r.clientY)/i.height:(r.clientX-i.left)/i.width,e.reverse&&(a=1-a),le(a)}function de(t){if(p.value||!e.keyboard)return;let{vertical:n,reverse:r}=e;switch(t.key){case`ArrowUp`:t.preventDefault(),fe(n&&r?-1:1);break;case`ArrowRight`:t.preventDefault(),fe(!n&&r?-1:1);break;case`ArrowDown`:t.preventDefault(),fe(n&&r?1:-1);break;case`ArrowLeft`:t.preventDefault(),fe(!n&&r?1:-1);break}}function fe(t){let n=T.value;if(n===-1)return;let{step:r}=e,i=b.value[n];oe(se(Number(r)<=0||r===`mark`?i:i+r*t,i,t>0?1:-1),n)}function me(t){if(p.value||!Yt(t)&&t.button!==Zt)return;let n=ue(t);if(n===void 0)return;let r=b.value.slice(),i=e.range?B(n,r)?.index??-1:0;i!==-1&&(t.preventDefault(),F(i),he(),oe(se(n,b.value[i]),i))}function he(){A.value||(A.value=!0,e.onDragstart&&G(e.onDragstart),ge(`touchend`,document,be),ge(`mouseup`,document,be),ge(`touchmove`,document,ve),ge(`mousemove`,document,ve))}function _e(){A.value&&(A.value=!1,e.onDragend&&G(e.onDragend),ye(`touchend`,document,be),ye(`mouseup`,document,be),ye(`touchmove`,document,ve),ye(`mousemove`,document,ve))}function ve(e){let{value:t}=T;if(!A.value||t===-1){_e();return}let n=ue(e);n!==void 0&&oe(se(n,b.value[t]),t)}function be(){_e()}function V(e){T.value=e,p.value||(k.value=e)}function xe(e){T.value===e&&(T.value=-1,_e()),k.value===e&&(k.value=-1)}function Se(e){k.value=e}function Ce(e){k.value===e&&(k.value=-1)}ae(T,(e,t)=>void h(()=>O.value=t)),ae(_,()=>{if(e.marks){if(j.value)return;j.value=!0,h(()=>{j.value=!1})}h(I)}),y(()=>{_e()});let H=D(()=>{let{self:{markFontSize:e,railColor:t,railColorHover:n,fillColor:r,fillColorHover:i,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}}=a.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":i,"--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}}),we=r?i(`slider`,void 0,H,e):void 0,Te=D(()=>{let{self:{fontSize:e,indicatorColor:t,indicatorBoxShadow:n,indicatorTextColor:r,indicatorBorderRadius:i}}=a.value;return{"--n-font-size":e,"--n-indicator-border-radius":i,"--n-indicator-box-shadow":n,"--n-indicator-color":t,"--n-indicator-text-color":r}}),U=r?i(`slider-indicator`,void 0,Te,e):void 0;return{mergedClsPrefix:t,namespace:n,uncontrolledValue:g,mergedValue:_,mergedDisabled:p,mergedPlacement:S,isMounted:dt(),adjustedTo:pe(e),dotTransitionDisabled:j,markInfos:P,isShowTooltip:te,shouldKeepTooltipTransition:ne,handleRailRef:o,setHandleRefs:c,setFollowerRefs:u,fillStyle:N,getHandleStyle:ee,activeIndex:T,arrifiedValues:b,followerEnabledIndexSet:d,handleRailMouseDown:me,handleHandleFocus:V,handleHandleBlur:xe,handleHandleMouseEnter:Se,handleHandleMouseLeave:Ce,handleRailKeyDown:de,indicatorCssVars:r?void 0:Te,indicatorThemeClass:U?.themeClass,indicatorOnRender:U?.onRender,cssVars:r?void 0:H,themeClass:we?.themeClass,onRender:we?.onRender}},render(){var e;let{mergedClsPrefix:t,themeClass:n,formatTooltip:r}=this;return(e=this.onRender)==null||e.call(this),l(`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},l(`div`,{class:`${t}-slider-rail`},l(`div`,{class:`${t}-slider-rail__fill`,style:this.fillStyle}),this.marks?l(`div`,{class:[`${t}-slider-dots`,this.dotTransitionDisabled&&`${t}-slider-dots--transition-disabled`]},this.markInfos.map(e=>l(`div`,{key:e.key,class:[`${t}-slider-dot`,{[`${t}-slider-dot--active`]:e.active}],style:e.style}))):null,l(`div`,{ref:`handleRailRef`,class:`${t}-slider-handles`},this.arrifiedValues.map((e,n)=>{let i=this.isShowTooltip(n);return l(de,null,{default:()=>[l(fe,null,{default:()=>l(`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)}},Pe(this.$slots.thumb,()=>[l(`div`,{class:`${t}-slider-handle`})]))}),this.tooltip&&l(me,{ref:this.setFollowerRefs(n),show:i,to:this.adjustedTo,enabled:this.showTooltip&&!this.range||this.followerEnabledIndexSet.has(n),teleportDisabled:this.adjustedTo===pe.tdkey,placement:this.mergedPlacement,containerClass:this.namespace},{default:()=>l(tt,{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),l(`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?l(`div`,{class:`${t}-slider-marks`},this.markInfos.map(e=>l(`div`,{key:e.key,class:`${t}-slider-mark`,style:e.style},typeof e.label==`function`?e.label():e.label))):null))}}),$t=R([F(`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);
|
||
`,[R(`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);
|
||
`,[R(`&:last-child`,`
|
||
border-right: 0px solid var(--n-merged-border-color);
|
||
`)]),R(`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);
|
||
`,[R(`&:last-child`,`
|
||
border-right: 0px solid var(--n-merged-border-color);
|
||
`)]),T(`bordered`,`
|
||
border: 1px solid var(--n-merged-border-color);
|
||
border-radius: var(--n-border-radius);
|
||
`,[R(`tr`,[R(`&:last-child`,[R(`td`,`
|
||
border-bottom: 0 solid var(--n-merged-border-color);
|
||
`)])])]),T(`single-line`,[R(`th`,`
|
||
border-right: 0px solid var(--n-merged-border-color);
|
||
`),R(`td`,`
|
||
border-right: 0px solid var(--n-merged-border-color);
|
||
`)]),T(`single-column`,[R(`tr`,[R(`&:not(:last-child)`,[R(`td`,`
|
||
border-bottom: 0px solid var(--n-merged-border-color);
|
||
`)])])]),T(`striped`,[R(`tr:nth-of-type(even)`,[R(`td`,`background-color: var(--n-td-color-striped)`)])]),re(`bottom-bordered`,[R(`tr`,[R(`&:last-child`,[R(`td`,`
|
||
border-bottom: 0px solid var(--n-merged-border-color);
|
||
`)])])])]),O(F(`table`,`
|
||
background-color: var(--n-td-color-modal);
|
||
--n-merged-border-color: var(--n-border-color-modal);
|
||
`,[R(`th`,`
|
||
background-color: var(--n-th-color-modal);
|
||
`),R(`td`,`
|
||
background-color: var(--n-td-color-modal);
|
||
`)])),te(F(`table`,`
|
||
background-color: var(--n-td-color-popover);
|
||
--n-merged-border-color: var(--n-border-color-popover);
|
||
`,[R(`th`,`
|
||
background-color: var(--n-th-color-popover);
|
||
`),R(`td`,`
|
||
background-color: var(--n-td-color-popover);
|
||
`)]))]),en=P({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:a}=v(e),o=D(()=>e.size||a?.value?.Table?.size||`medium`),s=ie(`Table`,`-table`,$t,ft,e,t),c=j(`Table`,r,t),l=D(()=>{let e=o.value,{self:{borderColor:t,tdColor:n,tdColorModal:r,tdColorPopover:i,thColor:a,thColorModal:c,thColorPopover:l,thTextColor:u,tdTextColor:d,borderRadius:f,thFontWeight:p,lineHeight:m,borderColorModal:h,borderColorPopover:g,tdColorStriped:_,tdColorStripedModal:v,tdColorStripedPopover:y,[se(`fontSize`,e)]:b,[se(`tdPadding`,e)]:x,[se(`thPadding`,e)]:S},common:{cubicBezierEaseInOut:C}}=s.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":a,"--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}}),u=n?i(`table`,D(()=>o.value[0]),l,e):void 0;return{rtlEnabled:c,mergedClsPrefix:t,cssVars:n?void 0:l,themeClass:u?.themeClass,onRender:u?.onRender}},render(){var e;let{mergedClsPrefix:t}=this;return(e=this.onRender)==null||e.call(this),l(`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)}}),tn={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},nn=P({name:`Edit`,render:function(e,t){return L(),z(`svg`,tn,t[0]||=[B(`path`,{d:`M2 26h28v2H2z`,fill:`currentColor`},null,-1),B(`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)])}}),rn={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},an=P({name:`Flag`,render:function(e,t){return L(),z(`svg`,rn,t[0]||=[B(`path`,{d:`M6 30H4V2h24l-5.8 9l5.8 9H6zm0-12h18.33l-4.53-7l4.53-7H6z`,fill:`currentColor`},null,-1)])}}),on={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},sn=P({name:`Pause`,render:function(e,t){return L(),z(`svg`,on,t[0]||=[B(`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),B(`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)])}}),cn={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},ln=P({name:`Play`,render:function(e,t){return L(),z(`svg`,cn,t[0]||=[B(`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)])}}),un={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},dn=P({name:`Repeat`,render:function(e,t){return L(),z(`svg`,un,t[0]||=[B(`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),B(`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)])}}),fn={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},pn=P({name:`Reset`,render:function(e,t){return L(),z(`svg`,fn,t[0]||=[B(`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)])}}),mn={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},hn=P({name:`Stop`,render:function(e,t){return L(),z(`svg`,mn,t[0]||=[B(`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)])}}),gn={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},_n=P({name:`Trophy`,render:function(e,t){return L(),z(`svg`,gn,t[0]||=[B(`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)])}}),vn=`/assets/icq-uh-oh-DjThHNEb.wav`,$=Le(P({__name:`UiBlock`,props:{tag:{default:`div`}},setup(e){return(t,n)=>(L(),_(p(e.tag),{class:`ui-block`},{default:I(()=>[x(t.$slots,`default`,{},void 0,!0)]),_:3}))}}),[[`__scopeId`,`data-v-80193f22`]]),yn=[`onPointerdown`],bn=[`onPointerdown`],xn={key:2},Sn=[`onClick`],Cn=20,wn=Le(P({__name:`GameMapPanel`,props:{mapItems:{},teams:{}},emits:[`saveItem`,`dragging`,`giveApplication`],setup(r,{emit:i}){let a=r,o=i,s=w(1),c=w({x:0,y:0}),l=w(),d=D(()=>new Map(a.teams.filter(e=>e.applications?.length).map(e=>[e.ID,e]))),f,p;function h(e){let t=l.value;if(!t)return;let n=t.getBoundingClientRect();return{x:(e.clientX-n.left-t.clientLeft-c.value.x)/s.value,y:(e.clientY-n.top-t.clientTop-c.value.y)/s.value}}function v(e,t){let n=h(t);n&&(f={item:e,offsetX:n.x-(e.x||0),offsetY:n.y-(e.y||0)},o(`dragging`,!0),window.addEventListener(`pointermove`,b),window.addEventListener(`pointerup`,x,{once:!0}),window.addEventListener(`pointercancel`,x,{once:!0}))}function b(e){if(!f)return;let t=h(e);t&&(f.item.x=Math.round((t.x-f.offsetX)/Cn)*Cn,f.item.y=Math.round((t.y-f.offsetY)/Cn)*Cn)}function x(){if(!f)return;let e=f.item;f=void 0,window.removeEventListener(`pointermove`,b),window.removeEventListener(`pointerup`,x),window.removeEventListener(`pointercancel`,x),o(`dragging`,!1),o(`saveItem`,e)}function S(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 E(){s.value=1,c.value={x:0,y:0}}function O(e){e.button===0&&(p={startX:e.clientX,startY:e.clientY,offsetX:c.value.x,offsetY:c.value.y},window.addEventListener(`pointermove`,k),window.addEventListener(`pointerup`,A,{once:!0}))}function k(e){p&&(c.value={x:p.offsetX+e.clientX-p.startX,y:p.offsetY+e.clientY-p.startY})}function A(){p=void 0,window.removeEventListener(`pointermove`,k)}function j(e){e.preventDefault(),T(e.deltaY<0?.1:-.1)}return y(()=>{f&&o(`dragging`,!1),window.removeEventListener(`pointermove`,b),window.removeEventListener(`pointerup`,x),window.removeEventListener(`pointercancel`,x),window.removeEventListener(`pointermove`,k),window.removeEventListener(`pointerup`,A)}),(i,a)=>(L(),_($,null,{default:I(()=>[u(g(J),{align:`center`,justify:`space-between`,class:`screen-header`},{default:I(()=>[a[6]||=B(`p`,{class:`screens-title`},`Карта помещения`,-1),u(g(q),null,{default:I(()=>[u(g(W),{size:`small`,onClick:a[0]||=e=>T(-.1)},{default:I(()=>[...a[3]||=[n(`−`,-1)]]),_:1}),u(g(Ke),null,{default:I(()=>[n(e(Math.round(s.value*100))+`%`,1)]),_:1}),u(g(W),{size:`small`,onClick:a[1]||=e=>T(.1)},{default:I(()=>[...a[4]||=[n(`+`,-1)]]),_:1}),u(g(W),{size:`small`,onClick:E},{default:I(()=>[...a[5]||=[n(`Сбросить`,-1)]]),_:1})]),_:1})]),_:1}),B(`div`,{ref_key:`mapField`,ref:l,class:`map-field`,onPointerdown:O,onWheel:j},[B(`div`,{class:`map-canvas`,style:ue({transform:`translate(${c.value.x}px, ${c.value.y}px) scale(${s.value})`})},[(L(!0),z(M,null,C(r.mapItems,r=>oe((L(),z(`div`,{key:`${r.kind}-${r.itemID}`,class:m([`map-item`,[r.kind===`screen`?`map-screen`:r.kind===`organizer_desk`?`map-organizer-desk`:`map-team`,{"map-team-needs-applications":r.kind===`team`&&d.value.has(r.itemID)}]]),style:ue({left:`${r.x||0}px`,top:`${r.y||0}px`}),onPointerdown:lt(e=>r.kind!==`team`&&v(r,e),[`stop`])},[r.kind===`team`?(L(),z(`div`,{key:0,class:`map-team-handle`,onPointerdown:lt(e=>v(r,e),[`stop`])},null,40,bn)):t(``,!0),B(`span`,null,e(r.label),1),r.kind===`team`&&d.value.has(r.itemID)?(L(),_(g(q),{key:1,class:`map-team-applications`,vertical:``},{default:I(()=>[(L(!0),z(M,null,C(d.value.get(r.itemID)?.applications,t=>(L(),_(g(W),{key:t.name,size:`small`,onClick:e=>o(`giveApplication`,d.value.get(r.itemID),t)},{default:I(()=>[n(` Выдать: `+e(t.name),1)]),_:2},1032,[`onClick`]))),128))]),_:2},1024)):t(``,!0),r.kind===`screen`?(L(),z(`small`,xn,e(r.status)+e(r.soundEnabled?` · звук`:``),1)):t(``,!0),B(`button`,{class:`map-item-hide`,type:`button`,onPointerdown:a[2]||=lt(()=>{},[`stop`]),onClick:lt(e=>S(r),[`stop`])},` × `,40,Sn)],46,yn)),[[nt,!r.hidden]])),128))],4)],544),r.mapItems.some(e=>e.hidden)?(L(),_(g(q),{key:0,class:`map-hidden-items`},{default:I(()=>[(L(!0),z(M,null,C(r.mapItems.filter(e=>e.hidden),t=>(L(),_(g(W),{key:`hidden-${t.kind}-${t.itemID}`,size:`small`,onClick:e=>S(t)},{default:I(()=>[n(` Добавить `+e(t.label),1)]),_:2},1032,[`onClick`]))),128))]),_:1})):t(``,!0)]),_:1}))}}),[[`__scopeId`,`data-v-5e2f9943`]]),Tn={key:0},En={key:2},Dn={class:`playlist-picker`},On={key:0,role:`status`},kn={class:`music-volume`},An={key:1},jn={key:2},Mn=[`aria-current`],Nn=Le(P({__name:`GameMusicPlanPanel`,props:{playlists:{},music:{},isBusy:{type:Boolean}},emits:[`setMusic`,`createPlaylist`,`renamePlaylist`,`reorderTracks`,`deletePlaylist`,`uploadTrack`,`deleteTrack`],setup(r,{emit:i}){let a=r,o=i,s=w(!1),c=w(null),l=w(``),d=w(``),f=w(a.music?.volume??100),p=w(``),h=w([]),v=w([]),y=D(()=>a.playlists.find(e=>e.ID===c.value)),b=D(()=>a.playlists.map(e=>({label:e.name,value:e.ID}))),x=D(()=>JSON.stringify(h.value)!==JSON.stringify(v.value)),S=D(()=>l.value!==p.value),T=D(()=>!!y.value&&JSON.stringify(y.value.tracks?.map(e=>e.ID)??[])!==JSON.stringify(v.value)),E=D(()=>!!a.music?.playlist?.tracks?.length&&!a.isBusy),O=D(()=>a.music?.playback===`MUSIC_PLAYBACK_PLAYING`),k=D(()=>O.value?`Пауза`:a.music?.playback===`MUSIC_PLAYBACK_PAUSED`?`Продолжить`:`Старт`),A=D(()=>a.music?.playlist?.tracks?.[a.music.trackIndex??0]);function j(){y.value||(c.value=null),l.value=y.value?.name??``,p.value=l.value,h.value=y.value?.tracks?.flatMap(e=>e.ID==null?[]:[e.ID])??[],v.value=[...h.value]}function N(){c.value=a.music?.playlist?.ID??a.playlists[0]?.ID??null,j(),s.value=!0}function P(){(x.value||S.value)&&!window.confirm(`Отменить несохранённые изменения плейлиста?`)||(j(),s.value=!1)}function ee(e,t){let n=e+t;if(n<0||n>=h.value.length)return;let[r]=h.value.splice(e,1);r!==void 0&&h.value.splice(n,0,r)}function te(e){c.value&&e.file.file&&o(`uploadTrack`,c.value,e.file.file)}function ne(e){e!==(a.music?.trackIndex??0)&&o(`setMusic`,{trackIndex:e,positionMs:0})}return ae(()=>a.music?.volume,e=>{f.value=e??100}),ae(c,j),ae(()=>a.playlists,(e,t)=>{if(!s.value)return;let n=e.find(e=>!t.some(t=>t.ID===e.ID));if(n&&a.isBusy&&n.name===d.value.trim()&&!x.value&&!S.value){c.value=n.ID??null,d.value=``,j();return}if(!y.value){if(x.value||S.value)return;c.value=null,j();return}(!S.value||l.value.trim()===y.value.name)&&(l.value=y.value.name??``,p.value=l.value);let r=y.value.tracks?.flatMap(e=>e.ID==null?[]:[e.ID])??[];(!x.value||JSON.stringify(r)===JSON.stringify(h.value))&&(h.value=r,v.value=[...r])}),(i,a)=>(L(),_($,{class:`music-panel`,"data-testid":`music-plan`},{default:I(()=>[u(g(q),{justify:`space-between`,align:`center`},{default:I(()=>[a[17]||=B(`h3`,null,`План музыки`,-1),s.value?(L(),_(g(W),{key:1,size:`small`,disabled:r.isBusy,onClick:P},{default:I(()=>[...a[16]||=[n(`Готово`,-1)]]),_:1},8,[`disabled`])):(L(),_(g(W),{key:0,size:`small`,square:``,"aria-label":`Редактировать музыку`,title:`Редактировать музыку`,disabled:r.isBusy,onClick:N},{default:I(()=>[u(g(V),{size:18},{default:I(()=>[u(g(nn))]),_:1})]),_:1},8,[`disabled`]))]),_:1}),s.value?(L(),_(g(q),{key:0,vertical:``,class:`music-content`,"data-testid":`music-editor`},{default:I(()=>[u(g(q),{wrap:!1},{default:I(()=>[u(g(Ve),{value:d.value,"onUpdate:value":a[0]||=e=>d.value=e,placeholder:`Новый плейлист`,"aria-label":`Название нового плейлиста`,disabled:r.isBusy},null,8,[`value`,`disabled`]),u(g(W),{disabled:r.isBusy||!d.value.trim(),onClick:a[1]||=e=>o(`createPlaylist`,d.value.trim())},{default:I(()=>[...a[18]||=[n(`Создать`,-1)]]),_:1},8,[`disabled`])]),_:1}),u(g(Me),{value:c.value,"onUpdate:value":a[2]||=e=>c.value=e,options:b.value,placeholder:`Плейлист для редактирования`,disabled:r.isBusy||x.value||S.value,"input-props":{"aria-label":`Плейлист для редактирования`}},null,8,[`value`,`options`,`disabled`]),r.playlists.length?t(``,!0):(L(),z(`p`,Tn,`Плейлистов пока нет.`)),c.value&&!y.value?(L(),_(g(K),{key:1,type:`warning`},{default:I(()=>[a[20]||=n(` Плейлист удалён на сервере. Несохранённый черновик сохранён до отмены. `,-1),u(g(W),{size:`small`,disabled:r.isBusy,onClick:j},{default:I(()=>[...a[19]||=[n(`Загрузить актуальный список`,-1)]]),_:1},8,[`disabled`])]),_:1})):t(``,!0),y.value&&c.value?(L(),z(M,{key:2},[a[31]||=B(`label`,{for:`music-playlist-name`},`Название плейлиста`,-1),u(g(Ve),{value:l.value,"onUpdate:value":a[3]||=e=>l.value=e,disabled:r.isBusy,"input-props":{id:`music-playlist-name`}},null,8,[`value`,`disabled`]),u(g(q),null,{default:I(()=>[u(g(W),{size:`small`,disabled:r.isBusy||!l.value.trim()||!S.value,onClick:a[4]||=e=>o(`renamePlaylist`,c.value,l.value.trim())},{default:I(()=>[...a[21]||=[n(`Сохранить название`,-1)]]),_:1},8,[`disabled`]),u(g(Re),{accept:`.mp3,audio/mpeg`,"default-upload":!1,"show-file-list":!1,disabled:r.isBusy||x.value||T.value,onChange:te},{default:I(()=>[u(g(W),{size:`small`,disabled:r.isBusy||x.value||T.value},{default:I(()=>[...a[22]||=[n(`Добавить MP3`,-1)]]),_:1},8,[`disabled`])]),_:1},8,[`disabled`]),u(g(W),{size:`small`,disabled:r.isBusy||x.value||T.value||!h.value.length,onClick:a[5]||=e=>o(`setMusic`,{playlistID:c.value??void 0,trackIndex:0,positionMs:0,playback:`MUSIC_PLAYBACK_STOPPED`})},{default:I(()=>[...a[23]||=[n(`Использовать в игре`,-1)]]),_:1},8,[`disabled`]),u(g(qt),{onPositiveClick:a[6]||=e=>o(`deletePlaylist`,c.value)},{trigger:I(()=>[u(g(W),{size:`small`,type:`error`,ghost:``,disabled:r.isBusy||x.value||S.value},{default:I(()=>[...a[24]||=[n(`Удалить плейлист`,-1)]]),_:1},8,[`disabled`])]),default:I(()=>[n(` Удалить плейлист «`+e(y.value.name)+`»? `,1)]),_:1})]),_:1}),T.value?(L(),_(g(K),{key:0,type:`warning`},{default:I(()=>[...a[25]||=[n(`Порядок или состав треков изменился на сервере. Загрузите актуальный список перед сохранением.`,-1)]]),_:1})):t(``,!0),x.value||S.value||T.value?(L(),_(g(q),{key:1},{default:I(()=>[u(g(W),{size:`small`,disabled:r.isBusy||!x.value||T.value,onClick:a[7]||=e=>o(`reorderTracks`,c.value,[...h.value])},{default:I(()=>[...a[26]||=[n(`Сохранить порядок`,-1)]]),_:1},8,[`disabled`]),u(g(W),{size:`small`,disabled:r.isBusy,onClick:j},{default:I(()=>[n(e(T.value?`Загрузить актуальный список`:`Отменить изменения`),1)]),_:1},8,[`disabled`])]),_:1})):t(``,!0),h.value.length?t(``,!0):(L(),z(`p`,En,`Треков пока нет.`)),(L(!0),z(M,null,C(h.value,(t,i)=>(L(),z(`div`,{key:t,class:`track-row`},[B(`span`,null,e(i+1)+`. `+e(y.value.tracks?.find(e=>e.ID===t)?.name??`Трек удалён на сервере`),1),u(g(q),null,{default:I(()=>[u(g(W),{size:`small`,disabled:r.isBusy||T.value||i===0,"aria-label":`Поднять трек ${i+1}`,onClick:e=>ee(i,-1)},{default:I(()=>[...a[27]||=[n(`↑`,-1)]]),_:1},8,[`disabled`,`aria-label`,`onClick`]),u(g(W),{size:`small`,disabled:r.isBusy||T.value||i===h.value.length-1,"aria-label":`Опустить трек ${i+1}`,onClick:e=>ee(i,1)},{default:I(()=>[...a[28]||=[n(`↓`,-1)]]),_:1},8,[`disabled`,`aria-label`,`onClick`]),u(g(qt),{onPositiveClick:e=>o(`deleteTrack`,c.value,t)},{trigger:I(()=>[u(g(W),{size:`small`,type:`error`,ghost:``,disabled:r.isBusy||x.value||T.value},{default:I(()=>[...a[29]||=[n(`Удалить`,-1)]]),_:1},8,[`disabled`])]),default:I(()=>[a[30]||=n(` Удалить трек из плейлиста? `,-1)]),_:1},8,[`onPositiveClick`])]),_:2},1024)]))),128))],64)):t(``,!0)]),_:1})):(L(),_(g(q),{key:1,vertical:``,class:`music-content`},{default:I(()=>[B(`div`,Dn,[u(g(Me),{value:r.music?.playlist?.ID,options:b.value,clearable:``,placeholder:`Выберите плейлист`,disabled:r.isBusy,"input-props":{"aria-label":`Музыка игры`},"onUpdate:value":a[8]||=e=>o(`setMusic`,{playlistID:e??0,trackIndex:0,positionMs:0,playback:`MUSIC_PLAYBACK_STOPPED`})},null,8,[`value`,`options`,`disabled`]),u(g(W),{square:``,type:r.music?.loop?`primary`:`default`,"aria-pressed":r.music?.loop??!1,"aria-label":`Повторять плейлист`,title:`Повторять плейлист`,disabled:r.isBusy,onClick:a[9]||=e=>o(`setMusic`,{loop:!r.music?.loop})},{default:I(()=>[u(g(V),{size:18},{default:I(()=>[u(g(dn))]),_:1})]),_:1},8,[`type`,`aria-pressed`,`disabled`])]),A.value?(L(),z(`p`,On,e(A.value.name)+` · `+e(O.value?`Играет`:r.music?.playback===`MUSIC_PLAYBACK_PAUSED`?`Пауза`:`Остановлено`),1)):t(``,!0),u(g(q),{align:`center`},{default:I(()=>[u(g(W),{square:``,"aria-label":k.value,title:k.value,disabled:!E.value,onClick:a[10]||=e=>o(`setMusic`,{playback:O.value?`MUSIC_PLAYBACK_PAUSED`:`MUSIC_PLAYBACK_PLAYING`})},{default:I(()=>[u(g(V),{size:18},{default:I(()=>[O.value?(L(),_(g(sn),{key:0})):(L(),_(g(ln),{key:1}))]),_:1})]),_:1},8,[`aria-label`,`title`,`disabled`]),u(g(W),{square:``,"aria-label":`Стоп`,title:`Стоп`,disabled:!E.value,onClick:a[11]||=e=>o(`setMusic`,{playback:`MUSIC_PLAYBACK_STOPPED`,positionMs:0})},{default:I(()=>[u(g(V),{size:18},{default:I(()=>[u(g(hn))]),_:1})]),_:1},8,[`disabled`]),u(g(W),{square:``,"aria-label":`Сначала`,title:`Сначала`,disabled:!E.value,onClick:a[12]||=e=>o(`setMusic`,{playback:`MUSIC_PLAYBACK_PLAYING`,positionMs:0})},{default:I(()=>[u(g(V),{size:18},{default:I(()=>[u(g(pn))]),_:1})]),_:1},8,[`disabled`]),B(`div`,kn,[a[32]||=B(`span`,{id:`music-volume-label`},`Громкость`,-1),u(g(Qt),{value:f.value,min:0,max:100,disabled:r.isBusy||!r.music?.playlist,"aria-labelledby":`music-volume-label`,"format-tooltip":e=>`${e}%`,"onUpdate:value":a[13]||=e=>f.value=e,onDragend:a[14]||=e=>o(`setMusic`,{volume:f.value}),onKeyup:a[15]||=e=>o(`setMusic`,{volume:f.value})},null,8,[`value`,`disabled`,`format-tooltip`])])]),_:1}),r.music?.playlist?r.music.playlist.tracks?.length?t(``,!0):(L(),z(`p`,jn,`В плейлисте пока нет треков.`)):(L(),z(`p`,An,`Выберите плейлист для игры.`)),(L(!0),z(M,null,C(r.music?.playlist?.tracks??[],(t,i)=>(L(),z(`div`,{key:t.ID,class:m([`track-row`,{"track-current":i===(r.music?.trackIndex??0)}]),"aria-current":i===(r.music?.trackIndex??0)?`true`:void 0},[B(`span`,null,e(i+1)+`. `+e(t.name),1),u(g(W),{size:`small`,disabled:r.isBusy||i===(r.music?.trackIndex??0),onClick:e=>ne(i)},{default:I(()=>[n(e(i===(r.music?.trackIndex??0)?`Выбран`:`Выбрать`),1)]),_:2},1032,[`disabled`,`onClick`])],10,Mn))),128))]),_:1}))]),_:1}))}}),[[`__scopeId`,`data-v-90299531`]]),Pn={key:0},Fn={class:`plan-steps`},In=[`aria-current`],Ln={class:`step-preview`,"aria-hidden":`true`},Rn={class:`step-content`},zn=[`for`],Bn=[`for`],Vn=[`for`],Hn=[`for`],Un={class:`step-heading`},Wn=[`id`],Gn=Le(P({__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(r,{emit:i}){let a=r,o=i,s=D(()=>a.screens.find(e=>e.status===`connected`)||a.screens[0]),c=D(()=>s.value?.mode===`SCREEN_MODE_INTRO`?!!s.value.introAudio:!!s.value?.conclusionVideo),l=D(()=>a.screens.some(e=>e.status===`connected`)),d=D(()=>a.screenPlanSaving||a.isBusy),f=D(()=>a.screenPlanMode===`edit`?a.screenPlanDraft:a.screenPlan?.steps??[]),h=D(()=>s.value?.timerState===`SCREEN_TIMER_STATE_RUNNING`?{label:`Пауза`,command:`SCREEN_COMMAND_TIMER_PAUSE`,icon:sn}:s.value?.timerState===`SCREEN_TIMER_STATE_PAUSED`?{label:`Продолжить`,command:`SCREEN_COMMAND_TIMER_RESUME`,icon:ln}:{label:`Старт`,command:`SCREEN_COMMAND_TIMER_START`,icon:ln}),v=[{label:`Запуск`,command:`SCREEN_COMMAND_PLAY`,icon:ln},{label:`Пауза`,command:`SCREEN_COMMAND_PAUSE`,icon:sn},{label:`Продолжить`,command:`SCREEN_COMMAND_RESUME`,icon:ln},{label:`Стоп`,command:`SCREEN_COMMAND_STOP`,icon:hn},{label:`Сначала`,command:`SCREEN_COMMAND_REPLAY`,icon:pn}],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=vt(e.timerLabel,e.timerType,t),e.timerType=t,o(`dirty`)}function x(e){return{...s.value,...e,timerState:`SCREEN_TIMER_STATE_STOPPED`,timerRemainingSeconds:e.timerDurationSeconds}}return(i,a)=>(L(),_($,{class:`screen-plan-panel`,"data-testid":`screen-plan`},{default:I(()=>[u(g(q),{align:`center`,justify:`space-between`},{default:I(()=>[a[15]||=B(`h3`,null,`План экранов`,-1),u(g(q),null,{default:I(()=>[r.screenPlanMode===`use`&&!r.screenPlan?(L(),_(g(W),{key:0,size:`small`,disabled:d.value,onClick:a[0]||=e=>o(`addStep`)},{default:I(()=>[...a[12]||=[n(`Создать план`,-1)]]),_:1},8,[`disabled`])):r.screenPlanMode===`use`?(L(),_(g(W),{key:1,size:`small`,square:``,"aria-label":`Редактировать план экранов`,title:`Редактировать план экранов`,disabled:d.value,onClick:a[1]||=e=>o(`edit`)},{default:I(()=>[u(g(V),{size:18},{default:I(()=>[u(g(nn))]),_:1})]),_:1},8,[`disabled`])):(L(),z(M,{key:2},[u(g(W),{size:`small`,disabled:d.value,onClick:a[2]||=e=>o(`cancel`)},{default:I(()=>[...a[13]||=[n(`Отменить`,-1)]]),_:1},8,[`disabled`]),u(g(W),{size:`small`,type:`primary`,loading:r.screenPlanSaving,disabled:d.value,onClick:a[3]||=e=>o(`save`)},{default:I(()=>[...a[14]||=[n(`Сохранить план`,-1)]]),_:1},8,[`loading`,`disabled`])],64))]),_:1})]),_:1}),f.value.length?t(``,!0):(L(),z(`p`,Pn,e(r.screenPlanMode===`edit`?`Добавьте шаги или сохраните пустой план для удаления.`:`План экранов ещё не создан.`),1)),B(`div`,Fn,[(L(!0),z(M,null,C(f.value,(i,s)=>(L(),z(`div`,{key:s,class:m([`plan-step`,{"plan-step-current":r.screenPlanMode===`use`&&r.screenPlan?.currentStep===s}]),"aria-current":r.screenPlanMode===`use`&&r.screenPlan?.currentStep===s?`step`:void 0},[B(`div`,Ln,[u(bt,{state:x(i),questions:r.previewQuestions,teams:r.previewTeams,"team-names":r.teamNames,"is-thumbnail":``},null,8,[`state`,`questions`,`teams`,`team-names`])]),B(`div`,Rn,[r.screenPlanMode===`edit`?(L(),z(M,{key:0},[u(g(q),{align:`center`},{default:I(()=>[B(`span`,null,e(s+1),1),u(g(W),{size:`small`,disabled:d.value||s===0,"aria-label":`Поднять шаг ${s+1}`,onClick:e=>o(`moveStep`,s,-1)},{default:I(()=>[...a[16]||=[n(`↑`,-1)]]),_:1},8,[`disabled`,`aria-label`,`onClick`]),u(g(W),{size:`small`,disabled:d.value||s===f.value.length-1,"aria-label":`Опустить шаг ${s+1}`,onClick:e=>o(`moveStep`,s,1)},{default:I(()=>[...a[17]||=[n(`↓`,-1)]]),_:1},8,[`disabled`,`aria-label`,`onClick`]),u(g(W),{size:`small`,type:`error`,ghost:``,disabled:d.value,onClick:e=>o(`removeStep`,s)},{default:I(()=>[...a[18]||=[n(`Удалить`,-1)]]),_:1},8,[`disabled`,`onClick`])]),_:2},1024),u(g(Me),{value:i.mode,"onUpdate:value":[e=>i.mode=e,a[4]||=e=>o(`dirty`)],options:y,disabled:d.value,"input-props":{"aria-label":`Режим шага ${s+1}`}},null,8,[`value`,`onUpdate:value`,`disabled`,`input-props`]),i.mode===`SCREEN_MODE_TEXT`||i.mode===`SCREEN_MODE_QR`?(L(),_(g(Ve),{key:0,value:i.text,"onUpdate:value":[e=>i.text=e,a[5]||=e=>o(`dirty`)],type:`textarea`,placeholder:`Текст экрана`,disabled:d.value,"input-props":{"aria-label":`Текст шага ${s+1}`}},null,8,[`value`,`onUpdate:value`,`disabled`,`input-props`])):t(``,!0),i.mode===`SCREEN_MODE_QR`?(L(),z(M,{key:1},[B(`label`,{for:`qr-link-${s}`},`Ссылка для QR-кода (обязательно)`,8,zn),u(g(Ve),{value:i.qrUrl,"onUpdate:value":[e=>i.qrUrl=e,a[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)):t(``,!0),i.mode===`SCREEN_MODE_TIMER`?(L(),z(M,{key:2},[B(`label`,{for:`timer-type-${s}`},`Тип таймера`,8,Bn),u(g(Me),{value:i.timerType??`SCREEN_TIMER_TYPE_BREAK`,options:g(yt),disabled:d.value,"input-props":{id:`timer-type-${s}`},"onUpdate:value":e=>b(i,e)},null,8,[`value`,`options`,`disabled`,`input-props`,`onUpdate:value`]),B(`label`,{for:`timer-label-${s}`},`Надпись таймера`,8,Vn),u(g(Ve),{value:i.timerLabel,"onUpdate:value":[e=>i.timerLabel=e,a[7]||=e=>o(`dirty`)],disabled:d.value,"input-props":{id:`timer-label-${s}`}},null,8,[`value`,`onUpdate:value`,`disabled`,`input-props`]),B(`label`,{for:`timer-duration-${s}`},`Длительность в секундах`,8,Hn),u(g(Vt),{value:i.timerDurationSeconds,"onUpdate:value":[e=>i.timerDurationSeconds=e,a[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)):t(``,!0)],64)):(L(),z(M,{key:1},[B(`div`,Un,[B(`span`,null,[n(e(s+1)+`. `+e(y.find(e=>e.value===i.mode)?.label),1),i.mode===`SCREEN_MODE_TEXT`||i.mode===`SCREEN_MODE_QR`?(L(),z(M,{key:0},[n(`: `+e(i.text),1)],64)):t(``,!0),i.mode===`SCREEN_MODE_TIMER`?(L(),z(M,{key:1},[n(`: `+e(i.timerLabel)+` (`+e(i.timerDurationSeconds)+` с)`,1)],64)):t(``,!0)]),u(g(W),{size:`small`,disabled:d.value||r.screenPlan?.currentStep===s||!l.value,onClick:e=>o(`setStep`,s)},{default:I(()=>[n(e(r.screenPlan?.currentStep===s?`Показан`:`Показать`),1)]),_:2},1032,[`disabled`,`onClick`])]),r.screenPlan?.currentStep===s?(L(),z(M,{key:0},[i.mode===`SCREEN_MODE_TIMER`?(L(),_(g(q),{key:0},{default:I(()=>[u(g(W),{square:``,"aria-label":h.value.label,title:h.value.label,disabled:d.value||!l.value,onClick:e=>o(`command`,i.mode,h.value.command)},{default:I(()=>[u(g(V),{size:18},{default:I(()=>[(L(),_(p(h.value.icon)))]),_:1})]),_:1},8,[`aria-label`,`title`,`disabled`,`onClick`]),u(g(W),{square:``,"aria-label":`Сбросить таймер`,title:`Сбросить таймер`,disabled:d.value||!l.value,onClick:e=>o(`command`,i.mode,`SCREEN_COMMAND_TIMER_RESET`)},{default:I(()=>[u(g(V),{size:18},{default:I(()=>[u(g(pn))]),_:1})]),_:1},8,[`disabled`,`onClick`])]),_:2},1024)):i.mode===`SCREEN_MODE_INTRO`||i.mode===`SCREEN_MODE_CONCLUSION`?(L(),z(M,{key:1},[u(g(q),null,{default:I(()=>[(L(),z(M,null,C(v,e=>u(g(W),{key:e.command,square:``,"aria-label":e.label,title:e.label,disabled:d.value||!l.value||!c.value,onClick:t=>o(`command`,i.mode,e.command)},{default:I(()=>[u(g(V),{size:18},{default:I(()=>[(L(),_(p(e.icon)))]),_:2},1024)]),_:2},1032,[`aria-label`,`title`,`disabled`,`onClick`])),64))]),_:2},1024),B(`label`,{id:`main-volume-${s}`},`Громкость`,8,Wn),u(g(Qt),{value:r.screenVolume,min:0,max:100,disabled:d.value||!l.value,"aria-labelledby":`main-volume-${s}`,"format-tooltip":e=>`${e}%`,"onUpdate:value":a[9]||=e=>o(`update:screenVolume`,e),onDragend:e=>o(`command`,i.mode,`SCREEN_COMMAND_VOLUME`),onKeyup:e=>o(`command`,i.mode,`SCREEN_COMMAND_VOLUME`)},null,8,[`value`,`disabled`,`aria-labelledby`,`format-tooltip`,`onDragend`,`onKeyup`])],64)):t(``,!0)],64)):t(``,!0)],64))])],10,In))),128))]),r.screenPlanMode===`edit`?(L(),_(g(q),{key:1},{default:I(()=>[u(g(W),{size:`small`,disabled:d.value,onClick:a[10]||=e=>o(`addStep`)},{default:I(()=>[...a[19]||=[n(`Добавить шаг`,-1)]]),_:1},8,[`disabled`]),u(g(W),{size:`small`,disabled:d.value||!f.value.length,onClick:a[11]||=e=>o(`clearPlan`)},{default:I(()=>[...a[20]||=[n(`Удалить план`,-1)]]),_:1},8,[`disabled`])]),_:1})):t(``,!0)]),_:1}))}}),[[`__scopeId`,`data-v-6e25da79`]]),Kn=Le(P({__name:`ScreenBindingModal`,props:o({binding:{type:Boolean}},{show:{type:Boolean,required:!0},showModifiers:{}}),emits:o([`scanned`],[`update:show`]),setup(r,{emit:i}){let a=ce(r,`show`),o=i,s=w(``),c=w(),l=w(!1),d,f=0;function p(){cancelAnimationFrame(f),d?.getTracks().forEach(e=>e.stop()),d=void 0,l.value=!1}function m(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 v(){let e=window.BarcodeDetector;if(!e||!navigator.mediaDevices?.getUserMedia){s.value=`Сканирование камерой не поддерживается в этом браузере.`;return}s.value=``;try{if(d=await navigator.mediaDevices.getUserMedia({video:{facingMode:`environment`}}),l.value=!0,await h(),!c.value)return;c.value.srcObject=d,await c.value.play();let t=new e,n=async()=>{if(!(!c.value||!d))try{let e=(await t.detect(c.value))[0]?.rawValue;if(e){let t=m(e);if(t){p(),a.value=!1,o(`scanned`,t.screenID,t.accessToken);return}s.value=`Это не QR-код экрана.`}f=requestAnimationFrame(n)}catch{s.value=`Не удалось распознать QR-код.`,p()}};f=requestAnimationFrame(n)}catch{s.value=`Не удалось открыть камеру.`,p()}}function b(){p(),a.value=!1}return ae(a,e=>{e?v():p()}),y(p),(i,o)=>(L(),_(g(Te),{show:a.value,"onUpdate:show":o[0]||=e=>a.value=e},{default:I(()=>[u(g(ve),{style:{width:`min(600px, 94vw)`},title:`Привязать экран`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":I(()=>[u(g(W),{onClick:b},{default:I(()=>[...o[1]||=[n(` x `,-1)]]),_:1})]),default:I(()=>[u(g(q),{vertical:``},{default:I(()=>[B(`video`,{ref_key:`scannerVideo`,ref:c,class:`screen-scanner-video`,muted:``,playsinline:``},null,512),s.value?(L(),_(g(K),{key:0,type:`error`},{default:I(()=>[n(e(s.value),1)]),_:1})):t(``,!0),!l.value&&!r.binding?(L(),_(g(W),{key:1,type:`primary`,onClick:v},{default:I(()=>[...o[2]||=[n(` Сканировать QR-код `,-1)]]),_:1})):t(``,!0),l.value?(L(),_(g(W),{key:2,onClick:p},{default:I(()=>[...o[3]||=[n(`Остановить камеру`,-1)]]),_:1})):t(``,!0),r.binding?(L(),_(g(W),{key:3,type:`primary`,loading:``},{default:I(()=>[...o[4]||=[n(`Привязка…`,-1)]]),_:1})):t(``,!0)]),_:1})]),_:1})]),_:1},8,[`show`]))}}),[[`__scopeId`,`data-v-5f530845`]]),qn={key:1,class:`screen-empty`},Jn={class:`screen-status`},Yn={key:0,class:`screen-error`},Xn=Le(P({__name:`GameScreensPanel`,props:{screens:{},screenBinding:{type:Boolean},isBusy:{type:Boolean}},emits:[`bind`,`setSound`,`unbind`],setup(r,{emit:i}){let a=r,o=i,s=w(!1);return(i,c)=>(L(),z(M,null,[u($,null,{default:I(()=>[u(g(J),{align:`center`,justify:`space-between`,class:`screen-header`},{default:I(()=>[c[4]||=B(`p`,{class:`screens-title`},`Экраны`,-1),u(g(W),{size:`small`,disabled:r.isBusy||r.screenBinding,onClick:c[0]||=e=>s.value=!0},{default:I(()=>[...c[3]||=[n(` Привязать экран `,-1)]]),_:1},8,[`disabled`])]),_:1}),r.screens.some(e=>e.status===`disconnected`)?(L(),_(g(K),{key:0,type:`warning`,title:`Проверьте подключение экрана`},{default:I(()=>[...c[5]||=[n(` Один или несколько экранов не выходят на связь более минуты. `,-1)]]),_:1})):t(``,!0),r.screens.length===0?(L(),z(`p`,qn,`К игре пока не привязаны экраны.`)):(L(!0),z(M,{key:2},C(r.screens,i=>(L(),z(`div`,{key:i.ID,class:`screen-row`},[B(`div`,null,[B(`div`,null,`Экран `+e(i.ID),1),B(`div`,Jn,e(i.status===`connected`?`Онлайн`:`Оффлайн`),1),i.error?(L(),z(`div`,Yn,e(i.error),1)):t(``,!0)]),u(g(J),{justify:`end`},{default:I(()=>[i.soundEnabled?(L(),_(g(be),{key:0,type:`success`},{default:I(()=>[...c[6]||=[n(`Со звуком`,-1)]]),_:1})):(L(),_(g(W),{key:1,size:`small`,disabled:r.isBusy,onClick:e=>o(`setSound`,i)},{default:I(()=>[...c[7]||=[n(`Назначить звук`,-1)]]),_:1},8,[`disabled`,`onClick`])),u(g(W),{size:`small`,type:`error`,ghost:``,disabled:r.isBusy,onClick:e=>o(`unbind`,i)},{default:I(()=>[...c[8]||=[n(` Отвязать `,-1)]]),_:1},8,[`disabled`,`onClick`])]),_:2},1024)]))),128))]),_:1}),u(Kn,{show:s.value,"onUpdate:show":c[1]||=e=>s.value=e,binding:a.screenBinding,onScanned:c[2]||=(e,t)=>o(`bind`,e,t)},null,8,[`show`,`binding`])],64))}}),[[`__scopeId`,`data-v-361cce15`]]),Zn={key:0},Qn={key:3},$n={key:4},er={key:0},tr={key:2},nr={key:0},rr={class:`device-details`},ir={key:0},ar={key:1},or=Le(P({__name:`GameStatePanel`,props:{devices:{},wifi:{},serverTime:{},isLoading:{type:Boolean},hasError:{type:Boolean},summary:{}},emits:[`reload`],setup(r){let i={browser:`Браузер`,organizer:`Организатор`,team:`Команда`,screen:`Экран`};return(a,o)=>(L(),z(M,null,[u($,null,{default:I(()=>[u(g(J),null,{default:I(()=>[u(g(be),{type:`success`},{default:I(()=>[n(`Доступны: `+e(r.summary.connected),1)]),_:1}),u(g(be),{type:`warning`},{default:I(()=>[n(`Нет связи: `+e(r.summary.disconnected),1)]),_:1}),u(g(be),null,{default:I(()=>[n(`Подключения: `+e(r.summary.connections),1)]),_:1})]),_:1}),r.serverTime?(L(),z(`p`,Zn,`Последнее обновление: `+e(g(St)(r.serverTime)),1)):t(``,!0),o[2]||=B(`p`,null,`«Нет связи» означает отсутствие heartbeat сайта. UUID обозначает браузерный профиль.`,-1),r.hasError?(L(),_(g(K),{key:1,type:`error`,title:`Не удалось обновить состояние`},{default:I(()=>[u(g(W),{loading:r.isLoading,onClick:o[0]||=e=>a.$emit(`reload`)},{default:I(()=>[...o[1]||=[n(`Повторить`,-1)]]),_:1},8,[`loading`])]),_:1})):t(``,!0),r.isLoading&&!r.serverTime?(L(),_(g(Ge),{key:2})):!r.hasError&&!r.serverTime&&!r.isLoading?(L(),z(`p`,Qn,`Загружаем состояние…`)):r.serverTime&&!r.devices.length?(L(),z(`p`,$n,`Устройства этой игры пока не зарегистрированы`)):t(``,!0)]),_:1}),u($,null,{default:I(()=>[o[4]||=B(`h3`,null,`Wi-Fi площадки`,-1),o[5]||=B(`p`,null,` Все Wi-Fi-клиенты Cudy, независимо от выбранной игры. MAC устройства и UUID браузера различаются. `,-1),r.wifi?.enabled?(L(),z(M,{key:1},[r.wifi.hasError?(L(),_(g(K),{key:0,type:`warning`,role:`alert`,title:`Не удалось обновить данные Cudy`})):t(``,!0),r.wifi.stale?(L(),_(g(be),{key:1,type:`warning`},{default:I(()=>[...o[3]||=[n(`Данные устарели`,-1)]]),_:1})):t(``,!0),r.wifi.collectedAt?(L(),z(`p`,tr,` Последний снимок Cudy: `+e(g(St)(r.wifi.collectedAt)),1)):t(``,!0),r.wifi.collectedAt?(L(),z(M,{key:3},[B(`p`,null,`Wi-Fi-клиентов: `+e(r.wifi.clients?.length||0),1),r.wifi.clients?.length?t(``,!0):(L(),z(`p`,nr,`Wi-Fi-клиенты пока не подключены`)),(L(!0),z(M,null,C(r.wifi.clients,t=>(L(),z(`div`,{key:t.MAC,class:`connection device-details`},[B(`strong`,null,e(t.MAC),1),B(`p`,null,`IP: `+e(t.IP||`—`)+` · `+e(t.band),1),B(`p`,null,`Сигнал: `+e(t.signal===void 0?`Нет данных`:`${t.signal} dBm`),1)]))),128))],64)):t(``,!0)],64)):(L(),z(`p`,er,`Сбор данных Cudy не настроен`))]),_:1}),(L(!0),z(M,null,C(r.devices,r=>(L(),_($,{key:r.ID},{default:I(()=>[B(`div`,rr,[B(`strong`,null,e(r.ID),1),B(`p`,null,[u(g(be),{type:r.connected?`success`:`warning`},{default:I(()=>[n(e(r.connected?`Доступно`:`Нет связи`),1)]),_:2},1032,[`type`])]),B(`p`,null,`Последнее обращение: `+e(g(St)(r.lastSeenAt)||`—`),1),u(g(Dt),null,{default:I(()=>[u(g(Q),{title:`Подключения`,name:r.ID||``},{default:I(()=>[(L(!0),z(M,null,C(r.connections,n=>(L(),z(`div`,{key:n.ID,class:`connection`},[B(`strong`,null,e(i[n.kind||``]||n.kind),1),n.teamID?(L(),z(`p`,ir,`ID команды: `+e(n.teamID),1)):t(``,!0),n.screenID?(L(),z(`p`,ar,`ID экрана: `+e(n.screenID),1)):t(``,!0),B(`p`,null,e(n.connected?`Доступно`:`Нет связи`),1),B(`p`,null,`Последнее обращение: `+e(g(St)(n.lastSeenAt)||`—`),1),B(`p`,null,`IP: `+e(n.IP||`—`),1),B(`p`,null,`User-Agent: `+e(n.userAgent||`—`),1)]))),128))]),_:2},1032,[`name`])]),_:2},1024)])]),_:2},1024))),128))],64))}}),[[`__scopeId`,`data-v-a670747a`]]),sr={class:`team-content-block`},cr={class:`title-block`},lr={class:`team-name-block`},ur={key:0},dr={key:1},fr={key:0},pr={key:0},mr={key:1},hr={key:2},gr={key:3},_r={key:4},vr=Le(P({__name:`GameTeamsPanel`,props:{teams:{},canPrintReceipts:{type:Boolean},participationOptions:{}},emits:[`add`,`open-qr`,`print`,`preview`,`delete`,`give-application`],setup(r,{emit:i}){let a=i;return(i,o)=>(L(),z(M,null,[u($,{class:`team-block-hover`,onClick:o[0]||=e=>a(`add`)},{default:I(()=>[...o[1]||=[B(`p`,{class:`place-image-plus`},`+`,-1)]]),_:1}),(L(!0),z(M,null,C(r.teams,i=>(L(),_($,{key:i.ID},{default:I(()=>[B(`div`,sr,[u(g(J),{justify:`space-between`},{default:I(()=>[B(`div`,cr,[B(`span`,lr,[n(e(i.name)+` `,1),i.captainEmail?(L(),z(`small`,ur,` — `+e(i.captainEmail),1)):t(``,!0),i.participantsCount?(L(),z(`small`,dr,` · Участников: `+e(i.participantsCount),1)):t(``,!0)]),i.captainEmail||i.participationStatus!==`pending`?(L(),z(`div`,fr,[n(e(r.participationOptions.find(e=>e.value===i.participationStatus)?.label),1),i.participationSource===`automatic`?(L(),z(`span`,pr,` · автоматически`)):t(``,!0)])):t(``,!0),i.captainEmail?i.participationEmailError?(L(),z(`div`,hr,` Ошибка отправки: `+e(i.participationEmailError),1)):i.participationEmailSent?(L(),z(`div`,gr,`Письмо отправлено`)):t(``,!0):(L(),z(`div`,mr,`Почта капитана не указана`)),i.participationStatus===`cancelled`?t(``,!0):(L(),z(`div`,_r,` Поездки: `+e(i.actionsCount),1))]),u(g(J),{justify:`end`},{default:I(()=>[r.canPrintReceipts&&i.participationStatus!==`cancelled`?(L(),_(g(W),{key:0,onClick:e=>a(`print`,i)},{default:I(()=>[...o[2]||=[n(` Печать чека `,-1)]]),_:1},8,[`onClick`])):t(``,!0),i.participationStatus===`cancelled`?t(``,!0):(L(),_(g(W),{key:1,onClick:e=>a(`open-qr`,i)},{default:I(()=>[...o[3]||=[n(`QR`,-1)]]),_:1},8,[`onClick`])),i.participationStatus===`cancelled`?t(``,!0):(L(),_(g(W),{key:2,onClick:e=>a(`preview`,i.ID,i.password)},{default:I(()=>[...o[4]||=[n(`Подсмотреть игру`,-1)]]),_:1},8,[`onClick`])),u(g(W),{type:`error`,ghost:``,onClick:e=>a(`delete`,i)},{default:I(()=>[...o[5]||=[n(`Удалить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024),(L(!0),z(M,null,C(i.applications,t=>(L(),_(g(W),{key:t.name,class:`link-button`,onClick:e=>a(`give-application`,i,t)},{default:I(()=>[n(` Выдать: `+e(t.name),1)]),_:2},1032,[`onClick`]))),128))])]),_:2},1024))),128))],64))}}),[[`__scopeId`,`data-v-70e02c3e`]]),yr=[`src`,`alt`],br={key:2},xr=Le(P({__name:`TeamReceiptModal`,props:{show:{type:Boolean},name:{},preview:{},preparationError:{},isPreparing:{type:Boolean},isPrinting:{type:Boolean}},emits:[`update:show`,`print`],setup(r,{emit:i}){let a=i;return(i,o)=>(L(),_(g(Te),{show:r.show,"mask-closable":!r.isPrinting,"close-on-esc":!r.isPrinting,"onUpdate:show":o[2]||=e=>a(`update:show`,e)},{default:I(()=>[u(g(ve),{class:`receipt-modal`,title:`Чек команды`,role:`dialog`,"aria-modal":`true`},{default:I(()=>[r.preparationError?(L(),_(g(K),{key:0,type:`error`},{default:I(()=>[n(e(r.preparationError),1)]),_:1})):r.preview?(L(),z(`img`,{key:1,class:`receipt-preview`,src:r.preview,alt:`Чек команды ${r.name}`},null,8,yr)):r.isPreparing?(L(),z(`p`,br,`Подготовка чека…`)):t(``,!0),o[5]||=B(`p`,null,`Включите MXW01 рядом с сервером площадки. Сервер напечатает один чек.`,-1),u(g(J),{justify:`end`},{default:I(()=>[u(g(W),{disabled:r.isPrinting,onClick:o[0]||=e=>a(`update:show`,!1)},{default:I(()=>[...o[3]||=[n(`Закрыть`,-1)]]),_:1},8,[`disabled`]),u(g(W),{type:`primary`,loading:r.isPrinting,disabled:!r.preview||r.isPreparing||r.isPrinting,onClick:o[1]||=e=>a(`print`)},{default:I(()=>[...o[4]||=[n(`Печатать`,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1},8,[`show`,`mask-closable`,`close-on-esc`]))}}),[[`__scopeId`,`data-v-f0b8d644`]]),Sr={key:0},Cr={key:1},wr={key:2},Tr=Le(P({__name:`TicketCheckModal`,props:{show:{type:Boolean,required:!0},showModifiers:{}},emits:[`update:show`],setup(r){let i=ce(r,`show`),a=at(),o=xe(),s=w(``),c=w(),l=w(``),d=w(!1),f=w(),p=w(!1),m,v=0,b=D(()=>{try{return new URL(s.value.trim()).pathname.match(/\/tickets\/([^/]+)/)?.[1]||``}catch{return s.value.trim()}});async function x(){if(!(!b.value||d.value)){d.value=!0,l.value=``,c.value=void 0;try{let e=await a.GetTicket({token:b.value});e.ticket?c.value=e.ticket:l.value=`Билет не найден`}catch(e){l.value=e instanceof Error?e.message:`Не удалось проверить билет`}finally{d.value=!1}}}async function S(){if(!(!b.value||d.value)){d.value=!0,l.value=``;try{let e=await a.AcceptTicket({token:b.value});e.ticket?(c.value=e.ticket,o.success(`Билет принят`)):l.value=`Не удалось принять билет`}catch(e){l.value=e instanceof Error?e.message:`Не удалось принять билет`}finally{d.value=!1}}}async function C(){let e=window.BarcodeDetector;if(!e||!navigator.mediaDevices?.getUserMedia){l.value=`Сканирование камерой не поддерживается. Введите ссылку вручную.`;return}l.value=``;try{if(m=await navigator.mediaDevices.getUserMedia({video:{facingMode:`environment`}}),p.value=!0,await h(),!f.value)return;f.value.srcObject=m,await f.value.play();let t=new e,n=async()=>{if(!(!p.value||!f.value))try{let e=(await t.detect(f.value))[0]?.rawValue;if(e){s.value=e,T(),await x();return}v=requestAnimationFrame(n)}catch{l.value=`Не удалось распознать QR-код.`,T()}};v=requestAnimationFrame(n)}catch{l.value=`Не удалось открыть камеру. Введите ссылку вручную.`,T()}}function T(){cancelAnimationFrame(v),m?.getTracks().forEach(e=>e.stop()),m=void 0,p.value=!1}function E(){T(),i.value=!1}return ae(i,e=>{e?C():T()}),y(T),(r,a)=>(L(),_(g(Te),{show:i.value,"onUpdate:show":a[1]||=e=>i.value=e},{default:I(()=>[u(g(ve),{style:{width:`min(600px, 94vw)`},title:`Проверка билета`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":I(()=>[u(g(W),{onClick:E},{default:I(()=>[...a[2]||=[n(` x `,-1)]]),_:1})]),default:I(()=>[u(g(q),{vertical:``},{default:I(()=>[p.value?(L(),z(`video`,{key:0,ref_key:`video`,ref:f,class:`ticket-scanner-video`,muted:``,playsinline:``},null,512)):t(``,!0),l.value?(L(),_(g(K),{key:1,type:`error`},{default:I(()=>[n(e(l.value),1)]),_:1})):t(``,!0),p.value?(L(),_(g(W),{key:3,onClick:T},{default:I(()=>[...a[4]||=[n(`Остановить камеру`,-1)]]),_:1})):(L(),_(g(W),{key:2,onClick:C},{default:I(()=>[...a[3]||=[n(`Сканировать QR-код`,-1)]]),_:1})),u(g(Ve),{value:s.value,"onUpdate:value":a[0]||=e=>s.value=e,placeholder:`Или вставьте ссылку на билет`,onKeyup:rt(x,[`enter`])},null,8,[`value`]),u(g(W),{type:`primary`,loading:d.value,onClick:x},{default:I(()=>[...a[5]||=[n(` Проверить билет `,-1)]]),_:1},8,[`loading`]),c.value?(L(),z(M,{key:4},[u(g(K),{type:c.value.status===`active`?`success`:`warning`},{default:I(()=>[n(e(c.value.gameName),1),a[6]||=B(`br`,null,null,-1),n(` Статус: `+e(c.value.status===`active`?`действителен`:`уже использован`)+` `,1),c.value.usedBy?(L(),z(`span`,Sr,` · `+e(c.value.usedBy),1)):t(``,!0),c.value.usedAt?(L(),z(`br`,Cr)):t(``,!0),c.value.usedAt?(L(),z(`span`,wr,`Использован: `+e(g(St)(c.value.usedAt)),1)):t(``,!0)]),_:1},8,[`type`]),c.value.status===`active`&&c.value.gameStatus!==`finish`?(L(),_(g(W),{key:0,type:`primary`,loading:d.value,onClick:S},{default:I(()=>[...a[7]||=[n(` Принять билет `,-1)]]),_:1},8,[`loading`])):t(``,!0)],64)):t(``,!0)]),_:1})]),_:1})]),_:1},8,[`show`]))}}),[[`__scopeId`,`data-v-fe322487`]]);function Er(e,t){let n=at(),r=w([]),i=w(),a=w(),o=w(!1),s=w(!1),c=0,l=!1,u=!1,d=D(()=>({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 ae([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`}),ut(()=>{f()},5e3),ne(()=>{l=!0,c++}),{devices:r,wifi:i,serverTime:a,isLoading:o,hasError:s,summary:d,reload:f}}function Dr(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 Or={class:`center-block-custom`},kr={class:`width1200`},Ar={class:`game-tab-content`},jr=[`href`],Mr={class:`game-tab-content`},Nr={key:1,role:`status`},Pr={class:`screen-overview`},Fr={key:1,class:`screen-preview-placeholder`},Ir={class:`presentation-grid`},Lr={class:`game-tab-content`},Rr={class:`game-tab-content`},zr={class:`qr-block`},Br={class:`game-tab-content`},Vr={key:2},Hr={key:3,class:`answer-results-scroll`},Ur={key:0,class:`answers-empty`},Wr={class:`answers-team-name`},Gr={class:`answers-question-title`},Kr={class:`answers-question-answer`},qr={class:`correct-answer`},Jr={class:`answers-team-row`},Yr={class:`answers-team-answer`},Xr={key:0,class:`give-application-image-block`},Zr=[`src`],Qr=[`src`],$r=[`href`],ei={class:`qr-block`},ti={key:0,class:`answers-empty`},ni=`https://www.sberbank.ru/ru/choise_bank?requisiteNumber=79609361994&bankCode=100000000111`,ri=Le(P({__name:`GamePage`,emits:[`resultsApplied`],setup(i,{emit:a}){let o=a,s=at(),c=mt(),l=w(!1),d=w(!1),f=le(),p=ee(),m=p.params.id;function h(e){return[`settings`,`screens`,`game`,`payment`,`answers`,`state`].includes(e)}let v=typeof p.query.tab==`string`?p.query.tab:``,y=w(h(v)?v:`game`);async function x(e){!h(e)||(e===`state`?!Ie.value:!U.value)||(y.value=e,await f.replace({query:{...p.query,tab:e}}))}function S(e){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),x(`state`))}let T=xe(),E=w({name:``,description:``,format:`online`,location:``,wifiName:``,wifiPassword:``}),O=w(!1),k=w(!1),A=w(!1),j=w(!1),N=w(!1),P=w(!1),te=w(``),ne=w(``),F=w(1),re=w(``),ie=w(!1),oe=w(``),se=w(``),ce=w(!1),R=w({name:``,teamID:``}),ue=w(!1),de=w(!1),fe=w(``),pe=w(``),me=0,he=w(!1),ge=w(1),_e=w([]),ye=w(!1),Ce=w(!1),H=w({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}),we=st(),Ee=Se(),U=D(()=>we.hasAnyRole([`admin`,`organizer`,`author`])),De=0,Oe=0,ke=!1,Ne=!1,G,Pe,Fe=!1,Ie=D(()=>Ee.environment===`venue`&&we.hasAnyRole([`admin`,`organizer`,`developer`])),Le=D(()=>Ie.value&&!U.value);Ct(()=>U.value?{organizerGameID:Number(m)}:{});let{devices:ze,wifi:Be,serverTime:He,isLoading:Ge,hasError:qe,summary:Je,reload:Ye}=Er(()=>Number(p.params.id),()=>Ie.value&&y.value===`state`);ae([()=>p.query.tab,Ie,U],()=>{let e=typeof p.query.tab==`string`?p.query.tab:``;y.value=Le.value?`state`:h(e)&&(e!==`state`||Ie.value)?e:`game`,Le.value&&e!==`state`&&f.replace({query:{...p.query,tab:`state`}})},{immediate:!0}),ae(Le,e=>{e&&(H.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},Kt(Number(m)))},{immediate:!0});let Xe=D(()=>Number(H.value.ID)>0&&Ee.environment===`prod`&&we.hasAnyRole([`admin`,`organizer`,`developer`])),Ze=w(!1),Qe=w(!1),$e=D(()=>Xe.value&&(H.value.export?.state===`preparing`||H.value.export?.state===`ready`)),et=w(!1),tt=w(!1),nt=w(``),rt=D(()=>Ee.environment===`venue`&&H.value.status===`finish`&&we.hasAnyRole([`admin`,`organizer`,`developer`])),it=w(!1),Y=w(!1),ot=w([]),ct=w(``),lt=[{label:`Ожидает ответа`,value:`pending`},{label:`Подтверждено`,value:`confirmed`},{label:`Отменено`,value:`cancelled`}],dt=D(()=>(H.value.teams||[]).filter(e=>e.participationStatus!==`cancelled`).length),ft=w([]),vt=w([]),yt=w(),X=w(!1),wt=0,Tt=Date.now(),Z=w(!1),Et=w(!0),Dt=w(``),Ot=w(),Q=w([]),kt=w(!1),At=w(!1),jt=w(`use`),Mt=0,Nt=w([]),Pt=w([]),Ft=w(),It=w([]),Lt=w(!1),Rt=w(!1),zt=w(100),Bt=D(()=>ft.value.find(e=>e.status===`connected`)||ft.value[0]);ae(()=>Bt.value?.volume,e=>{zt.value=e??100});function Ht(e){Ne||Fe||(Fe=!0,T.warning(`Не удалось включить звуковые уведомления о выдаче улик`),console.error(`Звуковое уведомление о выдаче улик`,e))}async function Ut(){if(!(!U.value||Ne))try{G??=new AudioContext,G.state===`suspended`&&await G.resume();let e=G;Pe??=fetch(vn).then(async t=>{if(!t.ok)throw Error(`Не удалось загрузить звук уведомления`);return e.decodeAudioData(await t.arrayBuffer())}),await Pe}catch(e){Pe=void 0,Ht(e)}}async function Wt(){if(!(!G||G.state!==`running`||!Pe))try{let e=await Pe;if(Ne||G.state!==`running`)return;let t=G.createBufferSource();t.buffer=e,t.connect(G.destination),t.onended=()=>t.disconnect(),t.start()}catch(e){Ht(e)}}async function Gt(){await Ut(),await Wt()}b(()=>{window.addEventListener(`click`,Ut),window.addEventListener(`keydown`,Ut)}),r(()=>{Ne=!0,me++,ar(),window.removeEventListener(`click`,Ut),window.removeEventListener(`keydown`,Ut),G?.close().catch(e=>{console.error(`Закрытие звуковых уведомлений`,e)})});async function Kt(e){let t=++De,n=U.value,r=await s.GetGame({ID:e});Ne||n!==U.value||t<Oe||(Oe=t,U.value&&ke&&Dr(H.value.teams||[],r.game?.teams||[])&&Wt(),ke=!0,H.value=r.game,k.value||=(E.value={name:H.value.name||``,description:H.value.description||``,format:H.value.format||`online`,location:H.value.location||``,wifiName:H.value.wifiName||``,wifiPassword:H.value.wifiPassword||``},!0),H.value.teams=H.value.teams?.sort((e,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(n<r)return 1;let i=e.name||``,a=t.name||``;return i>a?1:i<a?-1:0}))}U.value&&Kt(Number(m));async function qt(){try{let e=await s.GetGameScreens({gameID:Number(m)});if(ft.value=e.screens||[],Dt.value=``,Bt.value?.mode===`SCREEN_MODE_TEAMS`||(jt.value===`edit`?Q.value:Ot.value?.steps)?.some(e=>e.mode===`SCREEN_MODE_TEAMS`)){let e=await s.GetGame({ID:Number(m)});Ft.value=(e.game?.teams??[]).filter(e=>e.participationStatus!==`cancelled`).map(e=>e.name??``).sort((e,t)=>e.localeCompare(t,`ru`))}if((jt.value===`edit`?Q.value:Ot.value?.steps)?.some(e=>e.mode===`SCREEN_MODE_RESULTS`)||Bt.value?.mode===`SCREEN_MODE_RESULTS`){let e=await s.GetGameResults({gameID:Number(m)});Nt.value=e.questions||[],Pt.value=e.teams||[]}}catch(e){Dt.value=e instanceof Error?e.message:`Не удалось получить состояние экранов`}finally{Et.value=!1}}U.value&&qt();async function Jt(e=!1){if(X.value&&!e)return;let t=++wt;try{let e=await s.GetGameMusic({gameID:Number(m)});if(t!==wt)return;vt.value=e.playlists||[],yt.value=e.state,Tt=Date.now()}catch(e){T.error(e instanceof Error?e.message:`Не удалось получить музыку игры`)}}U.value&&Jt();function Yt(){return jt.value===`edit`}async function Xt(){if(Yt()||kt.value||Z.value)return;let e=++Mt;try{let t=await s.GetScreenPlan({gameID:Number(m)});if(e!==Mt||Yt()||Z.value||kt.value)return;Ot.value=t.plan,Q.value=t.plan?.steps?.map(e=>({...e}))||[]}catch(e){T.error(e instanceof Error?e.message:`Не удалось получить план экранов`)}}U.value&&Xt();function Zt(){Q.value.push({mode:`SCREEN_MODE_TEXT`,text:`Новый экран`,timerLabel:`Перерыв`,timerDurationSeconds:600,qrUrl:``,timerType:`SCREEN_TIMER_TYPE_BREAK`}),kt.value=!0,jt.value=`edit`}function Qt(){Ot.value&&(Q.value=Ot.value.steps?.map(e=>({...e}))||[],jt.value=`edit`)}function $t(){kt.value&&!window.confirm(`Отменить несохранённые изменения плана?`)||(Q.value=Ot.value?.steps?.map(e=>({...e}))||[],kt.value=!1,jt.value=`use`)}function tn(e){Q.value.splice(e,1),kt.value=!0}function nn(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),kt.value=!0}function rn(){kt.value=!0}function on(){Q.value=[],rn()}async function cn(){if(At.value)return;let e=Q.value.findIndex(e=>e.mode===`SCREEN_MODE_TEXT`&&!e.text?.trim()||e.mode===`SCREEN_MODE_QR`&&!_t(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}Mt+=1,At.value=!0;try{let e=Math.min(Ot.value?.currentStep||0,Math.max(0,Q.value.length-1)),t=await s.SaveScreenPlan({gameID:Number(m),steps:Q.value,currentStep:e});Ot.value=t.plan,Q.value=t.plan?.steps?.map(e=>({...e}))||[],kt.value=!1,jt.value=`use`,T.success(t.plan?`План экранов сохранён`:`План экранов удалён`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось сохранить план экранов`)}finally{At.value=!1}}async function un(e){if(!(kt.value||!Ot.value||Z.value||At.value)){Z.value=!0,Mt+=1;try{let t=await s.SetScreenPlanStep({gameID:Number(m),currentStep:e});Ot.value=t.plan,await qt()}catch(e){T.error(e instanceof Error?e.message:`Не удалось перейти на шаг плана`)}finally{Z.value=!1}}}async function dn(e,t){if(!(Z.value||At.value||kt.value||e!==`SCREEN_MODE_TIMER`&&e!==`SCREEN_MODE_INTRO`&&e!==`SCREEN_MODE_CONCLUSION`)){Z.value=!0;try{await s.SendScreenCommand({gameID:Number(m),command:t,positionMs:0,volume:Math.max(0,Math.min(100,Math.round(zt.value)))}),await qt()}catch(e){T.error(e instanceof Error?e.message:`Не удалось управлять экраном`)}finally{Z.value=!1}}}async function fn(e,t){if(!Ce.value){Ce.value=!0;try{await s.BindScreen({screenID:e,accessToken:t,gameID:Number(m),initializeAudio:!1}),T.success(`Экран привязан к игре`),await qt()}catch(e){T.error(e instanceof Error?e.message:`Не удалось привязать экран`)}finally{Ce.value=!1}}}async function mn(){if(Lt.value||Rt.value)return;let e=await s.GetGameMap({gameID:Number(m)});Lt.value||Rt.value||(It.value=e.items||[])}U.value&&mn();async function hn(e,t=e.hidden){Lt.value=!0;try{await s.UpdateGameMapItem({gameID:Number(m),kind:e.kind,itemID:e.itemID,x:Math.round(e.x||0),y:Math.round(e.y||0),hidden:t})}finally{Lt.value=!1}}async function gn(e,t=e.hidden){await hn(e,t),await mn()}async function yn(e){if(!Z.value){Z.value=!0;try{await s.SetScreenSound({screenID:e.ID,soundEnabled:!0}),await qt()}catch(e){T.error(e instanceof Error?e.message:`Не удалось назначить звук`)}finally{Z.value=!1}}}async function bn(e){if(X.value)return;X.value=!0,wt+=1;let t=yt.value;try{let n=await s.SetGameMusic({gameID:Number(m),playlistID:e.playlistID??t?.playlist?.ID??0,trackIndex:e.trackIndex??t?.trackIndex??0,positionMs:e.positionMs??(t?.positionMs??0)+(t?.playback===`MUSIC_PLAYBACK_PLAYING`?Math.max(0,Date.now()-Tt):0),volume:e.volume??t?.volume??100,loop:e.loop??t?.loop??!1,playback:e.playback??t?.playback??`MUSIC_PLAYBACK_STOPPED`});yt.value=n.state,Tt=Date.now()}catch(e){T.error(e instanceof Error?e.message:`Не удалось изменить музыку`)}finally{X.value=!1}}async function xn(e){if(!(X.value||!e.trim())){X.value=!0,wt+=1;try{await s.CreatePlaylist({name:e.trim()}),await Jt(!0)}catch(e){T.error(e instanceof Error?e.message:`Не удалось создать плейлист`)}finally{X.value=!1}}}async function Sn(e,t){if(!(X.value||!t.trim())){X.value=!0,wt+=1;try{await s.UpdatePlaylist({ID:e,name:t.trim()}),await Jt(!0)}catch(e){T.error(e instanceof Error?e.message:`Не удалось переименовать плейлист`)}finally{X.value=!1}}}async function Cn(e,t){if(!X.value){X.value=!0,wt+=1;try{await s.ReorderPlaylistTracks({playlistID:e,trackIDs:t}),await Jt(!0)}catch(e){T.error(e instanceof Error?e.message:`Не удалось сохранить порядок треков`)}finally{X.value=!1}}}async function Tn(e){if(!X.value){X.value=!0,wt+=1;try{await s.DeletePlaylist({ID:e}),await Jt(!0)}catch(e){T.error(e instanceof Error?e.message:`Не удалось удалить плейлист`)}finally{X.value=!1}}}async function En(e,t){if(!X.value){if(!/\.mp3$/i.test(t.name)||t.size===0||t.size>64*1024*1024){T.error(`Выберите непустой MP3 размером до 64 МиБ`);return}X.value=!0,wt+=1;try{let n=On(new Uint8Array(await t.arrayBuffer()));await s.UploadPlaylistTrack({playlistID:e,name:t.name,filename:t.name,data:n}),await Jt(!0)}catch(e){T.error(e instanceof Error?e.message:`Не удалось загрузить MP3`)}finally{X.value=!1}}}async function Dn(e,t){if(!X.value){X.value=!0,wt+=1;try{await s.DeletePlaylistTrack({playlistID:e,trackID:t}),await Jt(!0)}catch(e){T.error(e instanceof Error?e.message:`Не удалось удалить трек`)}finally{X.value=!1}}}function On(e){let t=``;for(let n=0;n<e.length;n+=32768)t+=String.fromCharCode(...e.subarray(n,n+32768));return btoa(t)}async function kn(e){if(!Z.value){Z.value=!0;try{await s.UnbindScreen({screenID:e.ID}),await qt()}catch(e){T.error(e instanceof Error?e.message:`Не удалось отвязать экран`)}finally{Z.value=!1}}}async function An(e,t,n=!1){let r=`/team-story/`+e+`?password=`+t;if(n){window.open(r,`_blank`);return}f.push(r)}async function jn(){if(!(!Xe.value||Ze.value||et.value)){Ze.value=!0;try{let e=await s.StartGameExport({ID:H.value.ID});H.value.export=e.export}catch(e){T.error(e instanceof Error?e.message:`Не удалось подготовить пакет`)}finally{Ze.value=!1}}}function Mn(){!$e.value||Ze.value||et.value||(nt.value=H.value.export?.ID||``,tt.value=!0)}async function Pn(){if(!(!Xe.value||!nt.value||et.value)){et.value=!0;try{await s.ResetGameLocalMode({ID:H.value.ID,exportID:nt.value}),tt.value=!1,await Kt(Number(H.value.ID)),T.success(`Локальный режим сброшен`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось сбросить локальный режим`)}finally{et.value=!1}}}async function Fn(){if(!(!Xe.value||Qe.value||H.value.export?.state!==`ready`)){Qe.value=!0;try{let{blob:e,filename:t}=await c.downloadGamePackage(H.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{Qe.value=!1}}}function In({fileList:e}){Y.value||(ot.value=e.slice(-1),ct.value=``)}async function Ln(){if(!(!rt.value||it.value)){it.value=!0;try{let{blob:e,filename:t}=await c.downloadGameResultsPackage(H.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{it.value=!1}}}async function Rn(){if(!Xe.value||Y.value)return;let e=ot.value[0]?.file;if(!e||e.size===0){ct.value=`Выберите непустой ZIP-файл`;return}if(!e.name.toLowerCase().endsWith(`.zip`)){ct.value=`Выберите файл с расширением .zip`;return}if(e.size>1024**3){ct.value=`Размер пакета не должен превышать 1 ГиБ`;return}Y.value=!0,ct.value=``;try{await c.applyGameResultsPackage(H.value.ID,e),T.success(`Результаты приняты`),o(`resultsApplied`)}catch(e){ct.value=e instanceof Error?e.message:`Не удалось применить результаты`}finally{Y.value=!1}}async function zn(){let e=H.value.ID;if(!(!U.value||!e||d.value)){d.value=!0;try{let{blob:t,filename:n}=await c.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 Bn(){if(!(l.value||!H.value.teams?.length)){l.value=!0;try{let{blob:e,filename:t}=await c.downloadTeamQR(H.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{l.value=!1}}}function Vn(){f.push(`/games/`+m+`/results`)}async function Hn(){if(!O.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}O.value=!0;try{await s.UpdateGame({ID:H.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:H.value.startAt,scenarioID:H.value.scenario?.ID}),await Kt(H.value.ID),T.success(`Настройки игры сохранены`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось сохранить настройки игры`)}finally{O.value=!1}}}let Un=w({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}),Wn=w(``),Kn=w({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}),qn=w({name:``,image:``,file_type:``}),Jn=window.location.href;function Yn(e,t){Un.value=e,qn.value=t,A.value=!0}async function Zn(){if(F.value<1||F.value>8){T.error(`Укажите от 1 до 8 игроков`);return}await s.AddTeam({gameID:H.value.ID,name:te.value,captainEmail:ne.value.trim(),participantsCount:F.value}),await Kt(H.value.ID),j.value=!1,ne.value=``,F.value=1}async function Qn(){await s.GiveTeamApplications({ID:Un.value.ID,name:qn.value.name}),await Kt(H.value.ID),A.value=!1}async function $n(e){Kn.value=e,N.value=!0}async function er(){await s.DeleteTeam({ID:Kn.value.ID}),await Kt(H.value.ID),N.value=!1}async function tr(){await s.DeleteGame({ID:H.value.ID}),T.success(`Игра удалена`),f.push(`/games`)}function nr(e,t){let n=new URL(`/team-story/${e}`,window.location.origin);return n.searchParams.set(`password`,t),n.toString()}function rr(e){lr(nr(e.ID,e.password),`Подсмотреть игру`)}function ir(e){if(Ee.environment!==`venue`||!e.ID||!e.name||e.participationStatus===`cancelled`){T.error(`У команды нет данных для печати чека`);return}R.value={name:e.name,teamID:e.ID},ce.value=!0}ae([ce,()=>R.value.teamID,U,()=>Ee.environment],sr);function ar(){fe.value&&URL.revokeObjectURL(fe.value),fe.value=``}async function sr(){let e=++me;if(ar(),pe.value=``,de.value=!1,!(!ce.value||!U.value||Ee.environment!==`venue`)){de.value=!0;try{let{blob:t}=await c.downloadTeamReceipt(Number(m),R.value.teamID);e===me&&(fe.value=URL.createObjectURL(t))}catch(t){e===me&&(pe.value=t instanceof Error?t.message:`Не удалось подготовить чек`)}finally{e===me&&(de.value=!1)}}}async function cr(){if(!(!fe.value||ue.value||de.value)){ue.value=!0;try{await s.PrintTeamReceipt({gameID:Number(m),teamID:R.value.teamID}),T.success(`Чек напечатан`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось напечатать чек`)}finally{ue.value=!1}}}async function lr(e,t){oe.value=e,se.value=t,ie.value=!0}async function ur(){if(!(ye.value||!H.value.ID)){ye.value=!0;try{let e=await s.IssueGameTickets({gameID:H.value.ID,count:ge.value});_e.value=e.tickets||[],T.success(`Выпущено билетов: ${_e.value.length}`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось выпустить билеты`)}finally{ye.value=!1}}}ut(()=>{!U.value||Y.value||(Kt(Number(m)),qt(),Jt(),Xt(),mn())},2e3);async function dr(){await s.ResetGame({ID:H.value.ID}),await Kt(H.value.ID)}async function fr(){await s.StartGame({ID:H.value.ID}),await Kt(H.value.ID)}async function pr(){await s.PauseGame({ID:H.value.ID}),await Kt(H.value.ID)}async function mr(){await s.PlayGame({ID:H.value.ID}),await Kt(H.value.ID)}async function hr(){await s.FinishGame({ID:H.value.ID}),await Kt(H.value.ID)}let gr=w(!1),_r=w([]),yr=w(0),br=w(0),Sr=w([]),Cr=w([]),wr=w([]),ri=w([]),ii=w(!1),ai=w(!1);async function oi(){ii.value=!0,ai.value=!1;try{let e=await s.GetGameResults({gameID:Number(m)});wr.value=e.questions||[],ri.value=e.teams||[]}catch(e){ai.value=!0,console.error(`Не удалось загрузить таблицу результатов`,e)}finally{ii.value=!1}}let si=w({});function ci(e,t){return(e??``)+`:`+(t??``)}function li(e,t){return(e.answers||[]).find(e=>e.questionCode==t)?.answer||``}function ui(e,t){si.value[e]=t===null?void 0:t}async function di(){let e=await s.GetGameAnswers({gameID:Number(m)});Sr.value=e.questions||[],Cr.value=e.teams||[];let t={};for(let e of Cr.value)for(let n of e.answers||[])t[ci(e.team?.ID,n.questionCode)]=n.score;si.value=t,await oi()}async function fi(){gr.value=!0;let e=await s.GetGameReviewsForModeration({gameID:Number(m)});_r.value=e.reviews||[],yr.value=e.averageRating||0,br.value=e.reviewsCount||0}async function pi(e,t){await s.ModerateGameReview({ID:e.ID,status:t}),await fi()}async function mi(){for(let e of Sr.value)for(let t of Cr.value){let n=si.value[ci(t.team?.ID,e.code)];await s.SetTeamAnswerScore({ID:t.team?.ID,questionCode:e.code,score:n??void 0})}T.success(`Баллы сохранены`),await di()}ae([U,y],([e,t])=>{e&&t===`answers`&&di()},{immediate:!0});function hi(){let e=new Date;return new Date(e.getTime()-e.getTimezoneOffset()*6e4)}function gi(e,t){if(e==``)return`Игра ещё не началась`;let n=xt(e),r=hi();t!=``&&(r=xt(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 _i=w(``);return ut(()=>{_i.value=gi(H.value.startedAt||``,H.value.endedAt||``)},1e3),(r,i)=>(L(),z(M,null,[B(`div`,Or,[B(`div`,kr,[U.value&&(H.value.export?.state===`preparing`||H.value.export?.state===`ready`)?(L(),_($,{key:0},{default:I(()=>[u(g(K),{type:`info`,title:H.value.export.state===`ready`?`Игра в офлайн-режиме`:`Подготовка офлайн-пакета`},{default:I(()=>[n(e(H.value.export.state===`ready`?`Изменения на онлайн-сервере не синхронизируются с офлайн-площадкой.`:`Создаётся пакет для офлайн-площадки.`),1)]),_:1},8,[`title`])]),_:1})):t(``,!0),Le.value?(L(),_($,{key:1},{default:I(()=>[B(`h2`,null,e(H.value.name),1)]),_:1})):t(``,!0),u(g(je),{value:y.value,type:`line`,animated:``,"onUpdate:value":x},{default:I(()=>[U.value?(L(),_(g(Ae),{key:0,name:`settings`,tab:`Настройки`},{default:I(()=>[B(`div`,Ar,[u($,null,{default:I(()=>[u(g(J),{justify:`end`},{default:I(()=>[u(g(W),{loading:d.value,disabled:!H.value.ID||d.value,onClick:zn},{default:I(()=>[...i[49]||=[n(` Скачать материалы для печати `,-1)]]),_:1},8,[`loading`,`disabled`]),u(g(W),{quaternary:``,onClick:i[0]||=e=>lr(g(Jn),`Админка`)},{default:I(()=>[...i[50]||=[n(`QR`,-1)]]),_:1}),H.value.status==`finish`?(L(),_(g(W),{key:0,quaternary:``,onClick:i[1]||=e=>Vn()},{default:I(()=>[u(g(V),{class:`settings-icon`},{default:I(()=>[u(g(_n))]),_:1}),i[51]||=n(` Итоги `,-1)]),_:1})):t(``,!0),(H.value.teams?.length||0)==0?(L(),_(g(W),{key:1,type:`error`,quaternary:``,onClick:i[2]||=e=>P.value=!0},{default:I(()=>[...i[52]||=[n(` Удалить игру `,-1)]]),_:1})):t(``,!0)]),_:1})]),_:1}),u($,null,{default:I(()=>[i[60]||=B(`p`,{class:`screens-title`},`Настройки игры`,-1),u(g(q),{vertical:``},{default:I(()=>[i[53]||=B(`p`,null,`Название`,-1),u(g(Ve),{value:E.value.name,"onUpdate:value":i[3]||=e=>E.value.name=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),i[54]||=B(`p`,{class:`settings-header`},`Формат игры`,-1),u(g(Me),{value:E.value.format,"onUpdate:value":i[4]||=e=>E.value.format=e,options:[{label:`Online`,value:`online`},{label:`Offline`,value:`offline`}],"aria-label":`Формат игры`},null,8,[`value`]),i[55]||=B(`p`,{class:`settings-header`},`Описание`,-1),u(g(Ve),{value:E.value.description,"onUpdate:value":i[5]||=e=>E.value.description=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`]),i[56]||=B(`p`,{class:`settings-header`},`Место проведения`,-1),u(g(Ve),{value:E.value.location,"onUpdate:value":i[6]||=e=>E.value.location=e,type:`text`,placeholder:`Оставьте пустым для онлайн-игры`},null,8,[`value`]),i[57]||=B(`p`,{class:`settings-header`},`Wi-Fi для игроков`,-1),u(g(Ve),{value:E.value.wifiName,"onUpdate:value":i[7]||=e=>E.value.wifiName=e,"aria-label":`Название сети Wi-Fi`,placeholder:`Название сети Wi-Fi`},null,8,[`value`]),u(g(Ve),{value:E.value.wifiPassword,"onUpdate:value":i[8]||=e=>E.value.wifiPassword=e,"aria-label":`Пароль Wi-Fi`,type:`password`,"show-password-on":`click`,placeholder:`Без пароля — оставьте пустым`,maxlength:64},null,8,[`value`]),i[58]||=B(`p`,null,` Название сети и пароль будут напечатаны рядом с QR-кодом команды в PDF и чеках. Оставьте название сети пустым, чтобы убрать инструкцию. `,-1)]),_:1}),u(g(J),{justify:`end`,class:`settings-actions`},{default:I(()=>[u(g(W),{loading:O.value,disabled:O.value,onClick:i[9]||=e=>Hn()},{default:I(()=>[...i[59]||=[n(`Сохранить изменения`,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1}),rt.value?(L(),_($,{key:0},{default:I(()=>[u(g(W),{loading:it.value,disabled:it.value,onClick:Ln},{default:I(()=>[...i[61]||=[n(` Скачать результаты `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})):t(``,!0),Xe.value?(L(),_($,{key:1},{default:I(()=>[i[65]||=B(`p`,{class:`screens-title`},`Возврат результатов с площадки`,-1),u(g(q),{vertical:``},{default:I(()=>[u(g(K),{type:`warning`},{default:I(()=>[...i[62]||=[n(` Команды, билеты, результаты и игровой сценарий будут заменены данными пакета. Онлайн-правки этих данных потеряются. Оформление и музыка сохраняются. `,-1)]]),_:1}),u(g(Re),{"file-list":ot.value,"default-upload":!1,max:1,accept:`.zip`,disabled:Y.value,onChange:In},{default:I(()=>[u(g(W),{disabled:Y.value},{default:I(()=>[...i[63]||=[n(`Выбрать ZIP результатов`,-1)]]),_:1},8,[`disabled`])]),_:1},8,[`file-list`,`disabled`]),ct.value?(L(),_(g(K),{key:0,type:`error`,role:`alert`},{default:I(()=>[n(e(ct.value),1)]),_:1})):t(``,!0),u(g(W),{loading:Y.value,disabled:Y.value||!ot.value.length,onClick:Rn},{default:I(()=>[...i[64]||=[n(` Применить ZIP и перезаписать результаты `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})):t(``,!0),Xe.value?(L(),_($,{key:2},{default:I(()=>[i[73]||=B(`p`,{class:`screens-title`},`Передача игры на площадку`,-1),u(g(q),{vertical:``},{default:I(()=>[i[71]||=B(`p`,null,` Пакет содержит снимок на момент подготовки. Последующие онлайн-изменения в него не попадут. На площадке игра начнётся с нуля: ходы, ответы и баллы в пакет не входят. Статус и прогресс игры на сервере сохраняются. Готовность пакета не подтверждает импорт на площадку. `,-1),H.value.export?.state===`preparing`?(L(),_(g(K),{key:0,type:`info`,role:`status`},{default:I(()=>[...i[66]||=[n(`Подготовка пакета…`,-1)]]),_:1})):H.value.export?.state===`ready`?(L(),_(g(K),{key:1,type:`success`,role:`status`},{default:I(()=>[...i[67]||=[n(`Пакет готов`,-1)]]),_:1})):H.value.export?.state===`failed`?(L(),_(g(K),{key:2,type:`error`,role:`alert`},{default:I(()=>[n(e(H.value.export.failure||`Не удалось подготовить пакет`),1)]),_:1})):t(``,!0),H.value.export?.state===`ready`?(L(),_(g(W),{key:3,loading:Qe.value,disabled:Qe.value,onClick:Fn},{default:I(()=>[...i[68]||=[n(`Скачать пакет`,-1)]]),_:1},8,[`loading`,`disabled`])):t(``,!0),u(g(W),{loading:Ze.value,disabled:Ze.value||et.value,onClick:jn},{default:I(()=>[...i[69]||=[n(` Подготовить новый пакет `,-1)]]),_:1},8,[`loading`,`disabled`]),i[72]||=B(`p`,null,` Новый пакет заменяет текущую подготовку. Результаты ранее скачанных пакетов можно загрузить позже. `,-1),$e.value?(L(),_(g(W),{key:4,type:`warning`,loading:et.value,disabled:Ze.value||et.value,onClick:Mn},{default:I(()=>[...i[70]||=[n(` Сбросить локальный режим `,-1)]]),_:1},8,[`loading`,`disabled`])):t(``,!0)]),_:1})]),_:1})):t(``,!0),u($,null,{default:I(()=>[i[76]||=B(`p`,{class:`screens-title`},`Выпуск билетов`,-1),u(g(q),{vertical:``},{default:I(()=>[u(g(Vt),{value:ge.value,"onUpdate:value":i[10]||=e=>ge.value=e,min:1,max:100},null,8,[`value`]),(L(!0),z(M,null,C(_e.value,t=>(L(),z(`div`,{key:t.ID,class:`issued-ticket`},[B(`div`,null,`Билет №`+e(t.ID),1),B(`a`,{href:t.URL,class:`payment-link`,target:`_blank`,rel:`noreferrer`},` Открыть страницу билета `,8,jr),u(g(W),{size:`small`,onClick:e=>lr(t.URL,`Билет №${t.ID}`)},{default:I(()=>[...i[74]||=[n(` Показать QR `,-1)]]),_:1},8,[`onClick`])]))),128))]),_:1}),u(g(J),{justify:`end`,class:`settings-actions`},{default:I(()=>[u(g(W),{loading:ye.value,disabled:ye.value,onClick:i[11]||=e=>ur()},{default:I(()=>[...i[75]||=[n(` Выпустить `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})])]),_:1})):t(``,!0),U.value?(L(),_(g(Ae),{key:1,name:`screens`,tab:`Экраны`},{default:I(()=>[B(`div`,Mr,[Dt.value?(L(),_(g(K),{key:0,type:`error`},{default:I(()=>[n(e(Dt.value),1)]),_:1})):t(``,!0),Et.value?(L(),z(`p`,Nr,`Загрузка экранов…`)):t(``,!0),B(`div`,Pr,[u($,null,{default:I(()=>[i[77]||=B(`h3`,{class:`screens-title`},`Превью экрана`,-1),Bt.value?.status===`connected`?(L(),_(bt,{key:0,state:Bt.value,questions:Nt.value,teams:Pt.value,"team-names":Ft.value},null,8,[`state`,`questions`,`teams`,`team-names`])):(L(),z(`div`,Fr,`Экран не подключён`))]),_:1}),u(Xn,{screens:ft.value,"screen-binding":Ce.value,"is-busy":Z.value,onBind:fn,onSetSound:yn,onUnbind:kn},null,8,[`screens`,`screen-binding`,`is-busy`])]),B(`div`,Ir,[u(Gn,{screens:ft.value,"preview-questions":Nt.value,"preview-teams":Pt.value,"team-names":Ft.value,"screen-plan":Ot.value,"screen-plan-draft":Q.value,"screen-plan-saving":At.value,"screen-plan-mode":jt.value,"screen-volume":zt.value,"is-busy":Z.value,onAddStep:Zt,onEdit:Qt,onCancel:$t,onRemoveStep:tn,onMoveStep:nn,onDirty:rn,onClearPlan:on,onSave:cn,onSetStep:un,onCommand:dn,"onUpdate:screenVolume":i[12]||=e=>zt.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`]),u(Nn,{playlists:vt.value,music:yt.value,"is-busy":X.value,onSetMusic:bn,onCreatePlaylist:xn,onRenamePlaylist:Sn,onReorderTracks:Cn,onDeletePlaylist:Tn,onUploadTrack:En,onDeleteTrack:Dn},null,8,[`playlists`,`music`,`is-busy`])])])]),_:1})):t(``,!0),U.value?(L(),_(g(Ae),{key:2,name:`game`,tab:`Игра`},{default:I(()=>[B(`div`,Lr,[u($,null,{default:I(()=>[u(g(J),{justify:`space-between`},{default:I(()=>[u(g(q),null,{default:I(()=>[u(g(be),{type:`info`},{default:I(()=>[n(e(_i.value),1)]),_:1}),g(St)(H.value.startAt)?(L(),_(g(be),{key:0,type:`info`},{default:I(()=>[n(` Начало: `+e(g(St)(H.value.startAt)),1)]),_:1})):t(``,!0)]),_:1}),u(g(J),{justify:`end`},{default:I(()=>[u(g(W),{onClick:Gt},{default:I(()=>[...i[78]||=[n(`Проверить звук`,-1)]]),_:1}),H.value.status==`draft`?t(``,!0):(L(),_(g(W),{key:0,type:`info`,dashed:``,"aria-label":`Сбросить игру`,onClick:i[13]||=e=>dr()},{default:I(()=>[u(g(V),null,{default:I(()=>[u(g(pn))]),_:1})]),_:1})),H.value.status==`draft`?(L(),_(g(W),{key:1,type:`info`,dashed:``,"aria-label":`Начать игру`,onClick:i[14]||=e=>fr()},{default:I(()=>[u(g(V),null,{default:I(()=>[u(g(ln))]),_:1})]),_:1})):t(``,!0),H.value.status==`pause`?(L(),_(g(W),{key:2,type:`info`,dashed:``,"aria-label":`Продолжить игру`,onClick:i[15]||=e=>mr()},{default:I(()=>[u(g(V),null,{default:I(()=>[u(g(ln))]),_:1})]),_:1})):t(``,!0),H.value.status==`run`?(L(),_(g(W),{key:3,type:`info`,dashed:``,"aria-label":`Поставить игру на паузу`,onClick:i[16]||=e=>pr()},{default:I(()=>[u(g(V),null,{default:I(()=>[u(g(sn))]),_:1})]),_:1})):t(``,!0),H.value.status==`finish`?t(``,!0):(L(),_(g(W),{key:4,type:`info`,dashed:``,"aria-label":`Завершить игру`,onClick:i[17]||=e=>hr()},{default:I(()=>[u(g(V),null,{default:I(()=>[u(g(an))]),_:1})]),_:1}))]),_:1})]),_:1})]),_:1}),u(wn,{"map-items":It.value,teams:H.value.teams||[],onSaveItem:gn,onDragging:i[18]||=e=>Rt.value=e,onGiveApplication:Yn},null,8,[`map-items`,`teams`]),u(g(J),{justify:`space-between`,align:`center`},{default:I(()=>[u(g(be),{bordered:!1,type:`info`},{default:I(()=>[n(` Участвуют команд: `+e(dt.value),1)]),_:1}),dt.value?(L(),_(g(W),{key:0,quaternary:``,loading:l.value,disabled:l.value,onClick:i[19]||=e=>Bn()},{default:I(()=>[...i[79]||=[n(` QR команд `,-1)]]),_:1},8,[`loading`,`disabled`])):t(``,!0)]),_:1}),u(vr,{teams:H.value.teams||[],"can-print-receipts":g(Ee).environment===`venue`,"participation-options":lt,onAdd:i[20]||=e=>j.value=!0,onOpenQr:rr,onPrint:ir,onPreview:i[21]||=(e,t)=>An(e,t,!0),onDelete:$n,onGiveApplication:Yn},null,8,[`teams`,`can-print-receipts`])])]),_:1})):t(``,!0),U.value?(L(),_(g(Ae),{key:3,name:`payment`,tab:`Оплата`},{default:I(()=>[B(`div`,Rr,[u($,null,{default:I(()=>[u(g(J),{align:`center`,justify:`space-between`},{default:I(()=>[i[81]||=B(`p`,{class:`screens-title`},`Билеты`,-1),u(g(W),{size:`small`,onClick:i[22]||=e=>he.value=!0},{default:I(()=>[...i[80]||=[n(` Проверить билет `,-1)]]),_:1})]),_:1})]),_:1}),u($,null,{default:I(()=>[i[82]||=B(`p`,{class:`screens-title`},`Оплата игры`,-1),B(`div`,zr,[u(g(We),{value:ni,size:300,padding:0})]),B(`p`,null,[B(`a`,{href:ni,class:`payment-link`,target:`_blank`,rel:`noreferrer`},` Открыть ссылку оплаты `)])]),_:1})])]),_:1})):t(``,!0),U.value?(L(),_(g(Ae),{key:4,name:`answers`,tab:`Проверка ответов`},{default:I(()=>[B(`div`,Br,[u($,null,{default:I(()=>[i[89]||=B(`p`,{class:`screens-title`},`Таблица результатов`,-1),i[90]||=B(`p`,null,`Сохранённые оценки. Таблица обновляется после сохранения баллов.`,-1),ii.value?(L(),_(g(Ke),{key:0},{default:I(()=>[...i[83]||=[n(`Загрузка результатов…`,-1)]]),_:1})):ai.value?(L(),_(g(K),{key:1,type:`error`},{default:I(()=>[...i[84]||=[n(` Не удалось загрузить таблицу результатов. `,-1)]]),_:1})):ri.value.length===0?(L(),z(`p`,Vr,`Результатов пока нет.`)):(L(),z(`div`,Hr,[u(g(en),{"single-line":!1},{default:I(()=>[B(`thead`,null,[B(`tr`,null,[i[85]||=B(`th`,{scope:`col`},`Место`,-1),i[86]||=B(`th`,{scope:`col`},`Команда`,-1),(L(!0),z(M,null,C(wr.value,t=>(L(),z(`th`,{key:t.code,scope:`col`},e(t.code),1))),128)),i[87]||=B(`th`,{scope:`col`},`Сумма`,-1),i[88]||=B(`th`,{scope:`col`},`Поездки`,-1)])]),B(`tbody`,null,[(L(!0),z(M,null,C(ri.value,t=>(L(),z(`tr`,{key:t.team?.ID},[B(`td`,null,e(t.place),1),B(`td`,null,e(t.team?.name),1),(L(!0),z(M,null,C(wr.value,n=>(L(),z(`td`,{key:n.code},e(t.answers?.find(e=>e.questionCode===n.code)?.score??`—`),1))),128)),B(`td`,null,e(t.totalScore),1),B(`td`,null,e(t.actionsCount),1)]))),128))])]),_:1})]))]),_:1}),Sr.value.length===0||Cr.value.length===0?(L(),z(`div`,Ur,` Вопросы дела не заданы или команды ещё не отвечали. `)):(L(!0),z(M,{key:1},C(Cr.value,t=>(L(),_($,{key:t.team?.ID},{default:I(()=>[B(`h3`,Wr,e(t.team?.name),1),(L(!0),z(M,null,C(Sr.value,n=>(L(),z(`div`,{key:n.code,class:`answers-question`},[B(`p`,Gr,e(n.code)+`: `+e(n.text),1),B(`p`,Kr,[B(`span`,qr,e(n.answer||`—`),1)]),B(`div`,Jr,[B(`div`,Yr,e(li(t,n.code)||`—`),1),u(g(Vt),{value:si.value[ci(t.team?.ID,n.code)],"onUpdate:value":e=>ui(ci(t.team?.ID,n.code),e),placeholder:`Балл`,class:`answers-score-input`},null,8,[`value`,`onUpdate:value`])])]))),128))]),_:2},1024))),128)),u(g(J),{justify:`end`},{default:I(()=>[u(g(W),{onClick:i[23]||=e=>mi(),disabled:Sr.value.length===0||Cr.value.length===0},{default:I(()=>[...i[91]||=[n(` Сохранить баллы `,-1)]]),_:1},8,[`disabled`])]),_:1})])]),_:1})):t(``,!0),Ie.value?(L(),_(g(Ae),{key:5,name:`state`,tab:`Состояние`,"tab-props":{tabindex:0,role:`tab`,"aria-selected":y.value===`state`,onKeydown:S}},{default:I(()=>[u(or,{devices:g(ze),wifi:g(Be),"server-time":g(He),"is-loading":g(Ge),"has-error":g(qe),summary:g(Je),onReload:g(Ye)},null,8,[`devices`,`wifi`,`server-time`,`is-loading`,`has-error`,`summary`,`onReload`])]),_:1},8,[`tab-props`])):t(``,!0)]),_:1},8,[`value`])])]),Xe.value?(L(),_(g(Te),{key:0,show:tt.value,"onUpdate:show":i[25]||=e=>tt.value=e,"mask-closable":!et.value,"close-on-esc":!et.value},{default:I(()=>[u(g(ve),{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:I(()=>[...i[92]||=[B(`span`,{id:`reset-local-mode-title`},`Сбросить локальный режим?`,-1)]]),footer:I(()=>[u(g(J),{justify:`end`},{default:I(()=>[u(g(W),{disabled:et.value,onClick:i[24]||=e=>tt.value=!1},{default:I(()=>[...i[93]||=[n(` Отмена `,-1)]]),_:1},8,[`disabled`]),u(g(W),{type:`warning`,loading:et.value,disabled:et.value,onClick:Pn},{default:I(()=>[...i[94]||=[n(` Вернуть в обычный режим `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),default:I(()=>[i[95]||=B(`p`,{id:`reset-local-mode-description`},` Игра вернётся в обычный режим на сервере. Данные игры сохранятся. Локальная площадка продолжит работать отдельно; её результаты можно будет загрузить позже. `,-1)]),_:1})]),_:1},8,[`show`,`mask-closable`,`close-on-esc`])):t(``,!0),U.value?(L(),_(Tr,{key:1,show:he.value,"onUpdate:show":i[26]||=e=>he.value=e},null,8,[`show`])):t(``,!0),U.value&&g(Ee).environment===`venue`?(L(),_(xr,{key:2,show:ce.value,"onUpdate:show":i[27]||=e=>ce.value=e,name:R.value.name,preview:fe.value,"preparation-error":pe.value,"is-preparing":de.value,"is-printing":ue.value,onPrint:cr},null,8,[`show`,`name`,`preview`,`preparation-error`,`is-preparing`,`is-printing`])):t(``,!0),U.value?(L(),_(g(Te),{key:3,show:A.value,"onUpdate:show":i[30]||=e=>A.value=e},{default:I(()=>[u(g(ve),{style:{width:`600px`},title:`Настройки игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":I(()=>[u(g(W),{onClick:i[28]||=e=>A.value=!1},{default:I(()=>[...i[96]||=[n(` x `,-1)]]),_:1})]),footer:I(()=>[u(g(J),{justify:`end`},{default:I(()=>[u(g(W),{onClick:i[29]||=e=>Qn(),ghost:``},{default:I(()=>[...i[99]||=[n(` Выдать `,-1)]]),_:1})]),_:1})]),default:I(()=>[u(g(q),{vertical:``},{default:I(()=>[i[97]||=B(`p`,null,`Команда`,-1),B(`h3`,null,e(Un.value.name),1),i[98]||=B(`p`,null,`Улика`,-1),B(`h3`,null,e(qn.value.name),1),g(ht)(qn.value)==`image`&&qn.value.image?(L(),z(`div`,Xr,[B(`img`,{src:g(gt)(qn.value.image),class:`give-application-image`},null,8,Zr)])):g(ht)(qn.value)==`audio`&&qn.value.image?(L(),z(`audio`,{key:1,src:g(gt)(qn.value.image),controls:``,preload:`none`,class:`give-application-audio`},null,8,Qr)):g(ht)(qn.value)==`pdf`&&qn.value.image?(L(),z(`a`,{key:2,href:g(gt)(qn.value.image),target:`_blank`,rel:`noopener`,class:`give-application-pdf-link`},` PDF `,8,$r)):t(``,!0)]),_:1})]),_:1})]),_:1},8,[`show`])):t(``,!0),U.value?(L(),_(g(Te),{key:4,show:j.value,"onUpdate:show":i[36]||=e=>j.value=e},{default:I(()=>[u(g(ve),{style:{width:`600px`},title:`Создание команды`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":I(()=>[u(g(W),{onClick:i[31]||=e=>j.value=!1},{default:I(()=>[...i[100]||=[n(` x `,-1)]]),_:1})]),footer:I(()=>[u(g(J),{justify:`end`},{default:I(()=>[u(g(W),{onClick:i[35]||=e=>Zn(),disabled:te.value.length==0},{default:I(()=>[...i[101]||=[n(` Создать `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:I(()=>[u(g(q),{vertical:``},{default:I(()=>[u(g(Ve),{value:te.value,"onUpdate:value":i[32]||=e=>te.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`]),u(g(Ve),{value:ne.value,"onUpdate:value":i[33]||=e=>ne.value=e,"input-props":{type:`email`,autocomplete:`email`},placeholder:`Почта капитана (необязательно)`,"aria-label":`Почта капитана (необязательно)`},null,8,[`value`]),u(g(Vt),{value:F.value,"onUpdate:value":i[34]||=e=>F.value=e,min:1,max:8,precision:0,placeholder:`Количество игроков`,"aria-label":`Количество игроков`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`])):t(``,!0),U.value?(L(),_(g(Te),{key:5,show:N.value,"onUpdate:show":i[40]||=e=>N.value=e},{default:I(()=>[u(g(ve),{style:{width:`600px`},title:`Удаление команды`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":I(()=>[u(g(W),{onClick:i[37]||=e=>N.value=!1},{default:I(()=>[...i[102]||=[n(` x `,-1)]]),_:1})]),footer:I(()=>[u(g(J),{justify:`end`},{default:I(()=>[u(g(W),{onClick:i[39]||=e=>er(),disabled:Wn.value!=Kn.value.name},{default:I(()=>[...i[105]||=[n(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:I(()=>[u(g(q),{vertical:``},{default:I(()=>[B(`p`,null,[i[103]||=n(` Введите название команды `,-1),u(g(Ke),{class:`name-text`,strong:``},{default:I(()=>[n(e(Kn.value.name),1)]),_:1}),i[104]||=n(` чтобы удалить его `,-1)]),u(g(Ve),{value:Wn.value,"onUpdate:value":i[38]||=e=>Wn.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`])):t(``,!0),U.value?(L(),_(g(Te),{key:6,show:P.value,"onUpdate:show":i[44]||=e=>P.value=e},{default:I(()=>[u(g(ve),{style:{width:`600px`},title:`Удаление игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":I(()=>[u(g(W),{onClick:i[41]||=e=>P.value=!1},{default:I(()=>[...i[106]||=[n(` x `,-1)]]),_:1})]),footer:I(()=>[u(g(J),{justify:`end`},{default:I(()=>[u(g(W),{onClick:i[43]||=e=>tr(),disabled:re.value!=H.value.name},{default:I(()=>[...i[109]||=[n(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:I(()=>[u(g(q),{vertical:``},{default:I(()=>[B(`p`,null,[i[107]||=n(` Введите название игры `,-1),u(g(Ke),{class:`name-text`,strong:``},{default:I(()=>[n(e(H.value.name),1)]),_:1}),i[108]||=n(` чтобы удалить её `,-1)]),u(g(Ve),{value:re.value,"onUpdate:value":i[42]||=e=>re.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`])):t(``,!0),U.value?(L(),_(g(Te),{key:7,show:ie.value,"onUpdate:show":i[46]||=e=>ie.value=e},{default:I(()=>[u(g(ve),{style:{width:`600px`},title:se.value,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":I(()=>[u(g(W),{onClick:i[45]||=e=>ie.value=!1},{default:I(()=>[...i[110]||=[n(` x `,-1)]]),_:1})]),footer:I(()=>[...i[111]||=[]]),default:I(()=>[u(g(q),{vertical:``},{default:I(()=>[B(`div`,ei,[u(g(We),{value:oe.value,size:300,padding:0},null,8,[`value`])])]),_:1})]),_:1},8,[`title`])]),_:1},8,[`show`])):t(``,!0),U.value?(L(),_(g(Te),{key:8,show:gr.value,"onUpdate:show":i[48]||=e=>gr.value=e},{default:I(()=>[u(g(ve),{style:{width:`min(94vw, 800px)`},title:`Отзывы игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`,"content-style":{maxHeight:`70vh`,overflow:`auto`}},{"header-extra":I(()=>[u(g(W),{onClick:i[47]||=e=>gr.value=!1},{default:I(()=>[...i[112]||=[n(` x `,-1)]]),_:1})]),default:I(()=>[u(g(J),{align:`center`,class:`reviews-summary`},{default:I(()=>[u(g(Ue),{value:yr.value,readonly:``,"allow-half":``},null,8,[`value`]),B(`span`,null,e(br.value?`${yr.value.toFixed(1)} · ${br.value}`:`Пока нет отзывов`),1)]),_:1}),_r.value.length==0?(L(),z(`div`,ti,`Отзывов пока нет.`)):t(``,!0),(L(!0),z(M,null,C(_r.value,r=>(L(),z(`div`,{key:r.ID,class:`review-row`},[u(g(J),{justify:`space-between`,align:`center`},{default:I(()=>[B(`strong`,null,e(r.teamName),1),u(g(be),null,{default:I(()=>[n(e(r.status),1)]),_:2},1024)]),_:2},1024),u(g(Ue),{value:r.rating,readonly:``,size:`small`},null,8,[`value`]),B(`div`,null,`Сложность: `+e([``,`лёгкая`,`средняя`,`тяжёлая`][r.difficulty||0]),1),B(`p`,null,e(r.text),1),r.status==`pending`?(L(),_(g(J),{key:0,justify:`end`},{default:I(()=>[u(g(W),{type:`success`,onClick:e=>pi(r,`approved`)},{default:I(()=>[...i[113]||=[n(`Одобрить`,-1)]]),_:1},8,[`onClick`]),u(g(W),{type:`error`,ghost:``,onClick:e=>pi(r,`rejected`)},{default:I(()=>[...i[114]||=[n(`Отклонить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):r.status==`approved`?(L(),_(g(J),{key:1,justify:`end`},{default:I(()=>[u(g(W),{type:`error`,ghost:``,onClick:e=>pi(r,`hidden`)},{default:I(()=>[...i[115]||=[n(`Скрыть`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):t(``,!0)]))),128))]),_:1})]),_:1},8,[`show`])):t(``,!0),u(pt,{active:`games`})],64))}}),[[`__scopeId`,`data-v-ff23dce6`]]),ii=P({__name:`GameView`,setup(e){let t=w(0),n=ee();return(e,r)=>(L(),_(ri,{key:`${g(n).params.id}-${t.value}`,onResultsApplied:r[0]||=e=>t.value++}))}});export{ii as default}; |