0&&O(e).unusedInput.push(u),s=s.slice(s.indexOf(i)+i.length),p+=i.length),Ge[l]?(i?O(e).empty=!1:O(e).unusedTokens.push(l),Wd(l,i,e)):e._strict&&!i&&O(e).unusedTokens.push(l);O(e).charsLeftOver=h-p,s.length>0&&O(e).unusedInput.push(s),e._a[J]<=12&&O(e).bigHour===!0&&e._a[J]>0&&(O(e).bigHour=void 0),O(e).parsedDateParts=e._a.slice(0),O(e).meridiem=e._meridiem,e._a[J]=ih(e._locale,e._a[J],e._meridiem),m=O(e).era,m!==null&&(e._a[se]=e._locale.erasConvertYear(m,e._a[se])),Us(e),$s(e)}function ih(e,s,a){var i;return a==null?s:e.meridiemHour!=null?e.meridiemHour(s,a):(e.isPM!=null&&(i=e.isPM(a),i&&s<12&&(s+=12),!i&&s===12&&(s=0)),s)}function oh(e){var s,a,i,o,l,u,h=!1,p=e._f.length;if(p===0){O(e).invalidFormat=!0,e._d=new Date(NaN);return}for(o=0;othis?this:e:Ut()});function tn(e,s){var a,i;if(s.length===1&&he(s[0])&&(s=s[0]),!s.length)return E();for(a=s[0],i=1;ithis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ih(){if(!ie(this._isDSTShifted))return this._isDSTShifted;var e={},s;return As(e,this),e=Xa(e),e._a?(s=e._isUTC?ve(e._a):E(e._a),this._isDSTShifted=this.isValid()&&kh(e._a,s.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function xh(){return this.isValid()?!this._isUTC:!1}function Ah(){return this.isValid()?this._isUTC:!1}function ia(){return this.isValid()?this._isUTC&&this._offset===0:!1}var Oh=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,Nh=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function me(e,s){var a=e,i=null,o,l,u;return St(e)?a={ms:e._milliseconds,d:e._days,M:e._months}:Ie(e)||!isNaN(+e)?(a={},s?a[s]=+e:a.milliseconds=+e):(i=Oh.exec(e))?(o=i[1]==="-"?-1:1,a={y:0,d:N(i[ye])*o,h:N(i[J])*o,m:N(i[ce])*o,s:N(i[we])*o,ms:N(gs(i[He]*1e3))*o}):(i=Nh.exec(e))?(o=i[1]==="-"?-1:1,a={y:De(i[2],o),M:De(i[3],o),w:De(i[4],o),d:De(i[5],o),h:De(i[6],o),m:De(i[7],o),s:De(i[8],o)}):a==null?a={}:typeof a=="object"&&("from"in a||"to"in a)&&(u=Lh(E(a.from),E(a.to)),a={},a.ms=u.milliseconds,a.M=u.months),l=new Bt(a),St(e)&&F(e,"_locale")&&(l._locale=e._locale),St(e)&&F(e,"_isValid")&&(l._isValid=e._isValid),l}me.fn=Bt.prototype,me.invalid=yh;function De(e,s){var a=e&&parseFloat(e.replace(",","."));return(isNaN(a)?0:a)*s}function oa(e,s){var a={};return a.months=s.month()-e.month()+(s.year()-e.year())*12,e.clone().add(a.months,"M").isAfter(s)&&--a.months,a.milliseconds=+s-+e.clone().add(a.months,"M"),a}function Lh(e,s){var a;return e.isValid()&&s.isValid()?(s=Bs(s,e),e.isBefore(s)?a=oa(e,s):(a=oa(s,e),a.milliseconds=-a.milliseconds,a.months=-a.months),a):{milliseconds:0,months:0}}function sn(e,s){return function(a,i){var o,l;return i!==null&&!isNaN(+i)&&(Ua(s,"moment()."+s+"(period, number) is deprecated. Please use moment()."+s+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),l=a,a=i,i=l),o=me(a,i),an(this,o,e),this}}function an(e,s,a,i){var o=s._milliseconds,l=gs(s._days),u=gs(s._months);e.isValid()&&(i=i??!0,u&&Ga(e,at(e,"Month")+u*a),l&&Ea(e,"Date",at(e,"Date")+l*a),o&&e._d.setTime(e._d.valueOf()+o*a),i&&S.updateOffset(e,l||u))}var Dh=sn(1,"add"),Vh=sn(-1,"subtract");function nn(e){return typeof e=="string"||e instanceof String}function Hh(e){return pe(e)||dt(e)||nn(e)||Ie(e)||Fh(e)||Yh(e)||e===null||e===void 0}function Yh(e){var s=Fe(e)&&!Is(e),a=!1,i=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],o,l,u=i.length;for(o=0;oa.valueOf():a.valueOf()9999?_t(a,s?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):_e(Date.prototype.toISOString)?s?this.toDate().toISOString():new Date(this.valueOf()+this.utcOffset()*60*1e3).toISOString().replace("Z",_t(a,"Z")):_t(a,s?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function Jh(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",s="",a,i,o,l;return this.isLocal()||(e=this.utcOffset()===0?"moment.utc":"moment.parseZone",s="Z"),a="["+e+'("]',i=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",o="-MM-DD[T]HH:mm:ss.SSS",l=s+'[")]',this.format(a+i+o+l)}function Qh(e){e||(e=this.isUtc()?S.defaultFormatUtc:S.defaultFormat);var s=_t(this,e);return this.localeData().postformat(s)}function Xh(e,s){return this.isValid()&&(pe(e)&&e.isValid()||E(e).isValid())?me({to:this,from:e}).locale(this.locale()).humanize(!s):this.localeData().invalidDate()}function ep(e){return this.from(E(),e)}function tp(e,s){return this.isValid()&&(pe(e)&&e.isValid()||E(e).isValid())?me({from:this,to:e}).locale(this.locale()).humanize(!s):this.localeData().invalidDate()}function sp(e){return this.to(E(),e)}function on(e){var s;return e===void 0?this._locale._abbr:(s=xe(e),s!=null&&(this._locale=s),this)}var ln=ue("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return e===void 0?this.localeData():this.locale(e)});function rn(){return this._locale}var Nt=1e3,We=60*Nt,Lt=60*We,un=(365*400+97)*24*Lt;function qe(e,s){return(e%s+s)%s}function dn(e,s,a){return e<100&&e>=0?new Date(e+400,s,a)-un:new Date(e,s,a).valueOf()}function cn(e,s,a){return e<100&&e>=0?Date.UTC(e+400,s,a)-un:Date.UTC(e,s,a)}function ap(e){var s,a;if(e=de(e),e===void 0||e==="millisecond"||!this.isValid())return this;switch(a=this._isUTC?cn:dn,e){case"year":s=a(this.year(),0,1);break;case"quarter":s=a(this.year(),this.month()-this.month()%3,1);break;case"month":s=a(this.year(),this.month(),1);break;case"week":s=a(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":s=a(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":s=a(this.year(),this.month(),this.date());break;case"hour":s=this._d.valueOf(),s-=qe(s+(this._isUTC?0:this.utcOffset()*We),Lt);break;case"minute":s=this._d.valueOf(),s-=qe(s,We);break;case"second":s=this._d.valueOf(),s-=qe(s,Nt);break}return this._d.setTime(s),S.updateOffset(this,!0),this}function np(e){var s,a;if(e=de(e),e===void 0||e==="millisecond"||!this.isValid())return this;switch(a=this._isUTC?cn:dn,e){case"year":s=a(this.year()+1,0,1)-1;break;case"quarter":s=a(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":s=a(this.year(),this.month()+1,1)-1;break;case"week":s=a(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":s=a(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":s=a(this.year(),this.month(),this.date()+1)-1;break;case"hour":s=this._d.valueOf(),s+=Lt-qe(s+(this._isUTC?0:this.utcOffset()*We),Lt)-1;break;case"minute":s=this._d.valueOf(),s+=We-qe(s,We)-1;break;case"second":s=this._d.valueOf(),s+=Nt-qe(s,Nt)-1;break}return this._d.setTime(s),S.updateOffset(this,!0),this}function ip(){return this._d.valueOf()-(this._offset||0)*6e4}function op(){return Math.floor(this.valueOf()/1e3)}function lp(){return new Date(this.valueOf())}function rp(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function up(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function dp(){return this.isValid()?this.toISOString():null}function cp(){return xs(this)}function hp(){return Oe({},O(this))}function pp(){return O(this).overflow}function mp(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}I("N",0,0,"eraAbbr"),I("NN",0,0,"eraAbbr"),I("NNN",0,0,"eraAbbr"),I("NNNN",0,0,"eraName"),I("NNNNN",0,0,"eraNarrow"),I("y",["y",1],"yo","eraYear"),I("y",["yy",2],0,"eraYear"),I("y",["yyy",3],0,"eraYear"),I("y",["yyyy",4],0,"eraYear"),C("N",ts),C("NN",ts),C("NNN",ts),C("NNNN",Cp),C("NNNNN",Mp),R(["N","NN","NNN","NNNN","NNNNN"],function(e,s,a,i){var o=a._locale.erasParse(e,i,a._strict);o?O(a).era=o:O(a).invalidEra=e}),C("y",ze),C("yy",ze),C("yyy",ze),C("yyyy",ze),C("yo",Ip),R(["y","yy","yyy","yyyy"],se),R(["yo"],function(e,s,a,i){var o;a._locale._eraYearOrdinalRegex&&(o=e.match(a._locale._eraYearOrdinalRegex)),a._locale.eraYearOrdinalParse?s[se]=a._locale.eraYearOrdinalParse(e,o):s[se]=parseInt(e,10)});function fp(e,s){var a,i,o,l=this._eras||xe("en")._eras;for(a=0,i=l.length;a=0)return l[i]}function yp(e,s){var a=e.since<=e.until?1:-1;return s===void 0?S(e.since).year():S(e.since).year()+(s-e.offset)*a}function kp(){var e,s,a,i=this.localeData().eras();for(e=0,s=i.length;el&&(s=l),Vp.call(this,e,s,a,i,o))}function Vp(e,s,a,i,o){var l=qa(e,s,a,i,o),u=nt(l.year,0,l.dayOfYear);return this.year(u.getUTCFullYear()),this.month(u.getUTCMonth()),this.date(u.getUTCDate()),this}I("Q",0,"Qo","quarter"),C("Q",Pa),R("Q",function(e,s){s[Se]=(N(e)-1)*3});function Hp(e){return e==null?Math.ceil((this.month()+1)/3):this.month((e-1)*3+this.month()%3)}I("D",["DD",2],"Do","date"),C("D",P,Ze),C("DD",P,oe),C("Do",function(e,s){return e?s._dayOfMonthOrdinalParse||s._ordinalParse:s._dayOfMonthOrdinalParseLenient}),R(["D","DD"],ye),R("Do",function(e,s){s[ye]=N(e.match(P)[0])});var la=Qe("Date",!0);I("DDD",["DDDD",3],"DDDo","dayOfYear"),C("DDD",bt),C("DDDD",Ba),R(["DDD","DDDD"],function(e,s,a){a._dayOfYear=N(e)});function Yp(e){var s=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return e==null?s:this.add(e-s,"d")}I("m",["mm",2],0,"minute"),C("m",P,Ds),C("mm",P,oe),R(["m","mm"],ce);var Fp=Qe("Minutes",!1);I("s",["ss",2],0,"second"),C("s",P,Ds),C("ss",P,oe),R(["s","ss"],we);var $p=Qe("Seconds",!1);I("S",0,0,function(){return~~(this.millisecond()/100)}),I(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),I(0,["SSS",3],0,"millisecond"),I(0,["SSSS",4],0,function(){return this.millisecond()*10}),I(0,["SSSSS",5],0,function(){return this.millisecond()*100}),I(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3}),I(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4}),I(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5}),I(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6}),C("S",bt,Pa),C("SS",bt,oe),C("SSS",bt,Ba);var Ne,pn;for(Ne="SSSS";Ne.length<=9;Ne+="S")C(Ne,ze);function Up(e,s){s[He]=N(("0."+e)*1e3)}for(Ne="S";Ne.length<=9;Ne+="S")R(Ne,Up);pn=Qe("Milliseconds",!1),I("z",0,0,"zoneAbbr"),I("zz",0,0,"zoneName");function Rp(){return this._isUTC?"UTC":""}function Pp(){return this._isUTC?"Coordinated Universal Time":""}var _=ct.prototype;_.add=Dh,_.calendar=Rh,_.clone=Ph,_.diff=qh,_.endOf=np,_.format=Qh,_.from=Xh,_.fromNow=ep,_.to=tp,_.toNow=sp,_.get=Jd,_.invalidAt=pp,_.isAfter=Bh,_.isBefore=Eh,_.isBetween=zh,_.isSame=jh,_.isSameOrAfter=Gh,_.isSameOrBefore=Wh,_.isValid=cp,_.lang=ln,_.locale=on,_.localeData=rn,_.max=ch,_.min=dh,_.parsingFlags=hp,_.set=Qd,_.startOf=ap,_.subtract=Vh,_.toArray=rp,_.toObject=up,_.toDate=lp,_.toISOString=Kh,_.inspect=Jh,typeof Symbol<"u"&&Symbol.for!=null&&(_[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),_.toJSON=dp,_.toString=Zh,_.unix=op,_.valueOf=ip,_.creationData=mp,_.eraName=kp,_.eraNarrow=vp,_.eraAbbr=_p,_.eraYear=bp,_.year=Xs,_.isLeapYear=Kd,_.weekYear=xp,_.isoWeekYear=Ap,_.quarter=_.quarters=Hp,_.month=ea,_.daysInMonth=lc,_.week=_.weeks=fc,_.isoWeek=_.isoWeeks=gc,_.weeksInYear=Lp,_.weeksInWeekYear=Dp,_.isoWeeksInYear=Op,_.isoWeeksInISOWeekYear=Np,_.date=la,_.day=_.days=Ac,_.weekday=Oc,_.isoWeekday=Nc,_.dayOfYear=Yp,_.hour=_.hours=$c,_.minute=_.minutes=Fp,_.second=_.seconds=$p,_.millisecond=_.milliseconds=pn,_.utcOffset=_h,_.utc=Th,_.local=Sh,_.parseZone=wh,_.hasAlignedHourOffset=Ch,_.isDST=Mh,_.isLocal=xh,_.isUtcOffset=Ah,_.isUtc=ia,_.isUTC=ia,_.zoneAbbr=Rp,_.zoneName=Pp,_.dates=ue("dates accessor is deprecated. Use date instead.",la),_.months=ue("months accessor is deprecated. Use month instead",ea),_.years=ue("years accessor is deprecated. Use year instead",Xs),_.zone=ue("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",bh),_.isDSTShifted=ue("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Ih);function Bp(e){return E(e*1e3)}function Ep(){return E.apply(null,arguments).parseZone()}function ra(e){return e}var Y=Os.prototype;Y.calendar=xd,Y.longDateFormat=Ld,Y.invalidDate=Vd,Y.ordinal=Fd,Y.preparse=ra,Y.postformat=ra,Y.relativeTime=Ud,Y.pastFuture=Rd,Y.set=Md,Y.eras=fp,Y.erasParse=gp,Y.erasConvertYear=yp,Y.erasAbbrRegex=Sp,Y.erasNameRegex=Tp,Y.erasNarrowRegex=wp,Y.months=ac,Y.monthsShort=nc,Y.monthsParse=oc,Y.monthsRegex=uc,Y.monthsShortRegex=rc,Y.week=cc,Y.firstDayOfYear=mc,Y.firstDayOfWeek=pc,Y.weekdays=wc,Y.weekdaysMin=Mc,Y.weekdaysShort=Cc,Y.weekdaysParse=xc,Y.weekdaysRegex=Lc,Y.weekdaysShortRegex=Dc,Y.weekdaysMinRegex=Vc,Y.isPM=Yc,Y.meridiem=Uc;function Dt(e,s,a,i){var o=xe(),l=ve().set(i,s);return o[a](l,e)}function mn(e,s,a){if(Ie(e)&&(s=e,e=void 0),e=e||"",s!=null)return Dt(e,s,a,"month");var i,o=[];for(i=0;i<12;i++)o[i]=Dt(e,i,a,"month");return o}function zs(e,s,a,i){typeof e=="boolean"?(Ie(s)&&(a=s,s=void 0),s=s||""):(s=e,a=s,e=!1,Ie(s)&&(a=s,s=void 0),s=s||"");var o=xe(),l=e?o._week.dow:0,u,h=[];if(a!=null)return Dt(s,(a+l)%7,i,"day");for(u=0;u<7;u++)h[u]=Dt(s,(u+l)%7,i,"day");return h}function zp(e,s){return mn(e,s,"months")}function jp(e,s){return mn(e,s,"monthsShort")}function Gp(e,s,a){return zs(e,s,a,"weekdays")}function Wp(e,s,a){return zs(e,s,a,"weekdaysShort")}function qp(e,s,a){return zs(e,s,a,"weekdaysMin")}Le("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var s=e%10,a=N(e%100/10)===1?"th":s===1?"st":s===2?"nd":s===3?"rd":"th";return e+a}}),S.lang=ue("moment.lang is deprecated. Use moment.locale instead.",Le),S.langData=ue("moment.langData is deprecated. Use moment.localeData instead.",xe);var be=Math.abs;function Zp(){var e=this._data;return this._milliseconds=be(this._milliseconds),this._days=be(this._days),this._months=be(this._months),e.milliseconds=be(e.milliseconds),e.seconds=be(e.seconds),e.minutes=be(e.minutes),e.hours=be(e.hours),e.months=be(e.months),e.years=be(e.years),this}function fn(e,s,a,i){var o=me(s,a);return e._milliseconds+=i*o._milliseconds,e._days+=i*o._days,e._months+=i*o._months,e._bubble()}function Kp(e,s){return fn(this,e,s,1)}function Jp(e,s){return fn(this,e,s,-1)}function ua(e){return e<0?Math.floor(e):Math.ceil(e)}function Qp(){var e=this._milliseconds,s=this._days,a=this._months,i=this._data,o,l,u,h,p;return e>=0&&s>=0&&a>=0||e<=0&&s<=0&&a<=0||(e+=ua(ks(a)+s)*864e5,s=0,a=0),i.milliseconds=e%1e3,o=re(e/1e3),i.seconds=o%60,l=re(o/60),i.minutes=l%60,u=re(l/60),i.hours=u%24,s+=re(u/24),p=re(gn(s)),a+=p,s-=ua(ks(p)),h=re(a/12),a%=12,i.days=s,i.months=a,i.years=h,this}function gn(e){return e*4800/146097}function ks(e){return e*146097/4800}function Xp(e){if(!this.isValid())return NaN;var s,a,i=this._milliseconds;if(e=de(e),e==="month"||e==="quarter"||e==="year")switch(s=this._days+i/864e5,a=this._months+gn(s),e){case"month":return a;case"quarter":return a/3;case"year":return a/12}else switch(s=this._days+Math.round(ks(this._months)),e){case"week":return s/7+i/6048e5;case"day":return s+i/864e5;case"hour":return s*24+i/36e5;case"minute":return s*1440+i/6e4;case"second":return s*86400+i/1e3;case"millisecond":return Math.floor(s*864e5)+i;default:throw new Error("Unknown unit "+e)}}function Ae(e){return function(){return this.as(e)}}var yn=Ae("ms"),em=Ae("s"),tm=Ae("m"),sm=Ae("h"),am=Ae("d"),nm=Ae("w"),im=Ae("M"),om=Ae("Q"),lm=Ae("y"),rm=yn;function um(){return me(this)}function dm(e){return e=de(e),this.isValid()?this[e+"s"]():NaN}function Ue(e){return function(){return this.isValid()?this._data[e]:NaN}}var cm=Ue("milliseconds"),hm=Ue("seconds"),pm=Ue("minutes"),mm=Ue("hours"),fm=Ue("days"),gm=Ue("months"),ym=Ue("years");function km(){return re(this.days()/7)}var Te=Math.round,je={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function vm(e,s,a,i,o){return o.relativeTime(s||1,!!a,e,i)}function _m(e,s,a,i){var o=me(e).abs(),l=Te(o.as("s")),u=Te(o.as("m")),h=Te(o.as("h")),p=Te(o.as("d")),m=Te(o.as("M")),T=Te(o.as("w")),w=Te(o.as("y")),V=l<=a.ss&&["s",l]||l0,V[4]=i,vm.apply(null,V)}function bm(e){return e===void 0?Te:typeof e=="function"?(Te=e,!0):!1}function Tm(e,s){return je[e]===void 0?!1:s===void 0?je[e]:(je[e]=s,e==="s"&&(je.ss=s-1),!0)}function Sm(e,s){if(!this.isValid())return this.localeData().invalidDate();var a=!1,i=je,o,l;return typeof e=="object"&&(s=e,e=!1),typeof e=="boolean"&&(a=e),typeof s=="object"&&(i=Object.assign({},je,s),s.s!=null&&s.ss==null&&(i.ss=s.s-1)),o=this.localeData(),l=_m(this,!a,i,o),a&&(l=o.pastFuture(+this,l)),o.postformat(l)}var ss=Math.abs;function Pe(e){return(e>0)-(e<0)||+e}function yt(){if(!this.isValid())return this.localeData().invalidDate();var e=ss(this._milliseconds)/1e3,s=ss(this._days),a=ss(this._months),i,o,l,u,h=this.asSeconds(),p,m,T,w;return h?(i=re(e/60),o=re(i/60),e%=60,i%=60,l=re(a/12),a%=12,u=e?e.toFixed(3).replace(/\.?0+$/,""):"",p=h<0?"-":"",m=Pe(this._months)!==Pe(h)?"-":"",T=Pe(this._days)!==Pe(h)?"-":"",w=Pe(this._milliseconds)!==Pe(h)?"-":"",p+"P"+(l?m+l+"Y":"")+(a?m+a+"M":"")+(s?T+s+"D":"")+(o||i||e?"T":"")+(o?w+o+"H":"")+(i?w+i+"M":"")+(e?w+u+"S":"")):"P0D"}var D=Bt.prototype;D.isValid=gh,D.abs=Zp,D.add=Kp,D.subtract=Jp,D.as=Xp,D.asMilliseconds=yn,D.asSeconds=em,D.asMinutes=tm,D.asHours=sm,D.asDays=am,D.asWeeks=nm,D.asMonths=im,D.asQuarters=om,D.asYears=lm,D.valueOf=rm,D._bubble=Qp,D.clone=um,D.get=dm,D.milliseconds=cm,D.seconds=hm,D.minutes=pm,D.hours=mm,D.days=fm,D.weeks=km,D.months=gm,D.years=ym,D.humanize=Sm,D.toISOString=yt,D.toString=yt,D.toJSON=yt,D.locale=on,D.localeData=rn,D.toIsoString=ue("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",yt),D.lang=ln,I("X",0,0,"unix"),I("x",0,0,"valueOf"),C("x",xt),C("X",zd),R("X",function(e,s,a){a._d=new Date(parseFloat(e)*1e3)}),R("x",function(e,s,a){a._d=new Date(N(e))});S.version="2.30.1",wd(E),S.fn=_,S.min=hh,S.max=ph,S.now=mh,S.utc=ve,S.unix=Bp,S.months=zp,S.isDate=dt,S.locale=Le,S.invalid=Ut,S.duration=me,S.isMoment=pe,S.weekdays=Gp,S.parseZone=Ep,S.localeData=xe,S.isDuration=St,S.monthsShort=jp,S.weekdaysMin=qp,S.defineLocale=Fs,S.updateLocale=Ec,S.locales=zc,S.weekdaysShort=Wp,S.normalizeUnits=de,S.relativeTimeRounding=bm,S.relativeTimeThreshold=Tm,S.calendarFormat=Uh,S.prototype=_,S.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"};const ne=e=>ae("/apps/assistant/chat"+e),Ve={HUMAN:"human",ASSISTANT:"assistant"},wm={name:"ChattyLLMInputForm",components:{AgencyConfirmation:Sd,AutoFixIcon:Ir,TrashCanOutlineIcon:ut,PencilOutlineIcon:Vr,PlusIcon:Cs,AssistantIcon:$t,NcActionButton:Vt,NcActions:Ht,NcAppContent:va,NcAppNavigation:ka,NcAppNavigationItem:An,NcAppNavigationList:ya,NcAppNavigationNew:Ca,NcButton:X,NcLoadingIcon:Ke,NcDialog:Qn,ConversationBox:Cu,EditableTextField:Ha,InputArea:Pu,NoSession:Va},data:()=>({active:null,sessionIdToDelete:null,chatContent:"",sessions:null,messages:[],messagesAxiosController:null,allMessagesLoaded:!1,loading:{initialMessages:!1,olderMessages:!1,llmGeneration:!1,titleGeneration:!1,updateTitle:!1,newHumanMessage:!1,newSession:!1,messageDelete:!1,sessionDelete:!1},msgCursor:0,msgLimit:20,titleActionsOpen:!1,editingTitle:!1,pollMessageGenerationTimerId:null,pollTitleGenerationTimerId:null,autoplayAudioChat:rt("assistant","autoplay_audio_chat",!0),slowPickup:!1}),computed:{deletionConfirmationMessage(){if(this.sessions===null||this.sessionIdToDelete===null)return"";const e=this.sessions.find(a=>a.id===this.sessionIdToDelete),s=this.getSessionTitle(e)?.trim();return t("assistant",'Are you sure you want to delete "{sessionTitle}"?',{sessionTitle:s})}},watch:{async active(){if(this.allMessagesLoaded=!1,this.loading.llmGeneration=!1,this.loading.titleGeneration=!1,this.chatContent="",this.msgCursor=0,this.messages=[],this.editingTitle=!1,this.$refs.inputComponent.focus(),this.active===null||this.loading.newSession){this.allMessagesLoaded=!0,this.loading.newSession=!1;return}await this.fetchMessages(),this.scrollToBottom();try{const e=this.active.id,s=(await $.get(ne("/check_session"),{params:{sessionId:e}})).data;if(s?.sessionTitle&&s?.sessionTitle!==this.active.title&&(this.active.title=s?.sessionTitle,console.debug("update session title with check result")),console.debug("check session response:",s),this.active.sessionAgencyPendingActions=s?.sessionAgencyPendingActions,this.active.agencyAnswered=!1,s.messageTaskId!==null)try{this.loading.llmGeneration=!0;const a=await this.pollGenerationTask(s.messageTaskId,e);console.debug("checkTaskPolling result:",a),this.messages.push(a),this.scrollToBottom()}catch(a){console.error("checkGenerationTask error:",a),G(t("assistant","Error generating a response"))}if(s.titleTaskId!==null)try{this.loading.titleGeneration=!0;const a=await this.pollTitleGenerationTask(s.titleTaskId,e),i=a.data;if(console.debug("checkTaskPolling result:",a),i?.result==null)throw new Error("No title generated, response:",a);const o=this.sessions.find(l=>l.id===e);o&&(o.title=i?.result)}catch(a){console.error("onCheckSessionTitle error:",a),G(a?.response?.data?.error??t("assistant","Error getting the generated title for the conversation"))}}catch(e){console.error("check session error:",e),G(t("assistant","Error checking if the session is thinking"))}finally{this.loading.llmGeneration=!1,this.loading.titleGeneration=!1}}},beforeUnmount(){this.pollMessageGenerationTimerId&&clearInterval(this.pollMessageGenerationTimerId),this.pollTitleGenerationTimerId&&clearInterval(this.pollTitleGenerationTimerId)},mounted(){this.fetchSessions()},methods:{scrollToBottom(){console.debug("scrollToBottom: active:",this.active),this.active!=null&&this.messages!=null&&this.$nextTick(()=>{const e=this.messages.length-1;document.querySelector("#message"+e)?.scrollIntoView(),this.$refs.inputComponent.focus()})},onSessionSelect(e){this.active=e},onEditSessionTitleClick(){this.editingTitle=!0,this.titleActionsOpen=!1},async onEditSessionTitle(e){this.loading.updateTitle=!0;const s=this.sessions.find(a=>a.id===this.active.id);try{await $.patch(ne("/update_session"),{sessionId:this.active.id,title:e}),this.editingTitle=!1,s.title=e}catch(a){console.error("updateTitle error:",a),G(a?.response?.data?.error??t("assistant","Error updating title of conversation"))}finally{this.loading.updateTitle=!1}},getSessionTitle(e){return e==null?"":e.title?.trim()?e.title.length>100?e.title.trim().slice(0,100)+"...":e.title.trim():e.timestamp?" "+S(e.timestamp*1e3).format("LLL"):t("assistant","Untitled conversation")},async handleSubmit(e){if(this.chatContent.trim()===""){console.debug("empty message");return}const s=Ve.HUMAN,a=this.chatContent.trim(),i=+new Date/1e3|0;console.debug("[Assistant] submit text",a),this.active===null&&await this.newSession(),this.active.sessionAgencyPendingActions&&(this.active.agencyAnswered=!0),this.messages.push({role:s,content:a,timestamp:i,session_id:this.active.id}),this.chatContent="",this.scrollToBottom(),await this.newMessage(s,a,i,this.active.id)},async handleSubmitAudio(e){console.debug("[Assistant] submit audio",e);const s=Ve.HUMAN,a="",i=+new Date/1e3|0,o=[{type:x.Audio,file_id:e}];this.active===null&&await this.newSession(),this.active.sessionAgencyPendingActions&&(this.active.agencyAnswered=!0),this.messages.push({role:s,content:a,timestamp:i,session_id:this.active.id,attachments:o}),this.chatContent="",this.scrollToBottom(),await this.newMessage(s,a,i,this.active.id,o)},onLoadOlderMessages(){this.loading.initialMessages||this.loading.olderMessages||this.allMessagesLoaded||(this.msgCursor+=this.msgLimit,this.fetchMessages(!0))},async onGenerateSessionTitle(){try{this.loading.titleGeneration=!0;const e=this.active.id,s=await $.get(ne("/generate_title"),{params:{sessionId:e}}),a=await this.pollTitleGenerationTask(s.data.taskId,e),i=a.data;if(console.debug("checkTaskPolling result:",i),i?.result==null)throw new Error("No title generated, response:",a);const o=this.sessions.find(l=>l.id===e);o&&(o.title=i?.result)}catch(e){console.error("onGenerateSessionTitle error:",e),G(e?.response?.data?.error??t("assistant","Error generating a title for the conversation"))}finally{this.loading.titleGeneration=!1}},async deleteSession(e){try{this.loading.sessionDelete=!0,await $.delete(ne("/delete_session"),{params:{sessionId:e}}),this.sessions=this.sessions.filter(s=>s.id!==e),this.active?.id===e&&(this.active=null)}catch(s){console.error("deleteSession error:",s),G(s?.response?.data?.error??t("assistant","Error deleting conversation"))}finally{this.loading.sessionDelete=!1,this.sessionIdToDelete=null}},async fetchSessions(){try{const e=await $.get(ne("/sessions"));console.debug("fetchSessions response:",e),this.sessions=e.data}catch(e){this.sessions=[],console.error("fetchSessions error:",e),G(e?.response?.data?.error??t("assistant","Error fetching conversations"))}},async deleteMessage(e){try{this.loading.messageDelete=!0,await $.delete(ne("/delete_message"),{params:{messageId:e,sessionId:this.active.id}}),this.messages=this.messages.filter(s=>s.id!==e)}catch(s){console.error("deleteMessage error:",s),G(s?.response?.data?.error??t("assistant","Error deleting message"))}finally{this.loading.messageDelete=!1}},async fetchMessages(e=!1){if(this.active==null){console.debug("no active session");return}try{console.debug("fetching messages for:",this.active),e?this.loading.olderMessages=!0:this.loading.initialMessages=!0,this.messagesAxiosController!=null&&this.messagesAxiosController.abort(),this.messagesAxiosController=new AbortController;const s=(await $.get(ne("/messages"),{params:{sessionId:this.active.id,cursor:this.msgCursor,limit:this.msgLimit},signal:this.messagesAxiosController.signal})).data;console.debug("fetchMessages response:",s),this.messages==null&&(this.messages=[]),this.messages.unshift(...s),s.lengthT.id===i);m.title=s}await this.runGenerationTask(i,u)}catch(h){this.loading.newHumanMessage=!1,console.error("newMessage error:",h),G(h?.response?.data?.error??t("assistant","Error creating a new message"))}},async newSession(e=null){try{this.loading.newSession=!0;const s=(await $.put(ne("/new_session"),{timestamp:+new Date/1e3|0,title:e})).data;console.debug("newSession response:",s);const a=s?.session??null;if(a==null)throw new Error(t("assistant","Invalid response received for a new conversation request"));this.sessions.unshift(a),this.active=a}catch(s){this.loading.newSession=!1,console.error("newSession error:",s),G(s?.response?.data?.error??t("assistant","Error creating a new conversation"))}},async runGenerationTask(e,s=null){try{this.slowPickup=!1,this.loading.llmGeneration=!0;const a={sessionId:e};s!==null&&(a.agencyConfirm=s?1:0),this.saveLastSelectedTaskType("chatty-llm");const i=(await $.get(ne("/generate"),{params:a})).data;console.debug("scheduleGenerationTask response:",i);const o=await this.pollGenerationTask(i.taskId,e);console.debug("checkTaskPolling result:",o),this.messages.push(o),this.scrollToBottom()}catch(a){console.error("scheduleGenerationTask error:",a),G(t("assistant","Error generating a response"))}finally{this.loading.llmGeneration=!1}},async runRegenerationTask(e){try{const s=this.active.id;this.loading.llmGeneration=!0;const a=await $.get(ne("/regenerate"),{params:{messageId:e,sessionId:s}}),i=a.data;console.debug("scheduleRegenerationTask response:",a);const o=await this.pollGenerationTask(i.taskId,s);console.debug("checkTaskPolling result:",o),this.messages[this.messages.length-1]=o,this.scrollToBottom()}catch(s){console.error("scheduleRegenerationTask error:",s),G(t("assistant","Error regenerating a response"))}finally{this.loading.llmGeneration=!1}},async pollGenerationTask(e,s){return new Promise((a,i)=>{this.pollMessageGenerationTimerId=setInterval(()=>{if(this.active===null||s!==this.active.id){console.debug("Stop polling messages for session "+s+" because it is not selected anymore"),clearInterval(this.pollMessageGenerationTimerId);return}$.get(ne("/check_generation"),{params:{taskId:e,sessionId:s}}).then(o=>{const l=o.data;clearInterval(this.pollMessageGenerationTimerId),s===this.active.id?(this.active.sessionAgencyPendingActions=l.sessionAgencyPendingActions,this.active.agencyAnswered=!1,(this.doesLastHumanMessageHaveAudio()||l.role===Ve.ASSISTANT&&l.attachments.find(u=>u.type===x.Audio))&&this.updateLastHumanMessageContent(),this.autoplayAudioChat&&(l.autoPlay=!0),a(l)):console.debug("Ignoring received message for session "+s+" that is not selected anymore")}).catch(o=>{o.response?.status!==417?(console.error("checkTaskPolling error",o),clearInterval(this.pollMessageGenerationTimerId),i(new Error("Message generation task check failed"))):(console.debug("checkTaskPolling, task is still scheduled or running"),this.slowPickup=o.response.data.slow_pickup)})},2e3)})},getLastHumanMessage(){return this.messages.filter(e=>e.role===Ve.HUMAN).pop()},doesLastHumanMessageHaveAudio(){const e=this.getLastHumanMessage();return e?e.attachments.find(s=>s.type===x.Audio):!1},async updateLastHumanMessageContent(){const e=this.getLastHumanMessage();if(e){const s=await $.get(ne(`/sessions/${e.session_id}/messages/${e.id}`));if(e.content=s.data.content,this.messages.filter(a=>a.role===Ve.HUMAN).length===1){const a=this.sessions.find(i=>i.id===e.session_id);a.title=s.data.content}}},async pollTitleGenerationTask(e,s){return new Promise((a,i)=>{this.pollTitleGenerationTimerId=setInterval(()=>{if(this.active===null||s!==this.active.id){console.debug("Stop polling title for session "+s+" because it is not selected anymore"),clearInterval(this.pollTitleGenerationTimerId);return}$.get(ne("/check_title_generation"),{params:{taskId:e,sessionId:s}}).then(o=>{s===this.active.id?a(o):console.debug("Ignoring received title for session "+s+" that is not selected anymore"),clearInterval(this.pollTitleGenerationTimerId)}).catch(o=>{o.response?.status!==417?(console.error("checkTaskPolling error",o),clearInterval(this.pollTitleGenerationTimerId),i(new Error("Title generation task check failed"))):console.debug("checkTaskPolling, task is still scheduled or running")})},2e3)})},async onAgencyAnswer(e){this.active.agencyAnswered=!0;const s=Ve.HUMAN,a="",i=+new Date/1e3|0;this.active===null&&await this.newSession(),this.chatContent="",this.scrollToBottom(),await this.newMessage(s,a,i,this.active.id,null,!1,e)},async saveLastSelectedTaskType(e){const s={values:{last_task_type:e}},a=ke("/apps/assistant/config");return $.put(a,s)}}},Cm={class:"container"},Mm={key:0,class:"unloaded-sessions"},Im={key:1,class:"unloaded-sessions"},xm={class:"session-area__top-bar"},Am={class:"session-area__top-bar__title"},Om={key:0,class:"session-area__top-bar__actions"},Nm={class:"session-area__chat-area"},Lm={key:0,class:"session-area__chat-area__active-session__utility-button"},Dm={key:1,class:"session-area__chat-area__active-session__utility-button"},Vm={class:"session-area__disclaimer"},Hm={key:1,class:"session-area__disclaimer"};function Ym(e,s,a,i,o,l){const u=c("PlusIcon"),h=c("NcAppNavigationNew"),p=c("NcLoadingIcon"),m=c("TrashCanOutlineIcon"),T=c("NcActionButton"),w=c("NcAppNavigationItem"),V=c("NcAppNavigationList"),W=c("NcAppNavigation"),j=c("EditableTextField"),H=c("PencilOutlineIcon"),ee=c("AutoFixIcon"),Et=c("NcActions"),pt=c("NoSession"),zt=c("AssistantIcon"),Re=c("NcButton"),jt=c("ConversationBox"),Gt=c("AgencyConfirmation"),Wt=c("InputArea"),qt=c("NcAppContent"),Zt=c("NcDialog");return r(),d("div",Cm,[y(W,null,{default:f(()=>[y(V,null,{default:f(()=>[y(h,{text:e.t("assistant","New conversation"),variant:"secondary",onClick:l.newSession},{icon:f(()=>[y(u,{size:20})]),_:1},8,["text","onClick"]),e.sessions==null?(r(),d("div",Mm,[y(p,{size:30}),A(" "+k(e.t("assistant","Loading conversations…")),1)])):e.sessions!=null&&e.sessions.length===0?(r(),d("div",Im,k(e.t("assistant","No conversations yet")),1)):(r(!0),d(B,{key:2},K(e.sessions,q=>(r(),v(w,{key:"conversation"+q.id,active:q.id===e.active?.id,name:l.getSessionTitle(q),title:l.getSessionTitle(q),"aria-description":l.getSessionTitle(q),editable:!1,"inline-actions":1,onClick:Kt=>l.onSessionSelect(q)},{actions:f(()=>[y(T,{onClick:Kt=>e.sessionIdToDelete=q.id},{icon:f(()=>[e.loading.sessionDelete?(r(),v(p,{key:1,size:20})):(r(),v(m,{key:0,size:20}))]),default:f(()=>[A(" "+k(e.t("assistant","Delete")),1)]),_:1},8,["onClick"])]),_:2},1032,["active","name","title","aria-description","onClick"]))),128))]),_:1})]),_:1}),y(qt,{class:"session-area"},{default:f(()=>[g("div",xm,[g("div",Am,[e.active!=null?(r(),v(j,{key:0,editing:e.editingTitle,"onUpdate:editing":s[0]||(s[0]=q=>e.editingTitle=q),"initial-text":l.getSessionTitle(e.active),placeholder:e.t("assistant","Conversation title"),loading:e.loading.updateTitle,"max-length":100,onSubmitText:l.onEditSessionTitle},null,8,["editing","initial-text","placeholder","loading","onSubmitText"])):b("",!0)]),e.active!=null?(r(),d("div",Om,[y(Et,{open:e.titleActionsOpen,"onUpdate:open":s[1]||(s[1]=q=>e.titleActionsOpen=q)},{default:f(()=>[y(T,{disabled:e.loading.titleGeneration||e.editingTitle,onClick:l.onEditSessionTitleClick},{icon:f(()=>[y(H,{size:20})]),default:f(()=>[A(" "+k(e.t("assistant","Edit title")),1)]),_:1},8,["disabled","onClick"]),y(T,{disabled:e.loading.titleGeneration||e.editingTitle,onClick:l.onGenerateSessionTitle},{icon:f(()=>[e.loading.titleGeneration?(r(),v(p,{key:1,size:20})):(r(),v(ee,{key:0,size:20}))]),default:f(()=>[A(" "+k(e.t("assistant","Generate title")),1)]),_:1},8,["disabled","onClick"])]),_:1},8,["open"])])):b("",!0)]),g("div",Nm,[e.loading.newSession?(r(),v(pt,{key:0,name:e.t("assistant","Creating a new conversation"),description:""},{icon:f(()=>[y(p)]),_:1},8,["name"])):e.active==null||!e.loading.initialMessages&&(e.messages?.length??0)===0?(r(),v(pt,{key:1,name:e.t("assistant","Hello there! What can I help you with today?"),description:e.t("assistant","Try sending a message to spark a conversation.")},{icon:f(()=>[y(zt)]),_:1},8,["name","description"])):(r(),d("div",{key:2,class:"session-area__chat-area__active-session",style:os({height:e.loading.initialMessages||e.loading.newSession?"100%":"auto"})},[e.messages!=null&&e.messages.length>0&&!e.allMessagesLoaded?(r(),d("div",Lm,[y(Re,{"aria-label":e.t("assistant","Load older messages"),disabled:e.loading.initialMessages||e.loading.olderMessages,variant:"secondary",onClick:l.onLoadOlderMessages},{default:f(()=>[e.loading.olderMessages?(r(),v(p,{key:0})):(r(),d(B,{key:1},[A(k(e.t("assistant","Load older messages")),1)],64))]),_:1},8,["aria-label","disabled","onClick"])])):b("",!0),y(jt,{messages:e.messages,loading:e.loading,"slow-pickup":e.slowPickup,onRegenerate:l.runRegenerationTask,onDelete:l.deleteMessage},null,8,["messages","loading","slow-pickup","onRegenerate","onDelete"]),e.messages!=null&&e.messages.length>0&&!e.loading.llmGeneration&&!e.loading.newHumanMessage&&e.messages[e.messages.length-1]?.role==="human"?(r(),d("div",Dm,[y(Re,{"aria-label":e.t("assistant","Retry response generation"),disabled:e.loading.initialMessages||e.loading.llmGeneration,variant:"secondary",onClick:s[2]||(s[2]=q=>l.runGenerationTask(e.active.id))},{default:f(()=>[A(k(e.t("assistant","Retry response generation")),1)]),_:1},8,["aria-label","disabled"])])):b("",!0)],4))]),e.active?.sessionAgencyPendingActions&&e.active?.agencyAnswered===!1?(r(),v(Gt,{key:0,actions:e.active?.sessionAgencyPendingActions,class:"session-area__agency-confirmation",onConfirm:s[3]||(s[3]=q=>l.onAgencyAnswer(!0)),onReject:s[4]||(s[4]=q=>l.onAgencyAnswer(!1))},null,8,["actions"])):b("",!0),g("p",Vm,k(e.t("assistant","Output shown here is generated by AI. Make sure to always double-check.")),1),e.chatContent?.length>64e3?(r(),d("p",Hm,k(e.t("assistant","Messages should not be longer than {maxLength} characters (currently {length}).",{maxLength:64e3,length:e.chatContent.length})),1)):b("",!0),y(Wt,{ref:"inputComponent","chat-content":e.chatContent,"onUpdate:chatContent":s[5]||(s[5]=q=>e.chatContent=q),class:"session-area__input-area",loading:e.loading,onSubmit:l.handleSubmit,onSubmitAudio:l.handleSubmitAudio},null,8,["chat-content","loading","onSubmit","onSubmitAudio"])]),_:1}),y(Zt,{open:e.sessionIdToDelete!==null,name:e.t("assistant","Conversation deletion"),message:l.deletionConfirmationMessage,container:null,onClosing:s[8]||(s[8]=q=>e.sessionIdToDelete=null)},{actions:f(()=>[y(Re,{onClick:s[6]||(s[6]=q=>e.sessionIdToDelete=null)},{default:f(()=>[A(k(e.t("assistant","Cancel")),1)]),_:1}),y(Re,{variant:"warning",onClick:s[7]||(s[7]=q=>l.deleteSession(e.sessionIdToDelete))},{icon:f(()=>[y(m)]),default:f(()=>[A(" "+k(e.t("assistant","Delete")),1)]),_:1})]),_:1},8,["open","name","message"])])}const Fm=M(wm,[["render",Ym],["__scopeId","data-v-2e52daf2"]]),$m=ke("/settings/apps/tools"),Um=t("assistant","tool"),Rm=`${Um}`,Pm=ke("/settings/apps/integration"),Bm=t("assistant","integration"),Em=`${Bm}`,zm="https://docs.nextcloud.com/server/latest/admin_manual/ai/index.html",jm=t("assistant","complete AI documentation"),Gm=`${jm}`,Wm={name:"NoProviderEmptyContent",components:{AssistantIcon:$t,NcEmptyContent:Yt},props:{},data(){return{isAdmin:vt()?.isAdmin}},computed:{action1Html(){return t("assistant","AI provider apps can be found in the {toolLink} and {integrationLink} app settings sections.",{toolLink:Rm,integrationLink:Em},void 0,{escape:!1,sanitize:!1})},action2Html(){return t("assistant","You can also check the {aiAdminDocLink}",{aiAdminDocLink:Gm},void 0,{escape:!1,sanitize:!1})}},watch:{},mounted(){},methods:{}},qm={class:"actions"},Zm=["innerHTML"],Km=["innerHTML"];function Jm(e,s,a,i,o,l){const u=c("AssistantIcon"),h=c("NcEmptyContent");return r(),v(h,{name:e.t("assistant","No provider found"),description:e.t("assistant","AI Providers need to be installed to use the Assistant")},$e({icon:f(()=>[y(u)]),_:2},[o.isAdmin?{name:"action",fn:f(()=>[g("div",qm,[g("span",{innerHTML:l.action1Html},null,8,Zm),g("span",{innerHTML:l.action2Html},null,8,Km)])]),key:"0"}:void 0]),1032,["name","description"])}const Qm=M(Wm,[["render",Jm]]),Xm={name:"BellOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},e1=["aria-hidden","aria-label"],t1=["fill","width","height"],s1={d:"M10 21H14C14 22.1 13.1 23 12 23S10 22.1 10 21M21 19V20H3V19L5 17V11C5 7.9 7 5.2 10 4.3V4C10 2.9 10.9 2 12 2S14 2.9 14 4V4.3C17 5.2 19 7.9 19 11V17L21 19M17 11C17 8.2 14.8 6 12 6S7 8.2 7 11V18H17V11Z"},a1={key:0};function n1(e,s,a,i,o,l){return r(),d("span",L(e.$attrs,{"aria-hidden":a.title?null:"true","aria-label":a.title,class:"material-design-icon bell-outline-icon",role:"img",onClick:s[0]||(s[0]=u=>e.$emit("click",u))}),[(r(),d("svg",{fill:a.fillColor,class:"material-design-icon__svg",width:a.size,height:a.size,viewBox:"0 0 24 24"},[g("path",s1,[a.title?(r(),d("title",a1,k(a.title),1)):b("",!0)])],8,t1))],16,e1)}const i1=M(Xm,[["render",n1]]),o1={name:"BellRingOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},l1=["aria-hidden","aria-label"],r1=["fill","width","height"],u1={d:"M10,21H14A2,2 0 0,1 12,23A2,2 0 0,1 10,21M21,19V20H3V19L5,17V11C5,7.9 7.03,5.17 10,4.29C10,4.19 10,4.1 10,4A2,2 0 0,1 12,2A2,2 0 0,1 14,4C14,4.1 14,4.19 14,4.29C16.97,5.17 19,7.9 19,11V17L21,19M17,11A5,5 0 0,0 12,6A5,5 0 0,0 7,11V18H17V11M19.75,3.19L18.33,4.61C20.04,6.3 21,8.6 21,11H23C23,8.07 21.84,5.25 19.75,3.19M1,11H3C3,8.6 3.96,6.3 5.67,4.61L4.25,3.19C2.16,5.25 1,8.07 1,11Z"},d1={key:0};function c1(e,s,a,i,o,l){return r(),d("span",L(e.$attrs,{"aria-hidden":a.title?null:"true","aria-label":a.title,class:"material-design-icon bell-ring-outline-icon",role:"img",onClick:s[0]||(s[0]=u=>e.$emit("click",u))}),[(r(),d("svg",{fill:a.fillColor,class:"material-design-icon__svg",width:a.size,height:a.size,viewBox:"0 0 24 24"},[g("path",u1,[a.title?(r(),d("title",d1,k(a.title),1)):b("",!0)])],8,r1))],16,l1)}const h1=M(o1,[["render",c1]]),p1={name:"RunningEmptyContent",components:{NcButton:X,NcEmptyContent:Yt,NcLoadingIcon:Ke,NcProgressBar:On,BellOutlineIcon:i1,BellRingOutlineIcon:h1,CloseIcon:Ft,NcNoteCard:Je},props:{description:{type:String,required:!0},progress:{type:[Number,null],default:null},expectedRuntime:{type:[Number,null],default:null},isNotifyEnabled:{type:Boolean,default:!1},taskStatus:{type:[String,null],default:null},scheduledAt:{type:[Number,null],default:null}},emits:["cancel","background-notify"],data(){return{now:Date.now()/1e3,timer:null}},computed:{tooLongForScheduling(){return this.scheduledAt!==null&&this.scheduledAt+300{console.debug("scheduledAt",this.scheduledAt),console.debug("status",this.taskStatus),this.now=Date.now()/1e3},2e3)},beforeUnmount(){this.timer&&clearInterval(this.timer)},methods:{}},m1={class:"running-actions"},f1={key:0,class:"progress"},g1={key:1};function y1(e,s,a,i,o,l){const u=c("NcProgressBar"),h=c("BellRingOutlineIcon"),p=c("BellOutlineIcon"),m=c("NcButton"),T=c("CloseIcon"),w=c("NcNoteCard"),V=c("NcLoadingIcon"),W=c("NcEmptyContent");return r(),v(W,{name:e.t("assistant","Getting results…"),description:a.description},{action:f(()=>[g("div",m1,[a.progress!==null?(r(),d("div",f1,[g("span",null,k(l.formattedProgress)+" %",1),y(u,{value:a.progress},null,8,["value"])])):b("",!0),l.formattedRuntime?(r(),d("div",g1,k(l.formattedRuntime),1)):b("",!0),y(m,{onClick:s[0]||(s[0]=j=>e.$emit("background-notify",!a.isNotifyEnabled))},{icon:f(()=>[a.isNotifyEnabled?(r(),v(h,{key:0})):(r(),v(p,{key:1}))]),default:f(()=>[A(" "+k(e.t("assistant","Get notified when the task finishes")),1)]),_:1}),y(m,{onClick:s[1]||(s[1]=j=>e.$emit("cancel"))},{icon:f(()=>[y(T)]),default:f(()=>[A(" "+k(e.t("assistant","Cancel task")),1)]),_:1}),a.taskStatus===l.TASK_STATUS_STRING.scheduled&&l.tooLongForScheduling?(r(),v(w,{key:2,"show-alert":"",type:"warning"},{default:f(()=>[A(k(e.t("assistant","This task is taking longer to start running than expected. Please contact your administrator to ensure that Assistant is correctly configured.")),1)]),_:1})):b("",!0)])]),icon:f(()=>[y(V)]),_:1},8,["name","description"])}const k1=M(p1,[["render",y1]]),v1={name:"HistoryIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},_1=["aria-hidden","aria-label"],b1=["fill","width","height"],T1={d:"M13.5,8H12V13L16.28,15.54L17,14.33L13.5,12.25V8M13,3A9,9 0 0,0 4,12H1L4.96,16.03L9,12H6A7,7 0 0,1 13,5A7,7 0 0,1 20,12A7,7 0 0,1 13,19C11.07,19 9.32,18.21 8.06,16.94L6.64,18.36C8.27,20 10.5,21 13,21A9,9 0 0,0 22,12A9,9 0 0,0 13,3"},S1={key:0};function w1(e,s,a,i,o,l){return r(),d("span",L(e.$attrs,{"aria-hidden":a.title?null:"true","aria-label":a.title,class:"material-design-icon history-icon",role:"img",onClick:s[0]||(s[0]=u=>e.$emit("click",u))}),[(r(),d("svg",{fill:a.fillColor,class:"material-design-icon__svg",width:a.size,height:a.size,viewBox:"0 0 24 24"},[g("path",T1,[a.title?(r(),d("title",S1,k(a.title),1)):b("",!0)])],8,b1))],16,_1)}const C1=M(v1,[["render",w1]]),M1={name:"CancelIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},I1=["aria-hidden","aria-label"],x1=["fill","width","height"],A1={d:"M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z"},O1={key:0};function N1(e,s,a,i,o,l){return r(),d("span",L(e.$attrs,{"aria-hidden":a.title?null:"true","aria-label":a.title,class:"material-design-icon cancel-icon",role:"img",onClick:s[0]||(s[0]=u=>e.$emit("click",u))}),[(r(),d("svg",{fill:a.fillColor,class:"material-design-icon__svg",width:a.size,height:a.size,viewBox:"0 0 24 24"},[g("path",A1,[a.title?(r(),d("title",O1,k(a.title),1)):b("",!0)])],8,x1))],16,I1)}const L1=M(M1,[["render",N1]]),D1={name:"ProgressQuestionIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},V1=["aria-hidden","aria-label"],H1=["fill","width","height"],Y1={d:"M13 18H11V16H13V18M13 15H11C11 11.75 14 12 14 10C14 8.9 13.1 8 12 8C10.9 8 10 8.9 10 10H8C8 7.79 9.79 6 12 6C14.21 6 16 7.79 16 10C16 12.5 13 12.75 13 15M22 12C22 17.18 18.05 21.45 13 21.95V19.94C16.95 19.45 20 16.08 20 12C20 7.92 16.95 4.55 13 4.06V2.05C18.05 2.55 22 6.82 22 12M11 2.05V4.06C9.54 4.24 8.2 4.82 7.09 5.68L5.67 4.26C7.15 3.05 9 2.25 11 2.05M4.06 11H2.05C2.25 9 3.05 7.15 4.26 5.67L5.68 7.1C4.82 8.2 4.24 9.54 4.06 11M11 19.94V21.95C9 21.75 7.15 20.96 5.67 19.74L7.09 18.32C8.2 19.18 9.54 19.76 11 19.94M2.05 13H4.06C4.24 14.46 4.82 15.8 5.68 16.91L4.26 18.33C3.05 16.85 2.25 15 2.05 13Z"},F1={key:0};function $1(e,s,a,i,o,l){return r(),d("span",L(e.$attrs,{"aria-hidden":a.title?null:"true","aria-label":a.title,class:"material-design-icon progress-question-icon",role:"img",onClick:s[0]||(s[0]=u=>e.$emit("click",u))}),[(r(),d("svg",{fill:a.fillColor,class:"material-design-icon__svg",width:a.size,height:a.size,viewBox:"0 0 24 24"},[g("path",Y1,[a.title?(r(),d("title",F1,k(a.title),1)):b("",!0)])],8,H1))],16,V1)}const da=M(D1,[["render",$1]]),U1={name:"ProgressCheckIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},R1=["aria-hidden","aria-label"],P1=["fill","width","height"],B1={d:"M13,2.03V2.05L13,4.05C17.39,4.59 20.5,8.58 19.96,12.97C19.5,16.61 16.64,19.5 13,19.93V21.93C18.5,21.38 22.5,16.5 21.95,11C21.5,6.25 17.73,2.5 13,2.03M11,2.06C9.05,2.25 7.19,3 5.67,4.26L7.1,5.74C8.22,4.84 9.57,4.26 11,4.06V2.06M4.26,5.67C3,7.19 2.25,9.04 2.05,11H4.05C4.24,9.58 4.8,8.23 5.69,7.1L4.26,5.67M15.5,8.5L10.62,13.38L8.5,11.26L7.44,12.32L10.62,15.5L16.56,9.56L15.5,8.5M2.06,13C2.26,14.96 3.03,16.81 4.27,18.33L5.69,16.9C4.81,15.77 4.24,14.42 4.06,13H2.06M7.1,18.37L5.67,19.74C7.18,21 9.04,21.79 11,22V20C9.58,19.82 8.23,19.25 7.1,18.37Z"},E1={key:0};function z1(e,s,a,i,o,l){return r(),d("span",L(e.$attrs,{"aria-hidden":a.title?null:"true","aria-label":a.title,class:"material-design-icon progress-check-icon",role:"img",onClick:s[0]||(s[0]=u=>e.$emit("click",u))}),[(r(),d("svg",{fill:a.fillColor,class:"material-design-icon__svg",width:a.size,height:a.size,viewBox:"0 0 24 24"},[g("path",B1,[a.title?(r(),d("title",E1,k(a.title),1)):b("",!0)])],8,P1))],16,R1)}const kn=M(U1,[["render",z1]]),j1={name:"ProgressClockIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},G1=["aria-hidden","aria-label"],W1=["fill","width","height"],q1={d:"M13,2.03V2.05L13,4.05C17.39,4.59 20.5,8.58 19.96,12.97C19.5,16.61 16.64,19.5 13,19.93V21.93C18.5,21.38 22.5,16.5 21.95,11C21.5,6.25 17.73,2.5 13,2.03M11,2.06C9.05,2.25 7.19,3 5.67,4.26L7.1,5.74C8.22,4.84 9.57,4.26 11,4.06V2.06M4.26,5.67C3,7.19 2.25,9.04 2.05,11H4.05C4.24,9.58 4.8,8.23 5.69,7.1L4.26,5.67M2.06,13C2.26,14.96 3.03,16.81 4.27,18.33L5.69,16.9C4.81,15.77 4.24,14.42 4.06,13H2.06M7.1,18.37L5.67,19.74C7.18,21 9.04,21.79 11,22V20C9.58,19.82 8.23,19.25 7.1,18.37M12.5,7V12.25L17,14.92L16.25,16.15L11,13V7H12.5Z"},Z1={key:0};function K1(e,s,a,i,o,l){return r(),d("span",L(e.$attrs,{"aria-hidden":a.title?null:"true","aria-label":a.title,class:"material-design-icon progress-clock-icon",role:"img",onClick:s[0]||(s[0]=u=>e.$emit("click",u))}),[(r(),d("svg",{fill:a.fillColor,class:"material-design-icon__svg",width:a.size,height:a.size,viewBox:"0 0 24 24"},[g("path",q1,[a.title?(r(),d("title",Z1,k(a.title),1)):b("",!0)])],8,W1))],16,G1)}const vn=M(j1,[["render",K1]]),J1={name:"AlertCircleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Q1=["aria-hidden","aria-label"],X1=["fill","width","height"],ef={d:"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z"},tf={key:0};function sf(e,s,a,i,o,l){return r(),d("span",L(e.$attrs,{"aria-hidden":a.title?null:"true","aria-label":a.title,class:"material-design-icon alert-circle-outline-icon",role:"img",onClick:s[0]||(s[0]=u=>e.$emit("click",u))}),[(r(),d("svg",{fill:a.fillColor,class:"material-design-icon__svg",width:a.size,height:a.size,viewBox:"0 0 24 24"},[g("path",ef,[a.title?(r(),d("title",tf,k(a.title),1)):b("",!0)])],8,X1))],16,Q1)}const _n=M(J1,[["render",sf]]),af={name:"MicrophoneMessageIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},nf=["aria-hidden","aria-label"],of=["fill","width","height"],lf={d:"M8,7A2,2 0 0,1 10,9V14A2,2 0 0,1 8,16A2,2 0 0,1 6,14V9A2,2 0 0,1 8,7M14,14C14,16.97 11.84,19.44 9,19.92V22H7V19.92C4.16,19.44 2,16.97 2,14H4A4,4 0 0,0 8,18A4,4 0 0,0 12,14H14M21.41,9.41L17.17,13.66L18.18,10H14A2,2 0 0,1 12,8V4A2,2 0 0,1 14,2H20A2,2 0 0,1 22,4V8C22,8.55 21.78,9.05 21.41,9.41Z"},rf={key:0};function uf(e,s,a,i,o,l){return r(),d("span",L(e.$attrs,{"aria-hidden":a.title?null:"true","aria-label":a.title,class:"material-design-icon microphone-message-icon",role:"img",onClick:s[0]||(s[0]=u=>e.$emit("click",u))}),[(r(),d("svg",{fill:a.fillColor,class:"material-design-icon__svg",width:a.size,height:a.size,viewBox:"0 0 24 24"},[g("path",lf,[a.title?(r(),d("title",rf,k(a.title),1)):b("",!0)])],8,of))],16,nf)}const df=M(af,[["render",uf]]),cf={[Q.successful]:ws,[Q.cancelled]:L1,[Q.failed]:_n,[Q.running]:kn,[Q.scheduled]:vn},ca={[Q.successful]:t("assistant","Succeeded"),[Q.cancelled]:t("assistant","Cancelled"),[Q.failed]:t("assistant","Failed"),[Q.running]:t("assistant","Running"),[Q.scheduled]:t("assistant","Scheduled")},hf={name:"TaskListItem",components:{ImageDisplay:Sa,NcListItem:Ui,NcActionButton:Vt,CloseIcon:Ft,TrashCanOutlineIcon:ut,ProgressClockIcon:vn,ProgressCheckIcon:kn,ProgressQuestionIcon:da,CheckIcon:ws,AlertCircleOutlineIcon:_n,ReloadIcon:Da,MicrophoneMessageIcon:df},props:{active:{type:Boolean,default:!1},task:{type:Object,required:!0},taskType:{type:[Object,null],default:null}},emits:["delete","cancel","try-again","load"],data(){return{copied:!1}},computed:{isRunning(){return this.task.status===Q.running},isScheduled(){return this.task.status===Q.scheduled},isSuccessful(){return this.task.status===Q.successful},isText2Image(){return this.task.type==="core:text2image"},onlyHasAudioInput(){return Object.values(this.taskType.inputShape).every(e=>e.type===x.Audio)},onlyHasAudioOutput(){return Object.values(this.taskType.outputShape).every(e=>e.type===x.Audio)},mainName(){return this.textInputPreview},subName(){if(this.task.status===Q.successful){if(this.isText2Image){const e=this.task.output?.length??0;return n("assistant","{n} image generated","{n} images generated",e,{n:e})}return this.textOutputPreview}else if(this.task.status===Q.scheduled){if(this.isText2Image){const e=this.task.input.numberOfImages;return n("assistant","{n} image scheduled","{n} images scheduled",e,{n:e})}return t("assistant","Task scheduled")}return ca[this.task.status]??t("assistant","Unknown status")},details(){return Nn(this.task.lastUpdated*1e3,{ignoreSeconds:!0})},icon(){return cf[this.task.status]??da},statusTitle(){return ca[this.task.status]??t("assistant","Unknown status")},textInputPreview(){const e=[];return Object.keys(this.taskType.inputShape).forEach(s=>{this.taskType.inputShape[s].type===x.Text&&e.push(this.task.input[s])}),e.join(" | ")},textOutputPreview(){if(!this.isSuccessful)return null;const e=[];return Object.keys(this.taskType.outputShape).forEach(s=>{this.taskType.outputShape[s].type===x.Text&&e.push(this.task.output[s])}),e.join(" | ")}},watch:{},mounted(){},methods:{}},pf={class:"item-audio-io"},mf={key:0,class:"inline-images"},ff={key:1,class:"item-audio-io"},gf={key:2};function yf(e,s,a,i,o,l){const u=c("MicrophoneMessageIcon"),h=c("ImageDisplay"),p=c("ReloadIcon"),m=c("NcActionButton"),T=c("CloseIcon"),w=c("TrashCanOutlineIcon"),V=c("NcListItem");return r(),v(V,{class:"task-list-item",name:l.mainName,title:l.subName,bold:!1,active:a.active,details:l.details,onClick:s[3]||(s[3]=W=>e.$emit("load"))},$e({icon:f(()=>[(r(),v(Ye(l.icon),{style:{"margin-right":"8px"},title:l.statusTitle},null,8,["title"]))]),subname:f(()=>[l.isSuccessful&&l.isText2Image?(r(),d("div",mf,[(r(!0),d(B,null,K(a.task.output.images,W=>(r(),v(h,{key:W,"file-id":W,"task-id":a.task.id,"is-output":!0,"border-radius":3},null,8,["file-id","task-id"]))),128))])):l.isSuccessful&&l.onlyHasAudioOutput?(r(),d("div",ff,[y(u),g("span",null,k(e.t("assistant","Audio output")),1)])):(r(),d("span",gf,k(l.subName),1))]),actions:f(()=>[y(m,{onClick:s[0]||(s[0]=W=>e.$emit("try-again"))},{icon:f(()=>[y(p)]),default:f(()=>[A(" "+k(e.t("assistant","Try again")),1)]),_:1}),l.isScheduled||l.isRunning?(r(),v(m,{key:0,"close-after-click":!0,onClick:s[1]||(s[1]=W=>e.$emit("cancel"))},{icon:f(()=>[y(T)]),default:f(()=>[A(" "+k(e.t("assistant","Cancel")),1)]),_:1})):b("",!0),y(m,{onClick:s[2]||(s[2]=W=>e.$emit("delete"))},{icon:f(()=>[y(w)]),default:f(()=>[A(" "+k(e.t("assistant","Delete")),1)]),_:1})]),_:2},[l.onlyHasAudioInput?{name:"name",fn:f(()=>[g("div",pf,[y(u,{class:"item-mic-icon"}),g("span",null,k(e.t("assistant","Audio input")),1)])]),key:"0"}:void 0]),1032,["name","title","active","details"])}const kf=M(hf,[["render",yf]]),vf={name:"TaskList",components:{HistoryIcon:C1,TaskListItem:kf,NcEmptyContent:Yt},props:{taskType:{type:[Object,null],default:null},selectedTaskId:{type:[Number,null],default:null},loading:{type:Boolean,default:!1}},emits:["load-task","try-again","update:loading","task-deleted"],data(){return{tasks:[]}},computed:{emptyContentDescription(){return t("assistant",'You have not submitted any "{taskTypeName}" task yet',{taskTypeName:this.taskType?.name})},sortedTasks(){return this.tasks.filter(e=>e.appId==="assistant").sort((e,s)=>{const a=e.id,i=s.id;return a===i?0:a>i?-1:1})}},watch:{taskType(){this.getTasks()},selectedTaskId(){this.getTasks()}},mounted(){this.getTasks(),Rn("assistant:task:updated",this.updateTask)},beforeUnmount(){Un("assistant:task:updated",this.updateTask)},methods:{getTasks(){this.$emit("update:loading",!0);const e={params:{taskTypeId:this.taskType.id}},s=ae("apps/assistant/api/v1/tasks");$.get(s,e).then(a=>{this.tasks=a.data?.ocs?.data?.tasks}).catch(a=>{console.error(a)}).then(()=>{this.$emit("update:loading",!1)})},updateTask(e){const s=this.tasks.find(a=>a.id===e.id);s&&Object.assign(s,e)},onTaskDelete(e){const s=ae("taskprocessing/task/{id}",{id:e.id});$.delete(s).then(a=>{const i=this.tasks.findIndex(o=>o.id===e.id);i!==-1&&this.tasks.splice(i,1),this.$emit("task-deleted",e)}).catch(a=>{console.error(a)})},onTaskCancel(e){const s=ae("taskprocessing/tasks/{id}/cancel",{id:e.id});$.post(s).then(a=>{e.status=Q.cancelled}).catch(a=>{console.error(a)})}}},_f={class:"task-list"};function bf(e,s,a,i,o,l){const u=c("TaskListItem"),h=c("HistoryIcon"),p=c("NcEmptyContent");return r(),d("div",null,[g("ul",_f,[(r(!0),d(B,null,K(l.sortedTasks,m=>(r(),v(u,{key:m.id,class:"task-list--item",active:m.id===a.selectedTaskId,task:m,"task-type":a.taskType,onTryAgain:T=>e.$emit("try-again",m),onLoad:T=>e.$emit("load-task",m),onDelete:T=>l.onTaskDelete(m),onCancel:T=>l.onTaskCancel(m)},null,8,["active","task","task-type","onTryAgain","onLoad","onDelete","onCancel"]))),128))]),!a.loading&&l.sortedTasks.length===0?(r(),v(p,{key:0,class:"task-list--empty",name:e.t("assistant","Nothing yet"),description:l.emptyContentDescription},{icon:f(()=>[y(h)]),_:1},8,["name","description"])):b("",!0)])}const Tf=M(vf,[["render",bf]]),Sf={name:"MessageOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},wf=["aria-hidden","aria-label"],Cf=["fill","width","height"],Mf={d:"M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M20 16H5.2L4 17.2V4H20V16Z"},If={key:0};function xf(e,s,a,i,o,l){return r(),d("span",L(e.$attrs,{"aria-hidden":a.title?null:"true","aria-label":a.title,class:"material-design-icon message-outline-icon",role:"img",onClick:s[0]||(s[0]=u=>e.$emit("click",u))}),[(r(),d("svg",{fill:a.fillColor,class:"material-design-icon__svg",width:a.size,height:a.size,viewBox:"0 0 24 24"},[g("path",Mf,[a.title?(r(),d("title",If,k(a.title),1)):b("",!0)])],8,Cf))],16,wf)}const ha=M(Sf,[["render",xf]]),Af={name:"DotsHorizontalIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Of=["aria-hidden","aria-label"],Nf=["fill","width","height"],Lf={d:"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z"},Df={key:0};function Vf(e,s,a,i,o,l){return r(),d("span",L(e.$attrs,{"aria-hidden":a.title?null:"true","aria-label":a.title,class:"material-design-icon dots-horizontal-icon",role:"img",onClick:s[0]||(s[0]=u=>e.$emit("click",u))}),[(r(),d("svg",{fill:a.fillColor,class:"material-design-icon__svg",width:a.size,height:a.size,viewBox:"0 0 24 24"},[g("path",Lf,[a.title?(r(),d("title",Df,k(a.title),1)):b("",!0)])],8,Nf))],16,Of)}const Hf=M(Af,[["render",Vf]]),Yf={name:"TextLongIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ff=["aria-hidden","aria-label"],$f=["fill","width","height"],Uf={d:"M4,5H20V7H4V5M4,9H20V11H4V9M4,13H20V15H4V13M4,17H14V19H4V17Z"},Rf={key:0};function Pf(e,s,a,i,o,l){return r(),d("span",L(e.$attrs,{"aria-hidden":a.title?null:"true","aria-label":a.title,class:"material-design-icon text-long-icon",role:"img",onClick:s[0]||(s[0]=u=>e.$emit("click",u))}),[(r(),d("svg",{fill:a.fillColor,class:"material-design-icon__svg",width:a.size,height:a.size,viewBox:"0 0 24 24"},[g("path",Uf,[a.title?(r(),d("title",Rf,k(a.title),1)):b("",!0)])],8,$f))],16,Ff)}const Bf=M(Yf,[["render",Pf]]),Ef={name:"ImageOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},zf=["aria-hidden","aria-label"],jf=["fill","width","height"],Gf={d:"M19,19H5V5H19M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M13.96,12.29L11.21,15.83L9.25,13.47L6.5,17H17.5L13.96,12.29Z"},Wf={key:0};function qf(e,s,a,i,o,l){return r(),d("span",L(e.$attrs,{"aria-hidden":a.title?null:"true","aria-label":a.title,class:"material-design-icon image-outline-icon",role:"img",onClick:s[0]||(s[0]=u=>e.$emit("click",u))}),[(r(),d("svg",{fill:a.fillColor,class:"material-design-icon__svg",width:a.size,height:a.size,viewBox:"0 0 24 24"},[g("path",Gf,[a.title?(r(),d("title",Wf,k(a.title),1)):b("",!0)])],8,jf))],16,zf)}const Zf=M(Ef,[["render",qf]]),Kf={name:"WebIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Jf=["aria-hidden","aria-label"],Qf=["fill","width","height"],Xf={d:"M16.36,14C16.44,13.34 16.5,12.68 16.5,12C16.5,11.32 16.44,10.66 16.36,10H19.74C19.9,10.64 20,11.31 20,12C20,12.69 19.9,13.36 19.74,14M14.59,19.56C15.19,18.45 15.65,17.25 15.97,16H18.92C17.96,17.65 16.43,18.93 14.59,19.56M14.34,14H9.66C9.56,13.34 9.5,12.68 9.5,12C9.5,11.32 9.56,10.65 9.66,10H14.34C14.43,10.65 14.5,11.32 14.5,12C14.5,12.68 14.43,13.34 14.34,14M12,19.96C11.17,18.76 10.5,17.43 10.09,16H13.91C13.5,17.43 12.83,18.76 12,19.96M8,8H5.08C6.03,6.34 7.57,5.06 9.4,4.44C8.8,5.55 8.35,6.75 8,8M5.08,16H8C8.35,17.25 8.8,18.45 9.4,19.56C7.57,18.93 6.03,17.65 5.08,16M4.26,14C4.1,13.36 4,12.69 4,12C4,11.31 4.1,10.64 4.26,10H7.64C7.56,10.66 7.5,11.32 7.5,12C7.5,12.68 7.56,13.34 7.64,14M12,4.03C12.83,5.23 13.5,6.57 13.91,8H10.09C10.5,6.57 11.17,5.23 12,4.03M18.92,8H15.97C15.65,6.75 15.19,5.55 14.59,4.44C16.43,5.07 17.96,6.34 18.92,8M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"},eg={key:0};function tg(e,s,a,i,o,l){return r(),d("span",L(e.$attrs,{"aria-hidden":a.title?null:"true","aria-label":a.title,class:"material-design-icon web-icon",role:"img",onClick:s[0]||(s[0]=u=>e.$emit("click",u))}),[(r(),d("svg",{fill:a.fillColor,class:"material-design-icon__svg",width:a.size,height:a.size,viewBox:"0 0 24 24"},[g("path",Xf,[a.title?(r(),d("title",eg,k(a.title),1)):b("",!0)])],8,Qf))],16,Jf)}const sg=M(Kf,[["render",tg]]),ag={name:"FileIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ng=["aria-hidden","aria-label"],ig=["fill","width","height"],og={d:"M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z"},lg={key:0};function rg(e,s,a,i,o,l){return r(),d("span",L(e.$attrs,{"aria-hidden":a.title?null:"true","aria-label":a.title,class:"material-design-icon file-icon",role:"img",onClick:s[0]||(s[0]=u=>e.$emit("click",u))}),[(r(),d("svg",{fill:a.fillColor,class:"material-design-icon__svg",width:a.size,height:a.size,viewBox:"0 0 24 24"},[g("path",og,[a.title?(r(),d("title",lg,k(a.title),1)):b("",!0)])],8,ig))],16,ng)}const ug=M(ag,[["render",rg]]),dg={name:"ContentPasteSearch",props:{title:{type:String,default:null},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}},emits:["click"]},cg=["aria-hidden","aria-label"],hg=["fill","width","height"],pg={d:"M824-80 716-188q-22 13-46 20.5t-50 7.5q-75 0-127.5-52.5T440-340q0-75 52.5-127.5T620-520q75 0 127.5 52.5T800-340q0 26-7.5 50T772-244l108 108-56 56ZM620-240q42 0 71-29t29-71q0-42-29-71t-71-29q-42 0-71 29t-29 71q0 42 29 71t71 29Zm220-320h-80v-200h-80v120H280v-120h-80v560h200v80H200q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h167q11-35 43-57.5t70-22.5q40 0 71.5 22.5T594-840h166q33 0 56.5 23.5T840-760v200ZM480-760q17 0 28.5-11.5T520-800q0-17-11.5-28.5T480-840q-17 0-28.5 11.5T440-800q0 17 11.5 28.5T480-760Z"},mg={key:0};function fg(e,s,a,i,o,l){return r(),d("span",L(e.$attrs,{"aria-hidden":a.title?null:"true","aria-label":a.title,class:"material-design-icon waveform-icon",role:"img",onClick:s[0]||(s[0]=u=>e.$emit("click",u))}),[(r(),d("svg",{fill:a.fillColor,class:"material-design-icon__svg",width:a.size,height:a.size,viewBox:"0 -960 960 960"},[g("path",pg,[a.title?(r(),d("title",mg,k(a.title),1)):b("",!0)])],8,hg))],16,cg)}const gg=M(dg,[["render",fg]]),yg={name:"Waveform",props:{title:{type:String,default:null},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}},emits:["click"]},kg=["aria-hidden","aria-label"],vg=["fill","width","height"],_g={d:"M280-240v-480h80v480h-80ZM440-80v-800h80v800h-80ZM120-400v-160h80v160h-80Zm480 160v-480h80v480h-80Zm160-160v-160h80v160h-80Z"},bg={key:0};function Tg(e,s,a,i,o,l){return r(),d("span",L(e.$attrs,{"aria-hidden":a.title?null:"true","aria-label":a.title,class:"material-design-icon waveform-icon",role:"img",onClick:s[0]||(s[0]=u=>e.$emit("click",u))}),[(r(),d("svg",{fill:a.fillColor,class:"material-design-icon__svg",width:a.size,height:a.size,viewBox:"0 -960 960 960"},[g("path",_g,[a.title?(r(),d("title",bg,k(a.title),1)):b("",!0)])],8,vg))],16,kg)}const Sg=M(yg,[["render",Tg]]),wg={name:"TaskTypeSelect",components:{NcActions:Ht,NcActionButton:Vt,MessageOutlineIcon:ha,NcButton:X,NcAssistantButton:Si},props:{modelValue:{type:[String,null],default:null},options:{type:Array,required:!0},inline:{type:[Number,null],default:null}},emits:["update:model-value"],data(){return{categorySubmenu:null,useModernStyle:rt("assistant","use-modern-style",!1)}},computed:{onlyInline(){return this.inline===null},buttonTypes(){const e={};for(const a of this.options){const i=this.getTaskCategory(a.id);e[i]||(e[i]=[]),e[i].push(a)}const s=[];for(const a of Object.entries(e))a[0]!=="other"&&s.push({id:a[0],text:this.getTextForCategory(a[0]),icon:this.getCategoryIcon(a[0]),tasks:a[1]});return e.other&&s.push({id:"other",text:this.getTextForCategory("other"),icon:this.getCategoryIcon("other"),tasks:e.other}),s},buttonTypesByInlineStatus(){if(this.onlyInline)return{inline:this.buttonTypes,overflow:[]};const e=this.buttonTypes.slice(0,this.inline);let s=this.buttonTypes.slice(this.inline);const a=s.find(i=>this.isCategorySelected(i));if(a){const i=e.pop();e.push(a),s=s.filter(o=>o.id!==a.id),i&&s.unshift(i)}return{overflow:s,inline:e}},categorySubMenuTaskType(){return this.buttonTypesByInlineStatus.overflow.find(e=>e.id===this.categorySubmenu)}},mounted(){},methods:{selectedTask(e){return e.id===this.modelValue},isCategorySelected(e){return e.id===this.getTaskCategory(this.modelValue||"")},onTaskSelected(e){this.$emit("update:model-value",e.id)},hasSubMenu(e){return e.tasks.length>1||e.id==="other"},onMenuCategorySelected(e){this.hasSubMenu(e)?this.categorySubmenu=e.id:(this.onTaskSelected(e.tasks[0]),this.categorySubmenu=null)},getTaskCategory(e){return e.startsWith("chatty")?"chat":e.startsWith("context_chat")?"context":e.includes("translate")?"translate":e.startsWith("richdocuments")?"generate":e.includes("image")||e.includes("sticker")?"image":e.includes("audio")||e.includes("speech")?"audio":e.includes("text")?"text":"other"},getTextForCategory(e){switch(e){case"chat":return t("assistant","Chat with AI");case"context":return t("assistant","Context Chat");case"text":return t("assistant","Work with text");case"image":return t("assistant","Work with images");case"translate":return t("assistant","Translate");case"audio":return t("assistant","Work with audio");case"generate":return t("assistant","Generate file");default:return t("assistant","Other")}},getCategoryIcon(e){switch(e){case"chat":return ha;case"context":return gg;case"text":return Bf;case"image":return Zf;case"translate":return sg;case"audio":return Sg;case"generate":return ug;default:return Hf}}}},Cg={ref:"taskTypeSelect",class:"task-type-select"};function Mg(e,s,a,i,o,l){const u=c("NcActionButton"),h=c("NcActions"),p=c("NcButton");return r(),d("div",Cg,[(r(!0),d(B,null,K(l.buttonTypesByInlineStatus.inline,m=>(r(),d(B,null,[l.hasSubMenu(m)?(r(),v(h,{key:m.id,"force-menu":!0,"menu-name":m.text,container:e.$refs.taskTypeSelect,primary:l.isCategorySelected(m),class:te({categoryWithSubSelected:o.useModernStyle&&l.isCategorySelected(m)}),onClick:T=>l.onMenuCategorySelected(m)},{icon:f(()=>[(r(),v(Ye(m.icon)))]),default:f(()=>[(r(!0),d(B,null,K(m.tasks,T=>(r(),v(u,{key:T.id,disabled:l.selectedTask(T),title:T.description,"close-after-click":!0,onClick:w=>l.onTaskSelected(T)},{icon:f(()=>[...s[1]||(s[1]=[g("div",{style:{width:"16px"}},null,-1)])]),default:f(()=>[A(" "+k(T.name),1)]),_:2},1032,["disabled","title","onClick"]))),128))]),_:2},1032,["menu-name","container","primary","class","onClick"])):(r(),v(p,{key:m.id+"-button",variant:l.isCategorySelected(m)?"primary":"secondary",class:te({categorySelected:o.useModernStyle&&l.isCategorySelected(m)}),title:m.text,onClick:T=>l.onMenuCategorySelected(m)},{icon:f(()=>[(r(),v(Ye(m.icon)))]),default:f(()=>[A(" "+k(m.text),1)]),_:2},1032,["variant","class","title","onClick"]))],64))),256)),y(h,{"force-menu":!0,container:e.$refs.taskTypeSelect,onClose:s[0]||(s[0]=m=>o.categorySubmenu=null)},{default:f(()=>[l.categorySubMenuTaskType?(r(!0),d(B,{key:1},K(l.categorySubMenuTaskType.tasks,m=>(r(),v(u,{key:m.id,disabled:l.selectedTask(m),title:m.description,"close-after-click":!0,onClick:T=>l.onTaskSelected(m)},{icon:f(()=>[...s[2]||(s[2]=[g("div",{style:{width:"16px"}},null,-1)])]),default:f(()=>[A(" "+k(m.name),1)]),_:2},1032,["disabled","title","onClick"]))),128)):(r(!0),d(B,{key:0},K(l.buttonTypesByInlineStatus.overflow,m=>(r(),v(u,{key:m.id,"is-menu":m.tasks.length>1||m.id==="other",title:m.text,onClick:T=>l.onMenuCategorySelected(m)},{icon:f(()=>[(r(),v(Ye(m.icon)))]),default:f(()=>[A(" "+k(m.text),1)]),_:2},1032,["is-menu","title","onClick"]))),128))]),_:1},8,["container"])],512)}const Ig=M(wg,[["render",Mg],["__scopeId","data-v-6e5da66f"]]),xg={name:"TranslateForm",components:{NcNoteCard:Je,TaskTypeField:Na},props:{translateTaskId:{type:[Number,null],default:null},translateTaskType:{type:Object,required:!0},inputs:{type:[Object,null],default:null},outputs:{type:[Object,null],default:null},showAdvanced:{type:Boolean,default:!1}},emits:["update:inputs","update:outputs"],data(){return{}},computed:{outputEqualsInput(){return typeof this.inputs?.input=="string"&&typeof this.outputs?.output=="string"?this.hasInitialOutput&&this.outputs.output?.trim()===this.inputs.input?.trim():!1},hasInitialOutput(){return!!this.outputs?.output?.trim()}},watch:{translateTaskType(){console.debug("[assistant] watch translateTaskType",this.translateTaskType,this.translateTaskTypeId),this.setDefaultValues(!0)}},mounted(){console.debug("[assistant] mounted TranslateForm",this.translateTaskId,this.translateTaskType),this.translateTaskId===null&&this.setDefaultValues(!1),this.autosize()},methods:{autosize(){const e=document.getElementById("input-input"),s=document.getElementById("output-input");if(e&&s){e.style.overflowY="hidden",e.style.height="auto";const a=e.scrollHeight+10;e.style.height=a+"px",s.style.height=a+"px",e.style.overflowY="auto"}},onValueChange(e,s){e==="input"&&this.autosize();const a={...this.inputs,[e]:s};console.debug("[assistant] translate field value change",a),this.$emit("update:inputs",a)},onOutputValueChange(e,s){const a={...this.outputs,[e]:s};console.debug("[assistant] translate output field value change",a),this.$emit("update:outputs",a)},setDefaultValues(e=!0){console.debug("[assistant] set translate default values",this.translateTaskType?.inputShapeDefaults,this.translateTaskType?.optionalInputShapeDefaults);const s=e?{}:{...this.inputs};this.translateTaskType.inputShapeDefaults&&Object.keys(this.translateTaskType.inputShapeDefaults).forEach(a=>{this.translateTaskType.inputShapeDefaults[a]&&(s[a]=this.translateTaskType.inputShapeDefaults[a])}),this.translateTaskType.optionalInputShapeDefaults&&Object.keys(this.translateTaskType.optionalInputShapeDefaults).forEach(a=>{this.translateTaskType.optionalInputShapeDefaults[a]&&(s[a]=this.translateTaskType.optionalInputShapeDefaults[a])}),this.$emit("update:inputs",s)}}},Ag={class:"assistant-inputs"},Og={class:"input-container"},Ng={class:"wrapper"},Lg={class:"col"},Dg={class:"col"};function Vg(e,s,a,i,o,l){const u=c("TaskTypeField"),h=c("NcNoteCard");return r(),d("div",Ag,[g("div",Og,[g("div",Ng,[g("div",Lg,[y(u,{"field-key":"origin_language",field:a.translateTaskType.inputShape.origin_language,value:a.inputs?.origin_language??null,options:a.translateTaskType.inputShapeEnumValues.origin_language,"is-output":!1,"onUpdate:value":s[0]||(s[0]=p=>l.onValueChange("origin_language",p))},null,8,["field","value","options"]),y(u,{"field-key":"input",field:a.translateTaskType.inputShape.input,value:a.inputs?.input??null,"is-output":!1,"onUpdate:value":s[1]||(s[1]=p=>l.onValueChange("input",p))},null,8,["field","value"]),a.showAdvanced?(r(),v(u,{key:0,"field-key":"max_tokens",field:a.translateTaskType.optionalInputShape.max_tokens,value:a.inputs?.max_tokens??null,"is-output":!1,"onUpdate:value":s[2]||(s[2]=p=>l.onValueChange("max_tokens",p))},null,8,["field","value"])):b("",!0),a.showAdvanced?(r(),v(u,{key:1,"field-key":"model",field:a.translateTaskType.optionalInputShape.model,value:a.inputs?.model??null,options:a.translateTaskType.optionalInputShapeEnumValues.model,"is-output":!1,"onUpdate:value":s[3]||(s[3]=p=>l.onValueChange("model",p))},null,8,["field","value","options"])):b("",!0)]),g("div",Dg,[y(u,{"field-key":"target_language",field:a.translateTaskType.inputShape.target_language,value:a.inputs?.target_language??null,options:a.translateTaskType.inputShapeEnumValues.target_language,"is-output":!1,"onUpdate:value":s[4]||(s[4]=p=>l.onValueChange("target_language",p))},null,8,["field","value","options"]),y(u,{"field-key":"output",field:a.translateTaskType.outputShape.output,value:a.outputs?.output??null,"is-output":!0,"onUpdate:value":s[5]||(s[5]=p=>l.onOutputValueChange("output",p))},null,8,["field","value"]),l.outputEqualsInput?(r(),v(h,{key:0,class:"warning-note",type:"warning"},{default:f(()=>[A(k(e.t("assistant","The task ran successfully but the result is identical to the input.")),1)]),_:1})):l.hasInitialOutput?(r(),v(h,{key:1,class:"warning-note",type:"warning"},{default:f(()=>[A(k(e.t("assistant","This output was generated by AI. Make sure to double-check and adjust.")),1)]),_:1})):b("",!0)])])])])}const Hg=M(xg,[["render",Vg],["__scopeId","data-v-4cdd106f"]]),kt="core:text2text",as="chatty-llm",Yg={name:"AssistantTextProcessingForm",components:{NoProviderEmptyContent:Qm,RunningEmptyContent:k1,TaskList:Tf,TaskTypeSelect:Ig,TranslateForm:Hg,NcButton:X,NcLoadingIcon:Ke,NcIconSvgWrapper:bs,NcActions:Ht,NcActionButton:Vt,NcAppContent:va,NcAppNavigation:ka,NcAppNavigationList:ya,NcAppNavigationNew:Ca,NcAssistantIcon:Ma,CreationIcon:Sn,PlusIcon:Cs,UnfoldLessHorizontalIcon:Qi,UnfoldMoreHorizontalIcon:io,AssistantFormInputs:Jl,AssistantFormOutputs:_r,ChattyLLMInputForm:Fm,EditableTextField:Ha},provide(){return{providedCurrentTaskId:()=>this.selectedTaskId}},props:{loading:{type:Boolean,default:!1},selectedTaskId:{type:[Number,null],default:null},inputs:{type:Object,default:()=>{}},outputs:{type:[Object,null],default:null},selectedTaskTypeId:{type:[String,null],default:null},showSyncTaskRunning:{type:Boolean,default:!1},shortInput:{type:String,required:!0},progress:{type:[Number,null],default:null},expectedRuntime:{type:[Number,null],default:null},isNotifyEnabled:{type:Boolean,default:!1},actionButtons:{type:Array,default:()=>[]},taskTypeIdList:{type:[Array,null],default:null},taskStatus:{type:[String,null],default:null},scheduledAt:{type:[Number,null],default:null}},emits:["sync-submit","action-button-clicked","try-again","load-task","new-task","cancel-task","background-notify"],data(){return{myInputs:this.inputs,myOutputs:this.outputs,taskTypes:[],mySelectedTaskTypeId:this.selectedTaskTypeId||as,loadingTaskTypes:!1,historyLoading:!1,showAdvanced:!1}},computed:{selectedTaskType(){if(this.mySelectedTaskTypeId===null)return null;const e=this.taskTypes.find(s=>s.id===this.mySelectedTaskTypeId);return e!==void 0&&e?e:null},sortedTaskTypes(){return(this.taskTypeIdList!==null?this.taskTypes.slice().filter(e=>this.taskTypeIdList.find(s=>s===e.id)):this.taskTypes.slice()).sort((e,s)=>{const a=e.priority,i=s.priority;return a>i?1:a0||e.optionalOutputShape&&Object.keys(e.optionalOutputShape).length>0:!1},toggleAdvancedLabel(){return this.showAdvanced?t("assistant","Hide advanced options"):t("assistant","Show advanced options")},showSubmit(){return this.selectedTaskType},canSubmit(){if(console.debug("[assistant] canSubmit",this.myInputs),Object.keys(this.myInputs).length===0)return!1;const e=this.selectedTaskType;return Object.keys(e.inputShape).every(s=>{if(this.myInputs[s]===null||this.myInputs[s]===void 0)return!1;const a=e.inputShape[s].type,i=this.myInputs[s];return[x.Text,x.Enum].includes(a)&&typeof i=="string"&&!!i?.trim()&&(a===x.Enum||i.trim().length<=Ct)||[x.Number,x.File,x.Image,x.Audio,x.Video].includes(a)&&typeof i=="number"||a===x.ListOfTexts&&typeof i=="object"&&!!i&&i.every(o=>typeof o=="string"&&!!o?.trim()&&o.trim().length<=Ct)||a===x.ListOfNumbers&&typeof i=="object"&&!!i&&i.every(o=>typeof o=="number")||[x.ListOfFiles,x.ListOfImages,x.ListOfAudios,x.ListOfVideos].includes(a)&&typeof i=="object"&&!!i&&i.every(o=>typeof o=="number")})},syncSubmitButtonLabel(){return this.hasOutput?t("assistant","Try again"):this.selectedTaskType.id===kt?t("assistant","Send request"):this.selectedTaskType.name},syncSubmitButtonTitle(){return this.hasOutput?t("assistant","Launch this task again"):t("assistant","Launch a task")},hasOutput(){return this.myOutputs&&Object.keys(this.myOutputs).length>0&&Object.values(this.myOutputs).every(e=>e!==null)},formattedOutput(){return this.mySelectedTaskTypeId==="OCP\\TextToImage\\Task"?window.location.protocol+"//"+window.location.host+ke("/apps/assistant/i/{imageGenId}",{imageGenId:this.myOutput}):this.myOutput.trim()},actionButtonsToShow(){return this.hasOutput?this.actionButtons:[]}},watch:{outputs(e){console.debug("update output in proc form",e),this.myOutputs=e},inputs(e){this.myInputs=e},mySelectedTaskTypeId(e){this.myOutputs={}}},mounted(){this.getTaskTypes(),console.debug("[assistant] form's myoutputs",this.myOutputs)},methods:{parseTextFileInputs(e){e!=null&&Object.keys(this.myInputs).forEach(s=>{if(e.inputShape[s]?.type==="Text"&&(this.myInputs[s]?.fileId||this.myInputs[s]?.filePath)){const{filePath:a,fileId:i}={fileId:this.myInputs[s]?.fileId,filePath:this.myInputs[s]?.filePath};this.myInputs[s]="",this.parseFile({fileId:i,filePath:a}).then(o=>{o.data?.ocs?.data?.parsedText&&(this.myInputs[s]=o.data?.ocs?.data?.parsedText)}).catch(o=>{console.error(o),G(t("assistant","Failed to parse some files"))})}})},parseFile({filePath:e,fileId:s}){const a=ae("/apps/assistant/api/v1/parse-file");return $.post(a,{filePath:e,fileId:s})},getTaskTypes(){this.loadingTaskTypes=!0,$.get(ae("/apps/assistant/api/v1/task-types")).then(e=>{const s=e.data.ocs.data.types,a=s.find(i=>i.id===this.mySelectedTaskTypeId);if(a===void 0){const i=s.find(o=>o.id===kt);s.find(o=>o.id===as)?this.mySelectedTaskTypeId=as:i?(this.parseTextFileInputs(i),this.mySelectedTaskTypeId=kt):s.length>0?this.mySelectedTaskTypeId=s[0]?.id:this.mySelectedTaskTypeId=null}else this.parseTextFileInputs(a);s.forEach(i=>{if(i.id===kt&&i.inputShape.input)i.inputShape.input.placeholder=t("assistant","Generate a first draft for a blog post about privacy");else if(i.id==="context_chat:context_chat"&&i.inputShape.prompt)i.inputShape.prompt.placeholder=t("assistant","What is the venue for the team retreat this quarter?");else if(i.id==="core:text2text:summary"&&i.inputShape.input)i.inputShape.input.placeholder=t("assistant","Type or paste the text to summarize");else if(i.id==="core:text2text:headline"&&i.inputShape.input)i.inputShape.input.placeholder=t("assistant","Type or paste the text to generate a headline for");else if(i.id==="core:text2text:topics"&&i.inputShape.input)i.inputShape.input.placeholder=t("assistant","Type or paste the text to extract the topics from");else if(i.id==="core:text2image"&&i.inputShape.input&&i.inputShape.numberOfImages)i.inputShape.input.placeholder=t("assistant","landscape trees forest peaceful"),i.inputShape.numberOfImages.placeholder=t("assistant","a number");else if(i.id==="core:contextwrite"&&i.inputShape.source_input&&i.inputShape.style_input)i.inputShape.style_input.placeholder=t("assistant","Shakespeare or an example of the style"),i.inputShape.source_input.placeholder=t("assistant","A description of what you need or some original content");else if(i.id==="core:text2text:translate"){i.inputShapeDefaults.origin_language||(i.inputShapeDefaults.origin_language=i.inputShapeEnumValues.origin_language[0].value);const o=OCA.Assistant.last_target_language;o&&(i.inputShapeDefaults.target_language=o)}}),this.taskTypes=s}).catch(e=>{console.error(e)}).then(()=>{this.loadingTaskTypes=!1})},onTaskTypeUserChange(){this.$emit("new-task");const e=this.myInputs?.input||this.myInputs?.source_input||this.myInputs?.text;(typeof e=="string"||e instanceof String)&&(OCA.Assistant.last_text_input=e),this.$refs?.translateForm?.setDefaultValues(!0),this.$refs?.assistantFormInputs?.setDefaultValues(!0),OCA.Assistant.last_text_input&&(this.selectedTaskType?.inputShape?.input&&this.selectedTaskType?.inputShape?.input.type===x.Text&&(this.myInputs.input=OCA.Assistant.last_text_input),this.selectedTaskType?.inputShape?.source_input&&this.selectedTaskType?.inputShape?.source_input.type===x.Text&&(this.myInputs.source_input=OCA.Assistant.last_text_input),this.selectedTaskType?.inputShape?.text&&this.selectedTaskType?.inputShape?.text.type===x.Text&&(this.myInputs.text=OCA.Assistant.last_text_input)),ti(this.mySelectedTaskTypeId)},onSyncSubmit(){console.debug("[assistant] in form submit ---------",this.myInputs),this.$emit("sync-submit",{inputs:this.myInputs,selectedTaskTypeId:this.mySelectedTaskTypeId})},onActionButtonClick(e){console.debug("[assistant] action button clicked",e,this.myOutputs),this.$emit("action-button-clicked",{button:e,output:this.myOutputs})},onHistoryTryAgain(e){this.$emit("try-again",e)},onHistoryLoadTask(e){this.$emit("load-task",e)},onHistoryNewTask(){this.$emit("new-task"),this.$refs?.translateForm?.setDefaultValues(!0),this.$refs?.assistantFormInputs?.setDefaultValues(!0)},onHistoryTaskDeleted(e){e.id===this.selectedTaskId&&this.onHistoryNewTask()}}},Fg={key:2,class:"assistant-form"},$g={class:"assistant-bubble"},Ug={class:"assistant-bubble__label"},Rg={class:"task-input-output-form"},Pg={key:1,class:"container chatty-inputs"},Bg={class:"session-area__top-bar"},Eg={class:"session-area__top-bar__title"},zg={key:0,class:"session-area__chat-area"},jg={key:1,class:"session-area__chat-area"},Gg={class:"footer"},Wg={class:"footer--action-buttons"};function qg(e,s,a,i,o,l){const u=c("NcLoadingIcon"),h=c("NoProviderEmptyContent"),p=c("NcAssistantIcon"),m=c("TaskTypeSelect"),T=c("ChattyLLMInputForm"),w=c("PlusIcon"),V=c("NcAppNavigationNew"),W=c("TaskList"),j=c("NcAppNavigationList"),H=c("NcAppNavigation"),ee=c("RunningEmptyContent"),Et=c("EditableTextField"),pt=c("TranslateForm"),zt=c("AssistantFormInputs"),Re=c("AssistantFormOutputs"),jt=c("UnfoldLessHorizontalIcon"),Gt=c("UnfoldMoreHorizontalIcon"),Wt=c("NcActionButton"),qt=c("NcActions"),Zt=c("CreationIcon"),q=c("NcButton"),Kt=c("NcIconSvgWrapper"),bn=c("NcAppContent");return o.loadingTaskTypes?(r(),v(u,{key:0})):o.taskTypes.length===0?(r(),v(h,{key:1})):(r(),d("div",Fg,[g("span",$g,[y(p),g("strong",Ug,k(e.t("assistant","Nextcloud Assistant")),1)]),y(m,{modelValue:o.mySelectedTaskTypeId,"onUpdate:modelValue":[s[0]||(s[0]=U=>o.mySelectedTaskTypeId=U),l.onTaskTypeUserChange],class:"task-custom-select",options:l.sortedTaskTypes},null,8,["modelValue","options","onUpdate:modelValue"]),g("div",Rg,[o.mySelectedTaskTypeId==="chatty-llm"?(r(),v(T,{key:0,class:"chatty-inputs"})):(r(),d("div",Pg,[y(H,null,{default:f(()=>[y(j,null,{default:f(()=>[y(V,{text:e.t("assistant","New task"),variant:"secondary",onClick:l.onHistoryNewTask},{icon:f(()=>[y(w,{size:20})]),_:1},8,["text","onClick"]),y(W,{loading:o.historyLoading,"onUpdate:loading":s[1]||(s[1]=U=>o.historyLoading=U),"task-type":l.selectedTaskType,"selected-task-id":a.selectedTaskId,class:"history--list",onTryAgain:l.onHistoryTryAgain,onLoadTask:l.onHistoryLoadTask,onTaskDeleted:l.onHistoryTaskDeleted},null,8,["loading","task-type","selected-task-id","onTryAgain","onLoadTask","onTaskDeleted"])]),_:1})]),_:1}),a.showSyncTaskRunning?(r(),v(ee,{key:0,class:"running-area",description:a.shortInput,progress:a.progress,"expected-runtime":a.expectedRuntime,"is-notify-enabled":a.isNotifyEnabled,"task-status":a.taskStatus,"scheduled-at":a.scheduledAt,onBackgroundNotify:s[2]||(s[2]=U=>e.$emit("background-notify",U)),onCancel:s[3]||(s[3]=U=>e.$emit("cancel-task"))},null,8,["description","progress","expected-runtime","is-notify-enabled","task-status","scheduled-at"])):(r(),v(bn,{key:1,class:"session-area"},{default:f(()=>[g("div",Bg,[g("div",Eg,[y(Et,{"initial-text":l.selectedTaskType.name??""},null,8,["initial-text"])])]),o.mySelectedTaskTypeId==="core:text2text:translate"?(r(),d("div",zg,[l.selectedTaskType?(r(),v(pt,{key:0,ref:"translateForm",inputs:o.myInputs,"onUpdate:inputs":s[4]||(s[4]=U=>o.myInputs=U),outputs:o.myOutputs,"onUpdate:outputs":s[5]||(s[5]=U=>o.myOutputs=U),"show-advanced":o.showAdvanced,"onUpdate:showAdvanced":s[6]||(s[6]=U=>o.showAdvanced=U),"translate-task-id":a.selectedTaskId,"translate-task-type":l.selectedTaskType},null,8,["inputs","outputs","show-advanced","translate-task-id","translate-task-type"])):b("",!0)])):(r(),d("div",jg,[l.selectedTaskType?(r(),v(zt,{key:0,ref:"assistantFormInputs",inputs:o.myInputs,"onUpdate:inputs":s[7]||(s[7]=U=>o.myInputs=U),"show-advanced":o.showAdvanced,"onUpdate:showAdvanced":s[8]||(s[8]=U=>o.showAdvanced=U),"selected-task-id":a.selectedTaskId,"selected-task-type":l.selectedTaskType,onSubmit:l.onSyncSubmit},null,8,["inputs","show-advanced","selected-task-id","selected-task-type","onSubmit"])):b("",!0),l.hasOutput?(r(),v(Re,{key:1,"show-advanced":o.showAdvanced,"onUpdate:showAdvanced":s[9]||(s[9]=U=>o.showAdvanced=U),outputs:o.myOutputs,"onUpdate:outputs":s[10]||(s[10]=U=>o.myOutputs=U),inputs:o.myInputs,"selected-task-type":l.selectedTaskType},null,8,["show-advanced","outputs","inputs","selected-task-type"])):b("",!0)])),g("div",Gg,[g("div",Wg,[l.hasOptionalInputOutputShape?(r(),v(qt,{key:0,"force-menu":!0},{default:f(()=>[y(Wt,{"close-after-click":!0,onClick:s[11]||(s[11]=U=>o.showAdvanced=!o.showAdvanced)},{icon:f(()=>[o.showAdvanced?(r(),v(jt,{key:0})):(r(),v(Gt,{key:1}))]),default:f(()=>[A(" "+k(l.toggleAdvancedLabel),1)]),_:1})]),_:1})):b("",!0),l.showSubmit?(r(),v(q,{key:1,variant:"primary",class:"submit-button",disabled:!l.canSubmit,title:l.syncSubmitButtonTitle,onClick:l.onSyncSubmit},{icon:f(()=>[a.loading?(r(),v(u,{key:0})):(r(),v(Zt,{key:1}))]),default:f(()=>[A(k(l.syncSubmitButtonLabel)+" ",1)]),_:1},8,["disabled","title","onClick"])):b("",!0),(r(!0),d(B,null,K(l.actionButtonsToShow,(U,Tn)=>(r(),v(q,{key:Tn,variant:U.variant??U.type??"secondary",title:U.title,onClick:Zg=>l.onActionButtonClick(U)},$e({default:f(()=>[A(k(U.label)+" ",1)]),_:2},[U.iconSvg?{name:"icon",fn:f(()=>[y(Kt,{svg:U.iconSvg},null,8,["svg"])]),key:"0"}:void 0]),1032,["variant","title","onClick"]))),128))])])]),_:1}))]))])]))}const hy=M(Yg,[["render",qg],["__scopeId","data-v-e5ec6b8a"]]);export{hy as A};
//# sourceMappingURL=AssistantTextProcessingForm-CLwOoYAh.chunk.mjs.map