PageSourceSearch

https://appt.doctorsfile.jp/_next/static/chunks/3930-2363e314faded256.js

js doctorsfile.jp collected 2026-09-24 08:52:42 UTC 24,338 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3930],{3930:function(e,s,l){l.d(s,{U:function(){return G}});var t=l(85893),n=l(67294),a=l(23569),i=l(32196),r=l(7818),d=l(98513),o=l(82135),c=l(80816),x=l(732),m=l(70512),p=l(87536),u=l(72395),h=l(74118),j=l(33025);let b=e=>{let{}=e;return(0,t.jsxs)("div",{className:"flex flex-col gap-5",children:[(0,t.jsx)(d.U,{color:"blue",className:"text-lg font-bold",children:"メニューの説明"}),(0,t.jsx)(d.U,{color:"base",className:"text-sm",children:"この予約メニューの説明文を表示する場合は設定してください。"}),(0,t.jsx)(h.U,{label:"メニュー説明文",children:(0,t.jsx)("div",{children:(0,t.jsx)(j.K,{name:"appointMenu.menuExplanation",color:"base",placeholder:"このメニューの概要を50字以内で入力してください",addMarginOnError:!1,rules:{maxLength:{value:50,message:"50字以内で入力してください"}}})})})]})};var N=l(92553),f=l(94433);let g=e=>{let{name:s,rules:l}=e,{control:n,formState:{errors:r},watch:d}=(0,p.Gc)(),o=d(s),c=e=>{let{color:s}=e;return(0,t.jsx)(t.Fragment,{children:o?(0,t.jsx)("div",{className:"border border-doctor-disabled rounded-full w-6 h-6 "+"bg-doctor-palette-".concat(s)}):(0,t.jsx)("div",{})})},x=[{name:"darkseagreen"},{name:"green"},{name:"paleturquoise"},{name:"royalblue"},{name:"darkblue"},{name:"palevioletred"},{name:"darkorchid"},{name:"pink"},{name:"orange"},{name:"gold"},{name:"saddlebrown"},{name:"silver"},{name:"white"}],m=(0,f.U)(r,s);return(0,t.jsx)(p.Qr,{name:s,control:n,defaultValue:"",rules:l,render:e=>{var s,l;let{field:n}=e;return(0,t.jsxs)("div",{className:"h-full",children:[(0,t.jsx)(a.Lt,{className:"",theme:i.Q.dropdown,label:(0,t.jsx)(c,{color:n.value}),inline:!0,children:(0,t.jsx)(a.Lt.Item,{theme:null===(s=i.Q.dropdown)||void 0===s?void 0:null===(l=s.floating)||void 0===l?void 0:l.item,children:(0,t.jsx)("div",{className:"grid grid-cols-7 gap-[10px]",children:x.map(e=>(0,t.jsx)("div",{onClick:()=>n.onChange(e.name),className:"border border-doctor-disabled focus rounded-full w-[30px] h-[30px] "+"bg-doctor-palette-".concat(e.name," hover:border-doctor-base")},e.name))})})}),m&&(0,t.jsx)("div",{className:"mt-1 h-5",children:(0,t.jsx)(N.Z,{children:m})})]})}})};var v=l(92862),U=l(16689);let w=e=>{let{}=e;return(0,t.jsxs)("div",{className:"flex flex-col gap-5",children:[(0,t.jsx)(d.U,{color:"blue",className:"text-lg font-bold",children:"予約メニュー名の設定"}),(0,t.jsx)(d.U,{color:"base",className:"text-sm",children:"この予約メニューの名前と表示色を設定してください。"}),(0,t.jsx)(h.U,{label:"予約メニュー名",isRequired:!0,children:(0,t.jsx)(v.j,{name:"appointMenu.menuName",color:"white",placeholder:"15文字まで予約メニュー名が入ります",addMarginOnError:!1,rules:{required:"必須項目を入力してください",maxLength:{value:15,message:"15文字以内で入力してください"},validate:{required:U.C("必須項目を入力してください")}}})}),(0,t.jsx)(h.U,{label:"メニュー表示色",isRequired:!0,children:(0,t.jsx)(g,{name:"appointMenu.color",rules:{required:"必須項目を入力してください"}})})]})};var y=l(7673);let M=e=>{let{}=e,{formState:{errors:s},watch:l,getValues:a,setValue:i}=(0,p.Gc)(),r=(0,n.useMemo)(()=>Array.from({length:30},(e,s)=>({value:s+1,label:"".concat(s+1,"分")})),[]),o=()=>{60==a("appointMenu.timeUnit")?i("appointMenu.timeUnitPersons",60):i("appointMenu.timeUnitPersons","")},c=Array.from({length:100},(e,s)=>({value:s,label:"".concat(s,"人")})),x=(0,f.U)(s,"appointMenu.timeUnit"),m=(0,f.U)(s,"appointMenu.timeUnitPersons"),u=(0,f.U)(s,"appointMenu.webTimeNumber");return(0,t.jsxs)("div",{className:"flex flex-col gap-5",children:[(0,t.jsx)(d.U,{color:"blue",className:"text-lg font-bold",children:"予約メニューの設定"}),(0,t.jsx)(d.U,{color:"base",className:"text-sm",children:"この予約メニューの詳細を設定してください。"}),(0,t.jsx)(h.U,{label:"区切り分数",isRequired:!0,children:(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-[10px]",children:[(0,t.jsx)(d.U,{className:"text-sm",children:"この予約メニューを"}),(0,t.jsx)(y.j,{items:[{value:30,label:"30分"},{value:60,label:"60分"}],name:"appointMenu.timeUnit",dataTestId:"timeUnitSelect",color:"number",sizing:"number",type:"number",placeholder:"分数",rules:{required:"必須項目を選択してください"},onChange:o}),(0,t.jsx)(d.U,{className:"text-sm",children:"区切りにする"})]}),x&&(0,t.jsx)("div",{className:"mt-1 h-5",children:(0,t.jsx)(N.Z,{children:x})})]})}),(0,t.jsx)(h.U,{label:"一人あたり所要時間",isRequired:!0,children:(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-[10px]",children:[(0,t.jsx)(d.U,{className:"text-sm",children:"一人あたり"}),60==l("appointMenu.timeUnit")?(0,t.jsx)(y.j,{items:[{value:60,label:"60分"}],name:"appointMenu.timeUnitPersons",dataTestId:"timeUnitPersonsSelect",color:"number",sizing:"number",type:"number",placeholder:"分数",rules:{required:"必須項目を選択してください"},disabled:!0}):(0,t.jsx)(y.j,{items:r,name:"appointMenu.timeUnitPersons",dataTestId:"timeUnitPersonsSelect",color:"number",sizing:"number",type:"number",placeholder:"分数",rules:{required:"必須項目を選択してください"}})]}),m&&(0,t.jsx)("div",{className:"mt-1 h-5",children:(0,t.jsx)(N.Z,{children:m})})]})}),(0,t.jsx)(h.U,{label:"僅少表示",isRequired:!0,children:(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-[10px]",children:[(0,t.jsx)(d.U,{className:"text-sm",children:"残り枠が"}),(0,t.jsx)(y.j,{items:c,name:"appointMenu.webTimeNumber",dataTestId:"webTimeNumberSelect",color:"number",sizing:"number",type:"number",placeholder:"人数",rules:{required:"必須項目を選択してください"}}),(0,t.jsx)(d.U,{className:"text-sm",children:"になったときに「残りわずか(▲)」と表示する"})]}),u&&(0,t.jsx)("div",{className:"mt-1 h-5",children:(0,t.jsx)(N.Z,{children:u})})]})})]})};
1var C=l(94290);let Z=e=>{let{appointColumnList:s}=e,{formState:{errors:l}}=(0,p.Gc)(),n=s.appointColumns.map((e,s)=>(0,f.U)(l,"selectColumn.".concat(s))).find(e=>e);return(0,t.jsxs)("div",{className:"flex flex-col gap-5",children:[(0,t.jsx)(d.U,{color:"blue",className:"text-lg font-bold",children:"対応予約列の設定"}),(0,t.jsx)(d.U,{color:"base",className:"text-sm leading-[28px]",children:"予約メニューの対応する予約列を選択してください。"}),(0,t.jsx)(h.U,{label:"対応予約列",isRequired:!0,children:(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"grid grid-cols-2 gap-[10px]",children:s.appointColumns.map((e,s)=>(0,t.jsx)(C.h,{name:"selectColumn.".concat(s),label:e.name},e.id))}),n&&(0,t.jsx)("div",{className:"mt-1 h-5",children:(0,t.jsx)(N.Z,{children:n})})]})})]})},k=e=>{let{}=e;return(0,t.jsxs)("div",{className:"flex flex-col gap-5",children:[(0,t.jsx)(d.U,{color:"blue",className:"text-lg font-bold",children:"事前質問の設定"}),(0,t.jsx)(d.U,{color:"base",className:"text-sm leading-[28px]",children:"事前質問を行う場合は設定してください。未入力の場合は事前質問は非表示となります。"}),(0,t.jsx)(h.U,{label:"事前質問内容",children:(0,t.jsx)("div",{children:(0,t.jsx)(j.K,{name:"appointMenu.simpleQuestion",color:"base",placeholder:"このメニューの概要を150字以内で入力してください",addMarginOnError:!1,rules:{maxLength:{value:150,message:"150字以内で入力してください"}}})})}),(0,t.jsx)(h.U,{label:"入力の任意/必須",children:(0,t.jsx)(C.h,{name:"appointMenu.simpleQuestionRequired",className:"w-[230px] h-[50px]",label:"患者の入力を必須とする"})})]})};var A=l(25675),E=l.n(A),q=l(47860),B=l(2639);let S=e=>{let{appointType:s}=e,l=Array.from({length:100},(e,s)=>({value:Number(s),label:"".concat(s,"日")})),{formState:{errors:a}}=(0,p.Gc)(),i=(0,f.U)(a,"appointMenu.patientAppointUse"),r=(0,f.U)(a,"appointMenu.multipleAppointAllowed"),o=(0,f.U)(a,"appointMenu.webAcceptedDays"),c=(0,f.U)(a,"appointMenu.webBlockDays"),x=(0,n.useRef)(null),[m,u]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{if(!m)return;let e=e=>{x.current&&!x.current.contains(e.target)&&u(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}},[m]),(0,t.jsxs)("div",{className:"flex flex-col gap-5",children:[(0,t.jsx)(d.U,{color:"blue",className:"text-lg font-bold",children:"Web予約の設定"}),(0,t.jsx)(d.U,{color:"base",className:"text-sm leading-[28px]",children:"Web予約を行う場合は設定してください。"}),(0,t.jsx)(h.U,{label:"WEB予約の有効無効",isRequired:!0,children:(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex gap-[10px]",children:[(0,t.jsx)(B.B,{value:!1,label:"無効",name:"appointMenu.patientAppointUse",className:"sr-only"}),(0,t.jsx)(B.B,{value:!0,label:"有効",name:"appointMenu.patientAppointUse",className:"sr-only"})]}),i&&(0,t.jsx)("div",{className:"mt-1 h-5",children:(0,t.jsx)(N.Z,{children:i})})]})}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-[200px_auto] md:gap-[30px]",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between space-x-2 h-[50px]",children:[(0,t.jsxs)("div",{className:"flex flex-none w-40 min-w-max items-center gap-1 md:mr-2",children:[(0,t.jsx)("label",{className:"text-sm font-bold",children:"複数日時の予約可否"}),(0,t.jsxs)("div",{ref:x,className:"relative inline-flex",onPointerEnter:e=>{"mouse"===e.pointerType&&u(!0)},onPointerLeave:e=>{"mouse"===e.pointerType&&u(!1)},children:[(0,t.jsx)("button",{type:"button","aria-label":"ヘルプ",onClick:()=>u(e=>!e),className:"inline-flex items-center justify-center",children:(0,t.jsx)(E(),{src:"/doctor/help.svg",alt:"",width:20,height:20})}),m&&(0,t.jsx)("div",{className:"absolute top-full left-0 mt-1 z-10 w-[260px] rounded-md border border-gray-300 bg-gray-50 px-3 py-2 text-xs leading-relaxed text-gray-700 shadow-md",children:"患者様がこのメニューを複数日時予約できるか否かを設定できます"})]})]}),(0,t.jsx)(q.c,{color:"required",size:"required",children:"必須"})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex gap-[10px]",children:[(0,t.jsx)(B.B,{value:!1,label:"不可",name:"appointMenu.multipleAppointAllowed",className:"sr-only"}),(0,t.jsx)(B.B,{value:!0,label:"可",name:"appointMenu.multipleAppointAllowed",className:"sr-only"})]}),r&&(0,t.jsx)("div",{className:"mt-1 h-5",children:(0,t.jsx)(N.Z,{children:r})})]})]}),"time"===s&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(h.U,{label:"WEB予約の開始",isRequired:!0,children:(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-[10px]",children:[(0,t.jsx)(y.j,{items:l,name:"appointMenu.webAcceptedDays",dataTestId:"webAcceptedDaysSelect",color:"number",sizing:"select-days",placeholder:"日数を選択",type:"number",rules:{required:"必須項目を選択してください"}}),(0,t.jsx)(d.U,{className:"text-sm",children:"前から予約可能"})]}),o&&(0,t.jsx)("div",{className:"mt-1 h-5",children:(0,t.jsx)(N.Z,{children:o})})]})}),(0,t.jsx)(h.U,{label:"WEB予約の締切",isRequired:!0,children:(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-[10px]",children:[(0,t.jsx)(y.j,{items:l,name:"appointMenu.webBlockDays",dataTestId:"webBlockDaysSelect",color:"number",sizing:"select-days",placeholder:"日数を選択",type:"number",rules:{required:"必須項目を選択してください"}}),(0,t.jsx)(d.U,{className:"text-sm",children:"前で予約受付を締め切る"})]}),c&&(0,t.jsx)("div",{className:"mt-1 h-5",children:(0,t.jsx)(N.Z,{children:c})})]})})]})]})},R=e=>
1{let{appointType:s,appointMenu:l,appointColumnList:n,onCloseCallback:a,onChangeCallback:i,updateAppointMenu:d,addAppointMenu:o}=e,c=()=>{a()},x=()=>{let e=[];return N.getValues("selectColumn").map((s,l)=>{s&&e.push(n.appointColumns[l].id)}),e},m=()=>{let e=x();if(0===e.length)return N.getValues("selectColumn").map((e,s)=>{N.setError("selectColumn.".concat(s),{type:"manual",message:"対応する予約列を一つ以上選択してください"})}),!1;let l=N.getValues("appointMenu.multipleAppointAllowed");if("boolean"!=typeof l)return N.setError("appointMenu.multipleAppointAllowed",{type:"manual",message:"必須項目を選択してください"}),!1;let t=N.getValues("appointMenu.simpleQuestion"),n=N.getValues("appointMenu.simpleQuestionRequired");if(n&&(null==t?void 0:t.trim().length)==0)return N.setError("appointMenu.simpleQuestion",{message:"入力を必須とする場合は事前質問内容を入力してください"}),!1;if("time"===s){let e=N.getValues("appointMenu.webAcceptedDays"),s=N.getValues("appointMenu.webBlockDays");if(0===e&&0!==s||e&&s&&e<s){N.setError("appointMenu.webBlockDays",{message:"予約を締め切る期間に誤りがあります"});let e=document.querySelector('[name="appointMenu.webBlockDays"]');return null==e||e.scrollIntoView({behavior:"smooth",block:"center"}),!1}}return!0},h=async()=>{if(!l||!m())return;let e={...N.getValues("appointMenu"),appointType:s,appointmentColumnIds:x()};d(l.id,e,i)},j=async()=>{if(!m())return;let e={...N.getValues("appointMenu"),appointType:s,appointmentColumnIds:x()};o(e,i)},N=(0,p.cI)({defaultValues:{appointMenu:null!=l?l:{menuName:"",menuExplanation:"",color:"",timeUnit:void 0,webTimeNumber:void 0,timeUnitPersons:void 0,simpleQuestion:"",simpleQuestionRequired:!1,webAcceptedDays:void 0,webBlockDays:void 0,patientAppointUse:!1,multipleAppointAllowed:!1,appointmentColumnIds:[]},selectColumn:n.appointColumns.map(e=>{var s;return(null==l?void 0:null===(s=l.appointmentColumns)||void 0===s?void 0:s.some(s=>s.patternMasterId===e.id))||!1})}});return(0,t.jsx)("div",{className:"flex flex-col gap-[30px] px-[21px] py-[13px]",children:(0,t.jsxs)(p.RV,{...N,children:[(0,t.jsx)(u.H,{text:"予約メニューの編集",size:"2xl"}),(0,t.jsx)(w,{}),"time"===s&&(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(M,{})}),(0,t.jsx)(S,{appointType:s}),(0,t.jsx)(Z,{appointColumnList:n}),(0,t.jsx)(k,{}),(0,t.jsx)(b,{}),(0,t.jsxs)("div",{className:"flex justify-center gap-2.5",children:[(0,t.jsx)(r.o,{text:"閉じる",color:"white",size:"custom",className:"w-[210px] h-[60px]",onClick:c}),l?(0,t.jsx)(r.o,{text:"変更する",color:"base",size:"custom",className:"w-[210px] h-[60px]",onClick:N.handleSubmit(h)}):(0,t.jsx)(r.o,{text:"追加する",color:"base",size:"custom",className:"w-[210px] h-[60px]",onClick:N.handleSubmit(j)})]})]})})};var T=l(45587),z=l(10906),H=l(3002),I=l(83608),Q=l(12879);let D=e=>{let{title:s,children:l}=e;return(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)(H.Z.Row,{children:[(0,t.jsx)(H.Z.Cell,{className:"align-top py-[10px]",children:(0,t.jsx)(d.U,{color:"base",className:"text-[13px] leading-[19px] text-doctor-base font-bold",children:s})}),(0,t.jsx)(H.Z.Cell,{className:"align-top py-[10px]",children:l})]})})},L=e=>{var s;let{appointMenu:l}=e;return(0,t.jsx)(D,{title:"対応予約列",children:(0,t.jsx)(d.U,{color:"base",className:"text-base leading-[32px]",children:null===(s=l.appointmentColumns)||void 0===s?void 0:s.map(e=>e.name).join(", ")})})},V=e=>{let{appointMenu:s}=e;return(0,t.jsx)(D,{title:"メニュー説明",children:(0,t.jsxs)(H.Z,{children:[(0,t.jsx)(H.Z.Head,{children:(0,t.jsx)(H.Z.HeadCell,{className:"w-[224px] pb-[11px] text-sm text-doctor-disabled font-bold",children:"メニュー説明文"})}),(0,t.jsx)(H.Z.Body,{children:(0,t.jsx)(H.Z.Row,{children:(0,t.jsx)(H.Z.Cell,{children:(0,t.jsx)(d.U,{className:"text-base",children:s.menuExplanation})})})})]})})},P=e=>{let{appointMenu:s}=e;return(0,t.jsx)(D,{title:"予約メニュー設定",children:(0,t.jsxs)(H.Z,{children:[(0,t.jsxs)(H.Z.Head,{children:[(0,t.jsx)(H.Z.HeadCell,{className:"w-[325px] pb-[11px] text-sm text-doctor-disabled font-bold",children:"区切り分数"}),(0,t.jsx)(H.Z.HeadCell,{className:"w-[197px] pb-[11px] text-sm text-doctor-disabled font-bold",children:"一人あたり所要時間"}),(0,t.jsx)(H.Z.HeadCell,{className:"pb-[11px] text-sm text-doctor-disabled font-bold",children:"僅少表示"})]}),(0,t.jsx)(H.Z.Body,{children:(0,t.jsxs)(H.Z.Row,{children:[(0,t.jsxs)(H.Z.Cell,{children:[(0,t.jsx)(d.U,{className:"text-base",children:"この予約メニューを"}),(0,t.jsxs)(d.U,{className:"text-base font-bold",children:[" ",s.timeUnit,"分"," "]}),(0,t.jsx)(d.U,{className:"text-base",children:"区切りにする"})]}),(0,t.jsxs)(H.Z.Cell,{children:[(0,t.jsx)(d.U,{className:"text-base",children:"一人あたり"}),(0,t.jsxs)(d.U,{className:"text-base font-bold",children:[" ",s.timeUnitPersons,"分"," "]})]}),(0,t.jsxs)(H.Z.Cell,{children:[(0,t.jsx)(d.U,{className:"text-base",children:"残り枠が"}),(0,t.jsxs)(d.U,{className:"text-base font-bold",children:[" ",s.webTimeNumber,"人"," "]}),(0,t.jsx)(d.U,{className:"text-base",children:"になったとき"})]})]})})]})})},_=e=>{let{appointMenu:s}=e;return(0,t.jsx)(D,{title:"事前質問機能設定",children:(0,t.jsxs)(H.Z,{children:[(0,t.jsxs)(H.Z.Head,{children:[(0,t.jsx)(H.Z.HeadCell,{className:"w-[729px] pb-[11px] text-sm text-doctor-disabled font-bold",children:"事前質問内容"}),(0,t.jsx)(H.Z.HeadCell,{className:"pb-[11px] text-sm text-doctor-disabled font-bold",children:"入力の任意/必須"})]}),(0,t.jsx)(H.Z.Body,{children:(0,t.jsxs)(H.Z.Row,{children:[(0,t.jsx)(H.Z.Cell,{children:(0,t.jsx)(d.U,{className:"text-base",children:s.simpleQuestion})}),(0,t.jsxs)(H.Z.Cell,{children:[(0,t.jsx)(d.U,{className:"text-base",children:"患者の入力を"}),(0,t.jsx)(d.U,{className:"text-base font-bold",children:s.simpleQuestionRequired?"必須":"任意"}),(0,t.jsx)(d.U,{className:"text-base",children:"とする"})]})]})})]})})},W=e=>{let{appointMenu:s}=e;return(0,t.jsx)(D,{title:"WEB予約の設定",children:(0,t.jsxs)(H.Z,{children:[(0,t.jsxs)(H.Z.Head,{children:[(0,t.jsx)(H.Z.HeadCell,{className:"w-[169px] pb-[11px] text-sm text-doctor-disabled font-bold",children:"WEB予約の有効無効"}),(0,t.jsx)(H.Z.HeadCell,{className:"w-[197px] pb-[11px] text-sm text-doctor-disabled font-bold",children:"WEB予約の開始"}),(0,t.jsx)(H.Z.HeadCell,{className:"pb-[11px] text-sm text-doctor-disabled font-bold",children:"WEB予約の締切"})]}),(0,t.jsx)(H.Z.Body,{children:(0,t.jsxs)(H.Z.Row,{children:[(0,t.jsx)(H.Z.Cell,{children:(0,t.jsx)(d.U,{className:"text-base",children:s.patientAp
1pointUse?"有効":"無効"})}),(0,t.jsxs)(H.Z.Cell,{children:[(0,t.jsxs)(d.U,{className:"text-base font-bold",children:[" ",s.webAcceptedDays,"日"," "]}),(0,t.jsx)(d.U,{className:"text-base",children:"前から予約可能"})]}),(0,t.jsxs)(H.Z.Cell,{children:[(0,t.jsxs)(d.U,{className:"text-base font-bold",children:[s.webBlockDays,"日"," "]}),(0,t.jsx)(d.U,{className:"text-base",children:"前で予約受付を締め切る"})]})]})})]})})},F=e=>{let{appointType:s,appointMenus:l,appointMenu:n,isOrderMode:a,setOpenEditModal:i,setItems:o,setShowAppointMenu:c,deleteMenu:x}=e,{listeners:m,setActivatorNodeRef:p,index:u}=(0,T.nB)({id:n.id,resizeObserverConfig:{}}),h=()=>{o(e=>(0,T.Rp)(e,u,u+1))},j=()=>{o(e=>(0,T.Rp)(e,u,u-1))},b=()=>{c(n),i(!0)},N=()=>{x(n.id,n.updatedAt)};return(0,t.jsx)(z._,{children:(0,t.jsxs)("div",{className:"flex items-stretch gap-6",children:[(0,t.jsx)("div",{className:"flex flex-col items-center justify-center gap-[10px]",children:a?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.U,{className:"font-bold text-doctor-base",children:n.order}),(0,t.jsx)("div",{ref:p,...m,style:{cursor:"grab"},className:"w-5 h-full  text-doctor-base bg-dotted-pattern bg-[length:3px_3px]"})]}):(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(d.U,{className:"font-bold text-doctor-base",children:n.order})})}),(0,t.jsxs)("div",{className:"flex flex-col w-full gap-5",children:[(0,t.jsxs)("div",{className:"flex items-center gap-5 pl-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-5",children:[(0,t.jsx)(d.U,{className:"inline-block text-xl font-bold",color:"link",onClick:()=>b(),children:n.menuName}),!n.patientAppointUse&&(0,t.jsx)(q.c,{color:"clinic-only",size:"clinic-only",children:"院内のみ"}),(0,t.jsx)("div",{className:"border border-doctor-table-border rounded-full w-[21px] h-[21px]"+" bg-doctor-palette-".concat(n.color)})]}),(0,t.jsx)("div",{className:"ml-auto",children:a?(0,t.jsxs)("div",{className:"flex gap-[10px]",children:[(0,t.jsx)(I.s,{disabled:u===l.length-1,onClick:h}),(0,t.jsx)(Q.e,{disabled:0===u,onClick:j})]}):(0,t.jsx)(r.o,{icon:"",onClick:N,size:"delete",color:"red",text:"削除"})})]}),(0,t.jsx)("div",{className:"border-b border-doctor-table-border"}),(0,t.jsxs)(H.Z,{className:"w-auto ml-2",children:[(0,t.jsxs)(H.Z.Head,{children:[(0,t.jsx)(H.Z.HeadCell,{className:"w-[143px]"}),(0,t.jsx)(H.Z.HeadCell,{})]}),(0,t.jsxs)(H.Z.Body,{children:["time"===s&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(P,{appointMenu:n}),(0,t.jsx)(W,{appointMenu:n})]}),(0,t.jsx)(L,{appointMenu:n}),(0,t.jsx)(_,{appointMenu:n}),(0,t.jsx)(V,{appointMenu:n})]})]})]})]})})},G=e=>{let{appointType:s,appointColumnList:l,appointMenuList:p,isOrderMode:u,setIsOrderMode:h,displayDescription:j,updateAppointMenu:b,addAppointMenu:N,deleteMenu:f,changeOrder:g}=e,[v,U]=(0,n.useState)(!1),[w,y]=(0,n.useState)(null),[M,C]=(0,n.useState)(!1),[Z,k]=(0,n.useState)(""),[A,E]=(0,n.useState)(p.appointmentMenus),q=()=>{h(!0)},B=async()=>{g(A)},S=()=>{p.maxMenuCount<p.appointmentMenus.length+1?(k("予約列が上限を超えているため登録できません。"),C(!0)):(y(null),U(!0))},T=()=>{U(!1)};(0,n.useEffect)(()=>{E(p.appointmentMenus)},[p]);let z=async()=>{U(!1)};return(0,t.jsxs)("div",{className:"flex flex-col items-center gap-[30px]",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between w-full",children:[j?(0,t.jsxs)(d.U,{className:"inline-block",children:["予約メニューの設定を行うことができます。予約メニューは最大",p.maxMenuCount,"つまで設定いただけます。"]}):(0,t.jsx)("div",{}),(0,t.jsx)(r.o,{color:u?"base":"white",size:"order",icon:"",disabled:0===p.appointmentMenus.length,onClick:u?B:q,text:u?"並びを確定":"並びを変更"})]}),(0,t.jsx)(x.c,{items:A,setItems:E,children:A.map(e=>(0,t.jsx)(c.T,{id:e.id,children:(0,t.jsx)(F,{appointType:s,appointMenus:p.appointmentMenus,appointMenu:e,isOrderMode:u,setOpenEditModal:U,setItems:E,setShowAppointMenu:y,onChangeCallback:z,deleteMenu:f})},e.id))}),0===p.appointmentMenus.length&&(0,t.jsx)("div",{className:"flex items-center justify-center w-full h-[200px] border border-doctor-disabled rounded-lg",children:(0,t.jsx)(d.U,{color:"disabled",className:"text-xl font-bold",children:"まだ予約メニューはありません"})}),(0,t.jsx)(o.s,{className:"w-[374px] h-[60px] font-bold",onClick:S,size:"custom",color:"white",text:"予約メニューを追加する",disabled:p.appointmentMenus.length>=p.maxMenuCount}),(0,t.jsx)(a.u_,{show:v,theme:i.Q.modal,size:"column-menu",children:(0,t.jsx)(a.u_.Body,{children:(0,t.jsx)(R,{appointType:s,appointMenu:w,appointColumnList:l,onCloseCallback:T,onChangeCallback:z,updateAppointMenu:b,addAppointMenu:N})})}),(0,t.jsx)(m.C,{showModal:M,onClose:()=>C(!1),content:Z})]})}},33025:function(e,s,l){l.d(s,{K:function(){return m},N:function(){return p}});var t=l(85893),n=l(67294),a=l(27856),i=l.n(a),r=l(23569),d=l(87536),o=l(32196),c=l(94433),x=l(92553);let m=e=>{let{name:s,disabled:l=!1,placeholder:n,color:a,rules:i,addMarginOnError:m=!0}=e,{control:p,formState:{errors:u}}=(0,d.Gc)(),h=(0,c.U)(u,s),j=m&&h?"mt-5":"";return(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(d.Qr,{control:p,name:s,rules:i,render:e=>{let{field:s}=e;return(0,t.jsxs)("div",{className:j,children:[(0,t.jsx)(r.gx,{...s,theme:o.Q.textarea,disabled:l,placeholder:n,color:a||"gray"}),h&&(0,t.jsx)("div",{className:"mt-1 h-5",children:(0,t.jsx)(x.Z,{children:h})})]})}})})},p=e=>{let{name:s,backgroundColor:l="bg-doctor-disabled"}
1=e,[a,r]=(0,n.useState)(""),{watch:o}=(0,d.Gc)(),c=o(s);return(0,n.useEffect)(()=>{r(i().sanitize(c))},[c]),(0,t.jsx)("div",{className:"Link p-2.5 text-sm ".concat(l," rounded-lg borderh-72 overflow-auto"),dangerouslySetInnerHTML:{__html:a}})}}}]);

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.