1import{_ as Se}from"./LoadingPage.6ru2eo8t.js";import{_ as ie,a as ae,b as ne,c as _e,d as xe}from"./PersonaCareCalendar.D56VuQ8Y.js";import{m as Fe,i as Y,p as dt,a as ct,h as ut,n as ht,b as pt,f as mt,t as gt,c as yt,s as ye,d as ft,e as kt,g as vt,j as bt,k as $,l as z,o as It,q as Mt,r as Dt,u as fe,v as Ct,w as Rt,x as wt,y as Pt,z as Tt,A as ke,B as St,C as _t,D as xt,E as ve,F as Ft}from"./personaWorkflow.NMqIlIKg.js";import{c as d,z as i,s as u,B as P,g as M,a1 as G,A as D,F as C,l as S,j as m,G as j,D as q,V,a2 as be,b as o,a3 as At,k as Et,p as pe,t as Nt,W as R,T as Ot}from"./vendor-vue.DQyCMu5a.js";import{_ as x,c as Lt}from"./index.VRUltArI.js";import{e as T,f as qt,g as ce}from"./vendor-vuetify.Dvtop9lb.js";import{ai as O,ag as y,b3 as h,aA as ue}from"./vendor-misc.DlM92jT6.js";import{u as te,i as se,_ as Ae,p as Ut,c as Bt,C as Ht}from"./ChatMessage.B8bai_tE.js";import{_ as re}from"./PersonaDoctorProfileModal.BdwkRR_f.js";import{_ as Ee,n as Vt}from"./ChatFooter.BsE9NgPY.js";import Qt from"./PopMyAccountMgmt.oN1CD4LM.js";import Kt from"./PopMyRecommendCode.DSKGkSu4.js";import{P as jt,_ as zt}from"./PopNotice.cR4jWwmB.js";import Yt from"./PopEvent.YwLO0oGd.js";import{P as Gt,_ as Wt}from"./PopEventReward.Da8l2L3u.js";import{P as Jt,_ as Xt}from"./PopHairLossNews.NY1CVxaU.js";import{_ as Zt}from"./eventIcon.Oo4tJZyi.js";import{f as $t}from"./chatSourceDisplay.B-TFY0D6.js";import es from"./PopReservation2.Dsa0DWLJ.js";import ts from"./PopMediInfo.DdezaymK.js";import ss from"./PopHairThick.Bwo7XiAB.js";import is from"./PopThesis.ByG58l5b.js";import as from"./PopSearch.BluMfZHj.js";import ns from"./PopPredict.DeJSH_r2.js";import rs from"./PopPredictHistory.CgU345Hz.js";import os from"./PopVideo.C8dbf_Fk.js";import ls from"./PopEvaluation.D2uffiYO.js";import ds from"./PopReport.DT8-8PhA.js";import{C as cs}from"./ClinicalList.B_HgO3vF.js";import us from"./PopChangeTell.DLHNBVRs.js";import hs from"./PopThesisList.xfrSxGQ9.js";import ps from"./PopReservationStatus.DxFLMW1Z.js";import ms from"./PopHairCount.CZ-vBfUA.js";import gs from"./PopCheckLogin.BpIFDON3.js";import ys from"./PopAloLiteLogin.d0-S2fWg.js";import fs from"./PopHospitalInfo.C8jM7IG9.js";import ks from"./PopHospitalMap.OgfGOJs2.js";import vs from"./PopHairTickCount2.t1m4arYC.js";import bs from"./PopProductList.BVch88SK.js";import Is from"./PopHairLossBlog.BX9FyODK.js";import Ms from"./PopEventModal.AzO_zjAb.js";import"./vendor-axios.B9ygI19o.js";import"./vendor-moment.C5S46NFB.js";import"./vendor-quill.BiOiM682.js";import"./vendor-date-io.C_LH91PS.js";import"./vendor-maps.B8dKhpM0.js";/* empty css */import"./Loading.BO8yG02s.js";import"./PopAccountLeave.CTTByzNf.js";import"./signupProfile.BUvuRDhn.js";import"./postImageFit.JOhy3yhf.js";import"./ImagePreviewViewer.Cr6eFrpR.js";import"./eventRewardImageZoom.DpuLUYCL.js";import"./Paging.Codo259r.js";import"./eventThumbPreview.gmIvojJ9.js";import"./PopConfirm.DybWBYpV.js";import"./PopPredictImg.DaKF-Bwq.js";import"./PopVideoInfo.Cgxuu1fW.js";import"./PopVideoChat.ChcfbeHG.js";import"./vendor-filepond.Bl2UwE-T.js";import"./PopApproval.CDHrJH1d.js";import"./PopThesisSave.BOfNLXZn.js";import"./PopExpandHairTick.D_-S7RWu.js";import"./PopProductListPdf.mOP15uq1.js";const Q=[{key:"cleanliness",badge:"ì²ê²°",title:"[ì¸ì ] ì ìê·¹ ì½ì°ì± ì´í¸ë¡ ëí¼ ì²ê²° ê´ë¦¬í기",description:"ì ìê·¹ ì½ì°ì± ì´í¸ë¡ ì¸ì ìê·¹ì ì¤ì´ê³ , ëí¼ì 1~2ë¶ ì´ì ëí¬í´ í¼ì§ì ë
¸í물 ë¶ë¦¬ë¥¼ ëìµëë¤. ì´í ìëì´ë ë¶ëë¬ì´ ì´í¸ ë¸ë¬ìë¡ ëí¼ë¥¼ ë§ì¬ì§í ë¤ ê¹¨ëì´ í¹ê¶ë
ëë¤."},{key:"management",badge:"ê´ë¦¬",title:"[ê´ë¦¬] ì´í¸ í ëí¼ê¹ì§ ì¶©ë¶í ê±´ì¡°í기",description:"ì´í¸ í ìê±´ì¼ë¡ 물기를 ê°ë³ê² ì ê±°íê³ , ì°¬ë°ëì¼ë¡ ëí¼ë¶í° ì¶©ë¶í ë§ë ¤ ë³´ì¡í ëí¼ íê²½ì ì ì§í©ëë¤."},{key:"lifestyle",badge:"ìí",title:"[ìì] ë¨ë°±ì§ ìì¬ì ìë¶ ìì·¨ ì±ê¸°ê¸°",description:"ëª¨ë° ê±´ê°ì ìí´ ë¨ë°±ì§ì´ í¬í¨ë ê· í ì¡í ìì¬ë¥¼ íê³ , í루 ëì ì¶©ë¶í ìë¶ ì취를 ì±ê¹
1ëë¤."},{key:"treatment",badge:"ì¹ë£",title:"[ì¹ë£] ì²ë°©Â·ì¸ì© í모 ì¹ë£ì ì í´ì§ ì©ë² ì§í¤ê¸°",description:"íì¬ ì¬ì© ì¤ì¸ ì¹ë£ì ê° ìë¤ë©´ ì í´ì§ ìê°ê³¼ ì©ë²ì ë§ì¶° ë³µì©íê±°ë ëí¬í©ëë¤."}],B={ORAL:["íë¡íìì","ìë³´ë¤í¸","미ë
¹ìë"],TOPICAL:["미ë
¹ìë ê³ì´"]};function Ds(t){return t==="íë¡íìì"?"íë¡íìì ê³ì´":t==="ìë³´ë¤í¸"?"ìë³´ë¤í¸ ê³ì´":t||""}const Ne=[30,60,90,120,180],ee="ì²ë°© ì½ ì¼ì ì¶ê° í ì§íí ì ììµëë¤.",Oe="ì¤ëì ë§ì¶¤ ì¼ì´ 루í´ì ìë£í´ 주ì¸ì.",Ie={DAILY_CARE:1,MEDICATION_PRESCRIBED:2,MEDICATION_REFILL:3,AI_CARE_RECORD:4},Le="AI ìì¬ ì§ë£";function f(t=new Date){if(typeof t=="string"&&/^\d{4}-\d{2}-\d{2}/.test(t))return t.slice(0,10);const e=new Date(t);if(Number.isNaN(e.getTime()))return"";const n=e.getFullYear(),c=String(e.getMonth()+1).padStart(2,"0"),a=String(e.getDate()).padStart(2,"0");return`${n}-${c}-${a}`}function Cs(t=[],e=Q){const n=Array.isArray(e)&&e.length?e.length:Q.length,c=new Set((e||Q).map(l=>l.key)),a=new Set((t||[]).filter(l=>c.has(l))).size,s=n?Math.round(a/n*100):0;return{checkedCount:a,totalCount:n,percent:s,label:`${a}/${n} ìë£`}}function Rs(t=[],e=new Date){const n=new Set((t||[]).map(s=>f(s?.careDate||s?.date)).filter(Boolean)),c=new Date(f(e));let a=0;for(;!Number.isNaN(c.getTime())&&n.has(f(c));)a+=1,c.setDate(c.getDate()-1);return a}function he(t=new Date,e=[]){const n=f(t);return n?(e||[]).some(c=>{const a=f(c?.prescribedDate),s=f(c?.refillDate);return!!(a&&s&&a<=n&&n<=s)}):!1}function Z(t="",e=0){const n=Number(e);if(!Ne.includes(n))return"";const c=f(t);if(!c)return"";const a=new Date(`${c}T00:00:00`);return Number.isNaN(a.getTime())?"":(a.setDate(a.getDate()+n),f(a))}function Me(t=[]){return(t||[]).filter(e=>e?.medicationActive===!0||e?.medicationActiveYn==="Y"||e?.medication_active_yn==="Y").length}function qe({medications:t=[],calendarEvents:e=[]}={}){const n=[...t||[]];return(e||[]).forEach(c=>{const a=c?.type;if(a!=="MEDICATION_PRESCRIBED"&&a!=="MEDICATION_REFILL")return;const s=f(c?.prescribedDate),l=f(c?.refillDate);!s||!l||n.push({...c,prescribedDate:s,refillDate:l})}),n}function ws({careDate:t=new Date,medications:e=[],calendarEvents:n=[],checkedItemKeys:c=[]}={}){return he(t,qe({medications:e,calendarEvents:n}))?(c||[]).length?{canSubmit:!0,reason:"",message:""}:{canSubmit:!1,reason:"NO_ROUTINE_CHECKED",message:Oe}:{canSubmit:!1,reason:"NO_ACTIVE_MEDICATION",message:ee}}function Ps(t=0,e=!1){return e?{label:"ì¤ë ì¶ì ìë£",showFire:!0}:{label:"ì¤ëì ë§ì¶¤ ì¼ì´ 루í´ì ìë£í´ 주ì¸ì.",showFire:!1}}function De({careRecords:t=[],aiCareRecords:e=[],medications:n=[],calendarEvents:c=[]}={}){const a=Ts(c);
1if(a.length)return Re(a);const s=[];return(t||[]).forEach(l=>{const p=f(l?.careDate||l?.date);p&&s.push({date:p,type:"DAILY_CARE",label:"ë°ì¼ë¦¬ ì¼ì´",sourceId:l.dailyCareRecordIdx,sourceType:"DAILY_CARE",title:"ë°ì¼ë¦¬ ì¼ì´ ìë£"})}),(e||[]).forEach(l=>{const p=f(l?.recordDate||l?.date);p&&s.push({date:p,type:"AI_CARE_RECORD",label:Le,sourceId:l.personaCareMonthRecordIdx,sourceType:"AI_CARE_RECORD",title:l.visitLabel||"AI ì§ë£ 기ë¡"})}),(n||[]).forEach(l=>{const p=l.dailyCareMedicationIdx,r=l.medicationName||l.name||"ì²ë°© ì½",g=f(l.prescribedDate),k=f(l.refillDate);g&&s.push({date:g,type:"MEDICATION_PRESCRIBED",label:"ì½ ìë ¹ ì¼",sourceId:p,sourceType:"DAILY_CARE_MEDICATION",title:r,medicationType:l.medicationType,medicationName:r,prescribedDate:g,refillDate:k}),k&&s.push({date:k,type:"MEDICATION_REFILL",label:"ë¤ì ì½ íë ë ",sourceId:p,sourceType:"DAILY_CARE_MEDICATION",title:r,medicationType:l.medicationType,medicationName:r,prescribedDate:g,refillDate:k})}),Re(s)}function Ts(t=[]){return(t||[]).map(e=>{const n=f(e?.date);return n?{...e,date:n,label:e.type==="AI_CARE_RECORD"||e.type==="MEDICATION_PRESCRIBED"||e.type==="MEDICATION_REFILL"?Ce(e.type):e.label||Ce(e.type),prescribedDate:e.prescribedDate?f(e.prescribedDate):"",refillDate:e.refillDate?f(e.refillDate):""}:null}).filter(Boolean)}function Ce(t=""){return t==="DAILY_CARE"?"ë°ì¼ë¦¬ ì¼ì´":t==="AI_CARE_RECORD"?Le:t==="MEDICATION_PRESCRIBED"?"ì½ ìë ¹ ì¼":t==="MEDICATION_REFILL"?"ë¤ì ì½ íë ë ":"ì¼ì "}function Re(t=[]){return[...t].sort((e,n)=>f(e.date).localeCompare(f(n.date))||(Ie[e.type]||99)-(Ie[n.type]||99)||String(e.title||"").localeCompare(String(n.title||"")))}const we="medaloDailyCareStreakCoachMarkSeen",Ss={name:"DailyCare",components:{PersonaCareRecordTabs:ae,PersonaRecordDateCalendar:ie},emits:["close","auth-expired"],data(){const t=f(new Date);return{shellStyle:{"--persona-shell-max-width":"860px"},visibleDate:t,selectedDate:t,checkedItemKeys:[],loading:!1,saving:!1,medicationSaving:!1,selectedMedicationSaving:!1,medicationDeleting:!1,monthRequestSeq:0,message:"",messageType:"info",monthData:{routineItems:Q,careRecords:[],aiCareRecords:[],medications:[],medicationCoverageItems:[],calendarEvents:[],streakDays:0},todayCareData:{routineItems:Q,careRecords:[],aiCareRecords:[],medications:[],medicationCoverageItems:[],calendarEvents:[],streakDays:0},medicationForm:{dailyCareMedicationIdx:null,medicationType:"ORAL",medicationName:B.ORAL[0],prescribedDate:t,refillDate:""},medicationDurationDays:null,selectedMedicationForm:{dailyCareMedicationIdx:null,medicationType:"ORAL",medicationName:B.ORAL[0],prescribedDate:"",refillDate:""},selectedMedicationDurationDays:null,medicationModalOpen:!1,medicationRefillPickerOpen:!1,medicationRefillPickerTarget:"",medicationRefillPickerMode:"duration",medicationNameDropdownTarget:"",medicationNameDropdownStyle:{},medicationDeleteConfirmOpen:!1,medicationValidationModalOpen:!1,medicationValidationMessage:"",quickMenuOpen:!1,quickMenuContext:"",calendarQuickMenuViewportLocked:!1,calendarQuickMenuPosition:null,calendarQuickMenuDrag:null,suppressNextQuickMenuClick:!1,routineModalOpen:!1,infoModalOpen:!1,infoModalMessage:"",medicationRequiredModalOpen:!1,initialMedicationGateChecked:!1,streakCoachMarkOpen:!1,selectedMedicationEvent:null,selectedCalendarRecordId:"",dayEventsModalOpen:!1,dayEventsDate:"",aiRecordViewMode:"daily",aiHistorySummary:{},aiCarePlan:null,aiSessionDetail:{},aiRecordSummary:null,aiRecordDetail:null,aiSelectedStatusMonthIndex:-1,aiActiveRecordTab:"images",aiImageUrls:{},aiImageFileIds:{},aiImageErrors:{},aiImageRequestSeq:{}}},computed:{routineItems(){return this.monthData.routineItems?.length?this.monthData.routineItems:Q},progress(){return Cs(this.checkedItemKeys,this.routineItems)},progressStyle(){return{"--progress-offset":2*Math.PI*74*(1-this.progress.percent/100)}},calendarQuickMenuStyle(){return!this.calendarQuickMenuViewportLocked||!this.calendarQuickMenuPosition?null:{left:`${this.calendarQuickMenuPosition.left}px`,top:`${this.calendarQuickMenuPosition.top}px`,right:"auto",bottom:"auto"}}
1,calendarQuickMenuNearTop(){return!!(this.calendarQuickMenuViewportLocked&&this.calendarQuickMenuPosition&&this.calendarQuickMenuPosition.top<210)},streakDays(){return Number(this.monthData.streakDays??Rs(this.monthData.careRecords,new Date))},streakStatusText(){return this.streakStatus.label},streakStatus(){return Ps(this.streakDays,!!this.todayRecord)},totalCareDays(){return Number(this.monthData.totalCareDays??this.monthData.careRecords?.length??0)},medicationPeriodCareDays(){return Number(this.monthData.medicationPeriodCareDays??Me(this.monthData.careRecords))},medications(){return this.monthData.medications||[]},medicationCoverageItems(){return this.monthData.medicationCoverageItems?.length?this.monthData.medicationCoverageItems:this.medications},todayMedicationCoverageItems(){return this.todayCareData.medicationCoverageItems?.length?this.todayCareData.medicationCoverageItems:this.todayCareData.medications},submitMedicationCoverageItems(){return this.todayMedicationCoverageItems},medicationNameOptions(){return B[this.medicationForm.medicationType]||[]},selectedMedicationNameOptions(){return B[this.selectedMedicationForm.medicationType]||[]},medicationDurationOptions(){return Ne},isSelectedMedicationRefillPicker(){return this.medicationRefillPickerTarget==="selected"},medicationRefillPickerDate(){return this.isSelectedMedicationRefillPicker?this.selectedMedicationForm.refillDate:this.medicationForm.refillDate},medicationRefillPickerDurationDays(){return this.isSelectedMedicationRefillPicker?this.selectedMedicationDurationDays:this.medicationDurationDays},showMedicationFormRequiredNote(){return!this.isMedicationScheduleOpenToday(this.medicationForm)&&!this.hasExistingMedicationScheduleOpenToday},hasExistingMedicationScheduleOpenToday(){return he(this.todayKey,qe({medications:this.submitMedicationCoverageItems,calendarEvents:this.submitCalendarEvents}))},calendarEvents(){return De({careRecords:this.monthData.careRecords,aiCareRecords:this.monthData.aiCareRecords,medications:this.monthData.medications,calendarEvents:this.monthData.calendarEvents})},todayCalendarEvents(){return De({careRecords:this.todayCareData.careRecords,aiCareRecords:this.todayCareData.aiCareRecords,medications:this.todayCareData.medications,calendarEvents:this.todayCareData.calendarEvents})},submitCalendarEvents(){return this.todayCalendarEvents},calendarRecords(){return this.calendarEvents.map((t,e)=>({calendarRecordId:this.calendarRecordId(t,e),calendarLabel:t.label,visitLabel:t.label,recordDate:t.date,monthIndex:e,visitRound:e,dailyCareEvent:t}))},selectedDateLabel(){const t=new Date(this.selectedDate);return Number.isNaN(t.getTime())?this.selectedDate:`${t.getMonth()+1}ì ${t.getDate()}ì¼`},dayEventsDateLabel(){const t=new Date(this.dayEventsDate);return Number.isNaN(t.getTime())?this.dayEventsDate:`${t.getMonth()+1}ì ${t.getDate()}ì¼`},selectedDayEventRecords(){return this.dayEventsDate?this.calendarRecords.filter(t=>f(t.recordDate)===this.dayEventsDate):[]},selectedRecord(){return((this.isTodaySelectedDate?this.todayCareData.careRecords:this.monthData.careRecords)||[]).find(e=>f(e.careDate)===this.selectedDate)||null},todayRecord(){return(this.todayCareData.careRecords||[]).find(t=>f(t.careDate)===this.todayKey)||null},todayKey(){return f(new Date)},isTodaySelectedDate(){return f(this.selectedDate)===this.todayKey},isPastSelectedDate(){const t=f(this.selectedDate);return!!t&&t<this.todayKey},isDefaultActionState(){return!this.actionMessage&&!this.isPastSelectedDate},actionMessage(){return this.message||(!this.isPastSelectedDate&&this.dailyCareBlockedByMedication?ee:"")},actionMessageIsError(){return this.messageType==="error"||!this.isPastSelectedDate&&this.dailyCareBlockedByMedication},submitAvailability(){return ws({careDate:this.todayKey,medications:this.submitMedicationCoverageItems,calendarEvents:this.submitCalendarEvents,checkedItemKeys:this.checkedItemKeys})},dailyCareBlockedByMedication(){return this.submitAvailability.reason==="NO_ACTIVE_MEDICATION"},isSubmitDisabled(){return this.dailyCareBlockedByMedication},aiCareRecords(){const t=this.aiCarePlan?.months||[];return t.length?t:this.monthData.aiCareRecords||[]},aiSelectedRecord(){return this.aiRecordDetail||this.aiRecordSummary},selectedMedicationView(){const t=this.selectedMedicationEvent;return t?{eventLabel:t.label||(t.type==="MEDICATION_PRESCRIBED"?"ì²ë°©ì¼":"ë¤ì ì½ íë ë "),sourceLabel:t.sourceType==="AI_CARE_RECORD_MEDICATION"?"AI ìì¬ ì§ë£ ì½ ì¼ì ":"ë°ì¼ë¦¬ ì¼ì´ ì½ ì¼ì "}:null},selectedMedicationEditable(){return this.selectedMedicationEvent?.sourceType==="DAILY_CARE_MEDICATION"&&!!(this.selectedMedicationForm.dailyCareMedicationIdx||this.selectedMedicationEvent?.sourceId)},aiComparisonRecords(){const t=new Map;
1if(this.aiCareRecords.forEach(e=>{t.set(Number(e.personaCareMonthRecordIdx),e)}),this.aiSelectedRecord?.personaCareMonthRecordIdx){const e=Number(this.aiSelectedRecord.personaCareMonthRecordIdx);t.set(e,{...t.get(e)||{},...this.aiSelectedRecord})}return Array.from(t.values()).sort((e,n)=>Number(e.visitRound??e.monthIndex)-Number(n.visitRound??n.monthIndex))},aiSelectedRecordImageUrls(){const t=this.aiSelectedRecord;return t?{hairType:this.aiImageUrls[this.aiMonthImageKey(t,"scalp")]||"",thickness:this.aiImageUrls[this.aiMonthImageKey(t,"thickness")]||""}:{hairType:"",thickness:""}},aiSessionImageUrls(){return{hairType:this.aiSelectedRecordImageUrls.hairType||this.aiImageUrls.sessionHairType||"",thickness:this.aiSelectedRecordImageUrls.thickness||this.aiImageUrls.sessionThickness||""}},aiStatusImageOptions(){return this.aiComparisonRecords.map(t=>({monthIndex:Number(t.visitRound??t.monthIndex),recordId:Number(t.personaCareMonthRecordIdx),label:t.visitLabel||this.aiMonthLabel(t.visitRound??t.monthIndex),recordDate:t.recordDate,scalpUrl:this.aiImageUrls[this.aiMonthImageKey(t,"scalp")]||"",thicknessUrl:this.aiImageUrls[this.aiMonthImageKey(t,"thickness")]||"",thicknessResult:t.thicknessResult}))},aiImageErrorMessage(){return Object.values(this.aiImageErrors||{}).some(Boolean)?"ì¼ë¶ ìë£ ì´ë¯¸ì§ë¥¼ ë¶ë¬ì¤ì§ 못íìµëë¤. ì ì í ë¤ì ìëí´ ì£¼ì¸ì.":""}},mounted(){this.loadMonth(),this.loadAiHistorySummary(),this.syncCalendarQuickMenuViewportLock(),document.addEventListener("pointerdown",this.handleQuickMenuOutsideClick,!0),window.addEventListener("resize",this.syncCalendarQuickMenuViewportLock),window.addEventListener("resize",this.updateMedicationNameDropdownPosition),window.addEventListener("scroll",this.updateMedicationNameDropdownPosition,!0)},beforeUnmount(){document.removeEventListener("pointerdown",this.handleQuickMenuOutsideClick,!0),window.removeEventListener("resize",this.syncCalendarQuickMenuViewportLock),window.removeEventListener("resize",this.updateMedicationNameDropdownPosition),window.removeEventListener("scroll",this.updateMedicationNameDropdownPosition,!0),this.revokeAiImageUrls()},methods:{medicationDisplayName:Ds,calendarRecordId(t,e){return`${t.type}-${t.sourceType||""}-${t.sourceId||t.title||""}-${t.date}-${e}`},isTodayMonth(t){return f(t).slice(0,7)===this.todayKey.slice(0,7)},monthKey(t){return f(t).slice(0,7)},isCurrentMonthRequest(t,e){return t===this.monthRequestSeq&&this.monthKey(e)===this.monthKey(this.visibleDate)},changeVisibleDate(t){this.visibleDate=t,this.clearDailyCareMessage(),this.aiRecordViewMode="daily",this.routineModalOpen=!1,this.selectedMedicationEvent=null,this.selectedMedicationDurationDays=null,this.medicationDeleteConfirmOpen=!1,this.closeMedicationRefillPicker(),this.closeQuickMenu(),this.closeDayEventsModal(),this.loadMonth()},selectDate(t){this.clearDailyCareMessage(),this.selectedDate=t;const e=new Date(t),n=new Date(this.visibleDate);!Number.isNaN(e.getTime())&&e.getMonth()!==n.getMonth()&&(this.visibleDate=f(new Date(e.getFullYear(),e.getMonth(),1)),this.loadMonth()),this.syncSelectedRecord()},selectCalendarEntry(t){this.openDayEventsModal(t)},openDayEventsModal(t){const e=t?.dailyCareEvent;e&&(this.clearDailyCareMessage(),this.selectedCalendarRecordId=t.calendarRecordId,this.dayEventsDate=f(t.recordDate||e.date),this.dayEventsModalOpen=!0,this.aiRecordViewMode="daily",this.routineModalOpen=!1,this.selectedMedicationEvent=null,this.selectedMedicationDurationDays=null,this.medicationDeleteConfirmOpen=!1,this.closeMedicationNameDropdown(),this.closeQuickMenu())},closeDayEventsModal(){this.closeQuickMenu(),this.dayEventsModalOpen=!1,this.dayEventsDate=""},openDayEventDetail(t){t?.dailyCareEvent&&(this.selectedCalendarRecordId=t.calendarRecordId,this.dayEventsModalOpen=!1,this.openCalendarEventDetail(t))},openCalendarEventDetail(t){const e=t?.dailyCareEvent;if(e){if(this.clearDailyCareMessage(),this.selectedCalendarRecordId=t.calendarRecordId,e.type==="AI_CARE_RECORD"){this.openAiCareRecord(e);return}if(this.isMedicationEvent(e)){this.showMedicationEvent(e);return}this.openDailyCareRoutine(e.date)}},dayEventLabel(t){return t?.dailyCareEvent?.label||t?.calendarLabel||"ì¼ì "},dayEventTitle(t){const e=t?.dailyCareEvent||{};return e.title||e.medicationName||t?.visitLabel||this.dayEventLabel(t)},dayEventBadgeClass(t){const e=t?.dailyCareEvent?.type||"";return e?`daily-care-day-event--${e.toLowerCase().replace(/_/g,"-")}`:""},isMedicationEvent(t){return t?.type==="MEDICATION_PRESCRIBED"||t?.type==="MEDICATION_REFILL"},showMedicationEvent(t){this.clearDailyCareMessage(),this.aiRecordViewMode="daily",this.routineModalOpen=!1,this.medicationDeleteConfirmOpen=!1,this.closeQuickMenu(),this.closeDayEventsModal(),this.selectedMedicationEvent=t,this.selectedDate=f(t.date),this.selectedMedicationForm=this.buildSelectedMedicationForm(t),this.selectedMedicationDurationDays=null,this.medicationForm.prescribedDate=this.selectedMedicationForm.prescribedDate||this.selectedDate}
1,openDailyCareRoutine(t=this.todayKey){this.clearDailyCareMessage(),this.aiRecordViewMode="daily",this.selectedMedicationEvent=null,this.selectedMedicationDurationDays=null,this.medicationDeleteConfirmOpen=!1,this.closeQuickMenu(),this.closeDayEventsModal(),this.routineModalOpen=!0,this.selectedDate=f(t),this.medicationForm.prescribedDate=this.selectedDate,this.syncSelectedRecord()},loadMonth(){const t=this.visibleDate,e=++this.monthRequestSeq,n=new Date(t);this.loading=!0,this.$api.chat.getPersonaDailyCareMonth({year:n.getFullYear(),month:n.getMonth()+1},{success:c=>{if(!this.isCurrentMonthRequest(e,t))return;const a=this.normalizeMonthData(c||{});this.monthData=a,this.isTodayMonth(t)&&(this.todayCareData=a),this.loading=!1,this.syncSelectedRecord(),this.maybeShowInitialMedicationRequiredModal(),this.maybeShowStreakCoachMark(),this.aiRecordViewMode==="detail"&&this.refreshSelectedAiRecordSummary()},error:c=>{if(this.isCurrentMonthRequest(e,t)){if(this.isAuthExpiredError(c)){this.loading=!1,this.$emit("auth-expired");return}this.loading=!1,this.messageType="error",this.message="ë°ì¼ë¦¬ ì¼ì´ ì 보를 ë¶ë¬ì¤ì§ 못íìµëë¤."}}})},loadAiHistorySummary(){this.$api.chat.getPersonaHistorySummary({success:t=>{this.aiHistorySummary=t||{},this.aiCarePlan=t?.latestCarePlan||null,this.aiSessionDetail=t?.initialSession||t?.latestSession||{},this.loadAllAiImages()},error:t=>{if(this.isAuthExpiredError(t)){this.$emit("auth-expired");return}this.aiHistorySummary={},this.aiCarePlan=null,this.aiSessionDetail={}}})}
1,normalizeMonthData(t){return{routineItems:t.routineItems?.length?t.routineItems:Q,careRecords:t.careRecords||[],aiCareRecords:t.aiCareRecords||[],medications:t.medications||[],medicationCoverageItems:t.medicationCoverageItems||t.medications||[],calendarEvents:t.calendarEvents||[],streakDays:t.streakDays??0,totalCareDays:t.totalCareDays??t.careRecords?.length??0,medicationPeriodCareDays:t.medicationPeriodCareDays??Me(t.careRecords||[])}},syncSelectedRecord(){const t=this.selectedRecord;if(this.checkedItemKeys=t?.checkedItemKeys?.length?[...t.checkedItemKeys]:[],t){const e=this.calendarRecords.find(n=>n.dailyCareEvent?.type==="DAILY_CARE"&&f(n.dailyCareEvent.date)===this.selectedDate);e&&(this.selectedCalendarRecordId=e.calendarRecordId)}},maybeShowInitialMedicationRequiredModal(){this.initialMedicationGateChecked||(this.initialMedicationGateChecked=!0,this.dailyCareBlockedByMedication&&this.showMedicationRequiredModal())},clearCalendarSelection(){this.selectedCalendarRecordId=""},clearDailyCareMessage(){this.message="",this.messageType="info"},isAuthExpiredError(t){return Y(t)},openAiCareRecord(t){const e=Number(t.sourceId),n=this.findAiRecord(e);if(!n){this.messageType="error",this.message="AI ì§ë£ 기ë¡ì ì°¾ì§ ëª»íìµëë¤.";return}this.aiRecordViewMode="detail",this.routineModalOpen=!1,this.selectedMedicationEvent=null,this.selectedMedicationDurationDays=null,this.medicationDeleteConfirmOpen=!1,this.closeQuickMenu(),this.closeDayEventsModal(),this.selectedDate=f(t.date),this.aiRecordSummary=n,this.aiRecordDetail=null,this.aiSelectedStatusMonthIndex=this.previousAiStatusMonthIndex(n),this.aiActiveRecordTab="images",this.loadAiRecordImages(n);const c=n.personaCarePlanIdx||this.aiCarePlan?.personaCarePlanIdx;c&&(this.loading=!0,this.$api.chat.getPersonaCareRecord(c,e,{success:a=>{this.aiRecordDetail={...n,...a||{}},this.loading=!1,this.loadAiRecordImages(this.aiRecordDetail),this.loadAllAiImages()},error:()=>{this.loading=!1,this.messageType="error",this.message="AI ì§ë£ 기ë¡ì ë¶ë¬ì¤ì§ 못íìµëë¤."}}))},refreshSelectedAiRecordSummary(){if(!this.aiSelectedRecord?.personaCareMonthRecordIdx)return;const t=this.findAiRecord(this.aiSelectedRecord.personaCareMonthRecordIdx);t&&(this.aiRecordSummary=t)},closeDetailModal(){this.returnToTodayDailyCare()},returnToTodayDailyCare(){const t=this.todayKey,e=f(this.visibleDate).slice(0,7),n=t.slice(0,7);if(this.clearDailyCareMessage(),this.aiRecordViewMode="daily",this.routineModalOpen=!1,this.selectedMedicationEvent=null,this.selectedMedicationDurationDays=null,this.medicationDeleteConfirmOpen=!1,this.closeQuickMenu(),this.closeDayEventsModal(),this.aiRecordSummary=null,this.aiRecordDetail=null,this.aiActiveRecordTab="images",this.selectedDate=t,this.medicationForm.prescribedDate=t,this.clearCalendarSelection(),this.syncSelectedRecord(),e!==n){this.visibleDate=t,this.loadMonth();return}},findAiRecord(t){return this.aiCareRecords.find(e=>Number(e.personaCareMonthRecordIdx)===Number(t))||(this.monthData.aiCareRecords||[]).find(e=>Number(e.personaCareMonthRecordIdx)===Number(t))||null},findDailyCareMedication(t){return(this.monthData.medications||[]).find(e=>String(e.dailyCareMedicationIdx)===String(t))||null},buildSelectedMedicationForm(t){const e=t?.sourceType==="DAILY_CARE_MEDICATION"?this.findDailyCareMedication(t.sourceId):null,n=e?.medicationType||t?.medicationType||"ORAL",c=e?.medicationName||t?.medicationName||t?.title||(B[n]||[])[0]||"";return{dailyCareMedicationIdx:e?.dailyCareMedicationIdx||(t?.sourceType==="DAILY_CARE_MEDICATION"?t.sourceId:null),medicationType:n,medicationName:c,prescribedDate:f(e?.prescribedDate||t?.prescribedDate||(t?.type==="MEDICATION_PRESCRIBED"?t.date:"")),refillDate:f(e?.refillDate||t?.refillDate||(t?.type==="MEDICATION_REFILL"?t.date:""))}},saveDailyCare(){if(this.saving)return;if(this.isPastSelectedDate){this.messageType="error",this.message="ì§ë ë ì§ì ë°ì¼ë¦¬ ì¼ì´ë ìì í ì ììµëë¤.";return}const t=this.submitAvailability;if(t.reason==="NO_ACTIVE_MEDICATION"){this.messageType="error",this.message=ee,this.showMedicationRequiredModal(),this.focusQuickMenu();return}if(t.reason==="NO_ROUTINE_CHECKED"){this.messageType="error",this.message=Oe;return}this.saving=!0,this.$api.chat.savePersonaDailyCareRecord({careDate:this.selectedDate,checkedItemKeys:this.checkedItemKeys},{success:()=>{this.saving=!1,this.messageType="info",this.message="ì¶ì ì²´í¬ê° ìë£ëììµëë¤.",this.loadMonth()},error:()=>{this.saving=!1,this.messageType="error",this.message="ì¶ì ì²´í¬ ì ì¥ì ì¤í¨íìµëë¤."}})},saveMedication(){this.medicationSaving||this.validateMedicationForm(this.medicationForm,{showModal:!0})&&(this.medicationSaving=!0,this.$api.chat.savePersonaDailyCareMedication({...this.medicationForm},{success:()=>{this.medicationSaving=!1,this.clearDailyCareMessage(),this.resetMedicationForm(this.selectedDate),this.medicationModalOpen=!1,this.loadMonth()},error:()=>{this.medicationSaving=!1,this.messageType="error",this.message="ì²ë°© ì½ ì¼ì ì ì¥ì ì¤í¨íìµëë¤."}}))},validateMedicationForm(t,e={}){const n=this.medicationFormValidationMessage(t);return n?(this.messageType="error",this.message=n,e.showModal&&this.showMedicationValidationModal(n),!1):!0},medicationFormValidationMessage(t){return!t.medicationName||!t.prescribedDate||!t.refillDate?"ì²ë°©ì½, ì½ ìë ¹ ì¼, ë¤ì ì½ íë ë ì 모ë ì
ë ¥í´ ì£¼ì¸ì.":!this.isValidMedicationDate(t.prescribedDate)||!this.isValidMedicationDate(t.refillDate)?"ì½ ìë ¹ ì¼ê³¼ ë¤ì ì½ íë ë ì ì¬ë°ë¥¸ ë ì§ë¡ ì
ë ¥í´ ì£¼ì¸ì.":t.refillDate<t.prescribedDate?"ë¤ì ì½ íë ë ì ì½ ìë ¹ ì¼ê³¼ ê°ê±°ë ì´í ë ì§ë¡ ì
ë ¥í´ ì£¼ì¸ì.":""},applyMedicationDuration(t){const e=Number(t);if(!this.medicationDurationOptions.includes(e))return;this.medicationDurationDays=e;const n=Z(this.medicationForm.prescribedDate,e);n&&(this.medicationForm.refillDate=n)},syncMedicationDurationRefill(){if(!this.medicationDurationDays)return;const t=Z(this.medicationForm.prescribedDate,this.medicationDurationDays);t&&(this.medicationForm.refillDate=t)},clearMedicationDuration(){this.medicationDurationDays=null},applySelectedMedicationDuration(t){if(!this.selectedMedicationEditable)return;const e=Number(t);if(!this.medicationDurationOptions.includes(e))return;this.selectedMedicationDurationDays=e;const n=Z(this.selectedMedicationForm.prescribedDate,e);n&&(this.selectedMedicationForm.refillDate=n)},syncSelectedMedicationDurationRefill(){if(!this.selectedMedicationDurationDays)return;const t=Z(this.selectedMedicationForm.prescribedDate,this.selectedMedicationDurationDays);t&&(this.selectedMedicationForm.refillDate=t)},clearSelectedMedicationDuration(){this.selectedMedicationDurationDays=null},isMedicationNameDropdownOpen(t){return this.medicationNameDropdownTarget===t},toggleMedicationNameDropdown(t){if(t==="selected"&&!this.selectedMedicationEditable||t!=="new"&&t!=="selected")return;this.closeMedicationRefillPicker();const e=this.isMedicationNameDropdownOpen(t)?"":t;this.medicationNameDropdownTarget=e,e?(this.medicationNameDropdownStyle={position:"fixed",visibility:"hidden"},this.updateMedicationNameDropdownPosition()):this.medicationNameDropdownStyle={}},closeMedicationNameDropdown(){this.medicationNameDropdownTarget="",this.medicationNameDropdownStyle={}},normalizedMedicationNameDropdownRef(t){return Array.isArray(t)?t[0]:t},medicationNameDropdownElement(t=this.medicationNameDropdownTarget){const e=t==="selected"?this.$refs.selectedMedicationNameDropdown:this.$refs.medicationNameDropdown;return this.normalizedMedicationNameDropdownRef(e)},medicationNameDropdownListElement(t=this.medicationNameDropdownTarget){const e=t==="selected"?this.$refs.selectedMedicationNameDropdownList:this.$refs.medicationNameDropdownList;return this.normalizedMedicationNameDropdownRef(e)},updateMedicationNameDropdownPosition(){if(!this.medicationNameDropdownTarget)return;const t=this.medicationNameDropdownTarget;this.$nextTick(()=>
1{if(!this.medicationNameDropdownTarget||this.medicationNameDropdownTarget!==t)return;const e=this.medicationNameDropdownElement(t),n=this.medicationNameDropdownListElement(t),c=e?.querySelector(".daily-care-select-trigger");if(!c||!n)return;const a=c.getBoundingClientRect(),s=window.innerWidth||document.documentElement.clientWidth||a.right,l=window.innerHeight||document.documentElement.clientHeight||a.bottom,p=6,r=10,g=n.offsetHeight||0,k=Math.max(0,a.width),_=Math.min(Math.max(r,a.left),Math.max(r,s-r-k)),v=a.bottom+p,I=l-a.bottom-r-p,U=a.top-r-p;let L=v;g&&I<g&&U>I?L=Math.max(r,a.top-g-p):g&&(L=Math.min(v,Math.max(r,l-r-g))),this.medicationNameDropdownStyle={position:"fixed",top:`${Math.round(L)}px`,left:`${Math.round(_)}px`,width:`${Math.round(k)}px`}})},closeMedicationNameDropdownFromOutside(t){if(!this.medicationNameDropdownTarget)return;const e=this.medicationNameDropdownElement(),n=this.medicationNameDropdownListElement();e?.contains(t.target)||n?.contains(t.target)||this.closeMedicationNameDropdown()},selectMedicationName(t,e){if(e){if(t==="new")this.medicationForm.medicationName=e;else if(t==="selected"){if(!this.selectedMedicationEditable)return;this.selectedMedicationForm.medicationName=e}else return;this.closeMedicationNameDropdown()}},openMedicationRefillPicker(t){if(!(t==="selected"&&!this.selectedMedicationEditable)&&!(t!=="new"&&t!=="selected")){if(this.medicationRefillPickerTarget=t,t==="new"){this.medicationRefillPickerMode="duration",this.applyMedicationRefillPickerDuration(60),this.medicationRefillPickerOpen=!0;return}this.medicationRefillPickerMode="manual",this.medicationRefillPickerOpen=!0,this.openMedicationRefillDatePicker("medicationRefillPickerDateInput")}},closeMedicationRefillPicker(){this.medicationRefillPickerOpen=!1,this.medicationRefillPickerTarget="",this.medicationRefillPickerMode="duration"},updateMedicationRefillPickerDate(t){const e=t?.target?.value||"";if(this.isSelectedMedicationRefillPicker){if(!this.selectedMedicationEditable)return;this.selectedMedicationForm.refillDate=e,this.clearSelectedMedicationDuration();return}this.medicationForm.refillDate=e,this.clearMedicationDuration()},applyMedicationRefillPickerDuration(t){this.medicationRefillPickerMode="duration",this.isSelectedMedicationRefillPicker?this.applySelectedMedicationDuration(t):this.applyMedicationDuration(t),this.openMedicationRefillDatePicker("medicationRefillPickerDateInput")},openMedicationRefillDatePicker(t){this.$nextTick(()=>{const e=this.$refs[t],n=Array.isArray(e)?e[0]:e;if(!(!n||typeof n.focus!="function")){try{n.focus({preventScroll:!0})}catch{n.focus()}if(typeof n.showPicker=="function")try{n.showPicker()}catch{}}})},isValidMedicationDate(t){if(!/^\d{4}-\d{2}-\d{2}$/.test(t||""))return!1;const e=new Date(`${t}T00:00:00`);return!Number.isNaN(e.getTime())&&f(e)===t},isMedicationScheduleOpenToday(t){return he(this.todayKey,[t])},showMedicationValidationModal(t){this.medicationValidationMessage=t,this.medicationValidationModalOpen=!0},closeMedicationValidationModal(){this.medicationValidationModalOpen=!1,this.medicationValidationMessage=""},resetMedicationForm(t=this.selectedDate){this.medicationForm={dailyCareMedicationIdx:null,medicationType:"ORAL",medicationName:B.ORAL[0],prescribedDate:t,refillDate:""},this.medicationDurationDays=null},openMedicationModal(){this.closeQuickMenu(),this.closeDayEventsModal(),this.medicationModalOpen=!0,this.medicationForm.prescribedDate||(this.medicationForm.prescribedDate=this.selectedDate),this.medicationForm.medicationName||(this.medicationForm.medicationName=this.medicationNameOptions[0]||"")},closeMedicationModal(){this.medicationModalOpen=!1,this.closeMedicationRefillPicker(),this.closeMedicationNameDropdown(),this.closeMedicationValidationModal()},syncCalendarQuickMenuViewportLock(){if(typeof window>"u")return;const t=window.matchMedia("(max-width: 1024px), (hover: none) and (pointer: coarse), (max-height: 536px)").matches;this.calendarQuickMenuViewportLocked=t,t&&this.clampExistingCalendarQuickMenuPosition()},clampCalendarQuickMenuPosition(t,e,n=42,c=42){if(typeof window>"u")return{left:t,top:e};const a=12,s=Math.max(a,window.innerWidth-n-a),l=Math.max(a,window.innerHeight-c-a);return{left:Math.min(Math.max(t,a),s),top:Math.min(Math.max(e,a),l)}}
1,clampExistingCalendarQuickMenuPosition(){if(!this.calendarQuickMenuPosition)return;const t=this.$refs.quickMenuArea?.getBoundingClientRect();this.calendarQuickMenuPosition=this.clampCalendarQuickMenuPosition(this.calendarQuickMenuPosition.left,this.calendarQuickMenuPosition.top,t?.width||42,t?.height||42)},startCalendarQuickMenuDrag(t){if(!this.calendarQuickMenuViewportLocked||t.button!==void 0&&t.button!==0)return;const e=this.$refs.quickMenuArea?.getBoundingClientRect();e&&(this.calendarQuickMenuDrag={pointerId:t.pointerId,startX:t.clientX,startY:t.clientY,startLeft:e.left,startTop:e.top,width:e.width,height:e.height,moved:!1},t.currentTarget?.setPointerCapture?.(t.pointerId))},moveCalendarQuickMenuDrag(t){const e=this.calendarQuickMenuDrag;if(!e||e.pointerId!==t.pointerId)return;const n=t.clientX-e.startX,c=t.clientY-e.startY;!e.moved&&Math.hypot(n,c)<6||(e.moved=!0,this.calendarQuickMenuPosition=this.clampCalendarQuickMenuPosition(e.startLeft+n,e.startTop+c,e.width,e.height),t.preventDefault())},finishCalendarQuickMenuDrag(t){const e=this.calendarQuickMenuDrag;!e||e.pointerId!==t.pointerId||(t.currentTarget?.releasePointerCapture?.(t.pointerId),e.moved&&(this.suppressNextQuickMenuClick=!0,window.setTimeout(()=>{this.suppressNextQuickMenuClick=!1},0)),this.calendarQuickMenuDrag=null)},handleQuickMenuOutsideClick(t){this.closeMedicationNameDropdownFromOutside(t),this.streakCoachMarkOpen&&!this.$refs.streakLegendArea?.contains(t.target)&&(this.streakCoachMarkOpen=!1),!(!this.quickMenuOpen||[this.$refs.quickMenuArea,this.$refs.dayEventsQuickMenuArea].some(n=>n?.contains(t.target)))&&this.closeQuickMenu()},closeQuickMenu(){this.quickMenuOpen=!1,this.quickMenuContext=""},toggleQuickMenu(t="calendar"){if(t==="calendar"&&this.suppressNextQuickMenuClick){this.suppressNextQuickMenuClick=!1;return}if(this.quickMenuOpen&&this.quickMenuContext===t){this.closeQuickMenu();return}this.quickMenuOpen=!0,this.quickMenuContext=t},openTodayDailyCare(){if(this.clearDailyCareMessage(),this.closeQuickMenu(),this.closeDayEventsModal(),this.dailyCareBlockedByMedication){this.showMedicationRequiredModal();return}this.openDailyCareRoutine(this.todayKey)},openCareDaysInfo(){this.openInfoModal(`ì´ ì¼ì´ ì¼ìë ${this.medicationPeriodCareDays}ì¼ ì
ëë¤.`)},openStreakInfo(){this.openInfoModal(`ì¤ë ê¸°ì¤ ì°ì ì¶ìì¼ì ${this.streakDays}ì¼ì
ëë¤.`)},openInfoModal(t){this.closeQuickMenu(),this.closeDayEventsModal(),this.infoModalMessage=t,this.infoModalOpen=!0},closeInfoModal(){this.infoModalOpen=!1,this.infoModalMessage=""},openMedicationFromQuickMenu(){this.openMedicationModal()},showMedicationRequiredModal(){this.medicationRequiredModalOpen=!0},closeMedicationRequiredModal(){this.medicationRequiredModalOpen=!1,this.maybeShowStreakCoachMark()},openMedicationFromRequiredModal(){this.medicationRequiredModalOpen=!1,this.openMedicationModal()},toggleStreakCoachMark(){this.streakCoachMarkOpen=!this.streakCoachMarkOpen,this.streakCoachMarkOpen&&this.markStreakCoachMarkSeen()},closeStreakCoachMark(){this.streakCoachMarkOpen=!1},markStreakCoachMarkSeen(){try{localStorage.setItem(we,"Y")}catch{}},maybeShowStreakCoachMark(){if(this.streakCoachMarkOpen||this.medicationRequiredModalOpen||this.medicationModalOpen||this.routineModalOpen||this.todayRecord)return;let t="Y";try{t=localStorage.getItem(we)||""}catch{t="Y"}t!=="Y"&&(this.streakCoachMarkOpen=!0,this.markStreakCoachMarkSeen())},selectMedicationType(t){this.medicationForm.medicationType=t,this.medicationForm.medicationName=(B[t]||[])[0]||"",this.closeMedicationNameDropdown()},selectSelectedMedicationType(t){this.selectedMedicationEditable&&(this.selectedMedicationForm.medicationType=t,this.selectedMedicationForm.medicationName=(B[t]||[])[0]||"",this.closeMedicationNameDropdown())},saveSelectedMedication(){this.selectedMedicationSaving||!this.selectedMedicationEditable||!this.validateMedicationForm(this.selectedMedicationForm)||(this.selectedMedicationSaving=!0,this.$api.chat.savePersonaDailyCareMedication({...this.selectedMedicationForm},{success:()=>{this.selectedMedicationSaving=!1,this.clearDailyCareMessage(),this.loadMonth()},error:()=>{this.selectedMedicationSaving=!1,this.messageType="error",this.message="ì²ë°© ì½ ì¼ì ì ì¥ì ì¤í¨íìµëë¤."}}))},deleteSelectedMedication(){this.selectedMedicationEditable&&(this.clearDailyCareMessage(),this.medicationDeleteConfirmOpen=!0)},confirmMedicationDelete(){if(!this.selectedMedicationEditable){this.medicationDeleteConfirmOpen=!1;return}this.medicationDeleteConfirmOpen=!1,this.deleteMedication(this.selectedMedicationForm,{returnToToday:!0})},cancelMedicationDelete(){this.medicationDeleteConfirmOpen=!1},handleSubmitAttempt(){this.dailyCareBlockedByMedication&&(this.messageType="error",this.message=ee,this.showMedicationRequiredModal(),this.focusQuickMenu())},focusQuickMenu(){this.$nextTick(()=>{this.$refs.dailyCareBody?.scrollTo({top:0,behavior:"smooth"}),this.$refs.dailyCareScroll?.scrollTo({top:0,behavior:"smooth"}),this.quickMenuOpen=!0,this.quickMenuContext="calendar"})},deleteMedication(t,e={}){if(this.medicationDeleting||!t?.dailyCareMedicationIdx)return;this.medicationDeleting=!0;const n=e.returnToToday&&f(this.visibleDate).slice(0,7)===this.todayKey.slice(0,7);this.$api.chat.deletePersonaDailyCareMedication(t.dailyCareMedicationIdx,{success:()=>{this.medicationDeleting=!1,this.clearDailyCareMessage(),e.returnToToday&&this.returnToTodayDailyCare(),(!e.returnToToday||n)&&this.loadMonth()},error:()=>{this.medicationDeleting=!1,this.messageType="error",this.message="ì²ë°© ì½ ì¼ì ìì ì ì¤í¨íìµëë¤."}})},selectAiStatusMonth(t){this.aiSelectedStatusMonthIndex=Number(t)},loadAllAiImages(){this.loadAiImage("sessionHairType",this.aiSessionImageFileId("hairType")),this.loadAiImage("sessionThickness",this.aiSessionImageFileId("thickness")),this.aiComparisonRecords.forEach(t=>this.loadAiRecordImages(t))},loadAiRecordImages(t){t&&(this.loadAiImage(this.aiMonthImageKey(t,"scalp"),this.aiRecordImageFileId(t,"scalp")),this.loadAiImage(this.aiMonthImageKey(t,"thickness"),this.aiRecordImageFileId(t,"thickness")))},loadAiImage(t,e){if(!e){this.invalidateAiImageRequest(t),this.revokeAiImageUrl(t),this.aiImageFileIds[t]="",this.aiImageErrors[t]=!1;return}const n=this.aiImageFileIds[t];if(this.aiImageUrls[t]&&String(n)===String(e))return;this.aiImageUrls[t]&&this.revokeAiImageUrl(t),this.aiImageFileIds[t]=String(e);const c=this.nextAiImageRequestId(t);this.aiImageErrors[t]=!1,this.$api.chat.getPersonaMedicalFile(e,{success:a=>{this.isCurrentAiImageRequest(t,c)&&(this.aiImageUrls[t]=URL.createObjectURL(a))},error:a=>{if(this.isCurrentAiImageRequest(t,c)){if(this.isAuthExpiredError(a)){this.$emit("auth-expired");return}this.aiImageErrors[t]=!0}}})},revokeAiImageUrl(t){this.aiImageUrls[t]&&URL.revokeObjectURL(this.aiImageUrls[t]),this.aiImageUrls[t]=""},nextAiImageRequestId(t){const e=Number(this.aiImageRequestSeq[t]||0)+1;return this.aiImageRequestSeq[t]=e,e},invalidateAiImageRequest(t){this.aiImageRequestSeq[t]=Number(this.aiImageRequestSeq[t]||0)+1},isCurrentAiImageRequest(t,e){return Number(this.aiImageRequestSeq[t]||0)===Number(e)},revokeAiImageUrls(){Object.keys(this.aiImageRequestSeq||{}
1).forEach(t=>this.invalidateAiImageRequest(t)),Object.keys(this.aiImageUrls||{}).forEach(t=>this.revokeAiImageUrl(t)),this.aiImageFileIds={}},aiRecordImageFileId(t,e){return e==="scalp"?t.scalpImageFileId||t.hairTypeResult?.imageFileId||t.hairTypeResult?.medicalFileId||"":t.thicknessImageFileId||t.thicknessResult?.imageFileId||t.thicknessResult?.medicalFileId||""},aiSessionImageFileId(t){return t==="hairType"?this.aiSessionDetail.hairTypeImageFileId||this.aiSessionDetail.hairTypeResult?.imageFileId||this.aiSessionDetail.hairTypeResult?.medicalFileId||"":this.aiSessionDetail.thicknessImageFileId||this.aiSessionDetail.thicknessResult?.imageFileId||this.aiSessionDetail.thicknessResult?.medicalFileId||""},aiMonthImageKey(t,e){return`daily-ai-record-${t.personaCareMonthRecordIdx||t.monthIndex}-${e}`},aiMonthLabel(t){return Fe(t)},latestAiStatusMonthIndex(){const t=this.aiComparisonRecords.map(e=>Number(e?.visitRound??e?.monthIndex)).filter(e=>Number.isFinite(e));return t.length?Math.max(...t):-1},previousAiStatusMonthIndex(t){const e=Number(t?.visitRound??t?.monthIndex??0);return e<=0?this.latestAiStatusMonthIndex():Math.max(0,e-1)}}},_s={class:"popup-wrap persona-popup-wrap",role:"dialog","aria-modal":"true"},xs={class:"pop-head persona-pop-head"},Fs={ref:"dailyCareBody",class:"persona-pop-body daily-care-pop-body"},As={class:"daily-care-step"},Es={ref:"dailyCareScroll",class:"daily-care-scroll"},Ns={class:"daily-care-calendar-stack"},Os=["aria-expanded"],Ls={key:0,class:"daily-care-quick-menu"},qs={key:0,class:"daily-care-fire","aria-hidden":"true"},Us={ref:"streakLegendArea",class:"daily-care-calendar-legend","aria-label":"ìºë¦°ë í목 ìì ìë´"},Bs=["aria-expanded"],Hs={key:0,class:"daily-care-streak-coach-mark",role:"dialog","aria-label":"ì¶ì ì¡°ê±´ ìë´"},Vs={key:0,class:"daily-care-loading"},Qs={class:"daily-care-detail-modal daily-care-routine-modal",role:"dialog","aria-modal":"true"},Ks={class:"daily-care-ai-detail-head daily-care-routine-detail-head"},js={class:"daily-care-routine-title-line"},zs={key:0,class:"daily-care-state"},Ys={class:"daily-care-routine-panel-body"},Gs={class:"daily-care-routines"},Ws=["value","disabled"],Js={class:"daily-care-routine-copy"},Xs={class:"daily-care-badge"},Zs={key:0,class:"daily-care-side-panels daily-care-side-panels--routine"},$s={class:"daily-care-panel daily-care-progress-panel"},ei={class:"daily-care-progress-text"},ti={class:"daily-care-panel daily-care-status-panel"},si={class:"daily-care-streak"},ii={key:0,class:"daily-care-message daily-care-message--error"},ai={key:1},ni={key:0,class:"daily-care-fire","aria-hidden":"true"},ri=["disabled"],oi={key:2,class:"daily-care-readonly-note"},li={class:"daily-care-detail-modal daily-care-ai-detail",role:"dialog","aria-modal":"true"},di={class:"daily-care-ai-detail-head"},ci={key:1,class:"daily-care-empty"},ui={key:2,class:"daily-care-message daily-care-message--error daily-care-image-error",role:"alert"},hi={class:"daily-care-detail-modal daily-care-panel daily-care-medication-view",role:"dialog","aria-modal":"true"},pi={class:"daily-care-ai-detail-head daily-care-medication-detail-head"},mi={class:"daily-care-medication-view-body"},gi={class:"daily-care-field daily-care-field--type"},yi={class:"daily-care-segment"},fi=["disabled"],ki=["disabled"],vi={class:"daily-care-field"},bi=["aria-expanded"],Ii={class:"daily-care-select-value"},Mi=["aria-selected"],Di=["onClick"],Ci=["value"],Ri={class:"daily-care-medication-date-row"},wi={class:"daily-care-field"},Pi=["readonly"],Ti={class:"daily-care-field"},Si=["readonly"],_i={key:0,class:"daily-care-medication-detail-actions"},xi=["disabled"],Fi=["disabled"],Ai={class:"daily-care-detail-modal daily-care-day-events-modal",role:"dialog","aria-modal":"true"},Ei={class:"daily-care-ai-detail-head"},Ni={class:"daily-care-day-events"},Oi={ref:"dayEventsQuickMenuArea",class:"daily-care-day-events-actions"},Li=["aria-expanded"],qi={key:0,class:"daily-care-quick-menu daily-care-day-events-quick-menu"},Ui={key:0,class:"daily-care-fire","aria-hidden":"true"},Bi={class:"daily-care-day-events-list"},Hi=["onClick"],Vi={class:"daily-care-confirm-modal daily-care-info-modal",role:"dialog","aria-modal":"true"},Qi={class:"daily-care-confirm-actions"},Ki={class:"daily-care-confirm-modal daily-care-medication-required-modal",role:"dialog","aria-modal":"true"},ji={class:"daily-care-confirm-actions"},zi={class:"daily-care-medication-modal",role:"dialog","aria-modal":"true"},Yi={class:"daily-care-medication-modal-head"},Gi={class:"daily-care-medication-form"},Wi={class:"daily-care-field daily-care-field--type"},Ji={class:"daily-care-segment"},Xi={class:"daily-care-field"},Zi=["aria-expanded"],$i={class:"daily-care-select-value"},ea=["aria-selected"],ta=["onClick"],sa={class:"daily-care-medication-date-row"},ia={class:"daily-care-field"},aa={class:"daily-care-field"},na=["disabled"],ra={key:0,class:"daily-care-medication-required-note"},oa={class:"daily-care-refill-picker-modal",role:"dialog","aria-modal":"true","aria-label":"ë¤ì ì½ íë ë ì í"},la={class:"daily-care-refill-picker-head"},da={class:"daily-care-segment daily-care-refill-picker-mode",role:"radiogroup","aria-label":"ë¤ì ì½ íë ë ì í ë°©ì"},ca={key:0,class:"daily-care-refill-picker-date-field"},ua=["value"],ha={key:1,class:"daily-care-medication-duration daily-care-medication-duration--picker","aria-label":"ë¤ì ì½ íë ë ìë ê³ì°"},pa=["onClick"],ma={class:"daily-care-confirm-modal",role:"dialog","aria-modal":"true"},ga={class:"daily-care-confirm-actions"},ya={class:"daily-care-confirm-modal daily-care-validation-modal",role:"dialog","aria-modal":"true"},fa={class:"daily-care-confirm-actions"};function ka(t,e,n,c,a,s){const l=ie,p=ae;return o(),d("div",_s,[i("div",{class:"popup persona-shell daily-care-shell",style:O(a.shellStyle)},[i("div",xs,[e[69]||(e[69]=i("span",{class:"title"},[i("i",{class:"mdi mdi-heart-pulse title-icon","aria-hidden":"true"}),P("ë°ì¼ë¦¬ ì¼ì´")],-1)),i("button",{type:"button",class:"popup-close persona-close",title:"ë«ê¸°",onClick:e[0]||(e[0]=r=>t.$emit("close"))},[M(T,{icon:"mdi:mdi-close"})])]),i("div",Fs,[i("section",As,[i("div",Es,[i("div",Ns,[M(l,{records:s.calendarRecords,"visible-date":a.visibleDate,"selected-record-id":a.selectedCalendarRecordId,"expanded-records":"","show-attendance-streak":"","swipe-navigation":"",onSelectRecord:s.selectCalendarEntry,onChangeVisibleDate:s.changeVisibleDate},null,8,["records","visible-date","selected-record-id","onSelectRecord","onChangeVisibleDate"]),i("div",{ref:"quickMenuArea",class:y(["daily-care-calendar-actions",{"daily-care-calendar-actions--near-top":s.calendarQu
1ickMenuNearTop}]),style:O(s.calendarQuickMenuStyle)},[i("button",{type:"button",class:y(["daily-care-plus-button",{active:a.quickMenuOpen&&a.quickMenuContext==="calendar"}]),title:"ë°ì¼ë¦¬ ì¼ì´ ë©ë´","aria-label":"ë°ì¼ë¦¬ ì¼ì´ ë©ë´","aria-expanded":a.quickMenuOpen&&a.quickMenuContext==="calendar"?"true":"false",onPointerdown:e[1]||(e[1]=(...r)=>s.startCalendarQuickMenuDrag&&s.startCalendarQuickMenuDrag(...r)),onPointermove:e[2]||(e[2]=(...r)=>s.moveCalendarQuickMenuDrag&&s.moveCalendarQuickMenuDrag(...r)),onPointerup:e[3]||(e[3]=(...r)=>s.finishCalendarQuickMenuDrag&&s.finishCalendarQuickMenuDrag(...r)),onPointercancel:e[4]||(e[4]=(...r)=>s.finishCalendarQuickMenuDrag&&s.finishCalendarQuickMenuDrag(...r)),onClick:e[5]||(e[5]=r=>s.toggleQuickMenu("calendar"))},[M(T,{icon:"mdi:mdi-plus"})],42,Os),a.quickMenuOpen&&a.quickMenuContext==="calendar"?(o(),d("div",Ls,[i("button",{type:"button",class:y(["daily-care-quick-action daily-care-quick-action--medication",{"daily-care-quick-action--blocked":s.dailyCareBlockedByMedication,"daily-care-quick-action--highlight":s.dailyCareBlockedByMedication}]),onClick:e[6]||(e[6]=(...r)=>s.openMedicationFromQuickMenu&&s.openMedicationFromQuickMenu(...r))},[e[70]||(e[70]=i("span",null,"ì²ë°© ì½ ì¼ì ê´ë¦¬",-1)),i("strong",null,h(s.dailyCareBlockedByMedication?"ë±ë¡ íì":"ì¼ì ì¶ê°"),1)],2),i("button",{type:"button",class:"daily-care-quick-action",onClick:e[7]||(e[7]=(...r)=>s.openTodayDailyCare&&s.openTodayDailyCare(...r))},[e[71]||(e[71]=i("span",null,"ì¤ë ë°ì¼ë¦¬ ì¼ì´",-1)),i("strong",null,h(s.todayRecord?"ìë£ë¨":"ì§íí기"),1)]),i("button",{type:"button",class:"daily-care-quick-action",onClick:e[8]||(e[8]=(...r)=>s.openCareDaysInfo&&s.openCareDaysInfo(...r))},[e[72]||(e[72]=i("span",null,"ì´ ì¼ì´ ì¼ì",-1)),i("strong",null,h(s.medicationPeriodCareDays)+"ì¼",1)]),i("button",{type:"button",class:"daily-care-quick-action",onClick:e[9]||(e[9]=(...r)=>s.openStreakInfo&&s.openStreakInfo(...r))},[e[73]||(e[73]=i("span",null,"ì°ì ì¶ìì¼",-1)),i("strong",null,[s.streakDays>0?(o(),d("span",qs,"ð¥")):u("",!0),P(" "+h(s.streakDays)+"ì¼",1)])])])):u("",!0)],6)]),i("div",Us,[e[79]||(e[79]=G('<span class="daily-care-legend-chip daily-care-legend-chip--daily-care" data-v-99440a26><i class="daily-care-legend-dot" data-v-99440a26></i>ë°ì¼ë¦¬ ì¼ì´</span><span class="daily-care-legend-chip daily-care-legend-chip--medication-prescribed" data-v-99440a26><i class="daily-care-legend-dot" data-v-99440a26></i>ì½ ìë ¹ ì¼</span><span class="daily-care-legend-chip daily-care-legend-chip--medication-refill" data-v-99440a26><i class="daily-care-legend-dot" data-v-99440a26></i>ë¤ì ì½ íë ë </span><span class="daily-care-legend-chip daily-care-legend-chip--ai-care-record" data-v-99440a26><i class="daily-care-legend-dot" data-v-99440a26></i>AI ìì¬ ì§ë£</span>',4)),i("button",{type:"button",class:y(["daily-care-legend-chip daily-care-legend-chip--streak",{active:a.streakCoachMarkOpen,"daily-care-legend-chip--pulse":!s.todayRecord&&!a.streakCoachMarkOpen}]),"aria-haspopup":"dialog","aria-expanded":a.streakCoachMarkOpen?"true":"false",onClick:e[10]||(e[10]=(...r)=>s.toggleStreakCoachMark&&s.toggleStreakCoachMark(...r))},e[74]||(e[74]=[i("i",{class:"daily-care-legend-streak"},null,-1),P("ì¶ì")]),10,Bs),a.streakCoachMarkOpen?(o(),d("div",Hs,[e[75]||(e[75]=i("strong",null,"ì¶ìì ì´ë ê² ì¸ì ë¼ì",-1)),e[76]||(e[76]=i("p",null,"ìºë¦°ëì '+' ë²í¼ì ëë¥´ê³ 'ì¤ë ë°ì¼ë¦¬ ì¼ì´'를 ì íí ë¤, ì¤ëì ë§ì¶¤ ì¼ì´ 루í´ì ì²´í¬íê³ 'ì¼ì´ ì ì¶í기'ê¹ì§ ìë£íë©´ ê·¸ë ì¶ìì¼ë¡ 기ë¡ë©ëë¤.",-1)),e[77]||(e[77]=i("p",null,"ì¶ìí ë ì ìºë¦°ëì ì´ë¡ìì¼ë¡ íìëê³ , ë§¤ì¼ ì´ì´ê°ë©´ ì°ì ì¶ìì¼(ð¥)ì´ ìì¬ì.",-1)),i("button",{type:"button",class:"daily-care-streak-coach-confirm",onClick:e[11]||(e[11]=(...r)=>s.closeStreakCoachMark&&s.closeStreakCoachMark(...r))},"íì¸"),e[78]||(e[78]=i("i",{class:"daily-care-streak-coach-arrow","aria-hidden":"true"}
1,null,-1))])):u("",!0)],512)],512),a.loading?(o(),d("div",Vs,"ë¶ë¬ì¤ë ì¤...")):u("",!0)])],512),a.routineModalOpen?(o(),d("div",{key:0,class:"daily-care-detail-modal-backdrop daily-care-routine-modal-backdrop",onClick:e[16]||(e[16]=D((...r)=>s.closeDetailModal&&s.closeDetailModal(...r),["self"]))},[i("section",Qs,[i("div",Ks,[i("div",null,[i("div",js,[e[80]||(e[80]=i("h2",null,"ì¤ëì ë§ì¶¤ ì¼ì´ 루í´",-1)),s.selectedRecord?(o(),d("span",zs,"ì¶ì ìë£")):u("",!0)]),i("p",null,h(s.selectedDateLabel)+" 기ì¤",1)]),i("button",{type:"button",class:"persona-close daily-care-detail-close",title:"ë«ê¸°",onClick:e[12]||(e[12]=(...r)=>s.closeDetailModal&&s.closeDetailModal(...r))},[M(T,{icon:"mdi:mdi-close"})])]),i("div",Ys,[i("div",{class:y(["daily-care-routine-content",{"daily-care-routine-content--summary":s.isTodaySelectedDate}])},[i("div",Gs,[(o(!0),d(C,null,S(s.routineItems,r=>(o(),d("label",{key:r.key,class:y(["daily-care-routine",{"daily-care-routine--checked":a.checkedItemKeys.includes(r.key),"daily-care-routine--readonly":s.isPastSelectedDate}])},[q(i("input",{"onUpdate:modelValue":e[13]||(e[13]=g=>a.checkedItemKeys=g),type:"checkbox",value:r.key,disabled:s.isPastSelectedDate},null,8,Ws),[[At,a.checkedItemKeys]]),e[81]||(e[81]=i("span",{class:"daily-care-check"},null,-1)),i("span",Js,[i("span",Xs,h(r.badge),1),i("strong",null,h(r.title),1),i("span",null,h(r.description),1)])],2))),128))]),s.isTodaySelectedDate?(o(),d("div",Zs,[i("section",$s,[e[83]||(e[83]=i("h2",null,"ì¤ëì ë°ì¼ë¦¬ ì¼ì´ ì§íë¥ ",-1)),i("div",{class:"daily-care-progress-ring",style:O(s.progressStyle)},[e[82]||(e[82]=i("svg",{viewBox:"0 0 200 200","aria-hidden":"true"},[i("circle",{class:"daily-care-progress-bg",cx:"100",cy:"100",r:"74"}),i("circle",{class:"daily-care-progress-value",cx:"100",cy:"100",r:"74"})],-1)),i("div",ei,[i("strong",null,h(s.progress.percent)+"%",1),i("span",null,h(s.progress.label),1)])],4)]),i("section",ti,[e[84]||(e[84]=i("h2",null,"ì¶ì íí©",-1)),i("div",si,[s.streakStatus.showFire?(o(),d("strong",ai,[s.streakStatus.showFire?(o(),d("span",ni,"ð¥")):u("",!0),P(" "+h(s.streakStatus.label),1)])):(o(),d("p",ii,h(s.streakStatus.label),1))])])])):u("",!0)],2),i("div",{class:y(["daily-care-action-row",{"daily-care-action-row--full":s.isDefaultActionState}])},[s.actionMessage?(o(),d("p",{key:0,class:y(["daily-care-message",{"daily-care-message--error":s.actionMessageIsError}])},h(s.actionMessage),3)):u("",!0),s.isPastSelectedDate?(o(),d("p",oi,"ì§ë ë ì§ì ë°ì¼ë¦¬ ì¼ì´ë ìì í ì ììµëë¤.")):(o(),d("span",{key:1,class:"daily-care-submit-control",onClick:e[15]||(e[15]=(...r)=>s.handleSubmitAttempt&&s.handleSubmitAttempt(...r))},[i("button",{type:"button",class:"daily-care-submit",disabled:a.saving||s.isSubmitDisabled,onClick:e[14]||(e[14]=D((...r)=>s.saveDailyCare&&s.saveDailyCare(...r),["stop"]))},h(a.saving?"ì ì¥ ì¤...":"ì¼ì´ ì ì¶í기"),9,ri)]))],2)])])])):u("",!0),a.aiRecordViewMode==="detail"?(o(),d("div",{key:1,class:"daily-care-detail-modal-backdrop daily-care-ai-detail-modal",onClick:e[19]||(e[19]=D((...r)=>s.closeDetailModal&&s.closeDetailModal(...r),["self"]))},[i("section",li,[i("div",di,[i("div",null,[i("h2",null,h(s.aiSelectedRecord?.visitLabel||"AI ì§ë£")+" 기ë¡",1),i("p",null,h(s.aiSelectedRecord?.recordDate||a.selectedDate),1)]),i("button",{type:"button",class:"persona-close daily-care-detail-close",title:"ë«ê¸°",onClick:e[17]||(e[17]=(...r)=>s.closeDetailModal&&s.closeDetailModal(...r))},[M(T,{icon:"mdi:mdi-close"})])]),s.aiSelectedRecord?(o(),m(p,{key:0,"session-detail":a.aiSessionDetail,"selected-record":s.aiSelectedRecord,"month-index":s.aiSelectedRecord.visitRound||0,"session-image-urls":s.aiSessionImageUrls,"status-image-options":s.aiStatusImageOptions,"selected-status-month-index":a.aiSelectedStatusMonthIndex,"active-tab-key":a.aiActiveRecordTab,onSelectStatusMonth:s.selectAiStatusMonth,onActiveTabChange:e[18]||(e[18]=r=>a.aiActiveRecordTab=r)},null,8,["session-detail","selected-record","month-index","session-image-urls","status-image-options","selected-status-month-index","active-tab-key","onSelectStatusMonth"])):(o(),d("div",ci,"AI ì§ë£ 기ë¡ì ë¶ë¬ì¤ë ì¤ì
ëë¤.")),s.aiImageErrorMessage?(o(),d("p",ui,h(s.aiImageErrorMessage),1)):u("",!0)])])):u("",!0),s.selectedMedicationView?(o(),d("div",{key:2,class:"daily-care-detail-modal-backdrop daily-care-medication-detail-modal",onClick:e[32]||(e[32]=D((...r)=>s.closeDetailModal&&s.closeDetailModal(...r),["self"]))},[i("section",hi,[i("div",pi,[i("div",null,[i("h2",null,h(s.selectedMedicationView.eventLabel)+" ìì¸",1),i("p",null,h(s.selectedMedicationView.sourceLabel),1)]),i("button",{type:"button",class:"persona-close daily-care-detail-close",title:"ë«ê¸°",onClick:e[20]||(e[20]=(...r)=>s.closeDetailModal&&s.closeDetailModal(...r))},[M(T,{icon:"mdi:mdi-close"})])]),i("div",mi,[i("div",{class:y(["daily-care-medication-form daily-care-medication-form--detail",{"daily-care-medication-form--readonly":!s.selectedMedicationEditable}])},[i("div",gi,[e[85]||(e[85]=i("span",null,"ì½ ì¢
ë¥",-1)),i("div",yi,[i("button",{type:"button",class:y({active:a.selectedMedicationForm.medicationType==="ORAL"}),disabled:!s.selectedMedicationEditable,onClick:e[21]||(e[21]=r=>s.selectSelectedMedicationType("ORAL"))}," 먹ë ì½ ",10,fi),i("button",{type:"button",class:y({active:a.selectedMedicationForm.medicationType==="TOPICAL"}),disabled:!s.selectedMedicationEditable,onClick:e[22]||(e[22]=r=>s.selectSelectedMedicationType("TOPICAL"))}," ë°ë¥´ë ì½ ",10,ki)])]),i("div",vi,[e[86]||(e[86]=i("span",{id:"selected-medication-name-label"},"ì²ë°©ì½",-1)),s.selectedMedicationEditable?(o(),d("div",{key:0,ref:"selectedMedicationNameDropdown",class:y(["daily-care-select",{active:s.isMedicationNameDropdownOpen("selected")}])},[i("button",{type:"button",class:"daily-care-select-trigger","aria-haspopup":"listbox","aria-expanded":s.isMedicationNameDropdownOpen("selected"),"aria-labelledby":"selected-medication-name-label",onClick:e[23]||(e[23]=r=>s.toggleMedicationNameDropdown("selected")),onKeydown:e[24]||(e[24]=j(D((...r)=>s.closeMedicationNameDropdown&&s.closeMedicationNameDropdown(...r),["stop","prevent"]),["escape"]))},[i("em",Ii,h(s.medicationDisplayName(a.selectedMedicationForm.medicationName)||"ì½ ì í"),1),M(T,{icon:"mdi:mdi-chevron-down"})],40,bi),s.isMedicationNameDropdownOpen("selected")?(o(),d("ul",{key:0,ref:"selectedMedicationNameDropdownList",class:"daily-care-select-list",style:O(a.medicationNameDropdownStyle),role:"listbox","aria-label":"ì²ë°©ì½ ì í"},[(o(!0),d(C,null,S(s.selectedMedicationNameOptions,r=>(o(),d("li",{key:r,role:"option","aria-selected":a.selectedMedicationForm.medicationName===r},[i("button",{type:"button",class:y(["daily-care-select-option",{active:a.selectedMedicationForm.medicationName===r}]),onClick:g=>s.selectMedicationName("selected",r)},[P(h(s.medicationDisplayName(r))+" ",1),a.selectedMedicationForm.medicationName===r?(o(),m(T,{key:0,icon:"mdi:mdi-check"})):u("",!0)],10,Di)],8,Mi))),128))],4)):u("",!0)],2)):(o(),d("input",{key:1,value:s.medicationDisplayName(a.selectedMedicationForm.medicationName),type:"text",placeholder:"ì½ ì´ë¦ ì
ë ¥",readonly:""},null,8,Ci))]),i("div",Ri,[i("label",wi,[e[87]||(e[87]=i("span",null,"ì½ ìë ¹ ì¼",
1-1)),q(i("input",{"onUpdate:modelValue":e[25]||(e[25]=r=>a.selectedMedicationForm.prescribedDate=r),type:"date",readonly:!s.selectedMedicationEditable,onChange:e[26]||(e[26]=(...r)=>s.syncSelectedMedicationDurationRefill&&s.syncSelectedMedicationDurationRefill(...r))},null,40,Pi),[[V,a.selectedMedicationForm.prescribedDate]])]),i("label",Ti,[e[88]||(e[88]=i("span",null,"ë¤ì ì½ íë ë ",-1)),q(i("input",{"onUpdate:modelValue":e[27]||(e[27]=r=>a.selectedMedicationForm.refillDate=r),type:"date",readonly:!s.selectedMedicationEditable,onInput:e[28]||(e[28]=(...r)=>s.clearSelectedMedicationDuration&&s.clearSelectedMedicationDuration(...r)),onClick:e[29]||(e[29]=D(r=>s.openMedicationRefillPicker("selected"),["prevent"]))},null,40,Si),[[V,a.selectedMedicationForm.refillDate]])])])],2),s.selectedMedicationEditable?(o(),d("div",_i,[i("button",{type:"button",class:"daily-care-medication-save",disabled:a.selectedMedicationSaving,onClick:e[30]||(e[30]=(...r)=>s.saveSelectedMedication&&s.saveSelectedMedication(...r))},"ì ì¥",8,xi),i("button",{type:"button",class:"daily-care-medication-delete",disabled:a.medicationDeleting,onClick:e[31]||(e[31]=(...r)=>s.deleteSelectedMedication&&s.deleteSelectedMedication(...r))},"ìì ",8,Fi)])):u("",!0),a.message?(o(),d("p",{key:1,class:y(["daily-care-message daily-care-medication-detail-message",{"daily-care-message--error":s.actionMessageIsError}])},h(a.message),3)):u("",!0)])])])):u("",!0),a.dayEventsModalOpen?(o(),d("div",{key:3,class:"daily-care-detail-modal-backdrop daily-care-day-events-modal-backdrop",onClick:e[39]||(e[39]=D((...r)=>s.closeDayEventsModal&&s.closeDayEventsModal(...r),["self"]))},[i("section",Ai,[i("div",Ei,[i("div",null,[i("h2",null,h(s.dayEventsDateLabel)+" ì¼ì ",1),e[89]||(e[89]=i("p",null,"ìºë¦°ë í목ì ì íí´ ìì¸ë¥¼ íì¸íì¸ì.",-1))]),i("button",{type:"button",class:"persona-close daily-care-detail-close",title:"ë«ê¸°",onClick:e[33]||(e[33]=(...r)=>s.closeDayEventsModal&&s.closeDayEventsModal(...r))},[M(T,{icon:"mdi:mdi-close"})])]),i("div",Ni,[i("div",Oi,[i("button",{type:"button",class:y(["daily-care-plus-button daily-care-day-events-plus-button",{active:a.quickMenuOpen&&a.quickMenuContext==="dayEvents"}]),title:"ë°ì¼ë¦¬ ì¼ì´ ë©ë´","aria-label":"ë°ì¼ë¦¬ ì¼ì´ ë©ë´","aria-expanded":a.quickMenuOpen&&a.quickMenuContext==="dayEvents"?"true":"false",onClick:e[34]||(e[34]=r=>s.toggleQuickMenu("dayEvents"))},[M(T,{icon:"mdi:mdi-plus"})],10,Li),a.quickMenuOpen&&a.quickMenuContext==="dayEvents"?(o(),d("div",qi,[i("button",{type:"button",class:y(["daily-care-quick-action daily-care-quick-action--medication",{"daily-care-quick-action--blocked":s.dailyCareBlockedByMedication,"daily-care-quick-action--highlight":s.dailyCareBlockedByMedication}]),onClick:e[35]||(e[35]=(...r)=>s.openMedicationFromQuickMenu&&s.openMedicationFromQuickMenu(...r))},[e[90]||(e[90]=i("span",null,"ì²ë°© ì½ ì¼ì ê´ë¦¬",-1)),i("strong",null,h(s.dailyCareBlockedByMedication?"ë±ë¡ íì":"ì¼ì ì¶ê°"),1)],2),i("button",{type:"button",class:"daily-care-quick-action",onClick:e[36]||(e[36]=(...r)=>s.openTodayDailyCare&&s.openTodayDailyCare(...r))},[e[91]||(e[91]=i("span",null,"ì¤ë ë°ì¼ë¦¬ ì¼ì´",-1)),i("strong",null,h(s.todayRecord?"ìë£ë¨":"ì§íí기"),1)]),i("button",{type:"button",class:"daily-care-quick-action",onClick:e[37]||(e[37]=(...r)=>s.openCareDaysInfo&&s.openCareDaysInfo(...r))},[e[92]||(e[92]=i("span",null,"ì´ ì¼ì´ ì¼ì",-1)),i("strong",null,h(s.medicationPeriodCareDays)+"ì¼",1)]),i("button",{type:"button",class:"daily-care-quick-action",onClick:e[38]||(e[38]=(...r)=>s.openStreakInfo&&s.openStreakInfo(...r))},[e[93]||(e[93]=i("span",null,"ì°ì ì¶ìì¼",-1)),i("strong",null,[s.streakDays>0?(o(),d("span",Ui,"ð¥")):u("",!0),P(" "+h(s.streakDays)+"ì¼",1)])])])):u("",!0)],512),i("div",Bi,[(o(!0),d(C,null,S(s.selectedDayEventRecords,r=>(o(),d("button",{key:r.calendarRecordId,type:"button",class:y(["daily-care-day-event",s.dayEventBadgeClass(r)]),onClick:g=>s.openDayEventDetail(r)},[i("span",null,h(s.dayEventLabel(r)),1),i("strong",null,h(s.dayEventTitle(r)),1)],10,Hi))),128))])])])])):u("",!0),a.infoModalOpen?(o(),d("div",{key:4,class:"daily-care-info-modal-backdrop",onClick:e[41]||(e[41]=D((...r)=>s.closeInfoModal&&s.closeInfoModal(...r),["self"]))},[i("section",Vi,[i("p",null,h(a.infoModalMessage),1),i("div",Qi,[i("button",{type:"button",class:"daily-care-confirm-no",onClick:e[40]||(e[40]=(...r)=>s.closeInfoModal&&s.closeInfoModal(...r))},"íì¸")])])])):u("",!0),a.medicationRequiredModalOpen?(o(),d("div",{key:5,class:"daily-care-medication-required-modal-backdrop",onClick:e[44]||(e[44]=D((...r)=>s.closeMedicationRequiredModal&&s.closeMedicationRequiredModal(...r),["self"]))},[i("section",Ki,[e[94]||(e[94]=i("p",null,"ì½ ë±ë¡ì 먼ì í´ì£¼ì¸ì.",-1)),e[95]||(e[95]=i("span",null,"ì²ë°© ì½ ì¼ì ê´ë¦¬ìì ì½ ìë ¹ ì¼ê³¼ ë¤ì ì½ íë ë ì ë±ë¡íë©´ ë°ì¼ë¦¬ ì¼ì´ë¥¼ ì§íí ì ììµëë¤.",-1)),i("div",ji,[i("button",{type:"button",class:"daily-care-confirm-yes",onClick:e[42]||(e[42]=(...r)=>s.openMedicationFromRequiredModal&&s.openMedicationFromRequiredModal(...r))},"ì½ ì¼ì ë±ë¡"),i("button",{type:"button",class:"daily-care-confirm-no",onClick:e[43]||(e[43]=(...r)=>s.closeMedicationRequiredModal&&s.closeMedicationRequiredModal(...r))},"íì¸")])])])):u("",!0),a.medicationModalOpen?(o(),d("div",{key:6,class:"daily-care-medication-modal-backdrop",onClick:e[56]||(e[56]=D((...r)=>s.closeMedicationModal&&s.closeMedicationModal(...r),["self"]))},[i("section",zi,[i("div",Yi,[e[96]||(e[96]=i("div",null,[i("h2",null,"ì²ë°© ì½ ì¼ì ê´ë¦¬"),i("p",null,"ì½ ìë ¹ ì¼ê³¼ ë¤ì ì½ íë ë ì´ ìºë¦°ëì í¨ê» íìë©ëë¤.")],-1)),i("button",{type:"button",class:"persona-close daily-care-medication-close",title:"ë«ê¸°",onClick:e[45]||
1(e[45]=(...r)=>s.closeMedicationModal&&s.closeMedicationModal(...r))},[M(T,{icon:"mdi:mdi-close"})])]),i("div",Gi,[i("div",Wi,[e[97]||(e[97]=i("span",null,"ì½ ì¢
ë¥",-1)),i("div",Ji,[i("button",{type:"button",class:y({active:a.medicationForm.medicationType==="ORAL"}),onClick:e[46]||(e[46]=r=>s.selectMedicationType("ORAL"))}," 먹ë ì½ ",2),i("button",{type:"button",class:y({active:a.medicationForm.medicationType==="TOPICAL"}),onClick:e[47]||(e[47]=r=>s.selectMedicationType("TOPICAL"))}," ë°ë¥´ë ì½ ",2)])]),i("div",Xi,[e[98]||(e[98]=i("span",{id:"medication-name-label"},"ì²ë°©ì½",-1)),i("div",{ref:"medicationNameDropdown",class:y(["daily-care-select",{active:s.isMedicationNameDropdownOpen("new")}])},[i("button",{type:"button",class:"daily-care-select-trigger","aria-haspopup":"listbox","aria-expanded":s.isMedicationNameDropdownOpen("new"),"aria-labelledby":"medication-name-label",onClick:e[48]||(e[48]=r=>s.toggleMedicationNameDropdown("new")),onKeydown:e[49]||(e[49]=j(D((...r)=>s.closeMedicationNameDropdown&&s.closeMedicationNameDropdown(...r),["stop","prevent"]),["escape"]))},[i("em",$i,h(s.medicationDisplayName(a.medicationForm.medicationName)||"ì½ ì í"),1),M(T,{icon:"mdi:mdi-chevron-down"})],40,Zi),s.isMedicationNameDropdownOpen("new")?(o(),d("ul",{key:0,ref:"medicationNameDropdownList",class:"daily-care-select-list",style:O(a.medicationNameDropdownStyle),role:"listbox","aria-label":"ì²ë°©ì½ ì í"},[(o(!0),d(C,null,S(s.medicationNameOptions,r=>(o(),d("li",{key:r,role:"option","aria-selected":a.medicationForm.medicationName===r},[i("button",{type:"button",class:y(["daily-care-select-option",{active:a.medicationForm.medicationName===r}]),onClick:g=>s.selectMedicationName("new",r)},[P(h(s.medicationDisplayName(r))+" ",1),a.medicationForm.medicationName===r?(o(),m(T,{key:0,icon:"mdi:mdi-check"})):u("",!0)],10,ta)],8,ea))),128))],4)):u("",!0)],2)]),i("div",sa,[i("label",ia,[e[99]||(e[99]=i("span",null,"ì½ ìë ¹ ì¼",-1)),q(i("input",{"onUpdate:modelValue":e[50]||(e[50]=r=>
1a.medicationForm.prescribedDate=r),type:"date",onChange:e[51]||(e[51]=(...r)=>s.syncMedicationDurationRefill&&s.syncMedicationDurationRefill(...r))},null,544),[[V,a.medicationForm.prescribedDate]])]),i("label",aa,[e[100]||(e[100]=i("span",null,"ë¤ì ì½ íë ë ",-1)),q(i("input",{"onUpdate:modelValue":e[52]||(e[52]=r=>a.medicationForm.refillDate=r),type:"date",onInput:e[53]||(e[53]=(...r)=>s.clearMedicationDuration&&s.clearMedicationDuration(...r)),onClick:e[54]||(e[54]=D(r=>s.openMedicationRefillPicker("new"),["prevent"]))},null,544),[[V,a.medicationForm.refillDate]])])]),i("button",{type:"button",class:"daily-care-medication-save",disabled:a.medicationSaving,onClick:e[55]||(e[55]=(...r)=>s.saveMedication&&s.saveMedication(...r))},"ì¼ì ì¶ê°",8,na)]),s.showMedicationFormRequiredNote?(o(),d("p",ra,"ì²ë°© ì½ ì¼ì ê´ë¦¬ë¥¼ ì§íí´ì¼ ë°ì¼ë¦¬ ì¼ì´ ì§íì´ ê°ë¥í©ëë¤.")):u("",!0)])])):u("",!0),a.medicationRefillPickerOpen?(o(),d("div",{key:7,class:"daily-care-refill-picker-modal-backdrop",onClick:e[63]||(e[63]=D((...r)=>s.closeMedicationRefillPicker&&s.closeMedicationRefillPicker(...r),["self"]))},[i("section",oa,[i("div",la,[e[101]||(e[101]=i("div",null,[i("h3",null,"ë¤ì ì½ íë ë ")],-1)),i("button",{type:"button",class:"persona-close daily-care-refill-picker-close",title:"ë«ê¸°",onClick:e[57]||(e[57]=(...r)=>s.closeMedicationRefillPicker&&s.closeMedicationRefillPicker(...r))},[M(T,{icon:"mdi:mdi-close"})])]),i("div",da,[i("label",{class:y({active:a.medicationRefillPickerMode==="duration"})},[q(i("input",{type:"radio",value:"duration","onUpdate:modelValue":e[58]||(e[58]=r=>a.medicationRefillPickerMode=r)},null,512),[[be,a.medicationRefillPickerMode]]),e[102]||(e[102]=i("span",null,"ìë ê³ì°",-1))],2),i("label",{class:y({active:a.medicationRefillPickerMode==="manual"})},[q(i("input",{type:"radio",value:"manual","onUpdate:modelValue":e[59]||(e[59]=r=>a.medicationRefillPickerMode=r),onChange:e[60]||(e[60]=r=>s.openMedicationRefillDatePicker("medicationRefillPickerDateInput"))},null,544),[[be,a.medicationRefillPickerMode]]),e[103]||(e[103]=i("span",null,"ë ì§ ì§ì ì í",-1))],2)]),a.medicationRefillPickerMode==="manual"?(o(),d("div",ca,[i("input",{ref:"medicationRefillPickerDateInput",value:s.medicationRefillPickerDate,type:"date","aria-label":"ë¤ì ì½ íë ë ë ì§ ì§ì ì í",onInput:e[61]||(e[61]=(...r)=>s.updateMedicationRefillPickerDate&&s.updateMedicationRefillPickerDate(...r))},null,40,ua)])):u("",!0),a.medicationRefillPickerMode==="duration"?(o(),d("div",ha,[e[104]||(e[104]=i("span",null,"ì½ ìë ¹ ì¼ ê¸°ì¤ ìë ê³ì°",-1)),(o(!0),d(C,null,S(s.medicationDurationOptions,r=>(o(),d("button",{key:`picker-${r}`,type:"button",class:y({active:s.medicationRefillPickerDurationDays===r}),onClick:g=>s.applyMedicationRefillPickerDuration(r)},h(r)+"ì¼ ",11,pa))),128))])):u("",!0),i("button",{type:"button",class:"daily-care-refill-picker-confirm",onClick:e[62]||(e[62]=(...r)=>s.closeMedicationRefillPicker&&s.closeMedicationRefillPicker(...r))},"íì¸")])])):u("",!0),a.medicationDeleteConfirmOpen?(o(),d("div",{key:8,class:"daily-care-confirm-modal-backdrop",onClick:e[66]||(e[66]=D((...r)=>s.cancelMedicationDelete&&s.cancelMedicationDelete(...r),["self"]))},[i("section",ma,[e[105]||(e[105]=i("p",null,"ì ë§ ìì íìê² ìµëê¹?",-1)),i("div",ga,[i("button",{type:"button",class:"daily-care-confirm-yes",onClick:e[64]||(e[64]=(...r)=>s.confirmMedicationDelete&&s.confirmMedicationDelete(...r))},"ì"),i("button",{type:"button",class:"daily-care-confirm-no",onClick:e[65]||(e[65]=(...r)=>s.cancelMedicationDelete&&s.cancelMedicationDelete(...r))},"ìëì¤")])])])):u("",!0),a.medicationValidationModalOpen?(o(),d("div",{key:9,class:"daily-care-validation-modal-backdrop",onClick:e[68]||(e[68]=D((...r)=>s.closeMedicationValidationModal&&s.closeMedicationValidationModal(...r),["self"]))},[i("section",ya,[i("p",null,h(a.medicationValidationMessage),1),i("div",fa,[i("button",{type:"button",class:"daily-care-confirm-no",onClick:e[67]||(e[67]=(...r)=>s.closeMedicationValidationModal&&s.closeMedicationValidationModal(...r))},"íì¸")])])])):u("",!0)],4)])}const Ue=x(Ss,[["render",ka],["__scopeId","data-v-99440a26"]]),va={name:"PersonaResult",components:{PersonaHairGaugeSlim:_e,PersonaHairDensityStat:ne},props:{doctor:{type:Object,required:!0},hairTypeResult:{type:Object,required:!0},thicknessResult:{type:Object,default:()=>({})},questionnaireAnswers:{type:Object,default:()=>({})},finalDiagnosis:{type:Object,default:()=>({})},treatmentPlans:{type:Array,default:()=>[]},isRepeatVisit:{type:Boolean,default:!1}},emits:["back","saved"],data(){return{saving:!1,error:""}},computed:{safeThicknessResult(){return this.thicknessResult&&typeof this.thicknessResult=="object"?this.thicknessResult:{}},treatmentPlan(){return this.finalDiagnosis?.treatmentPlanSnapshot||null},treatmentItems(){const t=yt(this.treatmentPlan);return t.length?t:["ì 문ì ìë´ í ì½ë¬¼ ì¹ë£ ì¬ë¶ ê²°ì ","ì§ë£ì¼ë³ ì¬ì§ ê¸°ë¡ ì ì§","ëí¼ ìê·¹ì ì¤ì´ë ìí ìµê´ ê´ë¦¬"]},treatmentPlanText(){return gt(this.treatmentPlan,this.treatmentItems)},diagnosis(){const t=this.finalDiagnosis?.doctorFeedback||`${this.doctor.diagStyle||"근거 ì¤ì¬ì¼ë¡ ì°¨ë¶íê²"} ë¶ìí ê²°ê³¼, ${this.hairTypeResult.primaryType} ê°ë¥ì±ì´ ê°ì¥ ëìµëë¤. ì§ë£ 기ë¡ì ë¨ê¸°ë©´ ì¹ë£ ë°ìì ê³ì ë¹êµí ì ììµëë¤.`,e=this.finalDiagnosis?.doctorFeedbackSources||this.finalDiagnosis?.doctor_feedback_sources||"";return{primaryType:this.finalDiagnosis?.primaryType||this.hairTypeResult.primaryType||"í모 ì í ë¶ì ìë£",thicknessUm:this.finalDiagnosis?.thicknessUm??this.safeThicknessResult.thicknessUm??null,doctorFeedback:mt(t),doctorFeedbackSources:e,tags:Array.isArray(this.finalDiagnosis?.tags)?this.finalDiagnosis.tags:[]}},doctorFeedbackParts(){return pt(this.diagnosis.doctorFeedback,this.diagnosis.doctorFeedbackSources)},hasThicknessResult(){return!!(this.safeThicknessResult.stepId||this.safeThicknessResult.thicknessUm||this.finalDiagnosis?.thicknessUm)},thicknessSummaryText(){const t=this.diagnosis.thicknessUm??this.safeThicknessResult.thicknessUm;return t?`${t}ã`:"-"},thicknessGaugeValue(){const t=Number(this.diagnosis.thicknessUm??this.safeThicknessResult.thicknessUm??0);return Number.isFinite(t)&&t>0?t:null},isAndrogeneticDiagnosis(){return this.diagnosis.primaryType==="ìëë¡ê²ì± í모"},shouldShowThicknessGauge(){return this.isAndrogeneticDiagnosis&&!!this.thicknessGaugeValue},densityAnalysis(){return ht(this.hairTypeResult?.densityAnalysis||this.finalDiagnosis?.densityAnalysis)},densityValue(){return ut(this.densityAnalysis)},shouldShowDensityStat(){return this.densityValue!==null},defaultDiagnosisTags(){return this.hasThicknessResult?["ì í ë¶ì","ëª¨ë° êµµê¸°","ë¬¸ì§ ë°ì"]:["ì
1 í ë¶ì","ë¬¸ì§ ë°ì"]},diagnosisTags(){return this.diagnosis.tags.length?this.diagnosis.tags:this.defaultDiagnosisTags},saveButtonLabel(){return ct(this.isRepeatVisit,this.saving)}},methods:{saveSession(){this.saving=!0,this.error="";const t=this.safeThicknessResult,e={personaAiDoctorIdx:this.doctor.personaAiDoctorIdx,hairTypeDiagnosisStepIdx:this.hairTypeResult.stepId,thicknessDiagnosisStepIdx:t.stepId||null,personaDiagnosisStepIdxList:[this.hairTypeResult.stepId,t.stepId].filter(Boolean),questionnaire:this.questionnaireAnswers,hairTypeResult:this.hairTypeResult,thicknessResult:this.hasThicknessResult?t:null,finalDiagnosis:this.diagnosis,treatmentPlanSnapshot:this.treatmentPlan||{planItems:this.treatmentItems}};this.$api.chat.savePersonaSession(e,{success:n=>{this.saving=!1,this.$emit("saved",n)},error:()=>{this.saving=!1,this.error=dt(this.isRepeatVisit)}})}}},ba={class:"persona-step"},Ia={class:"persona-step-head"},Ma={class:"persona-step-scroll"},Da={class:"persona-result-main"},Ca={key:0},Ra={class:"persona-card"},wa={class:"persona-doctor-feedback"},Pa={key:0,class:"persona-doctor-feedback-body"},Ta={key:1,class:"persona-doctor-feedback-source"},Sa={class:"persona-doctor-feedback-source-label"},_a={class:"persona-doctor-feedback-sources"},xa=["href"],Fa={class:"persona-card"},Aa={class:"persona-treatment-plan-text"},Ea={key:2,class:"persona-error",role:"alert"},Na={class:"persona-step-action"},Oa=["disabled"];function La(t,e,n,c,a,s){const l=_e,p=ne;return o(),d("section",ba,[i("div",Ia,[i("button",{type:"button",onClick:e[0]||(e[0]=r=>t.$emit("back"))},"â¹"),e[2]||(e[2]=i("div",null,[i("h2",null,"AI ì¢
í© ì§ë¨"),i("p",null,"ì í êµ¬ë¶ ì¤ì¬ì¼ë¡ 결과를 ì ì¥í©ëë¤.")],-1))]),i("div",Ma,[i("div",Da,[e[3]||(e[3]=i("span",null,"AI ì¢
í© ì§ë¨",-1)),i("h3",null,h(s.diagnosis.primaryType||"í모 ì í ë¶ì ìë£"),1),s.hasThicknessResult?(o(),d("p",Ca,"ëª¨ë° êµµê¸° "+h(s.thicknessSummaryText),1)):u("",!0),i("div",null,[(o(!0),d(C,null,S(s.diagnosisTags,r=>(o(),d("em",{key:r},h(r),1))),128))])]),s.shouldShowThicknessGauge?(o(),m(l,{key:0,"thickness-um":s.thicknessGaugeValue,class:"persona-result-hair-gauge"},null,8,["thickness-um"])):u("",!0),s.shouldShowDensityStat?(o(),m(p,{key:1,"density-analysis":s.densityAnalysis,class:"persona-result-hair-density"},null,8,["density-analysis"])):u("",!0),i("div",Ra,[i("h4",null,"AI "+h(n.doctor.name)+" ìì¬ ì견",1),i("div",wa,[s.doctorFeedbackParts.body?(o(),d("p",Pa,h(s.doctorFeedbackParts.body),1)):u("",!0),s.doctorFeedbackParts.sourceText?(o(),d("div",Ta,[i("span",Sa,h(s.doctorFeedbackParts.sourceLabel),1),i("div",_a,[(o(!0),d(C,null,S(s.doctorFeedbackParts.sourceLines,(r,g)=>(o(),d("p",{key:g,class:y({"persona-doctor-feedback-source-line--nested":r.nested})},[(o(!0),d(C,null,S(r.segments,(k,_)=>(o(),d("span",{key:_},[k.href?(o(),d("a",{key:0,href:k.href,target:"_blank",rel:"noopener noreferrer"},h(k.text),9,xa)):(o(),d(C,{key:1},[P(h(k.text),1)],64))]))),128))],2))),128))])])):u("",!0),e[4]||(e[4]=i("div",{class:"persona-doctor-feedback-notice"},[i("p",null,[P("í모ì ëí ì íí ì§ë¨ê³¼ ì¹ë£ë ë°ëì ìë£ ì 문ê°ì ìë´ì íµí´ ì´ë£¨ì´ì ¸ì¼ í©ëë¤."),i("br"),P("ë³´ë¤ ì ë°í íì¸ì ìíì¤ ê²½ì° ì 문 ìë£ ê¸°ê´ì ê²ì§ì ê¶ì¥ë립ëë¤.")])],-1))])]),i("div",Fa,[e[5]||(e[5]=i("h4",null,"ê¶ê³ ì¹ë£ ê³í",-1)),i("p",Aa,h(s.treatmentPlanText),1)]),a.error?(o(),d("div",Ea,h(a.error),1)):u("",!0)]),i("div",Na,[i("button",{type:"button",class:"persona-primary",disabled:a.saving,onClick:e[1]||(e[1]=(...r)=>s.saveSession&&s.saveSession(...r))},h(s.saveButtonLabel),9,Oa)])])}const Be=x(va,[["render",La],["__scopeId","data-v-00b3430c"]]),qa=[{id:"gender",q:"ì±ë³ì ì íí´ ì£¼ì¸ì.",hint:"",options:["ë¨ì±","ì¬ì±"]},{id:"fullAge",q:"ë§ ëì´ë¥¼ ì
ë ¥í´ ì£¼ì¸ì.",hint:"",inputType:"number"},{id:"pregnancyStatus",q:"íì¬ ìì ì¤ì´ê±°ë ìì ì ì¤ë¹ ì¤ì´ì ê°ì?",hint:"",pregnancyEligible:!0,options:["í´ë¹ ìì","ìì ì¤ë¹ì¤","ìì ì¤"]},{id:"location",q:"머리카ë½ì´ ììì§ê±°ë ë¹ ì§ë ë¶ì
1ë ì£¼ë¡ ì´ëì¸ê°ì?",hint:"ë³µì ì í ê°ë¥",multi:!0,options:["ì머리ãí¤ì´ë¼ì¸","ì ì리ãëì ë¶(ê°ë¥´ë§ ë¶ê·¼)","ì머리ã측ëë¶(ê´ìëì´ ë¶ê·¼)","ì ì²´ì ì¼ë¡ 머리 ì±ì´ ì¤ì´ë¦","ë¶ë¶ì ì¼ë¡ ëê·¸ëê² ë¹ ì§(ìí/íìí)"]},{id:"onset",q:"머리카ë½ì´ ììì§ê±°ë ë¹ ì§ë ì¦ìì´ ì¸ì ë¶í° ììëìëì?",hint:"",options:["1ê°ì ì´ë´","1~3ê°ì ì ","3~6ê°ì ì ","6ê°ì~1ë
ì ","1~3ë
ì ","3ë
ì´ì"]},{id:"pattern",q:"머리카ë½ì´ ììì§ê±°ë ë¹ ì§ë 주ë ììì ì´ë»ê² ëíëê³ ìëì?",hint:"",options:["ê°ì기 머리카ë½ì´ ë§ì´ ë¹ ì§","머리카ë½ì´ ì ì ê°ëì´ì§","í¹ì ë¶ìê° ëê·¸ëê² ë¹ì´ ë³´ì","ì ì²´ì ì¼ë¡ ì±ì´ ê³ ë¥´ê² ì¤ì´ë¦"]},{id:"quantity",q:"í루 íê· ë¨¸ë¦¬ì¹´ë½ì´ ì¼ë§ë ë¹ ì§ëì?",hint:"",options:["50ê° ë¯¸ë§ (ì ì ë²ì)","50~100ê°","100~150ê°","150ê° ì´ì (ê³¼ë¤ íë½)"]},{id:"symptoms",q:"ëí¼ì ë¤ë¥¸ ì¦ìì´ ìëì?",hint:"ë³µì ì í ê°ë¥",multi:!0,exclusiveOption:"ì¦ì ìì",options:["ê°ë ¤ìì¦","ëí¼ ë°ê°ìãì´ê°","ë¹ë¬ì´ ë§ë¤","ëí¼ ë¶ì´ì§","ì¦ì ìì","ëì¹ã체모ë ë¹ ì§"]},{id:"family",q:"ê°ì¡± ì¤ ë¨¸ë¦¬ì¹´ë½ì´ ììì§ê±°ë ë¹ ì§ë ë¶ì´ ê³ì ê°ì?",hint:"",options:["ë¶ê³ 쪽ì ìì","ëª¨ê³ ìª½ì ìì","ì쪽 모ë ìì","ê°ì¡±ë ¥ ìì","ëª¨ë¥´ê² ë¤"]},{id:"health",q:"íì¬ ìê³ ìê±°ë 과거ì ìì ì§íì´ ìëì?",hint:"ë³µì ì í ê°ë¥",multi:!0,exclusiveOption:"í´ë¹ ìì",otherOption:"기í",otherAnswerId:"healthOther",otherPlaceholder:"ì§íëª
ì ì§ì ì
ë ¥í´ ì£¼ì¸ì",options:["ê°ìì ì§í","ë¹í","ë¹ë¨","ê³ ì§íì¦","ì§ë£¨ì±í¼ë¶ì¼","í´ë¹ ìì","기í"]},{id:"lifestyle",q:"ìµê·¼ 6ê°ì ì´ë´ í´ë¹ëë ê²ì´ ìëì?",hint:"ë³µì ì í ê°ë¥",multi:!0,exclusiveOption:"í´ë¹ ìì",options:["ê·¹ì¬í ì¤í¸ë ì¤ãì¬ê±´","ê¸ê²©í ì²´ì¤ ê°ë","ì¶ì°ãì°í (ì¬ì±)","ë¶ê·ì¹í ìì¬","ìë©´ ë¶ì¡±ãë¶ë©´ì¦","ê°í íë§ãì¼ì ë°ë³µ","í´ë¹ ìì"]},{id:"treatment",q:"íì¬ ë¨¸ë¦¬ì¹´ë½ì´ ììì§ê±°ë ë¹ ì§ë ì¦ìì ëí ì¹ë£ë¥¼ ë°ê³ ìê±°ë ë°ì ì ì´ ìëì?",hint:"ë³µì ì í ê°ë¥",multi:!0,exclusiveOption:"ì¹ë£ ê²½í ìì",options:["ì¹ë£ ê²½í ìì","ë³ì ì²ë°©ì½ ë³µì© ì¤","í모 ì ì© ì´í¸ ì¬ì© ì¤","í모 ììì ë³µì© ì¤","íë°© ì¹ë£ ì¤"]},{id:"goal",q:"ì´ë² AI ì§ë£ë¥¼ íµí´ ê°ì¥ ìíìë ê²ì 무ìì¸ê°ì?",hint:"",options:["íì¬ ìí ì íí ì§ë¨","ì§í ìµì ","ëª¨ë° êµµê¸° ê°ì ","ìì°ì¤ë¬ì´ ëª¨ë° íë³µ","ìµì ì¹ë£ ë°©ë² ìë´"]}],Ua={name:"PersonaQuestionnaire",props:{doctor:{type:Object,required:!0},modelValue:{type:Object,default:()=>({})}},emits:["back","complete","update:modelValue"],data(){return{currentIndex:0,answers:{...this.modelValue}}},computed:{questions(){return qa.filter(t=>!t.pregnancyEligible||ye(this.answers))},currentQuestion(){return this.questions[this.currentIndex]||this.questions[this.questions.length-1]||{}},currentAnswer(){return this.answers[this.currentQuestion.id]},canContinue(){if(this.currentQuestion.inputType==="number"){const t=Number(this.currentAnswer);return Number.isFinite(t)&&t>=10&&t<=120}return this.showOtherInput&&!String(this.otherAnswer||"").trim()?!1:Array.isArray(this.currentAnswer)?this.currentAnswer.length>0:!!this.currentAnswer},otherAnswer(){return this.currentQuestion.otherAnswerId&&this.answers[this.currentQuestion.otherAnswerId]||""},showOtherInput(){return!!(this.currentQuestion.otherOption&&Array.isArray(this.currentAnswer)&&this.currentAnswer.includes(this.currentQuestion.otherOption))},progress(){return(this.currentIndex+1)/this.questions.length*100}},methods:{isSelected(t){return Array.isArray(this.currentAnswer)?this.currentAnswer.includes(t):this.currentAnswer===t},nextMultiAnswer(t){const e=Array.isArray(this.currentAnswer)?this.currentAnswer:[],n=this.currentQuestion.exclusiveOption;if(t===n)return e.includes(t)?[]:[t];const c=n?e.filter(a=>a!==n):e;return e.includes(t)?c.filter(a=>a!==t):[...c,t]},selectOption(t){if(this.currentQuestion.multi){const e=this.nextMultiAnswer(t);this.answers[this.currentQuestion.id]=e,this.currentQuestion.otherOption&&!e.includes(this.currentQuestion.otherOption)&&delete this.answers[this.currentQuestion.otherAnswerId]}else this.answers[this.currentQuestion.id]=t,this.clearUnsupportedPregnancyStatus();this.$emit("update:modelValue",this.answers)},setInputAnswer(t){this.answers[this.currentQuestion.id]=t,this.clearUnsupportedPregnancyStatus(),this.$emit("update:modelValue",this.answers)},setOtherAnswer(t){this.answers[this.currentQuestion.otherAnswerId]=t,this.$emit("update:modelValue",this.answers)},next(){if(this.canContinue){if(this.currentIndex<this.questions.length-1){this.currentIndex+=1;return}this.$emit("complete",this.answers)}},goBack(){this.currentIndex>0?this.currentIndex-=1:this.$emit("back")},clearUnsupportedPregnancyStatus(){ye(this.answers)||delete this.answers.pregnancyStatus}}},Ba={class:"persona-step"},Ha={class:"persona-step-head"},Va={class:"persona-step-scroll"},Qa={class:"persona-progress"},Ka={class:"persona-question"},ja={key:0,class:"persona-options"},za=["value"],Ya={key:1,class:"persona-options"},Ga=["onClick"],Wa=["placeholder","value"],Ja={class:"persona-actions"},Xa=["disabled"];function Za(t,e,n,c,a,s){return o(),d("section",Ba,[i("div",Ha,[i("button",{type:"button",onClick:e[0]||(e[0]=(...l)=>s.goBack&&s.goBack(...l))}
1,"â¹"),i("div",null,[e[5]||(e[5]=i("h2",null,"ë³ë ¥ ì²ì·¨ 문ì§",-1)),i("p",null,h(a.currentIndex+1)+" / "+h(s.questions.length),1)]),e[6]||(e[6]=i("span",null,"3/3",-1))]),i("div",Va,[i("div",Qa,[i("em",{style:O({width:`${s.progress}%`})},null,4)]),i("div",Ka,[i("p",null,"AI "+h(n.doctor.name)+" ìì¬",1),i("h3",null,h(s.currentQuestion.q),1),i("small",null,h(s.currentQuestion.hint),1),s.currentQuestion.inputType==="number"?(o(),d("div",ja,[i("input",{type:"number",inputmode:"numeric",min:"10",max:"120",placeholder:"ì: 34",value:s.currentAnswer||"",onInput:e[1]||(e[1]=l=>s.setInputAnswer(l.target.value))},null,40,za)])):(o(),d("div",Ya,[(o(!0),d(C,null,S(s.currentQuestion.options,l=>(o(),d("button",{key:l,type:"button",class:y({selected:s.isSelected(l)}),onClick:p=>s.selectOption(l)},h(l),11,Ga))),128)),s.showOtherInput?(o(),d("input",{key:0,type:"text",placeholder:s.currentQuestion.otherPlaceholder,value:s.otherAnswer,onInput:e[2]||(e[2]=l=>s.setOtherAnswer(l.target.value))},null,40,Wa)):u("",!0)]))])]),i("div",Ja,[a.currentIndex>0?(o(),d("button",{key:0,type:"button",class:"persona-secondary",onClick:e[3]||(e[3]=l=>a.currentIndex-=1)},"ì´ì ")):u("",!0),i("button",{type:"button",class:"persona-primary",disabled:!s.canContinue,onClick:e[4]||(e[4]=(...l)=>s.next&&s.next(...l))},h(a.currentIndex===s.questions.length-1?"AI ì§ë¨ ë°ê¸°":"ë¤ì"),9,Xa)])])}const He=x(Ua,[["render",Za],["__scopeId","data-v-0444b3cf"]]),$a="/images/sethairthicknessImg.png",en={name:"PersonaThicknessStep",props:{skipQuestionnaire:{type:Boolean,default:!1},doctor:{type:Object,default:()=>({})}},emits:["back","complete"],data(){return{file:null,previewUrl:"",loading:!1,error:"",result:null,analysisRequestSeq:0}},computed:{uploadLabel(){return te(se())},replaceUploadLabel(){return te(se(),!0)},analysisButtonLabel(){return this.result?"ëª¨ë° êµµê¸° ë¤ì ë¶ì ìì":"ëª¨ë° êµµê¸° ë¶ì ìì"},nextButtonLabel(){return kt(this.skipQuestionnaire)},isUploadDisabled(){return this.loading}},beforeUnmount(){this.revokePreviewUrl()},methods:{openFileDialog(){this.isUploadDisabled||this.$refs.fileInput?.click()},onFileChange(t){this.selectImageFile(t.target.files?.[0])},onDrop(t){this.selectImageFile(t.dataTransfer?.files?.[0])},selectImageFile(t){if(!this.isUploadDisabled&&t){if(!t.type.startsWith("image/")){this.error="ì´ë¯¸ì§ íì¼ë§ ì
ë¡ëí ì ììµëë¤.";return}this.file=t,this.analysisRequestSeq+=1,this.error="",this.result=null,this.revokePreviewUrl(),this.previewUrl=URL.createObjectURL(t),this.resetFileInput()}},clearImage(){this.isUploadDisabled||(this.revokePreviewUrl(),this.file=null,this.analysisRequestSeq+=1,this.previewUrl="",this.result=null,this.error="",this.resetFileInput())},revokePreviewUrl(){this.previewUrl&&URL.revokeObjectURL(this.previewUrl)},resetFileInput(){this.$refs.fileInput&&(this.$refs.fileInput.value="")},isCurrentAnalysisRequest(t,e){return t===this.analysisRequestSeq&&e===this.file},scrollAnalysisResultIntoView(){this.$nextTick(()=>{const t=this.$refs.stepScroll;!t||typeof t.scrollTo!="function"||t.scrollHeight<=t.clientHeight||t.scrollTo({top:t.scrollHeight,behavior:"smooth"})})},diagnose(){if(!this.file)return;const t=this.file,e=++this.analysisRequestSeq;this.loading=!0,this.error="",this.result=null;const n=new FormData;n.append("userHairLossImage",this.file),this.$api.chat.diagnosePersonaThickness(n,{success:c=>{this.isCurrentAnalysisRequest(e,t)&&(this.result=ft(c),this.loading=!1,this.scrollAnalysisResultIntoView())},error:c=>{this.isCurrentAnalysisRequest(e,t)&&(this.error=c?.response?.data?.message||"ëª¨ë° êµµê¸° ë¶ìì ì¤í¨íìµëë¤. ë¤ì ìëí´ ì£¼ì¸ì.",this.loading=!1)}})},complete(){this.$emit("complete",{...this.result,sourceFileName:this.file?.name||"",sourceFile:this.file})}}},tn={class:"persona-step"},sn={class:"persona-step-head"},an={ref:"stepScroll",class:"persona-step-scroll"},nn={class:"persona-upload"},rn=["disabled"],on=["tabindex","aria-disabled"],ln={class:"persona-upload-preview"},dn=["src"],cn=["disabled"],un={key:0,class:"persona-error",role:"alert"},hn={class:"persona-inline-action"},pn=["disabled"],mn={key:1,class:"persona-thickness-skeleton","aria-label":"ëª¨ë° êµµê¸° ë¶ì ê²°ê³¼ 미리보기"},gn={key:2,class:"persona-thickness-card"},yn={key:0,class:"persona-step-action"};function fn(t,e,n,c,a,s){return o(),d("section",tn,[i("div",sn,[i("button",{type:"button",onClick:e[0]||(e[0]=l=>t.$emit("back"))},"â¹"),e[10]||(e[10]=i("div",null,[i("h2",null,"ëª¨ë° êµµê¸° ë¶ì"),i("p",null,"ëª¨ë° íë ì¬ì§ì¼ë¡ íê· êµµê¸°ë¥¼ ì ì¥í©ëë¤.")],-1)),e[11]||(e[11]=i("span",null,"2/3",-1))]),i("div",an,[i("div",nn,[i("input",{ref:"fileInput",type:"file",accept:"image/*",disabled:s.isUploadDisabled,onChange:e[1]||(e[1]=(...l)=>s.onFileChange&&s.onFileChange(...l))},null,40,rn),i("div",{class:y(["persona-upload-box",{"persona-upload-box--disabled":s.isUploadDisabled}]),role:"button",tabindex:s.isUploadDisabled?-1:0,"aria-disabled":s.isUploadDisabled?"true":"false",onClick:e[3]||(e[3]=(...l)=>s.openFileDialog&&s.openFileDialog(...l)),onKeydown:[e[4]||(e[4]=j(D((...l)=>s.openFileDialog&&s.openFileDialog(...l),["prevent"]),["enter"])),e[5]||(e[5]=j(D((...l)=>s.openFileDialog&&s.openFileDialog(...l),["prevent"]),["space"]))],onDragover:e[6]||(e[6]=D(()=>{},["prevent"])),onDrop:e[7]||(e[7]=D((...l)=>s.onDrop&&s.onDrop(...l),["prevent"]))},[a.previewUrl?(o(),d(C,{key:0},[i("div",ln,[i("img",{src:a.previewUrl,alt:"ì
ë¡ë ì´ë¯¸ì§ 미리보기"},null,8,dn),i("button",{type:"button",class:"persona-upload-remove","aria-label":"ì íí ì´ë¯¸ì§ ìì ",disabled:s.isUploadDisabled,onClick:e[2]||(e[2]=D((...l)=>s.clearImage&&s.clearImage(...l),["stop"]))},e[12]||(e[12]=[i("i",{class:"mdi mdi-close"},null,-1)]),8,cn)]),i("strong",null,h(a.file.name),1),e[14]||(e[14]=i("span",{class:"persona-upload-copy"},"ë¤ë¥¸ ì´ë¯¸ì§ë¥¼ ì ííê±°ë X ë²í¼ì¼ë¡ íì¬ ì´ë¯¸ì§ë¥¼ ìì íì¸ì.",-1)),i("em",null,[e[13]||(e[13]=i("i",{class:"mdi mdi-camera"},null,-1)),P(h(s.replaceUploadLabel),1)])],64)):(o(),d(C,{key:1},[e[16]||(e[16]=i("img",{class:"persona-upload-guide-image",src:$a,alt:"ëª¨ë° êµµê¸° ì´¬ì ìì
1"},null,-1)),e[17]||(e[17]=i("p",{class:"persona-guide-text"},[i("strong",null,"ì ì리 ëë í모 ë¶ìì ëí¼ë¥¼ ììì ë´ë ¤ë¤ë³¸ ì¬ì§ë§ ì
ë¡ëí´ ì£¼ì¸ì."),i("span",null,"ì´¬ìí ë 머리카ë½ì´ ë¶ì를 ê°ë¦¬ì§ ìëë¡ ì£¼ìí´ ì£¼ì¸ì.")],-1)),i("em",null,[e[15]||(e[15]=i("i",{class:"mdi mdi-camera"},null,-1)),P(h(s.uploadLabel),1)])],64))],42,on)]),a.error?(o(),d("div",un,h(a.error),1)):u("",!0),i("div",hn,[i("button",{type:"button",class:"persona-primary",disabled:!a.file||a.loading,onClick:e[8]||(e[8]=(...l)=>s.diagnose&&s.diagnose(...l))},h(a.loading?"AI 측ì ì¤...":s.analysisButtonLabel),9,pn)]),a.loading&&!a.result?(o(),d("div",mn,e[18]||(e[18]=[i("div",{class:"persona-analysis-status",role:"status","aria-live":"polite"},[i("span",{class:"persona-analysis-status-dot","aria-hidden":"true"}),i("div",null,[i("strong",null,"AI 측ì ì¤"),i("p",null,"ëª¨ë° êµµê¸°ë¥¼ 측ì íê³ ììµëë¤. ì ìë§ ê¸°ë¤ë ¤ 주ì¸ì.")])],-1),i("div",{class:"persona-loading-progress",role:"progressbar","aria-label":"ëª¨ë° êµµê¸° ë¶ì ì§í ì¤"},[i("i")],-1),G('<div class="persona-thickness-skeleton-card" data-v-5d26de66><div class="persona-skeleton-label" data-v-5d26de66>íê· ëª¨ë° êµµê¸°</div><div class="persona-skeleton-thickness-row" data-v-5d26de66><div class="persona-skeleton-thickness-value persona-skeleton-pulse" data-v-5d26de66></div><div class="persona-skeleton-thickness-unit persona-skeleton-pulse" data-v-5d26de66></div></div><div class="persona-skeleton-line persona-skeleton-pulse" data-v-5d26de66></div></div>',1)]))):u("",!0),a.result?(o(),d("div",gn,[e[20]||(e[20]=i("p",null,"íê· ëª¨ë° êµµê¸°",-1)),i("strong",null,[P(h(a.result.thicknessUm||"-"),1),e[19]||(e[19]=i("small",null,"ã",-1))]),i("span",null,"ì ì ê¸°ì¤ "+h(a.result.normalUm||80)+"ã",1)])):u("",!0)],512),a.result?(o(),d("div",yn,[i("button",{type:"button",class:"persona-primary",onClick:e[9]||(e[9]=(...l)=>s.complete&&s.complete(...l))},h(s.nextButtonLabel),1)])):u("",!0)])}const Ve=x(en,[["render",fn],["__scopeId","data-v-5d26de66"]]),kn="/images/img-dianosis.png",vn={name:"PersonaHairTypeStep",components:{PersonaHairDensityStat:ne},props:{doctor:{type:Object,required:!0},repeatVisit:{type:Boolean,default:!1},lockedPrimaryType:{type:String,default:""}},emits:["back","complete"],data(){return{file:null,previewUrl:"",loading:!1,error:"",result:null,analysisRequestSeq:0}},computed:{uploadLabel(){return te(se())},replaceUploadLabel(){return te(se(),!0)},stepDescription(){return this.repeatVisit?"ì´ì§ ì íì ì ì§íê³ íì¬ ëí¼ ì´ë¯¸ì§ë¥¼ ì ì¥í©ëë¤.":bt()},analysisButtonLabel(){return this.repeatVisit?this.result?"ì´ë¯¸ì§ ë¤ì ì ì¥ ì¤ë¹":"íì¬ ì´ë¯¸ì§ ì ì¥ ì¤ë¹":this.result?"í모 ì í ë¤ì ë¶ì ìì":"í모 ì í ë¶ì ìì"},nextButtonLabel(){return this.repeatVisit?"ë¤ì":this.result?.primaryType==="ìëë¡ê²ì± í모"?"ë¤ì: ëª¨ë° êµµê¸° ë¶ì":"ë¤ì: ë³ë ¥ ì²ì·¨ 문ì§"},isUploadDisabled(){return this.loading}},beforeUnmount(){this.revokePreviewUrl()},methods:{openFileDialog(){this.isUploadDisabled||this.$refs.fileInput?.click()},onFileChange(t){this.selectImageFile(t.target.files?.[0])},onDrop(t){this.selectImageFile(t.dataTransfer?.files?.[0])},selectImageFile(t){if(!this.isUploadDisabled&&t){if(!t.type.startsWith("image/")){this.error="ì´ë¯¸ì§ íì¼ë§ ì
ë¡ëí ì ììµëë¤.";return}this.file=t,this.analysisRequestSeq+=1,this.error="",this.result=null,this.revokePreviewUrl(),this.previewUrl=URL.createObjectURL(t),this.resetFileInput()}},clearImage(){this.isUploadDisabled||(this.revokePreviewUrl(),this.file=null,this.analysisRequestSeq+=1,this.previewUrl="",this.result=null,this.error="",this.resetFileInput())},revokePreviewUrl(){this.previewUrl&&URL.revokeObjectURL(this.previewUrl)},resetFileInput(){this.$refs.fileInput&&(this.$refs.fileInput.value="")},isCurrentAnalysisRequest(t,e){return t===this.analysisRequestSeq&&e===this.file},scrollAnalysisResultIntoView(){this.$nextTick(()=>{const t=this.$refs.stepScroll;!t||typeof t.scrollTo!="function"||t.scrollHeight<=t.clientHeight||t.scrollTo({top:t.scrollHeight,behavior:"smooth"})})},diagnose(){if(!this.file)return;const t=this.file,e=++this.analysisRequestSeq;if(this.repeatVisit){this.result={stepId:"repeat-hairtype-image",primaryType:this.lockedPrimaryType||"í모 ì í ì ì§",candidates:[],summary:"ì´ì§ í모 ì íì ì ì§íê³ íì¬ ëí¼ ì´ë¯¸ì§ë¥¼ ì¶ì ë¹êµì©ì¼ë¡ ì ì¥í©ëë¤."},this.scrollAnalysisResultIntoView();return}this.loading=!0,this.error="",this.result=null;const n=new FormData;n.append("user_hair_loss_image",this.file),n.append("questionnaire_context",""),this.$api.chat.diagnosePersonaHairType(n,{success:c=>{this.isCurrentAnalysisRequest(e,t)&&(this.result=vt(c),this.loading=!1,this.scrollAnalysisResultIntoView())},error:c=>{this.isCurrentAnalysisRequest(e,t)&&(this.error=c?.response?.data?.message||"í모 ì í ë¶ìì ì¤í¨íìµëë¤. ë¤ì ìëí´ ì£¼ì¸ì.",this.loading=!1)}})},complete(){this.$emit("complete",{...this.result,sourceFileName:this.file?.name||"",sourceFile:this.file})}}},bn={class:"persona-step"},In={class:"persona-step-head"},Mn={ref:"stepScroll",class:"persona-step-scroll"},Dn={class:"persona-doctor-banner"},Cn={class:"persona-upload"},Rn=["disabled"],wn=["tabindex","aria-disabled"],Pn={class:"persona-upload-preview"},Tn=["src"],Sn=["disabled"],_n={key:0,class:"persona-error",role:"alert"},xn={class:"persona-inline-action"},Fn=["disabled"],An={key:1,class:"persona-analysis-skeleton","aria-label":"í모 ì í ë¶ì ê²°ê³¼ 미리보기"},En={key:2,class:"persona-result-card"},Nn={key:0,class:"persona-step-action"};function On(t,e,n,c,a,s){const l=ne;return o(),d("section",bn,[i("div",In,[i("button",{type:"button",onClick:e[0]||(e[0]=p=>t.$emit("back"))},"â¹"),i("div",null,[e[10]||(e[10]=i("h2",null,"í모 ì í ë¶ì",-1)),i("p",null,h(s.stepDescription),1)]),e[11]||(e[11]=i("span",null,"1/3",-1))]),i("div",Mn,[i("div",Dn,"AI "+h(n.doctor.name)+" ìì¬ê° ë¶ìí©ëë¤.",1),i("div",Cn,[i("input",{ref:"fileInput",type:"file",accept:"image/*",disabled:s.isUploadDisabled,onChange:e[1]||(e[1]=(...p)=>s.onFileChange&&s.onFileChange(...p))},null,40,Rn),i("div",{class:y(["persona-upload-box",{"persona-upload-box--disabled":s.isUploadDisabled}]),role:"button",tabindex:s.isUploadDisabled?-1:0,"aria-disabled":s.isUploadDisabled?"true":"false",onClick:e[3]||(e[3]=(...p)=>s.openFileDialog&&s.openFileDialog(...p)),onKeydown:[e[4]||(e[4]=j(D((...p)=>s.openFileDialog&&s.openFileDialog(...p),["prevent"]),["enter"])),e[5]||(e[5]=j(D((...p)=>s.openFileDialog&&s.openFileDialog(...p),["prevent"]),["space"]))],onDragover:e[6]||(e[6]=D(()=>{},["prevent"])),onDrop:e[7]||(e[7]=D((...p)=>s.onDrop&&s.onDrop(...p),["prevent"]))},[a.previewUrl?(o(),d(C,{key:0},[i("div",Pn,[i("img",{src:a.previewUrl,alt:"ì
ë¡ë ì´ë¯¸ì§ 미리보기"},null,8,Tn),i("button",{type:"button",class:"persona-upload-remove","aria-label":"ì íí ì´ë¯¸ì§ ìì ",disabled:s.isUploadDisabled,onClick:e[2]||(e[2]=D((...p)=>s.clearImage&&s.clearImage(...p),["stop"]))},e[12]||(e[12]=[i("i",{class:"mdi mdi-close"},null,-1)]),8,Sn)]),i("strong",null,h(a.file.name),1),e[14]||(e[14]=i("span",{class:"persona-upload-copy"},"ë¤ë¥¸ ì´ë¯¸ì§ë¥¼ ì ííê±°ë X ë²í¼ì¼ë¡ íì¬ ì´ë¯¸ì§ë¥¼ ìì íì¸ì.",-1)),i("em",null,[e[13]||(e[13]=i("i",{class:"mdi mdi-camera"},null,-1)),P(h(s.replaceUploadLabel),1)])],64)):(o(),d(C,{key:1},[e[16]||(e[16]=i("img",{class:"persona-upload-guide-image",src:kn,alt:"í모 ìì¬ ë¶ì ì´¬ì ìì
1"},null,-1)),e[17]||(e[17]=i("p",{class:"persona-guide-text"},[i("strong",null,"íëª¨ê° ìì¬ëë ë¶ìë ê°ê¹ì´ 거리ìì ì ëª
íê² ì´¬ìí´ ì£¼ì¸ì."),i("span",null,"ì´¬ìí ë 머리카ë½ì´ ë¶ì를 ê°ë¦¬ì§ ìëë¡ ì£¼ìí´ ì£¼ì¸ì.")],-1)),i("em",null,[e[15]||(e[15]=i("i",{class:"mdi mdi-camera"},null,-1)),P(h(s.uploadLabel),1)])],64))],42,wn)]),a.error?(o(),d("div",_n,h(a.error),1)):u("",!0),i("div",xn,[i("button",{type:"button",class:"persona-primary",disabled:!a.file||a.loading,onClick:e[8]||(e[8]=(...p)=>s.diagnose&&s.diagnose(...p))},h(a.loading?"AI ë¶ì ì¤...":s.analysisButtonLabel),9,Fn)]),a.loading&&!a.result?(o(),d("div",An,e[18]||(e[18]=[i("div",{class:"persona-analysis-status",role:"status","aria-live":"polite"},[i("span",{class:"persona-analysis-status-dot","aria-hidden":"true"}),i("div",null,[i("strong",null,"AI ë¶ì ì¤"),i("p",null,"ì´ë¯¸ì§ë¥¼ ë¶ìíê³ ììµëë¤. ì ìë§ ê¸°ë¤ë ¤ 주ì¸ì.")])],-1),i("div",{class:"persona-loading-progress",role:"progressbar","aria-label":"í모 ì í ë¶ì ì§í ì¤"},[i("i")],-1),G('<div class="persona-skeleton-card" data-v-246e0a77><div class="persona-skeleton-label" data-v-246e0a77>í모 ì í ê²°ê³¼</div><div class="persona-skeleton-title persona-skeleton-pulse" data-v-246e0a77></div><div class="persona-skeleton-line persona-skeleton-line--wide persona-skeleton-pulse" data-v-246e0a77></div><div class="persona-skeleton-line persona-skeleton-pulse" data-v-246e0a77></div></div><div class="persona-skeleton-density-stat" data-v-246e0a77><div class="persona-skeleton-label" data-v-246e0a77>ëª¨ë° ë°ë ë¶ì</div><div class="persona-skeleton-stat-row" data-v-246e0a77><div class="persona-skeleton-stat-value persona-skeleton-pulse" data-v-246e0a77></div><div class="persona-skeleton-unit persona-skeleton-pulse" data-v-246e0a77></div></div><div class="persona-skeleton-line persona-skeleton-line--short persona-skeleton-pulse" data-v-246e0a77></div></div>',2)]))):u("",!0),a.result?(o(),d("div",En,[i("h3",null,h(a.result.primaryType),1),i("p",null,h(a.result.summary),1)])):u("",!0),a.result?.densityAnalysis?(o(),m(l,{key:3,"density-analysis":a.result.densityAnalysis,class:"persona-hair-density-result"},null,8,["density-analysis"])):u("",!0)],512),a.result?(o(),d("div",Nn,[i("button",{type:"button",class:"persona-primary",onClick:e[9]||(e[9]=(...p)=>s.complete&&s.complete(...p))},h(s.nextButtonLabel),1)])):u("",!0)])}const Qe=x(vn,[["render",On],["__scopeId","data-v-246e0a77"]]);function Ln(t){return typeof t=="string"?t.trim():t&&typeof t=="object"?String(t.text||t.title||t.name||t.label||"").trim():String(t??"").trim()}function Ke(t={}){return(Array.isArray(t.tags)?t.tags:[]).map(n=>Ln(n).replace(/^#+\s*/,"").trim()).filter(Boolean)}function je(t={}){return Ke(t).join(" · ")}const qn={name:"PersonaDoctorRecommendModal",props:{doctors:{type:Array,default:()=>[]}},emits:["close","select-doctor"],data(){return{draft:"",loading:!1,errorMessage:"",messages:[]}},methods:{recommendedDoctorFor(t){const e=t?.recommendation||{},n=e.recommendedDoctor||{},c=e.personaAiDoctorIdx||e.recommendedDoctorIdx||n.personaAiDoctorIdx;if(c!=null){const s=this.doctors.find(l=>Number(l.personaAiDoctorIdx)===Number(c));if(s)return s}const a=e.doctorName||e.name||n.name;return a&&this.doctors.find(s=>this.normalizeDoctorName(s.name)===this.normalizeDoctorName(a))||null},recommendationText(t){return t?.answer||t?.recommendation||t?.reason||""},recentMessages(){return this.messages.slice(-3).map(t=>({role:t.role,content:t.content}))},sendExample(t){this.loading||(this.draft=t,this.sendMessage())},scrollRecommendationToBottom(){this.$nextTick(()=>{const t=this.$refs.recommendBody;if(t){if(typeof t.scrollTo=="function"){t.scrollTo({top:t.scrollHeight,behavior:"smooth"});return}t.scrollTop=t.scrollHeight}})},sendMessage(){const t=this.draft.trim();if(!t||this.loading)return;const e=this.recentMessages();this.messages=[...this.messages,{role:"user",content:t}],this.draft="",this.loading=!0,this.errorMessage="",this.$api.chat.recommendPersonaDoctor({question:t,messages:e},{success:n=>{this.loading=!1;const c=this.recommendationText(n)||"ì¶ì² ìì¬ë¥¼ íì¸íìµëë¤.";this.messages=[...this.messages,{role:"assistant",content:c,recommendation:n||null}],this.scrollRecommendationToBottom()},error:()=>{this.loading=!1,this.errorMessage="ìì¬ ì¶ì²ì ë¶ë¬ì¤ì§ 못íìµëë¤. ë¤ì ì
ë ¥í´ ì£¼ì¸ì."}})},selectRecommendedDoctor(t){const e=this.recommendedDoctorFor(t);this.loading||!e||this.$emit("select-doctor",e)}
1,normalizeDoctorName(t){return String(t||"").replace(/^AI\s*/i,"").replace(/\s*ìì¬$/g,"").replace(/\s+/g,"").trim()},doctorSummary(t){return je(t)},photoStyle(t){return t.photoUrl||t.photoFileUrl?{backgroundImage:`url(${t.photoUrl||t.photoFileUrl})`,backgroundSize:"contain",backgroundPosition:"center",backgroundRepeat:"no-repeat"}:{backgroundColor:"#eef1f6"}}}},Un={class:"persona-recommend-modal",role:"dialog","aria-modal":"true","aria-labelledby":"persona-recommend-title"},Bn={class:"persona-recommend-head"},Hn={ref:"recommendBody",class:"persona-recommend-body"},Vn={class:"persona-recommend-messages","aria-live":"polite"},Qn={key:0,class:"persona-recommend-empty"},Kn={class:"persona-recommend-examples","aria-label":"ì
ë ¥ ìì"},jn={key:0,class:"persona-recommend-result"},zn={key:0,class:"persona-recommend-doctor"},Yn={key:0},Gn={key:1},Wn=["disabled","onClick"],Jn={key:1,class:"persona-recommend-message persona-recommend-message--assistant persona-recommend-message--loading"},Xn={key:2,class:"persona-recommend-error"},Zn=["disabled"],$n=["disabled"];function er(t,e,n,c,a,s){return o(),d("div",{class:"persona-recommend-backdrop",onClick:e[6]||(e[6]=D(l=>t.$emit("close"),["self"]))},[i("section",Un,[i("div",Bn,[e[7]||(e[7]=i("div",null,[i("h2",{id:"persona-recommend-title"},"AI ìì¬ ì¶ì²")],-1)),i("button",{type:"button",class:"persona-recommend-close",title:"ë«ê¸°",onClick:e[0]||(e[0]=l=>t.$emit("close"))},[M(T,{icon:"mdi:mdi-close"}
1)])]),i("div",Hn,[i("div",Vn,[!a.messages.length&&!a.loading?(o(),d("div",Qn,[e[8]||(e[8]=i("strong",null,"ì´ë¤ AI ìì¬ê° ë§ìì§ í¸íê² ì ì´ì£¼ì¸ì",-1)),e[9]||(e[9]=i("p",null,"ëì´ì ì±ë³, ê³ ë¯¼ ë¶ì, ìíë ì¤ëª
ë°©ìì íë 문ì¥ì¼ë¡ ì
ë ¥íë©´ ë©ëë¤.",-1)),i("div",Kn,[i("button",{type:"button",onClick:e[1]||(e[1]=l=>s.sendExample("ì´ê¸° íëª¨ê° ìì¬ëë ì ì ì¬ì©ì를 ëìì¼ë¡ ì§ë¨ íë ìì¬"))},"ì´ê¸° íëª¨ê° ìì¬ëë ì ì ì¬ì©ì를 ëìì¼ë¡ ì§ë¨ íë ìì¬"),i("button",{type:"button",onClick:e[2]||(e[2]=l=>s.sendExample("ì¤ì¥ë
층ì ì¤ëë í모 ê³ ë¯¼ì ê°ì§ ì¬ì©ì를 ëìì¼ë¡ ì§ë¨íë ìì¬"))},"ì¤ì¥ë
층ì ì¤ëë í모 ê³ ë¯¼ì ê°ì§ ì¬ì©ì를 ëìì¼ë¡ ì§ë¨íë ìì¬"),i("button",{type:"button",onClick:e[3]||(e[3]=l=>s.sendExample("ì¬ì±í í모ì ì°í í모 ê³ ë¯¼ì´ ìë ì¬ì©ì를 ëìì¼ë¡ ì§ë¨íë ìì¬"))},"ì¬ì±í í모ì ì°í í모 ê³ ë¯¼ì´ ìë ì¬ì©ì를 ëìì¼ë¡ ì§ë¨íë ìì¬")])])):u("",!0),(o(!0),d(C,null,S(a.messages,(l,p)=>(o(),d("div",{key:`${l.role}-${p}`,class:y(["persona-recommend-message",`persona-recommend-message--${l.role}`])},[i("p",null,h(l.content),1),l.recommendation?(o(),d("div",jn,[s.recommendedDoctorFor(l)?(o(),d("div",zn,[i("div",{class:"persona-recommend-photo",style:O(s.photoStyle(s.recommendedDoctorFor(l)))},null,4),s.recommendedDoctorFor(l).name?(o(),d("strong",Yn,"AI "+h(s.recommendedDoctorFor(l).name)+" ìì¬",1)):u("",!0),s.doctorSummary(s.recommendedDoctorFor(l))?(o(),d("span",Gn,h(s.doctorSummary(s.recommendedDoctorFor(l))),1)):u("",!0)])):u("",!0),s.recommendedDoctorFor(l)?(o(),d("button",{key:1,type:"button",class:"persona-primary persona-recommend-select",disabled:a.loading,onClick:r=>s.selectRecommendedDoctor(l)}," AI "+h(s.recommendedDoctorFor(l).name)+" ìì¬ ì íí기 ",9,Wn)):u("",!0)])):u("",!0)],2))),128)),a.loading?(o(),d("div",Jn,e[10]||(e[10]=[i("span",{class:"persona-recommend-loading-spinner","aria-hidden":"true"},null,-1),P(" ì¶ì² ìì¬ë¥¼ íì¸íê³ ììµëë¤. ì ìë§ ê¸°ë¤ë ¤ 주ì¸ì. ")]))):u("",!0),a.errorMessage?(o(),d("p",Xn,h(a.errorMessage),1)):u("",!0)])],512),i("form",{class:"persona-recommend-form",onSubmit:e[5]||(e[5]=D((...l)=>s.sendMessage&&s.sendMessage(...l),["prevent"]))},[q(i("input",{"onUpdate:modelValue":e[4]||(e[4]=l=>a.draft=l),type:"text",disabled:a.loading,placeholder:"ìíë AI ìì¬ë¥¼ ì¤ëª
í´ ì£¼ì¸ì"},null,8,Zn),[[V,a.draft]]),i("button",{type:"submit",disabled:a.loading||!a.draft.trim()},"ì ì¡",8,$n)],32)])])}const oe=x(qn,[["render",er],["__scopeId","data-v-5f743db2"]]),tr={name:"PersonaDoctorList",components:{PersonaDoctorProfileModal:re,PersonaDoctorRecommendModal:oe},props:{doctors:{type:Array,default:()=>[]}},emits:["back","select-doctor"],data(){return{activeDoctor:null,recommendModalOpen:!1}},computed:{canRecommendDoctor(){return this.doctors.length>=2}},methods:{doctorKeywordSummary:je,photoStyle(t){return t.photoUrl||t.photoFileUrl?{backgroundImage:`url(${t.photoUrl||t.photoFileUrl})`,backgroundSize:"contain",backgroundPosition:"center",backgroundRepeat:"no-repeat"}:{backgroundColor:"#eef1f6"}}}},sr={class:"persona-step"},ir={class:"persona-step-head"},ar={key:0,class:"persona-empty"},nr={key:1,class:"persona-doctor-grid"},rr=["onClick"],or={key:0},lr={key:1};function dr(t,e,n,c,a,s){const l=re,p=oe;return o(),d("section",sr,[i("div",ir,[i("button",{type:"button",onClick:e[0]||(e[0]=r=>t.$emit("back"))},"â¹"),e[6]||(e[6]=i("div",null,[i("h2",null,"AI ìì¬ ì í"),i("p",null,"ì¹´ë를 ëë¬ ìê°ì ì´ë ¥ì íì¸íì¸ì.")],-1)),s.canRecommendDoctor?(o(),d("button",{key:0,type:"button",class:"persona-recommend-open",onClick:e[1]||(e[1]=r=>a.recommendModalOpen=!0)}," ìì¬ ì¶ì² ")):u("",!0)]),n.doctors.length?(o(),d("div",nr,[(o(!0),d(C,null,S(n.doctors,r=>(o(),d("button",{key:r.personaAiDoctorIdx||r.id,type:"button",class:"persona-doctor-card",onClick:g=>a.activeDoctor=r},[i("div",{class:"persona-doctor-photo",style:O(s.photoStyle(r))},null,4),i("div",null,[r.name?(o(),d("strong",or,"AI "+h(r.name)+" ìì¬",1)):u("",!0),s.doctorKeywordSummary(r)?(o(),d("span",lr,h(s.doctorKeywordSummary(r)),1)):u("",!0)])],8,rr))),128))])):(o(),d("div",ar," ë±ë¡ë AI ìì¬ê° ììµëë¤. ")),a.activeDoctor?(o(),m(l,{key:2,doctor:a.activeDoctor,onClose:e[2]||(e[2]=r=>a.activeDoctor=null),onSelect:e[3]||(e[3]=r=>t.$emit("select-doctor",r))},null,8,["doctor"])):u("",!0),a.recommendModalOpen?(o(),m(p,{key:3,doctors:n.doctors,onClose:e[4]||(e[4]=r=>a.recommendModalOpen=!1),onSelectDoctor:e[5]||(e[5]=r=>t.$emit("select-doctor",r))},null,8,["doctors"])):u("",!0)])}const ze=x(tr,[["render",dr],["__scopeId","data-v-5eab59a1"]]),cr={name:"PersonaCareMonthForm",props:{carePlanId:{type:Number,required:!0},monthIndex:{type:Number,default:0},doctor:{type:Object,required:!0},initialMedicalFiles:{type:Object,default:()=>({})},diagnosisResults:{type:Object,default:()=>({})},editableRecord:{type:Object,default:null},existingRecords:{type:Array,default:()=>[]},formMode:{type:String,default:"full"},hideTitle:{type:Boolean,default:!1},hideSubmit:{type:Boolean,default:!1}},emits:["saved","auth-expired"],data(){return{recordDate:new Date().toISOString().slice(0,10),oralMeds:[{name:"",weeks:"",refillDate:"",refillDateTouched:!1}],topicalMeds:[{name:"",weeks:"",refillDate:"",refillDateTouched:!1}],legacyTreatmentText:"",changeText:"",scalpImage:null,thicknessImage:null,existingScalpImageFileId:"",existingScalpImageName:"",existingThicknessImageFileId:"",existingThicknessImageName:"",scalpPreviewUrl:"",thicknessPreviewUrl:"",previewFileIds:{},previewRequestSeq:{},saving:!1,successMessage:"",error:"",showOverwriteConfirm:!1,pendingDuplicateRecord:null}},computed:{isEditMode(){return!!this.editableRecord?.personaCareMonthRecordIdx},isEmbeddedMode(){return this.formMode!=="full"},showInputFields(){return this.formMode!=="images"},showImageFields(){return this.formMode!=="record"},showThicknessImageFields(){return this.showImageFields&&$(this.primaryHairType)},primaryHairType(){return this.diagnosisResults?.hairTypeResult?.primaryType||this.diagnosisResults?.finalDiagnosis?.primaryType||this.editableRecord?.hairTypeResult?.primaryType||""},canSubmit(){return!this.saving},submitLabel(){return this.saving?"ì ì¥ ì¤...":this.formMode==="images"||this.isEditMode?"ì ì¥":"íì¬ ì§ë£ ê¸°ë¡ ì ì¥"},saveSuccessMessage(){return this.formMode==="images"?"ì´ë¯¸ì§ ë³ê²½ ì ì¥ì´ ìë£ëììµëë¤.":this.formMode==="record"&&this.isEditMode?"ì
ë ¥ ì ë³´ ìì ì ì¥ì´ ìë£ëììµëë¤.":""},saveFailureMessage(){return this.formMode==="images"?"ì´ë¯¸ì§ ë³ê²½ ì ì¥ì ì¤í¨íìµëë¤.":this.formMode==="record"&&this.isEditMode?"ì
ë ¥ ì ë³´ ìì ì ì¥ì ì¤í¨íìµëë¤.":""},formTitle(){return this.formMode==="images"?`${this.editableRecord?.visitLabel||"ì§ë£"} ì´ë¯¸ì§ ë³ê²½`:this.isEditMode?`${this.editableRecord.visitLabel||"ì§ë£"} ì
ë ¥ ì ë³´ ìì `:"ì ì§ë£ ê¸°ë¡ ì
ë ¥"},scalpImageLabel(){return this.scalpImage?.name||this.existingScalpImageName||(this.existingScalpImageFileId?"í모 ì í ë¶ì ì´ë¯¸ì§":"ì íë íì¼ ìì")},thicknessImageLabel(){return this.thicknessImage?.name||this.existingThicknessImageName||(this.existingThicknessImageFileId?"ëª¨ë° êµµê¸° ì´ë¯¸ì§":"ì íë íì¼ ìì")},scalpImageHelp(){return this.scalpImage?"ì ì´ë¯¸ì§ê° ì´ë² ë¬ ê¸°ë¡ì¼ë¡ ì ì¥ë©ëë¤.":this.existingScalpImageFileId?"":"ì´ë² ë¬ í모 ì í ë¶ì ì´ë¯¸ì§ë¥¼ ì íí ì ììµëë¤."},thicknessImageHelp(){return this.thicknessImage?"ì ì´ë¯¸ì§ê° ì´ë² ë¬ ê¸°ë¡ì¼ë¡ ì ì¥ë©ëë¤.":this.existingThicknessImageFileId?"":"ì´ë² ë¬ ëª¨ë° êµµê¸° ì´ë¯¸ì§ë¥¼ ì íí ì ììµëë¤."}},mounted(){this.applyEditableRecord()}
1,watch:{recordDate(){this.syncMedicationRefillDates()}},beforeUnmount(){this.invalidatePreviewRequest("scalp"),this.invalidatePreviewRequest("thickness"),this.revokePreviewUrl("scalp"),this.revokePreviewUrl("thickness")},methods:{applyEditableRecord(){if(this.isEditMode){this.recordDate=this.dateKey(this.editableRecord.recordDate)||this.recordDate,this.legacyTreatmentText=this.extractText(this.editableRecord.treatmentRecord),this.oralMeds=this.extractMedicationList(this.editableRecord.treatmentRecord,"oralMeds","oralMed"),this.topicalMeds=this.extractMedicationList(this.editableRecord.treatmentRecord,"topicalMeds","topicalMed"),this.changeText=this.extractText(this.editableRecord.changeMemo),this.existingScalpImageFileId=this.editableRecord.scalpImageFileId||"",this.existingScalpImageName=this.editableRecord.scalpImageName||"",this.existingThicknessImageFileId=this.showThicknessImageFields&&this.editableRecord.thicknessImageFileId||"",this.existingThicknessImageName=this.showThicknessImageFields&&this.editableRecord.thicknessImageName||"",this.loadExistingPreview("scalp",this.existingScalpImageFileId),this.showThicknessImageFields&&this.loadExistingPreview("thickness",this.existingThicknessImageFileId);return}this.applyInitialMedicalFiles()},applyInitialMedicalFiles(){this.existingScalpImageFileId=this.initialMedicalFiles?.scalpImageFileId||"",this.existingScalpImageName=this.initialMedicalFiles?.scalpImageName||"",this.existingThicknessImageFileId=this.showThicknessImageFields&&this.initialMedicalFiles?.thicknessImageFileId||"",this.existingThicknessImageName=this.showThicknessImageFields&&this.initialMedicalFiles?.thicknessImageName||"",this.loadExistingPreview("scalp",this.existingScalpImageFileId),this.showThicknessImageFields&&this.loadExistingPreview("thickness",this.existingThicknessImageFileId)},extractText(t){return t?typeof t=="string"?t:typeof t=="object"&&t.text?t.text:"":""},emptyMedication(){return{name:"",weeks:"",refillDate:"",refillDateTouched:!1}},extractMedicationList(t,e,n){const c=t&&typeof t=="object"&&!Array.isArray(t)?t:{},s=(Array.isArray(c[e])?c[e]:[]).map(l=>({name:l?.name||"",weeks:l?.weeks||"",refillDate:l?.refillDate||"",refillDateTouched:!!l?.refillDate})).map(l=>({...l,refillDate:l.refillDate||this.calculateMedicationRefillDate(l.weeks)})).filter(l=>l.name||l.weeks||l.refillDate);return s.length?s:c[n]?[{name:c[n],weeks:"",refillDate:"",refillDateTouched:!1}]:[this.emptyMedication()]},updateMedication(t,e,n,c){const a=[...this[t]],s={...a[e]||this.emptyMedication(),[n]:c};n==="weeks"&&!s.refillDateTouched&&(s.refillDate=this.calculateMedicationRefillDate(c)),a[e]=s,this[t]=a},updateMedicationRefillDate(t,e,n){const c=[...this[t]];c[e]={...c[e]||this.emptyMedication(),refillDate:n,refillDateTouched:!0},this[t]=c},addMedication(t){this[t]=[...this[t],this.emptyMedication()]},removeMedication(t,e){const n=[...this[t]];if(n.length<=1){this[t]=[this.emptyMedication()];return}n.splice(e,1),this[t]=n},cleanMedicationList(t){return(t||[]).map(e=>({name:String(e?.name||"").trim(),weeks:String(e?.weeks||"").trim(),refillDate:String(e?.refillDate||this.calculateMedicationRefillDate(e?.weeks)).trim()})).filter(e=>e.name||e.weeks||e.refillDate)},buildTreatmentRecord(){const t={oralMeds:this.cleanMedicationList(this.oralMeds),topicalMeds:this.cleanMedicationList(this.topicalMeds)};return this.legacyTreatmentText&&(t.text=this.legacyTreatmentText),t},calculateMedicationRefillDate(t){const e=Number(t);if(!e||Number.isNaN(e))return"";const n=String(this.recordDate||"").split("-").map(Number);if(n.length!==3||n.some(a=>!a))return"";const c=new Date(n[0],n[1]-1,n[2]);return Number.isNaN(c.getTime())?"":(c.setDate(c.getDate()+e*7),this.formatDateKey(c))},formatDateKey(t){const e=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),c=String(t.getDate()).padStart(2,"0");return`${e}-${n}-${c}`},syncMedicationRefillDates(){this.syncMedicationGroupRefillDates("oralMeds"),this.syncMedicationGroupRefillDates("topicalMeds")},syncMedicationGroupRefillDates(t){this[t]=this[t].map(e=>e.refillDateTouched?e:{...e,refillDate:this.calculateMedicationRefillDate(e.weeks)})},dateKey(t){if(!t)return"";const e=new Date(t);return Number.isNaN(e.getTime())?"":e.toISOString().slice(0,10)},duplicateRecord(){const t=this.recordDate||new Date().toISOString().slice(0,10),e=Number(this.editableRecord?.personaCareMonthRecordIdx||0);return this.existingRecords.find(n=>Number(n.personaCareMonthRecordIdx||0)!==e&&this.dateKey(n.recordDate)===t)||null}
1,openImageDialog(t){const e=t==="scalp"?"scalpFileInput":"thicknessFileInput";this.$refs[e]?.click()},onImageChange(t,e){const n=e.target.files?.[0]||null;if(t==="scalp"?this.scalpImage=n:this.thicknessImage=n,this.error="",this.revokePreviewUrl(t),n)this.invalidatePreviewRequest(t),this.previewFileIds[t]="",this.setPreviewUrl(t,URL.createObjectURL(n));else{const c=t==="scalp"?this.existingScalpImageFileId:this.existingThicknessImageFileId;this.loadExistingPreview(t,c)}},loadExistingPreview(t,e){if(!e){this.invalidatePreviewRequest(t),this.revokePreviewUrl(t),this.previewFileIds[t]="";return}const n=this.previewFileIds[t];if(this.previewUrlForKind(t)&&String(n)===String(e))return;this.previewUrlForKind(t)&&this.revokePreviewUrl(t),this.previewFileIds[t]=String(e);const c=this.nextPreviewRequestId(t);this.$api.chat.getPersonaMedicalFile(e,{success:a=>{this.isCurrentPreviewRequest(t,c)&&(this.error="",this.setPreviewUrl(t,URL.createObjectURL(a)))},error:a=>{if(this.isCurrentPreviewRequest(t,c)){if(Y(a)){this.$emit("auth-expired");return}this.error="기존 ì´ë¯¸ì§ë¥¼ ë¶ë¬ì¤ì§ 못íìµëë¤."}}})},nextPreviewRequestId(t){const e=Number(this.previewRequestSeq[t]||0)+1;return this.previewRequestSeq[t]=e,e},invalidatePreviewRequest(t){this.previewRequestSeq[t]=Number(this.previewRequestSeq[t]||0)+1},isCurrentPreviewRequest(t,e){return Number(this.previewRequestSeq[t]||0)===Number(e)},previewUrlForKind(t){return t==="scalp"?this.scalpPreviewUrl:this.thicknessPreviewUrl},setPreviewUrl(t,e){t==="scalp"?this.scalpPreviewUrl=e:this.thicknessPreviewUrl=e},revokePreviewUrl(t){const e=t==="scalp"?"scalpPreviewUrl":"thicknessPreviewUrl";this[e]&&URL.revokeObjectURL(this[e]),this[e]=""},save(){if(!this.canSubmit)return;this.error="",this.successMessage="";const t=this.duplicateRecord();if(t){this.pendingDuplicateRecord=t,this.showOverwriteConfirm=!0;return}this.persistRecord(null)},confirmOverwrite(){const t=this.pendingDuplicateRecord;this.showOverwriteConfirm=!1,this.pendingDuplicateRecord=null,this.persistRecord(t)},cancelOverwrite(){this.showOverwriteConfirm=!1,this.pendingDuplicateRecord=null},persistRecord(t){const e=t?t.personaCareMonthRecordIdx:this.isEditMode?this.editableRecord.personaCareMonthRecordIdx:null,n=this.isEditMode;this.saving=!0;const c={recordDate:this.recordDate||new Date().toISOString().slice(0,10),treatmentRecord:this.buildTreatmentRecord(),changeMemo:{text:this.changeText},aiFeedback:n?null:{text:`AI ${this.doctor.name} ìì¬ê° ì§ë£ 기ë¡ì íì¸íìµëë¤. ê°ì ì¡°ê±´ì¼ë¡ ì¬ì§ê³¼ ì¹ë£ 기ë¡ì ê³ì ë¨ê²¨ 주ì¸ì.`},scalpImageFileId:this.scalpImage?null:this.existingScalpImageFileId,thicknessImageFileId:this.showThicknessImageFields?this.thicknessImage?null:this.existingThicknessImageFileId:null,hairTypeResult:n?null:this.diagnosisResults.hairTypeResult,thicknessResult:n||!this.showThicknessImageFields?null:this.diagnosisResults.thicknessResult,status:"SAVED"},a=new FormData;a.append("request",new Blob([JSON.stringify(c)],{type:"application/json"})),this.scalpImage&&a.append("scalpImage",this.scalpImage),this.thicknessImage&&this.showThicknessImageFields&&a.append("thicknessImage",this.thicknessImage);const s=e?this.$api.chat.updatePersonaCareRecord:this.$api.chat.savePersonaCareRecord,l=e?[this.carePlanId,e,a]:[this.carePlanId,a];s(...l,{success:p=>{this.saving=!1,this.error="",this.successMessage=this.saveSuccessMessage,this.$emit("saved",p)},error:()=>{this.saving=!1,this.successMessage="",this.error=this.saveFailureMessage||"ì§ë£ ê¸°ë¡ ì ì¥ì ì¤í¨íìµëë¤."}})}}},ur={key:0},hr={key:1,class:"persona-form-section"},pr={key:2,class:"persona-form-section persona-medication-section"},mr={class:"persona-medication-heading"},gr={class:"persona-medication-field"},yr=["value","onInput"],fr={class:"persona-medication-field"},kr=["value","onInput"],vr={class:"persona-medication-field"},br=["value","onInput"],Ir=["onClick"],Mr={key:3,class:"persona-form-section persona-medication-section"},Dr={class:"persona-medication-heading"},Cr={class:"persona-medication-field"},Rr=["value","onInput"],wr={class:"persona-medication-field"},Pr=["value","onInput"],Tr={class:"persona-medication-field"},Sr=["value","onInput"],_r=["onClick"],xr={key:4,class:"persona-form-section"},Fr={key:5},Ar={class:"persona-file-picker"},Er={key:0,class:"persona-file-preview"},Nr=["src"],Or={class:"persona-file-meta"},Lr={key:0},qr={key:6},Ur={class:"persona-file-picker"},Br={key:0,class:"persona-file-preview"},Hr=["src"],Vr={class:"persona-file-meta"},Qr={key:0},Kr={key:7,class:"persona-success",role:"status"},jr={key:8,class:"persona-error",role:"alert"},zr=["disabled","aria-busy"],Yr={key:10,class:"persona-modal-backdrop",role:"alertdialog","aria-modal":"true"},Gr={class:"persona-confirm-modal"},Wr={class:"persona-confirm-actions"};function Jr(t,e,n,c,a,s){return o(),d("form",{class:y(["persona-month-form",{"persona-month-form--embedded":s.isEmbeddedMode}]),onSubmit:e[10]||(e[10]=D((...l)=>s.save&&s.save(...l),["prevent"]))},[n.hideTitle?u("",!0):(o(),d("h3",ur,h(s.formTitle),1)),s.showInputFields?(o(),d("label",hr,[e[11]||(e[11]=P(" ì§ë£ì¼ ")),q(i("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>a.recordDate=l),type:"date"},null,512),[[V,a.recordDate]])])):u("",!0),s.showInputFields?(o(),d("div",pr,[i("div",mr,[e[12]||(e[12]=i("strong",null,"먹ë ì½",-1)),i("button",{type:"button",onClick:e[1]||(e[1]=l=>s.addMedication("oralMeds"))},"ì½ ì¶ê°")]),(o(!0),d(C,null,S(a.oralMeds,(l,p)=>(o(),d("div",{key:`oral-${p}`,class:"persona-medication-row"},[i("div",gr,[e[13]||(e[13]=i("span",{class:"persona-medication-column-label"},"ì½ ì´ë¦",-1)),i("input",{value:l.name,type:"text",placeholder:"ì: í¼ëì¤í
리ë 1mg ë§¤ì¼ ë³µì©",onInput:r=>s.updateMedication("oralMeds",p,"name",r.target.value)}
1,null,40,yr)]),i("div",fr,[e[14]||(e[14]=i("span",{class:"persona-medication-column-label"},"ëª ì£¼ì¹",-1)),i("input",{value:l.weeks,type:"number",min:"1",inputmode:"numeric",placeholder:"ëª ì£¼ì¹",onInput:r=>s.updateMedication("oralMeds",p,"weeks",r.target.value)},null,40,kr)]),i("div",vr,[e[15]||(e[15]=i("span",{class:"persona-medication-column-label"},"ì½ íê°ì¼ íë ë ì§",-1)),i("input",{value:l.refillDate,type:"date",onInput:r=>s.updateMedicationRefillDate("oralMeds",p,r.target.value)},null,40,br)]),i("button",{type:"button",class:"persona-medication-remove",onClick:r=>s.removeMedication("oralMeds",p)},"ìì ",8,Ir)]))),128))])):u("",!0),s.showInputFields?(o(),d("div",Mr,[i("div",Dr,[e[16]||(e[16]=i("strong",null,"ë°ë¥´ë ì½",-1)),i("button",{type:"button",onClick:e[2]||(e[2]=l=>s.addMedication("topicalMeds"))},"ì½ ì¶ê°")]),(o(!0),d(C,null,S(a.topicalMeds,(l,p)=>(o(),d("div",{key:`topical-${p}`,class:"persona-medication-row"},[i("div",Cr,[e[17]||(e[17]=i("span",{class:"persona-medication-column-label"},"ì½ ì´ë¦",-1)),i("input",{value:l.name,type:"text",placeholder:"ì: 미ë
¹ìë 5% í루 1í",onInput:r=>s.updateMedication("topicalMeds",p,"name",r.target.value)},null,40,Rr)]),i("div",wr,[e[18]||(e[18]=i("span",{class:"persona-medication-column-label"},"ëª ì£¼ì¹",-1)),i("input",{value:l.weeks,type:"number",min:"1",inputmode:"numeric",placeholder:"ëª ì£¼ì¹",onInput:r=>s.updateMedication("topicalMeds",p,"weeks",r.target.value)},null,40,Pr)]),i("div",Tr,[e[19]||(e[19]=i("span",{class:"persona-medication-column-label"},"ì½ íê°ì¼ íë ë ì§",-1)),i("input",{value:l.refillDate,type:"date",onInput:r=>s.updateMedicationRefillDate("topicalMeds",p,r.target.value)},null,40,Sr)]),i("button",{type:"button",class:"persona-medication-remove",onClick:r=>s.removeMedication("topicalMeds",p)},"ìì ",8,_r)]))),128))])):u("",!0),s.showInputFields?(o(),d("label",xr,[e[20]||(e[20]=P(" ë©ëª¨ ")),q(i("textarea",{"onUpdate:modelValue":e[3]||(e[3]=l=>a.changeText=l),placeholder:"ì´ë² ë¬ íë½ë, ëí¼ ìí, ë¶ìì© ë±ì ì
ë ¥íì¸ì."},null,512),[[V,a.changeText]])])):u("",!0),s.showImageFields?(o(),d("label",Fr,[e[21]||(e[21]=P(" í모 ì í ë¶ì ì´ë¯¸ì§ ")),i("div",Ar,[i("input",{ref:"scalpFileInput",class:"persona-file-input",type:"file",accept:"image/*",onChange:e[4]||(e[4]=l=>s.onImageChange("scalp",l))},null,544),a.scalpPreviewUrl?(o(),d("div",Er,[i("img",{src:a.scalpPreviewUrl,alt:"í모 ì í ë¶ì ì´ë¯¸ì§ 미리보기"},null,8,Nr)])):u("",!0),i("div",Or,[i("strong",null,h(s.scalpImageLabel),1),s.scalpImageHelp?(o(),d("span",Lr,h(s.scalpImageHelp),1)):u("",!0)]),i("button",{type:"button",class:"persona-file-button",onClick:e[5]||(e[5]=l=>s.openImageDialog("scalp"))},h(a.existingScalpImageFileId||a.scalpImage?"ì´ë¯¸ì§ ë³ê²½":"ì´ë¯¸ì§ ì í"),1)])])):u("",!0),s.showThicknessImageFields?(o(),d("label",qr,[e[22]||(e[22]=P(" ëª¨ë° êµµê¸° ì´ë¯¸ì§ ")),i("div",Ur,[i("input",{ref:"thicknessFileInput",class:"persona-file-input",type:"file",accept:"image/*",onChange:e[6]||(e[6]=l=>s.onImageChange("thickness",l))},null,544),a.thicknessPreviewUrl?(o(),d("div",Br,[i("img",{src:a.thicknessPreviewUrl,alt:"ëª¨ë° êµµê¸° ì´ë¯¸ì§ 미리보기"},null,8,Hr)])):u("",!0),i("div",Vr,[i("strong",null,h(s.thicknessImageLabel),1),s.thicknessImageHelp?(o(),d("span",Qr,h(s.thicknessImageHelp),1)):u("",!0)]),i("button",{type:"button",class:"persona-file-button",onClick:e[7]||(e[7]=l=>s.openImageDialog("thickness"))},h(a.existingThicknessImageFileId||a.thicknessImage?"ì´ë¯¸ì§ ë³ê²½":"ì´ë¯¸ì§ ì í"),1)])])):u("",!0),a.successMessage?(o(),d("div",Kr,h(a.successMessage),1)):u("",!0),a.error?(o(),d("div",jr,h(a.error),1)):u("",!0),n.hideSubmit?u("",!0):(o(),d("button",{key:9,type:"submit",class:"persona-primary",disabled:!s.canSubmit,"aria-busy":a.saving?"true":"false"},h(s.submitLabel),9,zr)),a.showOverwriteConfirm?(o(),d("div",Yr,[i("div",Gr,[e[23]||(e[23]=i("h4",null,"ì´ë¯¸ ì ì¥ë ì§ë£ì¼",-1)),e[24]||(e[24]=i("p",null,"ì íí ì§ë£ì¼ì ì´ë¯¸ ì ì¥ë 기ë¡ì´ ììµëë¤. 기존 기ë¡ì ë®ì´ì°ìê² ìµëê¹?",-1)),i("div",Wr,[i("button",{type:"button",class:"persona-secondary",onClick:e[8]||(e[8]=(...l)=>s.cancelOverwrite&&s.cancelOverwrite(...l))},"ìëì¤"),i("button",{type:"button",class:"persona-confirm",onClick:e[9]||(e[9]=(...l)=>s.confirmOverwrite&&s.confirmOverwrite(...l))},"ì")])])])):u("",!0)],34)}const Ye=x(cr,[["render",Jr],["__scopeId","data-v-28609ece"]]),Xr={name:"PersonaCarePlan",components:{PersonaCareCalendar:xe,PersonaCareMonthForm:Ye,PersonaCareRecordTabs:ae,PersonaRecordDateCalendar:ie},props:{doctor:{type:Object,default:()=>({name:"ì´ì ì§ë£"})},initialMedicalFiles:{type:Object,default:()=>({})},initialCarePlan:{type:Object,default:null},sessionDetail:{type:Object,default:()=>({})},readonly:{type:Boolean,default:!1},allowNewRecord:{type:Boolean,default:!0},openNewRecordOnLoad:{type:Boolean,default:!0},title:{type:String,default:"ì§ë£ ê¸°ë¡ ê´ë¦¬"},subtitle:{type:String,default:"ì ì¥ë ì§ë£ì¼ì ë르면 기ë¡ì íì¸í©ëë¤."},summaryText:{type:String,default:""}},emits:["back","auth-expired","record-deleted"],data(){return{loading:!1,carePlan:null,selectedRecordId:-1,monthDetail:null,recordViewMode:"calendar",calendarVisibleDate:"",selectedStatusMonthIndex:-1,activeRecordTab:"images",imageUrls:{},imageFileIds:{},imageErrors:{},imageRequestSeq:{},actionError:""}},computed:{carePlanId(){return this.carePlan?.personaCarePlanIdx},records(){return this.carePlan?.months||[]},selectedRecordSummary(){return this.records.find(t=>Number(t.personaCareMonthRecordIdx)===Number(this.selectedRecordId))||null},selectedCareRecord(){return this.monthDetail||this.selectedRecordSummary},comparisonRecords(){const t=new Map;
1if(this.records.forEach(e=>{t.set(Number(e.personaCareMonthRecordIdx),e)}),this.selectedCareRecord){const e=Number(this.selectedCareRecord.personaCareMonthRecordIdx);t.set(e,{...t.get(e)||{},...this.selectedCareRecord})}return Array.from(t.values()).sort((e,n)=>Number(e.visitRound??e.monthIndex)-Number(n.visitRound??n.monthIndex))},currentTitle(){return this.recordViewMode==="detail"?`${this.selectedCareRecord?.visitLabel||"ì§ë£"} 기ë¡`:this.recordViewMode==="form"?"ì ì§ë£ ê¸°ë¡ ì
ë ¥":this.title},currentSubtitle(){return this.recordViewMode==="detail"||this.recordViewMode==="form"?"ë¤ë¡ ë²í¼ì ë르면 ì§ë£ ê¸°ë¡ ìºë¦°ëë¡ ëìê°ëë¤.":this.subtitle},summaryTitle(){const t=this.safeDoctor.name||"ì´ì ì§ë£";return t==="ì´ì ì§ë£"?"ì´ì AI ì§ë£ 기ë¡":`AI ${t} ìì¬ì í¨ê»íë ìë³ ê´ë¦¬`},safeDoctor(){return this.doctor||{name:"ì´ì ì§ë£"}},safeSessionDetail(){return this.sessionDetail||{}},diagnosisResults(){return{hairTypeResult:this.safeSessionDetail.hairTypeResult,thicknessResult:this.safeSessionDetail.thicknessResult}},selectedRecordImageUrls(){const t=this.selectedCareRecord;return t?{hairType:this.imageUrls[this.monthImageKey(t,"scalp")]||"",thickness:this.imageUrls[this.monthImageKey(t,"thickness")]||""}:{hairType:"",thickness:""}},sessionImageUrls(){return{hairType:this.selectedRecordImageUrls.hairType||this.imageUrls.sessionHairType||"",thickness:this.selectedRecordImageUrls.thickness||this.imageUrls.sessionThickness||""}},statusImageOptions(){return this.comparisonRecords.map(t=>({monthIndex:Number(t.visitRound??t.monthIndex),recordId:Number(t.personaCareMonthRecordIdx),label:t.visitLabel||this.monthLabel(t.visitRound??t.monthIndex),recordDate:t.recordDate,scalpUrl:this.imageUrls[this.monthImageKey(t,"scalp")]||"",thicknessUrl:this.imageUrls[this.monthImageKey(t,"thickness")]||"",thicknessResult:t.thicknessResult}))},showRecordForm(){return!!(this.selectedCareRecord&&!this.readonly&&this.carePlanId)},hideComparisonImages(){return this.recordViewMode==="form"},canDeleteRecord(){return!!(this.showRecordForm&&!this.allowNewRecord&&this.selectedCareRecord?.personaCareMonthRecordIdx)},activeEditFormRef(){return this.showRecordForm&&this.activeRecordTab==="images"?"imageEditForm":""},activeEditSubmitLabel(){return this.activeEditFormRef?"ì ì¥":""},showDetailActions(){return!!(this.recordViewMode==="detail"&&this.showRecordForm&&(this.activeEditFormRef||this.canDeleteRecord))},imageErrorMessage(){return Object.values(this.imageErrors||{}).some(Boolean)?"ì¼ë¶ ìë£ ì´ë¯¸ì§ë¥¼ ë¶ë¬ì¤ì§ 못íìµëë¤. ì ì í ë¤ì ìëí´ ì£¼ì¸ì.":""}},mounted(){this.loadCarePlan()},beforeUnmount(){this.revokeImageUrls()},watch:{sessionDetail:{handler(){this.loadAllImages()},deep:!0}},methods:{loadCarePlan(t={}){if(this.initialCarePlan?.personaCarePlanIdx){this.setCarePlan(this.initialCarePlan,t);return}this.loading=!0,this.$api.chat.getLatestPersonaCarePlan({success:e=>{this.setCarePlan(e,t)},error:()=>{this.loading=!1}})},setCarePlan(t,e={}){if(this.carePlan=t,this.loading=!1,this.loadAllImages(),e.selectedRecordId){const c=this.records.find(a=>Number(a.personaCareMonthRecordIdx)===Number(e.selectedRecordId));c&&(e.openDetail===!1?(this.selectedRecordId=Number(c.personaCareMonthRecordIdx),this.selectedStatusMonthIndex=this.previousStatusMonthIndex(c),this.calendarVisibleDate=z(c.recordDate||new Date),this.monthDetail=null,this.recordViewMode="calendar"):this.applyRecordSelection(c,!0,e));return}if(this.allowNewRecord&&this.openNewRecordOnLoad&&!this.initialCarePlan?.personaCarePlanIdx&&!this.readonly){this.recordViewMode="form",this.calendarVisibleDate=z(new Date);return}const n=It(this.records);if(n){this.selectedRecordId=Number(n.personaCareMonthRecordIdx),this.selectedStatusMonthIndex=this.previousStatusMonthIndex(n),this.calendarVisibleDate=z(n.recordDate||new Date);return}this.calendarVisibleDate=z(new Date)},selectRecord(t){this.actionError="",this.applyRecordSelection(t,!0)},applyRecordSelection(t,e,n={}){t&&(this.selectedRecordId=Number(t.personaCareMonthRecordIdx),this.selectedStatusMonthIndex=this.previousStatusMonthIndex(t),this.calendarVisibleDate=z(t.recordDate||new Date),this.monthDetail
1=null,e&&(n.preserveActiveTab||(this.activeRecordTab="images"),this.recordViewMode="detail"),this.carePlanId&&e&&this.$api.chat.getPersonaCareRecord(this.carePlanId,this.selectedRecordId,{success:c=>{this.monthDetail=c,this.loadRecordImages(c)}}))},selectCalendarRecord(t){this.selectRecord(t)},selectStatusMonth(t){this.selectedStatusMonthIndex=Number(t)},handleSaved(t){this.actionError="";const e=this.recordViewMode==="form";this.monthDetail=e?null:t,this.selectedRecordId=Number(t?.personaCareMonthRecordIdx||this.selectedRecordId),this.selectedStatusMonthIndex=this.previousStatusMonthIndex(t),this.recordViewMode=e?"calendar":"detail",this.loadRecordImages(t),this.loadAllImages(),this.refreshCarePlan({selectedRecordId:t?.personaCareMonthRecordIdx||this.selectedRecordId,openDetail:!e,preserveActiveTab:!0})},refreshCarePlan(t={}){this.$api.chat.getLatestPersonaCarePlan({success:e=>{this.setCarePlan(e,t)}})},submitActiveEditForm(){if(!this.activeEditFormRef)return;const t=this.$refs[this.activeEditFormRef];(Array.isArray(t)?t[0]:t)?.save()},deleteSelectedRecord(){if(!this.canDeleteRecord||!confirm("ì íí ì§ë£ 기ë¡ì ìì íìê² ìµëê¹? ìì í 복구í ì ììµëë¤."))return;this.actionError="";const t=this.selectedCareRecord.personaCareMonthRecordIdx,e=this.carePlanId;this.$api.chat.deletePersonaCareRecord(e,t,{success:()=>{this.monthDetail=null,this.selectedRecordId=-1,this.selectedStatusMonthIndex=-1,this.recordViewMode="calendar",this.revokeImageUrls(),this.imageUrls={},this.$emit("record-deleted",{carePlanId:e,recordId:t}),this.refreshCarePlan()},error:()=>{this.actionError="ì§ë£ ê¸°ë¡ ìì ì ì¤í¨íìµëë¤."}})},handleBack(){if(this.recordViewMode!=="calendar"){this.backToCalendar();return}this.$emit("back")},backToCalendar(){this.recordViewMode="calendar"},loadAllImages(){this.loadImage("sessionHairType",this.sessionImageFileId("hairType")),this.loadImage("sessionThickness",this.sessionImageFileId("thickness")),this.comparisonRecords.forEach(t=>this.loadRecordImages(t))},loadRecordImages(t){t&&(this.loadImage(this.monthImageKey(t,"scalp"),this.recordImageFileId(t,"scalp")),this.loadImage(this.monthImageKey(t,"thickness"),this.recordImageFileId(t,"thickness")))},recordImageFileId(t,e){return e==="scalp"?t.scalpImageFileId||t.hairTypeResult?.imageFileId||t.hairTypeResult?.medicalFileId||"":t.thicknessImageFileId||t.thicknessResult?.imageFileId||t.thicknessResult?.medicalFileId||""},sessionImageFileId(t){return t==="hairType"?this.safeSessionDetail.hairTypeImageFileId||this.safeSessionDetail.hairTypeResult?.imageFileId||this.safeSessionDetail.hairTypeResult?.medicalFileId||this.initialMedicalFiles?.scalpImageFileId||"":this.safeSessionDetail.thicknessImageFileId||this.safeSessionDetail.thicknessResult?.imageFileId||this.safeSessionDetail.thicknessResult?.medicalFileId||this.initialMedicalFiles?.thicknessImageFileId||""},monthImageKey(t,e){return`record-${t.personaCareMonthRecordIdx||t.monthIndex}-${e}`},monthLabel(t){return Fe(t)},latestStatusMonthIndex(){const t=this.comparisonRecords.map(e=>Number(e?.visitRound??e?.monthIndex)).filter(e=>Number.isFinite(e));return t.length?Math.max(...t):-1},previousStatusMonthIndex(t){const e=Number(t?.visitRound??t?.monthIndex??0);return e<=0?this.latestStatusMonthIndex():Math.max(0,e-1)},loadImage(t,e){if(!e){this.invalidateImageRequest(t),this.revokeImageUrl(t),this.imageFileIds[t]="",this.imageErrors[t]=!1;return}const n=this.imageFileIds[t];if(this.imageUrls[t]&&String(n)===String(e))return;this.imageUrls[t]&&this.revokeImageUrl(t),this.imageFileIds[t]=String(e);const c=this.nextImageRequestId(t);this.imageErrors[t]=!1,this.$api.chat.getPersonaMedicalFile(e,{success:a=>{this.isCurrentImageRequest(t,c)&&(this.imageUrls[t]=URL.createObjectURL(a))},error:a=>{if(this.isCurrentImageRequest(t,c)){if(Y(a)){this.$emit("auth-expired");return}this.imageErrors[t]=!0}}})},revokeImageUrl(t){this.imageUrls[t]&&URL.revokeObjectURL(this.imageUrls[t]),this.imageUrls[t]=""},nextImageRequestId(t){const e=Number(this.imageRequestSeq[t]||0)+1;return this.imageRequestSeq[t]=e,e},invalidateImageRequest(t){this.imageRequestSeq[t]=Number(this.imageRequestSeq[t]||0)+1},isCurrentImageRequest(t,e){return Number(this.imageRequestSeq[t]||0)===Number(e)},revokeImageUrls(){Object.keys(this.imageRequestSeq||{}
1).forEach(t=>this.invalidateImageRequest(t)),Object.keys(this.imageUrls||{}).forEach(t=>this.revokeImageUrl(t)),this.imageFileIds={}}}},Zr={class:"persona-step"},$r={class:"persona-step-head"},eo={class:"persona-step-scroll"},to={key:0,class:"persona-care-summary"},so={key:0},io={key:1,class:"persona-loading"},ao={key:2,class:"persona-action-error",role:"alert"},no={key:0,class:"persona-image-error",role:"alert"},ro={key:2,class:"persona-empty"},oo={key:1,class:"persona-empty"},lo={key:6,class:"persona-empty"};function co(t,e,n,c,a,s){const l=ie,p=xe,r=Ye,g=ae;return o(),d("section",Zr,[i("div",$r,[i("button",{type:"button",onClick:e[0]||(e[0]=(...k)=>s.handleBack&&s.handleBack(...k))},"â¹"),i("div",null,[i("h2",null,h(s.currentTitle),1),i("p",null,h(s.currentSubtitle),1)])]),i("div",eo,[a.recordViewMode==="calendar"?(o(),d("div",to,[i("strong",null,h(s.summaryTitle),1),n.summaryText?(o(),d("span",so,h(n.summaryText),1)):u("",!0)])):u("",!0),a.loading?(o(),d("div",io,"ì¼ì´ íëì ë¶ë¬ì¤ë ì¤...")):u("",!0),a.actionError?(o(),d("div",ao,h(a.actionError),1)):a.recordViewMode==="calendar"?(o(),d(C,{key:3},[M(l,{records:s.records,"visible-date":a.calendarVisibleDate,"selected-record-id":a.selectedRecordId,onSelectRecord:s.selectCalendarRecord,onChangeVisibleDate:e[1]||(e[1]=k=>a.calendarVisibleDate=k)},null,8,["records","visible-date","selected-record-id","onSelectRecord"]),M(p,{records:s.records,"selected-record-id":a.selectedRecordId,readonly:n.readonly,onSelectRecord:s.selectRecord},null,8,["records","selected-record-id","readonly","onSelectRecord"]),e[7]||(e[7]=i("div",{class:"persona-empty"},"íì¸í ì§ë£ í차를 ì íí´ ì£¼ì¸ì.",-1))],64)):a.recordViewMode==="detail"?(o(),d(C,{key:4},[s.imageErrorMessage?(o(),d("div",no,h(s.imageErrorMessage),1)):u("",!0),s.selectedCareRecord?(o(),m(g,{key:1,"session-detail":s.safeSessionDetail,"selected-record":s.selectedCareRecord,"month-index":s.selectedCareRecord.visitRound||0,"session-image-urls":s.sessionImageUrls,"status-image-options":s.statusImageOptions,"selected-status-month-index":a.selectedStatusMonthIndex,"hide-comparison-images":s.hideComparisonImages,"active-tab-key":a.activeRecordTab,onSelectStatusMonth:s.selectStatusMonth,onActiveTabChange:e[3]||(e[3]=k=>a.activeRecordTab=k)},Et({_:2},[s.showRecordForm?{name:"image-edit",fn:pe(()=>[(o(),m(r,{ref:"imageEditForm",key:`edit-images-${s.selectedCareRecord.personaCareMonthRecordIdx}`,"form-mode":"images","hide-submit":"","care-plan-id":s.carePlanId,doctor:s.safeDoctor,"editable-record":s.selectedCareRecord,"existing-records":s.records,onSaved:s.handleSaved,onAuthExpired:e[2]||(e[2]=k=>t.$emit("auth-expired"))},null,8,["care-plan-id","doctor","editable-record","existing-records","onSaved"]))]),key:"0"}:void 0]),1032,["session-detail","selected-record","month-index","session-image-urls","status-image-options","selected-status-month-index","hide-comparison-images","active-tab-key","onSelectStatusMonth"])):u("",!0),s.selectedCareRecord?u("",!0):(o(),d("div",ro,"기ë¡ì ë¶ë¬ì¤ë ì¤ì
ëë¤."))],64)):a.recordViewMode==="form"?(o(),d(C,{key:5},[!n.readonly&&n.allowNewRecord&&s.carePlanId?(o(),m(r,{key:"new-record","hide-title":"","care-plan-id":s.carePlanId,doctor:s.safeDoctor,"initial-medical-files":n.initialMedicalFiles,"diagnosis-results":s.diagnosisResults,"existing-records":s.records,onSaved:s.handleSaved,onAuthExpired:e[4]||(e[4]=k=>t.$emit("auth-expired"))},null,8,["care-plan-id","doctor","initial-medical-files","diagnosis-results","existing-records","onSaved"])):(o(),d("div",oo,"ì ì§ë£ 기ë¡ì AI ì§ë£ ì ì¥ í ì
ë ¥í ì ììµëë¤."))],64)):(o(),d("div",lo,"ìì§ ì
ë ¥í ì ìë ì§ë£ 기ë¡ì
ëë¤."))]),s.showDetailActions?(o(),d("div",{key:0,class:y(["persona-care-action",{"persona-care-action--split":s.activeEditFormRef&&s.canDeleteRecord}])},[s.canDeleteRecord?(o(),d("button",{key:0,type:"button",class:"persona-care-delete",onClick:e[5]||(e[5]=(...k)=>s.deleteSelectedRecord&&s.deleteSelectedRecord(...k))}," ì§ë£ ê¸°ë¡ ìì ")):u("",!0),s.activeEditFormRef?(o(),d("button",{key:1,type:"button",class:"persona-care-save",onClick:e[6]||(e[6]=(...k)=>s.submitActiveEditForm&&s.submitActiveEditForm(...k))}
1,h(s.activeEditSubmitLabel),1)):u("",!0)],2)):u("",!0)])}const Ge=x(Xr,[["render",co],["__scopeId","data-v-42aa0d4e"]]),uo={name:"PersonaIntro",components:{PersonaDoctorProfileModal:re,PersonaDoctorRecommendModal:oe},props:{doctors:{type:Array,default:()=>[]},hasHistory:{type:Boolean,default:!1}},emits:["start","select-doctor","open-history"],data(){return{activeDoctor:null,recommendModalOpen:!1,introStage:"poster"}},computed:{previewDoctors(){return this.doctors},showPoster(){return Dt(this.introStage)},canRecommendDoctor(){return!this.hasHistory&&this.doctors.length>=2}},methods:{doctorKeywordItems:Ke,revealDetails(){this.introStage=Mt(this.introStage),this.$nextTick(()=>{this.$refs.introDetails?.scrollIntoView({behavior:"smooth",block:"start"})})},photoStyle(t){return t.photoUrl||t.photoFileUrl?{backgroundImage:`url(${t.photoUrl||t.photoFileUrl})`,backgroundSize:"contain",backgroundPosition:"center",backgroundRepeat:"no-repeat"}:{backgroundColor:"#eef1f6"}}}},ho={class:"persona-intro"},po={key:0,class:"persona-poster-stage"},mo={key:1,ref:"introDetails",class:"persona-intro-details"},go={class:"persona-intro-scroll"},yo={key:0,class:"persona-doctor-preview"},fo={class:"persona-doctor-preview-head"},ko=["onClick"],vo={key:0},bo={key:1,class:"persona-doctor-badges"},Io={class:"persona-intro-action"};function Mo(t,e,n,c,a,s){const l=re,p=oe;return o(),d("section",ho,[s.showPoster?(o(),d("div",po,[e[8]||(e[8]=i("div",{class:"persona-poster-scroll"},[i("picture",{class:"persona-poster-picture"},[i("source",{media:"(min-width:431px)",srcset:"/images/persona/poster-pc.png"}),i("img",{class:"persona-poster",src:"/images/persona/poster-mobile.png",alt:"AI ìì¬ ì§ë£ ìê°"})])],-1)),i("div",{class:y(["persona-poster-action",{"persona-poster-action--split":n.hasHistory}])},[n.hasHistory?(o(),d("button",{key:0,type:"button",class:"persona-poster-history",onClick:e[0]||(e[0]=r=>t.$emit("open-history"))}," ë´ AI ì§ë£ ê¸°ë¡ ")):u("",!0),i("button",{type:"button",class:"persona-poster-next",onClick:e[1]||(e[1]=(...r)=>s.revealDetails&&s.revealDetails(...r))}," ë¤ì ")],2)])):u("",!0),a.introStage==="details"?(o(),d("div",mo,[i("div",go,[e[10]||(e[10]=G('<div class="persona-intro-copy" data-v-2399b03a><p class="persona-eyebrow" data-v-2399b03a>MEDALO AI DOCTOR</p><h2 data-v-2399b03a>AI í모 ìì¬ì<br data-v-2399b03a>ì´ì§ë¶í° ì§ì ê´ë¦¬ê¹ì§</h2><p data-v-2399b03a>í모 ì íê³¼ ëª¨ë° êµµê¸° ë¶ì, ë¬¸ì§ ê¸°ë¡ì ë°íì¼ë¡ íìë³ ì¼ì´ íëì ì ì¥í©ëë¤.</p></div><div class="persona-feature-grid" data-v-2399b03a><div data-v-2399b03a><strong data-v-2399b03a>í모 ì í ë¶ì</strong><span data-v-2399b03a>í모 ì í ë¶ë¥</span></div><div data-v-2399b03a><strong data-v-2399b03a>ëª¨ë° êµµê¸° ë¶ì</strong><span data-v-2399b03a>ã ë¨ì 기ë¡</span></div><div data-v-2399b03a><strong data-v-2399b03a>AI ì¢
í© ì§ë¨</strong><span data-v-2399b03a>ë±ê¸ ìì´ ì í ì¤ì¬</span></div><div data-v-2399b03a><strong data-v-2399b03a>ì§ë£ ê¸°ë¡ ê´ë¦¬</strong><span data-v-2399b03a>ì§ë£ì¼ë³ ê¸°ë¡ ì ì¥</span></div></div>',2)),n.hasHistory?u("",!0):(o(),d("div",yo,[i("div",fo,[e[9]||(e[9]=i("h3",null,"AI í모 ìì¬ ìê°",-1)),s.canRecommendDoctor?(o(),d("button",{key:0,type:"button",class:"persona-recommend-open",onClick:e[2]||(e[2]=r=>a.recommendModalOpen=!0)}," ìì¬ ì¶ì² ")):u("",!0)]),(o(!0),d(C,null,S(s.previewDoctors,r=>(o(),d("button",{key:r.personaAiDoctorIdx||r.id,type:"button",class:"persona-doctor-row",onClick:g=>a.activeDoctor=r},[i("div",{class:"persona-doctor-photo",style:O(s.photoStyle(r))},null,4),r.name?(o(),d("span",vo,"AI "+h(r.name)+" ìì¬",1)):u("",!0),s.doctorKeywordItems(r).length?(o(),d("div",bo,[(o(!0),d(C,null,S(s.doctorKeywordItems(r),g=>(o(),d("em",{key:g},h(g),1))),128))])):u("",!0)],8,ko))),128))]))]),i("div",Io,[i("button",{type:"button",class:"persona-primary",onClick:e[3]||(e[3]=r=>t.$emit("start"))},"AI ìì¬ ì§ë£ ììí기")])],512)):u("",!0),a.activeDoctor&&!n.hasHistory?(o(),m(l,{key:2,doctor:a.activeDoctor,onClose:e[4]||(e[4]=r=>a.activeDoctor=null),onSelect:e[5]||(e[5]=r=>t.$emit("select-doctor",r))},null,8,["doctor"])):u("",!0),a.recommendModalOpen?(o(),m(p,{key:3,doctors:n.doctors,onClose:e[6]||(e[6]=r=>a.recommendModalOpen=!1),onSelectDoctor:e[7]||(e[7]=r=>t.$emit("select-doctor",r))},null,8,["doctors"])):u("",!0)])}const We=x(uo,[["render",Mo],["__scopeId","data-v-2399b03a"]]),Do={name:"PersonaWorkflow",components:{PersonaIntro:We,PersonaDoctorList:ze,PersonaHairTypeStep:Qe,PersonaThicknessStep:Ve,PersonaQuestionnaire:He,PersonaResult:Be,PersonaCarePlan:Ge},emits:["close","auth-expired"],data(){return{screen:"intro",doctors:[],treatmentPlans:[],historySummary:{hasHistory:!1},selectedDoctor:null,loading:!1,authExpiredHandled:!1,visitLockNotice:{open:!1,message:""},actionNotice:{open:!1,message:""},state:{hairTypeResult:null,thicknessResult:null,hairTypeFile:null,thicknessFile:null,questionnaireAnswers:{},finalDiagnosis:null,session:null}}},mounted(){this.loadInitialData()},computed:{shellTitle(){return ve().title},shellClass(){return Ft(this.screen)},shellStyle(){return{"--persona-shell-max-width":`${ve().maxWidthPx}px`}},initialCareImages(){return xt(this.state.hairTypeResult,this.state.thicknessResult)},hasVisitHistory(){return ke(this.historySummary)},isRepeatVisit(){return this.hasVisitHistory},activeInitialHairType(){return _t(this.historySummary)||this.state.hairTypeResult?.primaryType||""},canChooseDoctor(){return!this.hasVisitHistory},historyCarePlan(){return this.historySummary?.latestCarePlan||null},historySessionDetail(){return this.historySummary?.initialSession||this.historySummary?.latestSession||{}},historyDoctor(){const t=this.historySessionDetail?.personaAiDoctorIdx;return this.doctors.find(e=>Number(e.personaAiDoctorIdx)===Number(t))||this.selectedDoctor||{personaAiDoctorIdx:t,name:"ì´ì ì§ë£"}}},methods:{loadInitialData(){this.loading=!0;const t=this.hasCustomerToken();let e=t?3:2;
1const n=()=>{e-=1,e<=0&&(this.loading=!1)};this.$api.chat.getPersonaDoctors({success:c=>{const a=Array.isArray(c)?c:c?.list;Array.isArray(a)&&a.length&&(this.doctors=a),n()},error:c=>{if(this.isAuthExpiredError(c)){this.handleAuthExpired();return}n()}}),this.$api.chat.getPersonaTreatmentPlans({success:c=>{const a=Array.isArray(c)?c:c?.list;this.treatmentPlans=Array.isArray(a)?a:[],n()},error:c=>{if(this.isAuthExpiredError(c)){this.handleAuthExpired();return}n()}}),t&&this.$api.chat.getPersonaHistorySummary({success:c=>{this.applyHistorySummary(c),n()},error:c=>{if(this.isAuthExpiredError(c)){this.handleAuthExpired();return}this.historySummary={hasHistory:!1},n()}})},hasCustomerToken(){if(this.$store?.getters?.["chat/GET_USER_INFO"]?.token)return!0;try{return!!JSON.parse(localStorage.getItem("user-info")||"{}")?.token}catch{return!1}},isAuthExpiredError(t){return Y(t)},handleAuthExpired(){this.authExpiredHandled||(this.authExpiredHandled=!0,this.loading=!1,this.$emit("auth-expired"))},clearVisitState(){this.selectedDoctor=null,this.state={hairTypeResult:null,thicknessResult:null,hairTypeFile:null,thicknessFile:null,questionnaireAnswers:{},finalDiagnosis:null,session:null}},applyHistorySummary(t){const e=t||{hasHistory:!1};if(!ke(e)){this.historySummary={hasHistory:!1},this.clearVisitState();return}this.historySummary=e;const n=St(this.historySessionDetail);Object.keys(n).length&&(this.state.questionnaireAnswers={...n}),this.hasVisitHistory&&(this.selectedDoctor=this.historyDoctor)},handleCareRecordDeleted(){if(!this.hasCustomerToken()){this.historySummary={hasHistory:!1},this.clearVisitState(),this.screen="intro";return}this.$api.chat.getPersonaHistorySummary({success:t=>{this.applyHistorySummary(t),this.hasVisitHistory||(this.screen="intro")},error:t=>{if(this.isAuthExpiredError(t)){this.handleAuthExpired();return}this.historySummary={hasHistory:!1},this.clearVisitState(),this.screen="intro"}})},openPersonaHistory(){this.screen="history"},startPersona(){if(this.isRepeatVisit){const t=Tt(this.historyCarePlan?.months||[]);if(!t.canStart){this.visitLockNotice={open:!0,message:t.message};return}this.selectedDoctor=this.historyDoctor,this.screen="hairtype";return}if(!this.doctors.length){this.showActionNotice("ë±ë¡ë AI ìì¬ê° ììµëë¤. ë³ì ê´ë¦¬ììê² ë¬¸ìí´ ì£¼ì¸ì.");return}this.screen="doctors"},closeVisitLockNotice(){this.visitLockNotice={open:!1,message:""}},showActionNotice(t){this.actionNotice={open:!0,message:t}},closeActionNotice(){this.actionNotice={open:!1,message:""}},backFromHairType(){this.screen=this.isRepeatVisit?"intro":"doctors"},selectDoctor(t){if(!this.canChooseDoctor){this.selectedDoctor=this.historyDoctor,this.screen="hairtype";return}this.selectedDoctor=t,this.screen="hairtype"},completeHairType(t){const{sourceFile:e,...n}=t||{};if(this.state.hairTypeFile=e||null,this.state.hairTypeResult=this.isRepeatVisit?fe(this.historySummary,n):n,$(this.activeInitialHairType)){this.screen="thickness";return}if(this.isRepeatVisit){this.saveRepeatCareRecord();return}this.screen="questionnaire"},completeThickness(t){const{sourceFile:e,...n}=t||{};if(this.state.thicknessFile=e||null,this.state.thicknessResult=n,this.isRepeatVisit){this.saveRepeatCareRecord();return}if(this.canSkipQuestionnaire()){this.generateComprehensiveDiagnosis();return}this.screen="questionnaire"},completeQuestionnaire(t){this.state.questionnaireAnswers=this.withQuestionnaireDemographics(t),this.generateComprehensiveDiagnosis()},withQuestionnaireDemographics(t={}){const e={...t||{}};delete e.birthDate,delete e.birth_date,e.gender!=="ì¬ì±"&&(delete e.pregnancyStatus,delete e.pregnancy_status);const c=Pt(e.fullAge??e.full_age??e.age)||e.ageGroup;return{...e,ageGroup:c}},generateComprehensiveDiagnosis(){const t=this.selectedTreatmentPlan();this.loading=!1,this.screen="result-loading",this.$api.chat.generatePersonaComprehensiveDiagnosis({personaAiDoctorIdx:this.selectedDoctor.personaAiDoctorIdx,hairTypeResult:this.state.hairTypeResult,thicknessResult:this.state.thicknessResult,questionnaire:this.state.questionnaireAnswers,treatmentPlanSnapshot:t},{success:e=>{this.state.finalDiagnosis=this.normalizeComprehensiveDiagnosis(e,t),this.screen="result"},error:()=>
1{this.state.finalDiagnosis=this.fallbackComprehensiveDiagnosis(t),this.screen="result"}})},selectedTreatmentPlan(){return Rt(this.treatmentPlans,{hairLossType:this.state.hairTypeResult?.primaryType,gender:this.state.questionnaireAnswers?.gender,ageGroup:this.state.questionnaireAnswers?.ageGroup,pregnancyStatus:wt(this.state.questionnaireAnswers)})},normalizeComprehensiveDiagnosis(t,e){return{primaryType:t?.primaryType||this.state.hairTypeResult?.primaryType||"í모 ì í ë¶ì ìë£",thicknessUm:t?.thicknessUm??this.state.thicknessResult?.thicknessUm??null,doctorFeedback:t?.doctorFeedback||`AI ${this.selectedDoctor.name} ìì¬ê° ìë³ ë³í를 ê³ì íì¸íëë¡ ê¶ê³ íìµëë¤.`,doctorFeedbackSources:t?.doctorFeedbackSources||t?.doctor_feedback_sources||"",tags:Array.isArray(t?.tags)&&t.tags.length?t.tags:this.defaultDiagnosisTags(t),treatmentPlanSnapshot:t?.treatmentPlanSnapshot||e}},defaultDiagnosisTags(t={}){return t?.thicknessUm!=null||this.state.thicknessResult?.thicknessUm!=null?["ì í ë¶ì","ëª¨ë° êµµê¸°","ë¬¸ì§ ë°ì"]:["ì í ë¶ì","ë¬¸ì§ ë°ì"]},fallbackComprehensiveDiagnosis(t){return this.normalizeComprehensiveDiagnosis({},t)},canSkipQuestionnaire(){return Ct(this.historySummary,this.state.questionnaireAnswers)},backFromResult(){this.screen=this.canSkipQuestionnaire()?"thickness":"questionnaire"},completeSessionSave(t){this.state.session=t,this.screen="care"},saveRepeatCareRecord(){const t=this.historyCarePlan?.personaCarePlanIdx;if(!t){this.showActionNotice("ì ì¥í AI ì§ë£ ì¼ì´ íëì ì°¾ì ì ììµëë¤.");return}this.loading=!0;const e={recordDate:new Date().toISOString().slice(0,10),treatmentRecord:{},changeMemo:null,aiFeedback:null,scalpImageFileId:null,thicknessImageFileId:null,hairTypeResult:fe(this.historySummary,this.state.hairTypeResult),thicknessResult:$(this.activeInitialHairType)?this.state.thicknessResult:null,status:"SAVED"},n=new FormData;n.append("request",new Blob([JSON.stringify(e)],{type:"application/json"})),this.state.hairTypeFile&&n.append("scalpImage",this.state.hairTypeFile),this.state.thicknessFile&&$(this.activeInitialHairType)&&n.append("thicknessImage",this.state.thicknessFile),this.$api.chat.savePersonaCareRecord(t,n,{success:c=>{this.loading=!1,this.state.session={...this.historySessionDetail||{},hairTypeResult:e.hairTypeResult,thicknessResult:e.thicknessResult},this.screen="care",this.historySummary={...this.historySummary,latestCarePlan:{...this.historyCarePlan||{},months:[...this.historyCarePlan&&this.historyCarePlan.months||[],c]}}},error:c=>{if(this.loading=!1,this.isAuthExpiredError(c)){this.handleAuthExpired();return}this.showActionNotice("íì¬ ì§ë£ ê¸°ë¡ ì ì¥ì ì¤í¨íìµëë¤. ë¶ì ì´ë¯¸ì§ë¥¼ ë¤ì íì¸í´ 주ì¸ì.")}})},hasUnsavedData(){return!!(this.state.hairTypeResult||this.state.thicknessResult||this.state.finalDiagnosis)},confirmClose(){this.hasUnsavedData()&&this.screen!=="care"&&!window.confirm("ì ì¥ëì§ ìì ì§ë£ ì ë³´ê° ììµëë¤. ë«ì¼ìê² ìµëê¹?")||this.$emit("close")}}},Co={class:"popup-wrap persona-popup-wrap",role:"dialog","aria-modal":"true"},Ro={class:"pop-head persona-pop-head"},wo={class:"title"},Po={class:"persona-pop-body"},To={key:6,class:"persona-step persona-comprehensive-skeleton","aria-label":"AI ì¢
í© ì§ë¨ ìì± ì¤","aria-busy":"true"},So={key:0,class:"persona-loading-overlay"},_o={class:"persona-notice-modal",role:"alertdialog","aria-modal":"true","aria-labelledby":"persona-visit-lock-title"},xo={class:"persona-notice-modal",role:"alertdialog","aria-modal":"true","aria-labelledby":"persona-action-notice-title"};function Fo(t,e,n,c,a,s){const l=We,p=Ge,r=ze,g=Qe,k=Ve,_=He,v=Be;return o(),d("div",Co,[i("div",{class:y(["popup persona-shell",s.shellClass]),style:O(s.shellStyle)},[i("div",Ro,[i("span",wo,[e[10]||(e[10]=i("i",{class:"mdi mdi-robot-outline title-icon","aria-hidden":"true"},null,-1)),P(h(s.shellTitle),1)]),i("button",{type:"button",class:"popup-close persona-close",title:"ë«ê¸°",onClick:e[0]||(e[0]=(...I)=>s.confirmClose&&s.confirmClose(...I))},[M(T,{icon:"mdi:mdi-close"})])]),i("div",Po,[a.screen==="intro"?(o(),m(l,{key:0,doctors:a.doctors,"has-history":s.hasVisitHistory,onOpenHistory:s.openPersonaHistory,onStart:s.startPersona,onSelectDoctor:s.selectDoctor},null,8,["doctors","has-history","onOpenHistory","onStart","onSelectDoctor"])):a.screen==="history"?(o(),m(p,{key:1,doctor:s.historyDoctor,"initial-care-plan":s.historyCarePlan,"session-detail":s.historySessionDetail,title:"ë´ AI ì§ë£ ê¸°ë¡ ê´ë¦¬",subtitle:"ì ì¥ë í차를 ë르면 ì´ì 기ë¡ì íì¸íê³ ì
ë ¥ ì 보를 ìì í ì ììµëë¤.","allow-new-record":!1,onBack:e[1]||(e[1]=I=>a.screen="intro"),onAuthExpired:s.handleAuthExpired,onRecordDeleted:s.handleCareRecordDeleted},null,8,["doctor","initial-care-plan","session-detail","onAuthExpired","onRecordDeleted"])):a.screen==="doctors"?(o(),m(r,{key:2,doctors:a.doctors,onBack:e[2]||(e[2]=I=>a.screen="intro"),onSelectDoctor:s.selectDoctor},null,8,["doctors","onSelectDoctor"])):a.screen==="hairtype"?(o(),m(g,{key:3,doctor:a.selectedDoctor,"repeat-visit":s.isRepeatVisit,"locked-primary-type":s.activeInitialHairType,onBack:s.backFromHairType,onComplete:s.completeHairType},null,8,["doctor","repeat-visit","locked-primary-type","onBack","onComplete"])):a.screen==="thickness"?(o(),m(k,{key:4,doctor:a.selectedDoctor,"skip-questionnaire":s.isRepeatVisit||s.canSkipQuestionnaire(),onBack:e[3]||(e[3]=I=>a.screen="hairtype"),onComplete:s.completeThickness},null,8,["doctor","skip-questionnaire","onComplete"])):a.screen==="questionnaire"?(o(),m(_,{key:5,modelValue:a.state.questionnaireAnswers,"onUpdate:modelValue":e[4]||(e[4]=I=>a.state.questionnaireAnswers=I),doctor:a.selectedDoctor,onBack:e[5]||(e[5]=I=>a.screen="thickness"),onComplete:s.completeQuestionnaire},null,8,["modelValue","doctor","onComplete"])):a.screen==="result-loading"?(o(),d("section",To,e[11]||(e[11]=[G('<div class="persona-comprehe
1nsive-skeleton-head" data-v-04530ef8><span class="persona-comprehensive-skeleton-back" aria-hidden="true" data-v-04530ef8>â¹</span><div data-v-04530ef8><h2 data-v-04530ef8>AI ì¢
í© ì§ë¨</h2><p data-v-04530ef8>ë³ë ¥ ì²ì·¨ ë´ì©ì ì¢
í©í´ 결과를 ìì±íê³ ììµëë¤.</p></div></div><div class="persona-comprehensive-skeleton-scroll" data-v-04530ef8><div class="persona-comprehensive-skeleton-main" data-v-04530ef8><span data-v-04530ef8>AI ì¢
í© ì§ë¨</span><div class="persona-comprehensive-skeleton-title persona-comprehensive-skeleton-pulse" data-v-04530ef8></div><div class="persona-comprehensive-skeleton-line persona-comprehensive-skeleton-line--short persona-comprehensive-skeleton-pulse" data-v-04530ef8></div><div class="persona-comprehensive-skeleton-tags" data-v-04530ef8><i class="persona-comprehensive-skeleton-pulse" data-v-04530ef8></i><i class="persona-comprehensive-skeleton-pulse" data-v-04530ef8></i><i class="persona-comprehensive-skeleton-pulse" data-v-04530ef8></i></div></div><div class="persona-comprehensive-skeleton-card" data-v-04530ef8><h4 data-v-04530ef8>AI ìì¬ ì견</h4><div class="persona-comprehensive-skeleton-line persona-comprehensive-skeleton-line--wide persona-comprehensive-skeleton-pulse" data-v-04530ef8></div><div class="persona-comprehensive-skeleton-line persona-comprehensive-skeleton-pulse" data-v-04530ef8></div><div class="persona-comprehensive-skeleton-line persona-comprehensive-skeleton-line--mid persona-comprehensive-skeleton-pulse" data-v-04530ef8></div></div><div class="persona-comprehensive-skeleton-card" data-v-04530ef8><h4 data-v-04530ef8>ê¶ê³ ì¹ë£ ê³í</h4><div class="persona-comprehensive-skeleton-list" data-v-04530ef8><span class="persona-comprehensive-skeleton-dot persona-comprehensive-skeleton-pulse" data-v-04530ef8></span><div class="persona-comprehensive-skeleton-line persona-comprehensive-skeleton-line--wide persona-comprehensive-skeleton-pulse" data-v-04530ef8></div></div><div class="persona-comprehensive-skeleton-list" data-v-04530ef8><span class="persona-comprehensive-skeleton-dot persona-comprehensive-skeleton-pulse" data-v-04530ef8></span><div class="persona-comprehensive-skeleton-line persona-comprehensive-skeleton-line--mid persona-comprehensive-skeleton-pulse" data-v-04530ef8></div></div><div class="persona-comprehensive-skeleton-list" data-v-04530ef8><span class="persona-comprehensive-skeleton-dot persona-comprehensive-skeleton-pulse" data-v-04530ef8></span><div class="persona-comprehensive-skeleton-line persona-comprehensive-skeleton-pulse" data-v-04530ef8></div></div></div></div><div class="persona-comprehensive-skeleton-action" data-v-04530ef8><div class="persona-comprehensive-skeleton-button persona-comprehensive-skeleton-pulse" data-v-04530ef8></div></div>',3)]))):a.screen==="result"?(o(),m(v,{key:7,doctor:a.selectedDoctor,"hair-type-result":a.state.hairTypeResult,"thickness-result":a.state.thicknessResult,"questionnaire-answers":a.state.questionnaireAnswers,"final-diagnosis":a.state.finalDiagnosis,"treatment-plans":a.treatmentPlans,"is-repeat-visit":s.hasVisitHistory,onBack:s.backFromRe
1sult,onSaved:s.completeSessionSave},null,8,["doctor","hair-type-result","thickness-result","questionnaire-answers","final-diagnosis","treatment-plans","is-repeat-visit","onBack","onSaved"])):a.screen==="care"?(o(),m(p,{key:8,doctor:a.selectedDoctor,"initial-medical-files":s.initialCareImages,"session-detail":a.state.session,"allow-new-record":!1,"open-new-record-on-load":!1,onBack:s.confirmClose,onAuthExpired:s.handleAuthExpired,onRecordDeleted:s.handleCareRecordDeleted},null,8,["doctor","initial-medical-files","session-detail","onBack","onAuthExpired","onRecordDeleted"])):u("",!0)]),a.loading&&a.screen!=="result-loading"?(o(),d("div",So,"ë¶ë¬ì¤ë ì¤...")):u("",!0),a.visitLockNotice.open?(o(),d("div",{key:1,class:"persona-notice-backdrop",onClick:e[7]||(e[7]=D((...I)=>s.closeVisitLockNotice&&s.closeVisitLockNotice(...I),["self"]))},[i("section",_o,[e[12]||(e[12]=i("h2",{id:"persona-visit-lock-title"},"AI ìì¬ ì§ë£ ìë´",-1)),i("p",null,h(a.visitLockNotice.message),1),i("button",{type:"button",class:"persona-primary",onClick:e[6]||(e[6]=(...I)=>s.closeVisitLockNotice&&s.closeVisitLockNotice(...I))},"íì¸")])])):u("",!0),a.actionNotice.open?(o(),d("div",{key:2,class:"persona-notice-backdrop",onClick:e[9]||(e[9]=D((...I)=>s.closeActionNotice&&s.closeActionNotice(...I),["self"]))},[i("section",xo,[e[13]||(e[13]=i("h2",{id:"persona-action-notice-title"},"AI ìì¬ ì§ë£ ìë´",-1)),i("p",null,h(a.actionNotice.message),1),i("button",{type:"button",class:"persona-primary",onClick:e[8]||(e[8]=(...I)=>s.closeActionNotice&&s.closeActionNotice(...I))},"íì¸")])])):u("",!0)],6)])}const Je=x(Do,[["render",Fo],["__scopeId","data-v-04530ef8"]]),Ao={props:{currentPage:{type:[Object,Function],required:!0}},emits:["closePopup"],data(){return{setPage:null,clinicalIdx:null,type:null}},mounted(){this.setPage=this.currentPage},methods:{closePopup(){this.$emit("closePopup","clincal")},setMovePage({page:t,id:e,type:n}){e&&(this.clinicalIdx=e),n&&(this.type=n),this.setPage=ue(t)}}},Eo={class:"popup-wrap"},No={class:"popup w1000"};function Oo(t,e,n,c,a,s){return o(),d("div",Eo,[i("div",No,[i("button",{type:"button",class:"popup-close",onClick:e[0]||(e[0]=l=>s.closePopup())},[M(T,{icon:"mdi:mdi-close"})]),(o(),m(Nt(a.setPage),{"clinical-idx":a.clinicalIdx,type:a.type,onMovePage:s.setMovePage},null,40,["clinical-idx","type","onMovePage"]))])])}const Xe=x(Ao,[["render",Oo]]),Lo={emits:["open-predict","open-hair-count","open-check-login","open-self-hairLoss","open-hospital-map","open-product-list","open-hair-thick-status","open-hair-loss-blog","open-persona-workflow","open-daily-care"],data(){return{userType:0,loginFlag:!1,isMobile:!1,hasMobileCarouselOverflow:!1,onBoardBtn:[{id:"btn_07",text:"AI ìì¬ ì§ë£",type:[4],icon:"mdi mdi-doctor",tooltip:"AI ìì¬ ì§ë£",img:"/images/buttons/persona.png",info:"AI ìì¬ ì§ë£",callback:()=>{this.loginFlag?this.$emit("open-persona-workflow"):this.$emit("open-check-login")}},{id:"btn_08",text:"ë°ì¼ë¦¬ ì¼ì´",type:[4],icon:"mdi mdi-calendar-check",tooltip:"ë°ì¼ë¦¬ ì¼ì´",img:"/images/buttons/dailycare.png",info:"ë°ì¼ë¦¬ ì¼ì´",callback:()=>{this.loginFlag?this.$emit("open-daily-care"):this.$emit("open-check-login")}},{id:"btn_02",text:"ìì , ì¹ë£ í ë´ ëª¨ìµ",type:[4],icon:"mdi-account-box-multiple-outline",tooltip:"ìì (ì¹ë£)í ë³íë 모ìµì 미리 íì¸í ì ììµëë¤.",img:"/images/buttons/surgery.png",info:"ìì (ì¹ë£)í ë´ ëª¨ìµ ë¯¸ë¦¬ë³´ê¸°",callback:()=>{this.loginFlag?this.$emit("open-predict"):this.$emit("open-check-login")}},{id:"btn_04",text:"ì£¼ë³ ë³ì ì¶ì²",type:[4],icon:"mdi mdi-hospital-marker",tooltip:"íì¬ ìì¹ë¥¼ 기ì¤ì¼ë¡ ê°ê¹ì´ í모 ë³ìì ì¶ì²í´ëë ¤ì.",img:"/images/buttons/hospital.png",info:"ê°ê¹ì´ í모 ë³ì ê²ì",callback:()=>{this.$emit("open-hospital-map")}},{id:"btn_06",text:"í모 ë¸ë¡ê·¸",type:[4],icon:"mdi mdi-store-plus",tooltip:"í모 ê´ë ¨ ììì ì
ë°ì´í¸í©ëë¤.",img:"/images/buttons/blog.png",info:"í모 ë¸ë¡ê·¸",callback:()=>{this.loginFlag?this.$emit("open-hair-loss-blog"):this.$emit("open-check-login")}}
1,{id:"btn_05",text:"í모 ì í ì¶ì²",type:[4],icon:"mdi mdi-store-plus",tooltip:"í모 ê´ë¦¬ ì íì ì¶ì²í´ëë ¤ì.",img:"/images/buttons/product.png",info:"í모 ê´ë¦¬ ì í ì¶ì²",callback:()=>{this.$emit("open-product-list")}}]}},computed:{filteredOnboardBtns(){return this.onBoardBtn.filter(t=>t.type.indexOf(this.userType)>-1)},userInfo(){return this.$__GET_USER_INFO}},watch:{userInfo(t){this.loginFlag=this.hasValidLogin(t)}},updated(){this.$nextTick(this.updateMobileCarouselOverflow)},mounted(){this.loginFlag=this.hasValidLogin(this.getLoginInfo()),this.userType=4,this.checkIsMobile(),window.addEventListener("resize",this.checkIsMobile)},methods:{hasValidLogin(t){return!!t?.token},checkIsMobile(){this.isMobile=window.innerWidth<768,this.$nextTick(this.updateMobileCarouselOverflow)},updateMobileCarouselOverflow(){const t=this.$refs.mobileCarousel;this.hasMobileCarouselOverflow=!!(this.isMobile&&t&&t.scrollWidth>t.clientWidth)},scrollMobileCarousel(t){const e=this.$refs.mobileCarousel;e&&e.scrollBy({left:t*e.clientWidth*.8,behavior:"smooth"})}},beforeUnmount(){window.removeEventListener("resize",this.checkIsMobile)}},qo={class:"on-board"},Uo={key:0,class:"welcome-mobileCarousel"},Bo={ref:"mobileCarousel",class:"welcome-mobileList"},Ho=["onClick"],Vo=["title"],Qo={key:1,class:"welcome-list"},Ko=["onClick"],jo=["title"],zo=["src"];function Yo(t,e,n,c,a,s){return o(),d("div",qo,[e[4]||(e[4]=i("div",{class:"welcome-desc"},[P(" ë¹ì ì 머리카ë½ì´ ë¹ ì§ë ì´ì ?"),i("br"),P(" í¹ì ëë í모ì¼ê¹ ê±±ì ëìëì?"),i("br"),i("p",null,[i("span",{class:"point1"},"MedAlo"),P("ë¡ ë¨¼ì íì¸í´ë³´ì¸ì."),i("br")]),i("p",{class:"noticeInfo"},"MedAloë ìíì ì§ë¨ ëë ì¹ë£ 목ì ì ìë¹ì¤ê° ìëë©°, í모 ê´ë ¨ ì 보를 ì ê³µí©ëë¤.")],-1)),a.isMobile?(o(),d("div",Uo,[a.hasMobileCarouselOverflow?(o(),d("button",{key:0,type:"button",class:"welcome-mobileCarousel__arrow welcome-mobileCarousel__arrow--prev","aria-label":"ì´ì ë²í¼ 보기",onClick:e[0]||(e[0]=l=>s.scrollMobileCarousel(-1))},e[2]||(e[2]=[i("i",{class:"mdi mdi-chevron-left"},null,-1)]))):u("",!0),i("ul",Bo,[(o(!0),d(C,null,S(s.filteredOnboardBtns,l=>(o(),d("li",{key:l.id,onClick:p=>l.callback()},[i("button",{type:"button",class:y(["btn-welcome",[l.id,"group"]]),title:l.tooltip,style:O({backgroundImage:`url(${l.img})`})},null,14,Vo),i("span",{class:y(["text",`text-${l.id}`])},h(l.text),3)],8,Ho))),128))],512),a.hasMobileCarouselOverflow?(o(),d("button",{key:1,type:"button",class:"welcome-mobileCarousel__arrow welcome-mobileCarousel__arrow--next","aria-label":"ë¤ì ë²í¼ 보기",onClick:e[1]||(e[1]=l=>s.scrollMobileCarousel(1))},e[3]||(e[3]=[i("i",{class:"mdi mdi-chevron-right"},null,-1)]))):u("",!0)])):(o(),d("ul",Qo,[(o(!0),d(C,null,S(s.filteredOnboardBtns,l=>(o(),d("li",{key:l.id,onClick:p=>l.callback()},[i("button",{type:"button",class:y(["btn-welcome",[l.id,"group"]]),title:l.tooltip},[i("img",{src:l.img,alt:"buttonIcon",class:y(["btnImage",`btnImage-${l.id}`])},null,10,zo)],10,jo),i("span",{class:y(["text",`text-${l.id}`])},h(l.text),3)],8,Ko))),128))]))])}const Ze=x(Lo,[["render",Yo]]),Go="/images/bulletin.png",Wo="/images/friendIcon.png",Jo="/images/userIcon.png",Xo={props:{loginName:{type:String,required:!1},rewardBadgeCnt:{type:Number,default:0},initialPopup:{type:String,default:null},initialIdx:{type:Number,default:null}},components:{PopMyAccountMgmt:Qt,PopMyRecommendCode:Kt,PopNotice:jt,PopEvent:Yt,PopEventReward:Gt,PopHairLossNews:Jt},emits:["openPop","closePop","open-lite-login","refresh-reward-badge"],data(){return{userName:null,name:null,fontSize:"medium",theme:"light",userType:0,myaccountmgmtFlag:!1,myrecommendCodeFlag:!1,noticeFlag:!1,eventFlag:!1,eventRewardFlag:!1,hairLossNewsFlag:!1}},computed:{safeLoginName(){return console.log("setting-loginName-props:",this.loginName),this.loginName||""}},mounted(){this.fontSize=this.getUserFont()||"medium",this.theme=this.getUserTheme()||"light",this.userType=this.$__GET_USER_INFO.groupIdx,this.initialPopup==="couponbook"?this.eventRewardFlag=!0:this.initialPopup==="notice"?this.noticeFlag=!0:this.initialPopup==="event"&&(this.eventFlag=!0)},methods:{openLoginPop(){this.$emit("open-lite-login")},setLogout(){confirm("ë¡ê·¸ìì íìê² ìµëê¹?")&&(this.$__SET_USER_INFO({token:null}),this.removeLoginInfo(),sessionStorage.removeItem("event-popup-shown"),this.setPopupClose(),this.$router.go(0))},setPopupClose(){this.$emit("closePop",!1)},setFont(t){switch(this.setUserFont(t),t){case"small":this.fontSize="small";break;case"big":this.fontSize="big";break;default:this.fontSize="medium";break}document.querySelector("html").setAttribute("data-font-size",this.fontSize)},setTheme(t){switch(this.setUserTheme(t),t){case"dark":this.theme="dark";break;default:this.theme="light";break}document.body.className=this.theme},myAccountPop(){this.myaccountmgmtFlag=!0},closeMyAccountPop(){this.myaccountmgmtFlag=!1},myRecommendCodePop(){this.myrecommendCodeFlag=!0},closeMyRecommendCodePop(){this.myrecommendCodeFlag=!1},noticePop(){this.noticeFlag=!0},closeNoticePop(){this.noticeFlag=!1},eventPop(){this.eventFlag=!0},closeEventPop(){this.eventFlag=!1},eventRewardPop(){this.eventRewardFlag=!0},closeEventRewardPop(){this.eventRewardFlag=!1,this.$emit("refresh-reward-badge")},hairLossNewsPop(){this.hairLossNewsFlag=!0},closeHairLossNewsPop(){this.hairLossNewsFlag=!1}}},Zo={class:"chat-setting"},$o={class:"setting-wrap"},el={class:"setting-top"},tl={class:"setting-top-info"},sl={class:"chat-user"},il={class:"setting-content"},al={key:0,class:"setting-box"},nl={class:"setting-box-categories"},rl={key:0,class:"reward-badge"},ol={class:"setting-box"},ll={class:"setting-box-tit"},dl={key:1,class:"setting-box"};function cl(t,e,n,c,a,s){const l=R("PopMyAccountMgmt"),p=R("PopMyRecommendCode"),r=R("PopNotice"),g=R("PopEvent"),k=R("PopEventReward"),_=R("PopHairLossNews");return o(),d("div",Zo,[i("div",{class:"chat-setting__bg",onClick:e[0]||(e[0]=v=>s.setPopupClose())}),i("div",$o,[i("div",el,[i("div",tl,[i("span",sl,h(s.safeLoginName?s.safeLoginName+"ë íìí©ëë¤.":""),1),s.safeLoginName?(o(),d("button",{key:0,t
1ype:"button",class:"btn-line btn-line-xs",onClick:e[1]||(e[1]=v=>s.setLogout())}," ë¡ê·¸ìì ")):(o(),d("button",{key:1,type:"button",class:"btn-line btn-line-xs",onClick:e[2]||(e[2]=v=>s.openLoginPop())}," ë¡ê·¸ì¸ "))]),i("button",{type:"button",class:"btn-close",title:"ì°½ë«ê¸°",onClick:e[3]||(e[3]=v=>s.setPopupClose())},[M(T,{icon:"mdi:mdi-close"})])]),i("div",il,[s.safeLoginName?(o(),d("div",al,[e[20]||(e[20]=i("div",{class:"setting-box-tit arrayCenter"},[i("img",{src:Go,alt:"bulletinBoardIcon",class:"userIcon"}),i("span",{class:"txt"},"ê²ìí")],-1)),i("ul",nl,[i("li",null,[i("button",{type:"button",class:"clickBtn",onClick:e[4]||(e[4]=(...v)=>s.noticePop&&s.noticePop(...v))},e[14]||(e[14]=[i("img",{src:zt,alt:"noticeIcon",class:"userIcon"},null,-1),i("span",null,"ê³µì§ì¬í",-1)]))]),i("li",null,[i("button",{type:"button",class:"clickBtn",onClick:e[5]||(e[5]=(...v)=>s.eventPop&&s.eventPop(...v))},e[15]||(e[15]=[i("img",{src:Zt,alt:"eventIcon",class:"userIcon"},null,-1),i("span",null,"ì´ë²¤í¸",-1)]))]),i("li",null,[i("button",{type:"button",class:"clickBtn reward-menu-btn",onClick:e[6]||(e[6]=(...v)=>s.eventRewardPop&&s.eventRewardPop(...v))},[e[16]||(e[16]=i("img",{src:Wt,alt:"couponIcon",class:"userIcon"},null,-1)),e[17]||(e[17]=i("span",null,"ì¿ í°í¨",-1)),n.rewardBadgeCnt>0?(o(),d("span",rl,h(n.rewardBadgeCnt),1)):u("",!0)])]),i("li",null,[i("button",{type:"button",class:"clickBtn",onClick:e[7]||(e[7]=(...v)=>s.hairLossNewsPop&&s.hairLossNewsPop(...v))},e[18]||(e[18]=[i("img",{src:Xt,alt:"newsIcon",class:"userIcon"},null,-1),i("span",null,"í모 ë´ì¤",-1)]))]),i("li",null,[i("button",{type:"button",class:"clickBtn",onClick:e[8]||(e[8]=(...v)=>s.myRecommendCodePop&&s.myRecommendCodePop(...v))},e[19]||(e[19]=[i("img",{src:Wo,alt:"friendIcon",class:"userIcon"},null,-1),i("span",null,"ì¹êµ¬ ì¶ì²",-1)]))])])])):u("",!0),i("div",ol,[i("div",ll,[M(T,{icon:"mdi:mdi-format-size"}),e[21]||(e[21]=i("span",{class:"txt"},"ê¸ì í¬ê¸° ì¡°ì ",-1))]),M(qt,{modelValue:a.fontSize,"onUpdate:modelValue":e[12]||(e[12]=v=>a.fontSize=v),class:"setting-box-cont"},{default:pe(()=>[M(ce,{color:"primary",label:"ìê²",value:"small",onChange:e[9]||(e[9]=v=>s.setFont("small"))}),M(ce,{color:"primary",label:"ì¤ê°",value:"medium",checked:"",onChange:e[10]||(e[10]=v=>s.setFont("medium"))}),M(ce,{color:"primary",label:"í¬ê²",value:"big",onChange:e[11]||(e[11]=v=>s.setFont("big"))})]),_:1},8,["modelValue"])]),s.safeLoginName?(o(),d("div",dl,[i("button",{type:"button",class:"setting-box-tit type2 arrayCenter",onClick:e[13]||(e[13]=(...v)=>s.myAccountPop&&s.myAccountPop(...v))},e[22]||(e[22]=[i("img",{src:Jo,alt:"userIcon",class:"userIcon"},null,-1),i("span",{class:"txt"},"ë´ ì ë³´ ê´ë¦¬",-1)]))])):u("",!0),e[23]||(e[23]=i("div",{class:"policy-links",style:{padding:"5px"}},[i("a",{href:"/privacyPolicy",target:"blank"},"ê°ì¸ì ë³´ì²ë¦¬ë°©ì¹¨"),i("span",{class:"separator"}," | "),i("a",{href:"/termsOfService",target:"blank"},"ìë¹ì¤ ì´ì©ì½ê´")],-1))])]),a.myaccountmgmtFlag?(o(),m(l,{key:0,onClosePopup:s.closeMyAccountPop},null,8,["onClosePopup"])):u("",!0),a.myrecommendCodeFlag?(o(),m(p,{key:1,onClosePopup:s.closeMyRecommendCodePop},null,8,["onClosePopup"])):u("",!0),a.noticeFlag?(o(),m(r,{key:2,"initial-idx":n.initialPopup==="notice"?n.initialIdx:null,onClosePopup:s.closeNoticePop},null,8,["initial-idx","onClosePopup"])):u("",!0),a.eventFlag?(o(),m(g,{key:3,"initial-idx":n.initialPopup==="event"?n.initialIdx:null,onClosePopup:s.closeEventPop},null,8,["initial-idx","onClosePopup"])):u("",!0),a.eventRewardFlag?(o(),m(k,{key:4,onClosePopup:s.closeEventRewardPop},null,8,["onClosePopup"])):u("",!0),a.hairLossNewsFlag?(o(),m(_,{key:5,onClosePopup:s.closeHairLossNewsPop},null,8,["onClosePopup"])):u("",!0)])}const $e=x(Xo,[["render",cl],["__scopeId","data-v-f5810a20"]]),ul={props:{userFirstChar:{type:String,required:!0},rewardBadgeCnt:{type:Number,default:0}},emits:["reset-chat","toggle-setting"],methods:{resetChat(){this.$emit("reset-chat")},toggleSetting(){this.$emit("toggle-setting",!0)}}},hl={class:"chat-info"},pl={class:"chat-title"},ml={class:"chat-util"},gl={key:0,class:"reward-alert-dot","aria-label":"ë°ì ì ìë ë³´ì ìì"};function yl(t,e,n,c,a,s){return o(),d("div",hl,[i("h2",pl,[i("button",{type:"button",onClick:e[0]||(e[0]=l=>s.resetChat())},e[2]||(e[2]=[i("span",{class:"s-logo"},[i("em",{class:"blind"},"MEDALO")],-1),i("span",{class:"txt addTitle"},"ì¸ê³µì§ë¥ê¸°ë° í모ìê°ë¶ì",-1)]))]),i("div",ml,[i("button",{type:"button",class:"btn-set btn-menu reward-alert-anchor",title:"ì¤ì ",onClick:e[1]||(e[1]=l=>s.toggleSetting())},[M(T,{icon:"mdi-menu"}),n.rewardBadgeCnt>0?(o(),d("span",gl,"!")):u("",!0)])])])}const et=x(ul,[["render",yl],["__scopeId","data-v-b7791ec5"]]);function Pe(t){return!t||!t.token?null:t.name||null}function fl(t){const e=String(t||"").replace(/-/g,"+").replace(/_/g,"/"),n=e+"=".repeat((4-e.length%4)%4);if(typeof atob=="function")return atob(n);const c=globalThis.Buffer;return c?c.from(n,"base64").toString("binary"):""}function kl(t){if(typeof t!="string")return null;const e=t.split(".");if(e.length<2)return null;try{const n=JSON.parse(decodeURIComponent(fl(e[1]).split("").map(c=>"%"+c.charCodeAt(0).toString(16).padStart(2,"0")).join("")));return Number.isFinite(n?.exp)?n.exp*1e3:null}catch{return null}}function vl(t,e=Date.now(),n=0){const c=kl(t);return c===null?!1:c-n<=e}function bl(t,e=Date.now()){return!t||typeof t!="object"||!t.token?!1:!vl(t.token,e)}const Te="https://www.medalo.ai/backend",Il={components:{PopSearch:as,PopThesisList:hs,PopChangeTell:us,ChatHeader:et,ChatOnBoard:Ze,ChatMessage:Ae,ChatFooter:Ee,Setting:$e,PopReservation:es,PopMediInfo:ts,PopupPage:Xe,PopHairThick:ss,PopThesis:is,PopPredict:ns,PopPredictHistory:rs,PopVideo:os,PopEvaluation:ls,PopReport:ds,LoadingPage:Se,PopReservationStatus:ps,PopHairCount:ms,PopCheckLogin:gs,PopAloLiteLogin:ys,PopHospitalInfo:fs,PopHospitalMap:ks,PopHairTickCount:vs,PopProductList:bs,PopHairLossBlog:Is,PopEventModal:Ms,PersonaWorkflow:Je,DailyCare:Ue},data(){return{username:null,userFirstChar:"",setFlag:!1,eventModalFlag:!1,rewardBadgeCnt:0,initialPopup:null,initialId
1x:null,message:[],userMessage:"",popupFlag:{reservation:!1,mediinfo:!1,clincal:!1,counsel:!1,hospital:!1,theisList:!1,hair:!1,search:!1,predict:!1,predictHistory:!1,video:!1,evaluation:!1,report:!1,changeTell:!1,reservationStatus:!1,hairCount:!1,checkLogin:!1,aloLiteLoginFlag:!1,hospitalMap:!1,hairTickCount:!1,productList:!1,hairlossBlog:!1},selectedComponent:ue(cs),selectedFile:null,chatIdx:null,chatEvaluation:!1,chatReport:!1,faqFlag:!1,predictionFlag:!1,predictImgUrl:null,predictChatHistoryIdx:null,beforeImgUrl:null,mergeType:null,disabledFlag:!1,focusFlag:!1,loadingPageFlag:!1,personaWorkflowFlag:!1,dailyCareFlag:!1,selfHairLossFlag:!1,hairThickness:{beforeHairThickness:0,afterHairThickness:0},afterValue:null,theisTitle:"ë
¼ë¬¸ê²ì",theisUrl:"/files/Steroid 5a-Reductase Deficiency in Man An InheritedForm of Male Pseudohermaphroditism.pdf",relatedQuestions:[],questionTemplates:{1:{title:"Q2. ì°ë ¹ë를 ì íí´ì£¼ì¸ì",buttons:[{text:"10ë",type:"chat",args:"10",questionIdx:2},{text:"20ë",type:"chat",args:"20",questionIdx:2},{text:"30ë",type:"chat",args:"30",questionIdx:2},{text:"40ëì´ì",type:"chat",args:"40",questionIdx:2}]},2:{title:"Q3. ì¦ìì ì íí´ì£¼ì¸ì",buttons:[{text:"ìë¨¸ë¦¬ê° ì ì ëì´ì§ê³ 모ë°ì´ ê°ëì´ì¡ì´ì",type:"chat",args:"1",questionIdx:3},{text:"ê°ì기 ë¨¸ë¦¬ê° ë§ì´ ë¹ ì§ê¸° ììíì´ì",type:"chat",args:"2",questionIdx:3},{text:"머리ì ëê·¸ëê² ë¹ ì§ ë¶ë¶ì´ ìì´ì",type:"chat",args:"3",questionIdx:3},{text:"ëí¼ì ì¼ì¦ì´ë ìì²ê° ìê³ í¸ì´ ìëì",type:"chat",args:"4",questionIdx:3}]},3:{title:"Q4. ê°ì¡± ì¤ì í모를 겪ì ë¶ì´ ìì¼ì ê°ì?",buttons:[{text:"ì",type:"chat",args:"Y",questionIdx:4},{text:"ìëì¤",type:"chat",args:"N",questionIdx:4}]}},questionnaire:[],againDiagnosisFlag:!1}},computed:{loginInfo(){return this.$store.getters["chat/GET_USER_INFO"]},isMobile(){return/Mobi|Android|iPhone|iPad|iPod/i.test(navigator.userAgent)}},watch:{loginInfo:{handler(t){this.username=Pe(t)},deep:!0}},mounted(){this.setFirstChar(),this.chatIdx=this.setChatIdx(),this.setRelatedQuestions(),this.preventNavigationEvet(),this.openEventModal(),this.fetchRewardBadge(),this.handleRewardDeepLink()},beforeUnmount(){this._chatAbortController?.abort()},methods:{fetchRewardBadge(){if(!this.username)return;const t={success:e=>{e.code==="S"&&(this.rewardBadgeCnt=e.badgeCnt||0)},error:()=>{}};this.$api.chat.getEventRewardBadgeCount(t)},handleRewardDeepLink(){const t=this.$route?this.$route.query:{};if(t){if(t.couponbook==="Y")this.username&&(this.initialPopup="couponbook",this.setFlag=!0);else if(t.notice){const e=parseInt(t.notice,10);isNaN(e)||(this.initialPopup="notice",this.initialIdx=e,this.setFlag=!0)}else if(t.event){const e=parseInt(t.event,10);isNaN(e)||(this.initialPopup="event",this.initialIdx=e,this.setFlag=!0)}else return;this.$router.replace({query:{}}).catch(()=>{})}},setFirstChar(){const t=this.getLoginInfo();if(!t){this.username=null;return}if(!bl(t)){Lt({pathname:window.location.pathname,storage:localStorage,store:this.$store}),this.username=null;return}this.$__SET_USER_INFO(t),this.username=Pe(t)},openEventModal(){this.username&&sessionStorage.getItem("event-popup-shown")!=="Y"&&(this.eventModalFlag=!0)},toggleSetting(t){this.setFlag=t,t||(this.initialPopup=null,this.initialIdx=null,this.fetchRewardBadge())},applyBold(t){return t?$t(t,{expertSource:"MedAlo ì문ë¥í° ìì¥"}).replace(/â
[ \t]*\*\*(.+?)\*\*/g,'â
<strong class="msg-title">$1</strong>').replace(/ð[ \t]*\*\*(.+?)\*\*/g,'ð <strong class="msg-subtitle">$1</strong>').replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>"):""},async fetchProChat(){if(!this.userMessage||this.userMessage.trim()===""||this.disabledFlag)return;this._chatAbortController?.abort();const t=new AbortController;this._chatAbortController=t,this.chatEvaluation=!1,this.chatReport=!1,this.disabledFlag=!0,this.focusFlag=!1;const e={userQuestion:this.userMessage,chatIdx:this.chatIdx,streamProtocol:"events-v1"};this.message.push({text:this.userMessage,type:"client"}),this.userMessage=null,this.$nextTick(this.scrollToBottom);const n=this.message.length;this.message.push({text:"",type:"provider",loading:!0,progress:{stage:"understanding",startedAt:Date.now()}});const c=this.$store.getters["chat/GET_USER_INFO"]?.token,a={"Content-Type":"application/json",...c?{Authorization:`Bearer ${c}`}:{}};let s=!1,l=()=>{};try{const p=await fetch(Te+"/api/chat/pro_chat",{method:"POST",headers:a,body:JSON.stringify(e),signal:t.signal});if(!p.ok)throw this.message[n].loading=!1,new Error(`ë¤í¸ìí¬ ìë¬: ${p.status}`);const r=p.body.getReader(),g=new TextDecoder("utf-8"),k=this.message[n];let _="",v=null,I=null,U=!1;const L=()=>
1{if(!_.trim())throw new Error("Empty answer");const b=_.replace(/\n|<\/?br\s*\/?>/gi,"<br>").split("##########");I=[n];const N=[],A=b[0]||"",K=this.applyBold(A),W=this.linkify(K),le=/<br\s*\/?>/i.test(A);if(W!==A||K!==A||le?this.message[n]={text:null,htmlYn:!0,html:W,type:"provider",loading:!1,relatedQuestions:N}:this.message[n]={text:A,type:"provider",loading:!1,relatedQuestions:N},b[1]){N&&I.push(n+1);const H=b[1],J=this.applyBold(H),X=this.linkify(J),de=/<br\s*\/?>/i.test(H);X!==H||J!==H||de?this.message[n+1]={text:null,htmlYn:!0,html:X,type:"provider",loading:!1,relatedQuestions:N}:this.message[n+1]={text:H,type:"provider",loading:!1,relatedQuestions:N}}this.chatEvaluation=!0,this.chatReport=!0,this.disabledFlag=!1,this.isMobile||(this.focusFlag=!0),this.$nextTick(this.scrollToBottom)};l=()=>{if(U||!I)return;U=!0;const F=Ut({generated:v,fallback:this.relatedQuestions,asked:e.userQuestion});for(const b of I)this.message[b]&&(this.message[b].relatedQuestions=F)};const E=Bt({onToken:F=>{_+=F},onStatus:F=>{Ht[F]&&(k.progress.stage=F)},onDone:()=>{s||(L(),s=!0,l())},onRelated:F=>{v=F}});try{for(;;){const{value:F,done:b}=await r.read();if(b)break;const N=_.length;if(E.push(g.decode(F,{stream:!0})),_.length!==N){const A=_.replace(/\n|<\/?br\s*\/?>/gi,"<br>");k.htmlYn=!0,k.html=this.linkify(this.applyBold(A)),k.text=A,k.loading=!1,this.$nextTick(this.scrollToBottom)}}E.push(g.decode()),E.finish()}finally{r.releaseLock()}s||(L(),s=!0),l()}catch(p){if(p.name==="AbortError"||s)return;this.message[n]={text:"ì¤ë¥ê° ë°ìíìµëë¤. ë¤ì ìëí´ì£¼ì¸ì.",type:"provider",loading:!1},this.$nextTick(this.scrollToBottom),this.disabledFlag=!1}finally{this._chatAbortController===t&&(this._chatAbortController=null)}},scrollToBottom(){this.$nextTick(()=>{const t=this.$refs.chatBody;t&&(t.scrollTop=t.scrollHeight)})},scrollToTop(){this.$nextTick(()=>{const t=this.$refs.chatBody;t&&(t.scrollTop=0)})},resetChat(){this.message=[],this.chatEvaluation=!1,this.chatReport=!1,this.chatIdx=this.setChatIdx(),this.$nextTick(()=>{this.scrollToTop()})},openReservation(){this.popupFlag.reservation=!0},openReservationStatus(){this.popupFlag.reservationStatus=!0},openMediInfo(){this.popupFlag.mediinfo=!0},openSearch(){this.popupFlag.search=!0},openCounsel(){const t={text:"ì¼êµ´ê³¼ ëí¼ê° ì ë³´ì´ëë¡ ì ë©´ ì¬ì§ì ì°ì´ 주ì í, ì´¬ìíì ì´ë¯¸ì§ë¥¼ íì¼ë¡ 첨ë¶í´ 주ì¸ì.",img:"/images/img-ai-front.png"};this.message.push({text:t.text,type:"provider",img:t.img,selfDiagnosis:!0}),setTimeout(()=>{this.$nextTick(this.scrollToBottom)},100)},openHospital(){this.message.push({text:"ë³ì ì ë³´",type:"client"}),this.message.push({text:`ë§¥ì¤ì°í´ë¦¬ëì ì´ì ìê°, ìì¹, 주차 ìë´ ë± 2ë³ì ì 보를 íì¸íì¤ ì ììµëë¤. 3ê¶ê¸íì ë´ì©ì ì±í ì°½ì ì ë ¥í´ì£¼ì¸ì.`,type:"provider"}),this.$nextTick(this.scrollToBottom)},openVideo(){this.popupFlag.video=!0},openPopup(t){console.log("page",t),this.selectedComponent=ue(t),this.popupFlag.clincal=!0},openHairThick(){this.popupFlag.hair=!0},openHairCount(){this.popupFlag.hairCount=!0},openThesisList(){this.popupFlag.theisList=!0},openEvaluation(){this.popupFlag.evaluation=!0},openReport(){this.popupFlag.report=!0},openChangeTell(){this.popupFlag.changeTell=!0},openCheckLogin(){this.popupFlag.checkLogin=!0},isAuthExpiredError(t){return Y(t)},handleLoginRequiredAuthExpired(){this.personaWorkflowFlag=!1,this.dailyCareFlag=!1,this.popupFlag.predict=!1,this.popupFlag.predictHistory=!1,this.loadingPageFlag=!1,this.openCheckLogin()},handlePersonaWorkflowAuthExpired(){this.handleLoginRequiredAuthExpired()},handlePredictAuthExpired(){this.handleLoginRequiredAuthExpired()},openAloLiteLogin(){this.popupFlag.aloLiteLoginFlag=!0},openHospitalMap(){this.popupFlag.hospitalMap=!0},openHariTickCount(){this.popupFlag.hairTickCount=!0},openProductList(){this.popupFlag.productList=!0},openHairLossBlog(){this.popupFlag.hairlossBlog=!0},openPersonaWorkflow(){this.personaWorkflowFlag=!0},openDailyCare(){this.dailyCareFlag=!0},handleDailyCareAuthExpired(){this.handleLoginRequiredAuthExpired()},closePopup(t){if(t==="reportFinish"){this.popupFlag.report=!1;const e=this.message.length;if(e){const n=this.message[e-1];(n.againDiagnosisFlag===!0||n.title&&n.title.includes("ì´ë¯¸ì§ì ë°ë¼ ê²°ê³¼ê° ë¬ë¼ì§ ì ììµëë¤"))&&e>=3?this.message.splice(e-3,2):this.message.splice(e-1,1),this.message.push({text:"ë©ì¸ì§ê° ìì ëììµëë¤.",type:"provider"})}this.chatEvaluation=!1,this.chatReport=!1}this.popupFlag[t]=!1},inputFaq(t){this.userMessage=t,this.fetchProChat()},inputFuture(t,e){if(this.message.push({text:t,type:"client"}),e==="history"){this.popupFlag.predictHistory=!0,this.$nextTick(this.scrollToBottom);return}const n={firstText:"ì머리(í¤ì´ë¼ì¸)ì íì¬ ìíê° ì ë³´ì´ëë¡ ì¬ì§ì ì ë¡ëí´ ì£¼ì¸ì.",strongText:"ì ë©´ìì ì´ë§ ë¼ì¸ì´ ì ë³´ì´ëë¡, ìì ì´ë¯¸ì§ì ê°ì ê°ëë¡ ì´¬ìí´ ì£¼ì¸ì.",lastText:"ë¤ë¥¸ ê°ëë 구ëë¡ ì°ì ê²½ì°, ì측 ê²°ê³¼ê° ì¤ì ì ë¬ë¼ì§ ì ììµëë¤.",img:"/images/img-ai-front.png"};e==="therapy"&&(n.firstText="ì ì리ì íì¬ ìíê° ì ë³´ì´ëë¡ ì¬ì§ì ì ë¡ëí´ ì£¼ì¸ì.",n.strongText="머리 ììì ì ì리 ì¤ì¬ì´ ì ë³´ì´ëë¡, ìì ì´ë¯¸ì§ì ê°ì ê°ëë¡ ì´¬ìí´ ì£¼ì¸ì.",n.lastText="ë¤ë¥¸ ê°ëë 구ëë¡ ì°ì ê²½ì°, ì측 ê²°ê³¼ê° ì¤ì ì ë¬ë¼ì§ ì ììµëë¤.",n.img="/images/img-ai-top.png"),this.message.push({emphasizedText:!0,firstText:n.firstText,strongText:n.strongText,lastText:n.lastText,type:"provider",img:n.img,file:!0,args:e}),setTimeout(()=>{this.$nextTick(this.scrollToBottom)},100)},selfHairLossQuestions(t){this.selfHairLossFlag=!0;const e=this.questionTemplates[t]||{text:"í´ë¹ ì§ë¬¸ì´ ì¡´ì¬íì§ ììµëë¤."};this.message.push({...e,type:"provider",selfHairLossFlag:!0,loading:!1}),setTimeout(()=>{this.$nextTick(this.scrollToBottom)},100)},inputSelfHairLoss(t,e,n){this.chatEvaluation=!1,this.chatReport=!1;const c={strongText:"íëª¨ê° ìì¬ëë ë¶ìë ê°ê¹ì´ 거리ìì ì ëª íê² ì´¬ìí´ ì£¼ì¸ì.",lastText:"ì´¬ìí ë 머리카ë½ì´ ë¶ì를 ê°ë¦¬ì§ ìëë¡ ì£¼ìí´ ì£¼ì¸ì.",img:"/images/img-dianosis.png"};this.questionnaire.push(t),this.message.push({text:t,type:"client"}),n===1?this.selfHairLossQuestions(n):n===2?this.selfHairLossQuestions(n):n===3?this.selfHairLossQuestions(n):this.message.push({emphasizedText:!0,strongText:c.strongText,lastText:c.lastText,type:"provider",img:c.img,selfDiagnosis:!0,args:"diagnosis"}),setTimeout(()=>{this.$nextTick(this.scrollToBottom)},100)},addMergeFile(t="therapy"){this.mergeType=t,this.$refs.mergeImg.click()},addDianosisFile(){if(console.log("addDianosisFile-questionnairesì 무",this.questionnaire.length),this.questionnaire.length<4){alert("íì¼ì
3 첨ë¶í ì ììµëë¤. ì§ë¨ì ì²ìë¶í° ë¤ì ììí´ì£¼ì¸ì.");return}this.$refs.diagnosisImg.click()},dragDiagnosis(t,e){if(console.log("addDianosisFile-questionnairesì 무",this.questionnaire.length),this.questionnaire.length<4){alert("íì¼ì 첨ë¶í ì ììµëë¤. ì§ë¨ì ì²ìë¶í° ë¤ì ììí´ì£¼ì¸ì.");return}this.diagnosisImg(t,e)},resetPredictImg(t){t.target.value=null},resetDiagnosisImg(t){t.target.value=null},resetHairThickStatusImg(t){t.target.value=null},predictImg(t,e=!1,n="therapy"){if(this.loadingPageFlag=!0,e===!0&&(this.mergeType=n,t.dataTransfer.files.length>1)){this.loadingPageFlag=!1,alert("ì¬ë¬ ê°ì ì´ë¯¸ì§ê° ê°ì§ëììµëë¤. í ê°ë§ ì í ê°ë¥í©ëë¤.");return}const c=e?t.dataTransfer.files[0]:t.target.files[0];if(!c){this.loadingPageFlag=!1;return}if(!c.type.startsWith("image/")){t.target.value="",alert("ì´ë¯¸ì§ íì¼ë§ ì í ê°ë¥í©ëë¤."),this.loadingPageFlag=!1;return}const a=new FormData;a.append("user_hair_loss_image",c),a.append("type",this.mergeType),a.append("chatIdx",this.chatIdx);const s={success:l=>{this.loadingPageFlag=!1,this.beforeImgUrl=URL.createObjectURL(c),this.predictImgUrl="data:image/png;base64,"+l.base64Image,this.hairThickness.beforeHairThickness=l.hairThickness.beforeHairThickness,this.hairThickness.afterHairThickness=l.hairThickness.afterHairThickness,this.afterValue=l.afterValue,this.predictChatHistoryIdx=l.chatHistoryIdx||null,this.popupFlag.predict=!0},error:l=>{if(this.isAuthExpiredError(l)){this.handlePredictAuthExpired();return}if(l){this.loadingPageFlag=!1,this.message.push({text:l?.response?.data?.message||"ì¬ì§ ë¶ì ì¤ ì¤ë¥ê° ë°ìíìµëë¤. ì ì í ë¤ì ìëí´ ì£¼ì¸ì.",type:"provider",loading:!1}),this.$nextTick(this.scrollToBottom);return}this.loadingPageFlag=!1}};this.$api.chat.merge(a,s)},openDiagnosis(t){const e={text:`AI를 íµí´ í모 ìí를 ì íí ì§ë¨ë°ì¼ë ¤ë©´, íëª¨ê° ìì¬ëë ë¶ì를 ê°ê¹ì´ìì ëë ·íê² ì´¬ìí´ ì£¼ì¸ì. 4ì´¬ì ì 머리카ë½ì´ ê°ë ¤ì§ì§ ìëë¡ ì£¼ìí´ ì£¼ì¸ì.`,img:"/images/img-dianosis.png"};this.message.push({text:e.text,type:"provider",img:e.img,selfDiagnosis:!0,args:"diagnosis"}),t===!0&&this.$nextTick(this.scrollToBottom)},beforeIntroCard(){this.chatEvaluation=!1,this.chatReport=!1,this.questionnaire=[],this.message.push({text:"ëì í모 ì ë ìë´ì¬í",type:"client"}),this.message.push({type:"provider",selfHairLossNoticeFlag:!0}),this.$nextTick(this.scrollToBottom)},openSelfHairLoss(t){this.selfHairLossFlag=!0,this.questionnaire=[],t===!0&&(this.chatEvaluation=!1,this.chatReport=!1,this.message.push({text:"ëì í모 ì ë",type:"client"})),this.message.push({title:"Q1. ì±ë³ì ì íí´ì£¼ì¸ì",type:"provider",selfHairLossFlag:!0,buttons:[{text:"ë¨ì±",type:"chat",args:"man",questionIdx:1},{text:"ì¬ì±",type:"chat",args:"woman",questionIdx:1}],loading:!1}),t===!0&&this.$nextTick(this.scrollToBottom)},againDiagnosisQuestion(t,e){this.againDiagnosisFlag=!0,e==="againQuestionY"?this.openSelfHairLoss(!0):e==="againQuestionN"&&(this.message.push({text:t,type:"client"}),this.message.push({text:`ëµë³ì ëí´ ê¶ê¸í ì ì´ ìì¼ìë©´ ìë ¤ì£¼ì¸ì. 5í모ì ëí ë¤ë¥¸ ê¶ê¸ì¦ë ìì ë¡ê² ì§ë¬¸í´ì£¼ì¸ì.`,type:"provider",relatedQuestions:this.relatedQuestions}),this.chatEvaluation=!0,this.chatReport=!0,setTimeout(()=>{this.$nextTick(this.scrollToBottom)},100))},async diagnosisImg(t,e=!1){if(this.loadingPageFlag=!0,e===!0&&t.dataTransfer.files.length>1){this.loadingPageFlag=!1,alert("ì¬ë¬ ê°ì ì´ë¯¸ì§ê° ê°ì§ëììµëë¤. í ê°ë§ ì í ê°ë¥í©ëë¤.");return}const n=e?t.dataTransfer.files[0]:t.target.files[0];if(!n){this.loadingPageFlag=!1;return}if(!n.type.startsWith("image/")){t.target.value="",alert("ì´ë¯¸ì§ íì¼ë§ ì í ê°ë¥í©ëë¤."),this.loadingPageFlag=!1;return}const c=new FormData;c.append("user_hair_loss_image",n),c.append("questionnaire",this.questionnaire.join(",")),this.loadingPageFlag=!1;const a=new FileReader;a.onloadend=async()=>{const s=a.result,l=this.message.length;this.message.push({notice:`ì íí ì§ë¨ì ìí´ìë ë³ì 방문 ë° ì 문ì ìë´ì´ íìí©ëë¤. ê°ê¹ì´ ë³ì 방문ì ê¶ì¥ë립ëë¤. 6 7`,diagnosisSelfImg:s,text:"",type:"provider",diagnosisResultImgFlag:!0,diagnosisTypeOfM:!1,buttons:[{text:"ìì í ë´ ëª¨ìµ ë³´ë¬ê°ê¸°",type:"chat"}],loading:!0}),this.$nextTick(()=>this.scrollToBottom());const p=this.$store.getters["chat/GET_USER_INFO"]?.token,r=p?{Authorization:`Bearer ${p}`}:{};try{const g=await fetch(Te+"/api/diagnose",{method:"POST",headers:r,body:c});if(!g.ok)throw this.message[l].loading=!1,new Error(`HTTP ${g.status}`);const k=g.body.getReader(),_=new TextDecoder("utf-8");let v=!1,I="";for(this.message[l].loading=!1;!v;){const{value:E,done:F}=await k.read();if(v=F,E){I+=_.decode(E,{stream:!0}).replaceAll("data:","");let b=I.replace(/\n\n/g,"").replace(/(?<!\d)1(?!\d|μ)/g,"__BR__1").replace(/(?<!\d)2(?!\d|μ)/g,"__BR__2").replace(/(?<!\d)3(?!\d|μ)/g,"__BR__3").replace(/(?<!\d)4(?!\d|μ)/g,"__BR__4").replace(/(?<!\d)5(?!\d|μ)/g,"__BR__5").replace(/(?<!\d)â»(?!\d|μ)/g,"__BR__â»");b=b.replace(/<\/br>/gi,"__BR__").replace(/<br\s*\/?>/gi,"__BR__"),b=b.replace(/[ \t]+/g," "),b=b.replace(/^[\s_]*(__BR__)*[\s_]*(â )/m,"<br>$2"),b=b.replace(/[\s_]*(__BR__)*[\s_]*(ð)/g,"<br><br>$2"),b=b.replace(/(â [^ð]*?)<br><br>(ð)/u,"$1<br>$2"),b=b.replace(/(ð[^ãð]*?)[\s_]*(__BR__)*[\s_]*(ã)/gu,"$1<br>$3"),b=b.replace(/(ã[^ðã]*?)[\s_]*(__BR__)*[\s_]*(ã)/gu,"$1<br>$3"),b=b.replace(/[\s_]*(__BR__)*[\s_]*(\[ì¶ì²\])/g,"<br><br>$2"),b=b.replace(/[\s_]*(__BR__)*[\s_]*(â»)/g,"<br>$2"),b=b.replace(/__BR__/g,"<br>");const N=b.replace(/(<br>){3,}/gi,"<br><br>").replace(/^\s*(<br>)+/i,"").trim(),A=this.applyBold(N),K=this.linkify(A);this.message[l].htmlYn=!0,this.message[l].html=K,this.message[l].text=null,this.$nextTick(()=>this.scrollToBottom())}}if(I.includes("<!--DIAGNOSE_ERROR-->"))throw this.message[l].htmlYn=!1,this.message[l].html=null,new Error("diagnose stream error");let U=I.replace(/\n\n/g,"").replace(/<\/br>/gi,` 8`).replace(/<br\s*\/?>/gi,` 9`).replace(/\n{3,}/g,` 10 11`).replace(/^\s+|\s+$/g,"").trim();const L={chatIdx:this.chatIdx,userQuestion:this.questionnaire.join(","),response:U};this.saveChat(L),this.$nextTick(()=>{const E=I.includes("Mì í모");console.log(E,"diagonosisType"),E==!0&&(this.message[l].diagnosisTypeOfM=!0),this.message[l].loading=!1,this.questionnaire=[],this.chatEvaluation=!0,this.chatReport=!0,this.message.push({title:`ì´ë¯¸ì§ì ë°ë¼ ê²°ê³¼ê° ë¬ë¼ì§ ì ììµëë¤. 12ë¤ì íì¸í´ë³´ìê² ì´ì?`,type:"provider",againDiagnosisFlag:!0,buttons:[{text:"ì, ë¤ì í´ë³¼ê²ì",type:"chat",args:"againQuestionY"},{text:"ìëì¤, ê´ì°®ìµëë¤",type:"chat",args:"againQuestionN"}
12],loading:!1}),this.scrollToBottom()})}catch(g){console.error(g),alert("ì§ë¨ ìì² ì¤ ì¤ë¥ê° ë°ìíìµëë¤. ì ì í ë¤ì ìëí´ ì£¼ì¸ì."),this.message[l].loading=!1,this.message[l].text="ì§ë¨ ìì² ì¤ ì¤ë¥ê° ë°ìíìµëë¤. ì ì í ë¤ì ìëí´ ì£¼ì¸ì."}finally{this.loadingPageFlag=!1,this.questionnaire=[]}},a.readAsDataURL(n)},openPredict(){this.predictionFlag=!0,this.chatEvaluation=!1,this.chatReport=!1,this.message.push({text:"ìì (ì¹ë£)í ë´ëª¨ìµ",type:"client"}),this.message.push({text:`ìì ëë ì¹ë£ í ë¬ë¼ì§ 모ìµì ì측í´ë립ëë¤. 13ê¶ê¸íì ë¶ì를 ì íí´ì£¼ì¸ì.`,type:"provider",predictionFlag:!0,buttons:[{text:"ìì - ì머리(í¤ì´ë¼ì¸)",type:"chat",args:"surgery"},{text:"ì¹ë£ - ì ì리",type:"chat",args:"therapy"},{text:"ì´ì ê²°ê³¼ 보기",type:"chat",args:"history"}],loading:!1}),this.$nextTick(this.scrollToBottom)},linkify(t){const e=/((?:https?:\/\/|www\.)[^\s<>()]+?(?=[\s<>()]|$))/gi,n=/(\d{2,3}-\d{3,4}-\d{4})/g;return t.split(/(<a\b[^>]*>[\s\S]*?<\/a>)/gi).map(c=>/^<a\b/i.test(c)?c:c.replace(e,a=>{let s=a;return/^https?:\/\//i.test(s)||(s="http://"+s),`<a href="${s}" target="_blank" rel="noopener noreferrer">${a}</a>`}).replace(n,a=>`<a href="tel:${a.replace(/-/g,"")}">${a}</a>`)).join("")},getPage(t){return(()=>{const e=t.match(/íì´ì§:\s*([\d,\s]+)/);return e?e[1].split(",")[0].trim():null})()},setRelatedQuestions(){const t={},e={success:n=>{this.relatedQuestions=Vt(n.relatedQuestions)},error:()=>{this.relatedQuestions=[]}};this.$api.chat.getRelatedQuestions(t,e)},saveChat(t){const e={success:n=>{},error:n=>{}};this.$api.chat.saveChat(t,e)},setHairThicknessStatus(){this.chatEvaluation=!1,this.chatReport=!1;const t={strongText:"í모 ë¶ì(ì머리 ëë ì ì리)ê° ì ë³´ì´ëë¡ ìì ì¬ì§ì²ë¼ ì´¬ìí´ì£¼ì¸ì.",lastText:"ì´¬ìí ë 머리카ë½ì´ ë¶ì를 ê°ë¦¬ì§ ìëë¡ ì£¼ìí´ ì£¼ì¸ì.",guide:"í모ë¶ì(ì머리 ëë ì ì리)를 ì´¬ìí´ì£¼ì¸ì.",img:"/images/sethairthicknessImg.png"};this.message.push({text:t.guide,type:"client"}),this.message.push({emphasizedText:!0,strongText:t.strongText,lastText:t.lastText,type:"provider",img:t.img,setHairThicknessStatusFlag:!0}),this.$nextTick(this.scrollToBottom)},resetSetHairThicknessImg(t){t.target.value=null},addSetHairThicknessFile(){this.$refs.setHairThicknessImg.click()},againSetHairThicknessStatus(t,e){e==="againThicknessStatusY"?this.setHairThicknessStatus(!0):e==="againThicknessStatusN"&&(this.message.push({text:t,type:"client"}),this.message.push({text:`ëµë³ì ëí´ ê¶ê¸í ì ì´ ìì¼ìë©´ ìë ¤ì£¼ì¸ì. 14í모ì ëí ë¤ë¥¸ ê¶ê¸ì¦ë ìì ë¡ê² ì§ë¬¸í´ì£¼ì¸ì.`,type:"provider",relatedQuestions:this.relatedQuestions}),this.chatEvaluation=!0,this.chatReport=!0,setTimeout(()=>{this.$nextTick(this.scrollToBottom)},100))},setHairThicknessImg(t,e=!1){if(this.loadingPageFlag=!0,e===!0&&t.dataTransfer.files.length>1){this.loadingPageFlag=!1,alert("ì¬ë¬ ê°ì ì´ë¯¸ì§ê° ê°ì§ëììµëë¤. í ê°ë§ ì í ê°ë¥í©ëë¤.");return}const n=e?t.dataTransfer.files[0]:t.target.files[0];if(!n){this.loadingPageFlag=!1;return}if(!n.type.startsWith("image/")){!e&&t.target&&(t.target.value=""),alert("ì´ë¯¸ì§ íì¼ë§ ì í ê°ë¥í©ëë¤."),this.loadingPageFlag=!1;return}const c=new FormData;c.append("userHairLossImage",n),this.loadingPageFlag=!1;const a=new FileReader;a.onloadend=async()=>{const s=a.result,l=this.message.length;this.message.push({setHairThicknessnotice:`ì íí ì§ë¨ì ìí´ìë ë³ì 방문 ë° ì 문ì ìë´ì´ íìí©ëë¤. ê°ê¹ì´ ë³ì 방문ì ê¶ì¥ë립ëë¤. 15 16`,setHairThicknessStatusImg:s,text:"ì§ë¨ ì¤ì ëë¤â¦",type:"provider",loading:!0,setHairThicknessPopFlag:!1,thicknessValue:""}),this.$nextTick(()=>this.scrollToBottom());const p={success:r=>{console.log("모ë°êµµê¸°íí© response:",r);const g=typeof r=="number"?r:typeof r?.int=="number"?r.int:null;if(g==null)throw new Error("Unexpected response shape");this.message[l].text=` 17ëìì¸ì íê· ëª¨ë° êµµê¸°ë ì½ 80~100μm(ë§ì´í¬ë¡ë¯¸í°) ì ëë¤. 18 19íì¬ ì¬ì§ ë¶ì ê²°ê³¼
20- í모 ë¶ì(ì머리 ëë ì ì리) ëª¨ë° êµµê¸°: ${g}μm`,this.message[l].loading=!1,this.message[l].setHairThicknessPopFlag=!0,this.message[l].thicknessValue=`${g}`,this.$nextTick(()=>{this.chatEvaluation=!0,this.chatReport=!0,this.message.push({title:`ì´ë¯¸ì§ì ë°ë¼ ê²°ê³¼ê° ë¬ë¼ì§ ì ììµëë¤. 21ë¤ì íì¸í´ë³´ìê² ì´ì?`,type:"provider",againSetHairThicknessFlag:!0,buttons:[{text:"ì, ë¤ì í´ë³¼ê²ì",type:"chat",args:"againThicknessStatusY"},{text:"ìëì¤, ê´ì°®ìµëë¤",type:"chat",args:"againThicknessStatusN"}],loading:!1}),this.scrollToBottom()})},error:r=>{if(r){console.log("모ë°êµµê¸°íí©err-response",r),this.loadingPageFlag=!1,this.message[l].loading=!1,this.message[l].text=r.response.data.message||"ì§ë¨ ìì² ì¤ ì¤ë¥ê° ë°ìíìµëë¤. ì ì í ë¤ì ìëí´ ì£¼ì¸ì.",this.$nextTick(this.scrollToBottom);return}this.loadingPageFlag=!1}};this.$api.chat.getHairThicknessImg(c,p)},a.readAsDataURL(n)},preventNavigationEvet(){history.pushState(null,null,location.href),window.onpopstate=()=>{console.log("windowPrevent ëì"),history.go(1)}}}},Ml={class:"chat-wrap"},Dl={ref:"chatBody",class:"chat-body"},Cl={class:"chat-body-inner"},Rl={class:"message-area"},wl={key:0,class:"chip-list"},Pl=["onClick"],Tl={class:"d-flex"};function Sl(t,e,n,c,a,s){const l=et,p=$e,r=Ze,g=Ae,k=Ee,_=R("PopReservation"),v=R("PopMediInfo"),I=Xe,
21U=R("PopHairThick"),L=R("PopThesisList"),E=R("PopSearch"),F=R("PopVideo"),b=R("PopPredict"),N=R("PopPredictHistory"),A=R("PopEvaluation"),K=R("PopReport"),W=R("PopChangeTell"),le=R("PopReservationStatus"),H=R("PopHairCount"),J=R("PopCheckLogin"),X=R("PopAloLiteLogin"),de=R("PopHospitalMap"),tt=R("PopHairTickCount"),st=R("PopProductList"),it=R("PopHairLossBlog"),at=Je,nt=Ue,rt=R("PopEventModal"),ot=Se;return o(),d("div",Ml,[M(l,{"user-first-char":a.userFirstChar,"reward-badge-cnt":a.rewardBadgeCnt,onResetChat:s.resetChat,onToggleSetting:s.toggleSetting},null,8,["user-first-char","reward-badge-cnt","onResetChat","onToggleSetting"]),M(Ot,{name:"chat-setting-transition"},{default:pe(()=>[a.setFlag?(o(),m(p,{key:0,onOpenPop:s.openPopup,onClosePop:s.toggleSetting,onOpenLiteLogin:s.openAloLiteLogin,onRefreshRewardBadge:s.fetchRewardBadge,loginName:a.username,"reward-badge-cnt":a.rewardBadgeCnt,"initial-popup":a.initialPopup,"initial-idx":a.initialIdx},null,8,["onOpenPop","onClosePop","onOpenLiteLogin","onRefreshRewardBadge","loginName","reward-badge-cnt","initial-popup","initial-idx"])):u("",!0)]),_:1}),i("div",Dl,[i("div",Cl,[i("input",{ref:"mergeImg",type:"file",class:"form-file-hidden",accept:"image/*",onChange:e[0]||(e[0]=(...w)=>s.predictImg&&s.predictImg(...w)),onClick:e[1]||(e[1]=(...w)=>s.resetPredictImg&&s.resetPredictImg(...w))},null,544),i("input",{ref:"diagnosisImg",type:"file",class:"form-file-hidden",accept:"image/*",onChange:e[2]||(e[2]=(...w)=>s.diagnosisImg&&s.diagnosisImg(...w)),onClick:e[3]||(e[3]=(...w)=>s.resetDiagnosisImg&&s.resetDiagnosisImg(...w))},null,544),i("input",{ref:"setHairThicknessImg",type:"file",class:"form-file-hidden",accept:"image/*",onChange:e[4]||(e[4]=(...w)=>s.setHairThicknessImg&&s.setHairThicknessImg(...w)),onClick:e[5]||(e[5]=(...w)=>s.resetSetHairThicknessImg&&s.resetSetHairThicknessImg(...w))},null,544),M(r,{onOpenPredict:s.openPredict,onOpenHairCount:s.openHairCount,onOpenCheckLogin:s.openCheckLogin,onOpenSelfHairLoss:s.beforeIntroCard,onOpenHospitalMap:s.openHospitalMap,onOpenHairThickStatus:s.setHairThicknessStatus,onOpenProductList:s.openProductList,onOpenHairLossBlog:s.openHairLossBlog,onOpenPersonaWorkflow:s.openPersonaWorkflow,onOpenDailyCare:s.openDailyCare},null,8,["onOpenPredict","onOpenHairCount","onOpenCheckLogin","onOpenSelfHairLoss","onOpenHospitalMap","onOpenHairThickStatus","onOpenProductList","onOpenHairLossBlog","onOpenPersonaWorkflow","onOpenDailyCare"]),i("div",Rl,[(o(!0),d(C,null,S(a.message,(w,me)=>(o(),d("div",{key:me,class:y(["message-box",w.type])},[M(g,{message:w,onMerge:s.addMergeFile,onDiagnosis:s.addDianosisFile,onChat:s.inputFuture,onSelfHairLoss:s.inputSelfHairLoss,onAgainDiagnosisQuestion:s.againDiagnosisQuestion,onOpenDiagnosisTypeM:s.openPredict,onDragFiles:s.predictImg,onDragDiagnosis:s.dragDiagnosis,onSelfDiagnosis:s.openSelfHairLoss,onSetHairThicknessFiles:s.setHairThicknessImg,onSetHairThicknessDefalutFiles:s.addSetHairThicknessFile,onAgainSetHairThicknessStatus:s.againSetHairThicknessStatus},null,8,["message","onMerge","onDiagnosis","onChat","onSelfHairLoss","onAgainDiagnosisQuestion","onOpenDiagnosisTypeM","onDragFiles","onDragDiagnosis","onSelfDiagnosis","onSetHairThicknessFiles","onSetHairThicknessDefalutFiles","onAgainSetHairThicknessStatus"]),w.relatedQuestions?.length?(o(),d("ul",wl,[(o(!0),d(C,null,S(w.relatedQuestions,(ge,lt)=>(o(),d("li",{key:`${me}-${lt}`,class:"item",onClick:_l=>s.inputFaq(ge)},h(ge),9,Pl))),128))])):u("",!0)],2))),128)),i("div",Tl,[a.chatEvaluation?(o(),d("button",{key:0,type:"button",class:"btn-evaluation mr-5",onClick:e[6]||(e[6]=(...w)=>s.openEvaluation&&s.openEvaluation(...w))},[M(T,{icon:"mdi:mdi-thumb-up-outline"})])):u("",!0),a.chatReport?(o(),d("button",{key:1,type:"button",class:"btn-evaluation",onClick:e[7]||(e[7]=(...w)=>s.openReport&&s.openReport(...w))},[M(T,{icon:"mdi:mdi-thumb-down-outline"})])):u("",!0)])])])],512),M(k,{modelValue:a.userMessage,"onUpdate:modelValue":e[8]||(e[8]=w=>a.userMessage=w),disabled:a.disabledFlag,focused:a.focusFlag,onSubmit:s.fetchProChat,onSetMerge:s.addMergeFile,onInputFaq:s.inputFaq},null,8,["modelValue","disabled","focused","onSubmit","onSetMerge","onInputFaq"]),a.popupFlag.reservation?(o(),m(_,{key:0,onClosePopup:s.closePopup},null,8,["onClosePopup"])):u("",!0),a.popupFlag.mediinfo?(o(),m(v,{key:1,onClosePopup:s.closePopup},null,8,["onClosePopup"])):u("",!0),a.popupFlag.clincal?(o(),m(I,{key:2,"current-page":a.selectedComponent,onClosePopup:s.closePopup},null,8,["current-page","onClosePopup"])):u("",!0),a.popupFlag.hair?(o(),m(U,{key:3,onClosePopup:s.closePopup},null,8,["onClosePopup"])):u("",!0),a.popupFlag.theisList?(o(),m(L,{key:4,onClosePopup:s.closePopup},null,8,["onClosePopup"])):u("",!0),a.popupFlag.search?(o(),m(E,{key:5,onClosePopup:s.closePopup},null,8,["onClosePopup"])):u("",!0),a.popupFlag.video?(o(),m(F,{key:6,onClosePopup:s.closePopup},null,8,["onClosePopup"])):u("",!0),a.popupFlag.predict?(o(),m(b,{key:7,"img-url":a.predictImgUrl,"before-img-url":a.beforeImgUrl,"merge-type":a.mergeType,"before-hair-thickness":a.hairThickness.beforeHairThickness,"after-hair-thickness":a.hairThickness.afterHairThickness,"after-value":a.afterValue,"chat-history-idx":a.predictChatHistoryIdx,onClosePopup:s.closePopup,onAuthExpired:s.handlePredictAuthExpired},null,8,["img-url","before-img-url","merge-type","before-hair-thickness","after-hair-thickness","after-value","chat-history-idx","onClosePopup","onAuthExpired"])):u("",!0),a.popupFlag.predictHistory?(o(),m(N,{key:8,onClosePopup:s.closePopup,onAuthExpired:s.handlePredictAuthExpired},null,8,["onClosePopup","onAuthExpired"])):u("",!0),a.popupFlag.evaluation?(o(),m(A,{key:9,onClosePopup:s.closePopup},null,8,["onClosePopup"])):u("",!0),a.popupFlag.report?(o(),m(K,{key:10,onClosePopup:s.closePopup},null,8,["onClosePopup"])):u("",!0),a.popupFlag.changeTell?(o(),m(W,{key:11,onClosePopup:s.closePopup},null,8,["onClosePopup"])):u("",!0),a.popupFlag.reservationStatus?(o(),m(le,{key:12,onClosePopup:s.closePopup},null,8,["onClosePopup"])):u("",!0),a.popupFlag.hairCount?(o(),m(H,{key:13,onClosePopup:s.closePopup},null,8,["onClosePopup"])):u("",!0),a.popupFlag.checkLogin?(o(),m(J,{key:14,onOpenLiteLogin:s.openAloLiteLogin,onClosePopup:s.closePopup},null,8,["onOpenLiteLogin","onClosePopup"])):u("",!0),a.popupFlag.aloLiteLoginFlag?(o(),m(X,{key:15,onClosePopup:s.closePopup},null,8,["onClosePopup"])):u("",!0),a.popupFlag.hospitalMap?(o(),m(de,{key:16,onClosePopup:s.closePopup},null,8,["onClosePopup"])):u("",!0),a.popupFlag.hairTickCount?(o(),m(tt,{key:17,onClosePopup:s.closePopup},null,8,["onClosePopup"])):u("",!0),a.popupFlag.productList?(o(),m(st,{key:18,onClosePopup:s.closePopup},null,8,["onClosePopup"])):u("",!0),a.popupFlag.hairlossBlog?(o(),m(it,{key:19,onClosePopup:s.closePopup},null,8,["onClosePopup"])):u("",!0),a.personaWorkflowFlag?(o(),m(at,{key:20,onClose:e[9]||(e[9]=w=>a.personaWorkflowFlag=!1),onAuthExpired:s.handlePersonaWorkflowAuthExpired},null,8,["onAuthExpired"])):u("",!0),a.dailyCareFlag?(o(),m(nt,{key:21,onClose:e[10]||(e[10]=w=>a.dailyCareFlag=!1),onAuthExpired:s.handleDailyCareAuthExpired},null,8,["onAuthExpired"])):u("",!0),a.eventModalFlag?(o(),m(rt,{key:22,onClosePopup:e[11]||(e[11]=w=>a.eventModalFlag=!1)})):u("",!0),a.loadingPageFlag?(o(),m(ot,{key:23})):u("",!0)])}const Hd=x(Il,[["render",Sl]]);export{Hd 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.