PageSourceSearch

https://firewolf.netlify.app/_nuxt/Cabf3gGC.js

js firewolf.netlify.app collected 2026-10-03 10:44:14 UTC 11,665 bytes, 5 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Cj_n1tWh.js","./Cqga2mdz.js","./CZw8qzHT.js","./CAFIxbXv.js","./Bh4YzkF1.js","./entry.BxPskZXL.css","./DIpSCz-v.js","./DJwvPUyS.js","./DwH2E4Yy.js","./CdasQrlT.js","./NBAthv48.js","./35TM4mrt.js","./SayMessage._CuDTw3H.css"])))=>i.map(i=>d[i]);
2import{e as ha,f as ga,b as F,I as pa,g as va}from"#entry";import{_ as fa}from"./DwH2E4Yy.js";import{A as ya,c as K,r as u,o as _a,aa as _,ab as y,aj as L,ai as c,ah as U,a9 as Sa,ag as Y,as as z,u as s,am as ba,aw as Ca,G as La}from"./Cqga2mdz.js";import{u as wa,t as Aa}from"./Cq7OX2to.js";import{M as r}from"./CZw8qzHT.js";import{u as Ea,B as Ma,C as ka,D as Ra,O as Da,R as Va,M as Ia,J as Ta,a as Oa}from"./BdVtMBx9.js";import{A as Q}from"./D-WKdy0Y.js";import{L as xa}from"./rkqKn9aX.js";import{u as Na}from"./DuiFmdnP.js";import"./Bh4YzkF1.js";import"./ByjTMUYX.js";import"./DJwvPUyS.js";import"./B7m_592B.js";import"./DIpSCz-v.js";import"./CdasQrlT.js";import"./D_yAoySS.js";import"./LpSErJP7.js";import"./35TM4mrt.js";import"./BI8w7J0G.js";import"./-COHRjvS.js";const Pa={class:"py-8"},Fa={class:"container mx-auto max-w-4xl px-4"},Ua={key:0,class:"flex justify-center py-8"},Ya={class:"flex justify-end gap-4"},za=["disabled"],Ga={key:0},$a={key:1},ue=ya({__name:"setting",setup(ja){const X=La(()=>va(()=>import("./Cj_n1tWh.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]),import.meta.url));Na({title:"村設定変更"});const G=ha(),aa=ga(),{apiCall:S}=F(),m=K(()=>{const o=aa.query.id;return typeof o=="string"?parseInt(o,10):0}),w=u(!1),b=u(!1),n=u(null),A=u(!1),C=u(!1),$=u(""),E=u(null),{validationSchema:ea,loadSkills:ta}=Ea(),j=u(new Set),H=u(!1),{values:a,errors:oa,meta:q,handleSubmit:sa,setFieldValue:e,setFieldTouched:B}=wa({validationSchema:Aa(ea),initialValues:{villageName:"",startDatetime:(()=>{const o=new Date(Date.now()+6048e5);return o.setHours(0,0,0,0),o})(),silentHoursDay1:0,silentHoursDay2:0,charachipIds:[1],dummyCharaId:0,dummyCharaName:"",dummyCharaShortName:"",day0Message:"",day1Message:"",capacityMin:10,capacityMax:16,organization:"",availableDummySkill:!1,openVote:!1,availableSkillRequest:!0,availableSpectate:!1,openSkillInGrave:!1,visibleGraveMessage:!1,availableSuddenlyDeath:!0,availableCommit:!1,availableAction:!1,availableSecretSay:!1,availableGuardSameTarget:!0,normalCount:20,normalLength:200,whisperCount:40,whisperLength:200,sympathizeCount:40,sympathizeLength:200,loversCount:40,loversLength:200,graveCount:40,graveLength:200,monologueCount:100,monologueLength:200,spectateCount:40,spectateLength:200,actionCount:40,actionLength:200,joinPassword:"",ageLimit:"ALL"}}),ia=async()=>{try{return(await S(`/village/${m.value}/situation`))?.creator?.available_modify_setting?!0:(n.value="設定を変更する権限がありません",await G.push(`/village?id=${m.value}`),!1)}catch(o){return console.error("Failed to check permission:",o),n.value="権限の確認に失敗しました",!1}},ra=async()=>{if(m.value){b.value=!0,n.value=null;try{if(!await ia())return;const t=await S(`/village/${m.value}`);if(t){e("villageName",t.name),e("startDatetime",new Date(t.setting.time.start_datetime)),e("silentHoursDay1",t.setting.time.silent_hours_day1||0),e("silentHoursDay2",t.setting.time.silent_hours_day2||0),e("charachipIds",t.setting.charachip.charachip_ids),e("dummyCharaId",t.setting.charachip.dummy_chara_id),e("dummyCharaName",t.setting.charachip.dummy_chara_name),e("dummyCharaShortName",t.setting.charachip.dummy_chara_short_name),e("day0Message",t.setting.charachip.dummy_chara_day0_message||""),e("day1Message",t.setting.charachip.dummy_chara_day1_message||"");const i=Object.entries(t.setting.organizations.organization),d=i.map(([f,P])=>`${f}人:${P}`).join(`
3`);e("organization",d);const v=i.map(([f])=>parseInt(f,10));v.length>0&&(e("capacityMin",Math.min(...v)),e("capacityMax",Math.max(...v)));const l=t.setting.rules;e("availableDummySkill",l.available_dummy_skill),e("openVote",l.open_vote),e("availableSkillRequest",l.available_skill_request),e("availableSpectate",l.available_spectate),e("openSkillInGrave",l.open_skill_in_grave),e("visibleGraveMessage",l.visible_grave_message),e("availableSuddenlyDeath",l.available_suddenly_death),e("availableCommit",l.available_commit),e("availableAction",l.available_action),e("availableSecretSay",l.available_secret_say),e("availableGuardSameTarget",l.available_guard_same_target);const k=l.message_restrict.restrict_list,p=f=>k.find(P=>P.type.code===f),R=p(r.NORMAL_SAY);R&&(e("normalCount",R.count),e("normalLength",R.length));const D=p(r.WEREWOLF_SAY);D&&(e("whisperCount",D.count),e("whisperLength",D.length));const V=p(r.SYMPATHIZE_SAY);V&&(e("sympathizeCount",V.count),e("sympathizeLength",V.length));
3const I=p(r.LOVERS_SAY);I&&(e("loversCount",I.count),e("loversLength",I.length));const T=p(r.GRAVE_SAY);T&&(e("graveCount",T.count),e("graveLength",T.length));const O=p(r.MONOLOGUE_SAY);O&&(e("monologueCount",O.count),e("monologueLength",O.length));const x=p(r.SPECTATE_SAY);x&&(e("spectateCount",x.count),e("spectateLength",x.length));const N=p(r.ACTION);N&&(e("actionCount",N.count),e("actionLength",N.length));const ma=t.setting.tags.list.find(f=>f.startsWith("R"));e("ageLimit",ma||"ALL"),e("joinPassword",""),await Z(),await J()}}catch(o){console.error("Failed to load village settings:",o),n.value="村情報の取得に失敗しました"}finally{b.value=!1}}},na=o=>{const t=o.getFullYear(),i=String(o.getMonth()+1).padStart(2,"0"),d=String(o.getDate()).padStart(2,"0"),v=String(o.getHours()).padStart(2,"0"),l=String(o.getMinutes()).padStart(2,"0"),k=String(o.getSeconds()).padStart(2,"0");return`${t}-${i}-${d}T${v}:${l}:${k}`},W=()=>{const o=na(a.startDatetime),t=[{type:r.NORMAL_SAY,count:a.normalCount,length:a.normalLength},{type:r.WEREWOLF_SAY,count:a.whisperCount,length:a.whisperLength},{type:r.SYMPATHIZE_SAY,count:a.sympathizeCount,length:a.sympathizeLength},{type:r.LOVERS_SAY,count:a.loversCount,length:a.loversLength},{type:r.GRAVE_SAY,count:a.graveCount,length:a.graveLength},{type:r.MONOLOGUE_SAY,count:a.monologueCount,length:a.monologueLength},{type:r.SPECTATE_SAY,count:a.spectateCount,length:a.spectateLength},{type:r.ACTION,count:a.actionCount,length:a.actionLength}],i=d=>d.split(`
4`).map(v=>v.replace(/^\d+人[::]\s*/,"")).join(`
5`);return{village_name:a.villageName,setting:{time:{start_datetime:o,silent_hours_day1:a.silentHoursDay1,silent_hours_day2:a.silentHoursDay2},organization:{organization:i(a.organization)},charachip:{charachip_ids:a.charachipIds,dummy_chara_id:a.dummyCharaId,dummy_chara_name:a.dummyCharaName,dummy_chara_short_name:a.dummyCharaShortName,dummy_chara_day0_message:a.day0Message,dummy_chara_day1_message:a.day1Message.length>0?a.day1Message:void 0},rule:{open_vote:a.openVote,available_skill_request:a.availableSkillRequest,available_spectate:a.availableSpectate,open_skill_in_grave:a.openSkillInGrave,visible_grave_message:a.visibleGraveMessage,available_suddenly_death:a.availableSuddenlyDeath,available_commit:a.availableCommit,available_dummy_skill:a.availableDummySkill,available_action:a.availableAction,available_secret_say:a.availableSecretSay,available_guard_same_target:a.availableGuardSameTarget,restrict_list:t,join_password:a.joinPassword||void 0},tags:{list:a.ageLimit!=="ALL"?[a.ageLimit]:[]}}}},M=sa(async o=>{w.value=!0,n.value=null;try{const t=W();await S(`/village/${m.value}/setting`,{method:"POST",body:t}),await G.push(`/village?id=${m.value}`)}catch(t){console.error("Failed to update village settings:",t);const i=t;i.data?.status===499&&i.data?.message?n.value=i.data.message:n.value=t instanceof Error?t.message:"村設定の変更に失敗しました"}finally{w.value=!1}}),h=o=>{j.value.add(o),B(o,!0)},la=()=>{Object.keys(a).forEach(t=>{B(t,!0)}),H.value=!0},ca=o=>H.value||j.value.has(o),g=K(()=>{const o={};return Object.entries(oa.value).forEach(([i,d])=>{ca(i)&&d&&(o[i]=d)}),o}),da=async()=>{C.value=!0,n.value=null,la();try{if(!await q.value.valid){n.value="入力内容に誤りがあります。各項目を確認してください。",window.scrollTo({top:0,behavior:"smooth"});return}const t=W();await S(`/village/${m.value}/setting/confirm`,{method:"POST",body:t}),await J(),await Z(),A.value=!0}catch(o){console.error("Failed to confirm village settings:",o);const t=o;t.data?.status===499&&t.data?.message?n.value=t.data.message:n.value=o instanceof Error?o.message:"入力内容の確認に失敗しました。入力内容を確認してください。",window.scrollTo({top:0,behavior:"smooth"})}finally{C.value=!1}},J=async()=>{try{const{apiCall:o}=F();if(a.charachipIds&&a.charachipIds.length>0){const t=a.charachipIds[0],i=await o(`/charachips/${t}`,{method:"GET"});$.value=i?.name||""}}catch(o){console.error("Failed to load charachip name:",o)}},Z=async()=>{try{const{apiCall:o}=F();if(a.dummyCharaId){const t=await o(`/chara/${a.dummyCharaId}`,{method:"GET"});t&&(E.value=t)}}catch(o){console.error("Failed to load dummy chara info:",o)}},ua=()=>{A.value=!1};return _a(async()=>{await ta(),await ra()}),(o,t)=>{const i=fa;return y(),_("section",Pa,[L("div",Fa,[c(i,{to:{path:"/village",query:{id:s(m)}},class:"mb-4 inline-flex items-center gap-1 rounded-md bg-gray-200 px-3 py-1 text-sm text-gray-700 hover:bg-gray-300"},{default:Y(()=>[c(pa,{name:"i-heroicons-chevron-left-20-solid",class:"h-4 w-4"}),t[2]||(t[2]=z(" 戻る ",-1))]),_:1},8,["to"]),t[4]||(t[4]=L("h1",{class:"mb-8 text-2xl font-bold"},"村の設定を変更する",-1)),c(Q,{type:"warning",class:"mb-6"},{default:Y(()=>[...t[3]||(t[3]=[z(" 参加パスワードが毎回空になるのでご注意ください。 ",-1)])]),_:1}),s(b)?(y(),_("div",Ua,[c(xa)])):U("",!0),s(n)?(y(),Sa(Q,{key:1,type:"error",class:"mb-6",onClose:t[0]||(t[0]=d=>n.value=null)},{default:Y(()=>[z(ba(s(n)),1)]),_:1})):U("",!0),s(b)?U("",!0):(y(),_("form",{key:2,class:"space-y-8",onSubmit:t[1]||(t[1]=Ca((...d)=>s(M)&&s(M)(...d),["prevent"]))},[c(Ma,{"form-data":s(a),errors:s(g),"onUpdate:field":s(e),"onValidate:field":h},null,8,["form-data","errors","onUpdate:field"]),c(ka,{"form-data":s(a),errors:s(g),"readonly-mode":!0,"onUpdate:field":s(e),"onValidate:field":h},null,8,["form-data","errors","onUpdate:field"]),c(Ra,{"form-data":s(a),"selected-chara":s(E),errors:s(g),"day0-readonly":!0,"onUpdate:field":s(e),"onValidate:field":h},null,8,["form-data","selected-chara","errors","onUpdate:field"]),c(Da,{"form-data":s(a),errors:s(g),"onUpdate:field":s(e),"onValidate:field":h},null,8,["form-data","errors","onUpdate:field"]),c(Va,{"form-data":s(a),errors:s(g),"onUpdate:field":s(e),"onValidate:field":h},null,8,["form-data","errors","onUpdate:field"]),c(Ia,{"form-data":s(a),errors:s(g),"onUpdate:field":s(e),"onValidate:field":h},null,8,["form-data","errors","onUpdate:field"]),c(Ta,{"form-data":s(a),errors:s(g),"onUpdate:field":s(e),"onValidate:field":h},null,8,["form-data","errors","onUpdate:field"]),c(Oa,{"form-data":s(a),errors:s(g),"onUpdate:field":s(e),"onValidate:field":h},null,8,["form-data","errors","onUpdate:field"]),L("div",Ya,[L("button",{type:"button",disabled:s(C)||!s(q).valid,class:"rounded-md bg-blue-600 px-6 py-2 text-white hover:bg-blue-700 focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:bg-gray-400",onClick:da},[s(C)?(y(),_("span",Ga,"確認中...")):(y(),_("span",$a,"確認画面へ"))],8,za)])],32)),c(s(X),{"is-open":s(A),"form-data":s(a),"charachip-name":s($),"dummy-ch
5ara":s(E),"is-submitting":s(w),"save-label":"設定を変更する",onClose:ua,onCreate:s(M)},null,8,["is-open","form-data","charachip-name","dummy-chara","is-submitting","onCreate"])])])}}});export{ue as default};

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.