PageSourceSearch

https://ok4u.club/_next/static/chunks/pages/mafia-app/[id]/[number]-313a7b3cd6e08055.js

js ok4u.club collected 2026-10-07 18:06:35 UTC 34,121 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9377],{5568:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/mafia-app/[id]/[number]",function(){return n(30804)}])},94861:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var s=n(85893),r=n(6575);function l(e){let{pageClass:t,counters:n,user:l,csrftoken:i,settings:a,children:c}=e,u=n.map(e=>e.header_code||"").join(""),d=n.map(e=>e.top_code||"").join(""),m=n.map(e=>e.bottom_code||"").join("");return(0,s.jsxs)(s.Fragment,{children:[d&&(0,s.jsx)("div",{dangerouslySetInnerHTML:{__html:d}}),(0,s.jsxs)("div",{className:"mafia-app "+(t||""),children:[(0,s.jsx)(r.Z,{headerCounters:u,title:a.SITE_NAME,metrikaId:a.METRIKA_ID,vkPixelId:a.VK_PIXEL_ID,user:l}),c]}),m&&(0,s.jsx)("div",{dangerouslySetInnerHTML:{__html:m}}),(0,s.jsx)("input",{type:"hidden",id:"csrftoken",value:i})]})}},6916:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});var s=n(85893);function r(e){let{player:t,ratingsUrl:n,noDecoration:r,className:l,asBlock:i}=e;return t&&t.peer_rating_avg?(0,s.jsx)(s.Fragment,{children:t.peer_rating_num?(0,s.jsxs)("span",{className:"player-rating"+(i?" player-rating--block":"")+(r?" player-rating--no-decoration":"")+(l?" "+l:""),children:[t.peer_rating_avg,(0,s.jsxs)("span",{className:"player-rating__num-rates",children:["(",(0,s.jsx)("span",{className:"player-rating__num-rates--num",children:n?(0,s.jsx)("a",{href:n,children:t.peer_rating_num}):t.peer_rating_num}),")"]})]}):""}):null}},43657:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var s=n(85893),r=n(2605);function l(e){let{rating:t}=e;return(0,r.PD)()?null:(0,s.jsxs)("span",{className:"player-level",children:[" ",t.level&&t.level!=t.player.level?(0,s.jsxs)(s.Fragment,{children:["[",t.level,"] (",(0,s.jsx)("span",{className:"player-level--current",children:t.player.level}),")"]}):(0,s.jsxs)(s.Fragment,{children:["[",t.player.level,"]"]})]})}},17664:function(e,t,n){"use strict";n.d(t,{IX:function(){return l},MP:function(){return i},qF:function(){return r}});var s=n(10610);async function r(e){return(await (0,s.bg)("/api/v1/mafia-app/add-round/",{game:e})).json()}async function l(e,t,n){return(await (0,s.bg)("/api/v1/mafia-app/set-has-come/",{game:e,player:t,has_come:n})).json()}async function i(e,t){return(await (0,s.bg)("/api/v1/mafia-app/add-come-participants/",{game:e,mafia_game:t})).json()}},30804:function(e,t,n){"use strict";n.r(t),n.d(t,{__N_SSP:function(){return e0},default:function(){return e1}});var s=n(85893),r=n(67294),l=n(9008),i=n.n(l),a=n(12918),c=n.n(a),u=n(94861);function d(e){let{isOnline:t,setIsOnline:n}=e;return(0,r.useEffect)(()=>{function e(){n(!0)}function t(){n(!1)}return window.addEventListener("online",e),window.addEventListener("offline",t),()=>{window.removeEventListener("online",e),window.removeEventListener("offline",t)}},[]),(0,s.jsx)("div",{className:t?"invisible":"visible",children:(0,s.jsx)("img",{src:"/img/icons/icon-offline.svg",height:"32",alt:"Offline"})})}let m=(0,r.createContext)();function o(){return(0,r.useContext)(m)}let x="participants",h="turn-time",j="select-mafia",p="select-don",f="select-sheriff",b="select-maniac",g="select-doctor",y="select-beauty",N="vote-suggestion",v="suggested-list",S="vote",_="night-mafia",k="night-don",F="night-sheriff",w="night-maniac",C="night-doctor",I="night-beauty",E="night-result",V="morning",B=[x,h,j,p,f,b,g,y,N,v,S,_,k,F,w,C,I,E,V],G="mafia",T="sheriff",K="maniac",L="doctor",P="beauty",O={[G]:1,don:2,[T]:3,[K]:4,[L]:5,[P]:6},R="village",Z="mafia",D="maniac",M="even",H={[R]:"Мирные",[Z]:"Мафия",[D]:"Маньяк",[M]:"Ничья"},W=[[0,60],[10,50],[11,45],[12,40],[13,35],[14,30]];class q{constructor(e){this.day=e,this.numberSuggested=null}}class X{constructor(e,t,n,s){this.day=e,this.round=t,this.number=n,this.numVotes=s,this.leftTheTable=!1}}class A{constructor(e,t,n){this.role=e,this.day=t,this.number=n}}class z{constructor(e,t){this.number=e,this.dayKilled=null,this.killedByVote=!1,this.playsByDay={},this.fouls=0,this.hasImmunity=t}}function J(e){let t=B.indexOf(e);return -1===t||t===B.length-1?x:B[t+1]}function Q(e,t){let n=B.indexOf(e);return -1===n||0===n?x:B[n-1]}function U(e){return Array.apply(null,Array(e)).map((e,t)=>t+1)}function Y(e,t){return t>1?[]:Object.values(e).filter(e=>e.hasImmunity).map(e=>e.number)}function $(e){let t=e.map(e=>e.number).filter(e=>e);return t.sort((e,t)=>
1e-t),t}function ee(e,t,n){return $(e).filter(e=>4!==t[e].fouls&&(null===t[e].dayKilled||t[e].dayKilled>=n))}function et(e,t){for(let n of e)if(t.includes(n))return!0;return!1}function en(e,t,n,s){let r=[];return e.forEach(e=>{if(e.number){var s;let l=null===(s=t[e.number].playsByDay[n])||void 0===s?void 0:s.numberSuggested;l&&!r.includes(l)&&r.push(l)}}),r}function es(e,t,n,s){return e.find(e=>e.day===t&&e.round===n&&e.number===s)}function er(e,t,n,s,r,l){let i=e.filter(e=>!(e.day==t&&e.round==n&&l.includes(e.number))&&(e.day!=t||!(e.round>n))&&!(e.day>t));if(!s||!Number.isInteger(r))return i;let a=es(i,t,n,s);return a?a.numVotes==r?a.numVotes=0:a.numVotes=r:i.push(new X(t,n,s,r)),i}function el(e,t,n){let s={};return e.forEach(e=>{e.day===t&&e.round===n&&(s[e.number]=e.numVotes)}),s}function ei(e,t,n,s){let r=el(e,t,n),l=Math.max(0,...Object.values(r));return s.filter(e=>r[e]===l)}function ea(e,t,n){for(let s of e)if(s.role===t&&s.day===n)return s.number;return null}function ec(e,t,n){let s=ea(e,t,n);return s?[s]:[]}function eu(e){let t=0,n={};return e.forEach(e=>{n[e.number]||(n[e.number]=[]),n[e.number].push(e),e.number>t&&(t=e.number)}),[n,t]}var ed=n(27346);function em(e){let{playerNumber:t,onRevert:n,onHide:r}=e;return(0,s.jsxs)(ed.Z,{show:!0,centered:!0,className:"modal--fancy modal-enrollment",onHide:r,children:[(0,s.jsx)(ed.Z.Header,{closeButton:!0}),(0,s.jsx)(ed.Z.Body,{children:(0,s.jsxs)("div",{className:"h4 mb-4",children:["ИГРОК #",t," удаляется из-за стола по фолам."]})}),(0,s.jsx)(ed.Z.Footer,{children:(0,s.jsxs)("div",{className:"pt-2 pb-2",children:[(0,s.jsx)("button",{type:"button",className:"btn btn-danger px-4 me-3",onClick:n,children:"Отменить"}),(0,s.jsx)("button",{type:"button",className:"btn btn-primary",onClick:r,children:"Далее"})]})})]})}function eo(e){let{number:t}=e,[n,l]=(0,r.useState)(!1),{scores:i,setScores:a}=o(),c=i[t].fouls,u=e=>{let n={...i},s=n[t].fouls;s+e<0||s+e>4||(s+e==4&&l(!0),n[t].fouls=s+e,a(n))};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"d-flex flex-column align-items-center",children:[(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",className:"btn px-3 py-3 text-body rounded "+(c>=2?"border-danger":"border-dark"),style:{minWidth:"3.6rem"},onClick:()=>u(1),children:t})}),(0,s.jsx)("div",{className:"d-flex align-items-center justify-content-center mt-1",children:c?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{type:"button",className:"bg-transparent text-body border-0 py-0 px-2",style:{outline:0},onClick:()=>u(-1),children:"-"}),c,(0,s.jsx)("button",{type:"button",className:"bg-transparent text-body border-0 py-0 px-2",style:{outline:0},onClick:()=>u(1),children:"+"})]}):"-"})]}),n&&(0,s.jsx)(em,{playerNumber:t,onRevert:()=>{u(-1),l(!1)},onHide:()=>l(!1)})]})}function ex(){let{participants:e}=o(),t=$(e);return(0,s.jsxs)("div",{className:"mt-5",children:[(0,s.jsx)("div",{className:"h4",children:"Фолы:"}),(0,s.jsx)("div",{className:"d-flex flex-wrap gap-3 align-items-center justify-content-center",children:t.map(e=>(0,s.jsx)(eo,{number:e},e))})]})}function eh(e){let{turnTime:t}=e,[n,l]=(0,r.useState)(t),[i,a]=(0,r.useState)(!1),[c,u]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=setInterval(()=>{c||l(e=>e-.125)},125);return()=>clearInterval(e)},[i,c]);let d=()=>{a(!0),u(!1)};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"text-center mt-3 mb-3",children:["У Вас ",t," секунд"]}),i?(0,s.jsxs)("div",{className:"d-flex align-items-center justify-content-center",children:[(0,s.jsx)("div",{className:"text-center fs-1 me-3 mb-0 "+(n<=0?" text-danger":"text-success"),style:{minWidth:"7rem"},children:n.toFixed(2)}),(0,s.jsx)("div",{style:{width:"11rem"},children:c?(0,s.jsx)("button",{type:"button",className:"btn btn-primary px-0 w-100",onClick:d,children:"ПРОДОЛЖИТЬ"}):(0,s.jsx)("button",{type:"button",className:"btn btn-primary px-0 w-100",onClick:()=>{u(!0)},children:"ПАУЗА"})})]}):(0,s.jsx)("button",{type:"button",className:"btn btn-success",onClick:d,children:"СТАРТ"})]})}function ej(){let{participants:e,scores:t,day:n,setDay:r,turnTime:l,setIsStepForward:i,gameStep:a,setGameStep:c}=o(),u=ee(e,t,n).length>1;return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"h2",children:"Доброе утро, город"}),(0,s.jsx)("div",{className:"h4",children:"Дальше начнётся следующий день"}),(0,s.jsx)(eh,{turnTime:l},"morning-time-".concat(n)),(0,s.jsx)(ex,{}),(0,s.jsxs)("div",{className:"d-flex gap-4 align-items-center mt-5",children:[(0,s.jsx)("button",{type:"button",className:"btn btn-danger",onClick:()=>{i(!1),c(Q(a,n))},children:"Назад"}),(0,s.jsx)("button",{type:"button",className:"btn btn-primary",onClick:()=>{r(n+1),i(!0),c(N)},disabled:!u,children:"Далее"})]})]})}function ep(e){let{canGoNext:t}=e,{day:n,setIsStepForward:r,gameStep:l,setGameStep:i}=o();return(0,s.jsxs)("div",{className:"d-flex gap-4 align-items-center mt-5",children:[(0,s.jsx)("button",{type:"button",className:"btn btn-danger",onClick:()=>{r(!1),i(Q(l,n))},children:"Назад"}),(0,s.jsx)("button",{type:"button",className:"btn btn-primary",onClick:()=>{r(!0),i(J(l))},disabled:!t,children:"Далее"})]})}function ef(e){let{number:t,selectedNumbers:n,setSelectedNumbers:r,allowMultiple:l,zeroNumberLabel:i,selectedButtonCaption:a}=e,c=e=>{n.includes(e)?r(n.filter(t=>t!==e)):l?r([...n,e]):r([e])},u=n.includes(t);return(0,s.jsxs)("div",{className:"d-flex flex-column align-items-center",children:[(0,s.jsx)("button",{type:"button",className:"btn px-3 py-3 rounded "+(u?"text-white bg-primary":"text-body border-dark"),style:{minWidth:"3.6rem"},onClick:()=>c(t),children:0===t?i||"0":t},t),a&&(0,s.jsx)("div",{className:"text-center mt-1",children:u?a(t):(0,s.jsx)(s.Fragment,{children:"\xa0"})})]})}function eb(e){let{numbers:t,selectedNumbers:n,setSelectedNumbers:r,title:l,subTitle:i,allowMultiple:a,zeroNumberLabel:c,selectedButtonCaption:u}=e;return(0,s.jsxs)("div",{className:"text-center",children:[l&&(0,s.jsx)("div",{className:"h2",children:l}),i&&(0,s.jsx)("div",{className:"h4",children:i}),(0,s.jsx)("div",{className:"d-flex gap-3 flex-wrap align-items-center justify-content-center mt-5",children:t.map(e=>(0,s.jsx)(ef,{number:e,selectedNumbers:n,setSelectedNumbers:r,allowMultiple:a,zeroNumberLabel:c,selectedButtonCaption:u},e))})]})}function eg(e){let{role:t,title:n,subTitle:l,isKilledLabel:i,selectedButtonCaption:a,RoleNumberSelector:c}=e,{participants:u,day:d,scores:m,roleNumbers:x,roleVotes:h,setRoleVotes:j,gameStep:p,setGameStep:f,isStepForward:b}=o();(0,r.useEffect)(()=>{let e=x[t];if(!e||0===e.length){if(c)return;b?f(J(p)):f(Q(p,d))}},[]);let g=ea(h,t,d),y=x[t]&&x[t].length>0;if(!y&&!c)return null;let N=[0,...ee(u,m,d)],v=et(x[t],N);return(0,s.jsxs)(s.Fragment,{children:[y?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(eb,{title:n,subTitle:l,numbers:v?N:[],selectedNumbers:g?[g]:[],setSelectedNumbers:e=>{j(function(e,t,n,s){let r=e.find(e=>e.role===t&&e.day===n);(!r&&s||r&&r.number!==s)&&(e=e.filter(e=>e.day==n?O[e.role]<=O[t]:e.day<=n));let l=e.filter(e=>!(e.role===t&&e.day===n));return s&&l.push(new A(t,n,s)),l}(h,t,d,e&&e.length>0?e[0]:null))},zeroNumberLabel:"X",selectedButtonCaption:a}),!v&&(0,s.jsx)("div",{className:"h4 text-danger",children:i||"".concat(t," убит")})]}):(0,s.jsx)(c,{}),(0,s.jsx)(ep,{canGoNext:!0})]})}function ey(e){let{isInitialSelect:t}=e,{participants:n,roleNumbers:r,setRoleNumbers:l,gameStep:i,setGameStep:a}=o();return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(eb,{numbers:$(n),title:"ВЫБЕРИТЕ КРАСОТКУ",selectedNumbers:r[P],setSelectedNumbers:e=>{l({...r,[P]:e})}}),t&&(0,s.jsx)(ep,{gameStep:i,setGameStep:a,canGoNext:!0})]})}function eN(){return(0,s.jsx)(eg,{role:P,title:"Просыпается красотка",subTitle:"Красотка выбирает, кого заберёт в эту ночь к себе?",isKilledLabel:"Красотка убита",RoleNumberSelector:ey})}function ev(e){let{isInitialSelect:t}=e,{participants:n,roleNumbers:r,setRoleNumbers:l,gameStep:i,setGameStep:a}=o();return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(eb,{numbers:$(n),title:"ВЫБЕРИТЕ ДОКТОРА",selectedNumbers:r[L],setSelectedNumbers:e=>{l({...r,[L]:e})}}),t&&(0,s.jsx)(ep,{gameStep:i,setGameStep:a,canGoNext:!0})]})}function eS(){return(0,s.jsx)(eg,{role:L,title:"Просыпается доктор",subTitle:"Доктор выбирает, кого будет лечить этой ночью?",isKilledLabel:"Доктор убит",RoleNumberSelector:ev})}function e_(e){let{isInitialSelect:t}=e,{roleNumbers:n,setRoleNumbers:r,gameStep:l,setGameStep:i}=o();return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(eb,{numbers:n[G],title:"ВЫБЕРИТЕ ДОНА",selectedNumbers:n.don,setSelectedNumbers:e=>{r({...n,don:e})}}),t&&(0,s.jsx)(ep,{gameStep:l,setGameStep:i,canGoNext:!0})]})}function ek(){let{roleNumbers:e}=o();return(0,s.jsx)(eg,{role:"don",title:"Просыпается дон",subTitle:"Дон ищет, кто является шерифом?",isKilledLabel:"Дон убит",
1selectedButtonCaption:t=>t?e[T].includes(t)?(0,s.jsx)("span",{className:"text-success",children:"шериф"}):(0,s.jsx)("span",{className:"text-danger text-nowrap",children:"не шериф"}):null,RoleNumberSelector:e_})}function eF(){return(0,s.jsx)(eg,{role:G,title:"Просыпается мафия",subTitle:"Выбирает, кого убьёт этой ночью?",isKilledLabel:"Вся мафия убита"})}function ew(e){let{isInitialSelect:t}=e,{participants:n,roleNumbers:r,setRoleNumbers:l,gameStep:i,setGameStep:a}=o();return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(eb,{numbers:$(n),title:"ВЫБЕРИТЕ МАНЬЯКА",selectedNumbers:r[K],setSelectedNumbers:e=>{l({...r,[K]:e})}}),t&&(0,s.jsx)(ep,{gameStep:i,setGameStep:a,canGoNext:!0})]})}function eC(){return(0,s.jsx)(eg,{role:K,title:"Просыпается маньяк",subTitle:"Выбирает, кого убьёт этой ночью?",isKilledLabel:"Маньяк убит",RoleNumberSelector:ew})}function eI(){let{participants:e,day:t,scores:n,setScores:l,roleVotes:i,roleNumbers:a,isStepForward:c,gameStep:u,setGameStep:d}=o(),[m,x]=(0,r.useState)(0),[h,j]=(0,r.useState)(0),[p,f]=(0,r.useState)(!1),[b,g]=(0,r.useState)(null);(0,r.useEffect)(()=>{c&&l(function(e,t,n,s){let r=[...new Set([...ec(e,G,s),,...ec(e,K,s)])],l=ec(e,L,s),i=ec(e,P,s),a=t[L],c=t[P],u=a.length>0?a[0]:null,d=c.length>0?c[0]:null,m=r.includes(d)&&!l.includes(d),o=Y(n,s),x=[];for(let e of r)if(l.includes(e)&&i.includes(e)&&e!==u&&e!==d);else if(l.includes(e));else if(i.includes(e)&&!m);else if(e===d){if(!o.includes(e))for(let t of(x.push(e),i))l.includes(t)||o.includes(t)||x.push(t)}else o.includes(e)||x.push(e);let h={...n};for(let e of Object.values(h))x.includes(e.number)?e.dayKilled=s:e.dayKilled!==s||e.killedByVote||(e.dayKilled=null);return h}(i,a,n,t));let s=ee(e,n,t+1),r=a[G].filter(e=>s.includes(e)).length,u=a[K].filter(e=>s.includes(e)).length>0,d=s.length-r-(u?1:0);x(r),j(d),f(u),g(0!=r||u?r>=d&&!u||0==d&&r>=2&&u?Z:0==d&&1==r&&u?M:0==r&&1==d&&u?D:null:R)},[]);let y=$(e).filter(e=>n[e].dayKilled===t&&!n[e].killedByVote);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"h2",children:"Наступает день"}),y.length>0?(0,s.jsx)("div",{className:"h4",children:1===y.length?(0,s.jsxs)(s.Fragment,{children:["Убит игрок под номером #",y[0]]}):(0,s.jsxs)(s.Fragment,{children:["Убиты игроки под номерами",y.map((e,t)=>(0,s.jsxs)("span",{children:[t>0?" и ":"","#",e]},e))]})}):(0,s.jsx)("div",{className:"h4",children:"Никто не убит!"}),b&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"h1 mt-4 text-success",children:["Победитель: ",(0,s.jsx)("b",{children:H[b]})]}),(0,s.jsxs)("div",{className:"h4 mt-4 mb-2 text-center",children:["Живых мирных: ",h,(0,s.jsx)("br",{}),"Живых чёрных: ",m,(0,s.jsx)("br",{}),"Маньяк: ",p?"жив":"мёртв"]})]}),(0,s.jsx)(ep,{gameStep:u,setGameStep:d,canGoNext:!b})]})}function eE(e){let{isInitialSelect:t}=e,{participants:n,roleNumbers:r,setRoleNumbers:l,gameStep:i,setGameStep:a}=o();return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(eb,{numbers:$(n),title:"ВЫБЕРИТЕ ШЕРИФА",selectedNumbers:r[T],setSelectedNumbers:e=>{l({...r,[T]:e})}}),t&&(0,s.jsx)(ep,{gameStep:i,setGameStep:a,canGoNext:!0})]})}function eV(){let{roleNumbers:e,participants:t,scores:n,day:r}=o();return(0,s.jsx)(eg,{role:T,title:"Просыпается шериф",subTitle:"Шериф ищет мафию",isKilledLabel:"Шериф убит",selectedButtonCaption:l=>{if(!l)return null;if(e[G].includes(l))return(0,s.jsx)("span",{className:"text-success",children:"чёрный"});if(e[K].includes(l)){let l=ee(t,n,r);return et(e[G],l)?(0,s.jsx)("span",{className:"text-danger",children:"мирный"}):(0,s.jsx)("span",{className:"text-success",children:"чёрный"})}return(0,s.jsx)("span",{className:"text-danger",children:"мирный"})},RoleNumberSelector:eE})}var eB=n(17664),eG=n(41664),eT=n.n(eG),eK=n(18810),eL=n(43657),eP=n(6916);function eO(e){let{participant:t,onParticipantNumberChange:n,onParticipantHasImmunityChange:l}=e,[i,a]=(0,r.useState)(t.number);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("td",{children:(0,s.jsxs)("div",{className:"d-flex align-items-center",children:[(0,s.jsx)(eK.Z,{player:t.player,size:42,className:"avatar"}),(0,s.jsxs)("div",{className:"ms-2",children:[(0,s.jsx)(eT(),{href:t.player.url,className:"text-body text-decoration-none",tabIndex:"-1",children:(0,s.jsx)("b",{children:t.player.name})}),(0,s.jsx)(eL.Z,{rating:t}),(0,s.jsx)("div",{children:(0,s.jsx)(eP.Z,{player:t.player,className:"ms-0"})})]})]})}),(0,s.jsx)("td",{className:"px-2",children:t.mafia_nick}),(0,s.jsx)("td",{style:{maxWidth:"4.5rem"},children:(0,s.jsx)("input",{type:"number",className:"form-control text-center px-2",value:i||"",onInput:e=>{a(parseInt(e.target.value)||0)},onBlur:()=>{i!=t.number&&n(t,i)}})}),(0,s.jsx)("td",{className:"text-center",children:(0,s.jsx)("input",{type:"checkbox",className:"form-check-input",checked:t.has_immunity,onChange:e=>{l(t,e.target.checked)}})})]})}function eR(e){let{number:t,participants:n,onParticipantNumberChange:r,onParticipantHasImmunityChange:l}=e;if(!n||0==n.length)return 0==t?null:(0,s.jsxs)("tr",{valign:"middle",children:[(0,s.jsx)("td",{className:"text-center",children:t}),(0,s.jsx)("td",{colSpan:4,className:"text-danger text-center py-3",children:"ПУСТО"})]});let i=n&&n.length>0?n.length:1;return(0,s.jsx)(s.Fragment,{children:n.map((e,n)=>(0,s.jsxs)("tr",{valign:"middle",className:t>0&&i>1?"table-danger":"",children:[0==n&&(0,s.jsx)("td",{rowSpan:i,className:"text-center",children:0==t?"":t}),(0,s.jsx)(eO,{participant:e,onParticipantNumberChange:r,onParticipantHasImmunityChange:l},e.player.id)]},e.player.id))})}function eZ(e){let{participants:t,setParticipants:n}=e,r=(e,s)=>{n(t.map(t=>(t.player.id===e.player.id&&(t.number=s),t)))},l=(e,s)=>{n(t.map(t=>(t.player.id===e.player.id&&(t.has_immunity=s),t)))},[i,a]=eu(t),c=U(a);return(0,s.jsx)("div",{className:"table-responsive",children:(0,s.jsxs)("table",{className:"table table-bordered",children:[(0,s.jsx)("thead",{children:(0,s.jsxs)("tr",{children:[(0,s.jsx)("th",{children:"Место"}),(0,s.jsx)("th",{children:"Игрок"}),(0,s.jsx)("th",{children:"Ник"}),(0,s.jsx)("th",{}),(0,s.jsx)("th",{children:"Иммунитет"})]})}),(0,s.jsxs)("tbody",{children:[c.map(e=>{var t;let n;return(0,s.jsx)(eR,{number:e,participants:i[e],onParticipantNumberChange:r,onParticipantHasImmunityChange:l},(t=i[e],n="".concat(e),t&&t.length>
10&&t.forEach(e=>{n+="-".concat(e.player.id)}),n))}),i[0]&&(0,s.jsx)(eR,{number:0,participants:i[0],onParticipantNumberChange:r,onParticipantHasImmunityChange:l})]})]})})}function eD(){let{participants:e,setParticipants:t,setScores:n,gameStep:r,setGameStep:l,setIsStepForward:i,gameId:a,mafiaGameRound:c}=o(),u=async()=>{let e=(await (0,eB.MP)(a,c)).participants;e&&0!=e.length&&t(t=>{let n=t.map(e=>e.player.id);return[...t,...e.filter(e=>!n.includes(e.player.id))]})},d=async()=>{var t;n(function(e){let t={};for(let n of e)if(n.number){let e=new z(n.number,n.has_immunity);t[n.number]=e}return t}(e)),i(!0),l(J(r)),(t=document.documentElement).requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen?t.webkitRequestFullscreen():t.msRequestFullscreen&&t.msRequestFullscreen()};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(eZ,{participants:e,setParticipants:t}),(0,s.jsx)("button",{className:"btn btn-outline-primary mb-3",onClick:u,children:"Добавить опоздавших"}),(0,s.jsx)("button",{className:"btn btn-primary",disabled:!function(e){let[t,n]=eu(e);if(n<3)return!1;for(let e=1;e<=n;e++)if(!t[e]||1!=t[e].length)return!1;return!0}(e),onClick:d,children:"Старт игры"})]})}function eM(){let{participants:e,roleNumbers:t,setRoleNumbers:n,gameStep:r,setGameStep:l}=o();return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(eb,{numbers:$(e),title:"ПРОСЫПАЕТСЯ МАФИЯ...",subTitle:"(выберите номера игроков, кто является мафией)",selectedNumbers:t[G],setSelectedNumbers:e=>{n({...t,[G]:e})},allowMultiple:!0}),(0,s.jsx)(ep,{gameStep:r,setGameStep:l,canGoNext:t[G].length>0})]})}function eH(){let{day:e,participants:t,scores:n,gameStep:r,setGameStep:l}=o(),i=en(t,n,e);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"h2",children:"Голосование"}),i.length>0?(0,s.jsxs)("div",{className:"h4",children:["Выставлены игроки"," ",i.map((e,t)=>(0,s.jsxs)("span",{children:["#",e,t<i.length-1?", ":""]},e))]}):(0,s.jsx)("div",{className:"h4",children:0===e?"В первый день голосование не проводится.":"Никто не выставил ни одного игрока."}),(0,s.jsx)(ep,{gameStep:r,setGameStep:l,canGoNext:!0})]})}function eW(){let{participants:e,turnTime:t,setTurnTime:n,gameStep:l,setGameStep:i}=o();return(0,r.useEffect)(()=>{n(function(e){let t=60,n=e.filter(e=>e.number).length;for(let[e,s]of W)if(n>=e)t=s;else break;return t}(e))},[]),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"text-center",children:[(0,s.jsx)("div",{className:"h2",children:"Введите длительность минуты"}),(0,s.jsx)("div",{className:"h4",children:"(время в секундах, отведённое игроку на ход)"}),(0,s.jsx)("div",{className:"mt-5 mx-auto",style:{maxWidth:"10rem"},children:(0,s.jsx)("input",{type:"number",className:"form-control form-control-lg text-center",value:t||null,onInput:e=>n(parseInt(e.target.value))})})]}),(0,s.jsx)(ep,{gameStep:l,setGameStep:i,canGoNext:t&&t>0})]})}function eq(e){let{votingNumber:t,votesLeft:n,day:r,round:l,nextNumbers:i}=e,{dayVotes:a,setDayVotes:c}=o(),u=e=>{c(er(a,r,l,t,e,i))},d=[0,...U(n)],m=es(a,r,l,t),x=m?m.numVotes:null;return(0,s.jsxs)("div",{className:"text-center",children:[(0,s.jsx)("div",{className:"h4",children:"Количество голосов:"}),(0,s.jsx)("div",{className:"mt-4 d-flex flex-wrap gap-3 align-items-center justify-content-center",children:d.map(e=>(0,s.jsx)("button",{type:"button",className:"btn px-3 py-3 rounded "+(e==x?"bg-primary text-white ":"text-body border-dark"),style:{minWidth:"3.6rem"},onClick:()=>u(e),children:e},e))})]})}function eX(e){let{numbersToVote:t,numVotesByNumber:n,votingNumber:r}=e;return(0,s.jsx)("div",{className:"table-responsive mt-5",children:(0,s.jsx)("table",{className:"table table-bordered",children:(0,s.jsxs)("tbody",{children:[(0,s.jsxs)("tr",{children:[(0,s.jsx)("td",{className:"px-3 py-2 fs-4",children:"Игрок"}),t.map(e=>(0,s.jsx)("td",{className:"text-center px-3 py-2 fs-4 "+(r===e?"bg-light":""),children:e},e))]}),(0,s.jsxs)("tr",{children:[(0,s.jsx)("td",{className:"px-3 py-2 fs-4",children:"Голосов"}),t.map(e=>(0,s.jsx)("td",{className:"text-center px-3 py-2 fs-4 "+(r===e?"bg-light":""),children:n[e]},e))]})]})})})}function eA(e){let{mostVotedNumbers:t,day:n,round:r}=e;if(0==t.length)return(0,s.jsx)("div",{className:"h4 mt-3 text-danger text-center",children:"Никто не набрал голосов?"});if(1==t.length)return(0,s.jsxs)("div",{className:"h4 mt-3 text-center",children:["Игрок #",t[0]," набрал максимальное количество голосов и покидает игровой стол."]});let l=t.map(e=>"#".concat(e)).join(", ");return(0,s.jsxs)("div",{className:"h4 mt-3 text-center",children:["Игроки ",l," ",r>1?"опять":""," набрали одинаковое количество голосов.",(0,s.jsx)("br",{}),1==r?(0,s.jsx)(s.Fragment,{children:"Необходимо провести второе голосование."}):(0,s.jsx)(s.Fragment,{children:"Необходимо решить, останутся ли они за столом."})]})}function ez(e){let{maxVotes:t,day:n}=e,{eliminationVotes:r,setEliminationVotes:l}=o(),i=r[n],a=e=>{let t={...r};e===i?t[n]=null:t[n]=e,l(t)},c=[0,...U(t)];return(0,s.jsxs)("div",{className:"text-center",children:[(0,s.jsx)("div",{className:"h4 mt-3",children:"Количество голосов:"}),(0,s.jsx)("div",{className:"mt-4 d-flex flex-wrap gap-3 align-items-center justify-content-center",children:c.map(e=>(0,s.jsx)("button",{type:"button",className:"btn px-3 py-3 rounded "+(e===i?"bg-primary text-white ":"text-body border-dark"),style:{minWidth:"3.6rem"},onClick:()=>a(e),children:e},e))})]})}function eJ(e){let{mostVotedNumbers:t,maxVotes:n,day:r}=e,{eliminationVotes:l}=o(),i=l[r]||0,a=t.map(e=>"#".concat(e)).join(", ");return(0,s.jsxs)("div",{className:"h4 mt-3 text-center",children:[i," / ",n," голосов.",(0,s.jsx)("br",{}),(0,s.jsx)("br",{}),"Игроки ",a,(0,s.jsx)("b",{children:i<=n/2?" остаются за столом":" покидают стол"}),"."]})}function eQ(){let e;let{day:t,gameStep:n,setGameStep:l,participants:i,dayVotes:a,setDayVotes:c,scores:u,setScores:d,eliminationVotes:m,isStepForward:x,setIsStepForward:h}=o(),j=function(e,t){for(let n=0;n<e.length;
1n++)if(e[n].day==t&&e[n].round>1)return 2;return 1}(a,t),[p,f]=(0,r.useState)(x?1:j),[b,g]=(0,r.useState)(x||1==p?en(i,u,t):ei(a,t,p,en(i,u,t))),[y,N]=(0,r.useState)(x?0:b.length-1),[v,S]=(0,r.useState)(!1),[_,k]=(0,r.useState)(!1),F=ee(i,u,t).length,w=b.slice(0,y),C=F-(e=0,a.forEach(n=>{n.day===t&&n.round===p&&w.includes(n.number)&&(e+=n.numVotes)}),e),I=b[y],E=y===b.length-1,V=E?ei(a,t,p,b):[],B=1==p&&0==b.length;(0,r.useEffect)(()=>{B&&(x?l(J(n)):l(Q(n,t)))},[]),(0,r.useEffect)(()=>{if(y==b.length-1){let e=es(a,t,p,I);(null==e?void 0:e.numVotes)!==C&&c(er(a,t,p,I,C,[]))}},[y]);let G=()=>{let e=V;_&&(m[t]||0)<=F/2&&(e=[]),d(function(e,t,n){let s={...e};return Object.values(s).forEach(e=>{e.dayKilled===t&&e.killedByVote&&(e.dayKilled=null,e.killedByVote=!1),n.includes(e.number)&&(e.dayKilled=t,e.killedByVote=!0)}),s}(u,t,e)),h(!0),l(J(n))};return B?null:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"h2",children:["Голосование",p>1&&!v&&(0,s.jsx)(s.Fragment,{children:" (повторно)"})]}),v?(0,s.jsx)(s.Fragment,{children:_?(0,s.jsx)(eJ,{mostVotedNumbers:V,maxVotes:F,day:t}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"h4",children:["Кто за то, чтобы оба игрока (",V.map(e=>"#".concat(e)).join(", "),") покинули этот стол?"]}),(0,s.jsx)(ez,{maxVotes:F,day:t})]})}):(0,s.jsxs)(s.Fragment,{children:[E?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"h4",children:[" За игрока #",I," оставшиеся:"]}),(0,s.jsxs)("div",{className:"h4 mb-n3",children:[C||0," голосов"]})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"h4",children:["Кто за то, чтобы игру покинул игрок #",I,"?"]}),(0,s.jsx)(eq,{votingNumber:I,maxVotes:F,votesLeft:C,round:p,day:t,nextNumbers:b.slice(y+1)},"vote-".concat(t,"-").concat(p,"-").concat(I))]}),(0,s.jsx)(eX,{numbersToVote:b,numVotesByNumber:el(a,t,p),votingNumber:I}),E&&(0,s.jsx)(eA,{mostVotedNumbers:V,day:t,round:p})]}),(0,s.jsxs)("div",{className:"d-flex gap-4 align-items-center mt-4",children:[(0,s.jsx)("button",{type:"button",className:"btn btn-danger",onClick:()=>{if(v){if(_){k(!1);return}S(!1);return}if(y>0){N(y-1);return}if(2==p){let e=en(i,u,t);g(e),f(1),N(e.length-1);return}h(!1),l(Q(n,t))},children:"Назад"}),(0,s.jsx)("button",{type:"button",className:"btn btn-primary",onClick:()=>{if(v){if(_){G();return}k(!0);return}if(E){if(1!=V.length){if(1==p){g(V),f(2),N(0);return}S(!0);return}G()}let e=es(a,t,p,I);(null==e?void 0:e.numVotes)===void 0&&c(er(a,t,p,I,0,b.slice(y+1))),N(y+1)},children:"Далее"})]})]})}function eU(e){var t;let{playerNum:n,day:r}=e,{participants:l,scores:i,setScores:a}=o(),c=e=>{let t={...i},s=t[n].playsByDay[r]||new q(r);s.numberSuggested===e?s.numberSuggested=null:s.numberSuggested=e,t[n].playsByDay[r]=s,a(t)},u=null===(t=i[n].playsByDay[r])||void 0===t?void 0:t.numberSuggested,d=Y(i,r),m=ee(l,i,r).filter(e=>!d.includes(e));return(0,s.jsxs)("div",{className:"mt-5",children:[(0,s.jsx)("div",{className:"h4",children:"Выставил игрока:"}),(0,s.jsx)("div",{className:"d-flex flex-wrap gap-3 align-items-center justify-content-center",children:m.map(e=>{let t;return(0,s.jsxs)("div",{className:"text-center",children:[(0,s.jsx)("button",{type:"button",className:"btn px-3 py-3 rounded "+(e==u?"bg-primary text-white ":"text-body border-dark"),style:{minWidth:"3.6rem"},onClick:()=>c(e),children:e}),(0,s.jsx)("div",{className:"small",children:e===u?(t=0,Object.values(i).forEach(n=>{var s;(null===(s=n.playsByDay[r])||void 0===s?void 0:s.numberSuggested)===e&&t++}),t>1)?"поддерж":"принято":(0,s.jsx)(s.Fragment,{children:"\xa0"})})]},e)})})]})}function eY(){let{day:e,setDay:t,gameStep:n,setGameStep:l,turnTime:i,participants:a,scores:c,isStepForward:u,setIsStepForward:d}=o(),[m]=(0,r.useState)(ee(a,c,e)),[x]=(0,r.useState)(function(e,t,n){let s=$(e);for(let e=0;e<n;e++)s.push(s.shift());return s.filter(e=>t.includes(e))}(a,m,e)),[h,j]=(0,r.useState)(u?0:x.length-1),p=x[h];return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"text-center",children:[(0,s.jsx)("div",{className:"h2",children:"Доброе утро, город"}),(0,s.jsxs)("div",{className:"h4",children:["Речь начинает игрок #",p]}),(0,s.jsx)(eh,{turnTime:i},"turn-time-".concat(e,"-").concat(p)),(0,s.jsx)(ex,{}),e>0&&(0,s.jsx)(eU,{playerNum:p,day:e})]}),(0,s.jsxs)("div",{className:"d-flex gap-4 align-items-center mt-5",children:[(0,s.jsx)("button",{type:"button",className:"btn btn-danger",onClick:()=>{h>0?j(h-1):(d(!1),0===e?l(y):(t(e-1),l(V)))},children:"Назад"}),(0,s.jsx)("button",{type:"button",className:"btn btn-primary",onClick:()=>{h<x.length-1?j(h+1):(d(!0),l(J(n)))},children:"Далее"})]})]})}function e$(){let{gameStep:e}=o();switch(e){case x:return(0,s.jsx)(eD,{});case h:return(0,s.jsx)(eW,{});case j:return(0,s.jsx)(eM,{});case p:return(0,s.jsx)(e_,{isInitialSelect:!0});case f:return(0,s.jsx)(eE,{isInitialSelect:!0});case b:return(0,s.jsx)(ew,{isInitialSelect:!0});case g:return(0,s.jsx)(ev,{isInitialSelect:!0});case y:return(0,s.jsx)(ey,{isInitialSelect:!0});case N:return(0,s.jsx)(eY,{});case v:return(0,s.jsx)(eH,{});case S:return(0,s.jsx)(eQ,{});case _:return(0,s.jsx)(eF,{});case k:return(0,s.jsx)(ek,{});case F:return(0,s.jsx)(eV,{});case w:return(0,s.jsx)(eC,{});case C:return(0,s.jsx)(eS,{});case I:return(0,s.jsx)(eN,{});case E:return(0,s.jsx)(eI,{});case V:return(0,s.jsx)(ej,{});default:return(0,s.jsx)(eD,{})}}var e0=!0;function e1(e){let{game:t,mafia_game:n,mafia_numbers:l,don_numbers:a,sheriff_numbers:o,maniac_numbers:h,doctor_numbers:j,beauty_numbers:p,errorCode:f,layoutProps:b}=e,[g,y]=(0,r.useState)(!0),[N,v]=(0,r.useState)(x),[S,_]=(0,r.useState)(!0),[k,F]=(0,r.useState)(0),[w,C]=(0,r.useState)(null==n?void 0:n.participants),[I,E]=(0,r.useState)({}),[V,B]=(0,r.useState)([]),[O,R]=(0,r.useState)([]),[Z,D]=(0,r.useState)({}),[M,H]=(0,r.useState)(60),[W,q]=(0,r.useState)({[G]:l,don:a,[T]:o,[K]:h,[L]:j,[P]:p}),X={gameId:null==t?void 0:t.id,mafiaGameRound:null==n?void 0:n.number,gameStep:N,setGameStep:v,isStepForward:S,setIsStepForward:_,day:k,setDay:F,participants:w,setParticipants:C,scores:I,setScores:E,dayVotes:V,setDayVotes:B,roleVotes:O,setRoleVotes:R,eliminationVotes:Z,setEliminationVotes:D,turnTime:M,setTurnTime:H,roleNumbers:W,setRoleNumbers:q};return f?(0,s.jsx)(c(),{statusCode:f}):(0,s.jsxs)(u.Z,{pageClass:"page-mafia-app-mafia-game",...b,children:[(0,s.jsx)(i(),{children:(0,s.jsxs)("title",{children:[t.game_type.name," ",t.start_time_medium]})}),(0,s.jsxs)("div",{className:"mafia-app__header w-100 border-bottom position-relative",children:[(0,s.jsxs)("div",{className:"text-center pt-1 pb-1",children:[(0,s.jsxs)("h3",{className:"mb-0",children:[(0,s.jsx)(eT(),{href:"/mafia-app/".concat(t.id,"/"),className:"text-decoration-none",children:t.game_type.name})," / ","Раунд #",n.number]}),(0,s.jsx)("div",{className:"mb-1",children:t.start_time_medium})]}
1),(0,s.jsx)("div",{className:"position-absolute",style:{top:"0.6rem",right:"0.5rem"},children:(0,s.jsx)(d,{isOnline:g,setIsOnline:y})})]}),(0,s.jsx)("div",{className:"mafia-app__content",children:(0,s.jsx)(m.Provider,{value:X,children:(0,s.jsx)(e$,{})})})]})}},12918:function(e,t,n){e.exports=n(2111)}},function(e){e.O(0,[2888,9774,179],function(){return e(e.s=5568)}),_N_E=e.O()}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.