2 lines
5.0 KiB
JavaScript
2 lines
5.0 KiB
JavaScript
import{d as Q,w as z,m as n,b as D,x as K,c as u,B as g,f as s,s as N,t as a,e as q,n as $,F as T,r as S,g as V,A as C,i as U,T as j,y as E,k as d}from"./index.js";import{C as F}from"./CloseButton.js";import{_ as L}from"./_plugin-vue_export-helper.js";const O=["aria-label"],P={class:"user-question-windowbar"},W={class:"user-question-traffic"},G={class:"user-question-window-title"},H={class:"user-question-header"},J={class:"user-question-title-block"},R={key:0,class:"user-question-kicker-row"},X={class:"user-question-kicker"},Y=["aria-label"],Z=["disabled","aria-label"],ee=["disabled","aria-label"],te={key:0,class:"user-question-context"},se={key:1,class:"user-question-options"},ie=["onClick"],oe={class:"user-question-option__label"},ne={key:0,class:"user-question-option__desc"},ae={class:"user-question-textarea-wrap"},le=["placeholder","onKeydown"],re={class:"user-question-footer"},ue=["disabled","title"],de={class:"user-question-actions"},ce=["disabled"],ve=Q({__name:"UserQuestionDialog",props:{visible:{type:Boolean},questions:{},activeIndex:{},submittingIds:{}},emits:["minimize","update:active-index","submit","dismiss"],setup(c,{emit:A}){const o=c,p=A,l=E({}),y=(e,t)=>String((e==null?void 0:e.question_id)||`idx_${t}`);z(()=>o.questions,e=>{(e||[]).forEach((t,i)=>{const m=y(t,i);l[m]||(l[m]={selected_option_id:"",text:""})})},{immediate:!0,deep:!0});const v=d(()=>{const e=Math.max(0,(o.questions||[]).length-1);return Math.min(Math.max(0,Number(o.activeIndex||0)),e)}),r=d(()=>o.questions[v.value]||{}),h=d(()=>Array.isArray(r.value.options)?r.value.options:[]),k=d(()=>y(r.value,v.value)),b=d(()=>(l[k.value]||(l[k.value]={selected_option_id:"",text:""}),l[k.value])),_=d(()=>(o.submittingIds||[]).length>0),B=e=>{const t=o.questions[e],i=l[y(t,e)];return!!(i&&(i.selected_option_id||i.text.trim()))},w=d(()=>(o.questions||[]).every((e,t)=>B(t)));function x(e){p("update:active-index",v.value+e)}function I(e){b.value.selected_option_id=b.value.selected_option_id===e?"":e}function f(){if(!w.value||_.value)return;const e=(o.questions||[]).map((t,i)=>{const m=l[y(t,i)]||{selected_option_id:"",text:""};return{question_id:t.question_id,selected_option_id:m.selected_option_id||void 0,text:m.text.trim()}});p("submit",e)}function M(){var t;if(_.value)return;const e=String(((t=r.value)==null?void 0:t.question_id)||"").trim();e&&p("dismiss",e)}return(e,t)=>(n(),D(j,{name:"user-question-fade",appear:""},{default:K(()=>[c.visible&&c.questions.length?(n(),u("div",{key:0,class:"user-question-overlay",onClick:t[4]||(t[4]=g(i=>p("minimize"),["self"]))},[s("section",{class:"user-question-card",role:"dialog","aria-modal":"true","aria-label":e.$t("overlay.userQuestionAriaLabel")},[s("header",P,[s("div",W,[N(F,{label:e.$t("overlay.minimizeAria"),onClick:t[0]||(t[0]=i=>p("minimize"))},null,8,["label"])]),s("div",G,a(e.$t("overlay.userQuestionWindowTitle")),1)]),s("header",H,[s("div",J,[c.questions.length>1?(n(),u("div",R,[s("span",X,a(e.$t("overlay.questionIndex",{current:v.value+1,total:c.questions.length})),1),s("span",{class:"user-question-nav","aria-label":e.$t("overlay.questionNavAria")},[s("button",{type:"button",disabled:v.value<=0,onClick:t[1]||(t[1]=i=>x(-1)),"aria-label":e.$t("overlay.prevQuestionAria")},[...t[5]||(t[5]=[s("svg",{viewBox:"0 0 20 20",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},[s("path",{d:"M12 5l-5 5 5 5"})],-1)])],8,Z),s("button",{type:"button",disabled:v.value>=c.questions.length-1,onClick:t[2]||(t[2]=i=>x(1)),"aria-label":e.$t("overlay.nextQuestionAria")},[...t[6]||(t[6]=[s("svg",{viewBox:"0 0 20 20",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},[s("path",{d:"M8 5l5 5-5 5"})],-1)])],8,ee)],8,Y)])):q("",!0),s("h2",null,a(r.value.question),1)])]),s("div",{class:$(["user-question-body",{"user-question-body--no-options":!h.value.length}])},[r.value.context?(n(),u("p",te,a(r.value.context),1)):q("",!0),h.value.length?(n(),u("div",se,[(n(!0),u(T,null,S(h.value,i=>(n(),u("button",{key:i.id,type:"button",class:$(["user-question-option",{active:b.value.selected_option_id===i.id}]),onClick:m=>I(i.id)},[s("span",oe,a(i.label),1),i.description?(n(),u("span",ne,a(i.description),1)):q("",!0)],10,ie))),128))])):q("",!0),s("div",ae,[V(s("textarea",{"onUpdate:modelValue":t[3]||(t[3]=i=>b.value.text=i),class:"user-question-textarea",rows:"3",placeholder:e.$t("overlay.answerPlaceholder"),spellcheck:"false",onKeydown:[C(g(f,["meta","prevent"]),["enter"]),C(g(f,["ctrl","prevent"]),["enter"])]},null,40,le),[[U,b.value.text]])])],2),s("footer",re,[s("button",{type:"button",class:"user-question-btn ghost",disabled:_.value,title:e.$t("overlay.dismissTitle"),onClick:M},a(e.$t("overlay.dismiss")),9,ue),t[7]||(t[7]=s("div",{class:"user-question-spacer"},null,-1)),s("div",de,[s("button",{type:"button",class:"user-question-btn primary",disabled:!w.value||_.value,onClick:f},a(_.value?e.$t("overlay.submittingAnswer"):e.$t("common.ok")),9,ce)])])],8,O)])):q("",!0)]),_:1}))}}),_e=L(ve,[["__scopeId","data-v-e9da1556"]]);export{_e as default};
|