Build 574548stable
Module 792620
5,675 characters · in no known chunkDependencies
Source Raw
function(e,t,n){"use strict";n.d(t,{Cr:()=>C,F9:()=>_,GL:()=>b,I6:()=>I,IO:()=>O,JC:()=>H,K$:()=>D,Ki:()=>L,Ov:()=>A,TP:()=>E,Xi:()=>F,YL:()=>x,Yh:()=>B,_3:()=>c,a2:()=>p,fE:()=>g,g5:()=>w,hL:()=>U,lG:()=>j,no:()=>P,pU:()=>d,t:()=>m,uD:()=>y,vS:()=>h,vl:()=>T,vv:()=>v,xZ:()=>S,xc:()=>f,xm:()=>W});var i=n(735438),r=n(412703),s=n(927813),a=n(403362),o=n(859703),l=n(710969);function u(e,t){if(null==e)return;let n=new Set;for(let i of t){let t=e.config.taskConfigV2.tasks[i];if(null!=t&&"applications"in t&&Array.isArray(t.applications))for(let e of t.applications)n.add(e.id)}return n.size>0?Array.from(n):void 0}function c(e){if(null==e)return;let t=Object.keys(e.config.taskConfigV2.tasks);return u(e,t)}function d(e){return u(e,[r.n.PLAY_ON_DESKTOP])}function _(e){let t=u(e,[r.n.PLAY_ON_XBOX,r.n.PLAY_ON_PLAYSTATION]);return t?.[0]}function h(e){let t=u(e,[r.n.PLAY_ACTIVITY]);return t?.[0]}function f(e){let t=u(e,[r.n.ACHIEVEMENT_IN_GAME]);return t?.[0]}function E(e){let t=u(e,[r.n.PLAY_ACTIVITY,r.n.ACHIEVEMENT_IN_ACTIVITY]);return t?.[0]}function p(e){let t=u(e,[r.n.STREAM_ON_DESKTOP]);return t?.[0]}function m(e){let{quest:t}=e;return null!=t.config.taskConfigV2.tasks[r.n.PLAY_ON_DESKTOP]}function g(e){let{quest:t}=e;return null!=t.config.taskConfigV2.tasks[r.n.STREAM_ON_DESKTOP]}function A(e){return null!=e.config.taskConfigV2.tasks[r.n.ACHIEVEMENT_IN_ACTIVITY]}function I(e){return null!=e.config.taskConfigV2.tasks[r.n.ACHIEVEMENT_IN_GAME]}function T(e){return null!=e.config.taskConfigV2.tasks[r.n.PLAY_ACTIVITY]}function S(e){return null!=e&&m({quest:e})}function N(e){return t=>e.some(e=>null!=t.config.taskConfigV2.tasks[e])}function C(e){return Array.from(r.o.IN_GAME).some(t=>null!=e.config.taskConfigV2.tasks[t])}let y=N([r.n.PLAY_ON_XBOX,r.n.PLAY_ON_PLAYSTATION]),O=N([r.n.WATCH_VIDEO]),R=N([r.n.WATCH_VIDEO_ON_MOBILE]),v=N([r.n.WATCH_VIDEO,r.n.WATCH_VIDEO_ON_MOBILE]),b=N([r.n.PLAY_ON_DESKTOP,r.n.STREAM_ON_DESKTOP,r.n.PLAY_ON_PLAYSTATION,r.n.PLAY_ON_XBOX,r.n.ACHIEVEMENT_IN_GAME]),L=N([r.n.ACHIEVEMENT_IN_ACTIVITY,r.n.PLAY_ACTIVITY]);function D(e){return R(e)&&!O(e)}function w(e){return y(e)}function P(e){return!y(e)&&m({quest:e})}function M(e,t){let n=e?.progress[t]?.heartbeat?.expiresAt;if(null==n)return!1;let i=new Date(n).valueOf();return!isNaN(i)&&i>Date.now()}function x(e){return null!=e.userStatus&&(M(e.userStatus,r.n.PLAY_ON_XBOX)||M(e.userStatus,r.n.PLAY_ON_PLAYSTATION))}function U(e){return new Set(Object.keys(e.config.taskConfigV2.tasks))}function k(e){return e?.type===r.n.PLAY_ON_DESKTOP}function G(e,t){return e>0?(0,i.floor)(Math.min(t/e,1),4):0}function V(e){let{quest:t,taskType:n,includeTaskTypes:a=r.o.ALL}=e,u=t.config.taskConfigV2,c=n??Object.values(u.tasks).filter(e=>a.has(e.type))[0]?.type,d=u.tasks[c]??u.tasks[r.n.STREAM_ON_DESKTOP];if(null==d)return(0,l.RF)(Error(`Quest ${t.id} has no task matching the include filters`),{tags:{source:"_getTaskDetailsForType"},extra:{questId:t.id,taskType:n,includeTaskTypes:Array.from(a??[])}}),null;let _=d.target,h=((e,t)=>{let n=t.target;if(e.userStatus?.completedAt!=null)return n;let r=Math.min(.99*n,function(e,t){let n=e.userStatus?.progress?.[t.type],r=n?.value??e.userStatus?.streamProgressSeconds??0;if(v(e)){let n=o.A.getOptimisticProgress(e.id,t.type);return null==n||n<r?r:n}return r+function(e,t){let n=e.userStatus?.progress?.[t.type]?.heartbeat?.lastBeatAt;if(null==n||!(x(e)||o.A.isProgressingOnDesktop(e.id)))return 0;let r=Date.now()-new Date(n).valueOf();return(0,i.floor)(r/s.A.Millis.SECOND,2)}(e,t)}(e,t));return Math.max((0,i.floor)(r,2),0)})(t,d),f=Object.values(u.tasks).find(k),E=f?.applications?.map(e=>e.id);return{progressSeconds:h,targetSeconds:_,targetMinutes:Math.ceil(_/s.A.Seconds.MINUTE),percentComplete:G(_,h),taskType:c,applications:E}}function F(e){let t=e.taskConfigV2.tasks[r.n.WATCH_VIDEO],n=e.taskConfigV2.tasks[r.n.WATCH_VIDEO_ON_MOBILE];return null!=t&&null!=n?t:n??t??null}function B(e,t){var n,i;let s=(n=e,i=t,C(n)?{progressSeconds:0,targetSeconds:1,targetMinutes:1,percentComplete:0,taskType:r.n.STREAM_ON_DESKTOP}:y(n)?function(e){let{quest:t,includeTaskTypes:n=r.o.ALL}=e;for(let e of Object.values(t.userStatus?.progress??{}).sort((e,t)=>{let n=e?.heartbeat?.lastBeatAt,i=t?.heartbeat?.lastBeatAt;return null!=n&&null!=i?new Date(n).valueOf()>new Date(i).valueOf()?-1:1:null==n&&null==i&&e?.updatedAt!=null&&t?.updatedAt!=null?new Date(e.updatedAt).valueOf()>new Date(t.updatedAt).valueOf()?-1:1:null!=n&&null==i?-1:1}).filter(a.Vq)){var i;let s=(i=e.eventName,r.o.ALL.has(i)?i:null);if(null==s||!n?.has(s))continue;let a=V({quest:t,taskType:s,includeTaskTypes:n});if(null!=a)return a}return V({quest:t,includeTaskTypes:n})}({quest:n,includeTaskTypes:i??(x(n)?r.o.CONSOLE:r.o.ALL)}):v(n)?V({quest:n,taskType:F(n.config)?.type}):S(n)?V({quest:n,taskType:r.n.PLAY_ON_DESKTOP}):T(n)?V({quest:n,taskType:r.n.PLAY_ACTIVITY}):V({quest:n,taskType:r.n.STREAM_ON_DESKTOP}));if(null!=s)return s;let o=V({quest:e});return null!=o?o:{progressSeconds:0,targetSeconds:1,targetMinutes:1,percentComplete:0,taskType:r.n.STREAM_ON_DESKTOP}}function H(e){let t,n,i,s=(n=(t=e.config.taskConfigV2.tasks)[r.n.ACHIEVEMENT_IN_ACTIVITY],i=t[r.n.ACHIEVEMENT_IN_GAME],n??i??null);if(null==s)return null;let a=e.userStatus?.progress?.[s.type]?.value??0,o=G(s.target,a);return{title:s.messages.taskTitle,description:s.messages.taskDescription,target:s.target,progress:a,percentComplete:o}}function j(e){var t;return{minutes:Math.max(0,Math.floor((t=e.targetSeconds-e.progressSeconds)/60)),seconds:Math.max(0,Math.floor(t%60))}}function W(e){var t,n;let i=j(e);return t=i.minutes,n=i.seconds,`${String(t).padStart(2,"0")}:${String(n).padStart(2,"0")}`}}