1"use strict";(self.webpackChunkd4builds=self.webpackChunkd4builds||[]).push([[402],{8052:function(e,l,n){n.r(l),n.d(l,{default:function(){return ae}});var a=n(4506),t=(n(6449),n(8350),n(6910),n(3514),n(237),n(3921),n(3359),n(6540)),s=n(8055),r=n.n(s),i=n(8798),o=n(8693),u=n(8058),c=n(8114),m=n(902),d=n(4037),_=n(6340),g=n(2269),p=n(9418),h=n(5200),f=n(7797),v=n(6859),b=n(4881),w=n(3829),S=n(7864),y=n(4126),E=(n(9956),n(7062)),k=n(3281),N=n(8587),A=n(686),W=n(9100),C=n(4061),B=n(3423),x=n(9162),O=n(9744),P=n(2855),R=n(5124),I=n(7084),D=n(2512),T=n(9020),L=n(6807),G=n(6909),j=n(2389),H=(n(2799),n(3869)),U=n(3126),M=n(5746),F=n(3500),V=n(6580),q=n(8101),z=n(7645),X=n(9560),J=n(6896),Z=n(6047),Y=n(2450),K=n(560),Q=n(722),$=n(6308),ee=n(4504),le=n(1023),ne=n(7516);function ae(e){var l,n,s,ae,te,se,re;let ie=e.pageContext,oe=(ie.skillTreeStructure,ie.skillTreeStructurePTR,ie.gems),ue=ie.runes,ce=ie.stats,me=(ie.hearts,ie.vampPowers,ie.witchPowers,ie.primeEvilPowers),de=void 0===me?[]:me,_e=(ie.bossPowers,ie.horadricSpells,ie.chaosPerks,ie.stones,ie.gemsPTR),ge=ie.statsPTR,pe=ie.runesPTR,he=ie.mercenarySkillTrees,fe=ie.lootTables,ve=ie.lootTablesPTR,be=ie.elixirs,we=ie.divineGifts,Se=ie.sanctificationStats,ye=ie.elixirsPTR,Ee=ie.bloodiedAffixes,ke=ie.seoName,Ne=ie.seoDescription,Ae=ie.seoId;const We=(0,t.useState)({skills:[],skillsPTR:[],uniques:[],uniquesPTR:[],codexes:[],codexesPTR:[],paragons:{},paragonsPTR:{},skillTree:{},skillTreePTR:{},paragonBoards:[],paragonBoardsPTR:[],paragonGlyphs:[],paragonGlyphsPTR:[],temperingStats:[],temperingStatsPTR:[],charms:[],charmsPTR:[],charmSets:[],charmSetsPTR:[],skillTreeUndercity:[],skillTreeUndercityPTR:[],skillTreePits:[],skillTreePitsPTR:[],skillTreeHelltides:[],skillTreeHelltidesPTR:[],skillTreeDungeons:[],skillTreeDungeonsPTR:[],skillTreeWhispers:[],skillTreeWhispersPTR:[],skillTreeBosses:[],skillTreeBossesPTR:[],skillTreeHordes:[],skillTreeHordesPTR:[]}),Ce=We[0],Be=We[1],xe=(0,t.useState)(!1),Oe=xe[0],Pe=xe[1];(0,t.useEffect)(()=>{(async()=>{try{const e=await Promise.all([fetch("/data/skills.json"),fetch("/data/skills-ptr.json"),fetch("/data/uniques.json"),fetch("/data/uniques-ptr.json"),fetch("/data/codexes.json"),fetch("/data/codexes-ptr.json"),fetch("/data/paragons.json"),fetch("/data/paragons-ptr.json"),fetch("/data/skill-trees.json"),fetch("/data/skill-trees-ptr.json"),fetch("/data/paragon-boards.json"),fetch("/data/paragon-boards-ptr.json"),fetch("/data/paragon-glyphs.json"),fetch("/data/paragon-glyphs-ptr.json"),fetch("/data/tempering-stats.json"),fetch("/data/tempering-stats-ptr.json"),fetch("/data/charms.json"),fetch("/data/charms-ptr.json"),fetch("/data/charm-sets.json"),fetch("/data/charm-sets-ptr.json"),fetch("/data/skilltree-undercity.json"),fetch("/data/skilltree-undercity-ptr.json"),fetch("/data/skilltree-pits.json"),fetch("/data/skilltree-pits-ptr.json"),fetch("/data/skilltree-helltides.json"),fetch("/data/skilltree-helltides-ptr.json"),fetch("/data/skilltree-dungeons.json"),fetch("/data/skilltree-dungeons-ptr.json"),fetch("/data/skilltree-whispers.json"),fetch("/data/skilltree-whispers-ptr.json"),fetch("/data/skilltree-bosses.json"),fetch("/data/skilltree-bosses-ptr.json"),fetch("/data/skilltree-hordes.json"),fetch("/data/skilltree-hordes-ptr.json")]),l=e[0],n=e[1],a=e[2],t=e[3],s=e[4],r=e[5],i=e[6],o=e[7],c=e[8],m=e[9],d=e[10],_=e[11],g=e[12],p=e[13],h=e[14],f=e[15],v=e[16],b=e[17],w=e[18],S=e[19],y=e[20],E=e[21],k=e[22],N=e[23],A=e[24],W=e[25],C=e[26],B=e[27],x=e[28],O=e[29],P=e[30],R=e[31],I=e[32],D=e[33],T=await Promise.all([l.text().then(u.H),n.text().then(u.H),a.text().then(u.H),t.text().then(u.H),s.text().then(u.H),r.text().then(u.H),i.text().then(u.H),o.text().then(u.H),c.text().then(u.H),m.text().then(u.H),d.text().then(u.H),_.text().then(u.H),g.text().then(u.H),p.text().then(u.H),h.text().then(u.H),f.text().then(u.H),v.text().then(u.H),b.text().then(u.H),w.text().then(u.H),S.text().then(u.H),y.text().then(u.H),E.text().then(u.H),k.text().then(u.H),N.text().then(u.H),A.text().then(u.H),W.text().then(u.H),C.text().then(u.H),B.text().then(u.H),x.text().then(u.H),O.text().then(u.H),P.text().then(u.H),R.text().then(u.H),I.text().then(u.H),D.text().then(u.H)]),L=T[0],G=T[1],j=T[2],H=T[3],U=T[4],M=T[5],F=T[6],V=T[7],q=T[8],z=T[9],X=T[10],J=T[11],Z=T[12],Y=T[13],K=T[14],Q=T[15],$=T[16],ee=T[17],le=T[18],ne=T[19],ae=T[20],te=T[21],se=T[22],re=T[23],ie=T[24],oe=T[25],ue=T[26],ce=T[27],me=T[28],de=T[29],_e=T[30],ge=T[31],pe=T[32],he=T[33];Be({skills:L,skillsPTR:G,uniques:j,uniquesPTR:H,codexes:U,codexesPTR:M,paragons:F,paragonsPTR:V,skillTree:q,skillTreePTR:z,paragonBoards:X,paragonBoardsPTR:J,paragonGlyphs:Z,paragonGlyphsPTR:Y,temperingStats:K,temperingStatsPTR:Q,charms:$,charmsPTR:ee,charmSets:le,charmSetsPTR:ne,skillTreeUndercity:ae,skillTreeUndercityPTR:te,skillTreePits:se,skillTreePitsPTR:re,
1skillTreeHelltides:ie,skillTreeHelltidesPTR:oe,skillTreeDungeons:ue,skillTreeDungeonsPTR:ce,skillTreeWhispers:me,skillTreeWhispersPTR:de,skillTreeBosses:_e,skillTreeBossesPTR:ge,skillTreeHordes:pe,skillTreeHordesPTR:he}),Pe(!0)}catch(So){console.error("Failed to load static data:",So)}})()},[]);const Re=Ce.skills,Ie=void 0===Re?[]:Re,De=Ce.skillsPTR,Te=void 0===De?[]:De,Le=Ce.uniques,Ge=void 0===Le?[]:Le,je=Ce.uniquesPTR,He=void 0===je?[]:je,Ue=Ce.codexes,Me=void 0===Ue?[]:Ue,Fe=Ce.codexesPTR,Ve=void 0===Fe?[]:Fe,qe=Ce.paragons,ze=void 0===qe?{}:qe,Xe=Ce.paragonsPTR,Je=void 0===Xe?{}:Xe,Ze=Ce.skillTree,Ye=void 0===Ze?{}:Ze,Ke=Ce.skillTreePTR,Qe=void 0===Ke?{}:Ke,$e=Ce.paragonBoards,el=void 0===$e?[]:$e,ll=Ce.paragonBoardsPTR,nl=void 0===ll?[]:ll,al=Ce.paragonGlyphs,tl=void 0===al?[]:al,sl=Ce.paragonGlyphsPTR,rl=void 0===sl?[]:sl,il=Ce.temperingStats,ol=void 0===il?[]:il,ul=Ce.temperingStatsPTR,cl=void 0===ul?[]:ul,ml=Ce.charms,dl=void 0===ml?[]:ml,_l=Ce.charmsPTR,gl=void 0===_l?[]:_l,pl=Ce.charmSets,hl=void 0===pl?[]:pl,fl=Ce.charmSetsPTR,vl=void 0===fl?[]:fl,bl=Ce.skillTreeUndercity,wl=void 0===bl?[]:bl,Sl=Ce.skillTreeUndercityPTR,yl=void 0===Sl?[]:Sl,El=Ce.skillTreePits,kl=void 0===El?[]:El,Nl=Ce.skillTreePitsPTR,Al=void 0===Nl?[]:Nl,Wl=Ce.skillTreeHelltides,Cl=void 0===Wl?[]:Wl,Bl=Ce.skillTreeHelltidesPTR,xl=void 0===Bl?[]:Bl,Ol=Ce.skillTreeDungeons,Pl=void 0===Ol?[]:Ol,Rl=Ce.skillTreeDungeonsPTR,Il=void 0===Rl?[]:Rl,Dl=Ce.skillTreeWhispers,Tl=void 0===Dl?[]:Dl,Ll=Ce.skillTreeWhispersPTR,Gl=void 0===Ll?[]:Ll,jl=Ce.skillTreeBosses,Hl=void 0===jl?[]:jl,Ul=Ce.skillTreeBossesPTR,Ml=void 0===Ul?[]:Ul,Fl=Ce.skillTreeHordes,Vl=void 0===Fl?[]:Fl,ql=Ce.skillTreeHordesPTR,zl=void 0===ql?[]:ql,Xl=(0,t.useRef)(!0),Jl=(0,t.useRef)(null),Zl=(0,t.useRef)(!1),Yl=((0,F.l)(),"undefined"!=typeof window&&!0===(null===(l=window.electron)||void 0===l?void 0:l.isElectron));(0,V.u)(Yl,[{type:"corner_ad_video"},{type:"left_rail"},{type:"right_rail"},{type:"bottom_rail"}],"build-planner");const Kl=(0,t.useState)({name:null,owner:null,class:null,gear:{Helm:null,"Chest Armor":null,Gloves:null,Pants:null,Boots:null,Amulet:null,"Ring 1":null,"Ring 2":null,Weapon:null,Offhand:null,"Bludgeoning Weapon":null,"Slashing Weapon":null,"Dual-Wield Weapon 1":null,"Dual-Wield Weapon 2":null},skills:[null,null,null,null,null,null],skillTree:null,paragon:{boards:[{name:"Starting Board",rotation:0,x:0,y:0,glyph:null}],selectedTiles:["startingboard_r15c11"]},expertise:null,oaths:null,boons:{Deer:[],Eagle:[],Wolf:[],Snake:[]},summons:{"Skeletal Warriors":{spec:null,upgrade:null},"Skeletal Mages":{spec:null,upgrade:null},Golems:{spec:null,upgrade:null}},specialization:null,enchantments:[null,null],favorites:[],gems:{Weapon:null,Armor:null,Jewelry:null,"Ring 1":null,"Ring 2":null},newGems:{Helm:[null,null],"Chest Armor":[null,null],Pants:[null,null],Amulet:[null],"Ring 1":[null],"Ring 2":[null],"Bludgeoning Weapon":[null,null],"Slashing Weapon":[null,null],"Ranged Weapon":[null,null],"Dual-Wield Weapon 1":[null],"Dual-Wield Weapon 2":[null],Weapon:[null,null],Offhand:[null]},notes:"",stats:{},lastUpdated:"",showcase:"",leveling:!1,levelingOrder:[],season:15,hearts:[null,null,null],vampPowers:[null,null,null,null,null],witchPowers:[null,null,null,null,null,null],primeEvilPower:null,bossPowers:[null,null,null,null],horadricSpells:[null,null,null,null],catalystPair:[null,null],chaosPerks:[null,null,null,null],variants:[],variantName:"",tuningStones:[null,null,null,null,null,null],governingStones:[null,null],mercenarySkillTree2:null,mercenarySkillTreeFiltered2:[],mercenary2:"",reinforcement2:"",mercenarySkill2:"",mercenaryOpportunity2:"",elixirs:[null,null,null,null],divineGifts:[null,null,null,null,null,null,null,null],craftedMythic:[],mythicCharms:[]}),Ql=Kl[0],$l=Kl[1],en=(0,t.useState)([]),ln=en[0],nn=en[1],an=(0,t.useState)({}),tn=an[0],sn=an[1],rn=(0,t.useState)("Gear & Skills"),on=rn[0],un=rn[1],cn=(0,t.useState)(""),mn=cn[0],dn=cn[1],_n=(0,t.useState)(""),gn=_n[0],pn=_n[1],hn=(0,t.useState)(""),fn=hn[0],vn=hn[1],bn=(0,t.useState)(""),wn=bn[0],Sn=bn[1],yn=(0,t.useState)(""),En=yn[0],kn=yn[1],Nn=(0,t.useState)(0),An=Nn[0],Wn=Nn[1],Cn=(0,t.useState)(!1),Bn=Cn[0],xn=Cn[1],On=(0,t.useState)(!1),Pn=On[0],Rn=On[1],In=(0,t.useState)(!1),Dn=In[0],Tn=In[1],Ln=(0,t.useState)(!1),Gn=Ln[0],jn=Ln[1],Hn=(0,t.useState)(!1),Un=Hn[0],Mn=Hn[1],Fn=(0,t.useState)(!1),Vn=Fn[0],qn=Fn[1],zn=(0,t.useState)(!1),Xn=zn[0],Jn=zn[1],Zn=(0,t.useState)(!1),Yn=Zn[0],Kn=Zn[1],Qn=(0,t.useState)(!1),$n=Qn[0],ea=Qn[1],la=(0,t.useState)(!1),na=la[0],aa=la[1],ta=(0,t.useState)(!1),sa=ta[0],ra=ta[1],ia=(0,t.useState)(!1),oa=ia[0],ua=ia[1],ca=(0,t.useState)(!1),ma=ca[0],da=ca[1],_a=(0,t.useState)(!1),ga=_a[0],pa=_a[1],ha=(0,t.useState)(!1),fa=ha[0],va=ha[1],ba=(0,t.useState)(!1),wa=ba[0],Sa=ba[1],ya=(0,t.useState)(!1),Ea=ya[0],ka=ya[1],Na=(0,t.useState)(!1),Aa=Na[0],Wa=Na[1],Ca=(0,t.useState)(!1),Ba=Ca[0],xa=Ca[1],Oa=(0,t.useState)(!1),Pa=Oa[0],Ra=Oa[1],Ia=(0,t.useState)(!1),Da=Ia[0],Ta=Ia[1],La=(0,t.useState)(!1),Ga=La[0],ja=La[1],Ha=(0,t.useState)(!1),Ua=Ha[0],Ma=Ha[1],Fa=(0,t.useState)(null),Va=
1Fa[0],qa=Fa[1],za=(0,t.useState)(!1),Xa=za[0],Ja=za[1],Za=(0,t.useState)(!1),Ya=Za[0],Ka=Za[1],Qa=(0,t.useState)(!1),$a=Qa[0],et=Qa[1],lt=(0,t.useState)(!1),nt=lt[0],at=lt[1],tt=(0,t.useState)(""),st=tt[0],rt=tt[1],it=(0,t.useState)([]),ot=it[0],ut=it[1],ct=(0,t.useState)([]),mt=ct[0],dt=ct[1],_t=(0,t.useState)(""),gt=_t[0],pt=_t[1],ht=(0,t.useState)([]),ft=ht[0],vt=ht[1],bt=(0,t.useState)(!1),wt=bt[0],St=bt[1],yt=(0,t.useState)("Aspects & Uniques"),Et=yt[0],kt=yt[1],Nt=(0,t.useState)("Charms"),At=Nt[0],Wt=Nt[1],Ct=(0,t.useState)(""),Bt=(Ct[0],Ct[1],(0,t.useState)("")),xt=Bt[0],Ot=Bt[1],Pt=(0,t.useState)(""),Rt=Pt[0],It=Pt[1],Dt=(0,t.useState)(""),Tt=Dt[0],Lt=Dt[1],Gt=(0,t.useState)(""),jt=Gt[0],Ht=Gt[1],Ut=(0,t.useState)(!1),Mt=Ut[0],Ft=Ut[1],Vt=(0,t.useState)([]),qt=Vt[0],zt=Vt[1],Xt=(0,t.useState)(""),Jt=Xt[0],Zt=(Xt[1],(0,t.useState)("")),Yt=Zt[0],Kt=Zt[1],Qt=(0,t.useState)(""),$t=Qt[0],es=Qt[1],ls=(0,t.useState)([]),ns=ls[0],as=ls[1],ts=(0,t.useState)([]),ss=ts[0],rs=ts[1],is=(0,t.useState)(""),os=is[0],us=is[1],cs=(0,t.useState)(0),ms=cs[0],ds=cs[1],_s=(0,t.useState)([]),gs=_s[0],ps=_s[1],hs=(0,t.useState)({}),fs=hs[0],vs=hs[1],bs=(0,t.useState)(""),ws=bs[0],Ss=bs[1],ys=(0,t.useState)([]),Es=ys[0],ks=(ys[1],(0,t.useState)([])),Ns=(ks[0],ks[1]),As=(0,t.useState)(!1),Ws=As[0],Cs=As[1],Bs=(0,t.useState)(!1),xs=(Bs[0],Bs[1]),Os=(0,t.useState)(!0),Ps=Os[0],Rs=Os[1],Is=(0,t.useState)(0),Ds=Is[0],Ts=Is[1],Ls=(0,t.useState)(0),Gs=Ls[0],js=Ls[1],Hs=(0,t.useState)([]),Us=(Hs[0],Hs[1],(0,t.useState)({})),Ms=Us[0],Fs=Us[1],Vs=(0,t.useState)(""),qs=Vs[0],zs=Vs[1],Xs=(0,t.useState)([]),Js=Xs[0],Zs=Xs[1],Ys=(0,t.useState)([]),Ks=(Ys[0],Ys[1]),Qs=(0,t.useState)("Whispers"),$s=Qs[0],er=Qs[1],lr=(0,t.useState)(0),nr=lr[0],ar=lr[1],tr=(0,t.useState)([]),sr=tr[0],rr=tr[1],ir=(0,t.useState)({}),or=ir[0],ur=ir[1],cr=(0,t.useState)(""),mr=cr[0],dr=cr[1],_r=(0,t.useState)([]),gr=_r[0],pr=_r[1],hr=(0,t.useState)([]),fr=hr[0],vr=hr[1],br=(0,t.useState)(!1),wr=br[0],Sr=br[1],yr=(0,t.useState)(!1),Er=yr[0],kr=yr[1],Nr=(0,t.useState)(!1),Ar=Nr[0],Wr=Nr[1],Cr=(0,t.useState)(!1),Br=Cr[0],xr=Cr[1],Or=(0,t.useState)({}),Pr=Or[0],Rr=Or[1],Ir=(0,t.useState)(0),Dr=Ir[0],Tr=Ir[1],Lr=(0,t.useState)(!1),Gr=Lr[0],jr=Lr[1],Hr=(0,t.useState)(!1),Ur=Hr[0],Mr=Hr[1],Fr=(0,t.useState)(Ql.notes||""),Vr=Fr[0],qr=Fr[1],zr=(0,t.useState)(!1),Xr=zr[0],Jr=zr[1],Zr=(0,t.useState)(null),Yr=Zr[0],Kr=Zr[1],Qr=(0,t.useRef)(null),$r=(0,t.useState)(!1),ei=$r[0],li=$r[1],ni=(0,t.useState)("Select Variant"),ai=ni[0],ti=ni[1],si=(0,t.useState)("Copy To Variant"),ri=si[0],ii=si[1],oi=(0,t.useState)("Copy To Another Build"),ui=oi[0],ci=oi[1],mi=(0,t.useState)("Import Saved Paragon"),di=mi[0],_i=mi[1],gi=(0,t.useState)("Import Saved War Plans"),pi=gi[0],hi=gi[1],fi=(0,t.useState)(!0),vi=fi[0],bi=fi[1],wi=(0,t.useState)({Primary:{Strength:0,Dexterity:0,Intelligence:0,Willpower:0}}),Si=wi[0],yi=wi[1],Ei=(0,t.useState)(""),ki=Ei[0],Ni=Ei[1],Ai=(0,t.useState)([]),Wi=Ai[0],Ci=Ai[1],Bi=(0,t.useState)([]),xi=Bi[0],Oi=Bi[1],Pi=(0,t.useState)(0),Ri=Pi[0],Ii=Pi[1],Di=(0,t.useState)(0),Ti=Di[0],Li=Di[1],Gi=(0,t.useState)(!1),ji=Gi[0],Hi=Gi[1],Ui=(0,t.useState)(""),Mi=Ui[0],Fi=Ui[1],Vi=(0,t.useState)(""),qi=Vi[0],zi=Vi[1],Xi=(0,t.useState)(0),Ji=Xi[0],Zi=Xi[1],Yi=(0,t.useState)([]),Ki=Yi[0],Qi=Yi[1],$i=(0,t.useState)(""),eo=$i[0],lo=$i[1],no=(0,t.useState)(""),ao=no[0],to=no[1],so=(0,t.useState)(!1),ro=so[0],io=so[1],oo=(0,t.useState)(!1),uo=oo[0],co=oo[1],mo=(0,t.useState)(!1),_o=mo[0],go=(mo[1],(0,t.useState)(!1)),po=go[0],ho=go[1],fo=(0,t.useState)(""),vo=fo[0],bo=fo[1],wo=(0,t.useState)(""),So=wo[0],yo=wo[1],Eo=(0,t.useState)(!1),ko=Eo[0],No=Eo[1],Ao=(0,t.useState)(!1),Wo=Ao[0],Co=Ao[1],Bo=(0,t.useState)(!1),xo=Bo[0],Oo=Bo[1],Po=(0,f.P8)(),Ro=Po.currentUser,Io=Po.profileData,Do=(0,t.useState)(!1),To=Do[0],Lo=Do[1],Go=(0,t.useState)(""),jo=Go[0],Ho=Go[1],Uo=(0,t.useState)(!1),Mo=Uo[0],Fo=Uo[1],Vo=(0,t.useState)(!1),qo=Vo[0],zo=Vo[1],Xo=(0,t.useState)("Save Changes"),Jo=Xo[0],Zo=Xo[1],Yo=(0,t.useState)([]),Ko=Yo[0],Qo=Yo[1],$o=(0,t.useState)(""),eu=$o[0],lu=$o[1],nu=(0,t.useState)([]),au=nu[0],tu=nu[1],su=(0,t.useState)([]),ru=(su[0],su[1]),iu=(0,t.useState)([]),ou=(iu[0],iu[1],(0,t.useState)("")),uu=ou[0],cu=ou[1],mu=(0,t.useState)(null),du=mu[0],_u=mu[1],gu=()=>0===Dr?Ql:Dr>0&&Dr<=Ql.variants.length?Ql.variants[Dr-1]:Ql,pu=e=>Array.isArray(e)?e:e?[e]:[],hu=e=>e&&"object"==typeof e?(e.craftedMythic=pu(e.craftedMythic),e.mythicCharms=pu(e.mythicCharms),Array.isArray(e.variants)&&e.variants.forEac
1h(e=>{e&&"object"==typeof e&&(e.craftedMythic=pu(e.craftedMythic),e.mythicCharms=pu(e.mythicCharms))}),e):e;(0,t.useEffect)(()=>{Wn(gu().season)},[]),(0,t.useEffect)(()=>{if(!Ql.owner)return;(async()=>{try{const e=(0,h.H9)(h.db,"users",Ql.owner,"profileInfo","socials"),l=await(0,h.x7)(e);l.exists()&&_u(l.data())}catch(e){console.log(e)}})()},[Ql.owner]),(0,t.useEffect)(()=>{Ro&&Ql.owner&&Ro.uid===Ql.owner&&_u(Io)},[Io,Ro,Ql.owner]);const fu=e=>{if(!e)return"";const l=e.trim();if(!l)return"";try{const e=/^[a-zA-Z][a-zA-Z\d+.-]*:/.test(l)?l:"https://"+l,n=new URL(e);return"http:"!==n.protocol&&"https:"!==n.protocol?"":n.toString()}catch(n){return""}},vu=fu(null==du?void 0:du.youtubeLink),bu=fu(null==du?void 0:du.twitchLink);(0,t.useEffect)(()=>{Mr(!1)},[An,Ur,Dr]),(0,t.useEffect)(()=>{if(Xr&&Qr.current){requestAnimationFrame(()=>{let e=document.getElementById("myTextArea");if(e){e.focus();const l=Math.min(null!=Yr?Yr:e.value.length,e.value.length);e.setSelectionRange(l,l);const n=window.getComputedStyle(e),a=Number.parseFloat(n.lineHeight)||1.8*Number.parseFloat(n.fontSize)||28.8,t=e.value.slice(0,l).split("\n").length-1,s=Math.max(t*a-e.clientHeight/2+a,0);e.scrollTop=s}})}},[Xr,Yr]),(0,t.useEffect)(()=>{let e=Object.assign({},Ql);if(0===Dr)e.paragon.boards.map((e,l)=>{e.boardNumber||(e.boardNumber=Number(l)+1)}),$l(e);else if(Dr>0&&Dr<=e.variants.length){const l=Dr-1;e.variants[l].paragon.boards.map((e,l)=>{e.boardNumber||(e.boardNumber=Number(l)+1)}),$l(e)}},[gu().paragon.boards,Dr]);const wu=(e,l)=>{let n=Object.assign({},Ql);if(0===Dr)n.arsenals[l]=e;else if(Dr>0&&Dr<=n.variants.length){const a=Dr-1;n.variants[a].arsenals[l]=e}$l(n),Fo(!0)},Su=(e,l,n,a)=>{let t=[];if(e){let n=0,a={};for(let u=0;u<e.length;u++){var s,r,i,o;if(t.push(parseInt(e[u],10)),n+=parseInt(e[u],10),a[null===(s=l[u])||void 0===s?void 0:s.section])a[null===(r=l[u])||void 0===r?void 0:r.section]=a[null===(i=l[u])||void 0===i?void 0:i.section]+parseInt(e[u],10);else a[null===(o=l[u])||void 0===o?void 0:o.section]=parseInt(e[u],10)}vs(a),ds(n),ps([].concat(t))}else{for(let e=0;e<(null==l?void 0:l.length);e++)t.push(0);if(ps([].concat(t)),n)if(0===a)n.skillTree=t.join(""),n.levelingOrder=[],$l(Object.assign({},n));else{const e=a-1;n.variants[e].skillTree=t.join(""),n.variants[e].levelingOrder=[],$l(Object.assign({},n))}ds(0)}},yu=(e,l)=>{if(e){let n=[],a=0,t={};for(let s=0;s<e.length;s++)n.push(parseInt(e[s],10)),a+=parseInt(e[s],10),t[l[s].section]?t[l[s].section]=t[l[s].section]+parseInt(e[s],10):t[l[s].section]=parseInt(e[s],10);ur(t),ar(a),rr([].concat(n))}else{let e=[];for(let n=0;n<(null==l?void 0:l.length);n++)e.push(0);rr([].concat(e)),ar(0)}},Eu=(e,l,n,a)=>{let t=l||Object.assign({},Ql);Tr(e);let s=gu().season<15?Ye:Qe;0===e?(Su(t.skillTree,(null==n?void 0:n[t.class])||s[t.class],t,e),yu(t.mercenarySkillTree2,a||he),window.history.replaceState("","","?var="+e)):e>0&&e<=t.variants.length&&(t.variants[e-1].newGems||(t.variants[e-1].newGems={Helm:[null,null],"Chest Armor":[null,null],Pants:[null,null],Amulet:[null],"Ring 1":[null],"Ring 2":[null],"Bludgeoning Weapon":[null,null],"Slashing Weapon":[null,null],"Ranged Weapon":[null,null],"Dual-Wield Weapon 1":[null],"Dual-Wield Weapon 2":[null],Weapon:[null,null],Offhand:[null],Shield:[null]}),t.variants[e-1].arsenals||(t.variants[e-1].arsenals=[null,null,null,null,null,null]),t.variants[e-1].tuningStones||t.variants[e-1].governingStones||(t.variants[e-1].tuningStones=[null,null,null,null,null,null],t.variants[e-1].governingStones=[null,null]),Su(t.variants[e-1].skillTree,(null==n?void 0:n[t.class])||s[t.variants[e-1].class],t,e),yu(t.variants[e-1].mercenarySkillTree2,a||he),window.history.replaceState("","","?var="+e))};(0,t.useEffect)(()=>{const e=gu().season<15?Ge:He,l=gu().season<15?Me.concat(e):Ve.concat(e);l.sort((e,l)=>e.name.localeCompare(l.name)),dt(l)},[An,Dr,Oe]),(0,t.useEffect)(()=>{if(Oe){let e=Ie.filter(e=>"Combo Points"===e.name||"Inner Sight"===e.name||"Preparation"===e.name||e.display_name);rs(e)}},[Oe]),(0,t.useEffect)(()=>{if(!Oe||Zl.current)return;const e=e=>{if(null==e||!e.gear||null==e||!e.newStats)return!1;if(e.season<15)return!1;const l=e.season<15?Ge:He;if(null==l||!l.length)return!1;let n=!1;return Object.keys(e.gear).forEach(a=>{const t=e.gear[a];if(!t)return;l.some(e=>
1e.name===t)&&Array.isArray(e.newStats[a])&&(null!==e.newStats[a][0]&&(e.newStats[a][0]=null,n=!0),null!==e.newStats[a][1]&&(e.newStats[a][1]=null,n=!0))}),n},l=r()(Ql);let n=e(l);Array.isArray(l.variants)&&l.variants.forEach(l=>{e(l)&&(n=!0)}),n&&$l(l),Zl.current=!0},[Oe,Ge,He]),(0,t.useEffect)(()=>{if(Ro){(async()=>{const e=(0,h.H9)(h.db,"users",Ro.uid,"builds",Ae||window.location.pathname.split("/")[2]);(await(0,h.x7)(e)).exists()&&(Co(!0),Oo(!1))})()}else Co(!1)},[Ro]),(0,t.useEffect)(()=>{Oe&&(Lo(!0),(async()=>{var e;let l,n="";const t=(0,h.H9)(h.db,"builds",Ae||window.location.pathname.split("/")[2]);if(l=await(0,h.x7)(t),null!==(e=l)&&void 0!==e&&e.exists()){var s,r,o,u,m;let e=l.data();var d,_,g,f,v,b;if(e=hu(e),Lo(!1),"mercenarySkillTreeFiltered2"in e||(e.mercenarySkillTreeFiltered2=[]),null===e.paragon&&(e.paragon={boards:[{name:"Starting Board",rotation:0,x:0,y:0,glyph:null}],selectedTiles:["startingboard_r15c11"]}),!("newStats"in e)||"Paladin"!==e.class&&"Warlock"!==e.class||(delete e.newStats["Bludgeoning Weapon"],delete e.newStats["Dual-Wield Weapon 1"],delete e.newStats["Dual-Wield Weapon 2"],delete e.newStats["Slashing Weapon"],e.newStats.Weapon||(e.newStats.Weapon=[null,null,null,null,null]),e.newStats.Shield||"Paladin"!==e.class||(e.newStats.Shield=[null,null,null,null,null]),e.newStats.Shield||"Warlock"!==e.class||(e.newStats.Offhand=[null,null,null,null,null])),!("masterworking"in e)||"Paladin"!==e.class&&"Warlock"!==e.class||(delete e.masterworking["Bludgeoning Weapon"],delete e.masterworking["Dual-Wield Weapon 1"],delete e.masterworking["Dual-Wield Weapon 2"],delete e.masterworking["Slashing Weapon"],e.masterworking.Weapon||(e.masterworking.Weapon=[null,null,null,null,null]),e.masterworking.Shield||"Paladin"!==e.class||(e.masterworking.Shield=[null,null,null,null,null]),e.masterworking.Offhand||"Warlock"!==e.class||(e.masterworking.Offhand=[null,null,null,null,null])),!("temperingStats"in e)||"Paladin"!==e.class&&"Warlock"!==e.class||(delete e.temperingStats["Bludgeoning Weapon"],delete e.temperingStats["Dual-Wield Weapon 1"],delete e.temperingStats["Dual-Wield Weapon 2"],delete e.temperingStats["Slashing Weapon"],e.temperingStats.Weapon||(e.temperingStats.Weapon=[null]),e.temperingStats.Shield||"Paladin"!==e.class||(e.temperingStats.Shield=[null]),e.temperingStats.Offhand||"Warlock"!==e.class||(e.temperingStats.Offhand=[null])),!("greaterAffixes"in e)||"Paladin"!==e.class&&"Warlock"!==e.class||(delete e.greaterAffixes["Bludgeoning Weapon"],delete e.greaterAffixes["Dual-Wield Weapon 1"],delete e.greaterAffixes["Dual-Wield Weapon 2"],delete e.greaterAffixes["Slashing Weapon"],e.greaterAffixes.Weapon||(e.greaterAffixes.Weapon=[null,null,null,null,null]),e.greaterAffixes.Shield||"Paladin"!==e.class||(e.greaterAffixes.Shield=[null,null,null,null,null]),e.greaterAffixes.Offhand||"Warlock"!==e.class||(e.greaterAffixes.Offhand=[null,null,null,null,null])),!("newGems"in e)||"Paladin"!==e.class&&"Warlock"!==e.class||(delete e.newGems["Bludgeoning Weapon"],delete e.newGems["Dual-Wield Weapon 1"],delete e.newGems["Dual-Wield Weapon 2"],delete e.newGems["Slashing Weapon"],e.newGems.Weapon||(e.newGems.Weapon=[null,null]),e.newGems.Shield||"Paladin"!==e.class||(e.newGems.Shield=[null]),e.newGems.Offhand||"Warlock"!==e.class||(e.newGems.Offhand=[null])),!("sanctification"in e)||"Paladin"!==e.class&&"Warlock"!==e.class||(delete e.sanctification["Bludgeoning Weapon"],delete e.sanctification["Dual-Wield Weapon 1"],delete e.sanctification["Dual-Wield Weapon 2"],delete e.sanctification["Slashing Weapon"]),"sanctification"in e&&Object.keys(e.sanctification).forEach(l=>{if("Amulet"!==l){const n=e.sanctification[l];n&&(n.includes("effect")||n.includes("Aspect"))&&(e.sanctification[l]=null)}}),"temperingStats"in e&&e.season>=11)2===(null===(d=e.temperingStats)||void 0===d||null===(_=d.Weapon)||void 0===_?void 0:_.length)&&(null===(g=e.temperingStats)||void 0===g||null===(f=g.Weapon)||void 0===f||f.pop());if(null!==(s=e)&&void 0!==s&&null!==(r=s.paragon)&&void 0!==r&&r.selectedTiles&&(e.paragon.selectedTiles=(0,a.A)(new Set(e.paragon.selectedTiles)).map(e=>e.replace(/^sapping_/,"prodigy'stempo_").replace(/^sinistertendrils_/,"constrictingtendrils_"))),"chaosPerks"in e&&5===e.chaosPerks.length&&e.chaosPerks.pop(),"gems"in e&&(e.gems["Ring 1"]||(e.gems["Ring 1"]=null),e.gems["Ring 2"]||(e.gems["Ring 2"]=null)),"gems"in e||(e.gems={Weapon:null,Armor:null,Jewelry:null,"Ring 1":null,"Ring 2":null}),"stats"in e&&(e.stats["Ring 2"]||(e.stats["Ring 2"]=[null,null,null,null,null]),e.stats.Boots&&4===e.stats.Boots.length&&e.stats.Boots.push(null),e.stats["Ring 1"]&&4===e.stats["Ring 1"].length&&e.stats["Ring 1"].push(null),e.stats["Ring 2"]&&4===e.stats["Ring 2"].length&&e.stats["Ring 2"].push(null),e.stats.Pants&&4===e.stats.Pants.length&&e.stats.Pants.push(null),e.stats["Bludgeoning Weapon"]&&4===e.stats["Bludgeoning Weapon"].length&&e.stats["Bludgeoning Weapon"].push(null),e.stats["Dual-Wield Weapon 1"]&&4===e.stats["Dual-Wield Weapon 1"].length&&e.stats["Dual-Wield Weapon 1"].push(null),e.stats["Dual-Wield Weapon 2"]&&4===e.stats["Dual-Wield Weapon 2"].length&&e.stats["Dual-Wield Weapon 2"].push(null),e.stats["Slashing Weapon"]&&4===e.stats["Slashing Weapon"].length&&e.stats["Slashing Weapon"].push(null),e.stats.Weapon&&4===e.stats.Weapon.length&&e.stats.Weapon.push(null),e.stats.Shield&&4===e.stats.Shield.length&&e.stats.Shield.push(null)),"charms"in e||(e.charms=[null,null,null,null,null,null]),"seal"in e||(e.seal=null),"bloodiedAffixes"in e||(e.bloodiedAffixes=cm[e.class]),"bloodiedAffixesGAMW"in e||(e.bloodiedAffixesGAMW=mm[e.class]),"sanctification"in e||(e.sanctification=um[e.class]),"greaterAffixes"in e||(e.greaterAffixes=om[e.class]),"arsenals"in e||(e.arsenals=[null,null,null,null,null,null]),"stats"in e||(e.stats=gm[e.class]),"newStats"in e||(e.newStats=_m[e.class]),"newStats"in e&&_m[e.class]){const l=_m[e.class];Object.keys(l).forEach(n=>{if(e.newStats[n]){for(;e.newStats[n].length<l[n].length;)e.newStats[n].push(null);(0,c.m4)(e.newStats[n],Lm.indexOf(n)>-1,!0)}})}if("temperingStats"in e||(e.temperingStats=dm[e.class]),"masterworking"in e||(e.masterworking=im[e.class]),"levelingOrder"in e||(e.levelingOrder=[]),"hearts"in e||(e.hearts=[null,null,null]),"vampPowers"in e||(e.vampPowers=[null,null,null,null,null]),"witchPowers"in e||(e.witchPowers=[null,null,null,null,null,null]),"bossPowers"in e||(e.bossPowers=[null,null,null,null]),"horadricSpells"in e||(e.horadricSpells=[null,null,null,null]),"catalystPair"in e||(e.catalystPair=[null,null]),"chaosPerks"in e||(e.chaosPerks=[null,null,null,null]),"divineGifts"in e||(e.divineGifts=[null,null,null,null,null,null,null,null]),"elixirs"in e||(e.elixirs=[null,null,null,null]),"season"in e||(e.season=0),"variants"in e||(e.variants=[]),"variantName"in e||(e.variantName="Standard Build"),"tuningStones"in e||(e.tuningStones=[null,null,null,null,null,null]),"governingStones"in e||(e.governingStones=[null,null]),"order"in e&&-1!==e.order||(e.order=0),"index"in e||(e.index=0),"newGems"in e||(e.newGems={Helm:[null,null],"Chest Armor":[null,
1null],Pants:[null,null],Amulet:[null],"Ring 1":[null],"Ring 2":[null],"Bludgeoning Weapon":[null,null],"Slashing Weapon":[null,null],"Ranged Weapon":[null,null],"Dual-Wield Weapon 1":[null],"Dual-Wield Weapon 2":[null],Weapon:[null,null],Offhand:[null],Shield:[null]}),"newGems"in e)1===e.newGems.Weapon.length&&e.newGems.Weapon.push(null),1===(null===(v=e.newGems.Gloves)||void 0===v?void 0:v.length)&&delete e.newGems.Gloves,1===(null===(b=e.newGems.Boots)||void 0===b?void 0:b.length)&&delete e.newGems.Boots;if("variants"in e){let l=Object.assign({},e);l.variants.map((l,n)=>{var t,s;if(null!==l.order&&void 0!==l.order||(l.order=n+1,l.index=n+1),null!=l&&null!==(t=l.paragon)&&void 0!==t&&t.selectedTiles&&(l.paragon.selectedTiles=(0,a.A)(new Set(l.paragon.selectedTiles)).map(e=>e.replace(/^sapping_/,"prodigy'stempo_").replace(/^sinistertendrils_/,"constrictingtendrils_"))),"charms"in l||(l.charms=[null,null,null,null,null,null]),"seal"in l||(l.seal=null),"bloodiedAffixes"in l||(l.bloodiedAffixes=cm[e.class]),"bloodiedAffixesGAMW"in l||(l.bloodiedAffixesGAMW=mm[e.class]),"sanctification"in l||(l.sanctification=um[e.class]),"sanctification"in l&&Object.keys(l.sanctification).forEach(e=>{if("Amulet"!==e){const n=l.sanctification[e];n&&(n.includes("effect")||n.includes("Aspect"))&&(l.sanctification[e]=null)}}),"greaterAffixes"in l||(l.greaterAffixes=om[e.class]),"bossPowers"in l||(l.bossPowers=[null,null,null,null]),"horadricSpells"in l||(l.horadricSpells=[null,null,null,null]),"catalystPair"in l||(l.catalystPair=[null,null]),"chaosPerks"in l||(l.chaosPerks=[null,null,null,null]),"divineGifts"in l||(l.divineGifts=[null,null,null,null,null,null,null,null]),"elixirs"in l||(l.elixirs=[null,null,null,null]),"mercenarySkillTreeFiltered2"in l||(l.mercenarySkillTreeFiltered2=[]),"arsenals"in l||(l.arsenals=[null,null,null,null,null,null]),"newStats"in l||(l.newStats=_m[e.class]),"newStats"in l&&_m[e.class]){const n=_m[e.class];Object.keys(n).forEach(e=>{if(l.newStats[e]){for(;l.newStats[e].length<n[e].length;)l.newStats[e].push(null);(0,c.m4)(l.newStats[e],Lm.indexOf(e)>-1,!0)}})}("temperingStats"in l||(l.temperingStats=dm[e.class]),"masterworking"in l||(l.masterworking=im[e.class]),"newGems"in l||(l.newGems={Helm:[null,null],"Chest Armor":[null,null],Pants:[null,null],Amulet:[null],"Ring 1":[null],"Ring 2":[null],"Bludgeoning Weapon":[null,null],"Slashing Weapon":[null,null],"Ranged Weapon":[null,null],"Dual-Wield Weapon 1":[null],"Dual-Wield Weapon 2":[null],Weapon:[null,null],Offhand:[null],Shield:[null]}),"newGems"in l)&&(1===l.newGems.Weapon.length&&l.newGems.Weapon.push(null),1===(null===(s=l.newGems.Gloves)||void 0===s?void 0:s.length)&&delete l.newGems.Gloves);"gems"in l&&(l.gems["Ring 1"]||(l.gems["Ring 1"]=null),l.gems["Ring 2"]||(l.gems["Ring 2"]=null)),"stats"in l&&(l.stats.Boots&&4===l.stats.Boots.length&&l.stats.Boots.push(null),l.stats["Ring 1"]&&4===l.stats["Ring 1"].length&&l.stats["Ring 1"].push(null),l.stats["Ring 2"]&&4===l.stats["Ring 2"].length&&l.stats["Ring 2"].push(null),l.stats.Pants&&4===l.stats.Pants.length&&l.stats.Pants.push(null),l.stats["Bludgeoning Weapon"]&&4===l.stats["Bludgeoning Weapon"].length&&l.stats["Bludgeoning Weapon"].push(null),l.stats["Dual-Wield Weapon 1"]&&4===l.stats["Dual-Wield Weapon 1"].length&&l.stats["Dual-Wield Weapon 1"].push(null),l.stats["Dual-Wield Weapon 2"]&&4===l.stats["Dual-Wield Weapon 2"].length&&l.stats["Dual-Wield Weapon 2"].push(null),l.stats["Slashing Weapon"]&&4===l.stats["Slashing Weapon"].length&&l.stats["Slashing Weapon"].push(null),l.stats.Weapon&&4===l.stats.Weapon.length&&l.stats.Weapon.push(null),l.stats.Shield&&4===l.stats.Shield.length&&l.stats.Shield.push(null))}),$l(l)}$l(e),Ho(p.A.sanitize(e.name)||"No Build Name"),qr(e.notes);const t=e.season<15?Ge:He,h=e.season<15?Me.concat(t):Ve.concat(t);h.sort((e,l)=>e.name.localeCompare(l.name)),dt(h),jc(e),Hc(e),n=e.class;const S=e.season<15?Ye:Qe;Su((null===(o=e)||void 0===o||null===(u=o.skillTree)||void 0===u?void 0:u.length)===(null==S||null===(m=S[e.class])||void 0===m?void 0:m.length)?e.skillTree:null,S[e.class]),em(e);const y=i.A.parse(window.location.search);if(y.var&&e.variants[parseInt(y.var-1,10)]){if(e.variants[parseInt(y.var-1,10)].newGems||(e.variants[parseInt(y.var-1,10)].newGems={Helm:[null,null],"Chest Armor":[null,
1null],Pants:[null,null],Amulet:[null],"Ring 1":[null],"Ring 2":[null],"Bludgeoning Weapon":[null,null],"Slashing Weapon":[null,null],"Ranged Weapon":[null,null],"Dual-Wield Weapon 1":[null],"Dual-Wield Weapon 2":[null],Weapon:[null,null],Offhand:[null],Shield:[null]}),e.variants[parseInt(y.var-1,10)].arsenals||(e.variants[parseInt(y.var-1,10)].arsenals=[null,null,null,null,null,null]),!e.variants[parseInt(y.var-1,10)].tuningStones&&!e.variants[parseInt(y.var-1,10)].governingStones){let l=e;l.variants[parseInt(y.var-1,10)].tuningStones=[null,null,null,null,null,null],l.variants[parseInt(y.var-1,10)].governingStones=[null,null],$l(Object.assign({},l))}Eu(parseInt(y.var,10),e,S,he.data)}else if("0"===(null==y?void 0:y.var))Eu(e.index,e,S,he.data);else{const l=new URLSearchParams(window.location.search);l.delete("var");const n=l.toString()?window.location.pathname+"?"+l.toString():window.location.pathname;if(window.history.replaceState("","",n),0!==e.order){var w;const l=null===(w=e.variants)||void 0===w?void 0:w.find((e,l)=>0===e.order);Eu(l.index,e,S,he.data)}else Eu(e.index,e,S,he.data)}}else{let e=localStorage.getItem("builds");if(e)if(e=JSON.parse(e),e[window.location.pathname.split("/")[2]]){var S,y,E,k,N;let l=e[window.location.pathname.split("/")[2]];if(l=hu(l),Lo(!1),null===l.paragon&&(l.paragon={boards:[{name:"Starting Board",rotation:0,x:0,y:0,glyph:null}],selectedTiles:["startingboard_r15c11"]}),null!==(S=l)&&void 0!==S&&null!==(y=S.paragon)&&void 0!==y&&y.selectedTiles&&(l.paragon.selectedTiles=(0,a.A)(new Set(l.paragon.selectedTiles)).map(e=>e.replace(/^sapping_/,"prodigy'stempo_").replace(/^sinistertendrils_/,"constrictingtendrils_"))),"gems"in l&&(l.gems["Ring 1"]||(l.gems["Ring 1"]=null),l.gems["Ring 2"]||(l.gems["Ring 2"]=null)),"gems"in l||(l.gems={Weapon:null,Armor:null,Jewelry:null,"Ring 1":null,"Ring 2":null}),"stats"in l&&(l.stats.Boots&&4===l.stats.Boots.length&&l.stats.Boots.push(null),l.stats["Ring 1"]&&4===l.stats["Ring 1"].length&&l.stats["Ring 1"].push(null),l.stats["Ring 2"]&&4===l.stats["Ring 2"].length&&l.stats["Ring 2"].push(null),l.stats.Pants&&4===l.stats.Pants.length&&l.stats.Pants.push(null),l.stats["Bludgeoning Weapon"]&&4===l.stats["Bludgeoning Weapon"].length&&l.stats["Bludgeoning Weapon"].push(null),l.stats["Dual-Wield Weapon 1"]&&4===l.stats["Dual-Wield Weapon 1"].length&&l.stats["Dual-Wield Weapon 1"].push(null),l.stats["Dual-Wield Weapon 2"]&&4===l.stats["Dual-Wield Weapon 2"].length&&l.stats["Dual-Wield Weapon 2"].push(null),l.stats["Slashing Weapon"]&&4===l.stats["Slashing Weapon"].length&&l.stats["Slashing Weapon"].push(null),l.stats.Weapon&&4===l.stats.Weapon.length&&l.stats.Weapon.push(null),l.stats.Shield&&4===l.stats.Shield.length&&l.stats.Shield.push(null)),"charms"in l||(l.charms=[null,null,null,null,null,null]),"seal"in l||(l.seal=null),"bloodiedAffixes"in l||(l.bloodiedAffixes=cm[l.class]),"bloodiedAffixesGAMW"in l||(l.bloodiedAffixesGAMW=mm[l.class]),"sanctification"in l||(l.sanctification=um[l.class]),"greaterAffixes"in l||(l.greaterAffixes=om[l.class]),"stats"in l||(l.stats=gm[l.class]),"newStats"in l||(l.newStats=_m[l.class]),"temperingStats"in l||(l.temperingStats=dm[l.class]),"masterworking"in l||(l.masterworking=im[l.class]),"levelingOrder"in l||(l.levelingOrder=[]),"hearts"in l||(l.hearts=[null,null,null]),"vampPowers"in l||(l.vampPowers=[null,null,null,null,null]),"witchPowers"in l||(l.witchPowers=[null,null,null,null,null,null]),"bossPowers"in l||(l.bossPowers=[null,null,null,null]),"horadricSpells"in l||(l.horadricSpells=[null,null,null,null]),"catalystPair"in l||(l.catalystPair=[null,null]),"chaosPerks"in l||(l.chaosPerks=[null,null,null,null]),"divineGifts"in l||(l.divineGifts=[null,null,null,null,null,null,null,null]),"elixirs"in l||(l.elixirs=[null,null,null,null]),"season"in l||(l.season=0),"variants"in l||(l.variants=[]),"variantName"in l||(l.variantName="Standard Build"),"tuningStones"in l||(l.tuningStones=[null,null,null,null,null,null]),"governingStones"in l||(l.governingStones=[null,null]),"order"in l||(l.order=0),"index"in l||(l.index=0),"variants"in l){let e=Object.assign({},l);e.variants.map((e,n)=>{null!==e.order&&void 0!==e.order||(e.order=n+1,e.index=n+1),"charms"in e||(e.charms=[null,null,null,null,null,null]),"seal"in e||(e.seal=null),"bloodiedAffixes"in e||(e.bloodiedAffixes=cm[l.class]),"bloodiedAffixesGAMW"in e||(e.bloodiedAffixesGAMW=mm[l.class]),"sanctification"in e||(e.sanctification=um[l.class]),"greaterAffixes"in e||(e.greaterAffixes=om[l.class]),"newStats"in e||(e.newStats=_m[l.class]),"temperingStats"in e||(e.temperingStats=dm[l.class]),"masterworking"in e||(e.masterworking=im[l.class]),"gems"in e&&(e.gems["Ring 1"]||(e.gems["Ring 1"]=null),e.gems["Ring 2"]||(e.gems["Ring 2"]=null)),"newStats"in e&&e.newStats.Pants&&4===e.newStats.Pants.length&&e.newStats.Pants.pop(),"stats"in e&&(e.stats.Boots&&4===e.stats.Boots.length&&e.stats.Boots.push(null),e.stats["Ring 1"]&&4===e.stats["Ring 1"].length&&e.stats["Ring 1"].push(null),e.stats["Ring 2"]&&4===e.stats["Ring 2"].length&&e.stats["Ring 2"].push(null),e.stats.Pants&&4===e.stats.Pants.length&&e.stats.Pants.push(null),e.stats["Bludgeoning Weapon"]&&4===e.stats["Bludgeoning Weapon"].length&&e.stats["Bludgeoning Weapon"].push(null),e.stats["Dual-Wield Weapon 1"]&&4===e.stats["Dual-Wield Weapon 1"].length&&e.stats["Dual-Wield Weapon 1"].push(null),e.stats["Dual-Wield Weapon 2"]&&4===e.stats["Dual-Wield Weapon 2"].length&&e.stats["Dual-Wield Weapon 2"].push(null),e.stats["Slashing Weapon"]&&4===e.stats["Slashing Weapon"].length&&e.stats["Slashing Weapon"].push(null),e.stats.Weapon&&4===e.stats.Weapon.length&&e.stats.Weapon.push(null),e.stats.Shield&&4===e.stats.Shield.length&&e.stats.Shield.push(null))}),$l(e)}$l(l),Ho(p.A.sanitize(l.name)||"No Build Name"),Oo(!0),n=l.class;let t=l.season<15?Ye:Qe;Su((null===(E=l)||void 0===E||null===(k=E.skillTree)||void 0===k?void 0:k.length)===(null==t?void 0:t.length)?null===(N=l)||void 0===N?void 0:N.skillTree:null,t,l,0),l.season,em(l);const s=i.A.parse(window.location.search);if(s.var&&l.variants[parseInt(s.var-1,10)]){if(l.variants[parseInt(s.var-1,10)].newGems||(l.variants[parseInt(s.var-1,10)].newGems={Helm:[null,null],"Chest Armor":[null,
1null],Pants:[null,null],Amulet:[null],"Ring 1":[null],"Ring 2":[null],"Bludgeoning Weapon":[null,null],"Slashing Weapon":[null,null],"Ranged Weapon":[null,null],"Dual-Wield Weapon 1":[null],"Dual-Wield Weapon 2":[null],Weapon:[null,null],Offhand:[null],Shield:[null]}),l.variants[parseInt(s.var-1,10)].arsenals||(l.variants[parseInt(s.var-1,10)].arsenals=[null,null,null,null,null,null]),l.variants[parseInt(s.var-1,10)].chaosPerks||(l.variants[parseInt(s.var-1,10)].chaosPerks=[null,null,null,null]),!l.variants[parseInt(s.var-1,10)].tuningStones&&!l.variants[parseInt(s.var-1,10)].governingStones){let e=l;e.variants[parseInt(s.var-1,10)].tuningStones=[null,null,null,null,null,null],e.variants[parseInt(s.var-1,10)].governingStones=[null,null],$l(Object.assign({},e))}Eu(parseInt(s.var,10),l,t,he.data)}else if("0"===(null==s?void 0:s.var))Eu(l.index,l,t,he.data);else{const e=new URLSearchParams(window.location.search);e.delete("var");const n=e.toString()?window.location.pathname+"?"+e.toString():window.location.pathname;if(window.history.replaceState("","",n),0!==l.order){var A;const e=null===(A=l.variants)||void 0===A?void 0:A.find((e,l)=>0===e.order);Eu(e.index,l,t,he.data)}else Eu(l.index,l,t,he.data)}}else No(!0);else No(!0)}})())},[Oe]);const ku=()=>{let e=Object.assign({},Ql);if(0===Dr)e.leveling=!e.leveling;else if(Dr>0&&Dr<=e.variants.length){const l=Dr-1;e.variants[l].leveling=!e.variants[l].leveling}$l(e)},Nu=(e,l)=>{let n=Object.assign({},Ql);if(0===Dr)l?n.levelingOrder.push(l+" "+e):n.levelingOrder.push(e);else if(Dr>0&&Dr<=n.variants.length){const a=Dr-1;let t=n.variants[a].levelingOrder;l?t.push(l+" "+e):t.push(e)}$l(n)},Au=()=>{ua(!0),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden")},Wu=()=>{ua(!1),document.body.style.overflowX="unset"},Cu=()=>{xn(!0),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden")},Bu=()=>{xn(!1),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden")},xu=()=>{Jn(!0),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden")},Ou=()=>{Jn(!1),document.body.style.overflowX="unset"},Pu=()=>{Rn(!0),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden")},Ru=()=>{Rn(!1),document.body.style.overflowX="unset"},Iu=()=>{ra(!0),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden")},Du=()=>{ra(!1),document.body.style.overflowX="unset"},Tu=()=>{Tn(!1),io(!1),document.body.style.overflowX="unset"},Lu=()=>{Wa(!1),pt(""),document.body.style.overflowX="unset"},Gu=()=>{ka(!1),pt(""),document.body.style.overflowX="unset"},ju=()=>{(Wo||xo)&&(xa(!0),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden"))},Hu=()=>{xa(!1),pt(""),document.body.style.overflowX="unset"},Uu=e=>{if(!Wo&&!xo)return;cu(e),Wt("Charms"),Ra(!0);requestAnimationFrame(()=>{let e=document.getElementById("charm__searchBar");e&&e.focus()}),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden")},Mu=()=>{Ra(!1),Wt("Charms"),document.body.style.overflowX="unset"},Fu=()=>{(Wo||xo)&&(Ta(!0),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden"))},Vu=()=>{Ta(!1),document.body.style.overflowX="unset"},qu=()=>{ja(!1),"undefined"!=typeof window&&window.document&&(document.body.style.overflow="unset")},zu=()=>{aa(!1),Lt(""),Ht(""),Ot(""),It(""),document.body.style.overflowX="unset"},Xu=(e,l)=>{if(!Wo&&!xo)return;Ot(e),It(l),aa(!0);requestAnimationFrame(()=>{let e=document.getElementById("gem__searchBar");e&&e.focus()}),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden")},Ju=()=>{jn(!1),pt(""),vt([]),rt(""),document.body.style.overflowX="unset"},Zu=(e,l)=>{if(!Wo&&!xo)return;l?us(e):Kt(e),Mn(!0);requestAnimationFrame(()=>{let e=document.getElementById("skill__searchBar");e&&e.focus()}),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden")},Yu=()=>{Mn(!1),es(""),"number"==typeof Yt?Kt(""):us(""),document.body.style.overflowX="unset"},Ku=()=>{(Wo||xo)&&(qn(!0),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden"))},Qu=()=>{qn(!1),document.body.style.overflowX="unset"},$u=()=>{Hi(!1),Kn(!1),document.body.style.overflowX="unset"},ec=()=>{lo(""),ea(!1),document.body.style.overflowX="unset"},lc=()=>{ii("Copy To Variant"),ci("Copy To Another Build"),_i("Import Saved Paragon"),da(!1),document.body.style.overflowX="unset"},nc=()=>{ii("Copy To Variant"),pa(!1),document.body.style.overflowX="unset"},ac=()=>{ii("Copy To Variant"),va(!1),document.body.style.overflowX="unset"},tc=()=>{ii("Copy To Variant"),ci("Copy To Another Build"),hi("Import Saved War Plans"),Sa(!1),document.body.style.overflowX="unset"},sc=()=>{Ja(!1),es(""),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="unset")},rc=()=>{Ka(!1),es(""),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="unset")},ic=()=>{et(!1),es(""),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="unset")},oc=(e,l,n)=>{if(!Wo&&!xo)return;let a=Object.assign({},Ql);if(0===Dr)a.summons[e].spec===l&&a.summons[e].upgrade===n?(a.summons[e].spec="",a.summons[e].upgrade=""):(a.summons[e].spec=l,a.summons[e].upgrade=n);else if(Dr>0&&Dr<=a.variants.length){const t=Dr-1,s=a.variants[t].summons[e];
1s.spec===l&&s.upgrade===n?(s.spec="",s.upgrade=""):(s.spec=l,s.upgrade=n)}$l(a),Fo(!0)},uc=(e,l)=>{if(!Wo&&!xo)return;let n=Object.assign({},Ql);if(0===Dr)n.spiritHall[l]===e?n.spiritHall[l]="":n.spiritHall[l]=e;else if(Dr>0&&Dr<=n.variants.length){const a=Dr-1,t=n.variants[a].spiritHall;t[l]===e?t[l]="":t[l]=e}$l(n),Fo(!0)},cc=(e,l)=>{if(!Wo&&!xo)return;let n=Object.assign({},Ql);if(0===Dr){let a=!0;Object.keys(n.boons).map(e=>{let t=n.boons[e];return t!==l&&2===t.length&&(a=!1),null}),n.boons[l].includes(e)?n.boons[l].splice(n.boons[l].indexOf(e),1):(0===n.boons[l].length||a)&&n.boons[l].push(e)}else if(Dr>0&&Dr<=n.variants.length){const a=Dr-1;let t=n.variants[a].boons,s=!0;Object.keys(t).map(e=>{let n=t[e];return n!==l&&2===n.length&&(s=!1),null}),t[l].includes(e)?t[l].splice(t[l].indexOf(e),1):(0===t[l].length||s)&&t[l].push(e)}$l(n),Fo(!0)},mc=(e,l)=>{if(!Wo&&!xo)return;let n=Object.assign({},Ql);const a=n=>{n[l].includes(e)?n[l]=[]:(Object.keys(n).forEach(e=>{n[e]=[]}),n[l]=[e])};if(0===Dr)a(n.soulShards);else if(Dr>0&&Dr<=n.variants.length){const e=Dr-1;a(n.variants[e].soulShards)}$l(n),Fo(!0)},dc=()=>{let e=Object.assign({},Ql);if("Gear & Skills"===on)if(0===Dr)e.gear={Helm:null,"Chest Armor":null,Gloves:null,Pants:null,Boots:null,Amulet:null,"Ring 1":null,"Ring 2":null,Weapon:null,Offhand:null,"Bludgeoning Weapon":null,"Slashing Weapon":null,"Dual-Wield Weapon 1":null,"Dual-Wield Weapon 2":null},e.skills=[null,null,null,null,null,null],e.expertise=null,e.oaths=null,e.boons={Deer:[],Eagle:[],Wolf:[],Snake:[]},e.summons={"Skeletal Warriors":{spec:null,upgrade:null},"Skeletal Mages":{spec:null,upgrade:null},Golems:{spec:null,upgrade:null}},e.gems={Weapon:null,Armor:null,Jewelry:null,"Ring 1":null,"Ring 2":null},e.newGems={Helm:[null,null],"Chest Armor":[null,null],Pants:[null,null],Amulet:[null],"Ring 1":[null],"Ring 2":[null],"Bludgeoning Weapon":[null,null],"Slashing Weapon":[null,null],"Ranged Weapon":[null,null],"Dual-Wield Weapon 1":[null],"Dual-Wield Weapon 2":[null],Weapon:[null,null],Offhand:[null],Shield:[null]},e.stats=gm[Ql.class],e.newStats=_m[Ql.class],e.temperingStats=dm[Ql.class],e.masterworking=im[Ql.class],e.greaterAffixes=om[Ql.class],e.sanctification=um[Ql.class],e.bloodiedAffixes=cm[Ql.class],e.bloodiedAffixesGAMW=mm[Ql.class],e.specialization=null,e.enchantments=[null,null],e.hearts=[null,null,null],e.vampPowers=[null,null,null,null,null],e.witchPowers=[null,null,null,null,null,null],e.primeEvilPower=null,e.bossPowers=[null,null,null,null],e.horadricSpells=[null,null,null,null],e.catalystPair=[null,null],e.tuningStones=[null,null,null,null,null,null],e.governingStones=[null,null],e.chaosPerks=[null,null,null,null],e.elixirs=[null,null,null,null],e.divineGifts=[null,null,null,null,null,null,null,null],e.charms=[null,null,null,null,null,null],e.seal=null,e.charmStats={0:[null,null],1:[null,null],2:[null,null],3:[null,null],4:[null,null],5:[null,null]},e.sealStats=[null,null,null,null],e.craftedMythic=[],e.mythicCharms=[];else if(Dr>0&&Dr<=e.variants.length){const l=Dr-1;e.variants[l].gear={Helm:null,"Chest Armor":null,Gloves:null,Pants:null,Boots:null,Amulet:null,"Ring 1":null,"Ring 2":null,Weapon:null,Offhand:null,"Bludgeoning Weapon":null,"Slashing Weapon":null,"Dual-Wield Weapon 1":null,"Dual-Wield Weapon 2":null},e.variants[l].skills=[null,null,null,null,null,null],e.variants[l].expertise=null,e.variants[l].oaths=null,e.variants[l].boons={Deer:[],Eagle:[],Wolf:[],Snake:[]},e.variants[l].summons={"Skeletal Warriors":{spec:null,upgrade:null},"Skeletal Mages":{spec:null,upgrade:null},Golems:{spec:null,upgrade:null}},e.variants[l].gems={Weapon:null,Armor:null,Jewelry:null,"Ring 1":null,"Ring 2":null},e.variants[l].newGems={Helm:[null,null],"Chest Armor":[null,null],Pants:[null,null],Amulet:[null],"Ring 1":[null],"Ring 2":[null],"Bludgeoning Weapon":[null,null],"Slashing Weapon":[null,null],"Ranged Weapon":[null,null],"Dual-Wield Weapon 1":[null],"Dual-Wield Weapon 2":[null],Weapon:[null,null],Offhand:[null],Shield:[null]},e.variants[l].stats=gm[Ql.class],e.variants[l].newStats=_m[Ql.class],e.variants[l].temperingStats=dm[Ql.class],e.variants[l].specialization=null,e.variants[l].enchantments=[null,null],e.variants[l].hearts=[null,null,null],e.variants[l].vampPowers=[null,null,null,null,null],e.variants[l].witchPowers=[null,null,null,null,null,null],e.variants[l].primeEvilPower=null,e.variants[l].bossPowers=[null,null,null,null],e.variants[l].horadricSpells=[null,null,null,null],e.variants[l].catalystPair=[null,null],e.variants[l].tuningStones=[null,null,null,null,null,null],e.variants[l].governingStones=[null,null],e.variants[l].chaosPerks=[null,null,null,null],e.variants[l].divineGifts=[null,null,null,null,null,null,null,null],e.variants[l].charms=[null,null,null,null,null,null],e.variants[l].seal=null,e.variants[l].charmStats={0:[null,null],1:[null,null],2:[null,
1null],3:[null,null],4:[null,null],5:[null,null]},e.variants[l].sealStats=[null,null,null,null],e.variants[l].elixirs=[null,null,null,null],e.variants[l].sanctification=um[Ql.class],e.variants[l].bloodiedAffixes=cm[Ql.class],e.variants[l].bloodiedAffixesGAMW=mm[Ql.class],e.variants[l].craftedMythic=[],e.variants[l].mythicCharms=[]}if("Skill Tree"===on){let l=[];for(let e=0;e<gs.length;e++)l.push(0);if(ps(l),Dr>0&&Dr<=e.variants.length){const n=Dr-1;e.variants[n].skillTree=l.join(""),e.variants[n].levelingOrder=[],e.variants[n].specialConnectors=[]}else e.skillTree=l.join(""),e.levelingOrder=[],e.specialConnectors=[];Ts(0),xs(!1),ds(0),vs({})}else if("Mercenaries"===on){let l=[];for(let e=0;e<sr.length;e++)l.push(0);if(rr(l),Dr>0&&Dr<=e.variants.length){const n=Dr-1;e.variants[n].mercenarySkillTree2=l.join(""),e.variants[n].mercenarySkillTreeFiltered2=[],e.variants[n].mercenary2="",e.variants[n].mercenarySkill2="",e.variants[n].mercenaryOpportunity2="",e.variants[n].reinforcement2=""}else e.mercenarySkillTree2=l.join(""),e.mercenarySkillTreeFiltered2=[],e.mercenary2="",e.mercenarySkill2="",e.mercenaryOpportunity2="",e.reinforcement2="";Sr(!1),ar(0),ur({})}else if("Paragon Boards"===on){if(Dr>0&&Dr<=e.variants.length){const l=Dr-1;e.variants[l].paragon={boards:[{name:"Starting Board",rotation:0,x:0,y:0,glyph:null}],selectedTiles:["startingboard_r15c11"]}}else e.paragon={boards:[{name:"Starting Board",rotation:0,x:0,y:0,glyph:null}],selectedTiles:["startingboard_r15c11"]};em(e)}else if("Notes"===on)e.notes="";else if("Showcase"===on)if(Dr>0&&Dr<=e.variants.length){const l=Dr-1;e.variants[l].showcase=""}else e.showcase="";else if("War Plans"===on){if(Dr>0&&Dr<=e.variants.length){const l=Dr-1;e.variants[l].warplans=""}else e.warplans="";js(0),Fs({})}Fo(!0),$l(e),document.body.style.overflowX="unset"},_c=(e,l)=>{var n,a,t;const s=Lm.indexOf(st)>-1,r=(0,c.Ac)(s);if((0,c.m4)(null===(n=e.newStats)||void 0===n?void 0:n[st],s),(null===(a=e.greaterAffixes)||void 0===a||null===(t=a[st])||void 0===t?void 0:t.length)>r&&(e.greaterAffixes[st].length=r),l){if(e.season>=14){var i;const n=e.newStats[st],a=(null===(i=l.terciary_stats__full)||void 0===i?void 0:i.length)||0;[0,1].concat((0,c.YI)(l,s).slice(0,a)).forEach(e=>{e<n.length&&(n[e]=null)})}e.masterworking[st]=im[e.class][st]}},gc=(e,l)=>{let n=Object.assign({},Ql);const a=(e,n)=>e.find(e=>e.name===n&&e.type===l)||e.find(e=>e.name===n),t=n=>{n.gearTypes=Object.assign({},n.gearTypes||{}),e&&l?n.gearTypes[st]=l:delete n.gearTypes[st]};if(0===Dr){if(n.gear[st]=e,t(n),""===e){["Helm","Chest Armor","Pants","Bludgeoning Weapon","Slashing Weapon","Ranged Weapon"].includes(st)?n.newGems[st]=[null,null]:"Gloves"!==st&&"Boots"!==st&&(n.newGems[st]=[null])}const l=n.season<15?Ge:He;_c(n,a(l,n.gear[st]))}else if(Dr>0&&Dr<=n.variants.length){const l=Dr-1;if(n.variants[l].gear[st]=e,t(n.variants[l]),""===e){["Helm","Chest Armor","Pants","Bludgeoning Weapon","Slashing Weapon","Ranged Weapon"].includes(st)?n.variants[l].newGems[st]=[null,null]:"Gloves"!==st&&"Boots"!==st&&(n.variants[l].newGems[st]=[null])}const s=n.variants[l].season<15?Ge:He;_c(n.variants[l],a(s,n.variants[l].gear[st]))}$l(n),pt(""),Fo(!0)},pc=e=>{let l=Object.assign({},Ql);if(0===Dr)"number"==typeof Yt?l.skills[Yt]=e:l.enchantments[os]=e;else if(Dr>0&&Dr<=l.variants.length){const n=Dr-1;"number"==typeof Yt?l.variants[n].skills[Yt]=e:l.variants[n].enchantments[os]=e}$l(l),Kt(""),es(""),Mn(!1),Fo(!0),document.body.style.overflow="unset"},hc=e=>{let l=Object.assign({},Ql);if(0===Dr)l.mercenarySkill2=e;else if(Dr>0&&Dr<=l.variants.length){const n=Dr-1;l.variants[n].mercenarySkill2=e}$l(l),es(""),et(!1),Fo(!0),document.body.style.overflow="unset"},fc=e=>{let l=Object.assign({},Ql),n=he.filter(l=>l.mercenary===e);if(0===Dr)l.mercenary2=e,l.mercenarySkillTreeFiltered2=n;else if(Dr>0&&Dr<=l.variants.length){const a=Dr-1;l.variants[a].mercenary2=e,l.variants[a].mercenarySkillTreeFiltered2=n}ar(0),ur({});let a=[];for(let t=0;t<he.length;t++)a.push(0);rr([].concat(a)),$l(l),Ja(!1),Fo(!0),document.body.style.overflow="unset"},vc=e=>{let l=Object.assign({},Ql);if(0===Dr)l.reinforcement2=e,l.mercenarySkill2="";else if(Dr>0&&Dr<=l.variants.length){const n=Dr-1;
1l.variants[n].reinforcement2=e,l.variants[n].mercenarySkill2=""}$l(l),Ja(!1),at(!1),Fo(!0),document.body.style.overflow="unset"},bc=e=>{let l=Object.assign({},Ql);if(0===Dr)l.mercenaryOpportunity2=e;else if(Dr>0&&Dr<=l.variants.length){const n=Dr-1;l.variants[n].mercenaryOpportunity2=e}$l(l),Ka(!1),Fo(!0),document.body.style.overflow="unset"},wc=e=>{let l=Object.assign({},Ql);if(0===Dr)l.divineGifts[eu]=e;else if(Dr>0&&Dr<=l.variants.length){const n=Dr-1;l.variants[n].divineGifts[eu]=e}$l(l),Wa(!1),pt(""),Fo(!0),document.body.style.overflow="unset"},Sc=e=>{let l=Object.assign({},Ql);if(0===Dr)l.primeEvilPower=e||null;else if(Dr>0&&Dr<=l.variants.length){const n=Dr-1;l.variants[n].primeEvilPower=e||null}$l(l),Fo(!0),Hu()},yc=e=>{let l=Object.assign({},Ql);if(0===Dr)l.elixirs[Jt]=e;else if(Dr>0&&Dr<=l.variants.length){const n=Dr-1;l.variants[n].elixirs[Jt]=e}$l(l),ka(!1),pt(""),Fo(!0),document.body.style.overflow="unset"},Ec=e=>{let l=Object.assign({},Ql);const n=l=>{var n;const a="string"==typeof e?e:null==e?void 0:e.name,t=null===(n=l.charmStats)||void 0===n?void 0:n[uu];a!==le.JD&&Array.isArray(t)&&(l.charmStats[uu]=t.map(e=>(0,le.QT)(e)?null:e))};if(0===Dr)l.charms[uu]=e,n(l);else if(Dr>0&&Dr<=l.variants.length){const a=Dr-1;l.variants[a].charms[uu]=e,n(l.variants[a])}$l(l),Wt("Stats"),pt(""),Fo(!0),document.body.style.overflow="unset"},kc=(e,l,n)=>{((e,l)=>{let n=Object.assign({},Ql);const a=e=>{const l={0:[null,null],1:[null,null],2:[null,null],3:[null,null],4:[null,null],5:[null,null]};return Array.isArray(e)?(e.forEach((e,n)=>{n<=5&&Array.isArray(e)&&(l[n]=[e[0]||null,e[1]||null])}),l):(e&&"object"==typeof e&&Object.keys(l).forEach(n=>{const a=e[n];Array.isArray(a)&&(l[n]=[a[0]||null,a[1]||null])}),l)};if(0===Dr){const t=a(n.charmStats),s=String(uu);t[s]||(t[s]=[null,null]),t[s][e]=l||null,n.charmStats=t}else if(Dr>0&&Dr<=n.variants.length){const t=Dr-1,s=n.variants[t],r=a(s.charmStats),i=String(uu);r[i]||(r[i]=[null,null]),r[i][e]=l||null,s.charmStats=r}Fo(!0),$l(n)})(n,e)},Nc=(e,l,n)=>{((e,l)=>{let n=Object.assign({},Ql);if(0===Dr){const t=(0,a.A)(n.sealStats||[null,null,null,null]);t[e]=l||null,n.sealStats=t,n.seal=t.some(Boolean)?{name:"Seal",value:t.filter(Boolean)}:""}else if(Dr>0&&Dr<=n.variants.length){const t=Dr-1,s=n.variants[t],r=(0,a.A)(s.sealStats||[null,null,null,null]);r[e]=l||null,s.sealStats=r,s.seal=r.some(Boolean)?{name:"Seal",value:r.filter(Boolean)}:""}Fo(!0),$l(n)})(n,e)},Ac=()=>{let e=Object.assign({},Ql);const l=0===Dr?e:e.variants[Dr-1];l&&(l.sealStats=(0,a.A)(d.AH.stats),l.seal={name:d.AH.name,value:(0,a.A)(d.AH.stats)},Fo(!0),$l(e))},Wc=async()=>{const e=Object.assign({},Ql,{lastUpdated:(new Date).toLocaleString("en-US",{month:"long",day:"numeric",year:"numeric"}),lastUpdatedSort:(new Date).getTime(),sanitized:!1});Cc(e),Zo("Saving...");try{await Bc(e),setTimeout(()=>{Fo(!1),Zo("Save Changes")},500)}catch(l){console.error("Save failed:",l),Zo("Save Failed"),setTimeout(()=>{Fo(!0),Zo("Save Changes")},2e3)}},Cc=e=>{if(xo&&localStorage.getItem("builds")){let l=JSON.parse(localStorage.getItem("builds"));l[window.location.pathname.split("/")[2]]&&(l[window.location.pathname.split("/")[2]]=e,localStorage.setItem("builds",JSON.stringify(l)))}},Bc=async e=>{Wo?(await(0,h.BN)((0,h.H9)(h.db,"users",Ro.uid,"builds",Ae||window.location.pathname.split("/")[2]),e,{merge:!0}),await(0,h.BN)((0,h.H9)(h.db,"builds",Ae||window.location.pathname.split("/")[2]),e,{merge:!0})):Wo||xo||console.warn("Save skipped: not owner. isOwner:",Wo,"isLocalOwner:",xo)},xc=e=>{let l=Object.assign({},Ql);if(0===Dr)l.newGems[xt][Rt]=e;else if(Dr>0&&Dr<=l.variants.length){const n=Dr-1;l.variants[n].newGems[xt][Rt]=e}Lt(""),Ht(""),$l(l),aa(!1),Fo(!0),document.body.style.overflow="unset"},Oc=e=>{let l=Object.assign({},Ql);if(0===Dr)"Barbarian"===l.class?l.expertise=e:"Rogue"===l.class?l.specialization=e:"Paladin"===l.class&&(l.oaths=e);else if(Dr>0&&Dr<=l.variants.length){const n=Dr-1;"Barbarian"===l.variants[n].class?l.variants[n].expertise=e:"Rogue"===l.variants[n].class?l.variants[n].specialization=e:"Paladin"===l.variants[n].class&&(l.variants[n].oaths=e)}$l(l),qn(!1),Fo(!0),document.body.style.overflow="unset"},Pc=(e,l)=>{l&&l.stopPropagation();let n=Object.assign({},Ql);if("favorites"in n||(n.favorites=[]),0===Dr)n.favorites.includes(e)?n.favorites.splice(n.favorites.indexOf(e),1):n.favorites.push(e);else if(Dr>0&&Dr<=n.variants.length){const l=Dr-1;let a=n.variants[l].favorites;a.includes(e)?a.splice(a.indexOf(e),1):a.push(e)}$l(n),Uc(),Fo(!0)};(0,t.useEffect)(()=>{Tc()},[eo,$n,An,Dr]),(0,t.useEffect)(()=>{Uc()},[gt,st,ft,An,Dr]),(0,t.useEffect)(()=>{Lc()},[gt,Aa]),(0,t.useEffect)(()=>{Gc()},[gt,Ea]),(0,t.useEffect)(()=>{jc(),Hc()},[gt,Pa,An,Oe]),(0,t.useEffect)(()=>{Oe&&as(gu().season<15?Ie:Te)},[An,Dr,Oe]),(0,t.useEffect)(()=>{Dc()},[$t,Yt,os,An,Dr,Ql.class]),(0,t.useEffect)(()=>{window.onbeforeunload=Mo?function(e){return"Your build has not been saved! Are you sure you want to leave?"}:null},[Mo]),(0,t.useEffect)(()=>()=>{window.onbeforeunload=null},[]),(0,t.useEffect)(()=>{Xl.current?Xl.current=!1:em()},[Dr]);const Rc=()=>{let e=document.getElementById("renameBuild");e.removeAttribute("disabled"),e.focus()};(0,t.useEffect)(()=>{sa&&Jl.current&&Jl.current.focus()},[sa]);const Ic=(e,l)=>{e.stopPropagation();let n=document.getElementById("renameVariant"+l);n.removeAttribute("disabled"),n.focus(),n.style.pointerEvents="auto"},Dc=()=>{const e=(gu().season<15?Ie:Te).filter(e=>{var l,n,a;return(e.name.toLowerCase().includes($t.toLowerCase())||(null==e||null===(l=e.filters)||void 0===l?void 0:l.join("").toLowerCase().includes($t.toLowerCase()))||(null==e||null===(n=e.tags)||void 0===n?void 0:n.join("").toLowerCase().includes($t.toLowerCase()))||(null==e||null===(a=e.extra)||void 0===a?void 0:a.join("").toLowerCase().includes($t.toLowerCase())))&&e.class===Ql.class&&e.tags});as(e)},Tc=()=>{const e=(gu().season<15?tl:rl).filter(e=>{var l,n;return(Ql.class===e.class||"All"===e.class)&&(""===eo||((null==e||null===(l=e.bonus)||void 0===l?void 0:l.join(""))+(null==e||null===(n=e.additional_bonus)||void 0===n?void 0:n.join(""))+e.name).toLowerCase().includes(eo.toLowerCase()))});Qi(e)},Lc=()=>{const e=we.filter(e=>{const l=e.name,n=e.rewards.concat(e.purified).concat(e.corrupted);return 0===ft.length?l.toLowerCase().includes(gt.toLowerCase())||n.toLowerCase().includes(gt.toLowerCase()):null});Qo(e)},Gc=()=>{const e=(gu().season<15?be:ye).filter(e=>{var l;const n=e.name,a=(e.description.join(" ")+" "+(null===(l=e.effect)||void 0===l?void 0:l.join(" "))).toLowerCase();return 0===ft.length?n.toLowerCase().includes(gt.toLowerCase())||a.toLowerCase().includes(gt.toLowerCase()):null});zt(e)},jc=e=>{const l=e?e.season<15?dl:gl:gu().season<15?dl:gl,n=e?e.season<15?hl:vl:gu().season<15?hl:vl,a=gt.toLowerCase(),t=(null==l?void 0:l.filter(e=>{var l;if(e.class&&e.class!==Ql.class)return!1;const t=e.name,s=e.set||"";if(t.toLowerCase().includes(a))return!0;
1if(s.toLowerCase().includes(a))return!0;if(e.value&&e.value.some(e=>e.toLowerCase().includes(a)))return!0;const r=null==n?void 0:n.find(l=>l.name===e.set);return!(null==r||null===(l=r.set)||void 0===l||!l.set_bonus||!r.set.set_bonus.some(e=>{var l;return null===(l=e.value)||void 0===l?void 0:l.toLowerCase().includes(a)}))}))||[];tu(t)},Hc=e=>{const l=e?e.season<15?hl:vl:gu().season<15?hl:vl;ru(l||[])},Uc=()=>{const e=mt.filter(e=>{const l=e.type,n=e.name,a=(e.description?e.description:"")+(e.effect?e.effect:"")+(e.filters?e.filters.join(" "):"");let t=!1;var s;if(l in bm&&(t=!0),t){if(0===ft.length||ft.includes("Legendary")||ft.includes(e.type)||ft.includes("Class-Specific")&&e.class===Ql.class||ft.includes("Codex")&&e.location||ft.includes("Drop-Only")&&!e.location)return(n.toLowerCase().includes(gt.toLowerCase())||a.toLowerCase().includes(gt.toLowerCase())||e.location&&"codex".includes(gt.toLowerCase()))&&(null===(s=bm[l])||void 0===s?void 0:s.includes(st))&&(!e.class||e.class===Ql.class)}else if(0===ft.length||ft.includes("Unique")||ft.includes("Class-Specific")&&e.class===Ql.class){if("Weapon"===l)return(n.toLowerCase().includes(gt.toLowerCase())||a.toLowerCase().includes(gt.toLowerCase()))&&(null==st?void 0:st.includes("Weapon"))&&(!e.class||e.class===Ql.class);if("Barbarian"===Ql.class)return(n.toLowerCase().includes(gt.toLowerCase())||a.toLowerCase().includes(gt.toLowerCase()))&&(null==st?void 0:st.replace(" 1","").replace(" 2",""))===(null==l?void 0:l.replace("1h Axe","Dual-Wield Weapon").replace("1h Sword","Dual-Wield Weapon").replace("1h Mace","Dual-Wield Weapon").replace("2h Axe","Slashing Weapon").replace("2h Sword","Slashing Weapon").replace("2h Mace","Bludgeoning Weapon").replace("Polearm","Slashing Weapon"))&&(!e.class||e.class===Ql.class);if("Rogue"===Ql.class)return(n.toLowerCase().includes(gt.toLowerCase())||a.toLowerCase().includes(gt.toLowerCase()))&&(null==st?void 0:st.replace(" 1","").replace(" 2",""))===(null==l?void 0:l.replace("1h Dagger","Dual-Wield Weapon").replace("1h Sword","Dual-Wield Weapon").replace("Bow","Ranged Weapon").replace("Crossbow","Ranged Weapon"))&&(!e.class||e.class===Ql.class);if("Sorcerer"===Ql.class)return(n.toLowerCase().includes(gt.toLowerCase())||a.toLowerCase().includes(gt.toLowerCase()))&&(null==st?void 0:st.replace(" 1","").replace(" 2",""))===(null==l?void 0:l.replace("Wand","Weapon").replace("Staff","Weapon").replace("1h Mace","Weapon").replace("1h Sword","Weapon").replace("1h Dagger","Weapon").replace("Focus","Offhand"))&&(!e.class||e.class===Ql.class);if("Necromancer"===Ql.class)return(n.toLowerCase().includes(gt.toLowerCase())||a.toLowerCase().includes(gt.toLowerCase()))&&(null==st?void 0:st.replace(" 1","").replace(" 2",""))===(null==l?void 0:l.replace("Wand","Weapon").replace("Staff","Weapon").replace("1h Dagger","Weapon").replace("1h Sword","Weapon").replace("2h Sword","Weapon").replace("1h Scythe","Weapon").replace("2h Scythe","Weapon").replace("1h Dagger","Weapon").replace("1h Axe","Weapon").replace("1h Mace","Weapon").replace("Focus","Shield"))&&(!e.class||e.class===Ql.class);if("Druid"===Ql.class)return(n.toLowerCase().includes(gt.toLowerCase())||a.toLowerCase().includes(gt.toLowerCase()))&&(null==st?void 0:st.replace(" 1","").replace(" 2",""))===(null==l?void 0:l.replace("1h Mace","Weapon").replace("1h Axe","Weapon").replace("1h Sword","Weapon").replace("2h Mace","Weapon").replace("Staff","Weapon").replace("Polearm","Weapon").replace("1h Sword","Weapon").replace("1h Dagger","Weapon").replace("Polearm","Weapon").replace("Totem","Offhand"))&&(!e.class||e.class===Ql.class);if("Spiritborn"===Ql.class)return(n.toLowerCase().includes(gt.toLowerCase())||a.toLowerCase().includes(gt.toLowerCase()))&&(null==st?void 0:st.replace(" 1","").replace(" 2",""))===(null==l?void 0:l.replace("Polearm","Weapon").replace("Quarterstaff","Weapon").replace("Glaive","Weapon"))&&(!e.class||e.class===Ql.class);if("Paladin"===Ql.class)return(n.toLowerCase().includes(gt.toLowerCase())||a.toLowerCase().includes(gt.toLowerCase()))&&(null==st?void 0:st.replace(" 1","").replace(" 2",""))===(null==l?void 0:l.replace("Flail","Weapon").replace("1h Sword","Weapon").replace("2h Sword","Weapon").replace("1h Mace","Weapon").replace("2h Mace","Weapon").replace("1h Mace","Weapon").replace("2h Axe","Weapon"))&&(!e.class||e.class===Ql.class);if("Warlock"===Ql.class)return(n.toLowerCase().includes(gt.toLowerCase())||a.toLowerCase().includes(gt.toLowerCase()))&&
1(null==st?void 0:st.replace(" 1","").replace(" 2",""))===(null==l?void 0:l.replace("Wand","Weapon").replace("Staff","Weapon").replace("1h Mace","Weapon").replace("1h Sword","Weapon").replace("Focus","Offhand").replace("2h Sword","Weapon").replace("2h Mace","Weapon").replace("2h Axe","Weapon").replace("Flail","Weapon").replace("1h Dagger","Weapon"))&&(!e.class||e.class===Ql.class)}return null});ut(e)},Mc=()=>{let e=(0,w.A)();kn(e),Sn("https://d4builds.gg/builds/"+e+"/"),Tn(!0),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden")},Fc=(e,l,n)=>{let a=Object.assign({},Ql);if(0===Dr){for(;a.newStats[l].length<n;)a.newStats[l].push(null);a.newStats[l][n]=e}else if(Dr>0&&Dr<=a.variants.length){const t=Dr-1;for(;a.variants[t].newStats[l].length<n;)a.variants[t].newStats[l].push(null);a.variants[t].newStats[l][n]=e}$l(a),Fo(!0)},Vc=(e,l,n)=>{let a=Object.assign({},Ql);if(0===Dr)a.temperingStats[l][n]=e;else if(Dr>0&&Dr<=a.variants.length){const t=Dr-1;a.variants[t].temperingStats[l][n]=e}$l(a),Fo(!0)},qc=(e,l,n)=>{let a=Object.assign({},Ql);const t=a=>{"Amulet"===l&&void 0!==n?(Array.isArray(a[l])||(a[l]=[a[l],null]),a[l][n]=e):a[l]=e};if(0===Dr)t(a.sanctification);else if(Dr>0&&Dr<=a.variants.length){const e=Dr-1;t(a.variants[e].sanctification)}$l(a),Fo(!0)},zc=(e,l)=>{let n=Object.assign({},Ql);if(0===Dr)n.bloodiedAffixes[l]=e;else if(Dr>0&&Dr<=n.variants.length){const a=Dr-1;n.variants[a].bloodiedAffixes[l]=e}$l(n),Fo(!0)},Xc=(e,l)=>{if(!Wo&&!xo)return;let n=Object.assign({},Ql);if(0===Dr)n.bloodiedAffixesGAMW[e][l]=n.bloodiedAffixesGAMW[e][l]?null:1;else if(Dr>0&&Dr<=n.variants.length){const a=Dr-1;n.variants[a].bloodiedAffixesGAMW[e][l]=n.variants[a].bloodiedAffixesGAMW[e][l]?null:1}$l(n),Fo(!0)},Jc=(e,l)=>{if(!Wo&&!xo)return;let n=Object.assign({},Ql);if(0===Dr){for(;n.greaterAffixes[e].length<l;)n.greaterAffixes[e].push(null);n.greaterAffixes[e][l]?n.greaterAffixes[e][l]=null:n.greaterAffixes[e][l]=1}else if(Dr>0&&Dr<=n.variants.length){const a=Dr-1;for(;n.variants[a].greaterAffixes[e].length<l;)n.variants[a].greaterAffixes[e].push(null);n.variants[a].greaterAffixes[e][l]?n.variants[a].greaterAffixes[e][l]=null:n.variants[a].greaterAffixes[e][l]=1}$l(n),Fo(!0)},Zc=e=>{dn(e.target.value)},Yc=(e,l)=>{if(0===Dr)e.paragon.selectedTiles=l;else if(Dr>0&&Dr<=e.variants.length){const n=Dr-1;e.variants[n].paragon.selectedTiles=l}$l(Object.assign({},e)),em(e),Fo(!0)},Kc={jW1X7qEuALPTKnIh9obKmOywtJH3:{name:"Screamheart",link:"https://www.youtube.com/@Screamheart"},YULjU8wLReMjbFyTd6NeIfceDWF3:{name:"ChronikzTR",link:"https://www.twitch.tv/ChronikzTR"},OjI5Zun2xkct0Y171HkUclqDOYV2:{name:"kanonxo",link:"https://www.twitch.tv/kanonxo"},EotSjm7aCcUj8rOsW9AIUAB7NtF3:{name:"wudijo",link:"https://www.twitch.tv/wudijo"},ajqmZ2l6Z0UkWo50pVTXX2EdBCv2:{name:"Benlee_tv",link:"https://www.twitch.tv/Benlee_tv"},KTRm2rfWPkTqM7i0x6wmPhl7SsZ2:{name:"NickTew",link:"https://twitch.tv/NickTew"},XiOtDEDczHPOF7qLJCzvqnzwXqp2:{name:"DonTheCrown",link:"https://www.twitch.tv/donthecrown"},neBvzhgnioUMsE4umgSd9cM09sI2:{name:"Zoutriv",link:"https://www.twitch.tv/Zoutriv"},"9q0hLswpfsShuCXcf8ompvw3b8h1":{name:"gotaplanstan",link:"https://www.twitch.tv/gotaplanstan"},gPgHm4ZwrGduBwai7fr55yLLQrD3:{name:"Ulfhednar",link:"https://www.twitch.tv/Ulfhednar"},"1GcAxWNIL6MC6afiLa4hWkeNoOV2":{name:"drybear",link:"https://www.twitch.tv/drybear"},"2B3WqD0qFffiwCyWVaClKz92spF2":{name:"VeiledShot",link:"https://www.twitch.tv/veiledshot"},zTA4JJtFRZQYHxE6YAogyNcLTyi2:{name:"ZZav",link:"https://www.twitch.tv/ZZav"},x3jRFZA4LFYCcpSR6x7qcr60jf63:{name:"luxthos",link:"https://twitch.tv/luxthos"},mTSwYMIKVbXfarzoI2CxTK7Iogr1:{name:"redbyrd",link:"https://www.twitch.tv/redbyrd"},vBhggEuIGCQfQUDuBqZGwzXZLrG2:{name:"MrRosaPony",link:"https://twitch.tv/mrrosapony"},PYH3J01RPGYgtPI26IGx37OsWOE3:{name:"Tesdey",link:"https://twitch.tv/tesdey"},GxEux4KRWsezTyKK729XsSzbBI62:{name:"itsdaftie",link:"https://www.twitch.tv/itsdaftie"},L8fHtxdaMdSFJo4FacUAVVnwsf92:{name:"jazzarus_",link:"https://www.twitch.tv/jazzarus_"},JyyWybsd7IO6wcoXil5bmDSZd5f1:{name:"GhazzyTV",link:"https://www.twitch.tv/ghazzytv"},VCCWIV65LIWhvnztZM8b2DYBNbs2:{name:"DatModz",link:"https://www.twitch.tv/datmodz"},If4CP4Hr8WT6SUN4V2OBInvLWZ83:{name:"SOLIDFPS",link:"https://www.twitch.tv/solidfps"},ee1NbLYWhVcmGaZNFZPDU7RnGf52:{name:"ParadoxVeteran",link:"https://www.twitch.tv/paradoxveteran"},fMpCBclPxQZkEv7oMTm3avG6tYl2:{name:"Paws",link:"https://www.twitch.tv/paws"},auPoswFXhzW4YyubVooCEqWyAtW2:{name:"eRnstl.io",link:"https://www.twitch.tv/ernstl_io"},cwTRqZaFRzTKvOYTCBpxLQPmYk32:{name:"Carthh",link:"https://www.twitch.tv/carthh"},ZkIhoAffwQWE0nK5aJD4GwRzOuz1:{name:"dconnic",link:"twitch.tv/dconnic"},"0vGtBtsTX3W2Jb6A19hkysLDpcA2":{name:"FunkyMMO",link:"https://www.twitch.tv/funkymmo"},h6DI2ppKtibDMDxBNy0gNPHZKFQ2:{name:"Rob2628",link:"https://www.twitch.tv/Rob2628",profileUrl:"/rob2628/builds/"},KYH7uBBW0vcA2nlwvjZFt59IToA3:{name:"djmontague",link:"https://www.twitch.tv/djmontague"},Q1Nf9tEpHdYdgixSK1I1rKjA2AS2:{name:"ChoseN",link:"https://www.twitch.tv/chosen"},XvYd6fiAwjd95n4TgHQG0rKMyeG3:{name:"mulltiy",link:"https://www.youtube.com/@mulltiy/videos"},"9vPG9zUdM0g1uky7o7GEw6YwT922":{name:"Juse",link:"https://www.youtube.com/@Jusedofus/videos"},tDFYUWv2r1NnOlZuAg35HNCxSCe2:{name:"Ali3nSun",link:"https://www.twitch.tv/ali3nsun"},yrUCV46dFqWk3WtnIL9wz3SypOM2:{name:"Moxsy",link:"https://www.twitch.tv/Moxsy"},EW8n7x3fhvgYYpSN8gsWgUFgYcb2:{name:"MoshiACGN",link:"https://www.youtube.com/@MoshiACGN/videos"},gFFgIskbr9gnS9JPbgnYXJBIn2D2:{name:"MurderIncDiablo",link:"https://www.youtube.com/@MurderIncDiablo"},ZwQGGTYR0UPWtJM2ne3X17fos3y2:{name:"Snuggie",link:"https://twitch.tv/Snuggie"},Z7HibLcNEWQ6Ybsuly3vdai0wFr1:{name:"StruthGaming",link:"https://www.youtube.com/@StruthGaming"},"6139bSmsUOeUT7D9xqVOvJFtJaI2":{name:"kGAULT",link:"https://www.youtube.com/@KingGault/videos"},LXFXEO1BKxPsmHAHVvjNa9Q1mR53:{name:"Toyhouze",link:"https://www.youtube.com/@Toyhouze/videos"},RquCTH8w7CWUXkUlIqLCSB2kIz72:{name:"Oranor_Games",link:"https://www.twitch.tv/oranor_games"},D1JtFqNjjJfL2kmxyCXifJaNWik2:{name:"Aranethius",link:"https://www.youtube.com/@Aranethius"},jK01Xg4mFzU00Iz3dI6v9dGq9UB3:{name:"Bubba87",link:"https://www.youtube.com/bubba87"},mQOLyouHD0f1zRS5yeLIIbkg6aD2:{name:"Nickadabra",link:"https://www.twitch.tv/nickadabra"},FAxo0FdcV8ZpmaIwwWwSMK9FDcX2:{name:"LuckyLuciano",link:"https://www.twitch.tv/LuckyLuciano",profileUrl:"/LuckyLuciano/builds/"},qhQIrePMVbTJdzkCrd5lj3WwCTL2:{name:"@BlackHeart86TV",link:"https://www.youtube.com/@BlackHeart86TV"},uLoPLGMfKeSIUKIygGwwrxWAkw62:{name:"6eeman",link:"https://www.twitch.tv/6eeman"},Md70FYyyPYYZCvAFLpChqvRWrFr2:{name:"Malagant",link:"https://www.youtube.com/@Malagant"},f6wiZfUsdqgw0y2QwmZb1JU8lx22:{name:"ManoImp",link:"https://www.youtube.com/c/manoimp"},anwHtC04OJMhb2KTMmsC6MtXbG33:{name:"T7PDM",link:"https://www.youtube.com/@T7PDM"},"8wvoFVIP7xUOiLA948T7ubDSYkc2":{name:"AyaJamesAya",link:"https://www.youtube.com/@ayajamesaya"},MWWDXGi9EhX7kGQNlUVWZVcOG1l1:{name:"TacticalGH0STT",link:"https://twitch.tv/TacticalGH0STT"},Nm4zlbCfEydTyE2CVUZNsJvjwhg1:{name:"Mekuna",link:"https://www.twitch.tv/mekuna",profileUrl:"/Mekuna/builds/"},Z6DnkxieyZPu25fvSOBbbOHempz1:{name:"Skulm",link:"https://www.youtube.com/@Skulm",profileUrl:"/Skulm/builds/"},P2tsRsIMI3f09oRPtlwlBXPr6993:{name:"Sagittarian",link:"https://www.youtube.com/@sagittarian_tv",profileUrl:"/Sagittarian/builds/"},IFglTDgWMHTirtPXCIgoxWuQLVt2:{name:"aphrorox",link:"https://youtube.com/@aphrorox",profileUrl:"/Roxy/builds/"},nmOigQZ256Q0gHH72g0rt4R0FyI2:{name:"ShadowDragonD4",link:"https://www.youtube.com/@ShadowDragonD4",profileUrl:"/ShadowDragon/builds/"},PvIDRFMbhuMVsMBRMqopp5W91qp1:{name:"Barricade",link:"https://www.twitch.tv/barricade"},hPZRRAgPzIaK8mPC5BdLJ20swuR2:{name:"Draven",link:"https://www.youtube.com/@DravensLair"},ws6itrru18Xg1Nqm8oWIDKpslPe2:{name:"Nevermind_2612",link:"https://www.twitch.tv/nevermind_2612",profileUrl:"/Nevermind_2612/builds/"},yL5uJfonNsZa48ydtCZ3lrDTiVq2:{name:"backsternomercy",link:"https://www.twitch.tv/backsternomercy"}},Qc=["jW1X7qEuALPTKnIh9obKmOywtJH3","PvIDRFMbhuMVsMBRMqopp5W91qp1","YULjU8wLReMjbFyTd6NeIfceDWF3","OjI5Zun2xkct0Y171HkUclqDOYV2","EotSjm7aCcUj8rOsW9AIUAB7NtF3","ajqmZ2l6Z0UkWo50pVTXX2EdBCv2","KTRm2rfWPkTqM7i0x6wmPhl7SsZ2","XiOtDEDczHPOF7qLJCzvqnzwXqp2","neBvzhgnioUMsE4umgSd9cM09sI2","9q0hLswpfsShuCXcf8ompvw3b8h1","gPgHm4ZwrGduBwai7fr55yLLQrD3","1GcAxWNIL6MC6afiLa4hWkeNoOV2","2B3WqD0qFffiwCyWVaClKz92spF2","zTA4JJtFRZQYHxE6YAogyNcLTyi2","x3jRFZA4LFYCcpSR6x7qcr60jf63","mTSwYMIKVbXfarzoI2CxTK7Iogr1","vBhggEuIGCQfQUDuBqZGwzXZLrG2","PYH3J01RPGYgtPI26IGx37OsWOE3","GxEux4KRWsezTyKK729XsSzbBI62","L8fHtxdaMdSFJo4FacUAVVnwsf92","JyyWybsd7IO6wcoXil5bmDSZd5f1","VCCWIV65LIWhvnztZM8b2DYBNbs2","If4CP4Hr8WT6SUN4V2OBInvLWZ83","ee1NbLYWhVcmGaZNFZPDU7RnGf52","fMpCBclPxQZkEv7oMTm3avG6tYl2","auPoswFXhzW4YyubVooCEqWyAtW2","cwTRqZaFRzTKvOYTCBpxLQPmYk32","ZkIhoAffwQWE0nK5aJD4GwRzOuz1","0vGtBtsTX3W2Jb6A19hkysLDpcA2","h6DI2ppKtibDMDxBNy0gNPHZKFQ2","KYH7uBBW0vcA2nlwvjZFt59IToA3","Q1Nf9tEpHdYdgixSK1I1rKjA2AS2","XvYd6fiAwjd95n4TgHQG0rKMyeG3","9vPG9zUdM0g1uky7o7GEw6YwT922","tDFYUWv2r1NnOlZuAg35HNCxSCe2","yrUCV46dFqWk3WtnIL9wz3SypOM2","EW8n7x3fhvgYYpSN8gsWgUFgYcb2","gFFgIskbr9gnS9JPbgnYXJBIn2D2","ZwQGGTYR0UPWtJM2ne3X17fos3y2","Z7HibLcNEWQ6Ybsuly3vdai0wFr1","6139bSmsUOeUT7D9xqVOvJFtJaI2","LXFXEO1BKxPsmHAHVvjNa9Q1mR53","RquCTH8w7CWUXkUlIqLCSB2kIz72","D1JtFq
1NjjJfL2kmxyCXifJaNWik2","jK01Xg4mFzU00Iz3dI6v9dGq9UB3","mQOLyouHD0f1zRS5yeLIIbkg6aD2","FAxo0FdcV8ZpmaIwwWwSMK9FDcX2","qhQIrePMVbTJdzkCrd5lj3WwCTL2","uLoPLGMfKeSIUKIygGwwrxWAkw62","Md70FYyyPYYZCvAFLpChqvRWrFr2","f6wiZfUsdqgw0y2QwmZb1JU8lx22","anwHtC04OJMhb2KTMmsC6MtXbG33","8wvoFVIP7xUOiLA948T7ubDSYkc2","MWWDXGi9EhX7kGQNlUVWZVcOG1l1","Nm4zlbCfEydTyE2CVUZNsJvjwhg1","Z6DnkxieyZPu25fvSOBbbOHempz1","P2tsRsIMI3f09oRPtlwlBXPr6993","IFglTDgWMHTirtPXCIgoxWuQLVt2","nmOigQZ256Q0gHH72g0rt4R0FyI2","hPZRRAgPzIaK8mPC5BdLJ20swuR2","ws6itrru18Xg1Nqm8oWIDKpslPe2","yL5uJfonNsZa48ydtCZ3lrDTiVq2"],$c={h6DI2ppKtibDMDxBNy0gNPHZKFQ2:"/rob2628/builds/",Nm4zlbCfEydTyE2CVUZNsJvjwhg1:"/Mekuna/builds/",P2tsRsIMI3f09oRPtlwlBXPr6993:"/Sagittarian/builds/",IFglTDgWMHTirtPXCIgoxWuQLVt2:"/Roxy/builds/",nmOigQZ256Q0gHH72g0rt4R0FyI2:"/ShadowDragon/builds/",FAxo0FdcV8ZpmaIwwWwSMK9FDcX2:"/LuckyLuciano/builds/"},em=e=>{let l=e||Ql,n=[];if(0===Dr)n=l.paragon.selectedTiles;else if(Dr>0&&Dr<=l.variants.length){const e=Dr-1;n=l.variants[e].paragon.selectedTiles}let a,t={Primary:{Strength:0,Dexterity:0,Intelligence:0,Willpower:0}};if(0===Dr)a=10*(Object.keys(l.paragon.boards).length-1);else if(Dr>0&&Dr<=l.variants.length){const e=Dr-1;a=10*(Object.keys(l.variants[e].paragon.boards).length-1)}"Barbarian"===l.class?(t.Primary.Strength=177,t.Primary.Dexterity=175,t.Primary.Intelligence=174,t.Primary.Willpower=174):"Druid"===l.class?(t.Primary.Strength=174,t.Primary.Dexterity=174,t.Primary.Intelligence=175,t.Primary.Willpower=177):"Necromancer"===l.class?(t.Primary.Strength=174,t.Primary.Dexterity=174,t.Primary.Intelligence=177,t.Primary.Willpower=175):"Rogue"===l.class?(t.Primary.Strength=174,t.Primary.Dexterity=177,t.Primary.Intelligence=174,t.Primary.Willpower=175):"Sorcerer"===l.class&&(t.Primary.Strength=174,t.Primary.Dexterity=174,t.Primary.Intelligence=177,t.Primary.Willpower=175);let s=gu().season<15?ze:Je;null!=s&&s[l.class]&&Object.keys(s[l.class]).map(function(e){let a=s[l.class][e];return n.includes(a.id)&&a.effects&&Object.keys(a.effects).map(function(e){let l=a.effects[e],n=Number(l.replace(/\D+$/g,"")),s=l.replace("%","").replace(/\./g,"").replace(/[0-9]/g,"").trimStart();return l.includes("%")&&(n/=100),s in t.Primary&&(t.Primary[s]+=n),null},this),null},this),t.Primary.Strength+=a,t.Primary.Dexterity+=a,t.Primary.Intelligence+=a,t.Primary.Willpower+=a,yi(t);const r=Dr-1;Zi(n.length-1+(0===Dr?l.paragon.boards.length-1:l.variants[r].paragon.boards.length-1))},lm=e=>{if(!Wo&&!xo)return;let l=Ql;const n=Dr-1;let t=0===Dr?l:l.variants[n],s=null,r=null,i=null,o=null;if(Object.keys(t.paragon.boards).map(function(l){let n=t.paragon.boards[l];return n.x===Ri&&n.y===Ti&&(r=l,s=n),n.name===e&&(o=l,i=n),null},this),s)if(t.paragon.boards.map(e=>e.name).includes(e)){let e=s.x,n=s.y,a=i.x,u=i.y;s.x=a,s.y=u,i.x=e,i.y=n;((e,l,n)=>{let a=e[l];e[l]=e[n],e[n]=a})(t.paragon.boards,r,o),$l(Object.assign({},l)),Fo(!0),em()}else nm(s.name),t.paragon.boards.splice(r,0,{name:e,rotation:0,x:Ri,y:Ti,glyph:null}),$l(Object.assign({},l)),Fo(!0),em();else if(Ji<336){const t={name:e,rotation:0,x:Ri,y:Ti,glyph:null};if(0===Dr){const e=[].concat((0,a.A)(l.paragon.boards),[t]);$l(l=>Object.assign({},l,{paragon:Object.assign({},l.paragon,{boards:e})}))}else{const e=(0,a.A)(l.variants),s=Object.assign({},e[n],{paragon:Object.assign({},e[n].paragon,{boards:[].concat((0,a.A)(e[n].paragon.boards),[t])})});e[n]=s,$l(l=>Object.assign({},l,{variants:e}))}Fo(!0),em()}$u()},nm=e=>{if(!Wo&&!xo)return;let l=Ql;const n=Dr-1;let a=0===Dr?l:l.variants[n],t=a.paragon.selectedTiles,s=null;Object.keys(a.paragon.boards).map(function(l){return a.paragon.boards[l].name===e&&(s=l),null},this);let r=t.filter(l=>-1===l.indexOf(e.replace(/ /g,"").toLowerCase()));a.paragon.selectedTiles=r,a.paragon.boards.splice(s,1),$l(Object.assign({},l)),Fo(!0),em()},am=e=>{if(!Wo&&!xo)return;let l=Ql;const n=Dr-1;let a=0===Dr?l:l.variants[n],t=null,s=null,r=null,i=null;if(Object.keys(a.paragon.boards).map(function(l){let n=a.paragon.boards[l];return n.glyph===e&&n.name!==Mi&&(s=l,t=n),n.name===Mi&&(i=l,r=n,n.glyph||a.paragon.selectedTiles.push(qi)),null},this),t){let e=t.glyph,n=r.glyph,o=r.glyphLevel;a.paragon.boards[s].glyph=n,a.paragon.boards[s].glyphLevel=o,a.paragon.boards[i].glyph=e,a.paragon.boards[i].glyphLevel=100,$l(Object.assign({},l)),Fo(!0),em()}else a.paragon.boards[i].glyph=e,a.paragon.boards[i].glyphLevel=100,$l(Object.assign({},l)),Fo(!0),em();lo(""),ec()},tm=()=>{if(!Wo&&!xo)return;let e=Ql;const l=Dr-1;let n=0===Dr?e:e.variants[l];Object.keys(n.paragon.boards).map(function(e){let l=n.paragon.boards[e];return l.name===Mi&&(l.glyph=null,n.paragon.selectedTiles.includes(qi)&&n.paragon.selectedTiles.splice(n.paragon.selectedTiles.indexOf(qi),1)),null},this),$l(Object.assign({},e)),Fo(!0),em(),ec()},sm={Barbarian:["Basic","Core","Defensive","Brawling","Weapon Mastery","Ultimate"],Druid:["Basic","Core","Defensive","Companion","Wrath","Ultimate"],Necromancer:["Basic","Core","Corpse","Macabre","Curse","Ultimate"],Rogue:["Basic","Core","Agility","Subterfuge","Imbuement","Ultimate"],Sorcerer:["Basic","Core","Defensive","Conjuration","Mastery","Ultimate"],Spiritborn:["Basic","Core","Focus","Defensive","Potency","Ultimate"],Paladin:["Basic","Core","Aura","Valor","Justice","Ultimate"],Warlock:["Basic","Core","Defensive","Archfiend","Sigil","Ultimate","Soul Shard"]},rm={Barbarian:["Helm","Chest Armor","Gloves","Pants","Boots","Bludgeoning Weapon","Dual-Wield Weapon 1",null,"Amulet","Ring 1","Ring 2",null,"Slashing Weapon","Dual-Wield Weapon 2"],Druid:["Helm","Chest Armor","Gloves","Pants","Boots","Weapon",null,null,"Amulet","Ring 1","Ring 2",null,"Offhand",null],Necromancer:["Helm","Chest Armor","Gloves","Pants","Boots","Weapon",null,null,"Amulet","Ring 1","Ring 2",null,"Shield",null],Rogue:["Helm","Chest Armor","Gloves","Pants","Boots","Ranged Weapon",null,null,"Amulet","Ring 1","Ring 2",null,"Dual-Wield Weapon 1","Dual-Wield Weapon 2"],Sorcerer:["Helm","Chest Armor","Gloves","Pants","Boots","Weapon",null,null,"Amulet","Ring 1","Ring 2",null,"Offhand",null],Spiritborn:["Helm","Chest Armor","Gloves","Pants","Boots","Weapon",null,null,"Amulet","Ring 1","Ring 2",null,null,null],Paladin:["Helm","Chest Armor","Gloves","Pants","Boots","Weapon",null,null,"Amulet","Ring 1","Ring 2",null,"Shield",null],Warlock:["Helm","Chest Armor","Gloves","Pants","Boots","Weapon",null,null,"Amulet","Ring 1","Ring 2",null,"Offhand",null],NoClass:[null,null,null,null,null,null,null,null,null,null,null,null,null,null]},im={Barbarian:{Helm:[null,null,null,null,null],"Chest Armor":[null,
1null,null,null,null],Gloves:[null,null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],"Bludgeoning Weapon":[null,null,null,null,null],"Dual-Wield Weapon 1":[null,null,null,null,null],Amulet:[null,null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,null,null,null,null],"Slashing Weapon":[null,null,null,null,null],"Dual-Wield Weapon 2":[null,null,null,null,null]},Druid:{Helm:[null,null,null,null,null],"Chest Armor":[null,null,null,null,null],Gloves:[null,null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,null,null,null,null],Offhand:[null,null,null,null,null]},Necromancer:{Helm:[null,null,null,null,null],"Chest Armor":[null,null,null,null,null],Gloves:[null,null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,
1null,null,null,null],Shield:[null,null,null,null,null]},Rogue:{Helm:[null,null,null,null,null],"Chest Armor":[null,null,null,null,null],Gloves:[null,null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],"Ranged Weapon":[null,null,null,null,null],Amulet:[null,null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,null,null,null,null],"Dual-Wield Weapon 1":[null,null,null,null,null],"Dual-Wield Weapon 2":[null,null,null,null,null]},Sorcerer:{Helm:[null,null,null,null,null],"Chest Armor":[null,null,null,null,null],Gloves:[null,null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,null,null,null,null],Offhand:[null,null,null,null,null]},Spiritborn:{Helm:[null,null,null,null,null],"Chest Armor":[null,null,null,null,null],Gloves:[null,null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,
1null,null,null,null]},Paladin:{Helm:[null,null,null,null,null],"Chest Armor":[null,null,null,null,null],Gloves:[null,null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,null,null,null,null],Shield:[null,null,null,null,null]},Warlock:{Helm:[null,null,null,null,null],"Chest Armor":[null,null,null,null,null],Gloves:[null,null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,null,null,null,null],Offhand:[null,null,null,null,null]}},om={Barbarian:{Helm:[null,null,null,null,null],"Chest Armor":[null,null,null,null,null],Gloves:[null,null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],"Bludgeoning Weapon":[null,null,null,null,null],"Dual-Wield Weapon 1":[null,null,null,null,null],Amulet:[null,null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,
1null,null,null,null],"Slashing Weapon":[null,null,null,null,null],"Dual-Wield Weapon 2":[null,null,null,null,null]},Druid:{Helm:[null,null,null,null,null],"Chest Armor":[null,null,null,null,null],Gloves:[null,null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,null,null,null,null],Offhand:[null,null,null,null,null]},Necromancer:{Helm:[null,null,null,null,null],"Chest Armor":[null,null,null,null,null],Gloves:[null,null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,null,null,null,null],Shield:[null,null,null,null,null]},Rogue:{Helm:[null,null,null,null,null],"Chest Armor":[null,null,null,null,null],Gloves:[null,null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],"Ranged Weapon":[null,null,null,null,null],Amulet:[null,null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,
1null,null,null,null],"Dual-Wield Weapon 1":[null,null,null,null,null],"Dual-Wield Weapon 2":[null,null,null,null,null]},Sorcerer:{Helm:[null,null,null,null,null],"Chest Armor":[null,null,null,null,null],Gloves:[null,null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,null,null,null,null],Offhand:[null,null,null,null,null]},Spiritborn:{Helm:[null,null,null,null,null],"Chest Armor":[null,null,null,null,null],Gloves:[null,null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,null,null,null,null]},Paladin:{Helm:[null,null,null,null,null],"Chest Armor":[null,null,null,null,null],Gloves:[null,null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,
1null,null,null,null],Shield:[null,null,null,null,null]},Warlock:{Helm:[null,null,null,null,null],"Chest Armor":[null,null,null,null,null],Gloves:[null,null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,null,null,null,null],Offhand:[null,null,null,null,null]}},um={Barbarian:{Helm:null,"Chest Armor":null,Gloves:null,Pants:null,Boots:null,"Bludgeoning Weapon":null,"Dual-Wield Weapon 1":null,Amulet:[null,null],"Ring 1":null,"Ring 2":null,"Slashing Weapon":null,"Dual-Wield Weapon 2":null},Druid:{Helm:null,"Chest Armor":null,Gloves:null,Pants:null,Boots:null,Weapon:null,Amulet:[null,null],"Ring 1":null,"Ring 2":null,Offhand:null},Necromancer:{Helm:null,"Chest Armor":null,Gloves:null,Pants:null,Boots:null,Weapon:null,Amulet:[null,null],"Ring 1":null,"Ring 2":null,Shield:null},Rogue:{Helm:null,"Chest Armor":null,Gloves:null,Pants:null,Boots:null,"Ranged Weapon":null,Amulet:[null,null],"Ring 1":null,"Ring 2":null,"Dual-Wield Weapon 1":null,"Dual-Wield Weapon 2":null},Sorcerer:{Helm:null,"Chest Armor":null,Gloves:null,Pants:null,Boots:null,Weapon:null,Amulet:[null,null],"Ring 1":null,"Ring 2":null,Offhand:null},Spiritborn:{Helm:null,"Chest Armor":null,Gloves:null,Pants:null,Boots:null,Weapon:null,Amulet:[null,null],"Ring 1":null,"Ring 2":null},Paladin:{Helm:null,"Chest Armor":null,Gloves:null,Pants:null,Boots:null,Weapon:null,Amulet:[null,null],"Ring 1":null,"Ring 2":null,Shield:null},Warlock:{Helm:null,"Chest Armor":null,Gloves:null,Pants:null,Boots:null,Weapon:null,Amulet:[null,null],"Ring 1":null,"Ring 2":null,Offhand:null}},cm={Barbarian:{Helm:null,"Chest Armor":null,Gloves:null,Pants:null,Boots:null,"Bludgeoning Weapon":null,"Dual-Wield Weapon 1":null,Amulet:null,"Ring 1":null,"Ring 2":null,"Slashing Weapon":null,"Dual-Wield Weapon 2":null},Druid:{Helm:null,"Chest Armor":null,Gloves:null,Pants:null,Boots:null,Weapon:null,Amulet:null,"Ring 1":null,"Ring 2":null,Offhand:null},Necromancer:{Helm:null,"Chest Armor":null,Gloves:null,Pants:null,Boots:null,Weapon:null,Amulet:null,"Ring 1":null,"Ring 2":null,Shield:null},Rogue:{Helm:null,"Chest Armor":null,Gloves:null,Pants:null,Boots:null,"Ranged Weapon":null,Amulet:null,"Ring 1":null,"Ring 2":null,"Dual-Wield Weapon 1":null,"Dual-Wield Weapon 2":null},Sorcerer:{Helm:null,"Chest Armor":null,Gloves:null,Pants:null,Boots:null,Weapon:null,Amulet:null,"Ring 1":null,"Ring 2":null,Offhand:null},Spiritborn:{Helm:null,"Chest Armor":null,Gloves:null,Pants:null,Boots:null,Weapon:null,Amulet:null,"Ring 1":null,"Ring 2":null},Paladin:{Helm:null,"Chest Armor":null,Gloves:null,Pants:null,Boots:null,Weapon:null,Amulet:null,"Ring 1":null,"Ring 2":null,Shield:null},Warlock:{Helm:null,"Chest Armor":null,Gloves:null,Pants:null,Boots:null,Weapon:null,Amulet:null,"Ring 1":null,"Ring 2":null,Offhand:null}},mm={Barbarian:{Helm:[null,null],"Chest Armor":[null,null],Gloves:[null,null],Pants:[null,null],Boots:[null,null],"Bludgeoning Weapon":[null,null],"Dual-Wield Weapon 1":[null,null],Amulet:[null,null],"Ring 1":[null,null],"Ring 2":[null,
1null],"Slashing Weapon":[null,null],"Dual-Wield Weapon 2":[null,null]},Druid:{Helm:[null,null],"Chest Armor":[null,null],Gloves:[null,null],Pants:[null,null],Boots:[null,null],Weapon:[null,null],Amulet:[null,null],"Ring 1":[null,null],"Ring 2":[null,null],Offhand:[null,null]},Necromancer:{Helm:[null,null],"Chest Armor":[null,null],Gloves:[null,null],Pants:[null,null],Boots:[null,null],Weapon:[null,null],Amulet:[null,null],"Ring 1":[null,null],"Ring 2":[null,null],Shield:[null,null]},Rogue:{Helm:[null,null],"Chest Armor":[null,null],Gloves:[null,null],Pants:[null,null],Boots:[null,null],"Ranged Weapon":[null,null],Amulet:[null,null],"Ring 1":[null,null],"Ring 2":[null,null],"Dual-Wield Weapon 1":[null,null],"Dual-Wield Weapon 2":[null,null]},Sorcerer:{Helm:[null,null],"Chest Armor":[null,null],Gloves:[null,null],Pants:[null,null],Boots:[null,null],Weapon:[null,null],Amulet:[null,null],"Ring 1":[null,null],"Ring 2":[null,null],Offhand:[null,null]},Spiritborn:{Helm:[null,null],"Chest Armor":[null,null],Gloves:[null,null],Pants:[null,null],Boots:[null,null],Weapon:[null,null],Amulet:[null,null],"Ring 1":[null,null],"Ring 2":[null,
1null]},Paladin:{Helm:[null,null],"Chest Armor":[null,null],Gloves:[null,null],Pants:[null,null],Boots:[null,null],Weapon:[null,null],Amulet:[null,null],"Ring 1":[null,null],"Ring 2":[null,null],Shield:[null,null]},Warlock:{Helm:[null,null],"Chest Armor":[null,null],Gloves:[null,null],Pants:[null,null],Boots:[null,null],Weapon:[null,null],Amulet:[null,null],"Ring 1":[null,null],"Ring 2":[null,null],Offhand:[null,null]}},dm={Barbarian:{Helm:[null],"Chest Armor":[null],Gloves:[null],Pants:[null],Boots:[null],"Bludgeoning Weapon":[null],"Dual-Wield Weapon 1":[null],Amulet:[null],"Ring 1":[null],"Ring 2":[null],"Slashing Weapon":[null],"Dual-Wield Weapon 2":[null]},Druid:{Helm:[null],"Chest Armor":[null],Gloves:[null],Pants:[null],Boots:[null],Weapon:[null],Amulet:[null],"Ring 1":[null],"Ring 2":[null],Offhand:[null]},Necromancer:{Helm:[null],"Chest Armor":[null],Gloves:[null],Pants:[null],Boots:[null],Weapon:[null],Amulet:[null],"Ring 1":[null],"Ring 2":[null],Shield:[null]},Rogue:{Helm:[null],"Chest Armor":[null],Gloves:[null],Pants:[null],Boots:[null],"Ranged Weapon":[null],Amulet:[null],"Ring 1":[null],"Ring 2":[null],"Dual-Wield Weapon 1":[null],"Dual-Wield Weapon 2":[null]},Sorcerer:{Helm:[null],"Chest Armor":[null],Gloves:[null],Pants:[null],Boots:[null],Weapon:[null],Amulet:[null],"Ring 1":[null],"Ring 2":[null],Offhand:[null]},Spiritborn:{Helm:[null],"Chest Armor":[null],Gloves:[null],Pants:[null],Boots:[null],Weapon:[null],Amulet:[null],"Ring 1":[null],"Ring 2":[null]},Paladin:{Helm:[null],"Chest Armor":[null],Gloves:[null],Pants:[null],Boots:[null],Weapon:[null],Amulet:[null],"Ring 1":[null],"Ring 2":[null],Shield:[null]},Warlock:{Helm:[null],"Chest Armor":[null],Gloves:[null],Pants:[null],Boots:[null],Weapon:[null],Amulet:[null],"Ring 1":[null],"Ring 2":[null],Offhand:[null]}},_m={Barbarian:{Helm:[null,null,null,null],"Chest Armor":[null,null,null,null],Gloves:[null,null,null,null],Pants:[null,null,null,null],Boots:[null,null,null,null,null],"Bludgeoning Weapon":[null,null,null,null,null],"Dual-Wield Weapon 1":[null,null,null,null,null],Amulet:[null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,
1null,null,null,null],"Slashing Weapon":[null,null,null,null,null],"Dual-Wield Weapon 2":[null,null,null,null,null]},Druid:{Helm:[null,null,null,null],"Chest Armor":[null,null,null,null],Gloves:[null,null,null,null],Pants:[null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,null,null,null,null],Offhand:[null,null,null,null]},Necromancer:{Helm:[null,null,null,null],"Chest Armor":[null,null,null,null],Gloves:[null,null,null,null],Pants:[null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,null,null,null,null],Shield:[null,null,null,null,null]},Rogue:{Helm:[null,null,null,null],"Chest Armor":[null,null,null,null],Gloves:[null,null,null,null],Pants:[null,null,null,null],Boots:[null,null,null,null,null],"Ranged Weapon":[null,null,null,null,null],Amulet:[null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,
1null,null,null,null],"Dual-Wield Weapon 1":[null,null,null,null,null],"Dual-Wield Weapon 2":[null,null,null,null,null]},Sorcerer:{Helm:[null,null,null,null],"Chest Armor":[null,null,null,null],Gloves:[null,null,null,null],Pants:[null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,null,null,null,null],Offhand:[null,null,null,null]},Spiritborn:{Helm:[null,null,null,null],"Chest Armor":[null,null,null,null],Gloves:[null,null,null,null],Pants:[null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,null,null,null,null]},Paladin:{Helm:[null,null,null,null],"Chest Armor":[null,null,null,null],Gloves:[null,null,null,null],Pants:[null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,null,null,null,null],Shield:[null,null,null,null,null]},Warlock:{Helm:[null,null,null,null],"Chest Armor":[null,null,null,null],Gloves:[null,null,null,null],Pants:[null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,
1null,null,null,null],Offhand:[null,null,null,null]}},gm={Barbarian:{Helm:[null,null,null,null],"Chest Armor":[null,null,null,null],Gloves:[null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],"Bludgeoning Weapon":[null,null,null,null,null],"Dual-Wield Weapon 1":[null,null,null,null,null],Amulet:[null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,null,null,null,null],"Slashing Weapon":[null,null,null,null,null],"Dual-Wield Weapon 2":[null,null,null,null,null]},Druid:{Helm:[null,null,null,null],"Chest Armor":[null,null,null,null],Gloves:[null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,null,null,null,null],Offhand:[null,null,null,null]},Necromancer:{Helm:[null,null,null,null],"Chest Armor":[null,null,null,null],Gloves:[null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,
1null,null,null,null],Shield:[null,null,null,null,null]},Rogue:{Helm:[null,null,null,null],"Chest Armor":[null,null,null,null],Gloves:[null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],"Ranged Weapon":[null,null,null,null],Amulet:[null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,null,null,null,null],"Dual-Wield Weapon 1":[null,null,null,null,null],"Dual-Wield Weapon 2":[null,null,null,null,null]},Sorcerer:{Helm:[null,null,null,null],"Chest Armor":[null,null,null,null],Gloves:[null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,null,null,null,null],Offhand:[null,null,null,null]},Spiritborn:{Helm:[null,null,null,null],"Chest Armor":[null,null,null,null],Gloves:[null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,
1null,null,null,null]},Paladin:{Helm:[null,null,null,null],"Chest Armor":[null,null,null,null],Gloves:[null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,null,null,null,null],Shield:[null,null,null,null,null]},Warlock:{Helm:[null,null,null,null],"Chest Armor":[null,null,null,null],Gloves:[null,null,null,null],Pants:[null,null,null,null,null],Boots:[null,null,null,null,null],Weapon:[null,null,null,null,null],Amulet:[null,null,null,null],"Ring 1":[null,null,null,null,null],"Ring 2":[null,null,null,null,null],Offhand:[null,null,null,null]}},pm={Deer:["Prickleskin","Gift of the Stag","Wariness","Advantageous Beast"],Eagle:["Scythe Talons","Iron Feather","Swooping Attacks","Avian Wrath"],Wolf:["Packleader","Energize","Bolster","Calamity"],Snake:["Obsidian Slam","Overload","Masochistic","Calm Before the Storm"]},hm={"Legion Shard":["Spawn Fragment","Sacrificial Fragment","Evisceration Fragment"],"Vanguard Shard":["Hellguard Fragment","Warden Fragment","Inferno Fragment"],"Mastermind Shard":["Unfathomable Fragment","Blasphemous Fragment","Subjugation Fragment"],"Ritualist Shard":["Abyssal Fragment","Scorching Fragment","Twisted Fragment"]},fm=["Jaguar","Eagle","Gorilla","Centipede"],vm={"Skeletal Warriors":{Skirmishers:[0,1,2],Defenders:[0,1,2],Reapers:[0,1,2]},"Skeletal Mages":{Shadow:[0,1,2],Cold:[0,1,2],Bone:[0,1,2]},Golems:{Bone:[0,1,2],Blood:[0,1,2],Iron:[0,1,2]}},bm={Offensive:["Gloves","Ring 1","Ring 2","Amulet","Weapon","Offhand","Shield","Bludgeoning Weapon","Slashing Weapon","Dual-Wield Weapon 1","Dual-Wield Weapon 2","Slashing Weapon","Ranged Weapon"],Defensive:["Helm","Chest Armor","Pants","Amulet","Shield"],Resource:["Ring 1","Ring 2","Amulet"],Utility:["Helm","Chest Armor","Gloves","Boots","Amulet","Shield","Pants"],Mobility:["Boots","Amulet"],Weapons:["Weapon","Bludgeoning Weapon","Slashing Weapon","Dual-Wield Weapon 1","Dual-Wield Weapon 2","Slashing Weapon","Ranged Weapon","Offhand","Shield"]},wm=["Amethyst","Emerald","Ruby","Topaz","Sapphire","Diamond","Skull","Splinter of Anguish","Splinter of Sin","Splinter of Lies","Splinter of the Black Soulstone","Splinter of Pain","Splinter of the Mother","Splinter of Hellfire","Splinter of Damnation"];let Sm=["null","null","null","null"];const ym=["Barbarian","Druid","Necromancer","Paladin","Rogue","Sorcerer","Spiritborn","Warlock"],Em=["top","right","left","bottom","inner-top","inner-right","inner-left","inner-bottom"],km=["top-left","top-right","mid-left","mid-right","bottom-left","bottom-right"],Nm=["Andariel's Visage","Tyrael's Might","Ahavarion, Spear of Lycander","Doombringer","Harlequin Crest","Melted Heart of Selig","Ring of Starless Skies","The Grandfather","Heir of Perdition","Shattered Vow","Shroud of False Death","El'druin, Sword of Justice"],Am=new v.HF,Wm=e=>{e.preventDefault();let l=Object.assign({},Ql,{name:p.A.sanitize(jo)});$l(l),Fo(!0);let n=document.getElementById("renameBuild");n.blur(),n.disabled=!0},Cm=e=>{Ho(e.target.value)},Bm=(e,l)=>{e.preventDefault(),Fo(!0);let n=document.getElementById("renameVariant"+l);n.blur(),n.disabled=!0,n.style.pointerEvents="none"},xm=(e,l)=>{const n=e.target.value;if(0===l){let e=Object.assign({},Ql);e.variantName=p.A.sanitize(n),$l(e)}else $l(e=>Object.assign({},e,{variants:e.variants.map((e,a)=>a===l-1?Object.assign({},e,{name:p.A.sanitize(n)}):e)}))};(0,t.useEffect)(()=>{const e=[].concat((0,a.A)(Ql.variants),[Object.assign({},Ql,{variants:[],isMain:!0})]).sort((e,l)=>e.dropdownOrder-l.dropdownOrder).map((e,l)=>{var n;return Object.assign({},e,{dropdownOrder:null!==(n=e.dropdownOrder)&&void 0!==n?n:l+1})}),l=e.reduce((e,l)=>(e[l.index||0]=l.dropdownOrder,e),{});nn((0,a.A)(e)),sn(l)},[Ql]);const Om=(e,l)=>{li(!l&&!ei),e&&(ti(e),ii("Copy To Variant"))},Pm=(e,l)=>{jr(!l&&!Gr),e&&Eu(e.index)},Rm=(e,l,n)=>{var a,t,s,r;if(1===(n?null===(a=gu().bloodiedAffixesGAMW)||void 0===a||null===(t=a[e])||void 0===t?void 0:t[l]:null===(s=gu().masterworking)||void 0===s||null===(r=s[e])||void 0===r?void 0:r[l]))return!0},Im=(e,l,n)=>t.createElement("div",{className:"masterworking"},t.createElement("button",{onClick:()=>n?Xc(e,l):((e,l)=>{let n=Object.assign({},Ql);if(0===Dr){for(;n.masterworking[e].length<l;)n.masterworking[e].push(null);for(let a=0;a<n.masterworking[e].length;a++)a!==l&&(n.masterworking[e][a]=0);n.masterworking[e][l]?n.masterworking[e][l]=0:n.masterworking[e][l]=1}else if(Dr>0&&Dr<=n.variants.length){const a=Dr-1;for(;n.variants[a].masterworking[e].length<l;)n.variants[a].masterworking[e].push(null);for(let t=0;t<n.variants[a].masterworking[e].length;t++)t!==l&&(n.variants[a].masterworking[e][t]=0);n.variants[a].masterworking[e][l]?n.variants[a].masterworking[e][l]=0:n.variants[a].masterworking[e][l]=1}$l(n),Fo(!0)})(e,l),className:"masterworking_circle masterworking_circle--one"+(Rm(e,l,n)?" masterworking_circle--filled":"")}
1)," "),Dm=(0,le.a3)(gu().charms,gu().charmStats),Tm=e=>{var l,n,a;const t=gu().gear[e],s=e.replace(" 1","").replace(" 2",""),r=Object.keys(mt).filter(e=>{const l=mt[e];return l.name===t&&(!l.class||l.class===gu().class)}),i=null===(l=gu().gearTypes)||void 0===l?void 0:l[e];return null!==(n=null!==(a=r.find(e=>mt[e].type===i))&&void 0!==a?a:r.find(e=>mt[e].type===s))&&void 0!==n?n:r[0]},Lm=["Boots","Ring 1","Ring 2","Bludgeoning Weapon","Slashing Weapon","Dual-Wield Weapon 1","Dual-Wield Weapon 2","Ranged Weapon","Weapon","Ring","Shield"];return ko?t.createElement(_.A,{isElectron:Yl},t.createElement("div",null,"Looks like the build you are looking for no longer exists. Head over to our"," ",t.createElement("button",{value:"Build Planner"},t.createElement(o.Link,{to:"/build-planner/"},"Build Planner"))," ","to start a new build."," ")):t.createElement(_.A,{showSaveChanges:Mo,tooltipOpen:Ws,isElectron:Yl},t.createElement(g.A,{title:ke||(Ql.class?"Diablo 4 "+Ql.class+" Build":"Diablo 4 Custom Build"),description:Ne||"Dominate the endgame with this Diablo 4 Build Planner. Plan your skills, aspects, stats, and paragon boards and optimize your character for maximum power."}),t.createElement("div",{className:"builder"},ma?t.createElement("button",{className:"modal__backdrop",onClick:lc},t.createElement("button",{className:"builder__copy__paragon__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"copy__paragon__content"},t.createElement("button",{onClick:lc,className:"builder__modal__close"},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"copy__paragon__header"},"Copy Paragon Boards"),t.createElement("div",{className:"dropdown__wrapper"},t.createElement("div",{className:"dropdown__title"},"Copy To"),t.createElement(T.A,{data:ln.filter(e=>e.index!==Dr),showDropdown:ei,setShowDropdown:Om,buttonValue:ai,isBuildPlanner:!0}),t.createElement("button",{className:"copy__paragon__button btn",onClick:()=>{let e=Object.assign({},Ql),l=0===Dr?e.paragon:e.variants[Dr-1].paragon,n=ln.find(e=>e.isMain?e.variantName===ai:e.name===ai);0===n.index?e.paragon=Object.assign({},l,{boards:(0,a.A)(l.boards),selectedTiles:(0,a.A)(l.selectedTiles)}):n.index>0&&n.index<=e.variants.length&&(e.variants[n.index-1].paragon=Object.assign({},l,{boards:(0,a.A)(l.boards),selectedTiles:(0,a.A)(l.selectedTiles)})),Fo(!0),ii("Copied!"),$l(e)}},ri),"h6DI2ppKtibDMDxBNy0gNPHZKFQ2"===Ql.owner||"9Pqtuz2khGSvJe8kHHxANfIArHE2"===Ql.owner||"ws6itrru18Xg1Nqm8oWIDKpslPe2"===Ql.owner?t.createElement(t.Fragment,null,t.createElement("div",{className:"divider"}),t.createElement("button",{className:"copy__paragon__button btn copy-dif",onClick:()=>{let e=Object.assign({},Ql),l=0===Dr?e.paragon:e.variants[Dr-1].paragon;localStorage.setItem("paragonBoard",JSON.stringify(l)),localStorage.setItem("paragonBoardClass",Ql.class),ci("Saved in Local Storage!"),bi(!1)}},ui)):"",localStorage.getItem("paragonBoard")&&localStorage.getItem("paragonBoardClass")===Ql.class&&vi?t.createElement("button",{className:"copy__paragon__button btn paste",onClick:()=>{let e=Object.assign({},Ql);const l=JSON.parse(localStorage.getItem("paragonBoard"));let n=gu();0===n.index?e.paragon=Object.assign({},l,{boards:(0,a.A)(l.boards),selectedTiles:(0,a.A)(l.selectedTiles)}):n.index>0&&n.index<=e.variants.length&&(e.variants[n.index-1].paragon=Object.assign({},l,{boards:(0,a.A)(l.boards),selectedTiles:(0,a.A)(l.selectedTiles)})),Fo(!0),localStorage.removeItem("paragonBoard"),localStorage.removeItem("paragonBoardClass"),_i("Imported!"),em(),$l(e)}},di):"","Saved in Local Storage!"===ui?"Navigate to the build you want to copy your Paragons to.":"")))):"",ga?t.createElement("button",{className:"modal__backdrop",onClick:nc},t.createElement("button",{className:"builder__copy__paragon__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"copy__paragon__content"},t.createElement("button",{onClick:nc,className:"builder__modal__close"},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"copy__paragon__header"},"Copy Gear & Skills"),t.createElement("div",{className:"dropdown__wrapper"},t.createElement("div",{className:"dropdown__title"},"Copy To"),t.createElement(T.A,{data:ln.filter(e=>e.index!==Dr),showDropdown:ei,setShowDropdown:Om,buttonValue:ai,isBuildPlanner:!0}),t.createElement("button",{className:"copy__paragon__button btn",onClick:()=>{let e=Object.assign({},Ql),l=0===Dr?e.gear:e.variants[Dr-1].gear,n=0===Dr?e.skills:e.variants[Dr-1].skills,t=0===Dr?e.gems:e.variants[Dr-1].gems,s=0===Dr?e.newGems:e.variants[Dr-1].newGems,r=0===Dr?e.expertise:e.variants[Dr-1].expertise,i=0===Dr?e.oaths:e.variants[Dr-1].oaths,o=0===Dr?e.boons:e.variants[Dr-1].boons,u=0===Dr?e.summons:e.variants[Dr-1].summons,c=0===Dr?e.specialization:e.variants[Dr-1].specialization,m=0===Dr?e.enchantments:e.variants[Dr-1].enchantments,d=0===Dr?e.stats:e.variants[Dr-1].stats,_=0===Dr?e.newStats:e.variants[Dr-1].newStats,g=0===Dr?e.temperingStats:e.variants[Dr-1].temperingStats,p=0===Dr?e.charms:e.variants[Dr-1].charms,h=0===Dr?e.charmStats:e.variants[Dr-1].charmStats,f=0===Dr?e.seal:e.variants[Dr-1].seal,v=0===Dr?e.sealStats:e.variants[Dr-1].sealStats,b=ln.find(e=>e.isMain?e.variantName===ai:e.name===ai);0===b.index?(e.gear=Object.assign({},l),e.skills=(0,a.A)(n),e.gems=Object.assign({},t),e.newGems=Object.assign({},s),e.expertise=null!=r?r:null,e.oaths=null!=i?i:null,e.boons=Object.fromEntries(Object.keys(o).map(e=>[e,(0,a.A)(o[e])])),e.summons=Object.assign({},u),e.specialization=null!=c?c:null,e.enchantments=(0,a.A)(m),e.stats=Object.fromEntries(Object.keys(d).map(e=>[e,(0,a.A)(d[e])])),e.newStats=Object.fromEntries(Object.keys(_).map(e=>[e,(0,a.A)(_[e])])),e.temperingStats=Object.fromEntries(Object.keys(g).map(e=>[e,(0,a.A)(g[e])])),e.charms=(0,a.A)(p),e.charmStats=Object.fromEntries(Object.keys(h).map(e=>[e,(0,a.A)(h[e])])),e.seal=null!=f?f:null,e.sealStats=(0,a.A)(v)):b.index>0&&b.index<=e.variants.length&&(e.variants[b.index-1].gear=Object.assign({},l),e.variants[b.index-1].skills=(0,a.A)(n),e.variants[b.index-1].gems=Object.assign({},t),e.variants[b.index-1].newGems=Object.assign({},s),e.variants[b.index-1].expertise=null!=r?r:null,e.variants[b.index-1].oaths=null!=i?i:null,e.variants[b.index-1].boons=Object.fromEntries(Object.keys(o).map(e=>[e,(0,a.A)(o[e])])),e.variants[b.index-1].summons=Object.assign({},u),e.variants[b.index-1].specialization=null!=c?c:null,e.variants[b.index-1].enchantments=(0,a.A)(m),e.variants[b.index-1].stats=Object.fromEntries(Object.keys(d).map(e=>[e,(0,a.A)(d[e])])),e.variants[b.index-1].newStats=Object.fromEntries(Object.keys(_).map(e=>[e,(0,a.A)(_[e])])),e.variants[b.index-1].temperingStats=Object.fromEntries(Object.keys(g).map(e=>[e,(0,a.A)(g[e])])),e.variants[b.index-1].charms=(0,a.A)(p),e.variants[b.index-1].charmStats=Object.fromEntries(Object.keys(h).map(e=>[e,(0,a.A)(h[e])])),e.variants[b.index-1].seal=null!=f?f:null,e.variants[b.index-1].sealStats=(0,a.A)(v)),Fo(!0),ii("Copied!"),$l(e)}},ri))))):"",fa?t.createElement("button",{className:"modal__backdrop",onClick:ac},t.createElement("button",{className:"builder__copy__paragon__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"copy__paragon__content"},t.createElement("button",{onClick:ac,className:"builder__modal__close"},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"copy__paragon__header"},"Copy Skill Tree"),t.createElement("div",{className:"dropdown__wrapper"},t.createElement("div",{className:"dropdown__title"},"Copy To"),t.createElement(T.A,{data:ln.filter(e=>e.index!==Dr),showDropdown:ei,setShowDropdown:Om,buttonValue:ai,isBuildPlanner:!0}),t.createElement("button",{className:"copy__paragon__button btn",onClick:()=>{let e=Object.assign({},Ql),l=0===Dr?e.skillTree:e.variants[Dr-1].skillTree,n=ln.find(e=>e.isMain?e.variantName===ai:e.name===ai);0===n.index?e.skillTree=l:n.index>0&&n.index<=e.variants.length&&(e.variants[n.index-1].skillTree=l),Fo(!0),ii("Copied!"),$l(e)}},ri))))):"",wa?t.createElement("button",{className:"modal__backdrop",onClick:tc},t.createElement("button",{className:"builder__copy__paragon__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"copy__paragon__content"},t.createElement("button",{onClick:tc,className:"builder__modal__close"},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"copy__paragon__header"},"Copy War Plans"),t.createElement("div",{className:"dropdown__wrapper"},t.createElement("div",{className:"dropdown__title"},"Copy To"),t.createElement(T.A,{data:ln.filter(e=>e.index!==Dr),showDropdown:ei,setShowDropdown:Om,buttonValue:ai,isBuildPlanner:!0}),t.createElement("button",{className:"copy__paragon__button btn",onClick:()=>{let e=Object.assign({},Ql),l=0===Dr?Object.assign({},e.warplans):Object.assign({},e.variants[Dr-1].warplans),n=ln.find(e=>e.isMain?e.variantName===ai:e.name===ai);0===n.index?e.warplans=l:n.index>0&&n.index<=e.variants.length&&(e.variants[n.index-1].warplans=l),Fo(!0),ii("Copied!"),$l(e)}},ri),"h6DI2ppKtibDMDxBNy0gNPHZKFQ2"===Ql.owner||"9Pqtuz2khGSvJe8kHHxANfIArHE2"===Ql.owner||"ws6itrru18Xg1Nqm8oWIDKpslPe2"===Ql.owner?t.createElement(t.Fragment,null,t.createElement("div",{className:"divider"}),t.createElement("button",{className:"copy__paragon__button btn copy-dif",onClick:()=>{let e=Object.assign({},Ql),l=0===Dr?Object.assign({},e.warplans):Object.assign({},e.variants[Dr-1].warplans);localStorage.setItem("warPlans",JSON.stringify(l)),ci("Saved in Local Storage!"),bi(!1)}}
1,ui)):"",localStorage.getItem("warPlans")&&vi?t.createElement("button",{className:"copy__paragon__button btn paste",onClick:()=>{let e=Object.assign({},Ql);const l=JSON.parse(localStorage.getItem("warPlans"));let n=gu();0===n.index?e.warplans=Object.assign({},l):n.index>0&&n.index<=e.variants.length&&(e.variants[n.index-1].warplans=Object.assign({},l));const a=l[$s]||"";let t=0;for(let s=0;s<a.length;s++){const e=parseInt(a[s],16);t+=isNaN(e)?0:e}js(t),Fo(!0),localStorage.removeItem("warPlans"),hi("Imported!"),$l(e)}},pi):"","Saved in Local Storage!"===ui?"Navigate to the build you want to copy your War Plans to.":"")))):"",$n?t.createElement("button",{className:"modal__backdrop",onClick:ec},t.createElement("button",{className:"builder__glyph__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"glyph__modal__content"},t.createElement("button",{onClick:ec,className:"builder__modal__close"},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"glyph__modal__header"},t.createElement("div",{className:"glyph__modal__header__wrapper"},t.createElement(b.A,{placeholder:"Search by name or keyword...",searchTerm:eo,setSearchTerm:lo,id:"paragonGlyph__searchBar"}),t.createElement("button",{className:"glyph__modal__button",onClick:tm},"Unequip"))),t.createElement("div",{className:"glyph__modal__list"},Object.keys(Ki).map(e=>{let l=Ki[e],n=gu().paragon.boards.map(e=>e.glyph).includes(l.name);return t.createElement(U.A,{glyph:l,favorites:gu().favorites,addFavorite:Pc,addGlyph:am,glyphLevel:ao,isActive:n,season:gu().season})}
1)),t.createElement("div",{className:"glyph__modal__footer"},"Showing ",Ki.length," Glyph Results")))):"",Yn?t.createElement("button",{className:"modal__backdrop",onClick:$u},t.createElement("button",{className:"builder__paragon__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"paragon__modal__content"},t.createElement("button",{onClick:$u,className:"builder__modal__close"},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"paragon__modal__header"}),t.createElement("div",{className:"paragon__modal__list"},Object.keys(gu().season<15?el:nl).map(e=>{let l=gu().season<15?el[e]:nl[e];if(l.name){let e=gu().paragon.boards.map(e=>e.name).includes(l.title);if(l.class===gu().class&&Mi!==l.title&&(!e||e&&ji)){let n=l.name.replace("Board Attachment","").replace(" Node","").replace("Normal","Common");return t.createElement(H.A,{paragonBoard:l,paragonRarity:n,favorites:gu().favorites,addFavorite:Pc,addParagonBoard:lm,isActive:e})}}return null})),t.createElement("div",{className:"paragon__modal__footer"})))):"",Vn?t.createElement("button",{className:"modal__backdrop",onClick:Qu},t.createElement("button",{className:"builder__spec__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"spec__modal__content"},t.createElement("button",{className:"builder__modal__close",onClick:Qu},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"spec__modal__header"},t.createElement("button",{className:"spec__modal__button",onClick:()=>Oc("")},"Unequip")),t.createElement("div",{className:"spec__modal__list"},Object.keys(ss).map(e=>{let l=ss[e];return l.class===Ql.class?Object.keys(gu().season<15?Ie:Te).map(e=>{let n=gu().season<15?Ie[e]:Te[e];return n.name===l.name?t.createElement("button",{className:"spec__modal__item",onClick:()=>Oc(n.name)},t.createElement(A.A,{skills:gu().season<15?Ie:Te,skill:n,spec:!0,technique:!0,isSkillModal:!0})):null}):null})),t.createElement("div",{className:"spec__modal__footer"},"Showing"," ",null==ss||null===(n=ss.filter(e=>e.class===gu().class))||void 0===n?void 0:n.length," ","Specialization Results")))):"",Ya?t.createElement("button",{className:"modal__backdrop",onClick:rc},t.createElement("button",{className:"builder__spec__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"spec__modal__content"},t.createElement("button",{className:"builder__modal__close",onClick:rc},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"spec__modal__header"},t.createElement("button",{className:"spec__modal__button",onClick:()=>bc("")},"Unequip")),t.createElement("div",{className:"spec__modal__list"},(gu().season<15?Ie:Te).map(e=>{var l;if(gu().skills.includes(e.name)||"Reinforcement"===(null==e||null===(l=e.tags)||void 0===l?void 0:l[0]))return t.createElement("button",{className:"spec__modal__item"+(gu().skills.includes(e.name)?" selected":""),onClick:()=>bc(e.name)},t.createElement(A.A,{skills:gu().season<15?Ie:Te,skill:e,onlyEnchantment:!1,merc:!0,isSkillModal:!0}))}))))):"",$a?t.createElement("button",{className:"modal__backdrop",onClick:ic},t.createElement("button",{className:"builder__spec__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"spec__modal__content"},t.createElement("button",{className:"builder__modal__close",onClick:ic},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"spec__modal__header"},t.createElement("button",{className:"spec__modal__button",onClick:()=>hc("")},"Unequip")),t.createElement("div",{className:"spec__modal__list"},(gu().season<15?Ie:Te).map(e=>{var l;if(e.class===gu().reinforcement2&&null!==(l=e.tags)&&void 0!==l&&l.length&&"Mercenary Perk"!==e.tags[0])return t.createElement("button",{className:"spec__modal__item"+(gu().skills.includes(e.name)?" selected":""),onClick:()=>hc(e.name)},t.createElement(A.A,{skills:gu().season<15?Ie:Te,skill:e,onlyEnchantment:!1,merc:!0,isSkillModal:!0}))}))))):"",Xa?t.createElement("button",{className:"modal__backdrop",onClick:sc},t.createElement("button",{className:"builder__spec__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"spec__modal__content"},t.createElement("button",{className:"builder__modal__close",onClick:sc},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"spec__modal__header mercenary"},t.createElement("div",{className:"spec__modal__header__wrapper"},t.createElement("button",{className:"spec__modal__button",onClick:()=>nt?vc(""):fc("")},"Unequip"))),t.createElement("div",{className:"spec__modal__list"},["Aldkin, The Cursed Child","Raheir, The Shieldbearer","Subo, The Drunken Archer","Varyana, The Berserker Crone"].map(e=>t.createElement("button",{onClick:()=>nt?vc(e):fc(e),className:"spec__modal__item"},t.createElement("div",{className:"build__skill__wrapper build__skill__wrapper--merc"},t.createElement("img",{className:"build__skill__icon",src:"https://sunderarmor.com/DIABLO4/Mercenaries/"+e.toLowerCase().replace(/ /g,"_")+".png"}),t.createElement("div",{className:"build__skill__name"},e)))))))):"",Un?t.createElement("button",{className:"modal__backdrop",onClick:Yu},t.createElement("button",{className:"builder__skill__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"skill__modal__content"},t.createElement("button",{className:"builder__modal__close",onClick:Yu},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"skill__modal__header"},t.createElement("div",{className:"skill__modal__header__wrapper"},t.createElement(b.A,{placeholder:"Search...",searchTerm:$t,setSearchTerm:es,id:"skill__searchBar"}),t.createElement("button",{className:"skill__modal__button",onClick:()=>pc("")},"Unequip"))),t.createElement("div",{className:"skill__modal__list"},Object.keys(sm[Ql.class]).map(function(e){let l=sm[Ql.class][e];return"number"!=typeof Yt&&"Ultimate"===l?null:t.createElement("div",{className:"skill__modal__row"},t.createElement(N.Ay,{zIndex:9999999999,render:()=>t.createElement("div",{className:"generic__tooltip"},l),placement:"top",offset:[0,-10]},t.createElement("div",{className:"skill__modal__category"},t.createElement("img",{className:"skill__modal__category__icon",src:"https://sunderarmor.com/DIABLO4/SkillTree/category_"+l.toLowerCase().replace(/ /g,"_")+".png",alt:"skill category icon"}))),t.createElement("div",{className:"skill__modal__row__list"},Object.keys(ns).map(function(e){let n=ns[e];if(n.tags&&n.tags[0]===l&&n.class===Ql.class){if("Soul Shard"===l){const e={"Legion Shard":"Summon Ae'grom","Vanguard Shard":"Summon Abodian","Mastermind Shard":"Summon Laalish","Ritualist Shard":"Summon Vollach"},l=gu().soulShards;if(l){const a=Object.keys(e).find(e=>l[e]&&l[e].length>0);if(a&&n.name!==e[a])return null}}return t.createElement("button",{className:"skill__modal__item"+(gu().skills.includes(n.name)?" selected":""),onClick:()=>pc(n.name)},t.createElement(A.A,{skills:gu().season<15?Ie:Te,skill:n,onlyEnchantment:"number"!=typeof Yt,isSkillModal:!0}))}return null},this)))},this)),t.createElement("div",{className:"skill__modal__footer"},"Showing ",ns.length," Skill Results")))):"",Aa?t.createElement("button",{className:"modal__backdrop",onClick:Lu},t.createElement("button",{className:"builder__gear__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"gear__modal__content"},t.createElement("button",{className:"builder__modal__close",onClick:Lu},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"gear__modal__header"},t.createElement("div",{className:"gear__modal__header__wrapper"},t.createElement(b.A,{placeholder:"Search...",searchTerm:gt,setSearchTerm:pt}),t.createElement("button",{className:"gear__modal__button",onClick:()=>wc("")},"Unequip"))),t.createElement("div",{className:"gear__modal__list"},Object.keys(Ko.sort((e,l)=>e.name.localeCompare(l.name))).map(function(e){let l=Ko[e];return l.positions.includes(Em[eu])?t.createElement(j.A,{selectGear:wc,codexInfo:l,selectedGear:gu().divineGifts,divineGift:!0,divineGiftSlot:eu}):null},this)),t.createElement("div",{className:"gear__modal__footer"},"Showing ",Ko.length," Divine Gifts Results")))):"",Ba?(()=>{const e=de.filter(e=>e.main&&(e.name.toLowerCase().includes(gt.toLowerCase())||e.description.toLowerCase().includes(gt.toLowerCase()))).sort((e,l)=>e.name.localeCompare(l.name));return t.createElement("button",{className:"modal__backdrop",onClick:Hu},t.createElement("button",{className:"builder__gear__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"gear__modal__content"},t.createElement("button",{className:"builder__modal__close",onClick:Hu},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"gear__modal__header"},t.createElement("div",{className:"gear__modal__header__wrapper"},t.createElement(b.A,{placeholder:"Search...",searchTerm:gt,setSearchTerm:pt}),t.createElement("button",{className:"gear__modal__button",onClick:()=>Sc("")},"Unequip"))),t.createElement("div",{className:"gear__modal__list"},e.map(e=>t.createElement(j.A,{key:e.name,selectGear:Sc,codexInfo:e,selectedGear:[gu().primeEvilPower],primeEvilPower:!0}))),t.createElement("div",{className:"gear__modal__footer"},"Showing ",e.length," Prime Evil Powers Results"))))})():"",Pa?t.createElement("button",{className:"modal__backdrop",onClick:Mu},t.createElement("button",{className:"builder__gear__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"gear__modal__content"},t.createElement("button",{className:"builder__modal__close",onClick:Mu},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"gear__modal__header"},t.createElement("div",{className:"gear__modal__header__wrapper"},"Charms"===At?t.createElement(b.A,{placeholder:"Search...",searchTerm:gt,setSearchTerm:pt,id:"charm__searchBar"}):"",t.createElement("button",{className:"gear__modal__button",onClick:()=>"Charms"===At?Ec(null):(()=>{let e=Object.assign({},Ql);const l=e=>
1{const l={0:[null,null],1:[null,null],2:[null,null],3:[null,null],4:[null,null],5:[null,null]};return Array.isArray(e)?(e.forEach((e,n)=>{n<=5&&Array.isArray(e)&&(l[n]=[e[0]||null,e[1]||null])}),l):(e&&"object"==typeof e&&Object.keys(l).forEach(n=>{const a=e[n];Array.isArray(a)&&(l[n]=[a[0]||null,a[1]||null])}),l)};if(0===Dr){const n=l(e.charmStats);n[String(uu)]=[null,null],e.charmStats=n}else if(Dr>0&&Dr<=e.variants.length){const n=Dr-1,a=l(e.variants[n].charmStats);a[String(uu)]=[null,null],e.variants[n].charmStats=a}Fo(!0),$l(e)})()},"Charms"===At?"Unequip":"Clear Stats"))),t.createElement("div",{className:"gear__modal__crafted__mythic"},(()=>{const e=gu(),l=e.season<15?dl:gl,n=e.charms[uu],s=l.find(e=>e.name===n);if(!s||"Unique"!==s.rarity)return null;const r=pu(e.mythicCharms).includes(n);return t.createElement("button",{type:"button",className:"gear__modal__crafted__mythic__button"+(r?" active":""),"aria-pressed":r,onClick:()=>{let e=Object.assign({},Ql);if(0===Dr){const l=pu(e.mythicCharms);e.mythicCharms=r?l.filter(e=>e!==n):[].concat((0,a.A)(l),[n])}else if(Dr>0&&Dr<=e.variants.length){const l=Dr-1,t=pu(e.variants[l].mythicCharms);e.variants[l].mythicCharms=r?t.filter(e=>e!==n):[].concat((0,a.A)(t),[n])}Fo(!0),$l(e)}},t.createElement("span",{className:"gear__modal__crafted__mythic__input"}),t.createElement("span",{className:"gear__modal__crafted__mythic__text"},"Mythic"))})()),t.createElement("div",{className:"gear__modal__navigation"},t.createElement("div",{className:"gear__modal__navigation__item"+("Charms"===At?" active":""),onClick:()=>Wt("Charms")},"Charms"),t.createElement("div",{className:"gear__modal__navigation__item"+("Stats"===At?" active":""),onClick:()=>Wt("Stats")},"Stats")),"Charms"===At?t.createElement("div",{className:"gear__modal__list"},au.sort((e,l)=>{const n=e.set||"",a=l.set||"";return n&&!a?-1:!n&&a?1:n!==a?n.localeCompare(a):(e.name||"").localeCompare(l.name||"")}).map(function(e,l){if(!e.hide){const n=gu().season<15?dl:gl,a=gu().season<15?hl:vl,s=gu(
1).charms.map(e=>{if(!e)return null;const l="string"==typeof e?e:null==e?void 0:e.name;return l&&n.find(e=>e.name===l)||null}).filter(Boolean);return t.createElement(j.A,{key:l,selectGear:Ec,codexInfo:e,selectedGear:gu().charms.map(e=>"string"==typeof e?e:(null==e?void 0:e.name)||""),charm:!0,charmSlot:uu,charmSets:a,selectedCharms:s})}})):t.createElement("div",{className:"gear__modal__stats__wrapper"},((e,l,n)=>{const a=(null===(e=gu().charmStats)||void 0===e?void 0:e[uu])||[null,null],s=gu().season<15?ce:ge,r=ym.reduce((e,l)=>Object.assign({},e,{[l.toLowerCase()]:[]}),{}),i=(null==s||null===(l=s.filter(e=>"Charm"===e.slot))||void 0===l?void 0:l.length)>0?s.filter(e=>"Charm"===e.slot):[Object.assign({slot:"Charm",all:[]},r)],o=null===(n=gu().charms)||void 0===n?void 0:n[uu],u=("string"==typeof o?o:null==o?void 0:o.name)===le.JD,c=u?[Object.assign({slot:"Charm",all:(0,le.sE)(gu().season<15?dl:gl,gu().class)},r)]:i;return t.createElement("div",{className:"gear__modal__stats"},t.createElement("div",{className:"builder__stat"},t.createElement(M.A,{gameClass:gu().class,data:c,statValue:a[0]||"Stat 1",statSlot:"Charm",statNumber:0,gearSlot:"Charm",setStat:kc,currentStats:[],isUnique:!0})),u?"":t.createElement("div",{className:"builder__stat"},t.createElement(M.A,{gameClass:gu().class,data:c,statValue:a[1]||"Stat 2",statSlot:"Charm",statNumber:1,gearSlot:"Charm",setStat:kc,currentStats:[],isUnique:!0})))})()),t.createElement("div",{className:"gear__modal__footer"},"Charms"===At?"Showing "+au.length+" Charm Results":"Configure your 2 Charm stats")))):"",Da?t.createElement("button",{className:"modal__backdrop",onClick:Vu},t.createElement("button",{className:"builder__gear__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"gear__modal__content"},t.createElement("button",{className:"builder__modal__close",onClick:Vu},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"gear__modal__header"},t.createElement("div",{className:"gear__modal__header__wrapper"},t.createElement("button",{className:"gear__modal__button",onClick:()=>(()=>{let e=Object.assign({},Ql);if(0===Dr)e.sealStats=[null,null,null,null],e.seal="";else if(Dr>0&&Dr<=e.variants.length){const l=Dr-1;e.variants[l].sealStats=[null,null,null,null],e.variants[l].seal=""}$l(e),document.body.style.overflow="unset"})()},"Unequip"))),t.createElement("div",{className:"gear__modal__stats__wrapper"},(()=>{const e=((gu().season<15?ce:ge)||[]).find(e=>"Seal"===(null==e?void 0:e.slot)),l=gu().sealStats||[null,null,null,null],n=[{slot:"SealBase",all:(null==e?void 0:e.implicit)||[]}],a=e?[Object.assign({},e,{slot:"SealStat"})]:[{slot:"SealStat",all:[]}],s=(0,d.$L)(gu().seal);return t.createElement(t.Fragment,null,t.createElement("div",{className:"seal__presets"},t.createElement(N.Ay,{zIndex:9999999999,render:()=>t.createElement(Q.A,{codexInfo:d.AH,sealStats:d.AH.stats}),followCursor:!0,plugins:[ee.M],offset:[0,30]},t.createElement("button",{className:"seal__preset"+(s?" active":""),onClick:Ac},t.createElement("img",{className:"seal__preset__icon",src:d.AH.image,alt:d.AH.name}),t.createElement("span",{className:"seal__preset__name"},d.AH.name)))),t.createElement("div",{className:"gear__modal__stats"},t.createElement("div",{className:"builder__stat"},t.createElement(M.A,{gameClass:gu().class,data:n,statValue:l[0]||"Stat 1",statSlot:"SealBase",statNumber:0,gearSlot:"Seal",setStat:Nc,noInteracting:s,currentStats:[],isUnique:!0})),t.createElement("div",{className:"builder__stat"},t.createElement(M.A,{gameClass:gu().class,data:a,statValue:l[1]||"Stat 2",statSlot:"SealStat",statNumber:1,gearSlot:"Seal",setStat:Nc,noInteracting:s,currentStats:[],isUnique:!0})),t.createElement("div",{className:"builder__stat"},t.createElement(M.A,{gameClass:gu().class,data:a,statValue:l[2]||"Stat 3",statSlot:"SealStat",statNumber:2,gearSlot:"Seal",setStat:Nc,noInteracting:s,currentStats:[],isUnique:!0})),t.createElement("div",{className:"builder__stat"},t.createElement(M.A,{gameClass:gu().class,data:[{slot:"SealStat",all:["Reduces the number of Charms needed for Set bonuses by 1 (to a minimum of 2)",gu().season<15?"Cannot have more than 4 Sockets, but can equip 3 Unique Charms":"You can equip up to 3 Unique Charms.","Cannot have more than 5 Sockets, but can equip 2 Unique Charms"]}],statValue:l[3]||"Mythic Stats",statSlot:"SealStat",statNumber:3,gearSlot:"Seal",setStat:Nc,noInteracting:s,currentStats:[],isUnique:!0,mythicColor:!s}))))})()),t.createElement("div",{className:"gear__modal__footer"},"Configure your 3 Seal stats")))):"",Ea?t.createElement("button",{className:"modal__backdrop",onClick:Gu},t.createElement("button",{className:"builder__gear__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"gear__modal__content"},t.createElement("button",{className:"builder__modal__close",onClick:Gu},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"gear__modal__header"},t.createElement("div",{className:"gear__modal__header__wrapper"},t.createElement(b.A,{placeholder:"Search...",searchTerm:gt,setSearchTerm:pt}),t.createElement("button",{className:"gear__modal__button",onClick:()=>yc("")},"Unequip"))),t.createElement("div",{className:"gear__modal__list"},qt.filter(e=>0===Jt?"Elixir"===e.type:1===Jt?"Core Incense"===e.type:2===Jt?"Defensive Incense"===e.type:3===Jt&&"Resistance Incense"===e.type).map((e,l)=>t.createElement(j.A,{key:l,selectGear:yc,codexInfo:e,selectedGear:gu().elixirs,elixir:!0}))),t.createElement("div",{className:"gear__modal__footer"},"Showing"," ",qt.filter(e=>0===Jt?"Elixir"===e.type:1===Jt?"Core Incense"===e.type:2===Jt?"Defensive Incense"===e.type:3===Jt&&"Resistance Incense"===e.type).length," ","Elixir Results")))):"",na?t.createElement("button",{className:"modal__backdrop",onClick:zu},t.createElement("button",{className:"builder__spec__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"spec__modal__content"},t.createElement("button",{onClick:zu,className:"builder__modal__close"},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"spec__modal__header"},t.createElement("div",{className:"spec__modal__header__wrapper"},t.createElement(b.A,{placeholder:"Search...",searchTerm:Tt,setSearchTerm:Lt,id:"gem__searchBar"}),t.createElement("div",{className:"spec__modal__filters"},t.createElement(N.Ay,{zIndex:9999999999,render:()=>t.createElement("div",{className:"generic__tooltip"},"Filters"),placement:"top"},t.createElement("button",{className:"spec__modal__filters__icon"+(Mt?" active":"")+(jt.length>0?" fill":""),onClick:()=>Ft(!Mt)},t.createElement("img",{src:"https://sunderarmor.com/DIABLO4/UI/filters_icon.svg",alt:"filters icon"}))),Mt?t.createElement("div",{className:"spec__modal__dropdown"},["Gem","Rune","Invocation","Ritual"].map(e=>t.createElement("button",{className:"spec__modal__dropdown__item"+(jt===e?" active":""),onClick:()=>{var l;Ht(jt===(l=e)?"":l)}},t.createElement("span",{className:"spec__modal__dropdown__checkbox"}),e))):""),t.createElement("button",{className:"spec__modal__button spec__modal__button__newgems",onClick:()=>xc(null)},"Unequip"))),t.createElement("div",{className:"spec__modal__list"}
1,0===jt.length||"Gem"===jt?Object.keys(gu().season<15?oe:_e).map(e=>{var l,n,a,s,r;let i=gu().season<15?oe[e]:_e[e];return""===Tt||null!==(l=i.name)&&void 0!==l&&l.toLowerCase().includes(Tt.toLowerCase())||null!==(n=i.weapon)&&void 0!==n&&n.toLowerCase().includes(Tt.toLowerCase())||null!==(a=i.armor)&&void 0!==a&&a.toLowerCase().includes(Tt.toLowerCase())||null!==(s=i.jewelry)&&void 0!==s&&s.toLowerCase().includes(Tt.toLowerCase())||null!==(r=i.description)&&void 0!==r&&r.toLowerCase().includes(Tt.toLowerCase())?"Amulet"!==xt&&"Ring 1"!==xt&&"Ring 2"!==xt&&"Leoric's Crown"!==gu().gear.Helm&&i.description?null:t.createElement("button",{className:"spec__modal__item"+(Object.values(gu().newGems||{}).flat().includes(i.name)&&i.description?" selected":""),onClick:()=>xc(i.name)},t.createElement(W.A,{gem:i,gemSlot:xt.replace("Chest Armor","Armor").replace("Helm","Leoric's Crown"===gu().gear.Helm?"Jewelry":"Armor").replace("Pants","Armor").replace("Amulet","Jewelry").replace("Ring 1","Jewelry").replace("Ring 2","Jewelry").replace("Bludgeoning Weapon","Weapon").replace("Slashing Weapon","Weapon").replace("Ranged Weapon","Weapon").replace("Dual-Wield Weapon 1","Weapon").replace("Dual-Wield Weapon 2","Weapon").replace("Offhand","Weapon").replace("Shield","Weapon"),season:gu().season})):null},this):null,0===jt.length||"Rune"===jt||"Invocation"===jt||"Ritual"===jt?Object.keys(gu().season<15?ue:pe).map(e=>{var l,n;let a=gu().season<15?ue[e]:pe[e];return(""===Tt||null!==(l=a.name)&&void 0!==l&&l.toLowerCase().includes(Tt.toLowerCase())||null!==(n=a.bonus)&&void 0!==n&&n.toLowerCase().includes(Tt.toLowerCase()))&&(0===jt.length||"Rune"===jt||jt===a.type)?"Amulet"===xt||"Ring 1"===xt||"Ring 2"===xt?null:t.createElement("button",{className:"spec__modal__item"+(Object.values(gu().newGems||{}).flat().includes(a.name)?" selected":""),onClick:()=>xc(a.name)},t.createElement(C.A,{rune:a})):null},this):null),t.createElement("div",{className:"spec__modal__footer"},"Showing"," ",(gu().season<15?null==oe?void 0:oe.length:null==_e?void 0:_e.length)+(gu().season<15?null==ue?void 0:ue.length:null==pe?void 0:pe.length)," ","Gem & Rune Results")))):"",Gn?t.createElement("button",{className:"modal__backdrop",onClick:Ju},t.createElement("button",{className:"builder__gear__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"gear__modal__content"},t.createElement("button",{className:"builder__modal__close",onClick:Ju},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"gear__modal__header"},t.createElement("div",{className:"gear__modal__header__wrapper"},t.createElement(b.A,{placeholder:"Search...",searchTerm:gt,setSearchTerm:pt,id:"gear__searchBar"}),t.createElement("div",{className:"gear__modal__filters"},t.createElement(N.Ay,{zIndex:9999999999,render:()=>t.createElement("div",{className:"generic__tooltip"},"Filters"),placement:"top"},t.createElement("button",{className:"gear__modal__filters__icon"+(wt?" active":"")+(ft.length>0?" fill":""),onClick:()=>St(!wt)},t.createElement("img",{src:"https://sunderarmor.com/DIABLO4/UI/filters_icon.svg",alt:"filters icon"}))),wt?t.createElement("div",{className:"gear__modal__dropdown"},["Codex","Drop-Only","Class-Specific","Unique","Legendary","Offensive","Defensive","Mobility","Resource","Utility"].map(e=>t.createElement("button",{className:"gear__modal__dropdown__item"+(ft.includes(e)?" active":""),onClick:()=>(e=>{let l=[];ft.includes(e)||l.push(e),vt([].concat(l))})(e)},t.createElement("span",{className:"gear__modal__dropdown__checkbox"}),e))):""),t.createElement("button",{className:"gear__modal__button",onClick:()=>gc("")},"Unequip"))),t.createElement("div",{className:"gear__modal__crafted__mythic"},(()=>{const e=gu(),l=e.season<15?Ge:He,n=e.gear[st],s=l.find(e=>e.name===n);if(!s||s.mythic)return null;const r=pu(e.craftedMythic).includes(n);return t.createElement("button",{type:"button",className:"gear__modal__crafted__mythic__button"+(r?" active":""),"aria-pressed":r,onClick:()=>{let e=Object.assign({},Ql);if(0===Dr){const l=pu(e.craftedMythic);e.craftedMythic=r?l.filter(e=>e!==n):[].concat((0,a.A)(l),[n])}else if(Dr>0&&Dr<=e.variants.length){const l=Dr-1,t=pu(e.variants[l].craftedMythic);e.variants[l].craftedMythic=r?t.filter(e=>e!==n):[].concat((0,a.A)(t),[n])}Fo(!0),$l(e)}},t.createElement("span",{className:"gear__modal__crafted__mythic__input"}),t.createElement("span",{className:"gear__modal__crafted__mythic__text"},"Mythic"))})()),t.createElement("div",{className:"gear__modal__navigation"},t.createElement("div",{className:"gear__modal__navigation__item"+("Aspects & Uniques"===Et?" active":""),onClick:()=>kt("Aspects & Uniques")},"Aspects & Uniques"),t.createElement("div",{className:"gear__modal__navigation__item"+("Item Stats"===Et?" active":""),onClick:()=>kt("Item Stats")},"Item Stats")),"Aspects & Uniques"===Et?t.createElement("div",{className:"gear__modal__list"},Object.keys(ot).map(function(e){let l=ot[e];return l.description?t.createElement(j.A,{selectGear:gc,codexInfo:l,favorites:gu().favorites,addFavorite:Pc,selectedGear:Object.values(gu().gear)}):t.createElement(G.A,{selectGear:gc,uniqueInfo:l,favorites:gu().favorites,addFavorite:Pc,selectedGear:Object.values(gu().gear),lootTables:gu().season<15?fe:ve,gameClass:gu().class,season:gu().season})},this)):t.createElement("div",{className:"gear__modal__stats__wrapper"},t.createElement("div",{className:"gear__modal__stats"}
1,(st.includes("Weapon")||st.includes("Shield"))&&!(gu().season<15?Ge:He).some(e=>e.name===gu().gear[st]&&"Weapon"!==e.type)&&t.createElement("div",{className:"builder__stat",style:{order:-1}},t.createElement(M.A,{currentStats:gu().newStats[st],gearSlot:st,setStat:Fc,statValue:null!==(s=gu().newStats[st])&&void 0!==s&&s[3]?gu().newStats[st][3]:"Weapon Type",gameClass:gu().class,statNumber:3,statSlot:st.includes("Weapon")?"Weapon":st.replace(" 1","").replace(" 2",""),data:gu().season<15?ce:ge,newStat:!0,masterworkingValues:gu().masterworking,isImplicit:Lm,greaterAffixValues:gu().greaterAffixes,offhand:gu().gear.Offhand||gu().gear.Shield,season:gu().season})),(()=>{let e=(gu().season<15?Ge:He).filter(e=>e.name===gu().gear[st]),l=function(l,n,a){var t,s,r,i,o,u,c,m;return void 0===a&&(a=n),null!==(t=gu().greaterAffixes)&&void 0!==t&&t[st][n]&&null!==(s=gu().masterworking)&&void 0!==s&&s[st][n]?null===(o=e[0])||void 0===o||null===(u=o.ga_mw)||void 0===u?void 0:u[a]:null!==(r=gu().greaterAffixes)&&void 0!==r&&r[st][n]||null!==(i=gu().masterworking)&&void 0!==i&&i[st][n]?null===(c=e[0])||void 0===c||null===(m=c.ga)||void 0===m?void 0:m[a]:l},n=function(){return(0,ne.q)(l.apply(void 0,arguments),gu().class)};if(e.length&&gu().season>=14){return(0,c.YI)(e[0],Lm.indexOf(st)>-1).map((l,a)=>{var s,r,i,o;let u=gu().newStats[st][l];const c=null===(s=e[0])||void 0===s||null===(r=s.terciary_stats__full)||void 0===r?void 0:r[a],m=Boolean(c),d=Boolean(u);return t.createElement("div",{className:"builder__stat",key:l},t.createElement("button",{className:"greater__affix__button"+(null!==(i=gu().greaterAffixes)&&void 0!==i&&null!==(o=i[st])&&void 0!==o&&o[l]?" greater__affix__button--filled":""),onClick:()=>Jc(st,l)},t.createElement("img",{className:"greater__affix__img",src:"https://sunderarmor.com/DIABLO4/UI/ga.png",alt:"greater affix"})),t.createElement(M.A,{currentStats:gu().newStats[st],gearSlot:st,setStat:Fc,statValue:d?u:m?n(c,l,a):"Stat "+(l+1),gameClass:gu().class,statNumber:l,statSlot:st.includes("Weapon")?"Weapon":st.replace(" 1","").replace(" 2",""),data:gu().season<15?ce:ge,newStat:!0,noInteracting:!Wo&&!xo,masterworkingValues:gu().masterworking,isImplicit:Lm,greaterAffixValues:gu().greaterAffixes,offhand:gu().gear.Offhand||gu().gear.Shield,season:gu().season,isUnique:!!m||void 0}),Im(st,l))})}var a;return e.length&&e[0].mythic?null===(a=e[0])||void 0===a?void 0:a.terciary_stats__full.map((e,l)=>{var a,s;return t.createElement("div",{className:"builder__stat",key:l},t.createElement("button",{className:"greater__affix__button"+(null!==(a=gu().greaterAffixes)&&void 0!==a&&null!==(s=a[st])&&void 0!==s&&s[Number(l)]?" greater__affix__button--filled":""),onClick:()=>Jc(st,Number(l))},t.createElement("img",{className:"greater__affix__img",src:"https://sunderarmor.com/DIABLO4/UI/ga.png",alt:"greater affix"})),t.createElement(M.A,{statValue:n(e,l),noInteracting:!0,masterworkingValues:gu().masterworking,statNumber:l,gearSlot:st,greaterAffixValues:gu().greaterAffixes,isUnique:!0}),Im(st,l))}):Object.keys(gu().newStats[st]).map(e=>{var l,n;let a=gu().newStats[st][e];return Lm.indexOf(st)>-1&&3===Number(e)?null:t.createElement("div",{className:"builder__stat",key:e},t.createElement("button",{className:"greater__affix__button"+(null!==(l=gu().greaterAffixes)&&void 0!==l&&null!==(n=l[st])&&void 0!==n&&n[Number(e)]?" greater__affix__button--filled":""),onClick:()=>Jc(st,Number(e))},t.createElement("img",{className:"greater__affix__img",src:"https://sunderarmor.com/DIABLO4/UI/ga.png",alt:"greater affix"})),t.createElement(M.A,{currentStats:gu().newStats[st],gearSlot:st,setStat:Fc,statValue:a||"Stat "+(Number(e)+1),gameClass:gu().class,statNumber:Number(e),statSlot:st.includes("Weapon")?"Weapon":st.replace(" 1","").replace(" 2",""),data:gu().season<15?ce:ge,newStat:!0,masterworkingValues:gu().masterworking,isImplicit:Lm,greaterAffixValues:gu().greaterAffixes,offhand:gu().gear.Offhand||gu().gear.Shield,season:gu().season}),Im(st,Number(e)))})})()),t.createElement("div",{className:"gear__modal__stats gear__modal__stats--tempering"},gu().temperingStats[st].map((e,l)=>{var n,a;const s=Lm.indexOf(st)>-1?5:4,r=Number(l+s);return t.createElement("div",{className:"builder__stat",key:l},t.createElement("button",{className:"greater__affix__button"+(null!==(n=gu().greaterAffixes)&&void 0!==n&&null!==(a=n[st])&&void 0!==a&&a[r]?" greater__affix__button--filled":""),onClick:()=>Jc(st,r)},t.createElement("img",{className:"greater__affix__img",src:"https://sunderarmor.com/DIABLO4/UI/ga.png",alt:"greater affix"})),t.createElement(M.A,{gearSlot:st,setStat:Vc,statValue:e||"Stat "+(l+1),gameClass:gu().class,statNumber:l,statSlot:st.includes("Weapon")?"Weapon":st.replace(" 1","").replace(" 2",""),data:gu().season<15?ol:cl,temperingStat:!0,otherTemperingStat:0===l?gu().temperingStats[st][1]:gu().temperingStats[st][0],temperingSlots:bm,masterworkingValues:gu().masterworking,greaterAffixValues:gu().greaterAffixes,isImplicit:Lm,season:gu().season,offhand:gu().gear.Offhand||gu().gear.Shield}),Im(st,r))})),t.createElement("div",{className:"gear__modal__stats gear__modal__stats--tempering"},t.createElement("div",{className:"builder__stat"},t.createElement(M.A,{gearSlot:st,setStat:qc,statValue:(Array.isArray(gu().sanctification[st])?gu().sanctification[st][0]:gu().sanctification[st])||"Transfigure",statNumber:"Amulet"===st?0:void 0,gameClass:gu().class,statSlot:st.includes("Weapon")?"Weapon":st.replace(" 1","").replace(" 2",""),data:"Amulet"===st?Se.concat((gu().season<15?Me:Ve).filter(e=>
1"Utility"===e.type)):Se,codexSlots:bm,season:gu().season,isSanctification:!0})),"Amulet"===st&&t.createElement("div",{className:"builder__stat"},t.createElement(M.A,{gearSlot:st,setStat:qc,statValue:(Array.isArray(gu().sanctification[st])?gu().sanctification[st][1]:null)||"Transfigure",statNumber:1,gameClass:gu().class,statSlot:st.replace(" 1","").replace(" 2",""),data:Se,codexSlots:bm,season:gu().season,isSanctification:!0}))),12===gu().season?t.createElement("div",{className:"gear__modal__stats gear__modal__stats--tempering"},t.createElement("div",{className:"builder__stat"},t.createElement("button",{className:"greater__affix__button"+(null!==(ae=gu().bloodiedAffixesGAMW)&&void 0!==ae&&null!==(te=ae[st])&&void 0!==te&&te[0]?" greater__affix__button--filled":""),onClick:()=>Xc(st,0)},t.createElement("img",{className:"greater__affix__img",src:"https://sunderarmor.com/DIABLO4/UI/ga.png",alt:"greater affix"})),t.createElement(M.A,{gearSlot:st,setStat:zc,statValue:gu().bloodiedAffixes[st]||"Bloodied Affix",gameClass:gu().class,statSlot:st.includes("Weapon")?"Weapon":st.replace(" 1","").replace(" 2",""),data:Ee,codexSlots:bm,season:gu().season,isBloodiedAffix:!0,isArmor:("Helm"===st||"Chest Armor"===st||"Gloves"===st||"Pants"===st||"Boots"===st)&&gu().bloodiedAffixes[st],isJewelry:("Amulet"===st||"Ring 1"===st||"Ring 2"===st)&&gu().bloodiedAffixes[st],isWeapon:(st.includes("Weapon")||"Offhand"===st||"Shield"===st)&&gu().bloodiedAffixes[st],offhand:gu().gear.Offhand||gu().gear.Shield,bloodiedAffixesGAMWValues:gu().bloodiedAffixesGAMW}),(Wo||xo)&&Im(st,1,!0))):null),t.createElement("div",{className:"gear__modal__footer"},"Showing ",ot.length," ",st.replace(" 1","").replace(" 2","")," Results")))):"",Ga?t.createElement("button",{className:"modal__backdrop",onClick:qu},t.createElement("button",{className:"builder__modal builder__modal--video",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"gear__modal__content"},t.createElement("button",{className:"builder__modal__close",onClick:qu},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"gear__modal__header"},t.createElement("div",{className:"gear__modal__header__wrapper"},t.createElement("h3",{className:"gear__modal__title"},"Video"))),t.createElement("div",{className:"video__modal__body"},t.createElement("iframe",{src:"https://www.youtube.com/embed/"+gu().showcase+"?autoplay=1&rel=0",frameBorder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,referrerPolicy:"strict-origin-when-cross-origin",className:"video__modal__iframe",width:"800",height:"450"}))))):"",Dn?t.createElement("button",{className:"modal__backdrop",onClick:Tu},t.createElement("button",{className:"builder__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"builder__modal__content"},t.createElement("div",{className:"builder__modal__content__wrapper"},t.createElement("button",{className:"builder__modal__close",onClick:Tu},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"builder__modal__title"},"Share This Build"),t.createElement("div",{className:"builder__modal__instructions"},"Copy the link below"),t.createElement("div",{className:"builder__modal__input builder__modal__input--share"},ro?"loading"===ro?"Generating link...":xo?wn:window.location.href:""+(xo?"Getting ready to generate link...":window.location.href)),t.createElement("button",{className:"builder__modal__button btn",onClick:async()=>{if(xo){let e;""===En?(e=(0,w.A)(),kn(e)):e=En;let l=Ql;l.name=mn,await(0,h.BN)((0,h.H9)(h.db,"builds",e),l),navigator.clipboard.writeText(wn),io(!0),kn("")}else navigator.clipboard.writeText(window.location.href),io(!0)}},ro?"loading"===ro?t.createElement("div",{className:"loading"},t.createElement("div",{className:"loading__ring"},t.createElement("div",null),t.createElement("div",null),t.createElement("div",null),t.createElement("div",null))):"Link Copied!":"Copy Link")),xo?t.createElement("div",{className:"builder__modal__disclaimer soft"},t.createElement("img",{className:"builder__modal__disclaimer__icon",src:"https://sunderarmor.com/DIABLO4/UI/warning_icon_03.svg",alt:"warning icon"}),Ro?"This link will snapshot your current build. If you want it to update automatically as you make changes, save it to your account first.":"This link will snapshot your current build. If you want it to update automatically as you make changes, login and save it to your account first."):""))):"",Xn?t.createElement("button",{className:"modal__backdrop",onClick:Ou},t.createElement("button",{className:"builder__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"builder__modal__content"},t.createElement("div",{className:"builder__modal__content__wrapper"},t.createElement("button",{className:"builder__modal__close",onClick:Ou},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"builder__modal__title"},0===Dr?"Delete This Build":"Delete Variant"),t.createElement("div",{className:"builder__modal__instructions"},0===Dr?"Are you sure you want to delete this build?":"Are you sure you want to delete this variant?"),0===Dr?t.createElement("div",{className:"builder__modal__disclaimer delete__modal"},t.createElement("img",{className:"builder__modal__disclaimer__icon",src:"https://sunderarmor.com/DIABLO4/UI/warning_icon_02.svg",alt:"warning icon"}),"This will delete the entire build and all of its variants."):"",t.createElement("button",{className:"builder__modal__button btn",onClick:async()=>
1{if(0===Dr){if(Wo)await Promise.all([await(0,h.kd)((0,h.H9)(h.db,"builds",window.location.pathname.split("/")[2])),await(0,h.kd)((0,h.H9)(h.db,"users",Ro.uid,"builds",window.location.pathname.split("/")[2]))]);else if(xo&&localStorage.getItem("builds")){let e=JSON.parse(localStorage.getItem("builds"));delete e[window.location.pathname.split("/")[2]],localStorage.setItem("builds",JSON.stringify(e))}(0,o.navigate)("/my-builds/")}else if(Dr>0){let e=Object.assign({},Ql);const l=e.variants.filter(e=>e.index!==Dr).map(e=>Object.assign({},e));for(let a=0;a<l.length;a++)l[a].index>Dr&&l[a].index--,l[a].order>e.variants[Dr-1].order&&l[a].order--;e.order>e.variants[Dr-1].order&&e.order--;const n=[].concat((0,a.A)(l),[Object.assign({},e,{variants:[],isMain:!0})]).sort((e,l)=>e.order-l.order);n.map((e,l)=>{e.order=l}),nn((0,a.A)(n)),$l(Object.assign({},e,{variants:l})),Tr(0),Eu(0,e),Fo(!0);const t=new URLSearchParams(window.location.search);t.delete("var");const s=t.toString()?window.location.pathname+"?"+t.toString():window.location.pathname;window.history.replaceState("","",s),Ou()}}},0===Dr?"Delete Build":"Delete Variant"))))):"",Bn?t.createElement("button",{className:"modal__backdrop",onClick:Bu},t.createElement("button",{className:"builder__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"builder__modal__content"},t.createElement("button",{className:"builder__modal__close",onClick:Bu},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"builder__modal__content__wrapper"},t.createElement("div",{className:"builder__modal__title"},"Copy Build"),t.createElement("div",{className:"builder__modal__instructions"},"Name Your ",t.createElement("b",null,Ql.class)," Build"),t.createElement("input",{className:"builder__modal__input",type:"text",maxLength:"50",placeholder:"Build Name...",value:mn,onChange:Zc,autoComplete:"off"}),t.createElement("button",{className:"builder__modal__button btn"+(""===mn?" disabled":""),onClick:async()=>{let e=(0,w.A)();kn(e);let l=Ql;if(l.name=p.A.sanitize(mn),co("loading"),Ro)l.owner=Ro.uid,await(0,h.BN)((0,h.H9)(h.db,"users",Ro.uid,"builds",e),l,{merge:!0}),await(0,h.BN)((0,h.H9)(h.db,"builds",e),l);else{let n=localStorage.getItem("builds");if(n)n=JSON.parse(n),n[e]=l,localStorage.setItem("builds",JSON.stringify(n));else{let n={};n[e]=l,localStorage.setItem("builds",JSON.stringify(n))}}xn(!1),ho(!0),window.open("https://d4builds.gg/builds/"+e+"/","_blank")}},po?"loading"===po?t.createElement("div",{className:"loading"},t.createElement("div",{className:"loading__ring"},t.createElement("div",null),t.createElement("div",null),t.createElement("div",null),t.createElement("div",null))):"Build Copied!":"Copy Build"))))):"",Pn?t.createElement("button",{className:"modal__backdrop",onClick:Ru},t.createElement("button",{className:"builder__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"builder__modal__content"},t.createElement("button",{className:"builder__modal__close",onClick:Ru},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"builder__modal__content__wrapper"},t.createElement("div",{className:"builder__modal__title"},"Create & Save Build"),t.createElement("div",{className:"builder__modal__instructions"},"Name Your ",t.createElement("b",null,Ql.class)," Build"),t.createElement("input",{className:"builder__modal__input",type:"text",maxLength:"50",placeholder:"Build Name...",value:mn,onChange:Zc,autoComplete:"off"}),t.createElement("button",{className:"builder__modal__button btn"+(""===mn?" disabled":""),onClick:async()=>{let e=(0,w.A)();kn(e);let l=Ql;if(l.name=p.A.sanitize(mn),co("loading"),Ro)Co(!0),l.owner=Ro.uid,await(0,h.BN)((0,h.H9)(h.db,"users",Ro.uid,"builds",e),l,{merge:!0}),await(0,h.BN)((0,h.H9)(h.db,"builds",e),l);else{let n=localStorage.getItem("builds");if(Oo(!0),n)n=JSON.parse(n),n[e]=Object.assign({},l,{owner:null}),localStorage.setItem("builds",JSON.stringify(n));else{let n={};n[e]=Object.assign({},l,{owner:null}),localStorage.setItem("builds",JSON.stringify(n))}}Rn(!1),co(!0),$l(Object.assign({},l)),Sn(""),io(!1),Ho(p.A.sanitize(l.name)),(0,o.navigate)("/builds/"+e+"/")}},uo?"loading"===uo?t.createElement("div",{className:"loading"},t.createElement("div",{className:"loading__ring"},t.createElement("div",null),t.createElement("div",null),t.createElement("div",null),t.createElement("div",null))):"Build Created!":"Create Build")),Ro?"":t.createElement(t.Fragment,null,t.createElement("div",{className:"builder__modal__disclaimer"},t.createElement("img",{className:"builder__modal__disclaimer__icon",src:"https://sunderarmor.com/DIABLO4/UI/warning_icon_01.svg",alt:"warning icon"}),"You are not logged in. The build will be stored locally and won't persist through other devices."),t.createElement("div",{className:"app__login"},t.createElement("div",{className:"app__login__wrapper"},t.createElement("div",{className:"app__login__header"},t.createElement("div",{className:"app__login__title"},"Login/Register"),t.createElement("div",{className:"app__login__socials"},t.createElement("button",{className:"app__login__socials__item",onClick:()=>{(0,v.df)(h.j2,Am).then(async e=>{const l=e.user;if(localStorage.getItem("trackedMarkers")&&(await(0,h.BN)((0,h.H9)(h.db,"users",l.uid,"mapInfo","markers"),JSON.parse(localStorage.getItem("trackedMarkers")),{merge:!0}),localStorage.removeItem("trackedMarkers")),localStorage.getItem("Season 1")&&(await(0,h.BN)((0,h.H9)(h.db,"users",l.uid,"mapInfo","Season 1"),JSON.parse(localStorage.getItem("Season 1")),{merge:!0}),localStorage.removeItem("Season 1")),localStorage.getItem("builds")){let e=JSON.parse(localStorage.getItem("builds"));Object.keys(e).map(async n=>{e[n].owner=l.uid,await(0,h.BN)((0,h.H9)(h.db,"users",l.uid,"builds",n),Object.assign({},e[n],{sanitized:!1}),{merge:!0}),await(0,h.BN)((0,h.H9)(h.db,"builds",n),Object.assign({},e[n],{sanitized:!1}),{merge:!0})}),localStorage.removeItem("builds")}else await(0,h.BN)((0,h.H9)(h.db,"users",l.uid),{},{merge:!0})}).catch(e=>{console.log(e)})}},t.createElement("img",{className:"app__login__socials__icon",src:"https://sunderarmor.com/DIABLO4/UI/google_icon.webp",alt:"google sign in"})))),Yl?"":t.createElement("div",{className:"app__login__extra"},"...or get an instant login link")),Yl?"":t.createElement("div",{className:"app__login__email"},So&&t.createElement("div",{className:"auth__error"},So),t.createElement("form",{className:"app__login__form",onSubmit:async e=>{e.preventDefault();try{yo("");const e={url:"https://d4builds.gg/",handleCodeInApp:!0};(0,h.MN)(h.j2,vo,e).then(()=>{window.localStorage.setItem("emailForSignIn",vo),zo(!0)}).catch(e=>{console.log(e)})}catch(l){yo(l.message)}bo("")}},t.createElement("div",{className:"searchbar"},t.createElement("input",{type:"email",name:"email",required:!0,value:vo,onChange:e=>bo(e.target.value),placeholder:"Email Address",className:"searchbar-input",autoComplete:"off"}),t.createElement("button",{className:"app__send__button"},t.createElement("img",{className:"app__send__button__icon",src:"https://sunderarmor.com/DIABLO4/UI/send_icon.svg",alt:"send email confirmation"}))))),qo?t.createElement("div",{className:"builder__modal__disclaimer green"},t.createElement("img",{className:"builder__modal__disclaimer__icon",src:"https://sunderarmor.com/DIABLO4/UI/success_icon_01.svg",alt:"success icon"}),"Link sent! Check your email to finish the login."):""))))):"",sa?t.createElement("button",{className:"modal__backdrop",onClick:Du},t.createElement("button",{className:"builder__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"builder__modal__content"},t.createElement("button",{className:"builder__modal__close",onClick:Du},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"builder__modal__content__wrapper"},t.createElement("div",{className:"builder__modal__title"},"Create Variant Build"),t.createElement("div",{className:"builder__modal__instructions"}),t.createElement("input",{className:"builder__modal__input",type:"text",placeholder:"Variant Name...",value:gn,onChange:e=>{pn(e.target.value)},maxlength:"50",autoComplete:"off",ref:Jl}),t.createElement("button",{className:"builder__modal__button btn"+(""===gn?" disabled":""),onClick:()=>{let e,l=Object.assign({},Ql);if(Tr(l.variants.length+1),0===Dr)e=r()(l);else if(Dr>0&&Dr<=l.variants.length){const n=Dr-1;e=r()(l.variants[n])}e.name=p.A.sanitize(gn),e.variants=[],e.isMain=!1,e.order=l.variants.length+1,e.index=l.variants.length+1,$l(Object.assign({},l,{variants:[].concat((0,a.A)(l.variants),[e])})),pn(""),ra(!1),Fo(!0),window.history.replaceState("","","?var="+(l.variants.length+1))}},_o?"loading"===_o?t.createElement("div",{className:"loading"},t.createElement("div",{className:"loading__ring"},t.createElement("div",null),t.createElement("div",null),t.createElement("div",null),t.createElement("div",null))):"Variant Created!":"Create Variant"))))):"",oa?t.createElement("button",{className:"modal__backdrop",onClick:Wu},t.createElement("button",{className:"builder__modal",onClick:e=>{e.stopPropagation()}},t.createElement("div",{className:"builder__modal__content"},t.createElement("button",{className:"builder__modal__close",onClick:Wu},t.createElement("img",{src:"https://sunderarmor.com/close-icon.svg",alt:"close icon"})),t.createElement("div",{className:"builder__modal__content__wrapper"},t.createElement("div",{className:"builder__modal__title"},"Reorder Variants"),t.createElement("div",{className:"variant__info__content"},ln.map(e=>t.createElement("div",{className:"variant__info__wrapper",key:e.index},t.createElement("input",{className:"variant__order__input",type:"number",value:tn[e.index||0]||"",onChange:l=>((e,l)=>{const n=parseInt(e.target.value,10);sn(e=>Object.assign({},e,{[l.index||0]:n}
1))})(l,e),min:"0",max:"15"}),e.isMain?e.variantName:e.name))),t.createElement("button",{className:"builder__modal__button btn",onClick:()=>{let e=Object.assign({},Ql,{variants:(0,a.A)(Ql.variants)});e.dropdownOrder=tn[0],e.variants=e.variants.map(e=>Object.assign({},e,{dropdownOrder:tn[e.index]})),$l(e),ua(!1),Fo(!0)}},"Apply"))))):"",Yl?"":t.createElement("div",{className:"builder__header"},t.createElement("div",{className:"builder__header__wrapper__new"},t.createElement("div",{className:"builder__header__wrapper"},t.createElement("div",{className:"builder__header__class"},Ql.class?t.createElement("img",{className:"builder__header__icon "+(null==Ql?void 0:Ql.class),src:"https://sunderarmor.com/DIABLO4/Classes/2/"+Ql.class.toLowerCase()+".png",alt:"Diablo 4 "+Ql.class}):t.createElement("div",{className:"builder__header__icon builder__header__icon--skeleton"})),t.createElement("div",{className:"builder__header__title"+(ke?" builder__header__title--staticurl":"")},t.createElement("div",{className:"builder__header__selection builder__header__selection--planner"},t.createElement("h1",{className:"builder__header__name"},ke||t.createElement("form",{className:"builder__header__form",onSubmit:Wm},t.createElement("input",{value:jo,onChange:Cm,onBlur:Wm,disabled:!0,maxLength:"50",id:"renameBuild",className:"builder__header__input",style:{width:jo.length+3+"ch"},autoComplete:"off"})),ke||!Wo&&!xo?"":t.createElement(N.Ay,{zIndex:9999999999,render:()=>t.createElement("div",{className:"generic__tooltip"},"Rename Build"),placement:"top"},t.createElement("button",{className:"builder__header__rename",onClick:Rc,disabled:Ws},t.createElement("img",{src:"https://sunderarmor.com/DIABLO4/UI/rename_icon.svg",alt:"rename build"}))))),Ql.class&&!Yl?ke?t.createElement("h2",{className:"builder__header__description"},Wo||xo?t.createElement(t.Fragment,null,t.createElement("form",{className:"builder__header__form",onSubmit:Wm},t.createElement("input",{value:jo,onChange:Cm,onBlur:Wm,disabled:!0,maxLength:"50",id:"renameBuild",className:"builder__header__input builder__header__input--h2",style:{width:jo.length+3+"ch"},autoComplete:"off"})),t.createElement(N.Ay,{zIndex:9999999999,render:()=>t.createElement("div",{className:"generic__tooltip"},"Rename Build"),placement:"top"},t.createElement("button",{className:"builder__header__rename",onClick:Rc,disabled:Ws},t.createElement("img",{src:"https://sunderarmor.com/DIABLO4/UI/rename_icon.svg",alt:"rename build"})))):Ql.name):t.createElement("h2",{className:"builder__header__description"},Ql.class+" Build"):t.createElement("h2",{className:"builder__header__description"}),t.createElement("div",{className:"builder__last__updated"},"Updated on "+Ql.lastUpdated+"."))),Yl?"":t.createElement("div",{className:"build__top__wrapper"},Qc.includes(Ql.owner)&&Ql.owner in Kc||null!=du&&du.displayName||vu||bu||gu().showcase||Ql.owner&&"iQGIV48KBheFB1OZ5gauxB2Ubsw2"===Ql.owner?t.createElement("div",{className:"builder__socials"},null!=du&&du.displayName||vu||bu?t.createElement("div",{className:"verified__user"},t.createElement("div",{className:"verified__badge"},"Created By"," ",null!==(se=Kc[Ql.owner])&&void 0!==se&&se.profileUrl?t.createElement(o.Link,{to:Kc[Ql.owner].profileUrl,className:"verified__name"},du.displayName):t.createElement("b",null,du.displayName)),vu?t.createElement("a",{className:"verified__profile yt",target:"_blank",rel:"noopener noreferrer",href:vu},t.createElement("img",{className:"verified__icon",src:"https://sunderarmor.com/DIABLO4/UI/youtube_icon.svg",alt:"YouTube Logo"})):null,bu?t.createElement("a",{className:"verified__profile",target:"_blank",rel:"noopener noreferrer",href:bu},t.createElement("img",{className:"verified__icon",src:"https://sunderarmor.com/DIABLO4/UI/twitch_icon.svg",alt:"Twitch Logo"})):null):Qc.includes(Ql.owner)&&Ql.owner in Kc?t.createElement(t.Fragment,null,t.createElement("div",{className:"verified__user"},t.createElement("div",{className:"verified__badge"},"Created By"," ",Kc[Ql.owner].profileUrl?t.createElement(o.Link,{to:Kc[Ql.owner].profileUrl,className:"verified__name"},Kc[Ql.owner].name):t.createElement("b",null,Kc[Ql.owner].name)),Kc[Ql.owner].link.includes("youtube")?t.createElement("a",{className:"verified__profile yt",target:"_blank",rel:"noopener noreferrer",href:Kc[Ql.owner].link},t.createElement("img",{className:"verified__icon",src:"https://sunderarmor.com/DIABLO4/UI/youtube_icon.svg",alt:"YouTube Logo"})):t.createElement("a",{className:"verified__profile",target:"_blank",rel:"noopener noreferrer",href:Kc[Ql.owner].link},t.createElement("img",{className:"verified__icon",src:"https://sunderarmor.com/DIABLO4/UI/twitch_icon.svg",alt:"Twitch Logo"})))):t.createElement("div",{className:"verified__user--skeleton"}),gu().showcase?t.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"https://www.youtube.com/watch/"+gu().showcase,className:"verified__user verified__user--showcase"},t.createElement("div",{className:"verified__profile yt",style:{borderTopLeftRadius:"5px",borderBottomLeftRadius:"5px"}},t.createElement("img",{className:"verified__icon",src:"https://sunderarmor.com/DIABLO4/UI/youtube_icon.svg",alt:"YouTube Logo"}),"Build Showcase")):"",Ql.owner&&"iQGIV48KBheFB1OZ5gauxB2Ubsw2"===Ql.owner?t.createElement(t.Fragment,null,t.createElement("div",{className:"verified__user verified__user--d4builds"},t.createElement(o.Link,{to:"/",className:"verified__badge"},t.createElement("img",{className:"verified__badge__icon",src:"https://sunderarmor.com/DIABLO4/UI/verified_icon_01.svg",alt:"Twitch Logo"}),"D4Builds Meta Build"))):""):t.createElement("div",{className:"builder__socials--skeleton"}))),gu().showcase?t.createElement("button",{className:"build__video__front build__video__thumbnail",onClick:()=>{ja(!0),"undefined"!=typeof window&&window.document&&(document.body.style.overflow="hidden")},style:{position:"relative"}}
1,t.createElement("img",{src:"https://img.youtube.com/vi/"+gu().showcase+"/mqdefault.jpg",alt:"Video thumbnail",className:"build__video__thumbnail__img"}),t.createElement("div",{className:"build__video__play__icon",style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)"}},t.createElement("svg",{viewBox:"0 0 68 48",width:"68",height:"48"},t.createElement("path",{d:"M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z",fill:"#ff0000"}),t.createElement("path",{d:"M 45,24 27,14 27,34",fill:"#fff"})))):t.createElement("div",{className:"build__video__front build__video__front--skeleton"}),t.createElement("div",{className:"variant__navigation"},t.createElement(L.A,{data:ln,showDropdown:Gr,setShowDropdown:Pm,buttonValue:0===Dr?Ql.variantName:Ql.variants[Dr-1].name,handleVariantNameSubmit:Bm,handleVariantNameChange:xm,focusVariantRename:Ic,treeTooltipOpen:Ws,isOwner:Wo||xo,index:0===Dr?Ql.index:Ql.variants[Dr-1].index}),(Wo||xo)&&(!Ql.variants||Ql.variants.length<14)?t.createElement("button",{className:"variant__button sm",onClick:()=>Iu()},"+"):"",!Wo&&!xo||"h6DI2ppKtibDMDxBNy0gNPHZKFQ2"!==Ql.owner&&"9Pqtuz2khGSvJe8kHHxANfIArHE2"!==Ql.owner&&"ws6itrru18Xg1Nqm8oWIDKpslPe2"!==Ql.owner||!Ql.variants?"":t.createElement("button",{className:"variant__button sm variant__button--reorder",onClick:()=>Au()},t.createElement("img",{className:"variant__reorder__icon",src:"https://sunderarmor.com/DIABLO4/UI/reorder_icon.svg",alt:"Reorder Variants"})),t.createElement("div",{className:"builder__header__controls"},(Wo||xo)&&Mo?t.createElement("button",{className:"builder__header__button btn builder__header__button--save builder__header__button--desktop",onClick:Wc,disabled:Ws},Jo):"",t.createElement("button",{className:"builder__header__button",onClick:Mc,disabled:Ws},t.createElement("img",{className:"builder__header__button__icon",src:"https://sunderarmor.com/WOW/UI/share_icon.svg",alt:"Share Diablo 4 Build"}),"Share"),Wo||xo?t.createElement(t.Fragment,null,t.createElement("button",{className:"builder__header__button",onClick:Cu,disabled:Ws},t.createElement("img",{className:"builder__header__button__icon",src:"https://sunderarmor.com/DIABLO4/UI/copy_icon.svg",alt:"Copy Diablo 4 Build"}),"Copy"),t.createElement("button",{className:"builder__header__button",onClick:xu,disabled:Ws},t.createElement("img",{className:"builder__header__button__icon",src:"https://sunderarmor.com/DIABLO4/UI/delete_icon.svg",alt:"Diablo 4 Clear Build"}),t.createElement("span",null,0===Dr?"Delete Build":"Delete Variant"))):"",(Wo||xo)&&Mo?t.createElement("button",{className:"builder__header__button btn builder__header__button--save builder__header__button--mobile",onClick:Wc,disabled:Ws},Jo):"",Wo||xo?"":t.createElement("button",{className:"builder__header__button btn",onClick:Pu,disabled:Ws},t.createElement("img",{className:"builder__header__button__icon",src:"https://sunderarmor.com/DIABLO4/UI/save_icon.svg",alt:"Save Diablo 4 Build"}),"Save Build")))),t.createElement("div",{className:"builder__navigation"},Yl?t.createElement("div",{className:"builder__navigation__title"},"Build Navigation"):"",t.createElement("div",{className:"builder__navigation__links"},t.createElement("button",{className:"builder__navigation__link"+("Gear & Skills"===on?" active":""),onClick:()=>un("Gear & Skills"),disabled:Ws},t.createElement("img",{className:"builder__header__button__icon",src:"https://sunderarmor.com/DIABLO4/UI/gear_skills.png",alt:"Diablo 4 Build Gear & Skills"}),t.createElement("span",null,"Gear & Skills")),t.createElement("button",{className:"builder__navigation__link"+("Skill Tree"===on?" active":"")+(Oe?"":" disabled"),onClick:()=>un("Skill Tree"),disabled:Ws||!Oe},t.createElement("img",{className:"builder__header__button__icon",src:"https://sunderarmor.com/DIABLO4/UI/skill_tree.png",alt:"Diablo 4 Build Skill Tree"}),t.createElement("span",null,"Skill Tree")),t.createElement("button",{className:"builder__navigation__link"+("Paragon Boards"===on?" active":""),onClick:()=>un("Paragon Boards"),disabled:Ws},t.createElement("img",{className:"builder__header__button__icon",src:"https://sunderarmor.com/DIABLO4/UI/paragon.png",alt:"Diablo 4 Build Paragon Boards"}),t.createElement("span",null,"Paragon")),t.createElement("button",{className:"builder__navigation__link"+("Mercenaries"===on?" active":""),onClick:()=>un("Mercenaries")},t.createElement("img",{className:"builder__header__button__icon",src:"https://sunderarmor.com/DIABLO4/UI/characters_icon.png",alt:"Diablo 4 Build Mercenaries"}),t.createElement("span",null,"Mercenaries")),t.createElement("button",{className:"builder__navigation__link"+("War Plans"===on?" active":""),onClick:()=>un("War Plans")},t.createElement("img",{className:"builder__header__button__icon",src:"https://sunderarmor.com/DIABLO4/UI/warplans.png",alt:"Diablo 4 Build War Plans"}),t.createElement("span",null,"War Plans")),Wo||xo||Ql.notes?t.createElement("button",{className:"builder__navigation__link"+("Notes"===on?" active":""),onClick:()=>{un("Gear & Skills"),setTimeout(()=>{const e=document.querySelector(".builder__notes");if(e){const l=e.getBoundingClientRect().top+window.scrollY-120;window.scrollTo({top:l,behavior:"smooth"})}},50)}},t.createElement("img",{className:"builder__header__button__icon",src:"https://sunderarmor.com/DIABLO4/UI/notes.png",alt:"Diablo 4 Build Notes"}),t.createElement("span",null,"Notes")):"",Wo||xo?t.createElement(N.Ay,{zIndex:9999999999,render:()=>t.createElement("div",{className:"generic__tooltip"},"Showcase"),placement:"top",offset:[0,10]},t.createElement("button",{className:"builder__navigation__link"+("Showcase"===on?" active":""),onClick:()=>un("Showcase"),disabled:Ws||To},t.createElement("img",{className:"builder__header__button__icon",src:"https://sunderarmor.com/DIABLO4/UI/showcase.png",alt:"Diablo 4 Build Showcase"}))):""),!Wo&&!xo||Yl?"":t.createElement("div",{className:"builder__navigation__controls"},"Paragon Boards"===on?t.createElement(N.Ay,{zIndex:9999999999,render:()=>t.createElement("div",{className:"generic__tooltip"},"Copy Paragon Boards"),placement:"top",offset:[0,10]},t.createElement("button",{className:"builder__navigation__edit",onClick:()=>{da(!0),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden")},disabled:Ws},t.createElement("img",{className:"builder__header__button__icon",src:"https://sunderarmor.com/DIABLO4/UI/copy_icon.svg",alt:"Copy Diablo 4 Build"}),t.createElement("span",null,"Copy Paragon"))):"","Gear & Skills"===on?t.createElement(N.Ay,{zIndex:9999999999,render:()=>t.createElement("div",{className:"generic__tooltip"},"Copy Gear & Skills"),placement:"top",offset:[0,10]},t.createElement("button",{className:"builder__navigation__edit",onClick:()=>{pa(!0),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden")},disabled:Ws},t.createElement("img",{className:"builder__header__button__icon",src:"https://sunderarmor.com/DIABLO4/UI/copy_icon.svg",alt:"Copy Gear & Skills"}))):"","Skill Tree"===on?t.createElement(N.Ay,{zIndex:9999999999,render:()=>t.createElement("div",{className:"generic__tooltip"},"Copy Skill Tree"),placement:"top",offset:[0,10]},t.createElement("button",{className:"builder__navigation__edit",onClick:()=>{va(!0),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden")},disabled:Ws},t.createElement("img",{className:"builder__header__button__icon",src:"https://sunderarmor.com/DIABLO4/UI/copy_icon.svg",alt:"Copy Skill Tree"}))):"","War Plans"===on?t.createElement(N.Ay,{zIndex:9999999999,render:()=>t.createElement("div",{className:"generic__tooltip"},"Copy War Plans"),placement:"top",offset:[0,10]},t.createElement("button",{className:"builder__navigation__edit",onClick:()=>{Sa(!0),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden")},disabled:Ws},t.createElement("img",{className:"builder__header__button__icon",src:"https://sunderarmor.com/DIABLO4/UI/copy_icon.svg",alt:"Copy War Plans"}))):"",t.createElement("button",{className:"builder__navigation__edit "+(Ql.variants.length?" builder__navigation__edit--noMargin":""),onClick:dc,disabled:Ws},t.createElement("img",{className:"builder__header__button__icon",src:"https://sunderarmor.com/WOW/UI/reset_icon.svg",alt:"Diablo 4 Clear Build"}),t.createElement("span",null,"Clear")))),t.createElement("div",{className:"builder__content"},t.createElement("div",{className:"general__wrapper"},Yl?t.createElement("div",{className:"builder__header"},t.createElement("div",{className:"builder__header__wrapper"},t.createElement("div",{className:"builder__header__class"},Ql.class?t.createElement("img",{className:"builder__header__icon "+(null==Ql?void 0:Ql.class),src:"https://sunderarmor.com/DIABLO4/Classe
1s/2/"+Ql.class.toLowerCase()+".png",alt:"Diablo 4 "+Ql.class}):t.createElement("div",{className:"builder__header__icon builder__header__icon--skeleton"})),t.createElement("div",{className:"builder__header__title"},t.createElement("div",{className:"builder__header__selection builder__header__selection--planner"},t.createElement("h1",{className:"builder__header__name"},t.createElement("form",{className:"builder__header__form",onSubmit:Wm},t.createElement("input",{value:jo,onChange:Cm,onBlur:Wm,disabled:!0,maxLength:"50",id:"renameBuild",className:"builder__header__input",style:{width:jo.length+3+"ch"},autoComplete:"off"})),Wo||xo?t.createElement(N.Ay,{zIndex:9999999999,render:()=>t.createElement("div",{className:"generic__tooltip"},"Rename Build"),placement:"top"},t.createElement("button",{className:"builder__header__rename",onClick:Rc,disabled:Ws},t.createElement("img",{src:"https://sunderarmor.com/DIABLO4/UI/rename_icon.svg",alt:"rename build"}))):"")))),t.createElement("div",{className:"builder__header__controls"},(Wo||xo)&&Mo?t.createElement("button",{className:"builder__header__button btn builder__header__button--save builder__header__button--desktop",onClick:Wc,disabled:Ws},Jo):"",t.createElement("button",{className:"builder__header__button",onClick:Mc,disabled:Ws},t.createElement("img",{className:"builder__header__button__icon",src:"https://sunderarmor.com/WOW/UI/share_icon.svg",alt:"Share Diablo 4 Build"}),"Share"),Wo||xo?t.createElement(t.Fragment,null,t.createElement("button",{className:"builder__header__button",onClick:Cu,disabled:Ws},t.createElement("img",{className:"builder__header__button__icon",src:"https://sunderarmor.com/DIABLO4/UI/copy_icon.svg",alt:"Copy Diablo 4 Build"}),"Copy"),t.createElement("button",{className:"builder__header__button",onClick:xu,disabled:Ws},t.createElement("img",{className:"builder__header__button__icon",src:"https://sunderarmor.com/DIABLO4/UI/delete_icon.svg",alt:"Diablo 4 Clear Build"}),t.createElement("span",null,0===Dr?"Delete Build":"Delete Variant"))):"",(Wo||xo)&&Mo?t.createElement("button",{className:"builder__header__button btn builder__header__button--save builder__header__button--mobile",onClick:Wc,disabled:Ws},Jo):"",Wo||xo?"":t.createElement("button",{className:"builder__header__button btn",onClick:Pu,disabled:Ws},t.createElement("img",{className:"builder__header__button__icon",src:"https://sunderarmor.com/DIABLO4/UI/save_icon.svg",alt:"Save Diablo 4 Build"}),"Save Build")),t.createElement("div",{className:"variant__navigation"},t.createElement(L.A,{data:ln,showDropdown:Gr,setShowDropdown:Pm,buttonValue:0===Dr?Ql.variantName:Ql.variants[Dr-1].name,handleVariantNameSubmit:Bm,handleVariantNameChange:xm,focusVariantRename:Ic,treeTooltipOpen:Ws,isOwner:Wo||xo,index:0===Dr?Ql.index:Ql.variants[Dr-1].index}),(Wo||xo)&&(!Ql.variants||Ql.variants.length<14)?t.createElement("button",{className:"variant__button sm",onClick:()=>Iu()},"+"):"",!Wo&&!xo||"h6DI2ppKtibDMDxBNy0gNPHZKFQ2"!==Ql.owner&&"9Pqtuz2khGSvJe8kHHxANfIArHE2"!==Ql.owner&&"ws6itrru18Xg1Nqm8oWIDKpslPe2"!==Ql.owner||!Ql.variants?"":t.createElement("button",{className:"variant__button sm",onClick:()=>Au()},t.createElement("img",{className:"variant__reorder__icon",src:"https://sunderarmor.com/DIABLO4/UI/reorder_icon.svg",alt:"Reorder Variants"})))):"",Yl?t.createElement("div",{className:"build__top__wrapper"},Qc.includes(Ql.owner)&&Ql.owner in Kc||vu||bu||gu().showcase?t.createElement("div",{className:"builder__socials"},vu||bu?t.createElement(t.Fragment,null,vu?t.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:vu,className:"verified__user"},t.createElement("div",{className:"verified__profile yt"},t.createElement("img",{className:"verified__icon",src:"https://sunderarmor.com/DIABLO4/UI/youtube_icon.svg",alt:"YouTube Logo"}),vu.replace(/https?:\/\/(www\.)?youtube\.com\//,""))):null,bu?t.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:bu,className:"verified__user"},t.createElement("div",{className:"verified__profile"},t.createElement("img",{className:"verified__icon",src:"https://sunderarmor.com/DIABLO4/UI/twitch_icon.svg",alt:"Twitch Logo"}),bu.replace(/https?:\/\/(www\.)?twitch\.tv\//,""))):null):Qc.includes(Ql.owner)&&Ql.owner in Kc?t.createElement(t.Fragment,null,t.createElement("div",{className:"verified__user"},t.createElement("div",{className:"verified__badge"},"Created By"," ",Kc[Ql.owner].profileUrl?t.createElement(o.Link,{to:Kc[Ql.owner].profileUrl,className:"verified__name"},Kc[Ql.owner].name):t.createElement("b",null,Kc[Ql.owner].name)),Kc[Ql.owner].link.includes("youtube")?t.createElement("a",{className:"verified__profile yt",target:"_blank",rel:"noopener noreferrer",href:Kc[Ql.owner].link},t.createElement("img",{className:"verified__icon",src:"https://sunderarmor.com/DIABLO4/UI/youtube_icon.svg",alt:"YouTube Logo"})):t.createElement("a",{className:"verified__profile",target:"_blank",rel:"noopener noreferrer",href:Kc[Ql.owner].link},t.createElement("img",{className:"verified__icon",src:"https://sunderarmor.com/DIABLO4/UI/twitch_icon.svg",alt:"Twitch Logo"}))),Kc[Ql.owner].profileUrl?Yl?t.createElement(o.Link,{to:Kc[Ql.owner].profileUrl,className:"more__builds"},"View All Builds â"):t.createElement("a",{href:Kc[Ql.owner].profileUrl,className:"more__builds",target:"_blank",rel:"noreferrer"},"View All Builds â"):"","!isElectron ? (",t.createElement("a",{href:$c[Ql.owner],className:"more__builds",target:"_blank",rel:"noreferrer"},"View All Builds â"),") : (",t.createElement(o.Link,{to:$c[Ql.owner],className:"more__builds"},"View All Builds â"),') ) : ( "" )'):"",gu().showcase?t.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"https://www.youtube.com/watch/"+gu().showcase,className:"verified__user verified__user--showcase"},t.createElement("div",{className:"verified__profile yt",style:{borderTopLeftRadius:"5px",borderBottomLeftRadius:"5px"}},t.createElement("img",{className:"verified__icon",src:"https://sunderarmor.com/DIABLO4/UI/youtube_icon.svg",alt:"YouTube Logo"}),"Build Showcase")):""):""):"","Gear & Skills"===on?t.createElement("div",{className:"builder__gear"},To||0===Ie.length||0===Te.length||0===mt.length||0===oe.length||0===ue.length||0===_e.length||0===pe.length||0===ce.length||0===ge.length||0===tl.length||0===rl.length||0===el.length||0===nl.length?t.createElement("div",{className:"loading"},t.createElement("div",{className:"loading__ring"},t.createElement("div",null),t.createElement("div",null),t.createElement("div",null),t.createElement("div",null))):"",t.createElement("div",{className:"builder__dropdown__wrapper"},Wo||xo?t.createElement(D.A,{seasonList:[0,14,15],showDropdown:Er,setShowDropdown:kr,buttonValue:gu().season,setSeason:e=>{if(!Oe)return;let l=Object.assign({},Ql);const n=e<15?Ye:Qe;var a;if(0===Dr)l.season=e,Su((null==l||null===(a=l.skillTree)||void 0===a?void 0:a.length)===n[l.class].length?l.skillTree:null,n[l.class]),yu(l.mercenarySkillTree2,he);else if(Dr>0&&Dr<=l.variants.length){const a=Dr-1;l.variants[a].season=e,Su(l.variants[a].skillTree.length===n[l.class].length?l.variants[a].skillTree:null,n[l.variants[a].class]),yu(l.variants[a].mercenarySkillTree2,he)}$l(l),kr(!1),Wn(e),Fo(!0)}}):t.createElement("div",{className:"dropdown"},t.createElement("div",{className:"dropdown__button"},gu().season?"Season "+gu().season:"Eternal Realm"))),t.createElement("div",{className:"builder__gear__items season_"+gu().season},Object.keys(rm[gu().class?gu().class:"NoClass"]).map(function(e){let l=rm[gu().class?gu().class:"NoClass"][e];return l?t.createElement("div",{className:"builder__gear__item "+(Number(e)<=6?"left":"right")+(gu(
1).gear[l]?"":" empty")+(l.includes("Weapon")?" weapon":"")+(gu().gear[l]&&Object.values(gu().gear).filter(e=>e===gu().gear[l]).length>1?" duplicate":"")},t.createElement("div",{className:"builder__gear__item__wrapper"},t.createElement("button",{className:"builder__gear__icon__wrapper",onClick:()=>(e=>{if(!Wo&&!xo)return;if(!Oe)return;rt(e),jn(!0),kt("Aspects & Uniques"),requestAnimationFrame(()=>{let e=document.getElementById("gear__searchBar");e&&e.focus()}),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden")})(l)},gu().gear[l]?[Tm(l)].filter(e=>void 0!==e).map(function(e){let n=mt[e];var a,s,r,i,o,u,c;return n?n.description?t.createElement(y.A,{codexInfo:n,stats:gu().newStats[l],temperingStats:gu().temperingStats[l],gearSlot:l,masterworkingValues:gu().masterworking,greaterAffixValues:gu().greaterAffixes,offhand:gu().gear.Offhand||gu().gear.Shield,season:gu().season,isImplicit:Lm.indexOf(l)>-1,sanctification:gu().sanctification,bloodiedAffixes:gu().bloodiedAffixes,isArmor:("Helm"===l||"Chest Armor"===l||"Gloves"===l||"Pants"===l||"Boots"===l)&&(null===(a=gu().bloodiedAffixes)||void 0===a?void 0:a[l]),isJewelry:("Amulet"===l||"Ring 1"===l||"Ring 2"===l)&&(null===(s=gu().bloodiedAffixes)||void 0===s?void 0:s[l]),isWeapon:(l.includes("Weapon")||"Offhand"===l||"Shield"===l)&&(null===(r=gu().bloodiedAffixes)||void 0===r?void 0:r[l])}):t.createElement(S.A,{uniqueInfo:n,gearSlot:l,masterworkingValues:gu().masterworking,lootTables:gu().season<15?fe:ve,gameClass:gu().class,greaterAffixValues:gu().greaterAffixes,season:gu().season,sanctification:gu().sanctification,bloodiedAffixes:gu().bloodiedAffixes,newStats:gu().newStats,temperingStats:null===(i=gu().temperingStats)||void 0===i?void 0:i[l],isImplicit:["Boots","Ring 1","Ring 2","Bludgeoning Weapon","Slashing Weapon","Dual-Wield Weapon 1","Dual-Wield Weapon 2","Ranged Weapon","Weapon","Ring","Shield"].indexOf(l)>-1,isArmor:("Helm"===l||"Chest Armor"===l||"Gloves"===l||"Pants"===l||"Boots"===l)&&(null===(o=gu().bloodiedAffixes)||void 0===o?void 0:o[l]),isJewelry:("Amulet"===l||"Ring 1"===l||"Ring 2"===l)&&(null===(u=gu().bloodiedAffixes)||void 0===u?void 0:u[l]),isWeapon:(l.includes("Weapon")||"Offhand"===l||"Shield"===l)&&(null===(c=gu().bloodiedAffixes)||void 0===c?void 0:c[l]),craftedMythicName:gu().craftedMythic}):null},this):t.createElement("div",{className:"builder__gear__icon"},t.createElement("img",{src:"https://sunderarmor.com/DIABLO4/Uniques/"+l.toLowerCase().replace(/ /g,"_").replace("shield","offhand")+".png",alt:"Diablo 4 "+l+" Slot"}))),gu().newGems&&gu().newGems[l]&&gu().gear[l]?t.createElement("div",{className:"builder__new__gems"},t.createElement("div",{className:"builder__gems__wrapper"},Object.keys(gu().newGems[l]).map(function(e,n){let a=gu().newGems[l][e],s=e;return t.createElement("div",{className:"builder__gems__item"+(a?"":" empty")+(1===n&&"Weapon"===l&&(gu().gear.Offhand||gu().gear.Shield)?" hide":"")},t.createElement("button",{className:"builder__gem__icon__wrapper",onClick:()=>Xu(l,s)},a?t.createElement(t.Fragment,null,Object.keys(gu().season<15?oe:_e).map(function(e){let n=gu().season<15?oe[e]:_e[e];return n.name===a?t.createElement(E.A,{gem:n,gemSlot:l.replace("Chest Armor","Armor").replace("Helm","Armor").replace("Pants","Armor").replace("Amulet","Jewelry").replace("Ring 1","Jewelry").replace("Ring 2","Jewelry").replace("Bludgeoning Weapon","Weapon").replace("Slashing Weapon","Weapon").replace("Ranged Weapon","Weapon").replace("Dual-Wield Weapon 1","Weapon").replace("Dual-Wield Weapon 2","Weapon").replace("Offhand","Weapon").replace("Shield","Weapon"),season:gu().season}):null},this),Object.keys(gu().season<15?ue:pe).map(function(e){let l=gu().season<15?ue[e]:pe[e];return l.name===a?t.createElement(k.A,{rune:l}):null},this)):null))},this))):""),t.createElement("div",{className:"builder__gear__info"},gu().gear[l]?t.createElement("div",{className:"builder__gear__name"+(Nm.includes(gu().gear[l])||pu(gu().craftedMythic).includes(gu().gear[l])?" builder__gear__name--mythic":"")+(gu().gear[l].includes("Aspect")||Nm.includes(gu().gear[l])||pu(gu().craftedMythic).includes(gu().gear[l])?"":" builder__gear__name--unique")},gu().gear[l]):t.createElement("div",{className:"builder__gear__name"+(Nm.includes(l.replace("Shield","Offhand"))?"builder__gear__name--mythic":"")+(l.replace("Shield","Offhand").includes("Aspect")||Nm.includes(l.replace("Shield","Offhand"))?"":" builder__gear__name--unique")},l.replace("Shield","Offhand")),t.createElement("div",{className:"builder__gear__slot"},gu().gear[l]?"Weapon"!==l||"Druid"!==Ql.class&&"Sorcerer"!==Ql.class&&"Necromancer"!==Ql.class||gu().gear["Necromancer"===Ql.class?"Shield":"Offhand"]?l.replace("Shield","Offhand"):l.replace("Weapon","2H Weapon"):!gu().gear.Weapon||"Offhand"!==l||"Druid"!==Ql.class&&"Sorcerer"!==Ql.class&&"Necromancer"!==Ql.class?"Empty":""))):t.createElement("div",{className:"builder__gear__item disabled "+(Number(e)<=6?"left":"right")},t.createElement("div",{className:"builder__gear__icon__wrapper"}))},this)),gu().divineGifts&&11===gu().season?t.createElement("div",{className:"builder__boss"},t.createElement("div",{className:"builder__boss__powers"},Object.keys(gu().divineGifts).map(function(e){let l=gu().divineGifts[e],n=Number(e);return t.createElement("div",{className:"builder__boss__power "+Em[e]+(l?" active":""),onClick:()=>{return l=e,void((Wo||xo)&&(lu(l),Wa(!0),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden")));var l}},l?Object.keys(we).map(function(e){let a=we[e];return a.name===l?t.createElement("div",{className:"builder__gift__wrapper"},t.createElement(y.A,{codexInfo:a,divineGift:!0,divineGiftSlot:n}),n<4?t.createElement("img",{className:"builder__boss__icon",src:"https://sunderarmor.com/DIABLO4/DivineGifts/gift-empty_"+Em[n].replace(/-/g,"")+".png",alt:"Corrupted Divine Gift"}):t.createElement("img",{className:"builder__boss__icon",src:"https://sunderarmor.com/DIABLO4/DivineGifts/gift-empty_"+Em[n].replace(/-/g,"")+".png",alt:"Purified Divine Gift"})):null},this):n<4?t.createElement("img",{className:"builder__boss__icon",src:"https://sunderarmor.com/DIABLO4/DivineGifts/gift-empty_"+Em[e].replace(/-/g,"")+".png",alt:"Corrupted Divine Gift"}):t.createElement("img",{className:"builder__boss__icon",src:"https://sunderarmor.com/DIABLO4/DivineGifts/gift-empty_"+Em[e].replace(/-/g,"")+".png",alt:"Purified Divine Gift"}))},this)),t.createElement("div",{className:"builder__boss__title builder__boss__title--divine"},t.createElement("div",{className:"builder__boss__name"},"Divine Gifts"))):"",gu().charms?t.createElement("div",{className:"builder__charms"},t.createElement("div",{className:"builder__charms__title builder__charms__title--mobile"},t.createElement("div",{className:"builder__charms__name"},"Seal & Charms")),t.createElement("div",{className:"builder__charms__wrapper"},"undefined"!=typeof window&&window.innerWidth<575.98?t.createElement(t.Fragment,null,t.createElement("div",{className:"builder__seal"+((gu().sealStats||[]).some(Boolean)?" active":""),onClick:()=>{(gu().sealStats||[]).some(Boolean)&&Ma(!0),Fu()}},((gu().sealStats||[]).some(Boolean),t.createElement("div",{className:"builder__seal__content"},t.createElement("img",{className:"builder__seal__icon",src:(0,d.bi)(gu().seal,gu().sealStats),alt:"Seal"})))),Ua&&(gu().sealStats||[]).some(Boolean)?t.createElement(Q.A,{codexInfo:{name:(null===(re=gu().seal)||void 0===re?void 0:re.name)||"Seal"},sealStats:gu().sealStats||[],mobileOverlay:!0,hideModal:()=>Ma(!1)}):""):t.createElement(N.Ay,{disabled:!(gu().sealStats||[]).some(Boolean),followCursor:!0,plugins:[ee.M],render:()=>{var e;return(gu().sealStats||[]).some(Boolean)?t.createElement(Q.A,{codexInfo:{name:(null===(e=gu().seal)||void 0===e?void 0:e.name)||"Seal"},sealStats:gu().sealStats||[]}):null},placement:"top",offset:[0,10]},t.createElement("div",{className:"builder__seal"+((gu().sealStats||[]).some(Boolean)?" active":""),onClick:()=>Fu()},((gu().sealStats||[]).some(Boolean),t.createElement("div",{className:"builder__seal__content"},t.createElement("img",{className:"builder__seal__icon",src:(0,d.bi)(gu().seal,gu().sealStats),alt:"Seal"}))))),Object.keys(gu().charms).map(function(e){var l;const n=gu().charms[e],a=gu().season<15?dl:gl,s=gu().season<15?hl:vl,r=n&&a.find(e=>e.name===("string"==typeof n?n:null==n?void 0:n.name))||null,i=gu(
1).charms.map(e=>{if(!e)return null;const l="string"==typeof e?e:null==e?void 0:e.name;return l&&a.find(e=>e.name===l)||null}).filter(Boolean),o=!!r&&pu(gu().mythicCharms).includes(r.name);return"undefined"!=typeof window&&window.innerWidth<575.98?t.createElement(t.Fragment,{key:e},t.createElement("div",{className:"builder__charm "+km[e]+(r?" active":""),onClick:()=>{r&&qa(e),Uu(e)}},r?t.createElement("div",{className:"builder__charm__content"},t.createElement("img",{className:"builder__charm__icon",src:"https://sunderarmor.com/DIABLO4/Charms/1/"+(r.set?r.set.toLowerCase().replace(/ /g,"_"):"Mythic"===r.rarity||o?"mythic_charm":"unique_charm")+".png",alt:r.name})):t.createElement("div",{className:"builder__charm__icon"})),Va===e&&r?t.createElement(K.A,{codexInfo:r,charmStats:null===(l=gu().charmStats)||void 0===l?void 0:l[e],charmSlot:e,charmSets:s,selectedCharms:i,sealStats:gu().sealStats,isCraftedMythic:o,hellfireTorchSet:Dm,mobileOverlay:!0,hideModal:()=>qa(null)}):""):t.createElement(N.Ay,{key:e,disabled:!r,appendTo:()=>document.body,interactive:!0,render:()=>{var l;return r?t.createElement(K.A,{codexInfo:r,charmStats:null===(l=gu().charmStats)||void 0===l?void 0:l[e],charmSlot:e,charmSets:s,selectedCharms:i,sealStats:gu().sealStats,isCraftedMythic:o,hellfireTorchSet:Dm}):null},placement:"right",offset:[0,0]},t.createElement("div",{className:"builder__charm "+km[e]+(r?" active":""),onClick:()=>Uu(e)},r?t.createElement("div",{className:"builder__charm__content"},t.createElement("img",{className:"builder__charm__icon",src:"https://sunderarmor.com/DIABLO4/Charms/1/"+(r.set?r.set.toLowerCase().replace(/ /g,"_"):"Mythic"===r.rarity||o?"mythic_charm":"unique_charm")+".png",alt:r.name})):t.createElement("div",{className:"builder__charm__icon"})))},this))):"",gu().newGems?t.createElement("div",{className:"builder__gems"},t.createElement("div",{className:"builder__gems__title"},"Active Runes"),t.createElement("div",{className:"builder__gems__wrapper"},Object.keys(gu().newGems).map(function(e){let l=gu().newGems[e];return l.includes(null)||2!==l.length||wm.some(e=>l.includes(e))?null:l.map(function(l,n){let a=l;if(a&&!wm.includes(a)&&Sm.length>0)return Sm.shift(),t.createElement("div",{className:"builder__gems__item"},t.createElement("button",{className:"builder__gem__icon__wrapper "+(0===n?" builder__gem__icon__wrapper--right":""),onClick:()=>Xu(e,n)},Object.keys(gu().season<15?ue:pe).map(function(e){let l=gu().season<15?ue[e]:pe[e];return l.name===a?t.createElement(k.A,{rune:l}):null},this)),t.createElement("div",{className:"builder__gem__info"},t.createElement("div",{className:"builder__gem__slot"},a)))},this)},this),Sm.map(function(e){return t.createElement("div",{className:"builder__gems__item empty disabled"},t.createElement("button",{className:"builder__gem__icon__wrapper"}),t.createElement("div",{className:"builder__gem__info"},t.createElement("div",{className:"builder__gem__slot"})))},this))):"",t.createElement("div",{className:"builder__gear__divider"}),gu().season===m.hL?t.createElement(t.Fragment,null,t.createElement("div",{className:"builder__prime"},t.createElement("div",{className:"builder__prime__title"},"Prime Evil Powers"),t.createElement("div",{className:"builder__prime__powers"},(0,m.ng)(de,gu().primeEvilPower).map((e,l)=>{const n=l===m.yH;return t.createElement("div",{className:"builder__prime__power"+(n?" builder__prime__power--main":"")+(e?" active":""),onClick:n?ju:void 0,key:l},e?t.createElement(y.A,{codexInfo:e,primeEvilPower:!0}):"")}))),t.createElement("div",{className:"builder__gear__divider"})):"",t.createElement("div",{className:"builder__skills"},t.createElement("div",{className:"builder__skills__section"},t.createElement("div",{className:"builder__skills__title"},"Skills"),t.createElement("div",{className:"builder__skills__list"},Object.keys(gu().skills).map(function(e){let l={name:null,spec:!1,rank:1,rune:[],recolorUrl:null};l.name=gu().skills[e];let n=gu().season<15?Ye:Qe;const a=e=>{const l=gu().skillTree||"";if(l.length>=e){const n=parseInt(l[e-1],16);return isNaN(n)?0:n}return 0};return n[gu().class]&&Object.keys(n[gu().class]).map(function(e){let t=n[gu().class][e];const s=t.id;return t.name===l.name&&(l.rank=a(s)),t.url&&t.url===l.name&&a(s)&&(l.rune.pu
1sh(t.name),t.recolorUrl&&(l.specialUrl=t.specialUrl)),null},this),t.createElement("button",{className:"builder__skill"+(l.name?"":" empty")+(l.name&&gu().skills.filter(e=>e===l.name).length>1?" duplicate":""),onClick:()=>Zu(Number(e),!1)},l.name?Object.keys(gu().season<15?Ie:Te).map(e=>(gu().season<15?Ie[e]:Te[e]).name===l.name?t.createElement(A.A,{skills:gu().season<15?Ie:Te,skill:l}):null):t.createElement("img",{className:"builder__skill__icon",src:"https://sunderarmor.com/DIABLO4/UI/empty_skill.png",alt:"empty skill"}),"Barbarian"===gu().class&&["Lunging Strike","Bash","Frenzy","Flay","Whirlwind","Hammer of the Ancients","Upheaval","Double Swing","Rend","Charge","Leap","Rupture","Death Blow","Mighty Throw"].includes(l.name)?t.createElement(q.A,{arsenal:gu().arsenals[e],isBuildPlanner:!0,index:e,setArsenal:wu,noInteracting:!Wo&&!xo}):"")},this))),"Barbarian"===gu().class?t.createElement(t.Fragment,null,t.createElement("div",{className:"builder__skills__divider"}),t.createElement("div",{className:"builder__skills__section"},t.createElement("div",{className:"builder__skills__title"},"Technique"),t.createElement("div",{className:"builder__skills__list"},t.createElement("button",{className:"builder__skill small"+(Ql.expertise?"":" empty"),onClick:Ku},gu().expertise?Object.keys(gu().season<15?Ie:Te).map(e=>{let l=gu().season<15?Ie[e]:Te[e];return l.name===gu().expertise?t.createElement(A.A,{skills:gu().season<15?Ie:Te,skill:l,technique:!0}):null}):t.createElement("img",{className:"builder__skill__icon",src:"https://sunderarmor.com/DIABLO4/UI/empty_skill.png",alt:"empty skill"}))))):"","Rogue"===gu().class?t.createElement(t.Fragment,null,t.createElement("div",{className:"builder__skills__divider"}),t.createElement("div",{className:"builder__skills__section"},t.createElement("div",{className:"builder__skills__title"},"Specialization"),t.createElement("div",{className:"builder__skills__list"},t.createElement("button",{className:"builder__skill"+(gu().specialization?"":" empty"),onClick:Ku},gu().specialization?Object.keys(gu().season<15?Ie:Te).map(e=>{let l=gu().season<15?Ie[e]:Te[e];return l.name===gu().specialization?t.createElement(A.A,{skills:gu().season<15?Ie:Te,skill:l}):null}):t.createElement("img",{className:"builder__skill__icon",src:"https://sunderarmor.com/DIABLO4/UI/empty_skill.png",alt:"empty skill"}))))):"","Sorcerer"===gu().class?t.createElement(t.Fragment,null,t.createElement("div",{className:"builder__skills__divider"}),t.createElement("div",{className:"builder__skills__section"},t.createElement("div",{className:"builder__skills__title"},"Enchantments"),t.createElement("div",{className:"builder__skills__list"},gu().enchantments?Object.keys(gu().enchantments).map(function(e){let l=gu().enchantments[e];return t.createElement("button",{className:"builder__skill"+(l?"":" empty"),onClick:()=>Zu(Number(e),!0)},l?Object.keys(gu().season<15?Ie:Te).map(e=>{let n=gu().season<15?Ie[e]:Te[e];return n.name===l?t.createElement(A.A,{skills:gu().season<15?Ie:Te,skill:n,onlyEnchantment:!0}):null}):t.createElement("img",{className:"builder__skill__icon",src:"https://sunderarmor.com/DIABLO4/UI/empty_skill.png",alt:"empty skill"}))},this):""))):"","Paladin"===gu().class?t.createElement(t.Fragment,null,t.createElement("div",{className:"builder__skills__divider"}),t.createElement("div",{className:"builder__skills__section"},t.createElement("div",{className:"builder__skills__title"},"Oath"),t.createElement("div",{className:"builder__skills__list"},t.createElement("button",{className:"builder__skill small"+(gu().oaths?"":" empty"),onClick:Ku},gu().oaths?Object.keys(gu().season<15?Ie:Te).map(e=>{let l=gu().season<15?Ie[e]:Te[e];return l.name===gu().oaths?t.createElement(A.A,{key:e,skills:gu().season<15?Ie:Te,skill:l,technique:!0}):null}):t.createElement("img",{className:"builder__skill__icon",src:"https://sunderarmor.com/DIABLO4/UI/empty_skill.png",alt:"empty skill"}))))):"","Warlock"===gu().class?t.createElement(t.Fragment,null,t.createElement("div",{className:"builder__gear__divider"}),t.createElement("div",{className:"builder__skills__section full"},t.createElement("div",{className:"builder__skills__title"},"Soul Shards"),t.createElement("div",{className:"builder__skills__list column boons"},Object.keys(hm).map(function(e){let l=hm[e],n=e;return t.createElement("div",{className:"builder__skills__boons",key:e},t.createElement(N.Ay,{zIndex:9999999999,render:()=>t.createElement(Y.A,{skills:gu().season<15?Ie:Te,boon:n}),placement:"top"},t.createElement("div",{className:"builder__skills__boon category"+(gu().soulShards[n].length>0?" active":"")},t.createElement("img",{className:"builder__skills__boon__background",src:"https://sunderarmor.com/DIABLO4/Boons/category.png",alt:n+" background"}),t.createElement("img",{className:"builder__skills__boon__background selected",src:"https://sunderarmor.com/DIABLO4/Boons/category_active.png",alt:n+" selected background"}),t.createElement("img",{className:"builder__skills__boon__icon",src:"https://sunderarmor.com/DIABLO4/Skills/VoH2/"+n.replace(/ /g,"_").toLowerCase()+".png",alt:n}))),Object.keys(l).map(function(e){let a=l[e];return t.createElement(x.A,{key:e,skills:gu().season<15?Ie:Te,setBoon:mc,activeBoons:gu().soulShards[n],boonCategory:n,boon:a})},this))},this)))):"","Druid"===gu().class?t.createElement(t.Fragment,null,t.createElement("div",{className:"builder__gear__divider"}),t.createElement("div",{className:"builder__skills__section full"},t.createElement("div",{className:"builder__skills__title"},"Spirit Boons"),t.createElement("div",{className:"builder__skills__list column boons"},Object.keys(pm).map(function(e){let l=pm[e],n=e;return t.createElement("div",{className:"builder__skills__boons"},t.createElement(N.Ay,{zIndex:9999999999,render:()=>t.createElement("div",{className:"generic__tooltip"},n),placement:"top"},t.createElement("div",{className:"builder__skills__boon category"+(gu().boons[n].length>1?" active":"")},t.createElement("img",{className:"builder__skills__boon__background",src:"https://sunderarmor.com/DIABLO4/Boons/category.png",alt:n+" background"}),t.createElement("img",{className:"builder__skills__boon__background selected",src:"https://sunderarmor.com/DIABLO4/Boons/category_active.png",alt:n+" selected background"}),t.createElement("img",{className:"builder__skills__boon__icon",src:"https://sunderarmor.com/DIABLO4/Boons/"+n.toLowerCase().replace(/ /g,"_")+".png",alt:n}))),Object.keys(l).map(function(e){let a=l[e];return t.createElement(x.A,{skills:gu().season<15?Ie:Te,setBoon:cc,activeBoons:gu().boons[n],boonCategory:n,boon:a})},this))},this)))):"","Spiritborn"===gu().class?t.createElement(t.Fragment,null,t.createElement("div",{className:"builder__gear__divider"}),t.createElement("div",{className:"builder__skills__section full spiritborn"},t.createElement("div",{className:"builder__skills__list__wrapper"},t.createElement("div",{className:"builder__skills__title"},"Primary Spirit"),t.createElement("div",{className:"builder__skills__list column boons spiritborn"},fm.map(e=>t.createElement("div",{className:"builder__skills__boons spiritborn"},t.createElement(O.A,{skills:gu().season<15?Ie:Te,spirit:e,activeSpirit:gu().spiritHall.Primary,setSpiritHall:uc,type:"Primary"}))))),t.createElement("div",{className:"builder__skills__list__wrapper"},t.createElement("div",{className:"builder__skills__title secondary"},"Secondary Spirit"),t.createElement("div",{className:"builder__skills__list column boons spiritborn"},fm.map(e=>t.createElement("div",{className:"builder__skills__boons spiritborn"},t.createElement(O.A,{skills:gu().season<15?Ie:Te,spirit:e,activeSpirit:gu().spiritHall.Secondary,setSpiritHall:uc,type:"Secondary"}))))))):"","Necromancer"===gu().class?t.createElement(t.Fragment,null,t.createElement("div",{className:"builder__gear__divider"}),t.createElement("div",{className:"builder__skills__section full"},t.createElement("div",{className:"builder__skills__summons"},Object.keys(vm).map(function(e){let l=vm[e],n=e;return t.createElement("div",{className:"builder__skills__summons__section"},t.createElement("div",{className:"builder__skills__title"},n),t.createElement("div",{className:"builder__skills__list column summons"},Object.keys(l).map(function(e){let a=l[e],s=e;return t.createElement("div",{className:"builder__skills__boons summons"},t.createElement(B.A,{skills:gu().season<15?Ie:Te,summonType:n,summonSpec:s,activeSpec:gu().summons[n].spec}),Object.keys(a).map(function(e){let l=a[e];return t.createElement(B.A,{setSummon:oc,skills:gu().season<15?Ie:Te,summonType:n,summonSpec:s,activeSpec:gu().summons[n].spec,summonUpgrade:l,activeUpgrade:gu().summons[n].upgrade})},this))},this)))},this)))):""),t.createElement("div",{className:"builder__gear__divider"}),t.createElement("div",{className:"builder__notes"},t.createElement("div",{className:"builder__notes__title"},"Build Notes (Shared for all Variants)"),Wo||xo?t.createElement("div",{className:"builder__notes__title"},t.createElement("div",null,"Use ~text~ for tooltips and **text** for bold. Example: ~Fists of Fate~ **Leveling**."),t.createElement("div",null,"Use #[ ][ ]# for hyperlinks. Example: #[test.com][Click Here]#")):"",Xr?t.createElement("textarea",{id:"myTextArea",ref:Qr,className:"builder__notes__textarea",value:Vr,onChange:e=>(e=>{const l=document.getElementById("myTextArea");l.style.height="auto",l.style.height=l.scrollHeight+"px";const n=p.A.sanitize(e);qr(n),$l(Object.assign({},Ql,{notes:n})),Fo(!0)})(e.target.value),onBlur:()=>Jr(!1),readOnly:!Wo&&!xo,maxLength:1e4,autoFocus:!0}):t.createElement("div",{className:"builder__notes__display",onClick:e=>{var l,n;if(!Wo&&!xo)return;const a=e.currentTarget,t=(()=>{var l,n;if("undefined"==typeof document)return null;if(document.caretPositionFromPoint){const l=document.caretPositionFromPoint(e.clientX,e.clientY);if(l){const e=document.createRange();return e.setStart(l.offsetNode,l.offset),e.collapse(!0),e}}return(null===(l=(n=document).caretRangeFromPoint)||void 0===l?void 0:l.call(n,e.clientX,e.clientY))||null})();let s=(null===(l=(n=e.target).closest)||void 0===l?void 0:l.call(n,"[data-raw-start]"))||null,r=Vr.length;var i;t&&a.contains(t.startContainer)&&t.startContainer.nodeType===Node.TEXT_NODE&&(s=(null===(i=t.startContainer.parentElement)||void 0===i?void 0:i.closest("[data-raw-start]"))||s);if(s){var o;const l=Number(s.dataset.rawStart||0),n=Number(s.dataset.rawEnd||l),i=(null===(o=s.textContent)||void 0===o?void 0:o.length)||0;let u=i;if(t&&a.contains(t.startContainer)&&s.contains(t.startContainer)){const e=document.createRange();e.selectNodeContents(s),e.setEnd(t.startContainer,t.startOffset),u=e.toString().length}else{const l=s.getBoundingClientRect();u=e.clientX<=l.left+l.width/2?0:i}r=Math.min(l+u,n)}Kr(r),Jr(!0)}},Vr?(e=>{let l=0;const n=e.split(/(~[^~]+~|\*\*[^*]+\*\*|#\[[^\]]+]\[[^\]]+]\s*#)/g);return t.createElement("div",{style:{textAlign:"left",width:"100%",flexWrap:"wrap",alignItems:"center"}},n.flatMap((e,n)=>{const a=l;if(l+=e.length,e.match(/\n|\\n/)){const l=e.split(/(\n|\\n)/),s=[];let r=0;return l.forEach((e,l)=>{const i=a+r;r+=e.length,"\\n"===e||"\n"===e?s.push(t.createElement("div",{key:"br-"+n+"-"+l,style:{flexBasis:"100%",height:"8px"}})):""!==e.trim()&&s.push(t.createElement("span",{key:"text-"+n+"-"+l,"data-raw-start":i,"data-raw-end":i+e.length,style:{display:"inline",whiteSpace:"pre-wrap"}},e))}),s}if(e.startsWith("**")&&e.endsWith("**")){const l=e.slice(2,-2);return t.createElement("strong",{key:"bold-"+n,"data-raw-start":a+2,"data-raw-end":a+2+l.length,style:{fontWeight:"bold"}},l)}if(e.startsWith("#[")&&e.endsWith("]#")){const l=e.match(/#\[([^\]]+)]\[([^\]]+)]#/);if(l){const e=l[1],s=l[2];return t.createElement("a",{key:"link-"+n,"data-raw-start":a+e.length+4,"data-raw-end":a+e.length+4+s.length,href:e.startsWith("http")?e:"https://"+e,target:"_blank",rel:"noopener noreferrer",className:"notes__link"},s)}}if(e.startsWith("~")&&e.endsWith("~")){const l=e.slice(1,-1),s=l.replace(/ \(\d\)/g,"");let r=gu().season<15?Ge:He;const i=r.find(e=>e.name===s);if(i)return t.createElement("span",{key:"unique-"+n,"data-raw-start":a+1,"data-raw-end":a+1+l.length},t.createElement(z.A,{uniques:r,unique:l,uniqueInfo:i,gameClass:gu().class,formattedNotesInline:!0}));let o=gu().season<15?Me:Ve;const u=o.find(e=>e.name===s);
1if(u)return t.createElement("span",{key:"codex-"+n,"data-raw-start":a+1,"data-raw-end":a+1+l.length},t.createElement(X.A,{codexes:o,codex:l,codexInfo:u,formattedNotesInline:!0}));let c=gu().season<15?Ie:Te;if(c.find(e=>e.name===s))return t.createElement("span",{key:"skill-"+n,"data-raw-start":a+1,"data-raw-end":a+1+l.length},t.createElement(J.A,{skills:c,skill:l,formattedNotesInline:!0}));let m=gu().season<15?tl:rl;if(m.find(e=>e.name===s))return t.createElement("span",{key:"glyph-"+n,"data-raw-start":a+1,"data-raw-end":a+1+l.length},t.createElement(Z.A,{paragons:m,paragon:l,gameClass:gu().class,formattedNotesInline:!0}));let d=gu().season<15?el:nl;if(d.find(e=>e.title===s))return t.createElement("span",{key:"board-"+n,"data-raw-start":a+1,"data-raw-end":a+1+l.length},t.createElement(Z.A,{paragons:d,paragon:l,gameClass:gu().class,isBoard:!0,formattedNotesInline:!0}));const _=(gu().season<15?ue:pe).find(e=>e.name===s);if(_)return t.createElement("span",{key:"rune-"+n,"data-raw-start":a+1,"data-raw-end":a+1+l.length},t.createElement(C.A,{rune:_,isNotes:!0,formattedNotesInline:!0}));const g=(gu().season<15?oe:_e).find(e=>e.name===s);if(g)return t.createElement("span",{key:"gem-"+n,"data-raw-start":a+1,"data-raw-end":a+1+l.length},t.createElement(W.A,{gem:g,isNotes:!0,formattedNotesInline:!0}));let p=gu().season<15?dl:gl;const h=gu().season<15?hl:vl,f=p.find(e=>e.name===s);if(f){const e=gu().charms.map(e=>{if(!e)return null;const l="string"==typeof e?e:null==e?void 0:e.name;return l&&p.find(e=>e.name===l)||null}).filter(Boolean);return t.createElement("span",{key:"charm-"+n,"data-raw-start":a+1,"data-raw-end":a+1+l.length},t.createElement($.A,{charm:f,charmSets:h,selectedCharms:e,formattedNotesInline:!0}))}}return t.createElement("span",{key:"text-"+n,"data-raw-start":a,"data-raw-end":a+e.length,style:{display:"inline",whiteSpace:"pre-wrap"}},e)}))})(Vr):null)),gu().class?t.createElement("div",{className:"builder__stats__section"},t.createElement("div",{className:"builder__stats__title"},"Gear Stats"),t.createElement("div",{className:"builder__stats__list"},Object.keys(gu().newStats).map(function(e){var l,n,a;let s=e,r=gu().newStats[s],i=gu().temperingStats[s];let o=(gu().season<15?Ge:He).filter(e=>e.name===gu().gear[s]),u=function(e,l,n){var a,t,r,i,u,c,m,d;return void 0===n&&(n=l),null!==(a=gu().greaterAffixes)&&void 0!==a&&a[s][l]&&null!==(t=gu().masterworking)&&void 0!==t&&t[s][l]?null===(u=o[0])||void 0===u||null===(c=u.ga_mw)||void 0===c?void 0:c[n]:null!==(r=gu().greaterAffixes)&&void 0!==r&&r[s][l]||null!==(i=gu().masterworking)&&void 0!==i&&i[s][l]?null===(m=o[0])||void 0===m||null===(d=m.ga)||void 0===d?void 0:d[n]:e},m=function(){return(0,ne.q)(u.apply(void 0,arguments),gu().class)};return t.createElement("div",{className:"builder__stats__group "+s.replace(/ /g,"").replace("Shield","Offhand")},t.createElement("div",{className:"builder__stats__slot"},t.createElement("img",{className:"builder__stats__slot__icon",src:"https://sunderarmor.com/DIABLO4/Uniques/"+s.replace("Shield","Offhand").replace(/ /g,"_").toLowerCase()+".png",alt:s}),s.replace("Shield","Offhand")),t.createElement("div",{className:"builder__stats__priority"},(s.includes("Weapon")||s.includes("Shield"))&&(!o.length||"Weapon"===o[0].type)&&t.createElement("div",{className:"builder__stat",style:{order:-1}},t.createElement(M.A,{currentStats:r,gearSlot:s,setStat:Fc,statValue:null!=r&&r[3]?r[3]:"Weapon Type",gameClass:gu().class,statNumber:3,statSlot:s.includes("Weapon")?"Weapon":s.replace(" 1","").replace(" 2",""),data:gu().season<15?ce:ge,newStat:!0,noInteracting:!Wo&&!xo,masterworkingValues:gu().masterworking,isImplicit:Lm,greaterAffixValues:gu().greaterAffixes,offhand:gu().gear.Offhand||gu().gear.Shield,season:gu().season})),o.length&&gu().season>=14?(0,c.YI)(o[0],Lm.indexOf(s)>-1).map((e,l)=>{var n,a,i,u;let c=r[e];const d=null===(n=o[0])||void 0===n||null===(a=n.terciary_stats__full)||void 0===a?void 0:a[l],_=Boolean(d),g=Boolean(c);return t.createElement("div",{className:"builder__stat",key:e},t.createElement("button",{className:"greater__affix__button"+(null!==(i=gu().greaterAffixes)&&void 0!==i&&null!==(u=i[s])&&void 0!==u&&u[e]?" greater__affix__button--filled":""),onClick:()=>Jc(s,e)},t.createElement("img",{className:"greater__affix__img",src:"https://sunderarmor.com/DIABLO4/UI/ga.png",alt:"greater affix"})),t.createElement(M.A,{currentStats:r,gearSlot:s,setStat:Fc,statValue:g?c:_?m(d,e,l):"Stat "+(e+1),gameClass:gu().class,statNumber:e,statSlot:s.includes("Weapon")?"Weapon":s.replace(" 1","").replace(" 2",""),data:gu().season<15?ce:ge,newStat:!0,noInteracting:!Wo&&!xo,masterworkingValues:gu().masterworking,isImplicit:Lm,greaterAffixValues:gu().greaterAffixes,offhand:gu().gear.Offhand||gu().gear.Shield,season:gu().season,isUnique:!!_||void 0}),(Wo||xo)&&Im(s,e))}):o.length&&o[0].mythic?null===(l=o[0].terciary_stats__full)||void 0===l?void 0:l.map((e,l)=>{var n,a;return t.createElement("div",{className:"builder__stat"},t.createElement("button",{className:"greater__affix__button"+(null!==(n=gu().greaterAffixes)&&void 0!==n&&null!==(a=n[s])&&void 0!==a&&a[Number(l)]?" greater__affix__button--filled":""),onClick:()=>Jc(s,Number(l))},t.createElement("img",{className:"greater__affix__img",src:"https://sunderarmor.com/DIABLO4/UI/ga.png",alt:"greater affix"})),t.createElement(M.A,{statValue:m(e,l),noInteracting:!0,masterworkingValues:gu().masterworking,statNumber:l,gearSlot:s,greaterAffixValues:gu().greaterAffixes,isUnique:!0}),Wo||xo?Im(s,Number(l)):"")}):Object.keys(r).map(function(e){var l,n;let a=r[e];return Lm.indexOf(s)>-1&&3===Number(e)?null:t.createElement("div",{className:"builder__stat"},t.createElement("button",{className:"greater__affix__button"+(null!==(l=gu().greaterAffixes)&&void 0!==l&&null!==(n=l[s])&&void 0!==n&&n[Number(e)]?" greater__affix__button--filled":""),onClick:()=>Jc(s,Number(e))},t.createElement("img",{className:"greater__affix__img",src:"https://sunderarmor.com/DIABLO4/UI/ga.png",alt:"greater affix"})),t.createElement(M.A,{currentStats:r,gearSlot:s,setStat:Fc,statValue:a||"Stat "+(Number(e)+1),gameClass:gu().class,statNumber:Number(e),statSlot:s.includes("Weapon")?"Weapon":s.replace(" 1","").replace(" 2",""),data:gu().season<15?ce:ge,newStat:!0,noInteracting:!Wo&&!xo,masterworkingValues:gu().masterworking,isImplicit:Lm,greaterAffixValues:gu().greaterAffixes,offhand:gu().gear.Offhand||gu().gear.Shield,season:gu().season}),(Wo||xo)&&Im(s,Number(e)))},this),i.map(function(e,l){var n,a;return t.createElement("div",{className:"builder__stat"},t.createElement("button",{className:"greater__affix__button"+(null!==(n=gu().greaterAffixes)&&void 0!==n&&null!==(a=n[s])&&void 0!==a&&a[Number(l+(Lm.indexOf(s)>-1?5:4))]?" greater__affix__button--filled":""),onClick:()=>Jc(s,Number(l+(Lm.indexOf(s)>-1?5:4)))},t.createElement("img",{className:"greater__affix__img",src:"https://sunderarmor.com/DIABLO4/UI/ga.png",alt:"greater affix"})),t.createElement(M.A,{gearSlot:s,setStat:Vc,statValue:e||"Stat "+(l+1),gameClass:gu().class,statNumber:l,statSlot:s.includes("Weapon")?"Weapon":s.replace(" 1","").replace(" 2",""),data:gu().season<15?ol:cl,temperingStat:!0,otherTemperingStat:0===l?i[1]:i[0],temperingSlots:bm,noInteracting:!Wo&&!xo,masterworkingValues:gu().masterworking,greaterAffixValues:gu().greaterAffixes,isImplicit:Lm,season:gu().season,offhand:gu().gear.Offhand||gu().gear.Shield}),Wo||xo?Im(s,Number(l+(Lm.indexOf(s)>-1?5:4))):"")},this),t.createElement("div",{className:"builder__stat"},t.createElement(M.A,{gearSlot:s,setStat:qc,statValue:(Array.isArray(gu().sanctification[s])?gu().sanctification[s][0]:gu().sanctification[s])||"Transfigure",statNumber:"Amulet"===s?0:void 0,gameClass:gu().class,statSlot:s.includes("Weapon")?"Weapon":s.replace(" 1","").replace(" 2",""),data:"Amulet"===s?(gu().season<15?Me:Ve).filter(e=>
1"Utility"===e.type):Se,codexSlots:bm,season:gu().season,isSanctification:!0,noInteracting:!Wo&&!xo})),"Amulet"===s&&t.createElement("div",{className:"builder__stat"},t.createElement(M.A,{gearSlot:s,setStat:qc,statValue:(Array.isArray(gu().sanctification[s])?gu().sanctification[s][1]:null)||"Transfigure",statNumber:1,gameClass:gu().class,statSlot:s.replace(" 1","").replace(" 2",""),data:Se,codexSlots:bm,season:gu().season,isSanctification:!0,noInteracting:!Wo&&!xo})),12===gu().season?t.createElement("div",{className:"builder__stat"},t.createElement("button",{className:"greater__affix__button"+(null!==(n=gu().bloodiedAffixesGAMW)&&void 0!==n&&null!==(a=n[s])&&void 0!==a&&a[0]?" greater__affix__button--filled":""),onClick:()=>Xc(s,0)},t.createElement("img",{className:"greater__affix__img",src:"https://sunderarmor.com/DIABLO4/UI/ga.png",alt:"greater affix"})),t.createElement(M.A,{gearSlot:s,setStat:zc,statValue:gu().bloodiedAffixes[s]||"Bloodied Affix",gameClass:gu().class,statSlot:s.includes("Weapon")?"Weapon":s.replace(" 1","").replace(" 2",""),data:Ee,codexSlots:bm,season:gu().season,isBloodiedAffix:!0,isArmor:("Helm"===s||"Chest Armor"===s||"Gloves"===s||"Pants"===s||"Boots"===s)&&gu().bloodiedAffixes[s],isJewelry:("Amulet"===s||"Ring 1"===s||"Ring 2"===s)&&gu().bloodiedAffixes[s],isWeapon:(s.includes("Weapon")||"Offhand"===s||"Shield"===s)&&gu().bloodiedAffixes[s],noInteracting:!Wo&&!xo,offhand:gu().gear.Offhand||gu().gear.Shield,bloodiedAffixesGAMWValues:gu().bloodiedAffixesGAMW}),(Wo||xo)&&Im(s,1,!0)):null))},this))):t.createElement("div",{className:"builder__stats__section builder__stats__section--skeleton"})):"","Mercenaries"===on?t.createElement(P.A,{key:1,build:Ql,skillTree:gu().mercenarySkillTreeFiltered2,skillTreeStructure:{"Raheir, The Shieldbearer":[1,2,4,4,8],"Varyana, The Berserker Crone":[1,2,4,4,8],"Aldkin, The Cursed Child":[1,2,4,4,8],"Subo, The Drunken Archer":[1,2,4,4,8]}[gu().mercenary2]||{},gameClass:Ql.class.toLowerCase(),skills:gu().season<15?Ie:Te,showInGame:Ps,setShowInGame:Rs,totalPoints:nr,setTotalPoints:ar,shareSkills:sr,setShareSkills:rr,sectionTotals:or,setSectionTotals:ur,searchTerm:mr,setSearchTerm:dr,filtersArr:gr,setFiltersArr:pr,filteredSkills:fr,setFilteredSkills:vr,tooltipOpen:Ws,setTooltipOpen:Cs,copied:wr,setIsCopied:Sr,noInteracting:!Wo&&!xo,setBuild:$l,leveling:gu().leveling,toggleLeveling:ku,addLevelingOrder:Nu,levelingDeficit:Ds,setLevelingDeficit:Ts,isBuildPlanner:!0,clearBuild:dc,currentVariant:Dr,fullscreenSkilltree:Br,setFullscreenSkilltree:xr,season:gu().season,isMercTree:!0,openSkillModal:()=>{et(!0),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden")},openMercenaryModal:e=>{e&&at(!0),Ja(!0),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden")},openOpportunityModal:()=>{Ka(!0),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden")},mercenary:gu().mercenary2,reinforcement:gu().reinforcement2,mercenarySkill:gu().mercenarySkill2,mercenaryOpportunity:gu().mercenaryOpportunity2,setShowSaveChanges:Fo}):"","Skill Tree"===on&&Ye[Ql.class]?t.createElement(R.A,{skillTree:gu().season<15?Ye[Ql.class]||[]:Qe[Ql.class]||[],skills:gu().season<15?Ie:Te,gameClass:Ql.class,build:Ql,setBuild:$l,currentVariant:Dr,season:gu().season,totalPoints:ms,setTotalPoints:ds,sectionTotals:fs,setSectionTotals:vs,searchTerm:ws,setSearchTerm:Ss,filtersArr:Es,setFilteredSkills:Ns,fullscreenSkilltree:Br,setFullscreenSkilltree:xr,isBuildPlanner:!0,toggleLeveling:ku,leveling:gu().leveling,addLevelingOrder:Nu,levelingDeficit:Ds,setLevelingDeficit:Ts,noInteracting:!Wo&&!xo,setShowSaveChanges:Fo,clearBuild:dc}):"","Paragon Boards"===on&&ze[Ql.class]&&Je[Ql.class]?t.createElement(I.A,{paragons:gu().season<15?ze[Ql.class]:Je[Ql.class],paragonBoards:gu().season<15?el:nl,gameClass:Ql.class,tooltipOpen:Ws,setTooltipOpen:Cs,setBuild:$l,build:gu(),addParagonTile:(e,l)=>{if(!Wo&&!xo)return;let n=Ql,a=[];if(0===Dr)a=n.paragon.selectedTiles;else if(Dr>0&&Dr<=n.variants.length){const e=Dr-1;a=n.variants[e].paragon.selectedTiles}2===e.button?a.includes(l.id)&&(a.splice(a.indexOf(l.id),1),Yc(n,a)):0===e.button&&(a.includes(l.id)?(a.splice(a.indexOf(l.id),1),Yc(n,a)):(!l.requires||a.some(e=>{var n;return null===(n=l.requires)||void 0===n?void 0:n.includes(e)})||l.id.includes("r11c2")||l.id.includes("r11c20")||l.id.includes("r2c11")&&"Starting Board"!==l.board||l.id.includes("r20c11"))&&!a.includes(l.id)&&Ji<336&&(a.push(l.id),Yc(n,a)))},paragonStats:Si,totalPoints:Ji,rotateParagonBoard:e=>{if(!Wo&&!xo)return;let l=Ql,n=[];if(0===Dr)n=l.paragon.boards;else if(Dr>0&&Dr<=l.variants.length){const e=Dr-1;n=l.variants[e].paragon.boards}if(Object.keys(n).map(function(l){let a=n[l];return a.name===e&&(a.rotation+=90),null},this),0===Dr)l.paragon.boards=n;else if(Dr>0&&Dr<=l.variants.length){const e=Dr-1;l.variants[e].paragon.boards=n}$l(Object.assign({},l)),Fo(!0)},deleteParagonBoard:nm,resetParagonBoard:e=>{if(!Wo&&!xo)return;let l=Ql;const n=Dr-1;let a=0===Dr?l:l.variants[n],t=a.paragon.selectedTiles.filter(l=>"startingboard_r15c11"===l||-1===l.indexOf(e.replace(/ /g,"").toLowerCase()));a.paragon.selectedTiles=t,Object.keys(a.paragon.boards).map(function(l){let n=a.paragon.boards[l];return n.name===e&&(n.glyph=null),null},this),$l(Object.assign({},l)),Fo(!0),em()},openParagonModal:(e,l,n,a)=>{(Wo||xo)&&(Fi(n),Ii(e),Li(l),a&&Hi(!0),Kn(!0),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden"))}
1,paragonGlyphs:gu().season<15?tl:rl,openGlyphModal:(e,l,n,a)=>{if(Wo||xo)if(2===e.button)tm();else if(0===e.button){let e=Ql;$l(Object.assign({},e)),Fi(l),to(a),zi(n),ea(!0);requestAnimationFrame(()=>{let e=document.getElementById("paragonGlyph__searchBar");e&&e.focus()}),"undefined"!=typeof window&&window.document&&(document.body.style.overflowX="hidden")}},showGlyphModal:$n,showParagonModal:Yn,searchTerm:ki,setSearchTerm:Ni,filtersArr:Wi,setFiltersArr:Ci,filteredSkills:xi,setFilteredSkills:Oi,fullscreenParagon:Ar,setFullscreenParagon:Wr,season:gu().season,disabled:!Wo&&!xo,updateParagonNumbers:(e,l,n,a,t)=>{let s=Object.assign({},Ql);if(Rr(e=>Object.assign({},e,{[a]:!l&&!e[a]})),0===Dr){if(e){s.paragon.boards.find(e=>e.boardNumber===n&&e.name===t).boardNumber=e;const l=s.paragon.boards.find(l=>l.boardNumber===e&&l.name!==t);l&&(l.boardNumber=n),$l(s),Fo&&Fo(!0)}}else if(Dr>0&&Dr<=s.variants.length){const l=Dr-1;if(e){s.variants[l].paragon.boards.find(e=>e.boardNumber===n&&e.name===t).boardNumber=e;const a=s.variants[l].paragon.boards.find(l=>l.boardNumber===e&&l.name!==t);a&&(a.boardNumber=n),$l(s),Fo&&Fo(!0)}}},showBoardNumberDropdown:Pr}):"","War Plans"===on?t.createElement(R.A,{key:$s,skillTree:(()=>{const e=gu().season;return{Pits:e<15?kl:Al,"Boss Lairs":e<15?Hl:Ml,Whispers:e<15?Tl:Gl,Undercity:e<15?wl:yl,"Infernal Hordes":e<15?Vl:zl,"Nightmare Dungeons":e<15?Pl:Il,Helltides:e<15?Cl:xl}[$s]||[]})(),skills:gu().season<15?Ie:Te,gameClass:Ql.class,build:Ql,setBuild:$l,currentVariant:Dr,season:gu().season,totalPoints:Gs,setTotalPoints:js,sectionTotals:Ms,setSectionTotals:Fs,searchTerm:qs,setSearchTerm:zs,filtersArr:Js,setFiltersArr:Zs,setFilteredSkills:Ks,fullscreenSkilltree:Br,setFullscreenSkilltree:xr,isBuildPlanner:!0,clearBuild:dc,maxSkillPoints:7,defaultPanOffset:{x:300,y:-100},warplanKey:$s,setWarplanKey:er,noInteracting:!Wo&&!xo,setShowSaveChanges:Fo}):"","Showcase"===on?t.createElement("div",{className:"builder__showcase"},Wo||xo?t.createElement(t.Fragment,null,t.createElement("div",{className:"builder__showcase__instructions"},"Do you have a YouTube video where you showcase this build? Paste the link below!"),t.createElement("form",{className:"builder__showcase__form",onSubmit:async e=>{let l=Object.assign({},Ql);e.preventDefault();let n=fn.split("=")[1].split("&")[0];if(0===Dr)n&&11===n.length&&$l(Object.assign({},Ql,{showcase:n}));else if(Dr>0&&Dr<=l.variants.length){const e=Dr-1;l.variants[e].showcase=n,$l(Object.assign({},l))}Fo(!0),vn("")}},t.createElement("input",{className:"builder__modal__input",type:"text",maxLength:"50",placeholder:"https://www.youtube.com/watch?v=LILITH",value:fn,onChange:e=>{vn(e.target.value)},autoComplete:"off"}),t.createElement("button",{className:"builder__showcase__button"},t.createElement("img",{className:"app__send__button__icon",src:"https://sunderarmor.com/DIABLO4/UI/send_icon.svg",alt:"enter YouTube url"})))):"",gu().showcase?t.createElement("iframe",{className:"build__video",src:"https://www.youtube.com/embed/"+gu().showcase,referrerPolicy:"strict-origin-when-cross-origin",frameborder:"0"}):""):""))))}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.