diff --git a/404.html b/404.html index acaa0083..0e18ef4f 100644 --- a/404.html +++ b/404.html @@ -35,6 +35,6 @@ - + \ No newline at end of file diff --git a/613.6d53fbfd5762e4b2.js b/613.805c8114c942817a.js similarity index 91% rename from 613.6d53fbfd5762e4b2.js rename to 613.805c8114c942817a.js index cae9ef17..b81b7739 100644 --- a/613.6d53fbfd5762e4b2.js +++ b/613.805c8114c942817a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkD2ArmorPicker=self.webpackChunkD2ArmorPicker||[]).push([[613],{8613:(bs,Ee,M)=>{M.r(Ee),M.d(Ee,{TheorizerPageModule:()=>gs});var be=M(6895),V=M(5861);function $(e){let i=e.length;for(;--i>=0;)e[i]=0}const Ae=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),ve=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Rt=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Fe=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),D=new Array(576);$(D);const se=new Array(60);$(se);const ae=new Array(512);$(ae);const ie=new Array(256);$(ie);const Ue=new Array(29);$(Ue);const Te=new Array(30);function Me(e,i,t,a,s){this.static_tree=e,this.extra_bits=i,this.extra_base=t,this.elems=a,this.max_length=s,this.has_stree=e&&e.length}let Ye,Je,He;function Oe(e,i){this.dyn_tree=e,this.max_code=0,this.stat_desc=i}$(Te);const We=e=>e<256?ae[e]:ae[256+(e>>>7)],re=(e,i)=>{e.pending_buf[e.pending++]=255&i,e.pending_buf[e.pending++]=i>>>8&255},j=(e,i,t)=>{e.bi_valid>16-t?(e.bi_buf|=i<>16-e.bi_valid,e.bi_valid+=t-16):(e.bi_buf|=i<{j(e,t[2*i],t[2*i+1])},Ie=(e,i)=>{let t=0;do{t|=1&e,e>>>=1,t<<=1}while(--i>0);return t>>>1},Qe=(e,i,t)=>{const a=new Array(16);let s,r,d=0;for(s=1;s<=15;s++)a[s]=d=d+t[s-1]<<1;for(r=0;r<=i;r++){let o=e[2*r+1];0!==o&&(e[2*r]=Ie(a[o]++,o))}},_e=e=>{let i;for(i=0;i<286;i++)e.dyn_ltree[2*i]=0;for(i=0;i<30;i++)e.dyn_dtree[2*i]=0;for(i=0;i<19;i++)e.bl_tree[2*i]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0},$e=e=>{e.bi_valid>8?re(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},et=(e,i,t,a)=>{const s=2*i,r=2*t;return e[s]{const a=e.heap[t];let s=t<<1;for(;s<=e.heap_len&&(s{let a,s,r,d,o=0;if(0!==e.last_lit)do{a=e.pending_buf[e.d_buf+2*o]<<8|e.pending_buf[e.d_buf+2*o+1],s=e.pending_buf[e.l_buf+o],o++,0===a?G(e,s,i):(r=ie[s],G(e,r+256+1,i),d=Ae[r],0!==d&&(s-=Ue[r],j(e,s,d)),a--,r=We(a),G(e,r,t),d=ve[r],0!==d&&(a-=Te[r],j(e,a,d)))}while(o{const t=i.dyn_tree,a=i.stat_desc.static_tree,s=i.stat_desc.has_stree,r=i.stat_desc.elems;let d,o,f,l=-1;for(e.heap_len=0,e.heap_max=573,d=0;d>1;d>=1;d--)Le(e,t,d);f=r;do{d=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Le(e,t,1),o=e.heap[1],e.heap[--e.heap_max]=d,e.heap[--e.heap_max]=o,t[2*f]=t[2*d]+t[2*o],e.depth[f]=(e.depth[d]>=e.depth[o]?e.depth[d]:e.depth[o])+1,t[2*d+1]=t[2*o+1]=f,e.heap[1]=f++,Le(e,t,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((u,y)=>{const b=y.dyn_tree,c=y.max_code,U=y.stat_desc.static_tree,k=y.stat_desc.has_stree,w=y.stat_desc.extra_bits,q=y.stat_desc.extra_base,P=y.stat_desc.max_length;let m,h,g,p,v,x,T=0;for(p=0;p<=15;p++)u.bl_count[p]=0;for(b[2*u.heap[u.heap_max]+1]=0,m=u.heap_max+1;m<573;m++)h=u.heap[m],p=b[2*b[2*h+1]+1]+1,p>P&&(p=P,T++),b[2*h+1]=p,h>c||(u.bl_count[p]++,v=0,h>=q&&(v=w[h-q]),x=b[2*h],u.opt_len+=x*(p+v),k&&(u.static_len+=x*(U[2*h+1]+v)));if(0!==T){do{for(p=P-1;0===u.bl_count[p];)p--;u.bl_count[p]--,u.bl_count[p+1]+=2,u.bl_count[P]--,T-=2}while(T>0);for(p=P;0!==p;p--)for(h=u.bl_count[p];0!==h;)g=u.heap[--m],g>c||(b[2*g+1]!==p&&(u.opt_len+=(p-b[2*g+1])*b[2*g],b[2*g+1]=p),h--)}})(e,i),Qe(t,l,e.bl_count)},nt=(e,i,t)=>{let a,s,r=-1,d=i[1],o=0,f=7,l=4;for(0===d&&(f=138,l=3),i[2*(t+1)+1]=65535,a=0;a<=t;a++)s=d,d=i[2*(a+1)+1],++o{let a,s,r=-1,d=i[1],o=0,f=7,l=4;for(0===d&&(f=138,l=3),a=0;a<=t;a++)if(s=d,d=i[2*(a+1)+1],!(++o{var s,r,d;j(e,0+(a?1:0),3),r=i,d=t,$e(s=e),re(s,d),re(s,~d),s.pending_buf.set(s.window.subarray(r,r+d),s.pending),s.pending+=d};var Dt={_tr_init:e=>{at||((()=>{let i,t,a,s,r;const d=new Array(16);for(a=0,s=0;s<28;s++)for(Ue[s]=a,i=0;i<1<>=7;s<30;s++)for(Te[s]=r<<7,i=0;i<1<{let s,r,d=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(o=>{let f,l=4093624447;for(f=0;f<=31;f++,l>>>=1)if(1&l&&0!==o.dyn_ltree[2*f])return 0;if(0!==o.dyn_ltree[18]||0!==o.dyn_ltree[20]||0!==o.dyn_ltree[26])return 1;for(f=32;f<256;f++)if(0!==o.dyn_ltree[2*f])return 1;return 0})(e)),Se(e,e.l_desc),Se(e,e.d_desc),d=(o=>{let f;for(nt(o,o.dyn_ltree,o.l_desc.max_code),nt(o,o.dyn_dtree,o.d_desc.max_code),Se(o,o.bl_desc),f=18;f>=3&&0===o.bl_tree[2*Fe[f]+1];f--);return o.opt_len+=3*(f+1)+5+5+4,f})(e),s=e.opt_len+3+7>>>3,r=e.static_len+3+7>>>3,r<=s&&(s=r)):s=r=t+5,t+4<=s&&-1!==i?it(e,i,t,a):4===e.strategy||r===s?(j(e,2+(a?1:0),3),tt(e,D,se)):(j(e,4+(a?1:0),3),((o,f,l,u)=>{let y;for(j(o,f-257,5),j(o,l-1,5),j(o,u-4,4),y=0;y(e.pending_buf[e.d_buf+2*e.last_lit]=i>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&i,e.pending_buf[e.l_buf+e.last_lit]=255&t,e.last_lit++,0===i?e.dyn_ltree[2*t]++:(e.matches++,i--,e.dyn_ltree[2*(ie[t]+256+1)]++,e.dyn_dtree[2*We(i)]++),e.last_lit===e.lit_bufsize-1),_tr_align:e=>{var i;j(e,2,3),G(e,256,D),16===(i=e).bi_valid?(re(i,i.bi_buf),i.bi_buf=0,i.bi_valid=0):i.bi_valid>=8&&(i.pending_buf[i.pending++]=255&i.bi_buf,i.bi_buf>>=8,i.bi_valid-=8)}},oe=(e,i,t,a)=>{let s=65535&e|0,r=e>>>16&65535|0,d=0;for(;0!==t;){d=t>2e3?2e3:t,t-=d;do{s=s+i[a++]|0,r=r+s|0}while(--d);s%=65521,r%=65521}return s|r<<16|0};const Bt=new Uint32Array((()=>{let e,i=[];for(var t=0;t<256;t++){e=t;for(var a=0;a<8;a++)e=1&e?3988292384^e>>>1:e>>>1;i[t]=e}return i})());var L=(e,i,t,a)=>{const s=Bt,r=a+t;e^=-1;for(let d=a;d>>8^s[255&(e^i[d])];return-1^e},ee={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},le={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Vt,_tr_stored_block:Et,_tr_flush_block:Ft,_tr_tally:E,_tr_align:Yt}=Dt,{Z_NO_FLUSH:I,Z_PARTIAL_FLUSH:Jt,Z_FULL_FLUSH:Ht,Z_FINISH:F,Z_BLOCK:rt,Z_OK:R,Z_STREAM_END:ot,Z_STREAM_ERROR:N,Z_DATA_ERROR:Wt,Z_BUF_ERROR:Xe,Z_DEFAULT_COMPRESSION:It,Z_FILTERED:Qt,Z_HUFFMAN_ONLY:we,Z_RLE:_t,Z_FIXED:$t,Z_UNKNOWN:tn,Z_DEFLATED:xe}=le,Y=(e,i)=>(e.msg=ee[i],i),lt=e=>(e<<1)-(e>4?9:0),J=e=>{let i=e.length;for(;--i>=0;)e[i]=0};let H=(e,i,t)=>(i<{const i=e.state;let t=i.pending;t>e.avail_out&&(t=e.avail_out),0!==t&&(e.output.set(i.pending_buf.subarray(i.pending_out,i.pending_out+t),e.next_out),e.next_out+=t,i.pending_out+=t,e.total_out+=t,e.avail_out-=t,i.pending-=t,0===i.pending&&(i.pending_out=0))},S=(e,i)=>{Ft(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,i),e.block_start=e.strstart,W(e.strm)},A=(e,i)=>{e.pending_buf[e.pending++]=i},de=(e,i)=>{e.pending_buf[e.pending++]=i>>>8&255,e.pending_buf[e.pending++]=255&i},nn=(e,i,t,a)=>{let s=e.avail_in;return s>a&&(s=a),0===s?0:(e.avail_in-=s,i.set(e.input.subarray(e.next_in,e.next_in+s),t),1===e.state.wrap?e.adler=oe(e.adler,i,s,t):2===e.state.wrap&&(e.adler=L(e.adler,i,s,t)),e.next_in+=s,e.total_in+=s,s)},dt=(e,i)=>{let t,a,s=e.max_chain_length,r=e.strstart,d=e.prev_length,o=e.nice_match;const f=e.strstart>e.w_size-262?e.strstart-(e.w_size-262):0,l=e.window,u=e.w_mask,y=e.prev,b=e.strstart+258;let c=l[r+d-1],U=l[r+d];e.prev_length>=e.good_match&&(s>>=2),o>e.lookahead&&(o=e.lookahead);do{if(t=i,l[t+d]===U&&l[t+d-1]===c&&l[t]===l[r]&&l[++t]===l[r+1]){r+=2,t++;do{}while(l[++r]===l[++t]&&l[++r]===l[++t]&&l[++r]===l[++t]&&l[++r]===l[++t]&&l[++r]===l[++t]&&l[++r]===l[++t]&&l[++r]===l[++t]&&l[++r]===l[++t]&&rd){if(e.match_start=i,d=a,a>=o)break;c=l[r+d-1],U=l[r+d]}}}while((i=y[i&u])>f&&0!=--s);return d<=e.lookahead?d:e.lookahead},Q=e=>{const i=e.w_size;let t,a,s,r,d;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=i+(i-262)){e.window.set(e.window.subarray(i,i+i),0),e.match_start-=i,e.strstart-=i,e.block_start-=i,a=e.hash_size,t=a;do{s=e.head[--t],e.head[t]=s>=i?s-i:0}while(--a);a=i,t=a;do{s=e.prev[--t],e.prev[t]=s>=i?s-i:0}while(--a);r+=i}if(0===e.strm.avail_in)break;if(a=nn(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=a,e.lookahead+e.insert>=3)for(d=e.strstart-e.insert,e.ins_h=e.window[d],e.ins_h=H(e,e.ins_h,e.window[d+1]);e.insert&&(e.ins_h=H(e,e.ins_h,e.window[d+3-1]),e.prev[d&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=d,d++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<262&&0!==e.strm.avail_in)},je=(e,i)=>{let t,a;for(;;){if(e.lookahead<262){if(Q(e),e.lookahead<262&&i===I)return 1;if(0===e.lookahead)break}if(t=0,e.lookahead>=3&&(e.ins_h=H(e,e.ins_h,e.window[e.strstart+3-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==t&&e.strstart-t<=e.w_size-262&&(e.match_length=dt(e,t)),e.match_length>=3)if(a=E(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=H(e,e.ins_h,e.window[e.strstart+3-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=H(e,e.ins_h,e.window[e.strstart+1]);else a=E(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(a&&(S(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,i===F?(S(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(S(e,!1),0===e.strm.avail_out)?1:2},te=(e,i)=>{let t,a,s;for(;;){if(e.lookahead<262){if(Q(e),e.lookahead<262&&i===I)return 1;if(0===e.lookahead)break}if(t=0,e.lookahead>=3&&(e.ins_h=H(e,e.ins_h,e.window[e.strstart+3-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==t&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){s=e.strstart+e.lookahead-3,a=E(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=s&&(e.ins_h=H(e,e.ins_h,e.window[e.strstart+3-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,a&&(S(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(a=E(e,0,e.window[e.strstart-1]),a&&S(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(a=E(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,i===F?(S(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(S(e,!1),0===e.strm.avail_out)?1:2};function K(e,i,t,a,s){this.good_length=e,this.max_lazy=i,this.nice_length=t,this.max_chain=a,this.func=s}const ue=[new K(0,0,0,0,(e,i)=>{let t=65535;for(t>e.pending_buf_size-5&&(t=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Q(e),0===e.lookahead&&i===I)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;const a=e.block_start+t;if((0===e.strstart||e.strstart>=a)&&(e.lookahead=e.strstart-a,e.strstart=a,S(e,!1),0===e.strm.avail_out)||e.strstart-e.block_start>=e.w_size-262&&(S(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,i===F?(S(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&S(e,!1),1)}),new K(4,4,8,4,je),new K(4,5,16,8,je),new K(4,6,32,32,je),new K(4,4,16,16,te),new K(8,16,32,32,te),new K(8,16,128,128,te),new K(8,32,128,256,te),new K(32,128,258,1024,te),new K(32,258,258,4096,te)];function sn(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=xe,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),J(this.dyn_ltree),J(this.dyn_dtree),J(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),J(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),J(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const ht=e=>{const i=(e=>{if(!e||!e.state)return Y(e,N);e.total_in=e.total_out=0,e.data_type=tn;const i=e.state;return i.pending=0,i.pending_out=0,i.wrap<0&&(i.wrap=-i.wrap),i.status=i.wrap?42:113,e.adler=2===i.wrap?0:1,i.last_flush=I,Vt(i),R})(e);var t;return i===R&&((t=e.state).window_size=2*t.w_size,J(t.head),t.max_lazy_match=ue[t.level].max_lazy,t.good_match=ue[t.level].good_length,t.nice_match=ue[t.level].nice_length,t.max_chain_length=ue[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=2,t.match_available=0,t.ins_h=0),i};var he_deflateInit2=(e,i,t,a,s,r)=>{if(!e)return N;let d=1;if(i===It&&(i=6),a<0?(d=0,a=-a):a>15&&(d=2,a-=16),s<1||s>9||t!==xe||a<8||a>15||i<0||i>9||r<0||r>$t)return Y(e,N);8===a&&(a=9);const o=new sn;return e.state=o,o.strm=e,o.wrap=d,o.gzhead=null,o.w_bits=a,o.w_size=1<{let t,a;if(!e||!e.state||i>rt||i<0)return e?Y(e,N):N;const s=e.state;if(!e.output||!e.input&&0!==e.avail_in||666===s.status&&i!==F)return Y(e,0===e.avail_out?Xe:N);s.strm=e;const r=s.last_flush;if(s.last_flush=i,42===s.status)if(2===s.wrap)e.adler=0,A(s,31),A(s,139),A(s,8),s.gzhead?(A(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(s.gzhead.extra?4:0)+(s.gzhead.name?8:0)+(s.gzhead.comment?16:0)),A(s,255&s.gzhead.time),A(s,s.gzhead.time>>8&255),A(s,s.gzhead.time>>16&255),A(s,s.gzhead.time>>24&255),A(s,9===s.level?2:s.strategy>=we||s.level<2?4:0),A(s,255&s.gzhead.os),s.gzhead.extra&&s.gzhead.extra.length&&(A(s,255&s.gzhead.extra.length),A(s,s.gzhead.extra.length>>8&255)),s.gzhead.hcrc&&(e.adler=L(e.adler,s.pending_buf,s.pending,0)),s.gzindex=0,s.status=69):(A(s,0),A(s,0),A(s,0),A(s,0),A(s,0),A(s,9===s.level?2:s.strategy>=we||s.level<2?4:0),A(s,3),s.status=113);else{let d=xe+(s.w_bits-8<<4)<<8,o=-1;o=s.strategy>=we||s.level<2?0:s.level<6?1:6===s.level?2:3,d|=o<<6,0!==s.strstart&&(d|=32),d+=31-d%31,s.status=113,de(s,d),0!==s.strstart&&(de(s,e.adler>>>16),de(s,65535&e.adler)),e.adler=1}if(69===s.status)if(s.gzhead.extra){for(t=s.pending;s.gzindex<(65535&s.gzhead.extra.length)&&(s.pending!==s.pending_buf_size||(s.gzhead.hcrc&&s.pending>t&&(e.adler=L(e.adler,s.pending_buf,s.pending-t,t)),W(e),t=s.pending,s.pending!==s.pending_buf_size));)A(s,255&s.gzhead.extra[s.gzindex]),s.gzindex++;s.gzhead.hcrc&&s.pending>t&&(e.adler=L(e.adler,s.pending_buf,s.pending-t,t)),s.gzindex===s.gzhead.extra.length&&(s.gzindex=0,s.status=73)}else s.status=73;if(73===s.status)if(s.gzhead.name){t=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>t&&(e.adler=L(e.adler,s.pending_buf,s.pending-t,t)),W(e),t=s.pending,s.pending===s.pending_buf_size)){a=1;break}a=s.gzindext&&(e.adler=L(e.adler,s.pending_buf,s.pending-t,t)),0===a&&(s.gzindex=0,s.status=91)}else s.status=91;if(91===s.status)if(s.gzhead.comment){t=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>t&&(e.adler=L(e.adler,s.pending_buf,s.pending-t,t)),W(e),t=s.pending,s.pending===s.pending_buf_size)){a=1;break}a=s.gzindext&&(e.adler=L(e.adler,s.pending_buf,s.pending-t,t)),0===a&&(s.status=103)}else s.status=103;if(103===s.status&&(s.gzhead.hcrc?(s.pending+2>s.pending_buf_size&&W(e),s.pending+2<=s.pending_buf_size&&(A(s,255&e.adler),A(s,e.adler>>8&255),e.adler=0,s.status=113)):s.status=113),0!==s.pending){if(W(e),0===e.avail_out)return s.last_flush=-1,R}else if(0===e.avail_in&<(i)<=lt(r)&&i!==F)return Y(e,Xe);if(666===s.status&&0!==e.avail_in)return Y(e,Xe);if(0!==e.avail_in||0!==s.lookahead||i!==I&&666!==s.status){let d=s.strategy===we?((o,f)=>{let l;for(;;){if(0===o.lookahead&&(Q(o),0===o.lookahead)){if(f===I)return 1;break}if(o.match_length=0,l=E(o,0,o.window[o.strstart]),o.lookahead--,o.strstart++,l&&(S(o,!1),0===o.strm.avail_out))return 1}return o.insert=0,f===F?(S(o,!0),0===o.strm.avail_out?3:4):o.last_lit&&(S(o,!1),0===o.strm.avail_out)?1:2})(s,i):s.strategy===_t?((o,f)=>{let l,u,y,b;const c=o.window;for(;;){if(o.lookahead<=258){if(Q(o),o.lookahead<=258&&f===I)return 1;if(0===o.lookahead)break}if(o.match_length=0,o.lookahead>=3&&o.strstart>0&&(y=o.strstart-1,u=c[y],u===c[++y]&&u===c[++y]&&u===c[++y])){b=o.strstart+258;do{}while(u===c[++y]&&u===c[++y]&&u===c[++y]&&u===c[++y]&&u===c[++y]&&u===c[++y]&&u===c[++y]&&u===c[++y]&&yo.lookahead&&(o.match_length=o.lookahead)}if(o.match_length>=3?(l=E(o,1,o.match_length-3),o.lookahead-=o.match_length,o.strstart+=o.match_length,o.match_length=0):(l=E(o,0,o.window[o.strstart]),o.lookahead--,o.strstart++),l&&(S(o,!1),0===o.strm.avail_out))return 1}return o.insert=0,f===F?(S(o,!0),0===o.strm.avail_out?3:4):o.last_lit&&(S(o,!1),0===o.strm.avail_out)?1:2})(s,i):ue[s.level].func(s,i);if(3!==d&&4!==d||(s.status=666),1===d||3===d)return 0===e.avail_out&&(s.last_flush=-1),R;if(2===d&&(i===Jt?Yt(s):i!==rt&&(Et(s,0,0,!1),i===Ht&&(J(s.head),0===s.lookahead&&(s.strstart=0,s.block_start=0,s.insert=0))),W(e),0===e.avail_out))return s.last_flush=-1,R}return i!==F?R:s.wrap<=0?ot:(2===s.wrap?(A(s,255&e.adler),A(s,e.adler>>8&255),A(s,e.adler>>16&255),A(s,e.adler>>24&255),A(s,255&e.total_in),A(s,e.total_in>>8&255),A(s,e.total_in>>16&255),A(s,e.total_in>>24&255)):(de(s,e.adler>>>16),de(s,65535&e.adler)),W(e),s.wrap>0&&(s.wrap=-s.wrap),0!==s.pending?R:ot)},he_deflateEnd=e=>{if(!e||!e.state)return N;const i=e.state.status;return 42!==i&&69!==i&&73!==i&&91!==i&&103!==i&&113!==i&&666!==i?Y(e,N):(e.state=null,113===i?Y(e,Wt):R)};const an=(e,i)=>Object.prototype.hasOwnProperty.call(e,i);var ct=function(e){const i=Array.prototype.slice.call(arguments,1);for(;i.length;){const t=i.shift();if(t){if("object"!=typeof t)throw new TypeError(t+"must be non-object");for(const a in t)an(t,a)&&(e[a]=t[a])}}return e},pt=e=>{let i=0;for(let a=0,s=e.length;a=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;me[254]=me[254]=1;var Ne=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let i,t,a,s,r,d=e.length,o=0;for(s=0;s>>6,i[r++]=128|63&t):t<65536?(i[r++]=224|t>>>12,i[r++]=128|t>>>6&63,i[r++]=128|63&t):(i[r++]=240|t>>>18,i[r++]=128|t>>>12&63,i[r++]=128|t>>>6&63,i[r++]=128|63&t);return i},rn=(e,i)=>{const t=i||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,i));let a,s;const r=new Array(2*t);for(s=0,a=0;a4)r[s++]=65533,a+=o-1;else{for(d&=2===o?31:3===o?15:7;o>1&&a1?r[s++]=65533:d<65536?r[s++]=d:(d-=65536,r[s++]=55296|d>>10&1023,r[s++]=56320|1023&d)}}return((d,o)=>{if(o<65534&&d.subarray&&ft)return String.fromCharCode.apply(null,d.length===o?d:d.subarray(0,o));let f="";for(let l=0;l{(i=i||e.length)>e.length&&(i=e.length);let t=i-1;for(;t>=0&&128==(192&e[t]);)t--;return t<0||0===t?i:t+me[e[t]]>i?t:i},gt=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const bt=Object.prototype.toString,{Z_NO_FLUSH:ln,Z_SYNC_FLUSH:dn,Z_FULL_FLUSH:un,Z_FINISH:hn,Z_OK:ye,Z_STREAM_END:mn,Z_DEFAULT_COMPRESSION:cn,Z_DEFAULT_STRATEGY:pn,Z_DEFLATED:fn}=le;function Ce(e){this.options=ct({level:cn,method:fn,chunkSize:16384,windowBits:15,memLevel:8,strategy:pn},e||{});let i=this.options;i.raw&&i.windowBits>0?i.windowBits=-i.windowBits:i.gzip&&i.windowBits>0&&i.windowBits<16&&(i.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new gt,this.strm.avail_out=0;let t=he_deflateInit2(this.strm,i.level,i.method,i.windowBits,i.memLevel,i.strategy);if(t!==ye)throw new Error(ee[t]);if(i.header&&((e,i)=>{e&&e.state&&(2!==e.state.wrap||(e.state.gzhead=i))})(this.strm,i.header),i.dictionary){let a;if(a="string"==typeof i.dictionary?Ne(i.dictionary):"[object ArrayBuffer]"===bt.call(i.dictionary)?new Uint8Array(i.dictionary):i.dictionary,t=((e,i)=>{let t=i.length;if(!e||!e.state)return N;const a=e.state,s=a.wrap;if(2===s||1===s&&42!==a.status||a.lookahead)return N;if(1===s&&(e.adler=oe(e.adler,i,t,0)),a.wrap=0,t>=a.w_size){0===s&&(J(a.head),a.strstart=0,a.block_start=0,a.insert=0);let f=new Uint8Array(a.w_size);f.set(i.subarray(t-a.w_size,t),0),i=f,t=a.w_size}const r=e.avail_in,d=e.next_in,o=e.input;for(e.avail_in=t,e.next_in=0,e.input=i,Q(a);a.lookahead>=3;){let f=a.strstart,l=a.lookahead-2;do{a.ins_h=H(a,a.ins_h,a.window[f+3-1]),a.prev[f&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=f,f++}while(--l);a.strstart=f,a.lookahead=2,Q(a)}return a.strstart+=a.lookahead,a.block_start=a.strstart,a.insert=a.lookahead,a.lookahead=0,a.match_length=a.prev_length=2,a.match_available=0,e.next_in=d,e.input=o,e.avail_in=r,a.wrap=s,R})(this.strm,a),t!==ye)throw new Error(ee[t]);this._dict_set=!0}}Ce.prototype.push=function(e,i){const t=this.strm,a=this.options.chunkSize;let s,r;if(this.ended)return!1;for(r=i===~~i?i:!0===i?hn:ln,t.input="string"==typeof e?Ne(e):"[object ArrayBuffer]"===bt.call(e)?new Uint8Array(e):e,t.next_in=0,t.avail_in=t.input.length;;)if(0===t.avail_out&&(t.output=new Uint8Array(a),t.next_out=0,t.avail_out=a),(r===dn||r===un)&&t.avail_out<=6)this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;else{if(s=he_deflate(t,r),s===mn)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),s=he_deflateEnd(this.strm),this.onEnd(s),this.ended=!0,s===ye;if(0!==t.avail_out){if(r>0&&t.next_out>0)this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;else if(0===t.avail_in)break}else this.onData(t.output)}return!0},Ce.prototype.onData=function(e){this.chunks.push(e)},Ce.prototype.onEnd=function(e){e===ye&&(this.result=pt(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var gn=function(e,i){let t,a,s,r,d,o,f,l,u,y,b,c,U,k,w,q,P,m,h,g,p,v,x,T;const Z=e.state;t=e.next_in,x=e.input,a=t+(e.avail_in-5),s=e.next_out,T=e.output,r=s-(i-e.avail_out),d=s+(e.avail_out-257),o=Z.dmax,f=Z.wsize,l=Z.whave,u=Z.wnext,y=Z.window,b=Z.hold,c=Z.bits,U=Z.lencode,k=Z.distcode,w=(1<>>24,b>>>=m,c-=m,m=P>>>16&255,0===m)T[s++]=65535&P;else{if(!(16&m)){if(0==(64&m)){P=U[(65535&P)+(b&(1<>>=m,c-=m),c<15&&(b+=x[t++]<>>24,b>>>=m,c-=m,m=P>>>16&255,!(16&m)){if(0==(64&m)){P=k[(65535&P)+(b&(1<o){e.msg="invalid distance too far back",Z.mode=30;break e}if(b>>>=m,c-=m,m=s-r,g>m){if(m=g-m,m>l&&Z.sane){e.msg="invalid distance too far back",Z.mode=30;break e}if(p=0,v=y,0===u){if(p+=f-m,m2;)T[s++]=v[p++],T[s++]=v[p++],T[s++]=v[p++],h-=3;h&&(T[s++]=v[p++],h>1&&(T[s++]=v[p++]))}else{p=s-g;do{T[s++]=T[p++],T[s++]=T[p++],T[s++]=T[p++],h-=3}while(h>2);h&&(T[s++]=T[p++],h>1&&(T[s++]=T[p++]))}break}}break}}while(t>3,t-=h,c-=h<<3,b&=(1<{const f=o.bits;let l,u,y,b,c,U,k=0,w=0,q=0,P=0,m=0,h=0,g=0,p=0,v=0,x=0,T=null,Z=0;const z=new Uint16Array(16),O=new Uint16Array(16);let Ct,ke,ze,qe=null,Gt=0;for(k=0;k<=15;k++)z[k]=0;for(w=0;w=1&&0===z[P];P--);if(m>P&&(m=P),0===P)return s[r++]=20971520,s[r++]=20971520,o.bits=1,0;for(q=1;q0&&(0===e||1!==P))return-1;for(O[1]=0,k=1;k<15;k++)O[k+1]=O[k]+z[k];for(w=0;w852||2===e&&v>592)return 1;for(;;){Ct=k-g,d[w]U?(ke=qe[Gt+d[w]],ze=T[Z+d[w]]):(ke=96,ze=0),l=1<>g)+u]=Ct<<24|ke<<16|ze|0}while(0!==u);for(l=1<>=1;if(0!==l?(x&=l-1,x+=l):x=0,w++,0==--z[k]){if(k===P)break;k=i[t+d[w]]}if(k>m&&(x&b)!==y){for(0===g&&(g=m),c+=q,h=k-g,p=1<852||2===e&&v>592)return 1;y=x&b,s[y]=m<<24|h<<16|c-r|0}}return 0!==x&&(s[c+x]=k-g<<24|64<<16|0),o.bits=m,0};const{Z_FINISH:vt,Z_BLOCK:xn,Z_TREES:Pe,Z_OK:_,Z_STREAM_END:yn,Z_NEED_DICT:Pn,Z_STREAM_ERROR:C,Z_DATA_ERROR:Tt,Z_MEM_ERROR:wt,Z_BUF_ERROR:Zn,Z_DEFLATED:xt}=le,yt=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function kn(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Zt=e=>{if(!e||!e.state)return C;const i=e.state;return i.wsize=0,i.whave=0,i.wnext=0,(e=>{if(!e||!e.state)return C;const i=e.state;return e.total_in=e.total_out=i.total=0,e.msg="",i.wrap&&(e.adler=1&i.wrap),i.mode=1,i.last=0,i.havedict=0,i.dmax=32768,i.head=null,i.hold=0,i.bits=0,i.lencode=i.lendyn=new Int32Array(852),i.distcode=i.distdyn=new Int32Array(592),i.sane=1,i.back=-1,_})(e)};let Ge,Re,qt=!0;const zn=e=>{if(qt){Ge=new Int32Array(512),Re=new Int32Array(32);let i=0;for(;i<144;)e.lens[i++]=8;for(;i<256;)e.lens[i++]=9;for(;i<280;)e.lens[i++]=7;for(;i<288;)e.lens[i++]=8;for(ce(1,e.lens,0,288,Ge,0,e.work,{bits:9}),i=0;i<32;)e.lens[i++]=5;ce(2,e.lens,0,32,Re,0,e.work,{bits:5}),qt=!1}e.lencode=Ge,e.lenbits=9,e.distcode=Re,e.distbits=5},At=(e,i,t,a)=>{let s;const r=e.state;return null===r.window&&(r.wsize=1<=r.wsize?(r.window.set(i.subarray(t-r.wsize,t),0),r.wnext=0,r.whave=r.wsize):(s=r.wsize-r.wnext,s>a&&(s=a),r.window.set(i.subarray(t-a,t-a+s),r.wnext),(a-=s)?(r.window.set(i.subarray(t-a,t),0),r.wnext=a,r.whave=r.wsize):(r.wnext+=s,r.wnext===r.wsize&&(r.wnext=0),r.whave{if(!e)return C;const t=new kn;e.state=t,t.window=null;const a=((e,i)=>{let t;if(!e||!e.state)return C;const a=e.state;return i<0?(t=0,i=-i):(t=1+(i>>4),i<48&&(i&=15)),i&&(i<8||i>15)?C:(null!==a.window&&a.wbits!==i&&(a.window=null),a.wrap=t,a.wbits=i,Zt(e))})(e,i);return a!==_&&(e.state=null),a},B_inflate=(e,i)=>{let t,a,s,r,d,o,f,l,u,y,b,c,U,k,w,q,P,m,h,g,p,v,x=0;const T=new Uint8Array(4);let Z,z;const O=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return C;t=e.state,12===t.mode&&(t.mode=13),d=e.next_out,s=e.output,f=e.avail_out,r=e.next_in,a=e.input,o=e.avail_in,l=t.hold,u=t.bits,y=o,b=f,v=_;e:for(;;)switch(t.mode){case 1:if(0===t.wrap){t.mode=13;break}for(;u<16;){if(0===o)break e;o--,l+=a[r++]<>>8&255,t.check=L(t.check,T,2,0),l=0,u=0,t.mode=2;break}if(t.flags=0,t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&l)<<8)+(l>>8))%31){e.msg="incorrect header check",t.mode=30;break}if((15&l)!==xt){e.msg="unknown compression method",t.mode=30;break}if(l>>>=4,u-=4,p=8+(15&l),0===t.wbits)t.wbits=p;else if(p>t.wbits){e.msg="invalid window size",t.mode=30;break}t.dmax=1<>8&1),512&t.flags&&(T[0]=255&l,T[1]=l>>>8&255,t.check=L(t.check,T,2,0)),l=0,u=0,t.mode=3;case 3:for(;u<32;){if(0===o)break e;o--,l+=a[r++]<>>8&255,T[2]=l>>>16&255,T[3]=l>>>24&255,t.check=L(t.check,T,4,0)),l=0,u=0,t.mode=4;case 4:for(;u<16;){if(0===o)break e;o--,l+=a[r++]<>8),512&t.flags&&(T[0]=255&l,T[1]=l>>>8&255,t.check=L(t.check,T,2,0)),l=0,u=0,t.mode=5;case 5:if(1024&t.flags){for(;u<16;){if(0===o)break e;o--,l+=a[r++]<>>8&255,t.check=L(t.check,T,2,0)),l=0,u=0}else t.head&&(t.head.extra=null);t.mode=6;case 6:if(1024&t.flags&&(c=t.length,c>o&&(c=o),c&&(t.head&&(p=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(a.subarray(r,r+c),p)),512&t.flags&&(t.check=L(t.check,a,c,r)),o-=c,r+=c,t.length-=c),t.length))break e;t.length=0,t.mode=7;case 7:if(2048&t.flags){if(0===o)break e;c=0;do{p=a[r+c++],t.head&&p&&t.length<65536&&(t.head.name+=String.fromCharCode(p))}while(p&&c>9&1,t.head.done=!0),e.adler=t.check=0,t.mode=12;break;case 10:for(;u<32;){if(0===o)break e;o--,l+=a[r++]<>>=7&u,u-=7&u,t.mode=27;break}for(;u<3;){if(0===o)break e;o--,l+=a[r++]<>>=1,u-=1,3&l){case 0:t.mode=14;break;case 1:if(zn(t),t.mode=20,i===Pe){l>>>=2,u-=2;break e}break;case 2:t.mode=17;break;case 3:e.msg="invalid block type",t.mode=30}l>>>=2,u-=2;break;case 14:for(l>>>=7&u,u-=7&u;u<32;){if(0===o)break e;o--,l+=a[r++]<>>16^65535)){e.msg="invalid stored block lengths",t.mode=30;break}if(t.length=65535&l,l=0,u=0,t.mode=15,i===Pe)break e;case 15:t.mode=16;case 16:if(c=t.length,c){if(c>o&&(c=o),c>f&&(c=f),0===c)break e;s.set(a.subarray(r,r+c),d),o-=c,r+=c,f-=c,d+=c,t.length-=c;break}t.mode=12;break;case 17:for(;u<14;){if(0===o)break e;o--,l+=a[r++]<>>=5,u-=5,t.ndist=1+(31&l),l>>>=5,u-=5,t.ncode=4+(15&l),l>>>=4,u-=4,t.nlen>286||t.ndist>30){e.msg="too many length or distance symbols",t.mode=30;break}t.have=0,t.mode=18;case 18:for(;t.have>>=3,u-=3}for(;t.have<19;)t.lens[O[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,Z={bits:t.lenbits},v=ce(0,t.lens,0,19,t.lencode,0,t.work,Z),t.lenbits=Z.bits,v){e.msg="invalid code lengths set",t.mode=30;break}t.have=0,t.mode=19;case 19:for(;t.have>>24,q=x>>>16&255,P=65535&x,!(w<=u);){if(0===o)break e;o--,l+=a[r++]<>>=w,u-=w,t.lens[t.have++]=P;else{if(16===P){for(z=w+2;u>>=w,u-=w,0===t.have){e.msg="invalid bit length repeat",t.mode=30;break}p=t.lens[t.have-1],c=3+(3&l),l>>>=2,u-=2}else if(17===P){for(z=w+3;u>>=w,u-=w,p=0,c=3+(7&l),l>>>=3,u-=3}else{for(z=w+7;u>>=w,u-=w,p=0,c=11+(127&l),l>>>=7,u-=7}if(t.have+c>t.nlen+t.ndist){e.msg="invalid bit length repeat",t.mode=30;break}for(;c--;)t.lens[t.have++]=p}}if(30===t.mode)break;if(0===t.lens[256]){e.msg="invalid code -- missing end-of-block",t.mode=30;break}if(t.lenbits=9,Z={bits:t.lenbits},v=ce(1,t.lens,0,t.nlen,t.lencode,0,t.work,Z),t.lenbits=Z.bits,v){e.msg="invalid literal/lengths set",t.mode=30;break}if(t.distbits=6,t.distcode=t.distdyn,Z={bits:t.distbits},v=ce(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,Z),t.distbits=Z.bits,v){e.msg="invalid distances set",t.mode=30;break}if(t.mode=20,i===Pe)break e;case 20:t.mode=21;case 21:if(o>=6&&f>=258){e.next_out=d,e.avail_out=f,e.next_in=r,e.avail_in=o,t.hold=l,t.bits=u,gn(e,b),d=e.next_out,s=e.output,f=e.avail_out,r=e.next_in,a=e.input,o=e.avail_in,l=t.hold,u=t.bits,12===t.mode&&(t.back=-1);break}for(t.back=0;x=t.lencode[l&(1<>>24,q=x>>>16&255,P=65535&x,!(w<=u);){if(0===o)break e;o--,l+=a[r++]<>m)],w=x>>>24,q=x>>>16&255,P=65535&x,!(m+w<=u);){if(0===o)break e;o--,l+=a[r++]<>>=m,u-=m,t.back+=m}if(l>>>=w,u-=w,t.back+=w,t.length=P,0===q){t.mode=26;break}if(32&q){t.back=-1,t.mode=12;break}if(64&q){e.msg="invalid literal/length code",t.mode=30;break}t.extra=15&q,t.mode=22;case 22:if(t.extra){for(z=t.extra;u>>=t.extra,u-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=23;case 23:for(;x=t.distcode[l&(1<>>24,q=x>>>16&255,P=65535&x,!(w<=u);){if(0===o)break e;o--,l+=a[r++]<>m)],w=x>>>24,q=x>>>16&255,P=65535&x,!(m+w<=u);){if(0===o)break e;o--,l+=a[r++]<>>=m,u-=m,t.back+=m}if(l>>>=w,u-=w,t.back+=w,64&q){e.msg="invalid distance code",t.mode=30;break}t.offset=P,t.extra=15&q,t.mode=24;case 24:if(t.extra){for(z=t.extra;u>>=t.extra,u-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){e.msg="invalid distance too far back",t.mode=30;break}t.mode=25;case 25:if(0===f)break e;if(c=b-f,t.offset>c){if(c=t.offset-c,c>t.whave&&t.sane){e.msg="invalid distance too far back",t.mode=30;break}c>t.wnext?(c-=t.wnext,U=t.wsize-c):U=t.wnext-c,c>t.length&&(c=t.length),k=t.window}else k=s,U=d-t.offset,c=t.length;c>f&&(c=f),f-=c,t.length-=c;do{s[d++]=k[U++]}while(--c);0===t.length&&(t.mode=21);break;case 26:if(0===f)break e;s[d++]=t.length,f--,t.mode=21;break;case 27:if(t.wrap){for(;u<32;){if(0===o)break e;o--,l|=a[r++]<{if(!e||!e.state)return C;let i=e.state;return i.window&&(i.window=null),e.state=null,_},B_inflateSetDictionary=(e,i)=>{const t=i.length;let a,s,r;return e&&e.state?(a=e.state,0!==a.wrap&&11!==a.mode?C:11===a.mode&&(s=1,s=oe(s,i,t,0),s!==a.check)?Tt:(r=At(e,i,t,t),r?(a.mode=31,wt):(a.havedict=1,_))):C},qn=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const Ut=Object.prototype.toString,{Z_NO_FLUSH:An,Z_FINISH:Un,Z_OK:pe,Z_STREAM_END:Ke,Z_NEED_DICT:De,Z_STREAM_ERROR:Mn,Z_DATA_ERROR:Mt,Z_MEM_ERROR:On}=le;function fe(e){this.options=ct({chunkSize:65536,windowBits:15,to:""},e||{});const i=this.options;i.raw&&i.windowBits>=0&&i.windowBits<16&&(i.windowBits=-i.windowBits,0===i.windowBits&&(i.windowBits=-15)),!(i.windowBits>=0&&i.windowBits<16)||e&&e.windowBits||(i.windowBits+=32),i.windowBits>15&&i.windowBits<48&&0==(15&i.windowBits)&&(i.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new gt,this.strm.avail_out=0;let t=B_inflateInit2(this.strm,i.windowBits);if(t!==pe)throw new Error(ee[t]);if(this.header=new qn,((e,i)=>{if(!e||!e.state)return C;const t=e.state;0==(2&t.wrap)||(t.head=i,i.done=!1)})(this.strm,this.header),i.dictionary&&("string"==typeof i.dictionary?i.dictionary=Ne(i.dictionary):"[object ArrayBuffer]"===Ut.call(i.dictionary)&&(i.dictionary=new Uint8Array(i.dictionary)),i.raw&&(t=B_inflateSetDictionary(this.strm,i.dictionary),t!==pe)))throw new Error(ee[t])}function Be(e,i){const t=new fe(i);if(t.push(e),t.err)throw t.msg||ee[t.err];return t.result}fe.prototype.push=function(e,i){const t=this.strm,a=this.options.chunkSize,s=this.options.dictionary;let r,d,o;if(this.ended)return!1;for(d=i===~~i?i:!0===i?Un:An,t.input="[object ArrayBuffer]"===Ut.call(e)?new Uint8Array(e):e,t.next_in=0,t.avail_in=t.input.length;;){for(0===t.avail_out&&(t.output=new Uint8Array(a),t.next_out=0,t.avail_out=a),r=B_inflate(t,d),r===De&&s&&(r=B_inflateSetDictionary(t,s),r===pe?r=B_inflate(t,d):r===Mt&&(r=De));t.avail_in>0&&r===Ke&&t.state.wrap>0&&0!==e[t.next_in];)B_inflateReset(t),r=B_inflate(t,d);switch(r){case Mn:case Mt:case De:case On:return this.onEnd(r),this.ended=!0,!1}if(o=t.avail_out,t.next_out&&(0===t.avail_out||r===Ke))if("string"===this.options.to){let f=on(t.output,t.next_out),l=t.next_out-f,u=rn(t.output,f);t.next_out=l,t.avail_out=a-l,l&&t.output.set(t.output.subarray(f,f+l),0),this.onData(u)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(r!==pe||0!==o){if(r===Ke)return r=B_inflateEnd(this.strm),this.onEnd(r),this.ended=!0,!0;if(0===t.avail_in)break}}return!0},fe.prototype.onData=function(e){this.chunks.push(e)},fe.prototype.onEnd=function(e){e===pe&&(this.result="string"===this.options.to?this.chunks.join(""):pt(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Ln={Inflate:fe,inflate:Be,inflateRaw:function(e,i){return(i=i||{}).raw=!0,Be(e,i)},ungzip:Be,constants:le};const{inflate:Sn}=Ln;var Ot=Sn;const Xn=URL.createObjectURL(new Blob([Ot(Uint8Array.from(atob("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"),e=>e.charCodeAt(0)),{to:"string"})],{type:"text/javascript"})),jn=Ot(Uint8Array.from(atob("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"),e=>e.charCodeAt(0))).buffer,Lt=function(e,i){if(!new.target)return Object.freeze(new Lt(e,i));Object.keys(i).forEach(s=>{this[s]=i[s]});const t=[],a=(s,r={})=>new Promise((d,o)=>{s.cb=r.each,t.push({resolve:d,reject:o,cb:r.call}),e.postMessage(s)});e.onmessage=s=>{const{cb:r,res:d}=s.data;r?t[0].cb(r):t.shift().resolve(d)},e.onerror=s=>{s.preventDefault(),t.shift().reject(s)},this.solve=(s,r)=>{const d={..."number"==typeof(r=r||s.options||{})?{msglev:r}:r,cb:null};return r.cb&&r.cb.call&&"function"==typeof r.cb.call?a({cmd:"solve",lp:s,opt:d},r.cb):a({cmd:"solve",lp:s,opt:d})},this.write=s=>a({cmd:"write",lp:s}),this.terminate=()=>e.terminate()};var Cn=M(8333),X=M(6471),St=M(4682),Ze=M(1043),n=M(4650),Ve=M(1576),ne=M(4006),Gn=M(4859),Xt=M(9549),Rn=M(7314),Kn=M(4144),Dn=M(455),ge=M(3546),Bn=M(266),Vn=M(3162),jt=M(811);function En(e,i){if(1&e&&(n.TgZ(0,"td"),n._uU(1),n.qZA()),2&e){const t=n.oxw().index,a=n.oxw(2);n.xp6(1),n.Oqu(a.result_items.itemMeta[t].name)}}function Fn(e,i){1&e&&(n.TgZ(0,"td"),n._uU(1,"THEORETICAL"),n.qZA())}function Yn(e,i){1&e&&n._UZ(0,"td")}function Jn(e,i){if(1&e&&n._UZ(0,"img",28),2&e){const t=n.oxw().index,a=n.oxw(2);n.Q6J("matTooltip",a.result_items.itemMeta[t].icon)("src","https://bungie.net/"+a.result_items.itemMeta[t].icon,n.LSH)}}function Hn(e,i){1&e&&n._UZ(0,"img",29)}function Wn(e,i){if(1&e&&n._UZ(0,"img",28),2&e){const t=n.oxw(3);n.Q6J("matTooltip",t.getPerkName(2))("src",t.getPerkIconUrl(2),n.LSH)}}function In(e,i){if(1&e&&n._UZ(0,"img",28),2&e){const t=n.oxw().index,a=n.oxw(2);n.Q6J("matTooltip",a.getPerkName(a.result_items.itemMeta[t].perk))("src",a.getPerkIconUrl(a.result_items.itemMeta[t].perk),n.LSH)}}function Qn(e,i){if(1&e&&(n.TgZ(0,"td"),n._uU(1),n.qZA()),2&e){const t=i.$implicit;n.xp6(1),n.Oqu(t)}}function _n(e,i){if(1&e&&n._UZ(0,"img",28),2&e){const t=i.$implicit;n.Q6J("matTooltip",t.name)("src","https://bungie.net/"+t.icon,n.LSH)}}function $n(e,i){if(1&e&&(n.TgZ(0,"tr",30)(1,"td"),n._uU(2),n.qZA(),n.TgZ(3,"td",18),n._uU(4," intrinsic on\xa0 "),n.YNc(5,_n,1,2,"img",31),n.qZA(),n.TgZ(6,"td"),n._uU(7),n.qZA(),n.TgZ(8,"td"),n._uU(9),n.qZA(),n.TgZ(10,"td"),n._uU(11),n.qZA(),n.TgZ(12,"td"),n._uU(13,"0"),n.qZA(),n.TgZ(14,"td"),n._uU(15,"0"),n.qZA(),n.TgZ(16,"td"),n._uU(17,"0"),n.qZA(),n.TgZ(18,"td"),n._uU(19),n.qZA()()),2&e){const t=n.oxw().index,a=n.oxw(2);n.xp6(2),n.Oqu(a.slotNameByIndex(t)),n.xp6(3),n.Q6J("ngForOf",a.result_items.itemIntrinsics[t].items),n.xp6(2),n.Oqu(a.result_items.itemIntrinsics[t].entry.stats[0]),n.xp6(2),n.Oqu(a.result_items.itemIntrinsics[t].entry.stats[1]),n.xp6(2),n.Oqu(a.result_items.itemIntrinsics[t].entry.stats[2]),n.xp6(8),n.Oqu(a.sum(a.result_items.itemIntrinsics[t].entry.stats))}}function es(e,i){if(1&e&&(n.ynx(0),n.TgZ(1,"tr",24)(2,"td"),n._uU(3),n.qZA(),n.YNc(4,En,2,1,"td",21),n.YNc(5,Fn,2,0,"td",21),n.YNc(6,Yn,1,0,"td",21),n.TgZ(7,"td"),n.YNc(8,Jn,1,2,"img",25),n.YNc(9,Hn,1,0,"img",26),n.qZA(),n.TgZ(10,"td"),n.YNc(11,Wn,1,2,"img",25),n.YNc(12,In,1,2,"img",25),n.qZA(),n.YNc(13,Qn,2,1,"td",19),n.TgZ(14,"td"),n._uU(15),n.qZA()(),n.YNc(16,$n,20,6,"tr",27),n.BQk()),2&e){const t=i.$implicit,a=i.index,s=n.oxw(2);n.xp6(1),n.ekj("exotic",s.result_items.itemExotic[a])("theoretic",!s.result_items.itemMeta[a]&&a<4)("real",!s.result_items.itemMeta[a]&&a<4),n.xp6(2),n.Oqu(s.slotNameByIndex(a)),n.xp6(1),n.Q6J("ngIf",a<4&&s.result_items.itemMeta[a]),n.xp6(1),n.Q6J("ngIf",a<4&&!s.result_items.itemMeta[a]),n.xp6(1),n.Q6J("ngIf",4===a),n.xp6(2),n.Q6J("ngIf",s.result_items.itemMeta[a]),n.xp6(1),n.Q6J("ngIf",!s.result_items.itemMeta[a]),n.xp6(2),n.Q6J("ngIf",s.result_items.itemArtifice[a]),n.xp6(1),n.Q6J("ngIf",!s.result_items.itemArtifice[a]&&s.result_items.itemMeta[a]&&0!==s.result_items.itemMeta[a].perk),n.xp6(1),n.Q6J("ngForOf",t),n.xp6(2),n.Oqu(s.sum(t)),n.xp6(1),n.Q6J("ngIf",s.result_items.itemIntrinsics[a])}}function ts(e,i){if(1&e&&(n.TgZ(0,"td"),n._uU(1),n.qZA()),2&e){const t=i.$implicit;n.xp6(1),n.Oqu(t)}}function ns(e,i){if(1&e&&(n.TgZ(0,"td"),n._uU(1),n.qZA()),2&e){const t=i.$implicit;n.xp6(1),n.Oqu(t)}}function ss(e,i){if(1&e&&(n.TgZ(0,"tr")(1,"td"),n._uU(2,"Constant Boosts"),n.qZA(),n._UZ(3,"td",18),n.YNc(4,ns,2,1,"td",19),n.TgZ(5,"td"),n._uU(6),n.qZA()()),2&e){const t=n.oxw(2);n.xp6(4),n.Q6J("ngForOf",t.result_items.constants),n.xp6(2),n.Oqu(t.sum(t.result_items.constants))}}function as(e,i){if(1&e&&(n.TgZ(0,"td"),n._uU(1),n.qZA()),2&e){const t=i.$implicit;n.xp6(1),n.Oqu(10*t)}}function is(e,i){if(1&e&&(n.TgZ(0,"td"),n._uU(1),n.qZA()),2&e){const t=i.$implicit;n.xp6(1),n.Oqu(5*t)}}function rs(e,i){if(1&e&&(n.TgZ(0,"td"),n._uU(1),n.qZA()),2&e){const t=i.$implicit;n.xp6(1),n.Oqu(3*t)}}function os(e,i){if(1&e&&(n.TgZ(0,"td"),n._uU(1),n.qZA()),2&e){const t=i.$implicit;n.xp6(1),n.Oqu(t)}}function ls(e,i){if(1&e&&(n.TgZ(0,"td"),n._uU(1),n.qZA()),2&e){const t=i.$implicit;n.xp6(1),n.Oqu(t)}}function ds(e,i){if(1&e&&(n.TgZ(0,"td"),n._uU(1),n.qZA()),2&e){const t=i.$implicit;n.xp6(1),n.Oqu(t)}}function us(e,i){if(1&e&&(n.TgZ(0,"table",16)(1,"tr",17)(2,"td"),n._uU(3,"Type"),n.qZA(),n.TgZ(4,"td",18),n._uU(5,"Item Definition"),n.qZA(),n.TgZ(6,"td"),n._uU(7,"Mobility"),n.qZA(),n.TgZ(8,"td"),n._uU(9,"Resilience"),n.qZA(),n.TgZ(10,"td"),n._uU(11,"Recovery"),n.qZA(),n.TgZ(12,"td"),n._uU(13,"Discipline"),n.qZA(),n.TgZ(14,"td"),n._uU(15,"Intellect"),n.qZA(),n.TgZ(16,"td"),n._uU(17,"Strength"),n.qZA(),n.TgZ(18,"td"),n._uU(19,"Sum"),n.qZA()(),n.YNc(20,es,17,17,"ng-container",19),n.TgZ(21,"tr",20)(22,"td"),n._uU(23,"Masterwork"),n.qZA(),n._UZ(24,"td",18),n.YNc(25,ts,2,1,"td",19),n.TgZ(26,"td"),n._uU(27),n.qZA()(),n.YNc(28,ss,7,2,"tr",21),n.TgZ(29,"tr",22)(30,"td"),n._uU(31,"Major Mods"),n.qZA(),n._UZ(32,"td",18),n.YNc(33,as,2,1,"td",19),n.TgZ(34,"td"),n._uU(35),n.qZA()(),n.TgZ(36,"tr")(37,"td"),n._uU(38,"Minor Mods"),n.qZA(),n._UZ(39,"td",18),n.YNc(40,is,2,1,"td",19),n.TgZ(41,"td"),n._uU(42),n.qZA()(),n.TgZ(43,"tr")(44,"td"),n._uU(45,"Artifice Mods"),n.qZA(),n._UZ(46,"td",18),n.YNc(47,rs,2,1,"td",19),n.TgZ(48,"td"),n._uU(49),n.qZA()(),n.TgZ(50,"tr",23)(51,"td"),n._uU(52,"Total"),n.qZA(),n._UZ(53,"td",18),n.YNc(54,os,2,1,"td",19),n.TgZ(55,"td"),n._uU(56),n.qZA()(),n.TgZ(57,"tr")(58,"td"),n._uU(59,"Waste"),n.qZA(),n._UZ(60,"td",18),n.YNc(61,ls,2,1,"td",19),n.TgZ(62,"td"),n._uU(63),n.qZA()(),n.TgZ(64,"tr")(65,"td"),n._uU(66,"Tiers"),n.qZA(),n._UZ(67,"td",18),n.YNc(68,ds,2,1,"td",19),n.TgZ(69,"td"),n._uU(70),n.qZA()()()),2&e){const t=n.oxw();n.xp6(20),n.Q6J("ngForOf",t.result_items.items),n.xp6(5),n.Q6J("ngForOf",t.result_items.masterwork),n.xp6(2),n.Oqu(t.sum(t.result_items.masterwork)),n.xp6(1),n.Q6J("ngIf",t.sum(t.result_items.constants)>0),n.xp6(5),n.Q6J("ngForOf",t.result_items.statMods.major),n.xp6(2),n.Oqu(10*t.sum(t.result_items.statMods.major)),n.xp6(5),n.Q6J("ngForOf",t.result_items.statMods.minor),n.xp6(2),n.Oqu(5*t.sum(t.result_items.statMods.minor)),n.xp6(5),n.Q6J("ngForOf",t.result_items.artificeMods),n.xp6(2),n.Oqu(3*t.sum(t.result_items.artificeMods)),n.xp6(5),n.Q6J("ngForOf",t.result_items.total),n.xp6(2),n.Oqu(t.sum(t.result_items.total)),n.xp6(5),n.Q6J("ngForOf",t.result_items.waste),n.xp6(2),n.Oqu(t.sum(t.result_items.waste)),n.xp6(5),n.Q6J("ngForOf",t.result_items.tiers),n.xp6(2),n.Oqu(t.sum(t.result_items.tiers))}}const hs=["mobility","resilience","recovery","discipline","intellect","strength"],Nt={0:{[X.y.ArmorSlotHelmet]:[{stats:[0,1,1],armor:[3216110440,106575079,2578771006]},{stats:[0,2,0],armor:[2808156426,3883866764]}],[X.y.ArmorSlotGauntlet]:[{stats:[0,1,1],armor:[1734844651,241462141,241462142]},{stats:[0,2,0],armor:[1734844650,1848640623,2240152949,2563444729]}],[X.y.ArmorSlotChest]:[{stats:[2,1,0],armor:[1192890598,1341951177,3874247549]},{stats:[1,1,1],armor:[1591207518,1591207519]},{stats:[1,2,0],armor:[1654461647]}],[X.y.ArmorSlotLegs]:[{stats:[1,1,0],armor:[3539357319,2255796155,136355432,1160559849]},{stats:[1,0,1],armor:[2423243921]},{stats:[0,2,0],armor:[3539357318]}]},1:{[X.y.ArmorSlotHelmet]:[{stats:[2,0,0],armor:[896224899]},{stats:[1,1,0],armor:[2757274117,1053737370,1321354572,1321354573]},{stats:[1,0,1],armor:[3562696927,2773056939]}],[X.y.ArmorSlotGauntlet]:[{stats:[1,1,1],armor:[3942036043]},{stats:[0,1,1],armor:[475652357]},{stats:[1,0,1],armor:[691578978]},{stats:[1,1,0],armor:[691578979,1688602431]},{stats:[2,0,0],armor:[193869523,1734144409,4165919945]}],[X.y.ArmorSlotChest]:[{stats:[2,0,1],armor:[978537162]},{stats:[2,1,0],armor:[903984858,1474735276,2766109872]},{stats:[1,1,1],armor:[1474735277]},{stats:[1,2,0],armor:[2766109874,3070555693]}],[X.y.ArmorSlotLegs]:[{stats:[2,0,0],armor:[193869520,609852545]},{stats:[1,1,0],armor:[193869522]}]},2:{[X.y.ArmorSlotHelmet]:[{stats:[0,1,1],armor:[3381022971,1030017949,1096253259,2384488862]},{stats:[0,0,2],armor:[3381022970,2177524718,2428181146]},{stats:[1,0,1],armor:[3381022969,3948284065]}],[X.y.ArmorSlotGauntlet]:[{stats:[0,0,2],armor:[1906093346,3288917178,3844826443]},{stats:[0,2,1],armor:[2950045886]},{stats:[0,1,1],armor:[3084282676,3844826440]},{stats:[1,0,1],armor:[3627185503,3787517196]}],[X.y.ArmorSlotChest]:[{stats:[2,0,1],armor:[370930766,4057299719]},{stats:[0,2,1],armor:[1725917554,4057299718]},{stats:[0,1,2],armor:[2082483156]}],[X.y.ArmorSlotLegs]:[{stats:[0,1,2],armor:[121305948]},{stats:[1,0,1],armor:[138282166]},{stats:[0,1,1],armor:[4136768282]}]}};let ms=(()=>{class e{constructor(){this.ModifierType=Cn.O,this.glpk=null,this.calculating=!1,this.options={solver:{timeout:5,presolve:!0},armor:{armorType:3,requiresExotic:!0},stats:{desired:{mobility:0,resilience:0,recovery:0,discipline:0,intellect:0,strength:0},constantBoost:{mobility:0,resilience:0,recovery:0,discipline:0,intellect:0,strength:0},statsAreFixed:!1,maxValue:250,minTiers:0,minPoints:100,maxWaste:54},fragments:{enableFragmentPicker:!1,subclass:-1,class:3},mods:{maxMods:5,maxArtifice:5},generator:{generateExoticsWithIntrinsicStats:!1},availablePlugs:[[1,1,10],[1,1,11],[1,1,12],[1,1,13],[1,1,14],[1,1,15],[1,5,5],[1,5,6],[1,5,7],[1,5,8],[1,5,9],[1,5,10],[1,5,11],[1,6,5],[1,6,6],[1,6,7],[1,6,8],[1,6,9],[1,7,5],[1,7,6],[1,7,7],[1,7,8],[1,8,5],[1,8,6],[1,8,7],[1,9,5],[1,9,6],[1,10,1],[1,10,5],[1,11,1],[1,11,5],[1,12,1],[1,13,1],[1,14,1],[1,15,1],[5,1,5],[5,1,6],[5,1,7],[5,1,8],[5,1,9],[5,1,10],[5,1,11],[5,5,1],[5,5,5],[5,6,1],[5,7,1],[5,8,1],[5,9,1],[5,10,1],[5,11,1],[6,1,5],[6,1,6],[6,1,7],[6,1,8],[6,1,9],[6,5,1],[6,6,1],[6,7,1],[6,8,1],[6,9,1],[7,1,5],[7,1,6],[7,1,7],[7,1,8],[7,5,1],[7,6,1],[7,7,1],[7,8,1],[8,1,5],[8,1,6],[8,1,7],[8,5,1],[8,6,1],[8,7,1],[9,1,5],[9,1,6],[9,5,1],[9,6,1],[10,1,1],[10,1,5],[10,5,1],[11,1,1],[11,1,5],[11,5,1],[12,1,1],[13,1,1],[14,1,1],[15,1,1]]},this.result=null,this.result_items=null,this.time_progress=0,this.timerId=0,this.lp=null;const t=(0,St.F)((0,V.Z)(function*(){}));this.inventoryArmor=t.table("inventoryArmor"),this.manifestArmor=t.table("manifestArmor")}sum(t){return t.reduce((a,s)=>a+s,0)}getPerkName(t){return Ze.cM[t]}getPerkIconUrl(t){return Ze.X9[t]}slotNameByIndex(t){switch(t){case 0:return"Helmet";case 1:return"Gauntlets";case 2:return"Chest Armor";case 3:return"Leg Armor";case 4:return"Class Item";default:return"Unknown"}}resultValueToText(t){switch(t){case 1:return"Undefined. Might be unsolvable. Give it more time.";case 2:return"Feasible, but not optimal. Give it more time.";case 3:return"Infeasible. Your configuration is not possible.";case 4:return"No feasible solution found. Your configuration may not be possible.";case 5:return"Optimal solution found.";case 6:return"Unbounded. Your configuration is not possible (actually a Mijago skill issue).";default:return"Unknown result"}}ngOnInit(){var t=this;return(0,V.Z)(function*(){t.glpk=yield new Promise((e,i)=>{const t=new Worker(Xn);t.onmessage=a=>{e([t,a.data])},t.onerror=a=>{i(a.message)},t.postMessage({wasmBinary:jn})}).then(e=>Lt(...e)),console.log(t.glpk)})()}startTimer(){this.time_progress=0,this.timerId=setInterval(()=>{this.time_progress+=1,this.time_progress>=100&&this.stopTimer()},this.options.solver.timeout/100*1e3)}stopTimer(){this.timerId&&(this.time_progress=100,clearInterval(this.timerId),this.timerId=0)}run(){var t=this;return(0,V.Z)(function*(){if(t.result=t.result_items=null,!t.glpk)throw new Error("GLPK not initialized yet");t.calculating=!0;const a=yield t.buildFromConfiguration();t.lp=a,t.startTimer();const s=yield t.glpk.solve(a);t.stopTimer(),t.result_items=yield t.getItemsFromResult(s),t.result=s,t.calculating=!1})()}getItemsFromResult(t){var a=this;return(0,V.Z)(function*(){const s=[[0,0,0,0,0,0],[0,0,0,0,0,0],[0,0,0,0,0,0],[0,0,0,0,0,0],[0,0,0,0,0,0]],r=[null,null,null,null,null],d=[null,null,null,null,null],o=[null,null,null,null,null],f=[!1,!1,!1,!1,!1];let l=0;const u=[10,10,10,10,10,10],y=[0,0,0,0,0,0],b={major:[0,0,0,0,0,0],minor:[0,0,0,0,0,0]},c=[0,0,0,0,0,0];for(let h in t.result.vars){if(!h.startsWith("constant_")||0==t.result.vars[h])continue;const[g,p]=h.split("_");y[parseInt(p)]+=t.result.vars[h]-10}for(let h in t.result.vars){if(!h.startsWith("plug_")||0==t.result.vars[h])continue;const[g,p,v,x]=h.split("_"),T=a.options.availablePlugs[parseInt(x)],Z=parseInt(v)>=2?1:0;for(let z=0;z<3;z++)s[parseInt(p)][z+3*Z]+=T[z];1==t.result.vars[`exotic_${p}`]&&(o[parseInt(p)]=!0)}const U=[];for(let h in t.result.vars){if(!h.startsWith("item_")||0==t.result.vars[h])continue;const[g,p,v]=h.split("_");U.push({slot:parseInt(p),itemId:v})}if(U.length>0){const g=(0,St.F)((0,V.Z)(function*(){})).table("inventoryArmor");for(let p of U){let v=yield g.where("itemInstanceId").equals(p.itemId).toArray();if(0==v.length)continue;const x=v[0];r[p.slot]=x,s[p.slot][0]+=x.mobility,s[p.slot][1]+=x.resilience,s[p.slot][2]+=x.recovery,s[p.slot][3]+=x.discipline,s[p.slot][4]+=x.intellect,s[p.slot][5]+=x.strength,o[p.slot]=x.isExotic,f[p.slot]=x.perk==Ze.Pn.SlotArtifice,l+=f[p.slot]?1:0}}for(let h in t.result.vars){if(!h.startsWith("intrinsic_")||0==t.result.vars[h])continue;let[g,p,v,x]=h.split("_");const T=Nt[parseInt(v)][parseInt(p)+1][parseInt(x)],Z=yield Promise.all(T.armor.map(function(){var z=(0,V.Z)(function*(O){return yield a.manifestArmor.where("hash").equals(O).first()});return function(O){return z.apply(this,arguments)}}()));d[parseInt(p)]={entry:T,items:Z}}for(let h in t.result.vars){if(!h.startsWith("mod_")||0==t.result.vars[h])continue;const[g,p,v]=h.split("_");b["1"==p?"minor":"major"][parseInt(v)]+=t.result.vars[h]}let k=0;for(let h in t.result.vars){if(!h.startsWith("artifice_")||0==t.result.vars[h])continue;const[g,p]=h.split("_");c[parseInt(p)]+=t.result.vars[h],k+=t.result.vars[h]}lMath.floor(h/10)),P=w.map(h=>h%10),m=q.reduce((h,g)=>h+g,0);return{items:s,artificeMods:c,statMods:b,constants:y,total:w,waste:P,tiers:q,tierSum:m,masterwork:u,itemMeta:r,itemIntrinsics:d,itemExotic:o,itemArtifice:f}})()}getItems(t){var a=this;return(0,V.Z)(function*(){let s=yield a.inventoryArmor.where("slot").notEqual(X.y.ArmorSlotNone).distinct().toArray();return null!=t&&(s=s.filter(r=>r.clazz==t)),s})()}buildFromConfiguration(){var t=this;return(0,V.Z)(function*(){if(!t.glpk)throw new Error("GLPK not initialized yet");const a={name:"d2ap_theorizer",options:{msgLev:t.glpk.GLP_MSG_ERR,presolve:t.options.solver.presolve,tmlim:t.options.solver.timeout},objective:{direction:t.glpk.GLP_MAX,name:"objective",vars:[]},subjectTo:[{name:"goal_mobility",bnds:{type:t.glpk.GLP_DB,ub:t.options.stats.maxValue,lb:t.options.stats.desired.mobility},vars:[]},{name:"goal_resilience",bnds:{type:t.glpk.GLP_DB,ub:t.options.stats.maxValue,lb:t.options.stats.desired.resilience},vars:[]},{name:"goal_recovery",bnds:{type:t.glpk.GLP_DB,ub:t.options.stats.maxValue,lb:t.options.stats.desired.recovery},vars:[]},{name:"goal_discipline",bnds:{type:t.glpk.GLP_DB,ub:t.options.stats.maxValue,lb:t.options.stats.desired.discipline},vars:[]},{name:"goal_intellect",bnds:{type:t.glpk.GLP_DB,ub:t.options.stats.maxValue,lb:t.options.stats.desired.intellect},vars:[]},{name:"goal_strength",bnds:{type:t.glpk.GLP_DB,ub:t.options.stats.maxValue,lb:t.options.stats.desired.strength},vars:[]}],bounds:[],binaries:[],generals:[]};for(let m=0;m<6;m++){let g=10+t.options.stats.constantBoost[hs[m]];a.bounds.push({name:`constant_${m}`,type:t.glpk.GLP_FX,ub:g,lb:g}),a.subjectTo[m].vars.push({name:`constant_${m}`,coef:1})}const s=(1&t.options.armor.armorType)>0,r=(2&t.options.armor.armorType)>0,d=s&&r,o=yield t.getItems();let f=o.filter(m=>m.slot==X.y.ArmorSlotHelmet),l=o.filter(m=>m.slot==X.y.ArmorSlotGauntlet),u=o.filter(m=>m.slot==X.y.ArmorSlotChest),y=o.filter(m=>m.slot==X.y.ArmorSlotLegs);if(3!=t.options.fragments.class){const m=t.options.fragments.class;f=f.filter(h=>h.clazz==m),l=l.filter(h=>h.clazz==m),u=u.filter(h=>h.clazz==m),y=y.filter(h=>h.clazz==m)}let b=[f,l,u,y];const c={name:"classlim",vars:[],bnds:{type:t.glpk.GLP_UP,ub:1,lb:1}},U=[];for(let m=0;m<3;m++){const h=`class_${m}`;a.binaries.push(h),c.vars.push({name:h,coef:1}),U.push({name:`classlim_${m}`,vars:[{name:h,coef:-4}],bnds:{type:t.glpk.GLP_UP,ub:0,lb:0}})}const k={name:"exoticlim",vars:[],bnds:{type:t.glpk.GLP_DB,ub:1,lb:0}};t.options.armor.requiresExotic&&(console.log("requiring exotic"),k.bnds={type:t.glpk.GLP_FX,ub:1,lb:1}),a.subjectTo.push(c),a.subjectTo.push(...U),a.subjectTo.push(k);const q=[],P=[];for(let m=0;m<4;m++){const h={name:`slotlim_${m}`,vars:[],bnds:{type:t.glpk.GLP_FX,ub:4,lb:4}};if(a.subjectTo.push(h),r){const g={name:`allow_intrinsic_${m}`,vars:[],bnds:{type:t.glpk.GLP_UP,ub:0,lb:0}};if(a.binaries.push(`exotic_${m}`),k.vars.push({name:`exotic_${m}`,coef:1}),t.options.generator.generateExoticsWithIntrinsicStats){a.subjectTo.push(g);for(let v=0;v<3;v++){const x=Nt[v][m+1];for(let T=0;T0&&a.subjectTo[O].vars.push({name:z,coef:Z.stats[O]});a.objective.vars.push({name:z,coef:-100})}}}let p={name:`exotic_${m}_genlim`,vars:[{name:`exotic_${m}`,coef:1}],bnds:{type:t.glpk.GLP_UP,ub:0,lb:0}};a.subjectTo.push(p);for(let v=0;v<4;v++){const x={name:`plug_${m}_${v}`,vars:[],bnds:{type:t.glpk.GLP_FX,ub:1,lb:1}};d&&(x.bnds={type:t.glpk.GLP_DB,ub:1,lb:0});for(let T=0;T1&&(O+=3),a.subjectTo[O].vars.push({name:Z,coef:t.options.availablePlugs[T][z]}),a.objective.vars.push({name:Z,coef:-20*t.options.availablePlugs[T][z]})}}a.subjectTo.push(x)}}if(s)for(let g of b[m]){const v=`item_${m}_${g.itemInstanceId}`;a.binaries.push(v),a.subjectTo[0].vars.push({name:v,coef:g.mobility}),a.subjectTo[1].vars.push({name:v,coef:g.resilience}),a.subjectTo[2].vars.push({name:v,coef:g.recovery}),a.subjectTo[3].vars.push({name:v,coef:g.discipline}),a.subjectTo[4].vars.push({name:v,coef:g.intellect}),a.subjectTo[5].vars.push({name:v,coef:g.strength}),h.vars.push({name:v,coef:4}),d&&a.objective.vars.push({name:v,coef:100}),U[g.clazz].vars.push({name:v,coef:1}),g.isExotic&&(k.vars.push({name:v,coef:1}),a.objective.vars.push({name:v,coef:40})),g.perk==Ze.Pn.SlotArtifice&&q.push(v)}}if(t.options.mods.maxMods>0){const m={name:"limit_mods",vars:[],bnds:{type:t.options.mods.maxMods>0?t.glpk.GLP_DB:t.glpk.GLP_FX,ub:t.options.mods.maxMods,lb:0}};for(let h=0;h<6;h++)a.bounds.push({name:`mod_1_${h}`,type:t.glpk.GLP_DB,ub:5,lb:0}),a.bounds.push({name:`mod_2_${h}`,type:t.glpk.GLP_DB,ub:5,lb:0}),a.generals.push(`mod_1_${h}`),a.generals.push(`mod_2_${h}`),a.subjectTo[h].vars.push({name:`mod_1_${h}`,coef:5}),a.subjectTo[h].vars.push({name:`mod_2_${h}`,coef:10}),m.vars.push({name:`mod_1_${h}`,coef:1}),m.vars.push({name:`mod_2_${h}`,coef:1});a.subjectTo.push(m)}if(t.options.mods.maxArtifice>0){const m={name:"limit_artif_max",vars:[],bnds:{type:t.options.mods.maxArtifice>0?t.glpk.GLP_DB:t.glpk.GLP_FX,ub:t.options.mods.maxArtifice,lb:0}},h={name:"limit_artif_slot",vars:[],bnds:{type:t.glpk.GLP_UP,ub:1,lb:0}};for(let g of q)h.vars.push({name:g,coef:-1});for(let g of P)h.vars.push({name:g,coef:-.25});if(r)for(let g=0;g<4;g++)h.vars.push({name:`exotic_${g}`,coef:1});for(let g=0;g<6;g++)a.subjectTo[g].vars.push({name:`artifice_${g}`,coef:3}),m.vars.push({name:`artifice_${g}`,coef:1}),h.vars.push({name:`artifice_${g}`,coef:1}),a.bounds.push({name:`artifice_${g}`,type:t.glpk.GLP_DB,ub:5,lb:0}),a.generals.push(`artifice_${g}`);a.subjectTo.push(m),a.subjectTo.push(h)}if(t.options.stats.minTiers>0||t.options.stats.maxWaste<54){for(let m=0;m<6;m++){a.bounds.push({name:`waste_${m}`,type:t.glpk.GLP_DB,ub:9,lb:0}),a.generals.push(`waste_${m}`),a.generals.push(`tier_${m}`);const h={name:`set_waste_and_tier_${m}`,vars:[{name:`waste_${m}`,coef:-1},{name:`tier_${m}`,coef:-10},...a.subjectTo[m].vars],bnds:{type:t.glpk.GLP_FX,ub:0,lb:0}};a.subjectTo.push(h)}if(t.options.stats.minTiers>0){const m={name:"require_tier_minimum",vars:[],bnds:{type:t.glpk.GLP_LO,ub:0,lb:t.options.stats.minTiers}};console.log("this.options.stats.minTiers",t.options.stats.minTiers);for(let h=0;h<6;h++)m.vars.push({name:`tier_${h}`,coef:1});a.subjectTo.push(m)}if(t.options.stats.maxWaste<54){const m={name:"require_waste_maximum",vars:[],bnds:{type:t.options.stats.maxWaste>0?t.glpk.GLP_UP:t.glpk.GLP_FX,ub:t.options.stats.maxWaste,lb:0}};for(let h=0;h<6;h++)m.vars.push({name:`waste_${h}`,coef:1});a.subjectTo.push(m)}}if(t.options.stats.statsAreFixed)for(let m=0;m<6;m++)a.subjectTo[m].bnds.ub=a.subjectTo[m].bnds.lb,a.subjectTo[m].bnds.type=t.glpk.GLP_FX;return a})()}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=n.Xpm({type:e,selectors:[["app-theorizer-page"]],decls:197,vars:67,consts:[["id","container","fxLayout","row wrap","fxLayoutAlign","center","fxLayoutGap","5px"],[1,"input-list"],[1,"input-list-entry"],[1,"example-full-width"],["matInput","","type","number","min","-20","max","300",3,"ngModel","ngModelChange"],[3,"ngModel","ngModelChange"],[3,"value"],["disabled","",3,"ngModel","ngModelChange"],[3,"disabled","ngModel","ngModelChange"],["id","slider-table"],["min","0","max","54","step","1","tickInterval","auto",3,"ngModel","ngModelChange"],["min","0","max","55","step","1","tickInterval","auto",3,"ngModel","ngModelChange"],["min","0","max","5","step","1","tickInterval","auto",3,"ngModel","ngModelChange"],["min","0.5","max","60","step","0.5",3,"ngModel","ngModelChange"],["mat-raised-button","","color","primary",3,"disabled","click"],["id","result-table",4,"ngIf"],["id","result-table"],[1,"line-bottom"],["colspan","3"],[4,"ngFor","ngForOf"],[1,"line-top","row-masterwork"],[4,"ngIf"],[1,"line-top"],[1,"line-top","line-bottom"],[1,"item-row"],["class","icon-item",3,"matTooltip","src",4,"ngIf"],["class","icon-item","matTooltip","Generated","src","https://www.bungie.net/common/destiny2_content/icons/1d82cced47afdc699448c54b2a6fbf35.png",4,"ngIf"],["class","intrinsic",4,"ngIf"],[1,"icon-item",3,"matTooltip","src"],["matTooltip","Generated","src","https://www.bungie.net/common/destiny2_content/icons/1d82cced47afdc699448c54b2a6fbf35.png",1,"icon-item"],[1,"intrinsic"],["class","icon-item",3,"matTooltip","src",4,"ngFor","ngForOf"]],template:function(t,a){1&t&&(n.TgZ(0,"div",0)(1,"mat-card")(2,"mat-card-header")(3,"mat-card-title"),n._uU(4,"Configuration"),n.qZA()(),n.TgZ(5,"mat-card-content")(6,"h2"),n._uU(7,"Required Stats"),n.qZA(),n.TgZ(8,"div",1)(9,"div",2)(10,"mat-form-field",3)(11,"mat-label"),n._uU(12,"Mobility"),n.qZA(),n.TgZ(13,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.desired.mobility=r}),n.qZA()()(),n.TgZ(14,"div",2)(15,"mat-form-field",3)(16,"mat-label"),n._uU(17,"Resilience"),n.qZA(),n.TgZ(18,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.desired.resilience=r}),n.qZA()()(),n.TgZ(19,"div",2)(20,"mat-form-field",3)(21,"mat-label"),n._uU(22,"Recovery"),n.qZA(),n.TgZ(23,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.desired.recovery=r}),n.qZA()()(),n.TgZ(24,"div",2)(25,"mat-form-field",3)(26,"mat-label"),n._uU(27,"Discipline"),n.qZA(),n.TgZ(28,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.desired.discipline=r}),n.qZA()()(),n.TgZ(29,"div",2)(30,"mat-form-field",3)(31,"mat-label"),n._uU(32,"Intellect"),n.qZA(),n.TgZ(33,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.desired.intellect=r}),n.qZA()()(),n.TgZ(34,"div",2)(35,"mat-form-field",3)(36,"mat-label"),n._uU(37,"Strength"),n.qZA(),n.TgZ(38,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.desired.strength=r}),n.qZA()()()(),n.TgZ(39,"mat-slide-toggle",5),n.NdJ("ngModelChange",function(r){return a.options.stats.statsAreFixed=r}),n._uU(40,"Stats must be met exactly "),n.qZA(),n._UZ(41,"hr"),n.TgZ(42,"h2"),n._uU(43,"Armor Selection"),n.qZA(),n.TgZ(44,"p"),n._uU(45,"Use armor: "),n.TgZ(46,"mat-button-toggle-group",5),n.NdJ("ngModelChange",function(r){return a.options.armor.armorType=r}),n.TgZ(47,"mat-button-toggle",6),n._uU(48,"Both"),n.qZA(),n.TgZ(49,"mat-button-toggle",6),n._uU(50,"Own Armor"),n.qZA(),n.TgZ(51,"mat-button-toggle",6),n._uU(52,"Generated Armor"),n.qZA()()(),n.TgZ(53,"p"),n._uU(54," Class: "),n.TgZ(55,"mat-button-toggle-group",5),n.NdJ("ngModelChange",function(r){return a.options.fragments.class=r}),n.TgZ(56,"mat-button-toggle",6),n._uU(57,"Any"),n.qZA(),n.TgZ(58,"mat-button-toggle",6),n._uU(59,"Titan"),n.qZA(),n.TgZ(60,"mat-button-toggle",6),n._uU(61,"Hunter"),n.qZA(),n.TgZ(62,"mat-button-toggle",6),n._uU(63,"Warlock"),n.qZA()()(),n.TgZ(64,"mat-slide-toggle",5),n.NdJ("ngModelChange",function(r){return a.options.armor.requiresExotic=r}),n._uU(65,"Require an exotic armor piece "),n.qZA(),n._UZ(66,"br"),n.TgZ(67,"mat-slide-toggle",5),n.NdJ("ngModelChange",function(r){return a.options.generator.generateExoticsWithIntrinsicStats=r}),n._uU(68,"Generate exotics with intrinsic stats "),n.qZA(),n._UZ(69,"br")(70,"hr"),n.TgZ(71,"h2"),n._uU(72,"Fragment selection"),n.qZA(),n.TgZ(73,"mat-slide-toggle",7),n.NdJ("ngModelChange",function(r){return a.options.fragments.enableFragmentPicker=r}),n._uU(74,"Enable fragment picking "),n.qZA(),n._UZ(75,"br"),n._uU(76," Subclass: "),n.TgZ(77,"mat-button-toggle-group",8),n.NdJ("ngModelChange",function(r){return a.options.fragments.subclass=r}),n.TgZ(78,"mat-button-toggle",6),n._uU(79,"Any"),n.qZA(),n.TgZ(80,"mat-button-toggle",6),n._uU(81,"Solar"),n.qZA(),n.TgZ(82,"mat-button-toggle",6),n._uU(83,"Arc"),n.qZA(),n.TgZ(84,"mat-button-toggle",6),n._uU(85,"Void"),n.qZA(),n.TgZ(86,"mat-button-toggle",6),n._uU(87,"Stasis"),n.qZA(),n.TgZ(88,"mat-button-toggle",6),n._uU(89,"Strand"),n.qZA()(),n._UZ(90,"hr")(91,"br"),n.TgZ(92,"table",9)(93,"tr")(94,"td"),n._uU(95,"Max Waste:"),n.qZA(),n.TgZ(96,"td")(97,"mat-slider",10),n.NdJ("ngModelChange",function(r){return a.options.stats.maxWaste=r}),n.qZA()(),n.TgZ(98,"td"),n._uU(99),n.qZA()(),n.TgZ(100,"tr")(101,"td"),n._uU(102,"Minimum Tiers:"),n.qZA(),n.TgZ(103,"td")(104,"mat-slider",11),n.NdJ("ngModelChange",function(r){return a.options.stats.minTiers=r}),n.qZA()(),n.TgZ(105,"td"),n._uU(106),n.qZA()(),n.TgZ(107,"tr")(108,"td"),n._uU(109,"Max Mods:"),n.qZA(),n.TgZ(110,"td")(111,"mat-slider",12),n.NdJ("ngModelChange",function(r){return a.options.mods.maxMods=r}),n.qZA()(),n.TgZ(112,"td"),n._uU(113),n.qZA()(),n.TgZ(114,"tr")(115,"td"),n._uU(116,"Max Artifice Mods:"),n.qZA(),n.TgZ(117,"td")(118,"mat-slider",12),n.NdJ("ngModelChange",function(r){return a.options.mods.maxArtifice=r}),n.qZA()(),n.TgZ(119,"td"),n._uU(120),n.qZA()()(),n.TgZ(121,"h2"),n._uU(122,"Constant Bonus to Stats"),n.qZA(),n._uU(123," (use this for theoretical +1 stuff) "),n.TgZ(124,"div",1)(125,"div",2)(126,"mat-form-field",3)(127,"mat-label"),n._uU(128,"Mobility"),n.qZA(),n.TgZ(129,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.constantBoost.mobility=r}),n.qZA()()(),n.TgZ(130,"div",2)(131,"mat-form-field",3)(132,"mat-label"),n._uU(133,"Resilience"),n.qZA(),n.TgZ(134,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.constantBoost.resilience=r}),n.qZA()()(),n.TgZ(135,"div",2)(136,"mat-form-field",3)(137,"mat-label"),n._uU(138,"Recovery"),n.qZA(),n.TgZ(139,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.constantBoost.recovery=r}),n.qZA()()(),n.TgZ(140,"div",2)(141,"mat-form-field",3)(142,"mat-label"),n._uU(143,"Discipline"),n.qZA(),n.TgZ(144,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.constantBoost.discipline=r}),n.qZA()()(),n.TgZ(145,"div",2)(146,"mat-form-field",3)(147,"mat-label"),n._uU(148,"Intellect"),n.qZA(),n.TgZ(149,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.constantBoost.intellect=r}),n.qZA()()(),n.TgZ(150,"div",2)(151,"mat-form-field",3)(152,"mat-label"),n._uU(153,"Strength"),n.qZA(),n.TgZ(154,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.constantBoost.strength=r}),n.qZA()()()()()(),n.TgZ(155,"mat-card")(156,"mat-card-header")(157,"mat-card-title"),n._uU(158,"Solver Configuration"),n.qZA()(),n.TgZ(159,"mat-card-content")(160,"div"),n._uU(161," Timeout: "),n.TgZ(162,"mat-slider",13),n.NdJ("ngModelChange",function(r){return a.options.solver.timeout=r}),n.qZA(),n.TgZ(163,"span"),n._uU(164),n.qZA()(),n.TgZ(165,"mat-slide-toggle",5),n.NdJ("ngModelChange",function(r){return a.options.solver.presolve=r}),n._uU(166," Execute Presolver "),n.qZA()(),n.TgZ(167,"mat-card-actions")(168,"button",14),n.NdJ("click",function(){return a.run()}),n._uU(169,"Calculate"),n.qZA(),n._UZ(170,"br")(171,"mat-progress-bar",6),n.qZA()(),n.TgZ(172,"mat-card")(173,"mat-card-header")(174,"mat-card-title"),n._uU(175,"Results"),n.qZA()(),n.TgZ(176,"mat-card-content")(177,"p"),n._uU(178),n.qZA(),n.TgZ(179,"p"),n._uU(180),n.qZA(),n.YNc(181,us,71,16,"table",15),n.qZA()()(),n.TgZ(182,"div")(183,"mat-card")(184,"mat-card-header")(185,"mat-card-title"),n._uU(186,"Results"),n.qZA()(),n.TgZ(187,"mat-card-content")(188,"p"),n._uU(189),n.ALo(190,"json"),n.qZA(),n.TgZ(191,"p"),n._uU(192),n.ALo(193,"json"),n.qZA(),n.TgZ(194,"p"),n._uU(195),n.ALo(196,"json"),n.qZA()()()()),2&t&&(n.xp6(13),n.Q6J("ngModel",a.options.stats.desired.mobility),n.xp6(5),n.Q6J("ngModel",a.options.stats.desired.resilience),n.xp6(5),n.Q6J("ngModel",a.options.stats.desired.recovery),n.xp6(5),n.Q6J("ngModel",a.options.stats.desired.discipline),n.xp6(5),n.Q6J("ngModel",a.options.stats.desired.intellect),n.xp6(5),n.Q6J("ngModel",a.options.stats.desired.strength),n.xp6(1),n.Q6J("ngModel",a.options.stats.statsAreFixed),n.xp6(7),n.Q6J("ngModel",a.options.armor.armorType),n.xp6(1),n.Q6J("value",3),n.xp6(2),n.Q6J("value",1),n.xp6(2),n.Q6J("value",2),n.xp6(4),n.Q6J("ngModel",a.options.fragments.class),n.xp6(1),n.Q6J("value",3),n.xp6(2),n.Q6J("value",0),n.xp6(2),n.Q6J("value",1),n.xp6(2),n.Q6J("value",2),n.xp6(2),n.Q6J("ngModel",a.options.armor.requiresExotic),n.xp6(3),n.Q6J("ngModel",a.options.generator.generateExoticsWithIntrinsicStats),n.xp6(6),n.Q6J("ngModel",a.options.fragments.enableFragmentPicker),n.xp6(4),n.Q6J("disabled",!a.options.fragments.enableFragmentPicker)("ngModel",a.options.fragments.subclass),n.xp6(1),n.Q6J("value",-1),n.xp6(2),n.Q6J("value",a.ModifierType.Solar),n.xp6(2),n.Q6J("value",a.ModifierType.Arc),n.xp6(2),n.Q6J("value",a.ModifierType.Void),n.xp6(2),n.Q6J("value",a.ModifierType.Stasis),n.xp6(2),n.Q6J("value",a.ModifierType.Strand),n.xp6(9),n.Q6J("ngModel",a.options.stats.maxWaste),n.xp6(2),n.hij("",a.options.stats.maxWaste," points"),n.xp6(5),n.Q6J("ngModel",a.options.stats.minTiers),n.xp6(2),n.hij("",a.options.stats.minTiers," tiers"),n.xp6(5),n.Q6J("ngModel",a.options.mods.maxMods),n.xp6(2),n.hij("",a.options.mods.maxMods," mods"),n.xp6(5),n.Q6J("ngModel",a.options.mods.maxArtifice),n.xp6(2),n.hij("",a.options.mods.maxArtifice," mods"),n.xp6(9),n.Q6J("ngModel",a.options.stats.constantBoost.mobility),n.xp6(5),n.Q6J("ngModel",a.options.stats.constantBoost.resilience),n.xp6(5),n.Q6J("ngModel",a.options.stats.constantBoost.recovery),n.xp6(5),n.Q6J("ngModel",a.options.stats.constantBoost.discipline),n.xp6(5),n.Q6J("ngModel",a.options.stats.constantBoost.intellect),n.xp6(5),n.Q6J("ngModel",a.options.stats.constantBoost.strength),n.xp6(8),n.Q6J("ngModel",a.options.solver.timeout),n.xp6(2),n.hij("",a.options.solver.timeout,"s"),n.xp6(1),n.Q6J("ngModel",a.options.solver.presolve),n.xp6(3),n.Q6J("disabled",!a.glpk||a.calculating),n.xp6(3),n.Q6J("value",a.time_progress),n.xp6(6),n.ekj("status-undefined",1===(null==a.result||null==a.result.result?null:a.result.result.status))("status-infeasable",3===(null==a.result||null==a.result.result?null:a.result.result.status)||4===(null==a.result||null==a.result.result?null:a.result.result.status))("status-acceptable",2===(null==a.result||null==a.result.result?null:a.result.result.status))("status-optimal",5===(null==a.result||null==a.result.result?null:a.result.result.status)),n.xp6(1),n.AsE("Status Code ",null==a.result||null==a.result.result?null:a.result.result.status,": ",a.resultValueToText(null==a.result||null==a.result.result?null:a.result.result.status),""),n.xp6(2),n.hij("Time (s): ",null==a.result?null:a.result.time,""),n.xp6(1),n.Q6J("ngIf",a.result_items),n.xp6(8),n.Oqu(n.lcZ(190,61,a.result_items)),n.xp6(3),n.Oqu(n.lcZ(193,63,null==a.result?null:a.result.result)),n.xp6(3),n.Oqu(n.lcZ(196,65,a.lp)))},dependencies:[be.sg,be.O5,Ve.xw,Ve.SQ,Ve.Wh,ne.Fj,ne.wV,ne.JJ,ne.qQ,ne.Fd,ne.On,Gn.lW,Xt.KE,Xt.hX,Rn.pH,Kn.Nt,Dn.Rr,ge.a8,ge.dk,ge.dn,ge.n5,ge.hq,Bn.gM,Vn.pW,jt.A9,jt.Yi,be.Ts],styles:["#result-table[_ngcontent-%COMP%] tr.line-top[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-top:1px solid #e0e0e0}#result-table[_ngcontent-%COMP%] tr.line-bottom[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-bottom:1px solid #e0e0e0}#result-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:last-of-type{border-left:1px solid #e0e0e0}#result-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-of-type{border-right:1px solid #e0e0e0}#result-table[_ngcontent-%COMP%] tr.item-row[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:nth-of-type(4){border-right:1px solid #e0e0e0}#result-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:not(.item-row) td[_ngcontent-%COMP%]:nth-of-type(2){border-right:1px solid #e0e0e0}.status-optimal[_ngcontent-%COMP%]{color:#4caf50}.status-acceptable[_ngcontent-%COMP%]{color:#ff9800}.status-infeasable[_ngcontent-%COMP%]{color:#f44336}.status-undefined[_ngcontent-%COMP%]{color:#9e9e9e}#result-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{text-align:right}#container[_ngcontent-%COMP%]{margin-bottom:20px;margin-top:20px}#slider-table[_ngcontent-%COMP%] mat-slider[_ngcontent-%COMP%]{width:200px}.input-list[_ngcontent-%COMP%]{max-width:450px;display:flex;flex-direction:row;flex-wrap:wrap}.input-list[_ngcontent-%COMP%] .input-list-entry[_ngcontent-%COMP%]{flex-basis:33.33333%}.row-masterwork[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:not(:first-of-type){color:#daa520}.theoretic[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:not(:first-of-type), .intrinsic[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:not(:first-of-type){color:#ecb5b5}.icon-item[_ngcontent-%COMP%]{height:20px}.exotic[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:nth-of-type(2){color:#e6d4b8}"]}),e})();var cs=M(6630),ps=M(4661);const fs=[{path:"",component:ms}];let gs=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=n.oAB({type:e}),e.\u0275inj=n.cJS({imports:[be.ez,ps.V,cs.Bz.forChild(fs)]}),e})()}}]); \ No newline at end of file +"use strict";(self.webpackChunkD2ArmorPicker=self.webpackChunkD2ArmorPicker||[]).push([[613],{8613:(bs,Ee,M)=>{M.r(Ee),M.d(Ee,{TheorizerPageModule:()=>gs});var be=M(6895),V=M(5861);function $(e){let i=e.length;for(;--i>=0;)e[i]=0}const Ae=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),ve=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Rt=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Fe=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),D=new Array(576);$(D);const se=new Array(60);$(se);const ae=new Array(512);$(ae);const ie=new Array(256);$(ie);const Ue=new Array(29);$(Ue);const Te=new Array(30);function Me(e,i,t,a,s){this.static_tree=e,this.extra_bits=i,this.extra_base=t,this.elems=a,this.max_length=s,this.has_stree=e&&e.length}let Ye,Je,He;function Oe(e,i){this.dyn_tree=e,this.max_code=0,this.stat_desc=i}$(Te);const We=e=>e<256?ae[e]:ae[256+(e>>>7)],re=(e,i)=>{e.pending_buf[e.pending++]=255&i,e.pending_buf[e.pending++]=i>>>8&255},j=(e,i,t)=>{e.bi_valid>16-t?(e.bi_buf|=i<>16-e.bi_valid,e.bi_valid+=t-16):(e.bi_buf|=i<{j(e,t[2*i],t[2*i+1])},Ie=(e,i)=>{let t=0;do{t|=1&e,e>>>=1,t<<=1}while(--i>0);return t>>>1},Qe=(e,i,t)=>{const a=new Array(16);let s,r,d=0;for(s=1;s<=15;s++)a[s]=d=d+t[s-1]<<1;for(r=0;r<=i;r++){let o=e[2*r+1];0!==o&&(e[2*r]=Ie(a[o]++,o))}},_e=e=>{let i;for(i=0;i<286;i++)e.dyn_ltree[2*i]=0;for(i=0;i<30;i++)e.dyn_dtree[2*i]=0;for(i=0;i<19;i++)e.bl_tree[2*i]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0},$e=e=>{e.bi_valid>8?re(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},et=(e,i,t,a)=>{const s=2*i,r=2*t;return e[s]{const a=e.heap[t];let s=t<<1;for(;s<=e.heap_len&&(s{let a,s,r,d,o=0;if(0!==e.last_lit)do{a=e.pending_buf[e.d_buf+2*o]<<8|e.pending_buf[e.d_buf+2*o+1],s=e.pending_buf[e.l_buf+o],o++,0===a?G(e,s,i):(r=ie[s],G(e,r+256+1,i),d=Ae[r],0!==d&&(s-=Ue[r],j(e,s,d)),a--,r=We(a),G(e,r,t),d=ve[r],0!==d&&(a-=Te[r],j(e,a,d)))}while(o{const t=i.dyn_tree,a=i.stat_desc.static_tree,s=i.stat_desc.has_stree,r=i.stat_desc.elems;let d,o,f,l=-1;for(e.heap_len=0,e.heap_max=573,d=0;d>1;d>=1;d--)Le(e,t,d);f=r;do{d=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Le(e,t,1),o=e.heap[1],e.heap[--e.heap_max]=d,e.heap[--e.heap_max]=o,t[2*f]=t[2*d]+t[2*o],e.depth[f]=(e.depth[d]>=e.depth[o]?e.depth[d]:e.depth[o])+1,t[2*d+1]=t[2*o+1]=f,e.heap[1]=f++,Le(e,t,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((u,y)=>{const b=y.dyn_tree,c=y.max_code,U=y.stat_desc.static_tree,k=y.stat_desc.has_stree,w=y.stat_desc.extra_bits,q=y.stat_desc.extra_base,P=y.stat_desc.max_length;let m,h,g,p,v,x,T=0;for(p=0;p<=15;p++)u.bl_count[p]=0;for(b[2*u.heap[u.heap_max]+1]=0,m=u.heap_max+1;m<573;m++)h=u.heap[m],p=b[2*b[2*h+1]+1]+1,p>P&&(p=P,T++),b[2*h+1]=p,h>c||(u.bl_count[p]++,v=0,h>=q&&(v=w[h-q]),x=b[2*h],u.opt_len+=x*(p+v),k&&(u.static_len+=x*(U[2*h+1]+v)));if(0!==T){do{for(p=P-1;0===u.bl_count[p];)p--;u.bl_count[p]--,u.bl_count[p+1]+=2,u.bl_count[P]--,T-=2}while(T>0);for(p=P;0!==p;p--)for(h=u.bl_count[p];0!==h;)g=u.heap[--m],g>c||(b[2*g+1]!==p&&(u.opt_len+=(p-b[2*g+1])*b[2*g],b[2*g+1]=p),h--)}})(e,i),Qe(t,l,e.bl_count)},nt=(e,i,t)=>{let a,s,r=-1,d=i[1],o=0,f=7,l=4;for(0===d&&(f=138,l=3),i[2*(t+1)+1]=65535,a=0;a<=t;a++)s=d,d=i[2*(a+1)+1],++o{let a,s,r=-1,d=i[1],o=0,f=7,l=4;for(0===d&&(f=138,l=3),a=0;a<=t;a++)if(s=d,d=i[2*(a+1)+1],!(++o{var s,r,d;j(e,0+(a?1:0),3),r=i,d=t,$e(s=e),re(s,d),re(s,~d),s.pending_buf.set(s.window.subarray(r,r+d),s.pending),s.pending+=d};var Dt={_tr_init:e=>{at||((()=>{let i,t,a,s,r;const d=new Array(16);for(a=0,s=0;s<28;s++)for(Ue[s]=a,i=0;i<1<>=7;s<30;s++)for(Te[s]=r<<7,i=0;i<1<{let s,r,d=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(o=>{let f,l=4093624447;for(f=0;f<=31;f++,l>>>=1)if(1&l&&0!==o.dyn_ltree[2*f])return 0;if(0!==o.dyn_ltree[18]||0!==o.dyn_ltree[20]||0!==o.dyn_ltree[26])return 1;for(f=32;f<256;f++)if(0!==o.dyn_ltree[2*f])return 1;return 0})(e)),Se(e,e.l_desc),Se(e,e.d_desc),d=(o=>{let f;for(nt(o,o.dyn_ltree,o.l_desc.max_code),nt(o,o.dyn_dtree,o.d_desc.max_code),Se(o,o.bl_desc),f=18;f>=3&&0===o.bl_tree[2*Fe[f]+1];f--);return o.opt_len+=3*(f+1)+5+5+4,f})(e),s=e.opt_len+3+7>>>3,r=e.static_len+3+7>>>3,r<=s&&(s=r)):s=r=t+5,t+4<=s&&-1!==i?it(e,i,t,a):4===e.strategy||r===s?(j(e,2+(a?1:0),3),tt(e,D,se)):(j(e,4+(a?1:0),3),((o,f,l,u)=>{let y;for(j(o,f-257,5),j(o,l-1,5),j(o,u-4,4),y=0;y(e.pending_buf[e.d_buf+2*e.last_lit]=i>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&i,e.pending_buf[e.l_buf+e.last_lit]=255&t,e.last_lit++,0===i?e.dyn_ltree[2*t]++:(e.matches++,i--,e.dyn_ltree[2*(ie[t]+256+1)]++,e.dyn_dtree[2*We(i)]++),e.last_lit===e.lit_bufsize-1),_tr_align:e=>{var i;j(e,2,3),G(e,256,D),16===(i=e).bi_valid?(re(i,i.bi_buf),i.bi_buf=0,i.bi_valid=0):i.bi_valid>=8&&(i.pending_buf[i.pending++]=255&i.bi_buf,i.bi_buf>>=8,i.bi_valid-=8)}},oe=(e,i,t,a)=>{let s=65535&e|0,r=e>>>16&65535|0,d=0;for(;0!==t;){d=t>2e3?2e3:t,t-=d;do{s=s+i[a++]|0,r=r+s|0}while(--d);s%=65521,r%=65521}return s|r<<16|0};const Bt=new Uint32Array((()=>{let e,i=[];for(var t=0;t<256;t++){e=t;for(var a=0;a<8;a++)e=1&e?3988292384^e>>>1:e>>>1;i[t]=e}return i})());var L=(e,i,t,a)=>{const s=Bt,r=a+t;e^=-1;for(let d=a;d>>8^s[255&(e^i[d])];return-1^e},ee={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},le={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Vt,_tr_stored_block:Et,_tr_flush_block:Ft,_tr_tally:E,_tr_align:Yt}=Dt,{Z_NO_FLUSH:I,Z_PARTIAL_FLUSH:Jt,Z_FULL_FLUSH:Ht,Z_FINISH:F,Z_BLOCK:rt,Z_OK:R,Z_STREAM_END:ot,Z_STREAM_ERROR:N,Z_DATA_ERROR:Wt,Z_BUF_ERROR:Xe,Z_DEFAULT_COMPRESSION:It,Z_FILTERED:Qt,Z_HUFFMAN_ONLY:we,Z_RLE:_t,Z_FIXED:$t,Z_UNKNOWN:tn,Z_DEFLATED:xe}=le,Y=(e,i)=>(e.msg=ee[i],i),lt=e=>(e<<1)-(e>4?9:0),J=e=>{let i=e.length;for(;--i>=0;)e[i]=0};let H=(e,i,t)=>(i<{const i=e.state;let t=i.pending;t>e.avail_out&&(t=e.avail_out),0!==t&&(e.output.set(i.pending_buf.subarray(i.pending_out,i.pending_out+t),e.next_out),e.next_out+=t,i.pending_out+=t,e.total_out+=t,e.avail_out-=t,i.pending-=t,0===i.pending&&(i.pending_out=0))},S=(e,i)=>{Ft(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,i),e.block_start=e.strstart,W(e.strm)},A=(e,i)=>{e.pending_buf[e.pending++]=i},de=(e,i)=>{e.pending_buf[e.pending++]=i>>>8&255,e.pending_buf[e.pending++]=255&i},nn=(e,i,t,a)=>{let s=e.avail_in;return s>a&&(s=a),0===s?0:(e.avail_in-=s,i.set(e.input.subarray(e.next_in,e.next_in+s),t),1===e.state.wrap?e.adler=oe(e.adler,i,s,t):2===e.state.wrap&&(e.adler=L(e.adler,i,s,t)),e.next_in+=s,e.total_in+=s,s)},dt=(e,i)=>{let t,a,s=e.max_chain_length,r=e.strstart,d=e.prev_length,o=e.nice_match;const f=e.strstart>e.w_size-262?e.strstart-(e.w_size-262):0,l=e.window,u=e.w_mask,y=e.prev,b=e.strstart+258;let c=l[r+d-1],U=l[r+d];e.prev_length>=e.good_match&&(s>>=2),o>e.lookahead&&(o=e.lookahead);do{if(t=i,l[t+d]===U&&l[t+d-1]===c&&l[t]===l[r]&&l[++t]===l[r+1]){r+=2,t++;do{}while(l[++r]===l[++t]&&l[++r]===l[++t]&&l[++r]===l[++t]&&l[++r]===l[++t]&&l[++r]===l[++t]&&l[++r]===l[++t]&&l[++r]===l[++t]&&l[++r]===l[++t]&&rd){if(e.match_start=i,d=a,a>=o)break;c=l[r+d-1],U=l[r+d]}}}while((i=y[i&u])>f&&0!=--s);return d<=e.lookahead?d:e.lookahead},Q=e=>{const i=e.w_size;let t,a,s,r,d;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=i+(i-262)){e.window.set(e.window.subarray(i,i+i),0),e.match_start-=i,e.strstart-=i,e.block_start-=i,a=e.hash_size,t=a;do{s=e.head[--t],e.head[t]=s>=i?s-i:0}while(--a);a=i,t=a;do{s=e.prev[--t],e.prev[t]=s>=i?s-i:0}while(--a);r+=i}if(0===e.strm.avail_in)break;if(a=nn(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=a,e.lookahead+e.insert>=3)for(d=e.strstart-e.insert,e.ins_h=e.window[d],e.ins_h=H(e,e.ins_h,e.window[d+1]);e.insert&&(e.ins_h=H(e,e.ins_h,e.window[d+3-1]),e.prev[d&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=d,d++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<262&&0!==e.strm.avail_in)},je=(e,i)=>{let t,a;for(;;){if(e.lookahead<262){if(Q(e),e.lookahead<262&&i===I)return 1;if(0===e.lookahead)break}if(t=0,e.lookahead>=3&&(e.ins_h=H(e,e.ins_h,e.window[e.strstart+3-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==t&&e.strstart-t<=e.w_size-262&&(e.match_length=dt(e,t)),e.match_length>=3)if(a=E(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=H(e,e.ins_h,e.window[e.strstart+3-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=H(e,e.ins_h,e.window[e.strstart+1]);else a=E(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(a&&(S(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,i===F?(S(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(S(e,!1),0===e.strm.avail_out)?1:2},te=(e,i)=>{let t,a,s;for(;;){if(e.lookahead<262){if(Q(e),e.lookahead<262&&i===I)return 1;if(0===e.lookahead)break}if(t=0,e.lookahead>=3&&(e.ins_h=H(e,e.ins_h,e.window[e.strstart+3-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==t&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){s=e.strstart+e.lookahead-3,a=E(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=s&&(e.ins_h=H(e,e.ins_h,e.window[e.strstart+3-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,a&&(S(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(a=E(e,0,e.window[e.strstart-1]),a&&S(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(a=E(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,i===F?(S(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(S(e,!1),0===e.strm.avail_out)?1:2};function K(e,i,t,a,s){this.good_length=e,this.max_lazy=i,this.nice_length=t,this.max_chain=a,this.func=s}const ue=[new K(0,0,0,0,(e,i)=>{let t=65535;for(t>e.pending_buf_size-5&&(t=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Q(e),0===e.lookahead&&i===I)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;const a=e.block_start+t;if((0===e.strstart||e.strstart>=a)&&(e.lookahead=e.strstart-a,e.strstart=a,S(e,!1),0===e.strm.avail_out)||e.strstart-e.block_start>=e.w_size-262&&(S(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,i===F?(S(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&S(e,!1),1)}),new K(4,4,8,4,je),new K(4,5,16,8,je),new K(4,6,32,32,je),new K(4,4,16,16,te),new K(8,16,32,32,te),new K(8,16,128,128,te),new K(8,32,128,256,te),new K(32,128,258,1024,te),new K(32,258,258,4096,te)];function sn(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=xe,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),J(this.dyn_ltree),J(this.dyn_dtree),J(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),J(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),J(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const ht=e=>{const i=(e=>{if(!e||!e.state)return Y(e,N);e.total_in=e.total_out=0,e.data_type=tn;const i=e.state;return i.pending=0,i.pending_out=0,i.wrap<0&&(i.wrap=-i.wrap),i.status=i.wrap?42:113,e.adler=2===i.wrap?0:1,i.last_flush=I,Vt(i),R})(e);var t;return i===R&&((t=e.state).window_size=2*t.w_size,J(t.head),t.max_lazy_match=ue[t.level].max_lazy,t.good_match=ue[t.level].good_length,t.nice_match=ue[t.level].nice_length,t.max_chain_length=ue[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=2,t.match_available=0,t.ins_h=0),i};var he_deflateInit2=(e,i,t,a,s,r)=>{if(!e)return N;let d=1;if(i===It&&(i=6),a<0?(d=0,a=-a):a>15&&(d=2,a-=16),s<1||s>9||t!==xe||a<8||a>15||i<0||i>9||r<0||r>$t)return Y(e,N);8===a&&(a=9);const o=new sn;return e.state=o,o.strm=e,o.wrap=d,o.gzhead=null,o.w_bits=a,o.w_size=1<{let t,a;if(!e||!e.state||i>rt||i<0)return e?Y(e,N):N;const s=e.state;if(!e.output||!e.input&&0!==e.avail_in||666===s.status&&i!==F)return Y(e,0===e.avail_out?Xe:N);s.strm=e;const r=s.last_flush;if(s.last_flush=i,42===s.status)if(2===s.wrap)e.adler=0,A(s,31),A(s,139),A(s,8),s.gzhead?(A(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(s.gzhead.extra?4:0)+(s.gzhead.name?8:0)+(s.gzhead.comment?16:0)),A(s,255&s.gzhead.time),A(s,s.gzhead.time>>8&255),A(s,s.gzhead.time>>16&255),A(s,s.gzhead.time>>24&255),A(s,9===s.level?2:s.strategy>=we||s.level<2?4:0),A(s,255&s.gzhead.os),s.gzhead.extra&&s.gzhead.extra.length&&(A(s,255&s.gzhead.extra.length),A(s,s.gzhead.extra.length>>8&255)),s.gzhead.hcrc&&(e.adler=L(e.adler,s.pending_buf,s.pending,0)),s.gzindex=0,s.status=69):(A(s,0),A(s,0),A(s,0),A(s,0),A(s,0),A(s,9===s.level?2:s.strategy>=we||s.level<2?4:0),A(s,3),s.status=113);else{let d=xe+(s.w_bits-8<<4)<<8,o=-1;o=s.strategy>=we||s.level<2?0:s.level<6?1:6===s.level?2:3,d|=o<<6,0!==s.strstart&&(d|=32),d+=31-d%31,s.status=113,de(s,d),0!==s.strstart&&(de(s,e.adler>>>16),de(s,65535&e.adler)),e.adler=1}if(69===s.status)if(s.gzhead.extra){for(t=s.pending;s.gzindex<(65535&s.gzhead.extra.length)&&(s.pending!==s.pending_buf_size||(s.gzhead.hcrc&&s.pending>t&&(e.adler=L(e.adler,s.pending_buf,s.pending-t,t)),W(e),t=s.pending,s.pending!==s.pending_buf_size));)A(s,255&s.gzhead.extra[s.gzindex]),s.gzindex++;s.gzhead.hcrc&&s.pending>t&&(e.adler=L(e.adler,s.pending_buf,s.pending-t,t)),s.gzindex===s.gzhead.extra.length&&(s.gzindex=0,s.status=73)}else s.status=73;if(73===s.status)if(s.gzhead.name){t=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>t&&(e.adler=L(e.adler,s.pending_buf,s.pending-t,t)),W(e),t=s.pending,s.pending===s.pending_buf_size)){a=1;break}a=s.gzindext&&(e.adler=L(e.adler,s.pending_buf,s.pending-t,t)),0===a&&(s.gzindex=0,s.status=91)}else s.status=91;if(91===s.status)if(s.gzhead.comment){t=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>t&&(e.adler=L(e.adler,s.pending_buf,s.pending-t,t)),W(e),t=s.pending,s.pending===s.pending_buf_size)){a=1;break}a=s.gzindext&&(e.adler=L(e.adler,s.pending_buf,s.pending-t,t)),0===a&&(s.status=103)}else s.status=103;if(103===s.status&&(s.gzhead.hcrc?(s.pending+2>s.pending_buf_size&&W(e),s.pending+2<=s.pending_buf_size&&(A(s,255&e.adler),A(s,e.adler>>8&255),e.adler=0,s.status=113)):s.status=113),0!==s.pending){if(W(e),0===e.avail_out)return s.last_flush=-1,R}else if(0===e.avail_in&<(i)<=lt(r)&&i!==F)return Y(e,Xe);if(666===s.status&&0!==e.avail_in)return Y(e,Xe);if(0!==e.avail_in||0!==s.lookahead||i!==I&&666!==s.status){let d=s.strategy===we?((o,f)=>{let l;for(;;){if(0===o.lookahead&&(Q(o),0===o.lookahead)){if(f===I)return 1;break}if(o.match_length=0,l=E(o,0,o.window[o.strstart]),o.lookahead--,o.strstart++,l&&(S(o,!1),0===o.strm.avail_out))return 1}return o.insert=0,f===F?(S(o,!0),0===o.strm.avail_out?3:4):o.last_lit&&(S(o,!1),0===o.strm.avail_out)?1:2})(s,i):s.strategy===_t?((o,f)=>{let l,u,y,b;const c=o.window;for(;;){if(o.lookahead<=258){if(Q(o),o.lookahead<=258&&f===I)return 1;if(0===o.lookahead)break}if(o.match_length=0,o.lookahead>=3&&o.strstart>0&&(y=o.strstart-1,u=c[y],u===c[++y]&&u===c[++y]&&u===c[++y])){b=o.strstart+258;do{}while(u===c[++y]&&u===c[++y]&&u===c[++y]&&u===c[++y]&&u===c[++y]&&u===c[++y]&&u===c[++y]&&u===c[++y]&&yo.lookahead&&(o.match_length=o.lookahead)}if(o.match_length>=3?(l=E(o,1,o.match_length-3),o.lookahead-=o.match_length,o.strstart+=o.match_length,o.match_length=0):(l=E(o,0,o.window[o.strstart]),o.lookahead--,o.strstart++),l&&(S(o,!1),0===o.strm.avail_out))return 1}return o.insert=0,f===F?(S(o,!0),0===o.strm.avail_out?3:4):o.last_lit&&(S(o,!1),0===o.strm.avail_out)?1:2})(s,i):ue[s.level].func(s,i);if(3!==d&&4!==d||(s.status=666),1===d||3===d)return 0===e.avail_out&&(s.last_flush=-1),R;if(2===d&&(i===Jt?Yt(s):i!==rt&&(Et(s,0,0,!1),i===Ht&&(J(s.head),0===s.lookahead&&(s.strstart=0,s.block_start=0,s.insert=0))),W(e),0===e.avail_out))return s.last_flush=-1,R}return i!==F?R:s.wrap<=0?ot:(2===s.wrap?(A(s,255&e.adler),A(s,e.adler>>8&255),A(s,e.adler>>16&255),A(s,e.adler>>24&255),A(s,255&e.total_in),A(s,e.total_in>>8&255),A(s,e.total_in>>16&255),A(s,e.total_in>>24&255)):(de(s,e.adler>>>16),de(s,65535&e.adler)),W(e),s.wrap>0&&(s.wrap=-s.wrap),0!==s.pending?R:ot)},he_deflateEnd=e=>{if(!e||!e.state)return N;const i=e.state.status;return 42!==i&&69!==i&&73!==i&&91!==i&&103!==i&&113!==i&&666!==i?Y(e,N):(e.state=null,113===i?Y(e,Wt):R)};const an=(e,i)=>Object.prototype.hasOwnProperty.call(e,i);var ct=function(e){const i=Array.prototype.slice.call(arguments,1);for(;i.length;){const t=i.shift();if(t){if("object"!=typeof t)throw new TypeError(t+"must be non-object");for(const a in t)an(t,a)&&(e[a]=t[a])}}return e},pt=e=>{let i=0;for(let a=0,s=e.length;a=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;me[254]=me[254]=1;var Ne=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let i,t,a,s,r,d=e.length,o=0;for(s=0;s>>6,i[r++]=128|63&t):t<65536?(i[r++]=224|t>>>12,i[r++]=128|t>>>6&63,i[r++]=128|63&t):(i[r++]=240|t>>>18,i[r++]=128|t>>>12&63,i[r++]=128|t>>>6&63,i[r++]=128|63&t);return i},rn=(e,i)=>{const t=i||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,i));let a,s;const r=new Array(2*t);for(s=0,a=0;a4)r[s++]=65533,a+=o-1;else{for(d&=2===o?31:3===o?15:7;o>1&&a1?r[s++]=65533:d<65536?r[s++]=d:(d-=65536,r[s++]=55296|d>>10&1023,r[s++]=56320|1023&d)}}return((d,o)=>{if(o<65534&&d.subarray&&ft)return String.fromCharCode.apply(null,d.length===o?d:d.subarray(0,o));let f="";for(let l=0;l{(i=i||e.length)>e.length&&(i=e.length);let t=i-1;for(;t>=0&&128==(192&e[t]);)t--;return t<0||0===t?i:t+me[e[t]]>i?t:i},gt=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const bt=Object.prototype.toString,{Z_NO_FLUSH:ln,Z_SYNC_FLUSH:dn,Z_FULL_FLUSH:un,Z_FINISH:hn,Z_OK:ye,Z_STREAM_END:mn,Z_DEFAULT_COMPRESSION:cn,Z_DEFAULT_STRATEGY:pn,Z_DEFLATED:fn}=le;function Ce(e){this.options=ct({level:cn,method:fn,chunkSize:16384,windowBits:15,memLevel:8,strategy:pn},e||{});let i=this.options;i.raw&&i.windowBits>0?i.windowBits=-i.windowBits:i.gzip&&i.windowBits>0&&i.windowBits<16&&(i.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new gt,this.strm.avail_out=0;let t=he_deflateInit2(this.strm,i.level,i.method,i.windowBits,i.memLevel,i.strategy);if(t!==ye)throw new Error(ee[t]);if(i.header&&((e,i)=>{e&&e.state&&(2!==e.state.wrap||(e.state.gzhead=i))})(this.strm,i.header),i.dictionary){let a;if(a="string"==typeof i.dictionary?Ne(i.dictionary):"[object ArrayBuffer]"===bt.call(i.dictionary)?new Uint8Array(i.dictionary):i.dictionary,t=((e,i)=>{let t=i.length;if(!e||!e.state)return N;const a=e.state,s=a.wrap;if(2===s||1===s&&42!==a.status||a.lookahead)return N;if(1===s&&(e.adler=oe(e.adler,i,t,0)),a.wrap=0,t>=a.w_size){0===s&&(J(a.head),a.strstart=0,a.block_start=0,a.insert=0);let f=new Uint8Array(a.w_size);f.set(i.subarray(t-a.w_size,t),0),i=f,t=a.w_size}const r=e.avail_in,d=e.next_in,o=e.input;for(e.avail_in=t,e.next_in=0,e.input=i,Q(a);a.lookahead>=3;){let f=a.strstart,l=a.lookahead-2;do{a.ins_h=H(a,a.ins_h,a.window[f+3-1]),a.prev[f&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=f,f++}while(--l);a.strstart=f,a.lookahead=2,Q(a)}return a.strstart+=a.lookahead,a.block_start=a.strstart,a.insert=a.lookahead,a.lookahead=0,a.match_length=a.prev_length=2,a.match_available=0,e.next_in=d,e.input=o,e.avail_in=r,a.wrap=s,R})(this.strm,a),t!==ye)throw new Error(ee[t]);this._dict_set=!0}}Ce.prototype.push=function(e,i){const t=this.strm,a=this.options.chunkSize;let s,r;if(this.ended)return!1;for(r=i===~~i?i:!0===i?hn:ln,t.input="string"==typeof e?Ne(e):"[object ArrayBuffer]"===bt.call(e)?new Uint8Array(e):e,t.next_in=0,t.avail_in=t.input.length;;)if(0===t.avail_out&&(t.output=new Uint8Array(a),t.next_out=0,t.avail_out=a),(r===dn||r===un)&&t.avail_out<=6)this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;else{if(s=he_deflate(t,r),s===mn)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),s=he_deflateEnd(this.strm),this.onEnd(s),this.ended=!0,s===ye;if(0!==t.avail_out){if(r>0&&t.next_out>0)this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;else if(0===t.avail_in)break}else this.onData(t.output)}return!0},Ce.prototype.onData=function(e){this.chunks.push(e)},Ce.prototype.onEnd=function(e){e===ye&&(this.result=pt(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var gn=function(e,i){let t,a,s,r,d,o,f,l,u,y,b,c,U,k,w,q,P,m,h,g,p,v,x,T;const Z=e.state;t=e.next_in,x=e.input,a=t+(e.avail_in-5),s=e.next_out,T=e.output,r=s-(i-e.avail_out),d=s+(e.avail_out-257),o=Z.dmax,f=Z.wsize,l=Z.whave,u=Z.wnext,y=Z.window,b=Z.hold,c=Z.bits,U=Z.lencode,k=Z.distcode,w=(1<>>24,b>>>=m,c-=m,m=P>>>16&255,0===m)T[s++]=65535&P;else{if(!(16&m)){if(0==(64&m)){P=U[(65535&P)+(b&(1<>>=m,c-=m),c<15&&(b+=x[t++]<>>24,b>>>=m,c-=m,m=P>>>16&255,!(16&m)){if(0==(64&m)){P=k[(65535&P)+(b&(1<o){e.msg="invalid distance too far back",Z.mode=30;break e}if(b>>>=m,c-=m,m=s-r,g>m){if(m=g-m,m>l&&Z.sane){e.msg="invalid distance too far back",Z.mode=30;break e}if(p=0,v=y,0===u){if(p+=f-m,m2;)T[s++]=v[p++],T[s++]=v[p++],T[s++]=v[p++],h-=3;h&&(T[s++]=v[p++],h>1&&(T[s++]=v[p++]))}else{p=s-g;do{T[s++]=T[p++],T[s++]=T[p++],T[s++]=T[p++],h-=3}while(h>2);h&&(T[s++]=T[p++],h>1&&(T[s++]=T[p++]))}break}}break}}while(t>3,t-=h,c-=h<<3,b&=(1<{const f=o.bits;let l,u,y,b,c,U,k=0,w=0,q=0,P=0,m=0,h=0,g=0,p=0,v=0,x=0,T=null,Z=0;const z=new Uint16Array(16),O=new Uint16Array(16);let Ct,ke,ze,qe=null,Gt=0;for(k=0;k<=15;k++)z[k]=0;for(w=0;w=1&&0===z[P];P--);if(m>P&&(m=P),0===P)return s[r++]=20971520,s[r++]=20971520,o.bits=1,0;for(q=1;q0&&(0===e||1!==P))return-1;for(O[1]=0,k=1;k<15;k++)O[k+1]=O[k]+z[k];for(w=0;w852||2===e&&v>592)return 1;for(;;){Ct=k-g,d[w]U?(ke=qe[Gt+d[w]],ze=T[Z+d[w]]):(ke=96,ze=0),l=1<>g)+u]=Ct<<24|ke<<16|ze|0}while(0!==u);for(l=1<>=1;if(0!==l?(x&=l-1,x+=l):x=0,w++,0==--z[k]){if(k===P)break;k=i[t+d[w]]}if(k>m&&(x&b)!==y){for(0===g&&(g=m),c+=q,h=k-g,p=1<852||2===e&&v>592)return 1;y=x&b,s[y]=m<<24|h<<16|c-r|0}}return 0!==x&&(s[c+x]=k-g<<24|64<<16|0),o.bits=m,0};const{Z_FINISH:vt,Z_BLOCK:xn,Z_TREES:Pe,Z_OK:_,Z_STREAM_END:yn,Z_NEED_DICT:Pn,Z_STREAM_ERROR:C,Z_DATA_ERROR:Tt,Z_MEM_ERROR:wt,Z_BUF_ERROR:Zn,Z_DEFLATED:xt}=le,yt=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function kn(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Zt=e=>{if(!e||!e.state)return C;const i=e.state;return i.wsize=0,i.whave=0,i.wnext=0,(e=>{if(!e||!e.state)return C;const i=e.state;return e.total_in=e.total_out=i.total=0,e.msg="",i.wrap&&(e.adler=1&i.wrap),i.mode=1,i.last=0,i.havedict=0,i.dmax=32768,i.head=null,i.hold=0,i.bits=0,i.lencode=i.lendyn=new Int32Array(852),i.distcode=i.distdyn=new Int32Array(592),i.sane=1,i.back=-1,_})(e)};let Ge,Re,qt=!0;const zn=e=>{if(qt){Ge=new Int32Array(512),Re=new Int32Array(32);let i=0;for(;i<144;)e.lens[i++]=8;for(;i<256;)e.lens[i++]=9;for(;i<280;)e.lens[i++]=7;for(;i<288;)e.lens[i++]=8;for(ce(1,e.lens,0,288,Ge,0,e.work,{bits:9}),i=0;i<32;)e.lens[i++]=5;ce(2,e.lens,0,32,Re,0,e.work,{bits:5}),qt=!1}e.lencode=Ge,e.lenbits=9,e.distcode=Re,e.distbits=5},At=(e,i,t,a)=>{let s;const r=e.state;return null===r.window&&(r.wsize=1<=r.wsize?(r.window.set(i.subarray(t-r.wsize,t),0),r.wnext=0,r.whave=r.wsize):(s=r.wsize-r.wnext,s>a&&(s=a),r.window.set(i.subarray(t-a,t-a+s),r.wnext),(a-=s)?(r.window.set(i.subarray(t-a,t),0),r.wnext=a,r.whave=r.wsize):(r.wnext+=s,r.wnext===r.wsize&&(r.wnext=0),r.whave{if(!e)return C;const t=new kn;e.state=t,t.window=null;const a=((e,i)=>{let t;if(!e||!e.state)return C;const a=e.state;return i<0?(t=0,i=-i):(t=1+(i>>4),i<48&&(i&=15)),i&&(i<8||i>15)?C:(null!==a.window&&a.wbits!==i&&(a.window=null),a.wrap=t,a.wbits=i,Zt(e))})(e,i);return a!==_&&(e.state=null),a},B_inflate=(e,i)=>{let t,a,s,r,d,o,f,l,u,y,b,c,U,k,w,q,P,m,h,g,p,v,x=0;const T=new Uint8Array(4);let Z,z;const O=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return C;t=e.state,12===t.mode&&(t.mode=13),d=e.next_out,s=e.output,f=e.avail_out,r=e.next_in,a=e.input,o=e.avail_in,l=t.hold,u=t.bits,y=o,b=f,v=_;e:for(;;)switch(t.mode){case 1:if(0===t.wrap){t.mode=13;break}for(;u<16;){if(0===o)break e;o--,l+=a[r++]<>>8&255,t.check=L(t.check,T,2,0),l=0,u=0,t.mode=2;break}if(t.flags=0,t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&l)<<8)+(l>>8))%31){e.msg="incorrect header check",t.mode=30;break}if((15&l)!==xt){e.msg="unknown compression method",t.mode=30;break}if(l>>>=4,u-=4,p=8+(15&l),0===t.wbits)t.wbits=p;else if(p>t.wbits){e.msg="invalid window size",t.mode=30;break}t.dmax=1<>8&1),512&t.flags&&(T[0]=255&l,T[1]=l>>>8&255,t.check=L(t.check,T,2,0)),l=0,u=0,t.mode=3;case 3:for(;u<32;){if(0===o)break e;o--,l+=a[r++]<>>8&255,T[2]=l>>>16&255,T[3]=l>>>24&255,t.check=L(t.check,T,4,0)),l=0,u=0,t.mode=4;case 4:for(;u<16;){if(0===o)break e;o--,l+=a[r++]<>8),512&t.flags&&(T[0]=255&l,T[1]=l>>>8&255,t.check=L(t.check,T,2,0)),l=0,u=0,t.mode=5;case 5:if(1024&t.flags){for(;u<16;){if(0===o)break e;o--,l+=a[r++]<>>8&255,t.check=L(t.check,T,2,0)),l=0,u=0}else t.head&&(t.head.extra=null);t.mode=6;case 6:if(1024&t.flags&&(c=t.length,c>o&&(c=o),c&&(t.head&&(p=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(a.subarray(r,r+c),p)),512&t.flags&&(t.check=L(t.check,a,c,r)),o-=c,r+=c,t.length-=c),t.length))break e;t.length=0,t.mode=7;case 7:if(2048&t.flags){if(0===o)break e;c=0;do{p=a[r+c++],t.head&&p&&t.length<65536&&(t.head.name+=String.fromCharCode(p))}while(p&&c>9&1,t.head.done=!0),e.adler=t.check=0,t.mode=12;break;case 10:for(;u<32;){if(0===o)break e;o--,l+=a[r++]<>>=7&u,u-=7&u,t.mode=27;break}for(;u<3;){if(0===o)break e;o--,l+=a[r++]<>>=1,u-=1,3&l){case 0:t.mode=14;break;case 1:if(zn(t),t.mode=20,i===Pe){l>>>=2,u-=2;break e}break;case 2:t.mode=17;break;case 3:e.msg="invalid block type",t.mode=30}l>>>=2,u-=2;break;case 14:for(l>>>=7&u,u-=7&u;u<32;){if(0===o)break e;o--,l+=a[r++]<>>16^65535)){e.msg="invalid stored block lengths",t.mode=30;break}if(t.length=65535&l,l=0,u=0,t.mode=15,i===Pe)break e;case 15:t.mode=16;case 16:if(c=t.length,c){if(c>o&&(c=o),c>f&&(c=f),0===c)break e;s.set(a.subarray(r,r+c),d),o-=c,r+=c,f-=c,d+=c,t.length-=c;break}t.mode=12;break;case 17:for(;u<14;){if(0===o)break e;o--,l+=a[r++]<>>=5,u-=5,t.ndist=1+(31&l),l>>>=5,u-=5,t.ncode=4+(15&l),l>>>=4,u-=4,t.nlen>286||t.ndist>30){e.msg="too many length or distance symbols",t.mode=30;break}t.have=0,t.mode=18;case 18:for(;t.have>>=3,u-=3}for(;t.have<19;)t.lens[O[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,Z={bits:t.lenbits},v=ce(0,t.lens,0,19,t.lencode,0,t.work,Z),t.lenbits=Z.bits,v){e.msg="invalid code lengths set",t.mode=30;break}t.have=0,t.mode=19;case 19:for(;t.have>>24,q=x>>>16&255,P=65535&x,!(w<=u);){if(0===o)break e;o--,l+=a[r++]<>>=w,u-=w,t.lens[t.have++]=P;else{if(16===P){for(z=w+2;u>>=w,u-=w,0===t.have){e.msg="invalid bit length repeat",t.mode=30;break}p=t.lens[t.have-1],c=3+(3&l),l>>>=2,u-=2}else if(17===P){for(z=w+3;u>>=w,u-=w,p=0,c=3+(7&l),l>>>=3,u-=3}else{for(z=w+7;u>>=w,u-=w,p=0,c=11+(127&l),l>>>=7,u-=7}if(t.have+c>t.nlen+t.ndist){e.msg="invalid bit length repeat",t.mode=30;break}for(;c--;)t.lens[t.have++]=p}}if(30===t.mode)break;if(0===t.lens[256]){e.msg="invalid code -- missing end-of-block",t.mode=30;break}if(t.lenbits=9,Z={bits:t.lenbits},v=ce(1,t.lens,0,t.nlen,t.lencode,0,t.work,Z),t.lenbits=Z.bits,v){e.msg="invalid literal/lengths set",t.mode=30;break}if(t.distbits=6,t.distcode=t.distdyn,Z={bits:t.distbits},v=ce(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,Z),t.distbits=Z.bits,v){e.msg="invalid distances set",t.mode=30;break}if(t.mode=20,i===Pe)break e;case 20:t.mode=21;case 21:if(o>=6&&f>=258){e.next_out=d,e.avail_out=f,e.next_in=r,e.avail_in=o,t.hold=l,t.bits=u,gn(e,b),d=e.next_out,s=e.output,f=e.avail_out,r=e.next_in,a=e.input,o=e.avail_in,l=t.hold,u=t.bits,12===t.mode&&(t.back=-1);break}for(t.back=0;x=t.lencode[l&(1<>>24,q=x>>>16&255,P=65535&x,!(w<=u);){if(0===o)break e;o--,l+=a[r++]<>m)],w=x>>>24,q=x>>>16&255,P=65535&x,!(m+w<=u);){if(0===o)break e;o--,l+=a[r++]<>>=m,u-=m,t.back+=m}if(l>>>=w,u-=w,t.back+=w,t.length=P,0===q){t.mode=26;break}if(32&q){t.back=-1,t.mode=12;break}if(64&q){e.msg="invalid literal/length code",t.mode=30;break}t.extra=15&q,t.mode=22;case 22:if(t.extra){for(z=t.extra;u>>=t.extra,u-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=23;case 23:for(;x=t.distcode[l&(1<>>24,q=x>>>16&255,P=65535&x,!(w<=u);){if(0===o)break e;o--,l+=a[r++]<>m)],w=x>>>24,q=x>>>16&255,P=65535&x,!(m+w<=u);){if(0===o)break e;o--,l+=a[r++]<>>=m,u-=m,t.back+=m}if(l>>>=w,u-=w,t.back+=w,64&q){e.msg="invalid distance code",t.mode=30;break}t.offset=P,t.extra=15&q,t.mode=24;case 24:if(t.extra){for(z=t.extra;u>>=t.extra,u-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){e.msg="invalid distance too far back",t.mode=30;break}t.mode=25;case 25:if(0===f)break e;if(c=b-f,t.offset>c){if(c=t.offset-c,c>t.whave&&t.sane){e.msg="invalid distance too far back",t.mode=30;break}c>t.wnext?(c-=t.wnext,U=t.wsize-c):U=t.wnext-c,c>t.length&&(c=t.length),k=t.window}else k=s,U=d-t.offset,c=t.length;c>f&&(c=f),f-=c,t.length-=c;do{s[d++]=k[U++]}while(--c);0===t.length&&(t.mode=21);break;case 26:if(0===f)break e;s[d++]=t.length,f--,t.mode=21;break;case 27:if(t.wrap){for(;u<32;){if(0===o)break e;o--,l|=a[r++]<{if(!e||!e.state)return C;let i=e.state;return i.window&&(i.window=null),e.state=null,_},B_inflateSetDictionary=(e,i)=>{const t=i.length;let a,s,r;return e&&e.state?(a=e.state,0!==a.wrap&&11!==a.mode?C:11===a.mode&&(s=1,s=oe(s,i,t,0),s!==a.check)?Tt:(r=At(e,i,t,t),r?(a.mode=31,wt):(a.havedict=1,_))):C},qn=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const Ut=Object.prototype.toString,{Z_NO_FLUSH:An,Z_FINISH:Un,Z_OK:pe,Z_STREAM_END:Ke,Z_NEED_DICT:De,Z_STREAM_ERROR:Mn,Z_DATA_ERROR:Mt,Z_MEM_ERROR:On}=le;function fe(e){this.options=ct({chunkSize:65536,windowBits:15,to:""},e||{});const i=this.options;i.raw&&i.windowBits>=0&&i.windowBits<16&&(i.windowBits=-i.windowBits,0===i.windowBits&&(i.windowBits=-15)),!(i.windowBits>=0&&i.windowBits<16)||e&&e.windowBits||(i.windowBits+=32),i.windowBits>15&&i.windowBits<48&&0==(15&i.windowBits)&&(i.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new gt,this.strm.avail_out=0;let t=B_inflateInit2(this.strm,i.windowBits);if(t!==pe)throw new Error(ee[t]);if(this.header=new qn,((e,i)=>{if(!e||!e.state)return C;const t=e.state;0==(2&t.wrap)||(t.head=i,i.done=!1)})(this.strm,this.header),i.dictionary&&("string"==typeof i.dictionary?i.dictionary=Ne(i.dictionary):"[object ArrayBuffer]"===Ut.call(i.dictionary)&&(i.dictionary=new Uint8Array(i.dictionary)),i.raw&&(t=B_inflateSetDictionary(this.strm,i.dictionary),t!==pe)))throw new Error(ee[t])}function Be(e,i){const t=new fe(i);if(t.push(e),t.err)throw t.msg||ee[t.err];return t.result}fe.prototype.push=function(e,i){const t=this.strm,a=this.options.chunkSize,s=this.options.dictionary;let r,d,o;if(this.ended)return!1;for(d=i===~~i?i:!0===i?Un:An,t.input="[object ArrayBuffer]"===Ut.call(e)?new Uint8Array(e):e,t.next_in=0,t.avail_in=t.input.length;;){for(0===t.avail_out&&(t.output=new Uint8Array(a),t.next_out=0,t.avail_out=a),r=B_inflate(t,d),r===De&&s&&(r=B_inflateSetDictionary(t,s),r===pe?r=B_inflate(t,d):r===Mt&&(r=De));t.avail_in>0&&r===Ke&&t.state.wrap>0&&0!==e[t.next_in];)B_inflateReset(t),r=B_inflate(t,d);switch(r){case Mn:case Mt:case De:case On:return this.onEnd(r),this.ended=!0,!1}if(o=t.avail_out,t.next_out&&(0===t.avail_out||r===Ke))if("string"===this.options.to){let f=on(t.output,t.next_out),l=t.next_out-f,u=rn(t.output,f);t.next_out=l,t.avail_out=a-l,l&&t.output.set(t.output.subarray(f,f+l),0),this.onData(u)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(r!==pe||0!==o){if(r===Ke)return r=B_inflateEnd(this.strm),this.onEnd(r),this.ended=!0,!0;if(0===t.avail_in)break}}return!0},fe.prototype.onData=function(e){this.chunks.push(e)},fe.prototype.onEnd=function(e){e===pe&&(this.result="string"===this.options.to?this.chunks.join(""):pt(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Ln={Inflate:fe,inflate:Be,inflateRaw:function(e,i){return(i=i||{}).raw=!0,Be(e,i)},ungzip:Be,constants:le};const{inflate:Sn}=Ln;var Ot=Sn;const Xn=URL.createObjectURL(new Blob([Ot(Uint8Array.from(atob("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"),e=>e.charCodeAt(0)),{to:"string"})],{type:"text/javascript"})),jn=Ot(Uint8Array.from(atob("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"),e=>e.charCodeAt(0))).buffer,Lt=function(e,i){if(!new.target)return Object.freeze(new Lt(e,i));Object.keys(i).forEach(s=>{this[s]=i[s]});const t=[],a=(s,r={})=>new Promise((d,o)=>{s.cb=r.each,t.push({resolve:d,reject:o,cb:r.call}),e.postMessage(s)});e.onmessage=s=>{const{cb:r,res:d}=s.data;r?t[0].cb(r):t.shift().resolve(d)},e.onerror=s=>{s.preventDefault(),t.shift().reject(s)},this.solve=(s,r)=>{const d={..."number"==typeof(r=r||s.options||{})?{msglev:r}:r,cb:null};return r.cb&&r.cb.call&&"function"==typeof r.cb.call?a({cmd:"solve",lp:s,opt:d},r.cb):a({cmd:"solve",lp:s,opt:d})},this.write=s=>a({cmd:"write",lp:s}),this.terminate=()=>e.terminate()};var Cn=M(8333),X=M(6471),St=M(4682),Ze=M(1043),n=M(4650),Ve=M(1576),ne=M(4006),Gn=M(4859),Xt=M(9549),Rn=M(7314),Kn=M(4144),Dn=M(455),ge=M(3546),Bn=M(266),Vn=M(3162),jt=M(811);function En(e,i){if(1&e&&(n.TgZ(0,"td"),n._uU(1),n.qZA()),2&e){const t=n.oxw().index,a=n.oxw(2);n.xp6(1),n.Oqu(a.result_items.itemMeta[t].name)}}function Fn(e,i){1&e&&(n.TgZ(0,"td"),n._uU(1,"THEORETICAL"),n.qZA())}function Yn(e,i){1&e&&n._UZ(0,"td")}function Jn(e,i){if(1&e&&n._UZ(0,"img",28),2&e){const t=n.oxw().index,a=n.oxw(2);n.Q6J("matTooltip",a.result_items.itemMeta[t].icon)("src","https://bungie.net/"+a.result_items.itemMeta[t].icon,n.LSH)}}function Hn(e,i){1&e&&n._UZ(0,"img",29)}function Wn(e,i){if(1&e&&n._UZ(0,"img",28),2&e){const t=n.oxw(3);n.Q6J("matTooltip",t.getPerkName(2))("src",t.getPerkIconUrl(2),n.LSH)}}function In(e,i){if(1&e&&n._UZ(0,"img",28),2&e){const t=n.oxw().index,a=n.oxw(2);n.Q6J("matTooltip",a.getPerkName(a.result_items.itemMeta[t].perk))("src",a.getPerkIconUrl(a.result_items.itemMeta[t].perk),n.LSH)}}function Qn(e,i){if(1&e&&(n.TgZ(0,"td"),n._uU(1),n.qZA()),2&e){const t=i.$implicit;n.xp6(1),n.Oqu(t)}}function _n(e,i){if(1&e&&n._UZ(0,"img",28),2&e){const t=i.$implicit;n.Q6J("matTooltip",t.name)("src","https://bungie.net/"+t.icon,n.LSH)}}function $n(e,i){if(1&e&&(n.TgZ(0,"tr",30)(1,"td"),n._uU(2),n.qZA(),n.TgZ(3,"td",18),n._uU(4," intrinsic on\xa0 "),n.YNc(5,_n,1,2,"img",31),n.qZA(),n.TgZ(6,"td"),n._uU(7),n.qZA(),n.TgZ(8,"td"),n._uU(9),n.qZA(),n.TgZ(10,"td"),n._uU(11),n.qZA(),n.TgZ(12,"td"),n._uU(13,"0"),n.qZA(),n.TgZ(14,"td"),n._uU(15,"0"),n.qZA(),n.TgZ(16,"td"),n._uU(17,"0"),n.qZA(),n.TgZ(18,"td"),n._uU(19),n.qZA()()),2&e){const t=n.oxw().index,a=n.oxw(2);n.xp6(2),n.Oqu(a.slotNameByIndex(t)),n.xp6(3),n.Q6J("ngForOf",a.result_items.itemIntrinsics[t].items),n.xp6(2),n.Oqu(a.result_items.itemIntrinsics[t].entry.stats[0]),n.xp6(2),n.Oqu(a.result_items.itemIntrinsics[t].entry.stats[1]),n.xp6(2),n.Oqu(a.result_items.itemIntrinsics[t].entry.stats[2]),n.xp6(8),n.Oqu(a.sum(a.result_items.itemIntrinsics[t].entry.stats))}}function es(e,i){if(1&e&&(n.ynx(0),n.TgZ(1,"tr",24)(2,"td"),n._uU(3),n.qZA(),n.YNc(4,En,2,1,"td",21),n.YNc(5,Fn,2,0,"td",21),n.YNc(6,Yn,1,0,"td",21),n.TgZ(7,"td"),n.YNc(8,Jn,1,2,"img",25),n.YNc(9,Hn,1,0,"img",26),n.qZA(),n.TgZ(10,"td"),n.YNc(11,Wn,1,2,"img",25),n.YNc(12,In,1,2,"img",25),n.qZA(),n.YNc(13,Qn,2,1,"td",19),n.TgZ(14,"td"),n._uU(15),n.qZA()(),n.YNc(16,$n,20,6,"tr",27),n.BQk()),2&e){const t=i.$implicit,a=i.index,s=n.oxw(2);n.xp6(1),n.ekj("exotic",s.result_items.itemExotic[a])("theoretic",!s.result_items.itemMeta[a]&&a<4)("real",!s.result_items.itemMeta[a]&&a<4),n.xp6(2),n.Oqu(s.slotNameByIndex(a)),n.xp6(1),n.Q6J("ngIf",a<4&&s.result_items.itemMeta[a]),n.xp6(1),n.Q6J("ngIf",a<4&&!s.result_items.itemMeta[a]),n.xp6(1),n.Q6J("ngIf",4===a),n.xp6(2),n.Q6J("ngIf",s.result_items.itemMeta[a]),n.xp6(1),n.Q6J("ngIf",!s.result_items.itemMeta[a]),n.xp6(2),n.Q6J("ngIf",s.result_items.itemArtifice[a]),n.xp6(1),n.Q6J("ngIf",!s.result_items.itemArtifice[a]&&s.result_items.itemMeta[a]&&0!==s.result_items.itemMeta[a].perk),n.xp6(1),n.Q6J("ngForOf",t),n.xp6(2),n.Oqu(s.sum(t)),n.xp6(1),n.Q6J("ngIf",s.result_items.itemIntrinsics[a])}}function ts(e,i){if(1&e&&(n.TgZ(0,"td"),n._uU(1),n.qZA()),2&e){const t=i.$implicit;n.xp6(1),n.Oqu(t)}}function ns(e,i){if(1&e&&(n.TgZ(0,"td"),n._uU(1),n.qZA()),2&e){const t=i.$implicit;n.xp6(1),n.Oqu(t)}}function ss(e,i){if(1&e&&(n.TgZ(0,"tr")(1,"td"),n._uU(2,"Constant Boosts"),n.qZA(),n._UZ(3,"td",18),n.YNc(4,ns,2,1,"td",19),n.TgZ(5,"td"),n._uU(6),n.qZA()()),2&e){const t=n.oxw(2);n.xp6(4),n.Q6J("ngForOf",t.result_items.constants),n.xp6(2),n.Oqu(t.sum(t.result_items.constants))}}function as(e,i){if(1&e&&(n.TgZ(0,"td"),n._uU(1),n.qZA()),2&e){const t=i.$implicit;n.xp6(1),n.Oqu(10*t)}}function is(e,i){if(1&e&&(n.TgZ(0,"td"),n._uU(1),n.qZA()),2&e){const t=i.$implicit;n.xp6(1),n.Oqu(5*t)}}function rs(e,i){if(1&e&&(n.TgZ(0,"td"),n._uU(1),n.qZA()),2&e){const t=i.$implicit;n.xp6(1),n.Oqu(3*t)}}function os(e,i){if(1&e&&(n.TgZ(0,"td"),n._uU(1),n.qZA()),2&e){const t=i.$implicit;n.xp6(1),n.Oqu(t)}}function ls(e,i){if(1&e&&(n.TgZ(0,"td"),n._uU(1),n.qZA()),2&e){const t=i.$implicit;n.xp6(1),n.Oqu(t)}}function ds(e,i){if(1&e&&(n.TgZ(0,"td"),n._uU(1),n.qZA()),2&e){const t=i.$implicit;n.xp6(1),n.Oqu(t)}}function us(e,i){if(1&e&&(n.TgZ(0,"table",16)(1,"tr",17)(2,"td"),n._uU(3,"Type"),n.qZA(),n.TgZ(4,"td",18),n._uU(5,"Item Definition"),n.qZA(),n.TgZ(6,"td"),n._uU(7,"Mobility"),n.qZA(),n.TgZ(8,"td"),n._uU(9,"Resilience"),n.qZA(),n.TgZ(10,"td"),n._uU(11,"Recovery"),n.qZA(),n.TgZ(12,"td"),n._uU(13,"Discipline"),n.qZA(),n.TgZ(14,"td"),n._uU(15,"Intellect"),n.qZA(),n.TgZ(16,"td"),n._uU(17,"Strength"),n.qZA(),n.TgZ(18,"td"),n._uU(19,"Sum"),n.qZA()(),n.YNc(20,es,17,17,"ng-container",19),n.TgZ(21,"tr",20)(22,"td"),n._uU(23,"Masterwork"),n.qZA(),n._UZ(24,"td",18),n.YNc(25,ts,2,1,"td",19),n.TgZ(26,"td"),n._uU(27),n.qZA()(),n.YNc(28,ss,7,2,"tr",21),n.TgZ(29,"tr",22)(30,"td"),n._uU(31,"Major Mods"),n.qZA(),n._UZ(32,"td",18),n.YNc(33,as,2,1,"td",19),n.TgZ(34,"td"),n._uU(35),n.qZA()(),n.TgZ(36,"tr")(37,"td"),n._uU(38,"Minor Mods"),n.qZA(),n._UZ(39,"td",18),n.YNc(40,is,2,1,"td",19),n.TgZ(41,"td"),n._uU(42),n.qZA()(),n.TgZ(43,"tr")(44,"td"),n._uU(45,"Artifice Mods"),n.qZA(),n._UZ(46,"td",18),n.YNc(47,rs,2,1,"td",19),n.TgZ(48,"td"),n._uU(49),n.qZA()(),n.TgZ(50,"tr",23)(51,"td"),n._uU(52,"Total"),n.qZA(),n._UZ(53,"td",18),n.YNc(54,os,2,1,"td",19),n.TgZ(55,"td"),n._uU(56),n.qZA()(),n.TgZ(57,"tr")(58,"td"),n._uU(59,"Waste"),n.qZA(),n._UZ(60,"td",18),n.YNc(61,ls,2,1,"td",19),n.TgZ(62,"td"),n._uU(63),n.qZA()(),n.TgZ(64,"tr")(65,"td"),n._uU(66,"Tiers"),n.qZA(),n._UZ(67,"td",18),n.YNc(68,ds,2,1,"td",19),n.TgZ(69,"td"),n._uU(70),n.qZA()()()),2&e){const t=n.oxw();n.xp6(20),n.Q6J("ngForOf",t.result_items.items),n.xp6(5),n.Q6J("ngForOf",t.result_items.masterwork),n.xp6(2),n.Oqu(t.sum(t.result_items.masterwork)),n.xp6(1),n.Q6J("ngIf",t.sum(t.result_items.constants)>0),n.xp6(5),n.Q6J("ngForOf",t.result_items.statMods.major),n.xp6(2),n.Oqu(10*t.sum(t.result_items.statMods.major)),n.xp6(5),n.Q6J("ngForOf",t.result_items.statMods.minor),n.xp6(2),n.Oqu(5*t.sum(t.result_items.statMods.minor)),n.xp6(5),n.Q6J("ngForOf",t.result_items.artificeMods),n.xp6(2),n.Oqu(3*t.sum(t.result_items.artificeMods)),n.xp6(5),n.Q6J("ngForOf",t.result_items.total),n.xp6(2),n.Oqu(t.sum(t.result_items.total)),n.xp6(5),n.Q6J("ngForOf",t.result_items.waste),n.xp6(2),n.Oqu(t.sum(t.result_items.waste)),n.xp6(5),n.Q6J("ngForOf",t.result_items.tiers),n.xp6(2),n.Oqu(t.sum(t.result_items.tiers))}}const hs=["mobility","resilience","recovery","discipline","intellect","strength"],Nt={0:{[X.y.ArmorSlotHelmet]:[{stats:[0,1,1],armor:[3216110440,106575079,2578771006]},{stats:[0,2,0],armor:[2808156426,3883866764]}],[X.y.ArmorSlotGauntlet]:[{stats:[0,1,1],armor:[1734844651,241462141,241462142]},{stats:[0,2,0],armor:[1734844650,1848640623,2240152949,2563444729]}],[X.y.ArmorSlotChest]:[{stats:[2,1,0],armor:[1192890598,1341951177,3874247549]},{stats:[1,1,1],armor:[1591207518,1591207519]},{stats:[1,2,0],armor:[1654461647]}],[X.y.ArmorSlotLegs]:[{stats:[1,1,0],armor:[3539357319,2255796155,136355432,1160559849]},{stats:[1,0,1],armor:[2423243921]},{stats:[0,2,0],armor:[3539357318]}]},1:{[X.y.ArmorSlotHelmet]:[{stats:[2,0,0],armor:[896224899]},{stats:[1,1,0],armor:[2757274117,1053737370,1321354572,1321354573]},{stats:[1,0,1],armor:[3562696927,2773056939]}],[X.y.ArmorSlotGauntlet]:[{stats:[1,1,1],armor:[3942036043]},{stats:[0,1,1],armor:[475652357]},{stats:[1,0,1],armor:[691578978]},{stats:[1,1,0],armor:[691578979,1688602431]},{stats:[2,0,0],armor:[193869523,1734144409,4165919945]}],[X.y.ArmorSlotChest]:[{stats:[2,0,1],armor:[978537162]},{stats:[2,1,0],armor:[903984858,1474735276,2766109872]},{stats:[1,1,1],armor:[1474735277]},{stats:[1,2,0],armor:[2766109874,3070555693]}],[X.y.ArmorSlotLegs]:[{stats:[2,0,0],armor:[193869520,609852545]},{stats:[1,1,0],armor:[193869522]}]},2:{[X.y.ArmorSlotHelmet]:[{stats:[0,1,1],armor:[3381022971,1030017949,1096253259,2384488862]},{stats:[0,0,2],armor:[3381022970,2177524718,2428181146]},{stats:[1,0,1],armor:[3381022969,3948284065]}],[X.y.ArmorSlotGauntlet]:[{stats:[0,0,2],armor:[1906093346,3288917178,3844826443]},{stats:[0,2,1],armor:[2950045886]},{stats:[0,1,1],armor:[3084282676,3844826440]},{stats:[1,0,1],armor:[3627185503,3787517196]}],[X.y.ArmorSlotChest]:[{stats:[2,0,1],armor:[370930766,4057299719]},{stats:[0,2,1],armor:[1725917554,4057299718]},{stats:[0,1,2],armor:[2082483156]}],[X.y.ArmorSlotLegs]:[{stats:[0,1,2],armor:[121305948]},{stats:[1,0,1],armor:[138282166]},{stats:[0,1,1],armor:[4136768282]}]}};let ms=(()=>{class e{constructor(){this.ModifierType=Cn.O,this.glpk=null,this.calculating=!1,this.options={solver:{timeout:5,presolve:!0},armor:{armorType:3,requiresExotic:!0},stats:{desired:{mobility:0,resilience:0,recovery:0,discipline:0,intellect:0,strength:0},constantBoost:{mobility:0,resilience:0,recovery:0,discipline:0,intellect:0,strength:0},statsAreFixed:!1,maxValue:250,minTiers:0,minPoints:100,maxWaste:54},fragments:{enableFragmentPicker:!1,subclass:-1,class:3},mods:{maxMods:5,maxArtifice:5},generator:{generateExoticsWithIntrinsicStats:!1},availablePlugs:[[1,1,10],[1,1,11],[1,1,12],[1,1,13],[1,1,14],[1,1,15],[1,5,5],[1,5,6],[1,5,7],[1,5,8],[1,5,9],[1,5,10],[1,5,11],[1,6,5],[1,6,6],[1,6,7],[1,6,8],[1,6,9],[1,7,5],[1,7,6],[1,7,7],[1,7,8],[1,8,5],[1,8,6],[1,8,7],[1,9,5],[1,9,6],[1,10,1],[1,10,5],[1,11,1],[1,11,5],[1,12,1],[1,13,1],[1,14,1],[1,15,1],[5,1,5],[5,1,6],[5,1,7],[5,1,8],[5,1,9],[5,1,10],[5,1,11],[5,5,1],[5,5,5],[5,6,1],[5,7,1],[5,8,1],[5,9,1],[5,10,1],[5,11,1],[6,1,5],[6,1,6],[6,1,7],[6,1,8],[6,1,9],[6,5,1],[6,6,1],[6,7,1],[6,8,1],[6,9,1],[7,1,5],[7,1,6],[7,1,7],[7,1,8],[7,5,1],[7,6,1],[7,7,1],[7,8,1],[8,1,5],[8,1,6],[8,1,7],[8,5,1],[8,6,1],[8,7,1],[9,1,5],[9,1,6],[9,5,1],[9,6,1],[10,1,1],[10,1,5],[10,5,1],[11,1,1],[11,1,5],[11,5,1],[12,1,1],[13,1,1],[14,1,1],[15,1,1]]},this.result=null,this.result_items=null,this.time_progress=0,this.timerId=0,this.lp=null;const t=(0,St.F)((0,V.Z)(function*(){}));this.inventoryArmor=t.table("inventoryArmor"),this.manifestArmor=t.table("manifestArmor")}sum(t){return t.reduce((a,s)=>a+s,0)}getPerkName(t){return Ze.cM[t]}getPerkIconUrl(t){return Ze.X9[t]}slotNameByIndex(t){switch(t){case 0:return"Helmet";case 1:return"Gauntlets";case 2:return"Chest Armor";case 3:return"Leg Armor";case 4:return"Class Item";default:return"Unknown"}}resultValueToText(t){switch(t){case 1:return"Undefined. Might be unsolvable. Give it more time.";case 2:return"Feasible, but not optimal. Give it more time.";case 3:return"Infeasible. Your configuration is not possible.";case 4:return"No feasible solution found. Your configuration may not be possible.";case 5:return"Optimal solution found.";case 6:return"Unbounded. Your configuration is not possible (actually a Mijago skill issue).";default:return"Unknown result"}}ngOnInit(){var t=this;return(0,V.Z)(function*(){t.glpk=yield new Promise((e,i)=>{const t=new Worker(Xn);t.onmessage=a=>{e([t,a.data])},t.onerror=a=>{i(a.message)},t.postMessage({wasmBinary:jn})}).then(e=>Lt(...e)),console.log(t.glpk)})()}startTimer(){this.time_progress=0,this.timerId=setInterval(()=>{this.time_progress+=1,this.time_progress>=100&&this.stopTimer()},this.options.solver.timeout/100*1e3)}stopTimer(){this.timerId&&(this.time_progress=100,clearInterval(this.timerId),this.timerId=0)}run(){var t=this;return(0,V.Z)(function*(){if(t.result=t.result_items=null,!t.glpk)throw new Error("GLPK not initialized yet");t.calculating=!0;const a=yield t.buildFromConfiguration();console.log(a);const s=a.binaries,r=s.filter((l,u)=>s.indexOf(l)!=u);if(r.length>0)return alert("Duplicate items in binary list: "+r.join(", ")),void(t.calculating=!1);const d=a.generals,o=d.filter((l,u)=>d.indexOf(l)!=u);if(o.length>0)return alert("Duplicate items in generals list: "+o.join(", ")),void(t.calculating=!1);t.lp=a,t.startTimer();const f=yield t.glpk.solve(a);t.stopTimer(),t.result_items=yield t.getItemsFromResult(f),t.result=f,t.calculating=!1})()}getItemsFromResult(t){var a=this;return(0,V.Z)(function*(){const s=[[0,0,0,0,0,0],[0,0,0,0,0,0],[0,0,0,0,0,0],[0,0,0,0,0,0],[0,0,0,0,0,0]],r=[null,null,null,null,null],d=[null,null,null,null,null],o=[null,null,null,null,null],f=[!1,!1,!1,!1,!1];let l=0;const u=[10,10,10,10,10,10],y=[0,0,0,0,0,0],b={major:[0,0,0,0,0,0],minor:[0,0,0,0,0,0]},c=[0,0,0,0,0,0];for(let h in t.result.vars){if(!h.startsWith("constant_")||0==t.result.vars[h])continue;const[g,p]=h.split("_");y[parseInt(p)]+=t.result.vars[h]-10}for(let h in t.result.vars){if(!h.startsWith("plug_")||0==t.result.vars[h])continue;const[g,p,v,x]=h.split("_"),T=a.options.availablePlugs[parseInt(x)],Z=parseInt(v)>=2?1:0;for(let z=0;z<3;z++)s[parseInt(p)][z+3*Z]+=T[z];1==t.result.vars[`exotic_${p}`]&&(o[parseInt(p)]=!0)}const U=[];for(let h in t.result.vars){if(!h.startsWith("item_")||0==t.result.vars[h])continue;const[g,p,v]=h.split("_");U.push({slot:parseInt(p),itemId:v})}if(U.length>0){const g=(0,St.F)((0,V.Z)(function*(){})).table("inventoryArmor");for(let p of U){let v=yield g.where("itemInstanceId").equals(p.itemId).toArray();if(0==v.length)continue;const x=v[0];r[p.slot]=x,s[p.slot][0]+=x.mobility,s[p.slot][1]+=x.resilience,s[p.slot][2]+=x.recovery,s[p.slot][3]+=x.discipline,s[p.slot][4]+=x.intellect,s[p.slot][5]+=x.strength,o[p.slot]=x.isExotic,f[p.slot]=x.perk==Ze.Pn.SlotArtifice,l+=f[p.slot]?1:0}}for(let h in t.result.vars){if(!h.startsWith("intrinsic_")||0==t.result.vars[h])continue;let[g,p,v,x]=h.split("_");const T=Nt[parseInt(v)][parseInt(p)+1][parseInt(x)],Z=yield Promise.all(T.armor.map(function(){var z=(0,V.Z)(function*(O){return yield a.manifestArmor.where("hash").equals(O).first()});return function(O){return z.apply(this,arguments)}}()));d[parseInt(p)]={entry:T,items:Z}}for(let h in t.result.vars){if(!h.startsWith("mod_")||0==t.result.vars[h])continue;const[g,p,v]=h.split("_");b["1"==p?"minor":"major"][parseInt(v)]+=t.result.vars[h]}let k=0;for(let h in t.result.vars){if(!h.startsWith("artifice_")||0==t.result.vars[h])continue;const[g,p]=h.split("_");c[parseInt(p)]+=t.result.vars[h],k+=t.result.vars[h]}lMath.floor(h/10)),P=w.map(h=>h%10),m=q.reduce((h,g)=>h+g,0);return{items:s,artificeMods:c,statMods:b,constants:y,total:w,waste:P,tiers:q,tierSum:m,masterwork:u,itemMeta:r,itemIntrinsics:d,itemExotic:o,itemArtifice:f}})()}getItems(t){var a=this;return(0,V.Z)(function*(){let s=yield a.inventoryArmor.where("slot").notEqual(X.y.ArmorSlotNone).distinct().toArray();return null!=t&&(s=s.filter(r=>r.clazz==t)),s=s.filter((r,d)=>s.findIndex(o=>o.itemInstanceId==r.itemInstanceId)==d),s})()}buildFromConfiguration(){var t=this;return(0,V.Z)(function*(){if(!t.glpk)throw new Error("GLPK not initialized yet");const a={name:"d2ap_theorizer",options:{msgLev:t.glpk.GLP_MSG_ERR,presolve:t.options.solver.presolve,tmlim:t.options.solver.timeout},objective:{direction:t.glpk.GLP_MAX,name:"objective",vars:[]},subjectTo:[{name:"goal_mobility",bnds:{type:t.glpk.GLP_DB,ub:t.options.stats.maxValue,lb:t.options.stats.desired.mobility},vars:[]},{name:"goal_resilience",bnds:{type:t.glpk.GLP_DB,ub:t.options.stats.maxValue,lb:t.options.stats.desired.resilience},vars:[]},{name:"goal_recovery",bnds:{type:t.glpk.GLP_DB,ub:t.options.stats.maxValue,lb:t.options.stats.desired.recovery},vars:[]},{name:"goal_discipline",bnds:{type:t.glpk.GLP_DB,ub:t.options.stats.maxValue,lb:t.options.stats.desired.discipline},vars:[]},{name:"goal_intellect",bnds:{type:t.glpk.GLP_DB,ub:t.options.stats.maxValue,lb:t.options.stats.desired.intellect},vars:[]},{name:"goal_strength",bnds:{type:t.glpk.GLP_DB,ub:t.options.stats.maxValue,lb:t.options.stats.desired.strength},vars:[]}],bounds:[],binaries:[],generals:[]};for(let m=0;m<6;m++){let g=10+t.options.stats.constantBoost[hs[m]];a.bounds.push({name:`constant_${m}`,type:t.glpk.GLP_FX,ub:g,lb:g}),a.subjectTo[m].vars.push({name:`constant_${m}`,coef:1})}const s=(1&t.options.armor.armorType)>0,r=(2&t.options.armor.armorType)>0,d=s&&r,o=yield t.getItems();let f=o.filter(m=>m.slot==X.y.ArmorSlotHelmet),l=o.filter(m=>m.slot==X.y.ArmorSlotGauntlet),u=o.filter(m=>m.slot==X.y.ArmorSlotChest),y=o.filter(m=>m.slot==X.y.ArmorSlotLegs);if(3!=t.options.fragments.class){const m=t.options.fragments.class;f=f.filter(h=>h.clazz==m),l=l.filter(h=>h.clazz==m),u=u.filter(h=>h.clazz==m),y=y.filter(h=>h.clazz==m)}let b=[f,l,u,y];const c={name:"classlim",vars:[],bnds:{type:t.glpk.GLP_UP,ub:1,lb:1}},U=[];for(let m=0;m<3;m++){const h=`class_${m}`;a.binaries.push(h),c.vars.push({name:h,coef:1}),U.push({name:`classlim_${m}`,vars:[{name:h,coef:-4}],bnds:{type:t.glpk.GLP_UP,ub:0,lb:0}})}const k={name:"exoticlim",vars:[],bnds:{type:t.glpk.GLP_DB,ub:1,lb:0}};t.options.armor.requiresExotic&&(console.log("requiring exotic"),k.bnds={type:t.glpk.GLP_FX,ub:1,lb:1}),a.subjectTo.push(c),a.subjectTo.push(...U),a.subjectTo.push(k);const q=[],P=[];for(let m=0;m<4;m++){const h={name:`slotlim_${m}`,vars:[],bnds:{type:t.glpk.GLP_FX,ub:4,lb:4}};if(a.subjectTo.push(h),r){const g={name:`allow_intrinsic_${m}`,vars:[],bnds:{type:t.glpk.GLP_UP,ub:0,lb:0}};if(a.binaries.push(`exotic_${m}`),k.vars.push({name:`exotic_${m}`,coef:1}),t.options.generator.generateExoticsWithIntrinsicStats){a.subjectTo.push(g);for(let v=0;v<3;v++){const x=Nt[v][m+1];for(let T=0;T0&&a.subjectTo[O].vars.push({name:z,coef:Z.stats[O]});a.objective.vars.push({name:z,coef:-100})}}}let p={name:`exotic_${m}_genlim`,vars:[{name:`exotic_${m}`,coef:1}],bnds:{type:t.glpk.GLP_UP,ub:0,lb:0}};a.subjectTo.push(p);for(let v=0;v<4;v++){const x={name:`plug_${m}_${v}`,vars:[],bnds:{type:t.glpk.GLP_FX,ub:1,lb:1}};d&&(x.bnds={type:t.glpk.GLP_DB,ub:1,lb:0});for(let T=0;T1&&(O+=3),a.subjectTo[O].vars.push({name:Z,coef:t.options.availablePlugs[T][z]}),a.objective.vars.push({name:Z,coef:-20*t.options.availablePlugs[T][z]})}}a.subjectTo.push(x)}}if(s)for(let g of b[m]){const v=`item_${m}_${g.itemInstanceId}`;a.binaries.push(v),a.subjectTo[0].vars.push({name:v,coef:g.mobility}),a.subjectTo[1].vars.push({name:v,coef:g.resilience}),a.subjectTo[2].vars.push({name:v,coef:g.recovery}),a.subjectTo[3].vars.push({name:v,coef:g.discipline}),a.subjectTo[4].vars.push({name:v,coef:g.intellect}),a.subjectTo[5].vars.push({name:v,coef:g.strength}),h.vars.push({name:v,coef:4}),d&&a.objective.vars.push({name:v,coef:100}),U[g.clazz].vars.push({name:v,coef:1}),g.isExotic&&(k.vars.push({name:v,coef:1}),a.objective.vars.push({name:v,coef:40})),g.perk==Ze.Pn.SlotArtifice&&q.push(v)}}if(t.options.mods.maxMods>0){const m={name:"limit_mods",vars:[],bnds:{type:t.options.mods.maxMods>0?t.glpk.GLP_DB:t.glpk.GLP_FX,ub:t.options.mods.maxMods,lb:0}};for(let h=0;h<6;h++)a.bounds.push({name:`mod_1_${h}`,type:t.glpk.GLP_DB,ub:5,lb:0}),a.bounds.push({name:`mod_2_${h}`,type:t.glpk.GLP_DB,ub:5,lb:0}),a.generals.push(`mod_1_${h}`),a.generals.push(`mod_2_${h}`),a.subjectTo[h].vars.push({name:`mod_1_${h}`,coef:5}),a.subjectTo[h].vars.push({name:`mod_2_${h}`,coef:10}),m.vars.push({name:`mod_1_${h}`,coef:1}),m.vars.push({name:`mod_2_${h}`,coef:1});a.subjectTo.push(m)}if(t.options.mods.maxArtifice>0){const m={name:"limit_artif_max",vars:[],bnds:{type:t.options.mods.maxArtifice>0?t.glpk.GLP_DB:t.glpk.GLP_FX,ub:t.options.mods.maxArtifice,lb:0}},h={name:"limit_artif_slot",vars:[],bnds:{type:t.glpk.GLP_UP,ub:1,lb:0}};for(let g of q)h.vars.push({name:g,coef:-1});for(let g of P)h.vars.push({name:g,coef:-.25});if(r)for(let g=0;g<4;g++)h.vars.push({name:`exotic_${g}`,coef:1});for(let g=0;g<6;g++)a.subjectTo[g].vars.push({name:`artifice_${g}`,coef:3}),m.vars.push({name:`artifice_${g}`,coef:1}),h.vars.push({name:`artifice_${g}`,coef:1}),a.bounds.push({name:`artifice_${g}`,type:t.glpk.GLP_DB,ub:5,lb:0}),a.generals.push(`artifice_${g}`);a.subjectTo.push(m),a.subjectTo.push(h)}if(t.options.stats.minTiers>0||t.options.stats.maxWaste<54){for(let m=0;m<6;m++){a.bounds.push({name:`waste_${m}`,type:t.glpk.GLP_DB,ub:9,lb:0}),a.generals.push(`waste_${m}`),a.generals.push(`tier_${m}`);const h={name:`set_waste_and_tier_${m}`,vars:[{name:`waste_${m}`,coef:-1},{name:`tier_${m}`,coef:-10},...a.subjectTo[m].vars],bnds:{type:t.glpk.GLP_FX,ub:0,lb:0}};a.subjectTo.push(h)}if(t.options.stats.minTiers>0){const m={name:"require_tier_minimum",vars:[],bnds:{type:t.glpk.GLP_LO,ub:0,lb:t.options.stats.minTiers}};console.log("this.options.stats.minTiers",t.options.stats.minTiers);for(let h=0;h<6;h++)m.vars.push({name:`tier_${h}`,coef:1});a.subjectTo.push(m)}if(t.options.stats.maxWaste<54){const m={name:"require_waste_maximum",vars:[],bnds:{type:t.options.stats.maxWaste>0?t.glpk.GLP_UP:t.glpk.GLP_FX,ub:t.options.stats.maxWaste,lb:0}};for(let h=0;h<6;h++)m.vars.push({name:`waste_${h}`,coef:1});a.subjectTo.push(m)}}if(t.options.stats.statsAreFixed)for(let m=0;m<6;m++)a.subjectTo[m].bnds.ub=a.subjectTo[m].bnds.lb,a.subjectTo[m].bnds.type=t.glpk.GLP_FX;return a})()}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=n.Xpm({type:e,selectors:[["app-theorizer-page"]],decls:197,vars:67,consts:[["id","container","fxLayout","row wrap","fxLayoutAlign","center","fxLayoutGap","5px"],[1,"input-list"],[1,"input-list-entry"],[1,"example-full-width"],["matInput","","type","number","min","-20","max","300",3,"ngModel","ngModelChange"],[3,"ngModel","ngModelChange"],[3,"value"],["disabled","",3,"ngModel","ngModelChange"],[3,"disabled","ngModel","ngModelChange"],["id","slider-table"],["min","0","max","54","step","1","tickInterval","auto",3,"ngModel","ngModelChange"],["min","0","max","55","step","1","tickInterval","auto",3,"ngModel","ngModelChange"],["min","0","max","5","step","1","tickInterval","auto",3,"ngModel","ngModelChange"],["min","0.5","max","60","step","0.5",3,"ngModel","ngModelChange"],["mat-raised-button","","color","primary",3,"disabled","click"],["id","result-table",4,"ngIf"],["id","result-table"],[1,"line-bottom"],["colspan","3"],[4,"ngFor","ngForOf"],[1,"line-top","row-masterwork"],[4,"ngIf"],[1,"line-top"],[1,"line-top","line-bottom"],[1,"item-row"],["class","icon-item",3,"matTooltip","src",4,"ngIf"],["class","icon-item","matTooltip","Generated","src","https://www.bungie.net/common/destiny2_content/icons/1d82cced47afdc699448c54b2a6fbf35.png",4,"ngIf"],["class","intrinsic",4,"ngIf"],[1,"icon-item",3,"matTooltip","src"],["matTooltip","Generated","src","https://www.bungie.net/common/destiny2_content/icons/1d82cced47afdc699448c54b2a6fbf35.png",1,"icon-item"],[1,"intrinsic"],["class","icon-item",3,"matTooltip","src",4,"ngFor","ngForOf"]],template:function(t,a){1&t&&(n.TgZ(0,"div",0)(1,"mat-card")(2,"mat-card-header")(3,"mat-card-title"),n._uU(4,"Configuration"),n.qZA()(),n.TgZ(5,"mat-card-content")(6,"h2"),n._uU(7,"Required Stats"),n.qZA(),n.TgZ(8,"div",1)(9,"div",2)(10,"mat-form-field",3)(11,"mat-label"),n._uU(12,"Mobility"),n.qZA(),n.TgZ(13,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.desired.mobility=r}),n.qZA()()(),n.TgZ(14,"div",2)(15,"mat-form-field",3)(16,"mat-label"),n._uU(17,"Resilience"),n.qZA(),n.TgZ(18,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.desired.resilience=r}),n.qZA()()(),n.TgZ(19,"div",2)(20,"mat-form-field",3)(21,"mat-label"),n._uU(22,"Recovery"),n.qZA(),n.TgZ(23,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.desired.recovery=r}),n.qZA()()(),n.TgZ(24,"div",2)(25,"mat-form-field",3)(26,"mat-label"),n._uU(27,"Discipline"),n.qZA(),n.TgZ(28,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.desired.discipline=r}),n.qZA()()(),n.TgZ(29,"div",2)(30,"mat-form-field",3)(31,"mat-label"),n._uU(32,"Intellect"),n.qZA(),n.TgZ(33,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.desired.intellect=r}),n.qZA()()(),n.TgZ(34,"div",2)(35,"mat-form-field",3)(36,"mat-label"),n._uU(37,"Strength"),n.qZA(),n.TgZ(38,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.desired.strength=r}),n.qZA()()()(),n.TgZ(39,"mat-slide-toggle",5),n.NdJ("ngModelChange",function(r){return a.options.stats.statsAreFixed=r}),n._uU(40,"Stats must be met exactly "),n.qZA(),n._UZ(41,"hr"),n.TgZ(42,"h2"),n._uU(43,"Armor Selection"),n.qZA(),n.TgZ(44,"p"),n._uU(45,"Use armor: "),n.TgZ(46,"mat-button-toggle-group",5),n.NdJ("ngModelChange",function(r){return a.options.armor.armorType=r}),n.TgZ(47,"mat-button-toggle",6),n._uU(48,"Both"),n.qZA(),n.TgZ(49,"mat-button-toggle",6),n._uU(50,"Own Armor"),n.qZA(),n.TgZ(51,"mat-button-toggle",6),n._uU(52,"Generated Armor"),n.qZA()()(),n.TgZ(53,"p"),n._uU(54," Class: "),n.TgZ(55,"mat-button-toggle-group",5),n.NdJ("ngModelChange",function(r){return a.options.fragments.class=r}),n.TgZ(56,"mat-button-toggle",6),n._uU(57,"Any"),n.qZA(),n.TgZ(58,"mat-button-toggle",6),n._uU(59,"Titan"),n.qZA(),n.TgZ(60,"mat-button-toggle",6),n._uU(61,"Hunter"),n.qZA(),n.TgZ(62,"mat-button-toggle",6),n._uU(63,"Warlock"),n.qZA()()(),n.TgZ(64,"mat-slide-toggle",5),n.NdJ("ngModelChange",function(r){return a.options.armor.requiresExotic=r}),n._uU(65,"Require an exotic armor piece "),n.qZA(),n._UZ(66,"br"),n.TgZ(67,"mat-slide-toggle",5),n.NdJ("ngModelChange",function(r){return a.options.generator.generateExoticsWithIntrinsicStats=r}),n._uU(68,"Generate exotics with intrinsic stats "),n.qZA(),n._UZ(69,"br")(70,"hr"),n.TgZ(71,"h2"),n._uU(72,"Fragment selection"),n.qZA(),n.TgZ(73,"mat-slide-toggle",7),n.NdJ("ngModelChange",function(r){return a.options.fragments.enableFragmentPicker=r}),n._uU(74,"Enable fragment picking "),n.qZA(),n._UZ(75,"br"),n._uU(76," Subclass: "),n.TgZ(77,"mat-button-toggle-group",8),n.NdJ("ngModelChange",function(r){return a.options.fragments.subclass=r}),n.TgZ(78,"mat-button-toggle",6),n._uU(79,"Any"),n.qZA(),n.TgZ(80,"mat-button-toggle",6),n._uU(81,"Solar"),n.qZA(),n.TgZ(82,"mat-button-toggle",6),n._uU(83,"Arc"),n.qZA(),n.TgZ(84,"mat-button-toggle",6),n._uU(85,"Void"),n.qZA(),n.TgZ(86,"mat-button-toggle",6),n._uU(87,"Stasis"),n.qZA(),n.TgZ(88,"mat-button-toggle",6),n._uU(89,"Strand"),n.qZA()(),n._UZ(90,"hr")(91,"br"),n.TgZ(92,"table",9)(93,"tr")(94,"td"),n._uU(95,"Max Waste:"),n.qZA(),n.TgZ(96,"td")(97,"mat-slider",10),n.NdJ("ngModelChange",function(r){return a.options.stats.maxWaste=r}),n.qZA()(),n.TgZ(98,"td"),n._uU(99),n.qZA()(),n.TgZ(100,"tr")(101,"td"),n._uU(102,"Minimum Tiers:"),n.qZA(),n.TgZ(103,"td")(104,"mat-slider",11),n.NdJ("ngModelChange",function(r){return a.options.stats.minTiers=r}),n.qZA()(),n.TgZ(105,"td"),n._uU(106),n.qZA()(),n.TgZ(107,"tr")(108,"td"),n._uU(109,"Max Mods:"),n.qZA(),n.TgZ(110,"td")(111,"mat-slider",12),n.NdJ("ngModelChange",function(r){return a.options.mods.maxMods=r}),n.qZA()(),n.TgZ(112,"td"),n._uU(113),n.qZA()(),n.TgZ(114,"tr")(115,"td"),n._uU(116,"Max Artifice Mods:"),n.qZA(),n.TgZ(117,"td")(118,"mat-slider",12),n.NdJ("ngModelChange",function(r){return a.options.mods.maxArtifice=r}),n.qZA()(),n.TgZ(119,"td"),n._uU(120),n.qZA()()(),n.TgZ(121,"h2"),n._uU(122,"Constant Bonus to Stats"),n.qZA(),n._uU(123," (use this for theoretical +1 stuff) "),n.TgZ(124,"div",1)(125,"div",2)(126,"mat-form-field",3)(127,"mat-label"),n._uU(128,"Mobility"),n.qZA(),n.TgZ(129,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.constantBoost.mobility=r}),n.qZA()()(),n.TgZ(130,"div",2)(131,"mat-form-field",3)(132,"mat-label"),n._uU(133,"Resilience"),n.qZA(),n.TgZ(134,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.constantBoost.resilience=r}),n.qZA()()(),n.TgZ(135,"div",2)(136,"mat-form-field",3)(137,"mat-label"),n._uU(138,"Recovery"),n.qZA(),n.TgZ(139,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.constantBoost.recovery=r}),n.qZA()()(),n.TgZ(140,"div",2)(141,"mat-form-field",3)(142,"mat-label"),n._uU(143,"Discipline"),n.qZA(),n.TgZ(144,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.constantBoost.discipline=r}),n.qZA()()(),n.TgZ(145,"div",2)(146,"mat-form-field",3)(147,"mat-label"),n._uU(148,"Intellect"),n.qZA(),n.TgZ(149,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.constantBoost.intellect=r}),n.qZA()()(),n.TgZ(150,"div",2)(151,"mat-form-field",3)(152,"mat-label"),n._uU(153,"Strength"),n.qZA(),n.TgZ(154,"input",4),n.NdJ("ngModelChange",function(r){return a.options.stats.constantBoost.strength=r}),n.qZA()()()()()(),n.TgZ(155,"mat-card")(156,"mat-card-header")(157,"mat-card-title"),n._uU(158,"Solver Configuration"),n.qZA()(),n.TgZ(159,"mat-card-content")(160,"div"),n._uU(161," Timeout: "),n.TgZ(162,"mat-slider",13),n.NdJ("ngModelChange",function(r){return a.options.solver.timeout=r}),n.qZA(),n.TgZ(163,"span"),n._uU(164),n.qZA()(),n.TgZ(165,"mat-slide-toggle",5),n.NdJ("ngModelChange",function(r){return a.options.solver.presolve=r}),n._uU(166," Execute Presolver "),n.qZA()(),n.TgZ(167,"mat-card-actions")(168,"button",14),n.NdJ("click",function(){return a.run()}),n._uU(169,"Calculate"),n.qZA(),n._UZ(170,"br")(171,"mat-progress-bar",6),n.qZA()(),n.TgZ(172,"mat-card")(173,"mat-card-header")(174,"mat-card-title"),n._uU(175,"Results"),n.qZA()(),n.TgZ(176,"mat-card-content")(177,"p"),n._uU(178),n.qZA(),n.TgZ(179,"p"),n._uU(180),n.qZA(),n.YNc(181,us,71,16,"table",15),n.qZA()()(),n.TgZ(182,"div")(183,"mat-card")(184,"mat-card-header")(185,"mat-card-title"),n._uU(186,"Results"),n.qZA()(),n.TgZ(187,"mat-card-content")(188,"p"),n._uU(189),n.ALo(190,"json"),n.qZA(),n.TgZ(191,"p"),n._uU(192),n.ALo(193,"json"),n.qZA(),n.TgZ(194,"p"),n._uU(195),n.ALo(196,"json"),n.qZA()()()()),2&t&&(n.xp6(13),n.Q6J("ngModel",a.options.stats.desired.mobility),n.xp6(5),n.Q6J("ngModel",a.options.stats.desired.resilience),n.xp6(5),n.Q6J("ngModel",a.options.stats.desired.recovery),n.xp6(5),n.Q6J("ngModel",a.options.stats.desired.discipline),n.xp6(5),n.Q6J("ngModel",a.options.stats.desired.intellect),n.xp6(5),n.Q6J("ngModel",a.options.stats.desired.strength),n.xp6(1),n.Q6J("ngModel",a.options.stats.statsAreFixed),n.xp6(7),n.Q6J("ngModel",a.options.armor.armorType),n.xp6(1),n.Q6J("value",3),n.xp6(2),n.Q6J("value",1),n.xp6(2),n.Q6J("value",2),n.xp6(4),n.Q6J("ngModel",a.options.fragments.class),n.xp6(1),n.Q6J("value",3),n.xp6(2),n.Q6J("value",0),n.xp6(2),n.Q6J("value",1),n.xp6(2),n.Q6J("value",2),n.xp6(2),n.Q6J("ngModel",a.options.armor.requiresExotic),n.xp6(3),n.Q6J("ngModel",a.options.generator.generateExoticsWithIntrinsicStats),n.xp6(6),n.Q6J("ngModel",a.options.fragments.enableFragmentPicker),n.xp6(4),n.Q6J("disabled",!a.options.fragments.enableFragmentPicker)("ngModel",a.options.fragments.subclass),n.xp6(1),n.Q6J("value",-1),n.xp6(2),n.Q6J("value",a.ModifierType.Solar),n.xp6(2),n.Q6J("value",a.ModifierType.Arc),n.xp6(2),n.Q6J("value",a.ModifierType.Void),n.xp6(2),n.Q6J("value",a.ModifierType.Stasis),n.xp6(2),n.Q6J("value",a.ModifierType.Strand),n.xp6(9),n.Q6J("ngModel",a.options.stats.maxWaste),n.xp6(2),n.hij("",a.options.stats.maxWaste," points"),n.xp6(5),n.Q6J("ngModel",a.options.stats.minTiers),n.xp6(2),n.hij("",a.options.stats.minTiers," tiers"),n.xp6(5),n.Q6J("ngModel",a.options.mods.maxMods),n.xp6(2),n.hij("",a.options.mods.maxMods," mods"),n.xp6(5),n.Q6J("ngModel",a.options.mods.maxArtifice),n.xp6(2),n.hij("",a.options.mods.maxArtifice," mods"),n.xp6(9),n.Q6J("ngModel",a.options.stats.constantBoost.mobility),n.xp6(5),n.Q6J("ngModel",a.options.stats.constantBoost.resilience),n.xp6(5),n.Q6J("ngModel",a.options.stats.constantBoost.recovery),n.xp6(5),n.Q6J("ngModel",a.options.stats.constantBoost.discipline),n.xp6(5),n.Q6J("ngModel",a.options.stats.constantBoost.intellect),n.xp6(5),n.Q6J("ngModel",a.options.stats.constantBoost.strength),n.xp6(8),n.Q6J("ngModel",a.options.solver.timeout),n.xp6(2),n.hij("",a.options.solver.timeout,"s"),n.xp6(1),n.Q6J("ngModel",a.options.solver.presolve),n.xp6(3),n.Q6J("disabled",!a.glpk||a.calculating),n.xp6(3),n.Q6J("value",a.time_progress),n.xp6(6),n.ekj("status-undefined",1===(null==a.result||null==a.result.result?null:a.result.result.status))("status-infeasable",3===(null==a.result||null==a.result.result?null:a.result.result.status)||4===(null==a.result||null==a.result.result?null:a.result.result.status))("status-acceptable",2===(null==a.result||null==a.result.result?null:a.result.result.status))("status-optimal",5===(null==a.result||null==a.result.result?null:a.result.result.status)),n.xp6(1),n.AsE("Status Code ",null==a.result||null==a.result.result?null:a.result.result.status,": ",a.resultValueToText(null==a.result||null==a.result.result?null:a.result.result.status),""),n.xp6(2),n.hij("Time (s): ",null==a.result?null:a.result.time,""),n.xp6(1),n.Q6J("ngIf",a.result_items),n.xp6(8),n.Oqu(n.lcZ(190,61,a.result_items)),n.xp6(3),n.Oqu(n.lcZ(193,63,null==a.result?null:a.result.result)),n.xp6(3),n.Oqu(n.lcZ(196,65,a.lp)))},dependencies:[be.sg,be.O5,Ve.xw,Ve.SQ,Ve.Wh,ne.Fj,ne.wV,ne.JJ,ne.qQ,ne.Fd,ne.On,Gn.lW,Xt.KE,Xt.hX,Rn.pH,Kn.Nt,Dn.Rr,ge.a8,ge.dk,ge.dn,ge.n5,ge.hq,Bn.gM,Vn.pW,jt.A9,jt.Yi,be.Ts],styles:["#result-table[_ngcontent-%COMP%] tr.line-top[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-top:1px solid #e0e0e0}#result-table[_ngcontent-%COMP%] tr.line-bottom[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-bottom:1px solid #e0e0e0}#result-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:last-of-type{border-left:1px solid #e0e0e0}#result-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-of-type{border-right:1px solid #e0e0e0}#result-table[_ngcontent-%COMP%] tr.item-row[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:nth-of-type(4){border-right:1px solid #e0e0e0}#result-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:not(.item-row) td[_ngcontent-%COMP%]:nth-of-type(2){border-right:1px solid #e0e0e0}.status-optimal[_ngcontent-%COMP%]{color:#4caf50}.status-acceptable[_ngcontent-%COMP%]{color:#ff9800}.status-infeasable[_ngcontent-%COMP%]{color:#f44336}.status-undefined[_ngcontent-%COMP%]{color:#9e9e9e}#result-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{text-align:right}#container[_ngcontent-%COMP%]{margin-bottom:20px;margin-top:20px}#slider-table[_ngcontent-%COMP%] mat-slider[_ngcontent-%COMP%]{width:200px}.input-list[_ngcontent-%COMP%]{max-width:450px;display:flex;flex-direction:row;flex-wrap:wrap}.input-list[_ngcontent-%COMP%] .input-list-entry[_ngcontent-%COMP%]{flex-basis:33.33333%}.row-masterwork[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:not(:first-of-type){color:#daa520}.theoretic[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:not(:first-of-type), .intrinsic[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:not(:first-of-type){color:#ecb5b5}.icon-item[_ngcontent-%COMP%]{height:20px}.exotic[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:nth-of-type(2){color:#e6d4b8}"]}),e})();var cs=M(6630),ps=M(4661);const fs=[{path:"",component:ms}];let gs=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=n.oAB({type:e}),e.\u0275inj=n.cJS({imports:[be.ez,ps.V,cs.Bz.forChild(fs)]}),e})()}}]); \ No newline at end of file diff --git a/index.html b/index.html index acaa0083..0e18ef4f 100644 --- a/index.html +++ b/index.html @@ -35,6 +35,6 @@ - + \ No newline at end of file diff --git a/main.6f3eb60b97e75aee.js b/main.f5a5f6d50ea39739.js similarity index 99% rename from main.6f3eb60b97e75aee.js rename to main.f5a5f6d50ea39739.js index 2d2176e1..fa5b90b8 100644 --- a/main.6f3eb60b97e75aee.js +++ b/main.f5a5f6d50ea39739.js @@ -1 +1 @@ -(self.webpackChunkD2ArmorPicker=self.webpackChunkD2ArmorPicker||[]).push([[179],{4682:(ot,z,_)=>{"use strict";_.d(z,{F:()=>S});var v=_(5861),t=_(7975);function S(H){const W=new t.ZP("d2armorpicker-v2");return W.version(24).stores({manifestArmor:"id++, hash, isExotic",inventoryArmor:"id++, itemInstanceId, isExotic, hash, name, masterworked, clazz, slot, source",manifestCollectibles:"id++, hash",vendorNames:"id++, vendorId"}).upgrade(function(){var I=(0,v.Z)(function*(m){yield H()});return function(m){return I.apply(this,arguments)}}()),W}},6471:(ot,z,_)=>{"use strict";_.d(z,{y:()=>v});var v=(()=>{return(t=v||(v={}))[t.ArmorSlotNone=0]="ArmorSlotNone",t[t.ArmorSlotHelmet=1]="ArmorSlotHelmet",t[t.ArmorSlotGauntlet=2]="ArmorSlotGauntlet",t[t.ArmorSlotChest=3]="ArmorSlotChest",t[t.ArmorSlotLegs=4]="ArmorSlotLegs",t[t.ArmorSlotClass=5]="ArmorSlotClass",v;var t})()},1043:(ot,z,_)=>{"use strict";_.d(z,{AR:()=>I,DH:()=>L,ID:()=>_t,K9:()=>S,Mi:()=>H,Pn:()=>m,Sy:()=>Y,WB:()=>t,X9:()=>at,cM:()=>ct,iV:()=>v,lp:()=>W,vr:()=>xt});var v=(()=>{return(g=v||(v={}))[g.NONE=0]="NONE",g[g.MINOR_MOBILITY=1]="MINOR_MOBILITY",g[g.MAJOR_MOBILITY=2]="MAJOR_MOBILITY",g[g.ARTIFICE_MOBILITY=3]="ARTIFICE_MOBILITY",g[g.MINOR_RESILIENCE=4]="MINOR_RESILIENCE",g[g.MAJOR_RESILIENCE=5]="MAJOR_RESILIENCE",g[g.ARTIFICE_RESILIENCE=6]="ARTIFICE_RESILIENCE",g[g.MINOR_RECOVERY=7]="MINOR_RECOVERY",g[g.MAJOR_RECOVERY=8]="MAJOR_RECOVERY",g[g.ARTIFICE_RECOVERY=9]="ARTIFICE_RECOVERY",g[g.MINOR_DISCIPLINE=10]="MINOR_DISCIPLINE",g[g.MAJOR_DISCIPLINE=11]="MAJOR_DISCIPLINE",g[g.ARTIFICE_DISCIPLINE=12]="ARTIFICE_DISCIPLINE",g[g.MINOR_INTELLECT=13]="MINOR_INTELLECT",g[g.MAJOR_INTELLECT=14]="MAJOR_INTELLECT",g[g.ARTIFICE_INTELLECT=15]="ARTIFICE_INTELLECT",g[g.MINOR_STRENGTH=16]="MINOR_STRENGTH",g[g.MAJOR_STRENGTH=17]="MAJOR_STRENGTH",g[g.ARTIFICE_STRENGTH=18]="ARTIFICE_STRENGTH",v;var g})(),t=(()=>{return(g=t||(t={}))[g.Mobility=0]="Mobility",g[g.Resilience=1]="Resilience",g[g.Recovery=2]="Recovery",g[g.Discipline=3]="Discipline",g[g.Intellect=4]="Intellect",g[g.Strength=5]="Strength",t;var g})();const S={[v.NONE]:[t.Strength,0,0,0],[v.MINOR_MOBILITY]:[t.Mobility,5,1,1703647492],[v.MAJOR_MOBILITY]:[t.Mobility,10,3,4183296050],[v.ARTIFICE_MOBILITY]:[t.Mobility,3,0,2322202118],[v.MINOR_RESILIENCE]:[t.Resilience,5,2,2532323436],[v.MAJOR_RESILIENCE]:[t.Resilience,10,4,1180408010],[v.ARTIFICE_RESILIENCE]:[t.Resilience,3,0,199176566],[v.MINOR_RECOVERY]:[t.Recovery,5,2,1237786518],[v.MAJOR_RECOVERY]:[t.Recovery,10,4,4204488676],[v.ARTIFICE_RECOVERY]:[t.Recovery,3,0,539459624],[v.MINOR_DISCIPLINE]:[t.Discipline,5,1,4021790309],[v.MAJOR_DISCIPLINE]:[t.Discipline,10,3,1435557120],[v.ARTIFICE_DISCIPLINE]:[t.Discipline,3,0,617569843],[v.MINOR_INTELLECT]:[t.Intellect,5,2,350061697],[v.MAJOR_INTELLECT]:[t.Intellect,10,4,2724608735],[v.ARTIFICE_INTELLECT]:[t.Intellect,3,0,3160845295],[v.MINOR_STRENGTH]:[t.Strength,5,1,2639422088],[v.MAJOR_STRENGTH]:[t.Strength,10,3,4287799666],[v.ARTIFICE_STRENGTH]:[t.Strength,3,0,2507624050]},H={[t.Mobility]:"Mobility",[t.Resilience]:"Resilience",[t.Recovery]:"Recovery",[t.Discipline]:"Discipline",[t.Intellect]:"Intellect",[t.Strength]:"Strength"},W={[t.Mobility]:"https://www.bungie.net/common/destiny2_content/icons/e26e0e93a9daf4fdd21bf64eb9246340.png",[t.Resilience]:"https://www.bungie.net/common/destiny2_content/icons/202ecc1c6febeb6b97dafc856e863140.png",[t.Recovery]:"https://www.bungie.net/common/destiny2_content/icons/128eee4ee7fc127851ab32eac6ca91cf.png",[t.Discipline]:"https://www.bungie.net/common/destiny2_content/icons/79be2d4adef6a19203f7385e5c63b45b.png",[t.Intellect]:"https://www.bungie.net/common/destiny2_content/icons/d1c154469670e9a592c9d4cbdcae5764.png",[t.Strength]:"https://www.bungie.net/common/destiny2_content/icons/ea5af04ccd6a3470a44fd7bb0f66e2f7.png"};var I=(()=>{return(g=I||(I={}))[g.ClassAbilityRegenerationStat=10]="ClassAbilityRegenerationStat",I;var g})(),m=(()=>{return(g=m||(m={}))[g.None=0]="None",g[g.SlotNightmare=1]="SlotNightmare",g[g.SlotArtifice=2]="SlotArtifice",g[g.SlotLastWish=3]="SlotLastWish",g[g.SlotGardenOfSalvation=4]="SlotGardenOfSalvation",g[g.SlotDeepStoneCrypt=5]="SlotDeepStoneCrypt",g[g.SlotVaultOfGlass=6]="SlotVaultOfGlass",g[g.PerkIronBanner=7]="PerkIronBanner",g[g.PerkUniformedOfficer=8]="PerkUniformedOfficer",g[g.SlotVowOfTheDisciple=9]="SlotVowOfTheDisciple",g[g.SlotKingsFall=10]="SlotKingsFall",g[g.SlotCrotasEnd=11]="SlotCrotasEnd",g[g.PerkPlunderersTrappings=12]="PerkPlunderersTrappings",g[g.SeraphSensorArray=13]="SeraphSensorArray",g[g.SlotRootOfNightmares=14]="SlotRootOfNightmares",g[g.PerkQueensFavor=15]="PerkQueensFavor",g[g.GuardianGamesClassItem=16]="GuardianGamesClassItem",g[g.SonarAmplifier=17]="SonarAmplifier",g[g.COUNT=18]="COUNT",m;var g})();const ct={[m.None]:"None",[m.GuardianGamesClassItem]:"Guardian Games",[m.SlotNightmare]:"Nightmare Hunt Modslot",[m.SlotArtifice]:"Artifice Modslot",[m.SlotLastWish]:"Last Wish Modslot",[m.SlotGardenOfSalvation]:"Garden of Salvation Modslot",[m.SlotDeepStoneCrypt]:"Deep Stone Crypt Modslot",[m.SlotVaultOfGlass]:"Vault of Glass Modslot",[m.SlotVowOfTheDisciple]:"Vow of the Disciple Modslot",[m.PerkIronBanner]:"Iron Banner Perk",[m.PerkUniformedOfficer]:"Uniformed Officer",[m.SlotKingsFall]:"King's Fall Modslot",[m.SlotCrotasEnd]:"Crota's End Modslot",[m.PerkPlunderersTrappings]:"Plunderer's Trappings",[m.SeraphSensorArray]:"Seraph Sensor Array",[m.SlotRootOfNightmares]:"Root of Nightmares Modslot",[m.PerkQueensFavor]:"Queen's Favor",[m.SonarAmplifier]:"Sonar Amplifier",[m.COUNT]:""},at={[m.None]:"https://www.bungie.net/img/misc/missing_icon_d2.png",[m.GuardianGamesClassItem]:"https://www.bungie.net/common/destiny2_content/icons/DestinyEventCardDefinition_ce6c2cf855dce694bcc89803b6bc44b7.png",[m.SlotNightmare]:"https://www.bungie.net/common/destiny2_content/icons/53d6e3505cd03d4026b3dbbd9ccc19b6.jpg",[m.SlotArtifice]:"https://www.bungie.net/common/destiny2_content/icons/46eec78bb7864641bbd7ba1fd4f9f248.png",[m.SlotLastWish]:"https://www.bungie.net/common/destiny2_content/icons/76f0c1520fa384ceb27bd2469225dd8a.png",[m.SlotGardenOfSalvation]:"https://www.bungie.net/common/destiny2_content/icons/53d6e3505cd03d4026b3dbbd9ccc19b6.jpg",[m.SlotDeepStoneCrypt]:"https://www.bungie.net/common/destiny2_content/icons/d6452d010cfe72a51a9089ec68ab223c.png",[m.SlotVaultOfGlass]:"https://www.bungie.net/common/destiny2_content/icons/7c9a2d95113de19c5acdbed57775abf4.png",[m.SlotVowOfTheDisciple]:"https://www.bungie.net/common/destiny2_content/icons/b84b6ea72dd05de7123aa2ae87ba0d6a.png",[m.PerkIronBanner]:"https://bungie.net/common/destiny2_content/icons/DestinyActivityModeDefinition_fe57052d7cf971f7502daa75a2ca2437.png",[m.PerkUniformedOfficer]:"https://www.bungie.net/common/destiny2_content/icons/b4f6064c3757f9a6725b80f88ee824c0.png",[m.SlotKingsFall]:"https://www.bungie.net/common/destiny2_content/icons/0e515c7cf25a2f2350b788e6f5b7f8eb.png",[m.SlotCrotasEnd]:"https://www.bungie.net/common/destiny2_content/icons/7ddce334fe8391848f408227439c1d7a.png",[m.PerkPlunderersTrappings]:"https://www.bungie.net/common/destiny2_content/icons/7394ce8bcde3a665584b988cc133d62c.png",[m.SeraphSensorArray]:"https://www.bungie.net/common/destiny2_content/icons/7394ce8bcde3a665584b988cc133d62c.png",[m.SlotRootOfNightmares]:"https://www.bungie.net/common/destiny2_content/icons/f2b6ec58e14244e4972705897667c246.png",[m.PerkQueensFavor]:"https://www.bungie.net/common/destiny2_content/icons/8d844c97fa13f4cb649358404d011be7.png",[m.SonarAmplifier]:"https://www.bungie.net/common/destiny2_content/icons/e083d8a85c2c60825204d14b9e9263b7.png",[m.COUNT]:""},L={[m.SlotArtifice]:3727270518,[m.SonarAmplifier]:2779380852,[m.SlotRootOfNightmares]:4144354978,[m.SlotKingsFall]:1728096240,[m.SlotCrotasEnd]:717667840,[m.SlotLastWish]:1679876242,[m.SlotVaultOfGlass]:3738398030,[m.SlotGardenOfSalvation]:706611068,[m.SlotDeepStoneCrypt]:4055462131,[m.SlotVowOfTheDisciple]:2447143568,[m.PerkQueensFavor]:1101259514,[m.SlotNightmare]:1180997867,[m.PerkIronBanner]:2472875850,[m.PerkUniformedOfficer]:2392155347,[m.PerkPlunderersTrappings]:400659041,[m.SeraphSensorArray]:3525583702},_t={[m.None]:"",[m.GuardianGamesClassItem]:"(hash:537041732 or hash:366019830 or hash:1013401891)",[m.SlotNightmare]:"modslot:nightmare",[m.SlotArtifice]:'perkname:"artifice armor"',[m.SlotLastWish]:"modslot:lastwish",[m.SlotGardenOfSalvation]:"modslot:gardenofsalvation",[m.SlotDeepStoneCrypt]:"modslot:deepstonecrypt",[m.SlotVaultOfGlass]:"modslot:vaultofglass",[m.SlotVowOfTheDisciple]:"source:vow",[m.PerkIronBanner]:'perkname:"iron lord\'s pride"',[m.PerkUniformedOfficer]:'perkname:"Uniformed Officer"',[m.SlotKingsFall]:"modslot:kingsfall",[m.SlotCrotasEnd]:"modslot:crotasend",[m.PerkPlunderersTrappings]:'perkname:"plunderer\'s trappings"',[m.SeraphSensorArray]:'perkname:"seraph sensor array"',[m.SlotRootOfNightmares]:"modslot:rootofnightmares",[m.PerkQueensFavor]:'perkname:"queen\'s favor"',[m.SonarAmplifier]:'perkname:"sonar amplifier"',[m.COUNT]:""},xt={0:"Any",1:"Arc",2:"Solar",3:"Void",6:"Stasis",4:"Ghost",5:"Subclass"},Y={0:"",1:"https://www.bungie.net/common/destiny2_content/icons/DestinyDamageTypeDefinition_092d066688b879c807c3b460afdd61e6.png",2:"https://www.bungie.net/common/destiny2_content/icons/DestinyDamageTypeDefinition_2a1773e10968f2d088b97c22b22bba9e.png",3:"https://www.bungie.net/common/destiny2_content/icons/DestinyDamageTypeDefinition_ceb2f6197dccf3958bb31cc783eb97a0.png",6:"https://www.bungie.net/common/destiny2_content/icons/DestinyDamageTypeDefinition_530c4c3e7981dc2aefd24fd3293482bf.png",4:"",5:""}},8333:(ot,z,_)=>{"use strict";_.d(z,{O:()=>v});var v=(()=>{return(t=v||(v={}))[t.CombatStyleMod=0]="CombatStyleMod",t[t.Stasis=1]="Stasis",t[t.Void=2]="Void",t[t.Solar=3]="Solar",t[t.Arc=4]="Arc",t[t.Strand=5]="Strand",t[t.RetrofitMods=6]="RetrofitMods",v;var t})()},4661:(ot,z,_)=>{"use strict";_.d(z,{V:()=>At});var v=_(4859),t=_(9549),S=_(4385),H=_(3238),W=_(7314),I=_(4144),m=_(455),ct=_(2143),at=_(3546),L=_(266),_t=_(3162),xt=_(7392),Y=_(6308),g=_(8739),A=_(3683),J=_(3217),St=_(811),It=_(6338),Ot=_(7084),Mt=_(5412),mt=_(7009),kt=_(1572),Dt=_(3848),dt=_(7331),Tt=_(3267),U=_(4006),st=_(9814),r=_(4650);let At=(()=>{class ft{}return ft.\u0275fac=function(jt){return new(jt||ft)},ft.\u0275mod=r.oAB({type:ft}),ft.\u0275inj=r.cJS({imports:[v.ot,t.lN,S.LD,H.Ng,W.KP,I.c,m.rP,ct.p0,at.QW,L.AV,_t.Cv,xt.Ps,Y.JX,g.TU,A.g0,J.Tx,St.vV,It.ie,Ot.To,Mt.Is,mt.ZX,kt.Cq,Dt.Nh,dt.Hi,Tt.SJ,U.UX,U.u5,st.o9,st.o9,U.UX,U.u5,v.ot,t.lN,S.LD,H.Ng,W.KP,I.c,m.rP,ct.p0,at.QW,L.AV,_t.Cv,xt.Ps,Y.JX,g.TU,A.g0,J.Tx,St.vV,It.ie,Ot.To,Mt.Is,mt.ZX,kt.Cq,Dt.Nh,dt.Hi,Tt.SJ]}),ft})()},7789:(ot,z,_)=>{"use strict";var v=_(1481),t=_(4650);const S_apiKey="9415df8eff46408aa9c0d51e4d69b94f",S_featureFlags_enableModslotLimitation=!0,S_featureFlags_enableZeroWaste=!0,S_featureFlags_enableGuardianGamesFeatures=!1;var H=_(5829),W=_(3683),I=_(6630),m=_(5861),ct=_(6831),at=_(529);let L=(()=>{class n{constructor(e,o){this.http=e,this.router=o,this._logoutEvent=new ct.t(1),this.logoutEvent=this._logoutEvent.asObservable()}get refreshTokenExpired(){return this.refreshTokenExpiringAt (this.lastRefresh + timing)":Date.now()>e.lastRefresh+18e5}),!(e.refreshToken&&Date.now()e.lastRefresh+18e5)||(yield e.generateTokens(!0))})()}getCurrentMembershipData(){var e=this;return(0,m.Z)(function*(){const o=JSON.parse(localStorage.getItem("auth-membershipInfo")||"null");if(null==o){const a=e.getCurrentMembershipData();return localStorage.setItem("auth-membershipInfo",JSON.stringify(a)),a}return o})()}generateTokens(e=!1){var o=this;return(0,m.Z)(function*(){console.info("Generate auth tokens","refresh based on refresh_token:",e);let u=`grant_type=authorization_code&code=${o.authCode}&client_id=37252&client_secret=KnVcJPWr7C5y0loOfBoKSyQ-vWXR0JICrgb1aJLsLgg`;return e&&(u=`grant_type=refresh_token&refresh_token=${o.refreshToken}&client_id=37252&client_secret=KnVcJPWr7C5y0loOfBoKSyQ-vWXR0JICrgb1aJLsLgg`),yield o.http.post("https://www.bungie.net/Platform/App/OAuth/Token/",u,{headers:{"Content-Type":"application/x-www-form-urlencoded","X-API-Key":S_apiKey}}).toPromise().then(x=>(console.log("generateTokens",x),o.accessToken=x.access_token,o.refreshToken=x.refresh_token,o.refreshTokenExpiringAt=Date.now()+1e3*x.refresh_expires_in-1e4,o.lastRefresh=Date.now(),!0)).catch(function(){var x=(0,m.Z)(function*(p){return console.log({err:p}),yield o.logout(),!1});return function(p){return x.apply(this,arguments)}}())})()}isAuthenticated(){return!!this.accessToken}get authCode(){return localStorage.getItem("code")}set authCode(e){e?(console.info("Setting new auth code"),localStorage.setItem("code",""+e)):(console.info("Clearing auth code"),localStorage.removeItem("code"))}get accessToken(){return localStorage.getItem("accessToken")}set accessToken(e){e?(console.info("Setting new access token"),localStorage.setItem("accessToken",""+e)):(console.info("Clearing access token"),localStorage.removeItem("accessToken"))}get refreshToken(){return localStorage.getItem("refreshToken")}set refreshToken(e){e?(console.info("Setting new refresh token"),localStorage.setItem("refreshToken",""+e)):(console.info("Clearing refresh token"),localStorage.removeItem("refreshToken"))}get refreshTokenExpiringAt(){let e=localStorage.getItem("refreshTokenExpiringAt")||"0";return e?Number.parseInt(e):0}set refreshTokenExpiringAt(e){e?(console.info("Setting new refresh token"),localStorage.setItem("refreshTokenExpiringAt",""+e)):(console.info("Clearing refresh token"),localStorage.removeItem("refreshTokenExpiringAt"))}get lastRefresh(){let e=localStorage.getItem("lastRefresh")||"0";return e?Number.parseInt(e):0}set lastRefresh(e){e?localStorage.setItem("lastRefresh",e.toString()):localStorage.removeItem("lastRefresh")}clearManifestInfo(){localStorage.removeItem("LastArmorUpdate"),localStorage.removeItem("LastManifestUpdate")}clearLoginInfo(){this.lastRefresh=null,this.refreshTokenExpiringAt=null,this.authCode=null,this.accessToken=null,this.refreshToken=null,localStorage.removeItem("auth-membershipInfo")}logout(){var e=this;return(0,m.Z)(function*(){try{e._logoutEvent.next(null),e.clearManifestInfo(),e.clearLoginInfo()}finally{yield e.router.navigate(["login"])}})()}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(at.eN),t.LFG(I.F0))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),_t=(()=>{class n{constructor(e,o,a){this.activatedRoute=e,this.router=o,this.loginService=a}ngOnInit(){var e=this;this.activatedRoute.queryParams.subscribe(function(){var o=(0,m.Z)(function*(a){let s=a.code;window.location.search.indexOf("?code=")>-1&&(s=window.location.search.substr(6)),console.info({code:s}),s&&(e.loginService.authCode=s,console.info("Generate tokens with the new code"),yield e.loginService.generateTokens(),console.info("Now navigate to /"),yield e.router.navigate(["/"]))});return function(a){return o.apply(this,arguments)}}())}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(I.gz),t.Y36(I.F0),t.Y36(L))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-handle-bungie-login"]],decls:0,vars:0,template:function(e,o){}}),n})(),xt=(()=>{class n{constructor(){this.title="D2ArmorPicker",console.log("PRODUCTION?",true)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-root"]],decls:8,vars:0,consts:[["color","accent",1,"bungie-day",2,"display","none"],[1,"header-spacer"],["fxHide.xs","","src","../assets/bungie-game2give.png","alt","donordrive",1,"donordrive"],["href","https://bungiefoundation.donordrive.com/participant/19714","target","_blank","title","Support the Bungie Foundation!"]],template:function(e,o){1&e&&(t.TgZ(0,"mat-toolbar",0),t._UZ(1,"span",1)(2,"img",2),t.TgZ(3,"a",3),t._uU(4," Support us at the Bungie Foundation 2023 \u2764 "),t.qZA(),t._UZ(5,"span",1),t.qZA(),t._UZ(6,"app-handle-bungie-login")(7,"router-outlet"))},dependencies:[H.b8,W.Ye,I.lC,_t],styles:[".bungie-day[_ngcontent-%COMP%]{height:-moz-fit-content;height:fit-content;position:relative;max-width:100vw;word-break:break-all}.bungie-day[_ngcontent-%COMP%] img.donordrive[_ngcontent-%COMP%]{height:30px;margin-left:2px;margin-right:2px}.bungie-day[_ngcontent-%COMP%] a[_ngcontent-%COMP%], .bungie-day[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:visited{color:#fff}.bungie-day[_ngcontent-%COMP%] .header-spacer[_ngcontent-%COMP%]{flex:1 1 auto}"]}),n})();var Y=_(1576),g=_(4859),A=_(3546),J=_(7084);let St=(()=>{class n{constructor(){}startLogin(){window.location.href="https://www.bungie.net/en/OAuth/Authorize?client_id=37252&response_type=code&reauth=true"}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-login"]],decls:76,vars:0,consts:[["mat-card-avatar","",1,"example-header-image"],["href","https://ko-fi.com/mijago","target","_blank"],["href","https://github.com/Mijago/D2ArmorPicker","target","_blank"],["color","primary","mat-raised-button","",3,"click"],[1,"mat-elevation-z11"],["src","assets/info/statselection.png",1,"image-example"],["src","assets/resultOverviewWithFlex.png",1,"image-example"],["src","assets/info/whattodonow.png",1,"image-example"],["src","assets/info/armorClustering.png",1,"image-example"],["fxLayoutGap","10px","fxLayout","row",1,"armor-image-container"],["src","assets/info/cluster-example/img.png"],["src","assets/info/cluster-example/img_1.png"],["src","assets/info/cluster-example/img_2.png"]],template:function(e,o){1&e&&(t.TgZ(0,"mat-card")(1,"mat-card-header"),t._UZ(2,"div",0),t.TgZ(3,"mat-card-title"),t._uU(4,"Destiny 2 Armor Picker"),t.qZA(),t.TgZ(5,"mat-card-subtitle"),t._uU(6,"A simple armor min-max tool by Mijago."),t.qZA()(),t.TgZ(7,"mat-card-content")(8,"p"),t._uU(9," This tool allows you to select the optimal armor from your inventory and vault to satisfy your stat needs. It also tells you which stat mods you have to use! "),t._UZ(10,"br")(11,"br"),t._uU(12," You have to log in to enable this tool to grab your armor from the API."),t._UZ(13,"br"),t._uU(14," If you like my tools and want to support me, head to "),t.TgZ(15,"a",1),t._uU(16,"ko-fi.com"),t.qZA(),t._uU(17," and buy me a coffee! \u2764 "),t._UZ(18,"br"),t._uU(19," If you found a bug or have a feature request, please open an issue "),t.TgZ(20,"a",2),t._uU(21,"in the Github Repository"),t.qZA(),t._uU(22,"! "),t.qZA(),t.TgZ(23,"p"),t._uU(24," D2ArmorPicker uses the Bungie.net api and it's OAuth authorization. You log in on an official Bungie.net page and D2ArmorPicker receives a temporary login token from Bungie. That means it does not receive your credentials. "),t.qZA()(),t.TgZ(25,"mat-card-actions")(26,"button",3),t.NdJ("click",function(){return o.startLogin()}),t._uU(27,"Login"),t.qZA()()(),t.TgZ(28,"mat-card")(29,"mat-card-title"),t._uU(30," Examples "),t.qZA(),t.TgZ(31,"mat-card-subtitle"),t._uU(32,"Some examples to show what D2ArmorPicker can do."),t.qZA(),t.TgZ(33,"mat-card-content")(34,"mat-accordion")(35,"mat-expansion-panel",4)(36,"mat-expansion-panel-header")(37,"mat-panel-title"),t._uU(38," Stat Selection "),t.qZA(),t.TgZ(39,"mat-panel-description"),t._uU(40," The heart of this tool. "),t.qZA()(),t.TgZ(41,"p"),t._uU(42," First, you are able to select the stats you want. The tool will automatically parse all your armor (including your vault and your postmaster), and then show you which stat selections are even possible with your current gear. The tool also shows you all possible loadouts with three or four stats at 100! "),t._UZ(43,"img",5)(44,"br")(45,"br"),t._uU(46," There are also additional settings. You can add stasis fragments and negative and positive stat mods to your builds. Also, you can select 0-waste builds (so only flat numbers). D2ArmorPicker will also add stat mods to reduce wasted stats wherever possible! "),t.qZA()(),t.TgZ(47,"mat-expansion-panel",4)(48,"mat-expansion-panel-header")(49,"mat-panel-title"),t._uU(50," Result Display "),t.qZA(),t.TgZ(51,"mat-panel-description"),t._uU(52," What you will get from this tool. "),t.qZA()(),t.TgZ(53,"p"),t._uU(54," D2ArmorPicker will show you a table with many results. You can sort and filter it, and then you click on one row to see which items are needed for your desired stats. "),t._UZ(55,"img",6)(56,"br")(57,"br"),t._uU(58," The page will also give you a detailed description of what you have to do in order to get to your desired build. The following screenshot shows one of the more detailed descriptions: "),t._UZ(59,"img",7),t.qZA()(),t.TgZ(60,"mat-expansion-panel",4)(61,"mat-expansion-panel-header")(62,"mat-panel-title"),t._uU(63," Armor Clustering "),t.qZA(),t.TgZ(64,"mat-panel-description"),t._uU(65," For the time when your vault is overflowing. "),t.qZA()(),t.TgZ(66,"div"),t._uU(67," Since version 2.0.14, D2ArmorPicker has an armor clustering feature. This means that it takes all your armor and groups it in 25 groups, where all items in one group has very similar stats. This can help you to clear out your vault, especially from duplicated armor rolls. "),t._UZ(68,"img",8)(69,"br")(70,"br"),t._uU(71," Take Cluster 1, for example. I copy the DIM-Query, enter it into DIM and see the following results: "),t.TgZ(72,"div",9),t._UZ(73,"img",10)(74,"img",11)(75,"img",12),t.qZA()()()()()())},dependencies:[Y.xw,Y.SQ,g.lW,A.a8,A.dk,A.dn,A.n5,A.$j,A.hq,A.kc,J.pp,J.ib,J.yz,J.yK,J.u4],styles:["mat-card[_ngcontent-%COMP%]{max-width:600px;margin-bottom:4px;margin-left:auto;margin-right:auto}button[_ngcontent-%COMP%]{position:absolute;right:10px;bottom:10px}a[_ngcontent-%COMP%]{color:#99afe3}a[_ngcontent-%COMP%]:visited{color:#7294dc}.example-header-image[_ngcontent-%COMP%]{background-image:url(superGreatLogo.5307f2494314b5e1.png);background-size:cover}.image-example[_ngcontent-%COMP%]{max-width:100%}.armor-image-container[_ngcontent-%COMP%]{overflow:auto}.armor-image-container[_ngcontent-%COMP%] > img[_ngcontent-%COMP%]{max-height:300px}"]}),n})();var It=_(8746);let Ot=(()=>{class n{constructor(e,o){this.auth=e,this.router=o}canActivate(e,o){return!!this.auth.isAuthenticated()||(this.router.navigate(["login"]),!1)}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(L),t.LFG(I.F0))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),Mt=(()=>{class n{constructor(e,o){this.auth=e,this.router=o}canActivate(e,o){return!this.auth.isAuthenticated()||(this.router.navigate(["/"]),!1)}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(L),t.LFG(I.F0))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();var mt=_(2289),kt=_(4850),Dt=_(5154),dt=_(591);let Tt=(()=>{class n{constructor(){this.__status={calculatingResults:!1,calculatingPermutations:!1,updatingResultsTable:!1,updatingInventory:!1,updatingManifest:!1},this._status=new dt.X(this.__status),this.status=this._status.asObservable()}getStatus(){return this.__status}modifyStatus(e){e(this.__status),console.log("modifyStatus",this.__status),this._status.next(this.__status)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();var U=(()=>{return(n=U||(U={}))[n.None=-1]="None",n[n.Titan=0]="Titan",n[n.Hunter=1]="Hunter",n[n.Warlock=2]="Warlock",U;var n})(),st=_(13),r=_(1043),C=_(6471),h=_(8333),yt=(()=>{return(n=yt||(yt={}))[n.None=0]="None",n[n.ReduceUsedModSockets=1]="ReduceUsedModSockets",n[n.ReduceUsedModPoints=2]="ReduceUsedModPoints",yt;var n})();function zt(n){return{[r.WB.Mobility]:{fixed:!1,value:n},[r.WB.Resilience]:{fixed:!1,value:n},[r.WB.Recovery]:{fixed:!1,value:n},[r.WB.Discipline]:{fixed:!1,value:n},[r.WB.Intellect]:{fixed:!1,value:n},[r.WB.Strength]:{fixed:!1,value:n}}}class Et{constructor(){this.characterClass=U.Titan,this.addConstent1Resilience=!1,this.assumeEveryLegendaryIsArtifice=!1,this.disabledItems=[],this.minimumStatTiers={[r.WB.Mobility]:{fixed:!1,value:0},[r.WB.Resilience]:{fixed:!1,value:0},[r.WB.Recovery]:{fixed:!1,value:0},[r.WB.Discipline]:{fixed:!1,value:0},[r.WB.Intellect]:{fixed:!1,value:0},[r.WB.Strength]:{fixed:!1,value:0}},this.maximumStatMods=5,this.maximumModSlots={[C.y.ArmorSlotHelmet]:{fixed:!1,value:5},[C.y.ArmorSlotGauntlet]:{fixed:!1,value:5},[C.y.ArmorSlotChest]:{fixed:!1,value:5},[C.y.ArmorSlotLegs]:{fixed:!1,value:5},[C.y.ArmorSlotClass]:{fixed:!1,value:5},[C.y.ArmorSlotNone]:{fixed:!1,value:5}},this.putArtificeMods=!0,this.useFotlArmor=!0,this.allowBlueArmorPieces=!0,this.ignoreSunsetArmor=!1,this.includeVendorRolls=!1,this.includeCollectionRolls=!1,this.assumeLegendariesMasterworked=!0,this.assumeExoticsMasterworked=!0,this.assumeClassItemMasterworked=!0,this.onlyUseMasterworkedItems=!1,this.modOptimizationStrategy=yt.None,this.limitParsedResults=!0,this.tryLimitWastedStats=!1,this.onlyShowResultsWithNoWastedStats=!1,this.showWastedStatsColumn=!1,this.showPotentialTierColumn=!1,this.selectedModElement=h.O.Stasis,this.enabledMods=[],this.selectedExotics=[],this.armorPerks={[C.y.ArmorSlotHelmet]:{fixed:!0,value:r.Pn.None},[C.y.ArmorSlotGauntlet]:{fixed:!0,value:r.Pn.None},[C.y.ArmorSlotChest]:{fixed:!0,value:r.Pn.None},[C.y.ArmorSlotLegs]:{fixed:!0,value:r.Pn.None},[C.y.ArmorSlotClass]:{fixed:!0,value:r.Pn.None},[C.y.ArmorSlotNone]:{fixed:!0,value:r.Pn.None}}}static buildEmptyConfiguration(){return{enabledMods:[],disabledItems:[],addConstent1Resilience:!1,assumeEveryLegendaryIsArtifice:!1,putArtificeMods:!0,useFotlArmor:!1,maximumStatMods:5,onlyUseMasterworkedItems:!1,ignoreSunsetArmor:!1,includeCollectionRolls:!1,includeVendorRolls:!1,allowBlueArmorPieces:!0,assumeLegendariesMasterworked:!0,assumeExoticsMasterworked:!0,assumeClassItemMasterworked:!0,limitParsedResults:!0,modOptimizationStrategy:yt.None,tryLimitWastedStats:!1,onlyShowResultsWithNoWastedStats:!1,showWastedStatsColumn:!1,showPotentialTierColumn:!1,characterClass:U.Titan,selectedModElement:h.O.Stasis,selectedExotics:[],maximumModSlots:{[C.y.ArmorSlotHelmet]:{fixed:!1,value:5},[C.y.ArmorSlotGauntlet]:{fixed:!1,value:5},[C.y.ArmorSlotChest]:{fixed:!1,value:5},[C.y.ArmorSlotLegs]:{fixed:!1,value:5},[C.y.ArmorSlotClass]:{fixed:!1,value:5},[C.y.ArmorSlotNone]:{fixed:!1,value:5}},armorPerks:{[C.y.ArmorSlotHelmet]:{fixed:!0,value:r.Pn.None},[C.y.ArmorSlotGauntlet]:{fixed:!0,value:r.Pn.None},[C.y.ArmorSlotChest]:{fixed:!0,value:r.Pn.None},[C.y.ArmorSlotLegs]:{fixed:!0,value:r.Pn.None},[C.y.ArmorSlotClass]:{fixed:!0,value:r.Pn.None},[C.y.ArmorSlotNone]:{fixed:!0,value:r.Pn.None}},minimumStatTiers:zt(0)}}}var k=(()=>{return(n=k||(k={}))[n.Inventory=0]="Inventory",n[n.Collections=1]="Collections",n[n.Vendor=2]="Vendor",k;var n})();function Yt(n,i,e){if(!n)throw new Error("Missing manifest item");const o=Object.assign({id:-1,itemInstanceId:i,mayBeBugged:!1,masterworked:!1,energyLevel:0,mobility:0,resilience:0,recovery:0,discipline:0,intellect:0,strength:0,source:e},n);return o.id=void 0,(2545426109==n.hash||199733460==n.hash||3224066584==n.hash)&&(o.slot=C.y.ArmorSlotHelmet),o}function Gt(n,i){n.mobility=i[2996146975],n.resilience=i[392767087],n.recovery=i[1943323491],n.discipline=i[1735777505],n.intellect=i[144602215],n.strength=i[4244567218]}var Kt=_(4682);let et=(()=>{class n{constructor(e){var o=this;this.auth=e,this.db=(0,Kt.F)((0,m.Z)(function*(){yield o.auth.clearManifestInfo()})),this.manifestArmor=this.db.table("manifestArmor"),this.inventoryArmor=this.db.table("inventoryArmor"),this.manifestCollectibles=this.db.table("manifestCollectibles"),this.vendorNames=this.db.table("vendorNames"),this.auth.logoutEvent.subscribe(function(){var a=(0,m.Z)(function*(s){yield o.clearDatabase()});return function(s){return a.apply(this,arguments)}}())}initialize(){var e=this;this.db=(0,Kt.F)((0,m.Z)(function*(){yield e.auth.clearManifestInfo()})),this.manifestArmor=this.db.table("manifestArmor"),this.inventoryArmor=this.db.table("inventoryArmor"),this.manifestCollectibles=this.db.table("manifestCollectibles"),this.vendorNames=this.db.table("vendorNames")}writeManifestArmor(e,o){var a=this;return(0,m.Z)(function*(){yield a.manifestArmor.clear(),yield a.manifestArmor.bulkPut(e),localStorage.setItem("LastManifestUpdate",Date.now().toString()),localStorage.setItem("last-manifest-db-name",a.manifestArmor.db.name),localStorage.setItem("last-manifest-revision","df19c4b"),localStorage.setItem("last-manifest-version",o)})()}clearDatabase(){var e=this;return(0,m.Z)(function*(){localStorage.removeItem("LastManifestUpdate"),localStorage.removeItem("LastArmorUpdate"),yield e.inventoryArmor.clear()})()}resetDatabase(e=!0){var o=this;return(0,m.Z)(function*(){localStorage.removeItem("LastManifestUpdate"),localStorage.removeItem("last-manifest-revision"),localStorage.removeItem("last-manifest-db-name"),localStorage.removeItem("LastArmorUpdate"),localStorage.removeItem("last-armor-db-name"),yield o.db.delete(),e&&o.initialize()})()}lastManifestUpdate(){const e=localStorage.getItem("LastManifestUpdate"),o=localStorage.getItem("last-manifest-version"),a=localStorage.getItem("last-manifest-revision"),s=localStorage.getItem("last-manifest-db-name");return e&&a&&s&&o&&"df19c4b"===localStorage.getItem("last-manifest-revision")&&s===this.inventoryArmor.db.name?{updatedAt:parseInt(e),version:o}:void 0}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(L))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();var rt=_(9598),f=(()=>{return(n=f||(f={}))[n.WhisperOfDurance=1e3]="WhisperOfDurance",n[n.WhisperOfChains=1001]="WhisperOfChains",n[n.WhisperOfConduction=1002]="WhisperOfConduction",n[n.WhisperOfShards=1003]="WhisperOfShards",n[n.WhisperOfHedrons=1100]="WhisperOfHedrons",n[n.WhisperOfBonds=1101]="WhisperOfBonds",n[n.WhisperOfHunger=1102]="WhisperOfHunger",n[n.WhisperOfFractures=1103]="WhisperOfFractures",n[n.EchoOfExpulsion=1200]="EchoOfExpulsion",n[n.EchoOfProvision=1201]="EchoOfProvision",n[n.EchoOfPersistence=1202]="EchoOfPersistence",n[n.EchoOfLeeching=1203]="EchoOfLeeching",n[n.EchoOfDomineering=1204]="EchoOfDomineering",n[n.EchoOfDilation=1205]="EchoOfDilation",n[n.EchoOfUndermining=1206]="EchoOfUndermining",n[n.EchoOfInstability=1207]="EchoOfInstability",n[n.EchoOfHarvest=1208]="EchoOfHarvest",n[n.EchoOfObscurity=1209]="EchoOfObscurity",n[n.EchoOfStarvation=1210]="EchoOfStarvation",n[n.EchoOfVigilance=1211]="EchoOfVigilance",n[n.EmberOfBenelovence=1300]="EmberOfBenelovence",n[n.EmberOfBeams=1301]="EmberOfBeams",n[n.EmberOfEmpyrean=1302]="EmberOfEmpyrean",n[n.EmberOfCombustion=1303]="EmberOfCombustion",n[n.EmberOfChar=1304]="EmberOfChar",n[n.EmberOfTempering=1305]="EmberOfTempering",n[n.EmberOfEruption=1306]="EmberOfEruption",n[n.EmberOfWonder=1307]="EmberOfWonder",n[n.EmberOfSearing=1308]="EmberOfSearing",n[n.EmberOfTorches=1309]="EmberOfTorches",n[n.EmberOfMercy=1310]="EmberOfMercy",n[n.SparkOfBrilliance=1400]="SparkOfBrilliance",n[n.SparkOfFeedback=1401]="SparkOfFeedback",n[n.SparkOfDischarge=1402]="SparkOfDischarge",n[n.SparkOfFocus=1403]="SparkOfFocus",n[n.SparkOfVolts=1404]="SparkOfVolts",n[n.SparkOfResistance=1405]="SparkOfResistance",n[n.SparkOfShock=1406]="SparkOfShock",n[n.ThreadOfFury=1600]="ThreadOfFury",n[n.ThreadOfAscent=1601]="ThreadOfAscent",n[n.ThreadOfFinality=1602]="ThreadOfFinality",n[n.ThreadOfWarding=1603]="ThreadOfWarding",n[n.ThreadOfTransmutation=1604]="ThreadOfTransmutation",n[n.ThreadOfEvolution=1605]="ThreadOfEvolution",n[n.ThreadOfBinding=1606]="ThreadOfBinding",n[n.ThreadOfGeneration=1607]="ThreadOfGeneration",n[n.ThreadOfPropagation=1608]="ThreadOfPropagation",f;var n})();const ut={[f.WhisperOfDurance]:{id:f.WhisperOfDurance,name:"Whisper Of Durance",description:"Slow from your abilities lasts longer. For those abilities that linger, their duration will also increase.",type:h.O.Stasis,bonus:[{stat:r.WB.Strength,value:10}],cost:1,requiredArmorAffinity:0,hash:3469412969},[f.WhisperOfChains]:{id:f.WhisperOfChains,name:"Whisper Of Chains",description:"While you are near frozen targets or a friendly Stasis crystal, you take reduced damage from targets.",type:h.O.Stasis,bonus:[{stat:r.WB.Recovery,value:10}],cost:1,requiredArmorAffinity:0,hash:537774540},[f.WhisperOfShards]:{id:f.WhisperOfShards,name:"Whisper Of Shards",description:"Shattering a Stasis crystal temporarily boosts your grenade recharge rate. Shattering additional Stasis crystals increases the duration of this benefit.",type:h.O.Stasis,bonus:[{stat:r.WB.Resilience,value:10}],cost:1,requiredArmorAffinity:0,hash:3469412975},[f.WhisperOfConduction]:{id:f.WhisperOfConduction,name:"Whisper Of Conduction",description:"Nearby Stasis shards track to your position.",type:h.O.Stasis,bonus:[{stat:r.WB.Resilience,value:10},{stat:r.WB.Intellect,value:10}],cost:1,requiredArmorAffinity:0,hash:2483898429},[f.WhisperOfBonds]:{id:f.WhisperOfBonds,name:"Whisper of Bonds",description:"Defeating frozen targets grants you Super energy.",type:h.O.Stasis,bonus:[{stat:r.WB.Discipline,value:-10},{stat:r.WB.Intellect,value:-10}],cost:1,requiredArmorAffinity:0,hash:3469412974},[f.WhisperOfHedrons]:{id:f.WhisperOfHedrons,name:"Whisper of Hedrons",description:"Dramatically increases weapon stability, weapon aim assist, Mobility, Resilience, and Recovery after freezing a target with Stasis.",type:h.O.Stasis,bonus:[{stat:r.WB.Strength,value:-10}],cost:1,requiredArmorAffinity:0,hash:3469412970},[f.WhisperOfFractures]:{id:f.WhisperOfFractures,name:"Whisper of Fractures",description:"Your melee energy recharges faster when you are near two or more targets.",type:h.O.Stasis,bonus:[{stat:r.WB.Discipline,value:-10}],cost:1,requiredArmorAffinity:0,hash:537774542},[f.WhisperOfHunger]:{id:f.WhisperOfHunger,name:"Whisper of Hunger",description:"Increases the melee energy gained from picking up Stasis shards.",type:h.O.Stasis,bonus:[{stat:r.WB.Mobility,value:-10},{stat:r.WB.Recovery,value:-10}],cost:1,requiredArmorAffinity:0,hash:2483898431},[f.EchoOfExpulsion]:{id:f.EchoOfExpulsion,name:"Echo of Expulsion",description:"Void ability final blows cause targets to explode.",type:h.O.Void,bonus:[{stat:r.WB.Intellect,value:10}],cost:1,requiredArmorAffinity:0,hash:2272984665},[f.EchoOfProvision]:{id:f.EchoOfProvision,name:"Echo of Provision",description:"Damaging targets with grenades grants melee energy.",type:h.O.Void,bonus:[{stat:r.WB.Strength,value:-10}],cost:1,requiredArmorAffinity:0,hash:2272984664},[f.EchoOfPersistence]:{id:f.EchoOfPersistence,name:"Echo of Persistence",description:"Void buffs applied to you (Invisibility, Overshield, and Devour) have increased duration.",type:h.O.Void,bonus:[{stat:r.AR.ClassAbilityRegenerationStat,value:-10}],cost:1,requiredArmorAffinity:0,hash:2272984671},[f.EchoOfLeeching]:{id:f.EchoOfLeeching,name:"Echo of Leeching",description:"Melee final blows start health regeneration for you and nearby allies.",type:h.O.Void,bonus:[{stat:r.WB.Resilience,value:10}],cost:1,requiredArmorAffinity:0,hash:2272984670},[f.EchoOfDomineering]:{id:f.EchoOfDomineering,name:"Echo of Domineering",description:"After suppressing a target, you gain greatly increased Mobility for a short duration and your equipped weapon is reloaded from reserves.",type:h.O.Void,bonus:[{stat:r.WB.Discipline,value:10}],cost:1,requiredArmorAffinity:0,hash:2272984657},[f.EchoOfDilation]:{id:f.EchoOfDilation,name:"Echo of Dilation",description:"While crouched, you sneak faster and gain enhanced radar resolution.",type:h.O.Void,bonus:[{stat:r.WB.Mobility,value:10},{stat:r.WB.Intellect,value:10}],cost:1,requiredArmorAffinity:0,hash:2272984656},[f.EchoOfUndermining]:{id:f.EchoOfUndermining,name:"Echo of Undermining",description:"Your Void grenades weaken targets.",type:h.O.Void,bonus:[{stat:r.WB.Discipline,value:-20}],cost:1,requiredArmorAffinity:0,hash:2272984668},[f.EchoOfInstability]:{id:f.EchoOfInstability,name:"Echo of Instability",description:"Defeating targets with grenades grants Volatile Rounds to your Void weapons.",type:h.O.Void,bonus:[{stat:r.WB.Strength,value:10}],cost:1,requiredArmorAffinity:0,hash:2661180600},[f.EchoOfObscurity]:{id:f.EchoOfObscurity,name:"Echo of Obscurity",description:"Finisher final blows grant Invisibility.",type:h.O.Void,bonus:[{stat:r.WB.Recovery,value:10}],cost:1,requiredArmorAffinity:0,hash:2661180602},[f.EchoOfHarvest]:{id:f.EchoOfHarvest,name:"Echo of Harvest",description:"Defeating weakened targets with precision final blows will create an Orb of Power.",type:h.O.Void,bonus:[{stat:r.WB.Intellect,value:-10}],cost:1,requiredArmorAffinity:0,hash:2661180601},[f.EchoOfStarvation]:{id:f.EchoOfStarvation,name:"Echo of Starvation",description:"Picking up an Orb of Power grants Devour.",type:h.O.Void,bonus:[{stat:r.WB.Recovery,value:-10}],cost:1,requiredArmorAffinity:0,hash:2661180603},[f.EchoOfVigilance]:{id:f.EchoOfVigilance,name:"Echo of Vigilance",description:"Defeating a target while your shields are depleted grants you a temporary Void overshield.",type:h.O.Void,bonus:[{stat:r.WB.Recovery,value:-10}],cost:1,requiredArmorAffinity:0,hash:3854948621},[f.EmberOfBenelovence]:{id:f.EmberOfBenelovence,name:"Ember of Benelovence",description:"Applying restoration, cure, or radiant to allies grants increased grenade, melee, and class ability regeneration for a short duration.",type:h.O.Solar,bonus:[{stat:r.WB.Discipline,value:-10}],cost:1,requiredArmorAffinity:0,hash:362132292},[f.EmberOfBeams]:{id:f.EmberOfBeams,name:"Ember of Beams",description:"Your Solar Super projectiles have stronger target acquisition.",type:h.O.Solar,bonus:[{stat:r.WB.Intellect,value:10}],cost:1,requiredArmorAffinity:0,hash:362132295},[f.EmberOfEmpyrean]:{id:f.EmberOfEmpyrean,name:"Ember of Empyrean",description:"Solar weapon or ability final blows extend the duration of restoration and radiant effects applied to you.",type:h.O.Solar,bonus:[{stat:r.WB.Resilience,value:-10}],cost:1,requiredArmorAffinity:0,hash:362132294},[f.EmberOfCombustion]:{id:f.EmberOfCombustion,name:"Ember of Combustion",description:"Final blows with your Solar Super cause targets to ignite.",type:h.O.Solar,bonus:[{stat:r.WB.Strength,value:10}],cost:1,requiredArmorAffinity:0,hash:362132289},[f.EmberOfChar]:{id:f.EmberOfChar,name:"Ember of Char",description:"Your Solar ignitions spread scorch to affected targets.",type:h.O.Solar,bonus:[{stat:r.WB.Discipline,value:10}],cost:1,requiredArmorAffinity:0,hash:362132291},[f.EmberOfTempering]:{id:f.EmberOfTempering,name:"Ember of Tempering",description:"Solar weapon final blows grant you and your allies increased recovery for a short duration. Stacks 3 times.\nWhile Ember of Tempering is active, your weapons have increased airborne effectiveness.",type:h.O.Solar,bonus:[{stat:r.WB.Recovery,value:-10}],cost:1,requiredArmorAffinity:0,hash:362132290},[f.EmberOfEruption]:{id:f.EmberOfEruption,name:"Ember of Eruption",description:"Your Solar ignitions have increased area of effect.",type:h.O.Solar,bonus:[{stat:r.WB.Strength,value:10}],cost:1,requiredArmorAffinity:0,hash:1051276348},[f.EmberOfWonder]:{id:f.EmberOfWonder,name:"Ember of Wonder",description:"Rapidly defeating multiple targets with Solar ignitions generates an Orb of Power.",type:h.O.Solar,bonus:[{stat:r.WB.Resilience,value:10}],cost:1,requiredArmorAffinity:0,hash:1051276350},[f.EmberOfSearing]:{id:f.EmberOfSearing,name:"Ember of Searing",description:"Defeating scorched targets grants melee energy.",type:h.O.Solar,bonus:[{stat:r.WB.Recovery,value:10}],cost:1,requiredArmorAffinity:0,hash:1051276351},[f.EmberOfTorches]:{id:f.EmberOfTorches,name:"Ember of Torches",description:"Powered melee attacks against combatants make you and nearby allies radiant.",type:h.O.Solar,bonus:[{stat:r.WB.Discipline,value:-10}],cost:1,requiredArmorAffinity:0,hash:362132288},[f.EmberOfMercy]:{id:f.EmberOfMercy,name:"Ember of Mercy",description:"When you revive an ally, you and other nearby allies gain restoration. Picking up a Firesprite grants restoration.",type:h.O.Solar,bonus:[{stat:r.WB.Resilience,value:10}],cost:1,requiredArmorAffinity:0,hash:4180586737},[f.SparkOfBrilliance]:{id:f.SparkOfBrilliance,name:"Spark of Brilliance",description:"Defeating a blinded target with precision damage creates a blinding explosion.",type:h.O.Arc,bonus:[{stat:r.WB.Intellect,value:10}],cost:1,requiredArmorAffinity:0,hash:3277705905},[f.SparkOfFeedback]:{id:f.SparkOfFeedback,name:"Spark of Feedback",description:"Taking melee damage briefly increases your outgoing melee damage.",type:h.O.Arc,bonus:[{stat:r.WB.Resilience,value:10}],cost:1,requiredArmorAffinity:0,hash:3277705907},[f.SparkOfDischarge]:{id:f.SparkOfDischarge,name:"Spark of Discharge",description:"Arc weapon final blows have a chance to create an Ionic Trace.",type:h.O.Arc,bonus:[{stat:r.WB.Strength,value:-10}],cost:1,requiredArmorAffinity:0,hash:1727069362},[f.SparkOfFocus]:{id:f.SparkOfFocus,name:"Spark of Focus",description:"After sprinting for a short time, your class ability regeneration is increased.",type:h.O.Arc,bonus:[{stat:r.AR.ClassAbilityRegenerationStat,value:-10}],cost:1,requiredArmorAffinity:0,hash:1727069360},[f.SparkOfVolts]:{id:f.SparkOfVolts,name:"Spark of Volts",description:"Finishers make you amplified.",type:h.O.Arc,bonus:[{stat:r.WB.Recovery,value:10}],cost:1,requiredArmorAffinity:0,hash:3277705904},[f.SparkOfResistance]:{id:f.SparkOfResistance,name:"Spark of Resistance",description:"While surrounded by combatants, you are more resistant to incoming damage.",type:h.O.Arc,bonus:[{stat:r.WB.Strength,value:10}],cost:1,requiredArmorAffinity:0,hash:1727069366},[f.SparkOfShock]:{id:f.SparkOfShock,name:"Spark of Shock",description:"Your Arc grenades jolt targets.",type:h.O.Arc,bonus:[{stat:r.WB.Discipline,value:-10}],cost:1,requiredArmorAffinity:0,hash:1727069364},[f.ThreadOfFury]:{id:f.ThreadOfFury,name:"Thread of Fury",description:"Damaging targets with a Tangle grants melee energy.",type:h.O.Strand,bonus:[{stat:r.WB.Strength,value:-10}],cost:1,requiredArmorAffinity:0,hash:4208512219},[f.ThreadOfAscent]:{id:f.ThreadOfAscent,name:"Thread of Ascent",description:"Activating your grenade ability reloads your equipped weapon and grants bonus airborne effectiveness and handling for a short duration",type:h.O.Strand,bonus:[{stat:r.WB.Mobility,value:10}],cost:1,requiredArmorAffinity:0,hash:4208512216},[f.ThreadOfFinality]:{id:f.ThreadOfFinality,name:"Thread of Finality",description:"Finisher final blows create Threadlings.",type:h.O.Strand,bonus:[{stat:r.WB.Recovery,value:10}],cost:1,requiredArmorAffinity:0,hash:4208512217},[f.ThreadOfWarding]:{id:f.ThreadOfWarding,name:"Thread of Warding",description:"Picking up an Orb of Power grants Woven Mail.",type:h.O.Strand,bonus:[{stat:r.WB.Resilience,value:-10}],cost:1,requiredArmorAffinity:0,hash:4208512222},[f.ThreadOfTransmutation]:{id:f.ThreadOfTransmutation,name:"Thread of Transmutation",description:"While you have Woven Mail, weapon final blows create a Tangle",type:h.O.Strand,bonus:[{stat:r.WB.Strength,value:10}],cost:1,requiredArmorAffinity:0,hash:4208512221},[f.ThreadOfEvolution]:{id:f.ThreadOfEvolution,name:"Thread of Evolution",description:"Threadlings travel farther and deal additional damage.",type:h.O.Strand,bonus:[{stat:r.WB.Intellect,value:10}],cost:1,requiredArmorAffinity:0,hash:4208512211},[f.ThreadOfBinding]:{id:f.ThreadOfBinding,name:"Thread of Binding",description:"Super final blows emit a suspending burst from the target.",type:h.O.Strand,bonus:[{stat:r.WB.Resilience,value:10}],cost:1,requiredArmorAffinity:0,hash:3192552688},[f.ThreadOfGeneration]:{id:f.ThreadOfGeneration,name:"Thread of Generation",description:"Dealing damage generates grenade energy.",type:h.O.Strand,bonus:[{stat:r.WB.Discipline,value:-10}],cost:1,requiredArmorAffinity:0,hash:3192552691},[f.ThreadOfPropagation]:{id:f.ThreadOfPropagation,name:"Thread of Propagation",description:"Powered melee final blows grant your [Strand] Strand weapons Unraveling Rounds",type:h.O.Strand,bonus:[{stat:r.WB.Strength,value:10}],cost:1,requiredArmorAffinity:0,hash:4208512210}},Lt={outputEncoding:"Base64"},$t={inputEncoding:"Base64",outputEncoding:"String"};let B=(()=>{class n{constructor(){this.__configuration=this.loadCurrentConfiguration(),this._configuration=new dt.X(this.__configuration),this.configuration=this._configuration.asObservable(),this._storedConfigurations=new dt.X(this.listSavedConfigurations()),this.storedConfigurations=this._storedConfigurations.asObservable()}get readonlyConfigurationSnapshot(){return Object.assign(this.__configuration,{})}modifyConfiguration(e){e(this.__configuration),this.saveCurrentConfiguration(this.__configuration)}saveConfiguration(e,o){let a=this.listSavedConfigurations(),s=this.listSavedConfigurations().map((d,u)=>[d,u]).filter(d=>d[0].name==e)[0];s&&a.splice(s[1],1),a.push({configuration:o,name:e,version:"2.5.0"}),a=a.sort((d,u)=>d.nameu.name?1:0);const l=rt.compress(JSON.stringify(a),Lt);localStorage.setItem("storedConfigurations",l),this._storedConfigurations.next(a)}doesSavedConfigurationExist(e){return this.listSavedConfigurations().filter(o=>o.name==e).length>0}loadSavedConfiguration(e){let o=this.listSavedConfigurations().filter(a=>a.name==e)[0];return!!o&&(this.saveCurrentConfiguration(o.configuration),!0)}checkAndFixOldSavedConfigurations(e){if(e.configuration=Object.assign(Et.buildEmptyConfiguration(),e.configuration),e.configuration.hasOwnProperty("minimumStatTier")){let o=e.configuration.minimumStatTier;e.configuration.minimumStatTiers[r.WB.Mobility].value=o[r.WB.Mobility],e.configuration.minimumStatTiers[r.WB.Resilience].value=o[r.WB.Resilience],e.configuration.minimumStatTiers[r.WB.Recovery].value=o[r.WB.Recovery],e.configuration.minimumStatTiers[r.WB.Discipline].value=o[r.WB.Discipline],e.configuration.minimumStatTiers[r.WB.Intellect].value=o[r.WB.Intellect],e.configuration.minimumStatTiers[r.WB.Strength].value=o[r.WB.Strength],delete e.configuration.minimumStatTier}if(e.configuration.hasOwnProperty("selectedExoticHash")&&(e.configuration.selectedExotics=[e.configuration.selectedExoticHash],delete e.configuration.selectedExoticHash),e.configuration.hasOwnProperty("maximumStatMods")){for(let a=e.configuration.maximumStatMods;a<5;a++)e.configuration.maximumModSlots[1+a].value=0;delete e.configuration.maximumStatMods}e.configuration.enabledMods=e.configuration.enabledMods.filter(o=>!!ut[o]),e.configuration.limitParsedResults=!0,e.configuration.addConstent1Resilience=!1}listSavedConfigurations(){let e;try{e=localStorage.getItem("storedConfigurations")||"[]","["!=e.substr(0,1)&&(e=rt.decompress(e,$t))}catch{e=[]}let o=JSON.parse(e)||[];return o=o.sort((a,s)=>a.names.name?1:0),o.forEach(a=>this.checkAndFixOldSavedConfigurations(a)),o}deleteStoredConfiguration(e){let o=this.listSavedConfigurations(),a=this.listSavedConfigurations().map((s,l)=>[s,l]).filter(s=>s[0].name==e)[0];a&&o.splice(a[1],1),localStorage.setItem("storedConfigurations",rt.compress(JSON.stringify(o),Lt)),this._storedConfigurations.next(o)}saveCurrentConfigurationToName(e){this.saveConfiguration(e,this.__configuration)}saveCurrentConfiguration(e){console.debug("write configuration",e),this.__configuration=Object.assign(Et.buildEmptyConfiguration(),e),this.__configuration.enabledMods=[].concat(this.__configuration.enabledMods),this.__configuration.minimumStatTiers=Object.assign({},this.__configuration.minimumStatTiers);const o=rt.compress(JSON.stringify(this.__configuration),Lt);localStorage.setItem("currentConfig",o),this._configuration.next(Object.assign({},this.__configuration))}loadCurrentConfiguration(){let e;try{e=localStorage.getItem("currentConfig")||"{}","{"!=e.substr(0,1)&&(e=rt.decompress(e,$t))}catch{e={}}var o={name:"dummy",version:"1",configuration:JSON.parse(e)};return this.checkAndFixOldSavedConfigurations(o),o.configuration}getCurrentConfigBase64Compressed(){let e=localStorage.getItem("currentConfig")||"{}";return"{"==e.substr(0,1)&&(e=rt.compress(e,{outputEncoding:"Base64"})),e}getAllStoredConfigurationsBase64Compressed(){let e=localStorage.getItem("storedConfigurations")||"[]";return"["==e.substr(0,1)&&(e=rt.compress(e,{outputEncoding:"Base64"})),e}getStoredConfigurationBase64Compressed(e){let o=this.listSavedConfigurations().filter(a=>a.name==e)[0];return o?rt.compress(JSON.stringify(o),{outputEncoding:"Base64"}):""}resetCurrentConfiguration(){this.saveCurrentConfiguration(Et.buildEmptyConfiguration())}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();var G=_(8012),ve=_(1016);let Ft=(()=>{class n{constructor(e,o){this.authService=e,this.http=o}$httpWithoutKey(e){var o=this;return(0,m.Z)(function*(){return o.http.get(e.url,{params:e.params}).toPromise()})()}$httpPost(e){var o=this;return(0,m.Z)(function*(){return o.http.post(e.url,e.body,{params:e.params,headers:{"X-API-Key":S_apiKey,Authorization:"Bearer "+o.authService.accessToken}}).toPromise().catch(function(){var a=(0,m.Z)(function*(s){console.error(s)});return function(s){return a.apply(this,arguments)}}())})()}$http(e){var o=this;return(0,m.Z)(function*(){return o.http.get(e.url,{params:e.params,headers:{"X-API-Key":S_apiKey,Authorization:"Bearer "+o.authService.accessToken}}).toPromise().catch(function(){var a=(0,m.Z)(function*(s){console.error(s),"SystemDisabled"==s.error?.ErrorStatus&&(console.info("System is disabled. Revoking auth, must re-login"),yield o.authService.logout()),"Internal Server Error"!=s.ErrorStatus&&console.info("API-Error")});return function(s){return a.apply(this,arguments)}}())})()}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(L),t.LFG(at.eN))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();var Ae=_(9891);let Rt=(()=>{class n{constructor(e,o){this.authService=e,this.http=o}getMembershipDataForCurrentUser(){var e=this;return(0,m.Z)(function*(){var o=JSON.parse(localStorage.getItem("auth-membershipInfo")||"null"),a=JSON.parse(localStorage.getItem("auth-membershipInfo-date")||"0");if(o&&Date.now()-a<864e5)return console.log("getMembershipDataForCurrentUser -> loading cached! "),o;console.info("BungieApiService","getMembershipDataForCurrentUser");let l=(yield(0,Ae.Rm)(u=>e.http.$http(u)))?.Response.destinyMemberships;console.info("Memberships:",l),l=l.filter(u=>0==u.crossSaveOverride||u.crossSaveOverride==u.membershipType),console.info("Filtered Memberships:",l);let d=null;if(1==l?.length)d=l?.[0];else{let u=0,x=0;for(let p in l){const b=l?.[p],Z=yield(0,G.Ai)(D=>e.http.$http(D),{components:[100],membershipType:b.membershipType,destinyMembershipId:b.membershipId});if(Z&&Z.Response?.profile.data?.dateLastPlayed){let D=Date.parse(Z.Response?.profile.data?.dateLastPlayed);D>x&&(x=D,u=p)}}console.info("getMembershipDataForCurrentUser","Selected membership data for the last logged in membership."),d=l?.[u]}return localStorage.setItem("auth-membershipInfo",JSON.stringify(d)),localStorage.setItem("auth-membershipInfo-date",JSON.stringify(Date.now())),d})()}getCharacters(){var e=this;return(0,m.Z)(function*(){let o=yield e.getMembershipDataForCurrentUser();if(!o)return yield e.authService.logout(),[];const a=yield(0,G.Ai)(s=>e.http.$http(s),{components:[200],membershipType:o.membershipType,destinyMembershipId:o.membershipId});return Object.values(a?.Response.characters.data||{}).map(s=>({characterId:s.characterId,clazz:s.classType,emblemUrl:s.emblemBackgroundPath,lastPlayed:Date.parse(s.dateLastPlayed)}))||[]})()}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(L),t.LFG(Ft))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const Xt="vendor-next-refresh-time";let we=(()=>{class n{constructor(e,o,a){this.membership=e,this.http=o,this.db=a}getVendorArmorItemsForCharacter(e,o,a){var s=this;return(0,m.Z)(function*(){const l=yield(0,G.dH)(p=>s.http.$http(p),{components:[400,402,304],characterId:a,membershipType:o.membershipType,destinyMembershipId:o.membershipId,filter:0}),d=Object.entries(l.Response.vendors.data).filter(([p,b])=>b.enabled).flatMap(([p,b])=>{const Z=l.Response.sales.data?.[p]?.saleItems??{},D=l.Response.itemComponents[parseInt(p)].stats.data??{};return{items:Object.entries(Z).map(([E,M])=>{const q=e[M.itemHash],gt=D[parseInt(E)];if(128==(128&M.augments)||!q||!gt)return;const T=Object.values(gt.stats).reduce((X,{statHash:tt,value:be})=>(X[tt]=be,X),{}),R=Yt(q,`v${p}-${M.itemHash}`,k.Vendor);return Gt(R,T),R}).filter(Boolean),nextRefreshDate:new Date(b.nextRefreshDate).getTime()}}).filter(({items:p})=>p.length>0),u=d.flatMap(({items:p})=>p),x=Math.min(...d.map(({nextRefreshDate:p})=>p));return console.log(`Collected ${u.length} vendor armor items for character ${a}`),{items:u,nextRefreshDate:x}})()}isVendorCacheValid(){const e=localStorage.getItem(Xt);if(!e)return!1;const o=new Date(e);return!!isFinite(o.getTime())&&o>new Date}writeVendorCache(e,o){var a=this;return(0,m.Z)(function*(){console.log(`Writing new vendor cache (${e.length} items), valid until ${o.toISOString()}`),yield a.db.inventoryArmor.where({source:k.Vendor}).delete(),yield a.db.inventoryArmor.bulkPut(e),localStorage.setItem(Xt,o.toISOString())})()}updateVendorArmorItemsCache(){var e=this;return(0,m.Z)(function*(){if(e.isVendorCacheValid())return void console.log("Using vendor items cache");const o=yield e.membership.getMembershipDataForCurrentUser(),a=yield e.membership.getCharacters(),s=(yield e.db.manifestArmor.toArray()).filter(x=>2==x.itemType).reduce((x,p)=>(x[p.hash]=p,x),{}),l=yield Promise.all(a.map(({characterId:x})=>e.getVendorArmorItemsForCharacter(s,o,x))),d=l.flatMap(({items:x})=>x),u=Math.min(...l.map(({nextRefreshDate:x})=>x));return e.writeVendorCache(d,new Date(u))})()}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(Rt),t.LFG(Ft),t.LFG(et))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function te(n,i,e,o){const a={2996146975:0,392767087:0,1943323491:0,1735777505:0,144602215:0,4244567218:0};for(let l of i)l.statTypeHash in a&&(a[l.statTypeHash]+=l.value);if(n.slot!=C.y.ArmorSlotClass){const l=[e[6],e[7],e[8],e[9]];n.statPlugHashes=l;var s=l.map(d=>o[d||""]).filter(d=>null!=d);for(let d of s)for(let u of d.investmentStats)u.statTypeHash in a&&(a[u.statTypeHash]+=u.value)}Gt(n,a)}let Qt=(()=>{class n{constructor(e,o,a,s,l,d){var u=this;this.authService=e,this.http=o,this.db=a,this.config=s,this.membership=l,this.vendors=d,this.config_assumeEveryLegendaryIsArtifice=!1,this.config.configuration.subscribe(function(){var x=(0,m.Z)(function*(p){u.config_assumeEveryLegendaryIsArtifice=p.assumeEveryLegendaryIsArtifice});return function(p){return x.apply(this,arguments)}}())}transferItem(e,o,a=!1){var s=this;return(0,m.Z)(function*(){let l=yield s.membership.getMembershipDataForCurrentUser();if(!l)return yield s.authService.logout(),!1;let d=yield(0,G.rV)(x=>s.http.$http(x),{membershipType:l.membershipType,destinyMembershipId:l.membershipId,itemInstanceId:e,components:[307]}),u=!1;if(!d)return!1;if(d.Response.characterId!=o){2!=d.Response.item.data?.location&&(yield s.moveItemToVault(d.Response.item.data?.itemInstanceId||""),d=yield(0,G.rV)(p=>s.http.$http(p),{membershipType:l.membershipType,destinyMembershipId:l.membershipId,itemInstanceId:e,components:[307]}));const x={characterId:o,membershipType:3,itemId:d?.Response.item.data?.itemInstanceId||"",itemReferenceHash:d?.Response.item.data?.itemHash||0,stackSize:1,transferToVault:!1};u=!!(yield(0,G.ux)(p=>s.http.$httpPost(p),x))}if(a){let x={characterId:o,membershipType:3,stackSize:1,itemId:d?.Response.item.data?.itemInstanceId||"",itemReferenceHash:d?.Response.item.data?.itemHash||0};u=!!(yield(0,G.DH)(p=>s.http.$httpPost(p),x))}return u})()}moveItemToVault(e){var o=this;return(0,m.Z)(function*(){console.info("moveItemToVault",e);let a=yield o.membership.getMembershipDataForCurrentUser();if(!a)return void(yield o.authService.logout());const s=yield(0,G.rV)(d=>o.http.$http(d),{membershipType:a.membershipType,destinyMembershipId:a.membershipId,itemInstanceId:e,components:[307]}),l={characterId:s?.Response.characterId||"",membershipType:3,itemId:s?.Response.item.data?.itemInstanceId||"",itemReferenceHash:s?.Response.item.data?.itemHash||0,stackSize:1,transferToVault:!0};yield(0,G.ux)(d=>o.http.$httpPost(d),l)})()}getUnlockedExoticArmor(e){var o=this;return(0,m.Z)(function*(){const a=(yield o.db.manifestCollectibles.toArray()).reduce((l,d)=>(l[d.hash]=d.itemHash,l),{}),s=Object.values(e).flatMap(l=>Object.entries(l.collectibles??{})).filter(([l,{state:d}])=>0==(1&d)&&a[parseInt(l)]).map(([l,d])=>a[parseInt(l)]);return new Set(s)})()}updateArmorItems(e=!1){var o=this;return(0,m.Z)(function*(){if(!e&&localStorage.getItem("LastArmorUpdate")&&localStorage.getItem("last-armor-db-name")==o.db.inventoryArmor.db.name&&Date.now()-Number.parseInt(localStorage.getItem("LastArmorUpdate")||"0")<18e5)return;let a=yield o.membership.getMembershipDataForCurrentUser();if(!a)return void(yield o.authService.logout());console.info("BungieApiService","getProfile");let s=yield(0,G.Ai)(T=>o.http.$http(T),{components:[205,201,103,102,304,300,302,305,308,800],membershipType:a.membershipType,destinyMembershipId:a.membershipId});yield o.vendors.updateVendorArmorItemsCache();const l=yield o.getUnlockedExoticArmor(s.Response.characterCollectibles.data??{});let d=s.Response.profileInventory.data?.items||[];for(let T in s.Response.characterEquipment.data)d=d.concat(s.Response.characterEquipment.data[T].items);for(let T in s.Response.characterInventories.data)d=d.concat(s.Response.characterInventories.data[T].items);var u=d.filter(T=>[3853748946,4257549984,4257549985].indexOf(T.itemHash)>-1).reduce((T,R)=>(R.itemHash.toString()in T||(T[R.itemHash]=0),T[R.itemHash]+=R.quantity,T),{});let x=s.Response.profileCurrencies.data?.items.filter(T=>3159615086==T.itemHash)||[];u[3159615086]=x.length>0?x[0].quantity:0;let p=s.Response.profileCurrencies.data?.items.filter(T=>1022552290==T.itemHash)||[];u[1022552290]=p.length>0?p[0].quantity:0,localStorage.setItem("stored-materials",JSON.stringify(u));const b=new Set(d.map(T=>T.itemHash));l.forEach(T=>b.add(T));let Z=yield o.db.manifestArmor.toArray();const D=Z.filter(T=>b.has(T.hash)),O=Z.filter(T=>19==T.itemType);let E=Object.fromEntries(D.map(T=>[T.hash,T])),M=Object.fromEntries(O.map(T=>[T.hash,T])),q=d.filter(T=>!!T.itemInstanceId).filter(T=>3284755031!==T.bucketHash).filter(T=>!!((s.Response.itemComponents.stats.data||{})[T.itemInstanceId||""]?.stats||{})[392767087]).filter(T=>!!((s.Response.itemComponents.instances.data||{})[T.itemInstanceId||""]||{}).energy).map(T=>{let X=(s.Response.itemComponents.instances.data||{})[T.itemInstanceId||""]||{};if(!E[T.itemHash])return console.warn("Missing manifest item for item hash",T.itemHash),null;let tt=Yt(E[T.itemHash],T.itemInstanceId||"",k.Inventory);tt.masterworked=!!X.energy&&10==X.energy.energyCapacity,tt.energyLevel=X.energy?X.energy.energyCapacity:0;const Kc=(s.Response.itemComponents.sockets.data||{})[T.itemInstanceId]?.sockets.map(Ce=>Ce.plugHash)??[];return te(tt,E[T.itemHash]?.investmentStats??[],Kc,M),tt.perk==r.Pn.SlotArtifice&&((((s.Response.itemComponents.perks.data||{})[T.itemInstanceId||""]||{}).perks||[]).filter($c=>229248542==$c.perkHash).length>0||(tt.perk=r.Pn.None)),!tt.isExotic&&o.config_assumeEveryLegendaryIsArtifice&&(tt.perk=r.Pn.SlotArtifice),tt}).filter(Boolean);const gt=Array.from(l).map(T=>{const R=E[T];if(!R)return console.error("Couldn't find manifest item for exotic",T),null;const X=Yt(R,`c${R.hash}`,k.Collections);return te(X,R.investmentStats,R.socketEntries.map(tt=>tt.singleInitialItemHash),M),X}).filter(Boolean);return q=q.concat(gt),q=q.filter(T=>!T.statPlugHashes||null!=T.statPlugHashes[0]),yield o.db.inventoryArmor.where({source:k.Inventory}).delete(),yield o.db.inventoryArmor.where({source:k.Collections}).delete(),yield o.db.inventoryArmor.bulkAdd(q),localStorage.setItem("LastArmorUpdate",Date.now().toString()),localStorage.setItem("last-armor-db-name",o.db.inventoryArmor.db.name),q})()}getArmorPerk(e){if(S_featureFlags_enableGuardianGamesFeatures&&(1013401891===e.hash||366019830===e.hash||537041732==e.hash))return r.Pn.GuardianGamesClassItem;const o=e.sockets?.socketEntries??[];if(o.find(a=>1311==a.reusablePlugSetHash))return r.Pn.SlotArtifice;for(const a of o){const s=a.singleInitialItemHash;if(!s)continue;const l=Object.entries(r.DH).find(d=>d[1]==s);if(l)return parseInt(l[0])}return r.Pn.None}updateVendorNames(e){var o=this;return(0,m.Z)(function*(){const s=Object.values(e.DestinyVendorDefinition).map(l=>({vendorId:l.hash,vendorName:l.displayProperties.name}));yield o.db.vendorNames.clear(),yield o.db.vendorNames.bulkAdd(s)})()}updateAbilities(e){return(0,m.Z)(function*(){const o=Object.values(e.DestinyInventoryItemDefinition).filter(a=>a.plug?.plugCategoryIdentifier?.match(/\.(supers|grenades|class_abilities|melee|aspects|fragments)$/));localStorage.setItem("allAbilities",JSON.stringify(o))})()}updateExoticCollectibles(e){var o=this;return(0,m.Z)(function*(){const a=Object.entries(e.DestinyCollectibleDefinition).filter(([s,l])=>{const d=e.DestinyInventoryItemDefinition[l.itemHash];return"Exotic"==d?.inventory?.tierTypeName&&2==d?.itemType}).map(([s,l])=>({hash:parseInt(s),itemHash:l.itemHash}));console.log("Storing",a.length,"exotic armor hashes"),yield o.db.manifestCollectibles.clear(),yield o.db.manifestCollectibles.bulkPut(a)})()}updateManifest(e=!1){var o=this;return(0,m.Z)(function*(){const a=o.db.lastManifestUpdate();let s=null;if(a&&!e){if(Date.now()-a.updatedAt>9e5&&(s=yield(0,G.KN)(p=>o.http.$http(p)),a.version==s.Response.version))return void console.debug("bungieApiService - updateManifest","Abort updateManifest due to fitting ManifestVersion");if(Date.now()-a.updatedAt<864e5)return void console.debug("bungieApiService - updateManifest","Abort updateManifest due to fitting Date")}null==s&&(s=yield(0,G.KN)(x=>o.http.$http(x)));const l=s.Response.version,d=yield(0,ve.xG)(x=>o.http.$httpWithoutKey(x),{destinyManifest:s.Response,tableNames:["DestinyInventoryItemDefinition","DestinyCollectibleDefinition","DestinyVendorDefinition"],language:"en"});console.log("manifestTables.DestinyInventoryItemDefinition",d.DestinyInventoryItemDefinition),yield o.updateExoticCollectibles(d),yield o.updateVendorNames(d),yield o.updateAbilities(d);let u=Object.entries(d.DestinyInventoryItemDefinition).filter(([x,p])=>19==p.itemType||2==p.itemType||3448274439==p.inventory?.bucketTypeHash||3551918588==p.inventory?.bucketTypeHash||14239492==p.inventory?.bucketTypeHash||20886954==p.inventory?.bucketTypeHash).map(([x,p])=>{let b=C.y.ArmorSlotNone;(p.itemCategoryHashes?.indexOf(45)||-1)>-1&&(b=C.y.ArmorSlotHelmet),(p.itemCategoryHashes?.indexOf(46)||-1)>-1&&(b=C.y.ArmorSlotGauntlet),(p.itemCategoryHashes?.indexOf(47)||-1)>-1&&(b=C.y.ArmorSlotChest),(p.itemCategoryHashes?.indexOf(48)||-1)>-1&&(b=C.y.ArmorSlotLegs),(p.itemCategoryHashes?.indexOf(49)||-1)>-1&&(b=C.y.ArmorSlotClass);const Z=(p.sockets?.socketEntries.filter(q=>2512726577==q.socketTypeHash||1108765570==q.socketTypeHash||959256494==q.socketTypeHash||2512726577==q.socketTypeHash||3219375296==q.socketTypeHash||968742181==q.socketTypeHash)||[]).length>0,D="Exotic"==p.inventory?.tierTypeName?1:0;let O=null;D&&(O=(p.sockets?.socketEntries.filter(gt=>965959289==gt.socketTypeHash).map(gt=>gt.singleInitialItemHash)||[])[0]);var E=[1862490585,1862490584,1862490584,1862490583,2471437758],M=p.quality?.versions.filter(q=>E.includes(q.powerCapHash)).length==p.quality?.versions.length;return{hash:p.hash,icon:p.displayProperties.icon,watermarkIcon:(p.quality?.displayVersionWatermarkIcons||[null])[0],name:p.displayProperties.name,description:p.displayProperties.description,clazz:p.classType,armor2:Z,slot:b,isExotic:D,isSunset:M,rarity:p.inventory?.tierType,exoticPerkHash:O,itemType:p.itemType,itemSubType:p.itemSubType,investmentStats:p.investmentStats,perk:o.getArmorPerk(p),socketEntries:p.sockets?.socketEntries??[]}});return yield o.db.writeManifestArmor(u,l),d})()}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(L),t.LFG(Ft),t.LFG(et),t.LFG(B),t.LFG(Rt),t.LFG(we))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),K=(()=>{class n{constructor(e,o,a,s,l,d){var u=this;this.db=e,this.config=o,this.status=a,this.api=s,this.auth=l,this.router=d,this.allArmorResults=[],this.currentClass=U.None,this._config=Et.buildEmptyConfiguration(),this.updatingResults=!1,this.refreshing=!1,this._inventory=new ct.t(1),this.inventory=this._inventory.asObservable(),this._manifest=new ct.t(1),this.manifest=this._manifest.asObservable(),this._armorResults=new dt.X({results:this.allArmorResults}),this.armorResults=this._armorResults.asObservable();let x=!1,p=!1;d.events.pipe((0,st.b)(5)).subscribe(function(){var b=(0,m.Z)(function*(Z){!u.auth.refreshTokenExpired&&(yield u.auth.autoRegenerateTokens())?!l.isAuthenticated()||Z instanceof I.m2&&(u.clearResults(),console.debug("Trigger refreshAll due to router.events"),yield u.refreshAll(!x),x=!0):yield u.auth.logout()});return function(Z){return b.apply(this,arguments)}}()),o.configuration.pipe((0,st.b)(500)).subscribe(function(){var b=(0,m.Z)(function*(Z){!u.auth.refreshTokenExpired&&(yield u.auth.autoRegenerateTokens())?!l.isAuthenticated()||(u._config=Z,p=!0,console.debug("Trigger refreshAll due to config change"),yield u.refreshAll(!x),x=!0,p=!1):yield u.auth.logout()});return function(Z){return b.apply(this,arguments)}}())}clearResults(){this.allArmorResults=[],this._armorResults.next({results:this.allArmorResults,totalResults:0,totalTime:0,itemCount:0,maximumPossibleTiers:[0,0,0,0,0,0],statCombo3x100:[],statCombo4x100:[]})}shouldCalculateResults(){return console.log("this.router.url",this.router.url),"/"==this.router.url}refreshAll(e=!1,o=!1){var a=this;return(0,m.Z)(function*(){if(!a.refreshing){console.debug("Execute refreshAll");try{a.refreshing=!0;let s=yield a.updateManifest(o);(yield a.updateInventoryItems(s||e))&&a._inventory.next(null),a.shouldCalculateResults()&&a.updateResults()}finally{a.refreshing=!1}}})()}updateResults(e=3){if(this.clearResults(),this.updatingResults)console.warn("Called updateResults, but aborting, as it is already running.");else try{console.time("updateResults with WebWorker"),this.updatingResults=!0,this.status.modifyStatus(p=>p.calculatingResults=!0);let o=0,a=[],s=0,l=[],d=new Set,u=new Set;const x=Date.now();for(let p=0;p{if(a.push(Z.results),1==Z.done){o++,s+=Z.stats.permutationCount,l.push(Z.runtime.maximumPossibleTiers);for(let D of Z.runtime.statCombo3x100)d.add(D);for(let D of Z.runtime.statCombo4x100)u.add(D)}if(1==Z.done&&o==e){this.status.modifyStatus(O=>O.calculatingResults=!1),this.updatingResults=!1;let D=[];for(let O of a)D.push(...O);D=D.map(O=>(O.usesCollectionRoll=O.items.some(E=>E[0].source===k.Collections),O.usesVendorRoll=O.items.some(E=>E[0].source===k.Vendor),O)),console.debug("endResults",D),this._armorResults.next({results:D,totalResults:s,itemCount:Z.stats.itemCount,totalTime:Date.now()-x,maximumPossibleTiers:l.reduce((O,E)=>{for(let M=0;M<6;M++)O[M]Math.floor(Math.min(100,O)/10)),statCombo3x100:Array.from(d).map(O=>{let E=[];for(let M=0;M<6;M++)(O&1<0&&E.push(M);return E})||[],statCombo4x100:Array.from(u).map(O=>{let E=[];for(let M=0;M<6;M++)(O&1<0&&E.push(M);return E},[])||[]}),console.timeEnd("updateResults with WebWorker"),b.terminate()}else 1==Z.done&&o!=e&&b.terminate()},b.onerror=Z=>{console.error("ERROR IN WEBWORKER, TERMINATING WEBWORKER",Z),b.terminate()},b.postMessage({currentClass:this.currentClass,config:this._config,threadSplit:{count:e,current:p}})}}finally{}}getItemCountForClass(e,o){var a=this;return(0,m.Z)(function*(){let s=yield a.db.inventoryArmor.where("clazz").equals(e).toArray();return o&&(s=s.filter(l=>l.slot==o)),s=s.filter(l=>l.source==k.Inventory),s.length})()}getExoticsForClass(e,o){var a=this;return(0,m.Z)(function*(){let s=yield a.db.inventoryArmor.where("isExotic").equals(1).toArray();s=s.filter(d=>d.clazz==e&&d.armor2&&(!o||d.slot==o));let l=yield a.db.manifestArmor.where("isExotic").equals(1).toArray();return l=l.filter(d=>d.clazz==e&&d.armor2&&(!o||d.slot==o)),l.map(d=>{const u=s.filter(x=>x.hash==d.hash);return{item:d,inCollection:void 0!==u.find(x=>x.source===k.Collections),inInventory:void 0!==u.find(x=>x.source===k.Inventory),inVendor:void 0!==u.find(x=>x.source===k.Vendor)}})})()}updateManifest(e=!1){var o=this;return(0,m.Z)(function*(){if(o.status.getStatus().updatingManifest)return console.error("Already updating the manifest - abort"),!1;console.debug("updateManifest","Set s.updatingManifest = true"),o.status.modifyStatus(s=>s.updatingManifest=!0),console.debug("updateManifest","Call this.api.updateManifest(force) with force="+e);let a=yield o.api.updateManifest(e);return console.debug("updateManifest","Result is ",a),a&&o._manifest.next(null),console.debug("updateManifest","Set s.updatingManifest = false"),o.status.modifyStatus(s=>s.updatingManifest=!1),!!a})()}updateInventoryItems(e=!1,o=0){var a=this;return(0,m.Z)(function*(){console.debug("updateManifest","Set s.updatingInventory = true"),a.status.modifyStatus(s=>s.updatingInventory=!0);try{let s=yield a.api.updateArmorItems(e);return console.debug("updateManifest","Result is ",s),console.debug("updateManifest","Set s.updatingInventory = false"),a.status.modifyStatus(l=>l.updatingInventory=!1),!!s}catch(s){return o>3?(alert("You encountered a strange error with the inventory update. Please log out and log in again. If that does not fix it, please message Mijago."),!1):(a.status.modifyStatus(l=>l.updatingInventory=!1),console.error(s),console.warn("Automatically re-fetching manifest"),yield a.updateManifest(!0),yield a.updateInventoryItems(!0,o++))}})()}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(et),t.LFG(B),t.LFG(Tt),t.LFG(Qt),t.LFG(L),t.LFG(I.F0))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const ee="https://Database-Clarity.github.io/Character-Stats",Ze=`${ee}/versions/1.8/CharacterStatInfo-NI.json`,Se=`${ee}/update.json`,oe="clarity-character-stats-version",ie="clarity-character-stats";let Ie=(()=>{class n{constructor(e,o){this.http=e,this.inv=o,this._characterStats=new dt.X(null),this.characterStats=this._characterStats.asObservable(),this.inv.manifest.subscribe(a=>this.load())}load(){var e=this;return(0,m.Z)(function*(){try{yield e.loadCharacterStats()}catch(o){console.warn("Error loading Clarity data",o)}})()}fetchUpdateData(){var e=this;return(0,m.Z)(function*(){return e.http.get(Se).toPromise()})()}loadCharacterStats(){var e=this;return(0,m.Z)(function*(){const o=localStorage.getItem(ie);o&&e._characterStats.next(JSON.parse(o));const a=yield e.fetchUpdateData(),s=parseInt(localStorage.getItem(oe)||"0");a&&a.lastUpdate>s&&("1.8"!==a.schemaVersion?console.warn("Unsupported live character stats schema version",a.schemaVersion):a&&void 0!==a.lastUpdate&&(yield e.fetchLiveCharacterStats().then(l=>{localStorage.setItem(ie,JSON.stringify(l)),localStorage.setItem(oe,a.lastUpdate.toString()),e._characterStats.next(l)})))})()}fetchLiveCharacterStats(){var e=this;return(0,m.Z)(function*(){return e.http.get(Ze).toPromise()})()}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(at.eN),t.LFG(K))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();var P=(()=>{return(n=P||(P={}))[n.Speed=1]="Speed",n[n.Percentage=2]="Percentage",n[n.Time=3]="Time",n[n.TimeMMSS=4]="TimeMMSS",n[n.PercentagePerSecond=5]="PercentagePerSecond",P;var n})();let ae=(()=>{class n{constructor(e){this.clarity=e,this.allStatEntries={},this.overrides=[],this.clarity.characterStats.subscribe(o=>{o&&this.updateCharacterStats(o)})}loadCharacterStats(){this.clarity.load()}updateCharacterStats(e){const o=(JSON.parse(window.localStorage.getItem("allAbilities"))||[]).reduce((a,s)=>(a.set(s.hash,s),a),new Map);this.overrides=Object.values(e).map(a=>a.Overrides).flat(),this.allStatEntries={Mobility:this.generateEntries(e.Mobility,o,[{key:"WalkSpeed",name:"Walk Speed",valueType:P.Speed},{key:"StrafeSpeed",name:"Strafe Speed",valueType:P.Speed},{key:"CrouchSpeed",name:"Crouch Speed",valueType:P.Speed}]),Resilience:this.generateEntries(e.Resilience,o,[{key:"TotalHP",name:"Total HP"},{key:"PvEDamageResistance",name:"PvE Damage Resistance",valueType:P.Percentage},{key:"FlinchResistance",name:"Flinch Resistance",valueType:P.Percentage}]),Recovery:this.generateEntries(e.Recovery,o,[{key:"TotalRegenTime",name:"Total Regen Time",valueType:P.Time},{key:"HealthRegenDelay",name:"Health Regen Delay",valueType:P.Time},{key:"HealthRegenSpeed",name:"Health Regen Speed",valueType:P.PercentagePerSecond},{key:"ShieldRegenDelay",name:"Shield Regen Delay",valueType:P.Time},{key:"ShieldRegenSpeed",name:"Shield Regen Speed",valueType:P.PercentagePerSecond}]),Discipline:this.generateEntries(e.Discipline,o),Intellect:this.generateEntries(e.Intellect,o),Strength:this.generateEntries(e.Strength,o)}}get(e,o,a,s=[]){const l=this.allStatEntries[e]??[],d=this.overrides.filter(u=>s.includes(u.Hash));return l.filter(u=>!(void 0!==o&&void 0!==u.characterClass&&u.characterClass!==o||void 0!==a&&void 0!==u.element&&u.element!==a)).map(u=>d.reduce((x,p)=>function Me(n,i){if(!n.hash||!i.Requirements.includes(n.hash))return n;const e={...n,overrideIcons:[...n.overrideIcons??[],i.Hash]};if(i.CooldownOverride)return{...e,values:i.CooldownOverride};if(i.Scalar){const o=i.Requirements.indexOf(n.hash),a=i.Scalar[o];return{...e,values:e.values.map(s=>s*a)}}return console.log("Unhandled override",i),n}(x,p),u))}generateEntries(e,o,a=[]){const s=a.map(({key:d,...u})=>({values:e[d].Array,...u}));return("Abilities"in e?e.Abilities:"SuperAbilities"in e?e.SuperAbilities:[]).forEach(d=>{const u=o.get(d.Hash);if(!u)return;const{characterClass:x,element:p}=function Oe(n){let i,e;const o=n.plug?.plugCategoryIdentifier?.split(".");if(3!==o?.length)return{characterClass:i,element:e};const[a,s,l]=o;return"warlock"===a?i=U.Warlock:"hunter"===a?i=U.Hunter:"titan"===a&&(i=U.Titan),"arc"===s?e=h.O.Arc:"solar"===s?e=h.O.Solar:"void"===s?e=h.O.Void:"stasis"===s?e=h.O.Stasis:"strand"===s&&(e=h.O.Strand),{characterClass:i,element:e}}(u);s.push({hash:u.hash,name:u.displayProperties.name,icon:u.displayProperties.icon,values:d.Cooldowns,valueType:P.TimeMMSS,characterClass:x,element:p})}),s}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(Ie))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();var c=(()=>{return(n=c||(c={}))[n.ADD=0]="ADD",n[n.REMOVE=1]="REMOVE",n[n.MODIFIED=2]="MODIFIED",c;var n})();const se=[{version:"2.5.0",date:"October 14, 2023",entries:[{type:c.ADD,text:"The stat cooldowns and values are now automatically updated from the Clarity database. Thanks to ciar\xe1n!",issues:[]},{type:c.ADD,text:"The new modslots/perks are now available in the dropdown.",issues:[]},{type:c.MODIFIED,text:"The stat cooldowns now show icons. Thanks to ciar\xe1n!",issues:[]},{type:c.MODIFIED,text:"The fragments now show their icons. Thanks to ciar\xe1n!",issues:[]},{type:c.MODIFIED,text:"Minor internal updates for DIM references. Thanks to bhollis!",issues:[]},{type:c.MODIFIED,text:"Improved the wasted stats selection, again!",issues:[]}]},{version:"2.4.2",date:"July 11, 2023",entries:[{type:c.ADD,text:"Added the ability to use collection roll armor. This is disabled by default. Thanks to ciar\xe1n!",issues:[]},{type:c.ADD,text:"Added the ability to use vendor armor, including Xur. This is disabled by default. Thanks to ciar\xe1n!",issues:[]},{type:c.ADD,text:"Added the ability to select the optimization strategy. You can now choose between 'Reduce waste', 'Reduce used mods' and 'Reduce used modslots'. The default is 'Reduce waste'.",issues:[]},{type:c.ADD,text:"Re-added the reduce wasted stats feature. It is now disabled by default. It is a bit slower and not really necessary for most people.",issues:[]},{type:c.MODIFIED,text:"Zero Waste is no longer dependent on the 'Reduce wasted stats' setting. In fact, it practically overwrites it.",issues:[]},{type:c.REMOVE,text:"Removed the 'Extra optimization steps' setting. It is now always enabled.",issues:[]}]},{version:"2.4.0",date:"May 23, 2023",entries:[{type:c.MODIFIED,text:"Rewrote the internal algorithm. It makes stuff faster and gives better results.",issues:[]},{type:c.ADD,text:"Added a 'Perform further optimization' setting. This will give you better results, but it will take a bit longer.",issues:[]},{type:c.ADD,text:"Added Icons to the Stat Selection to make it easier to see which row is which perk.",issues:[]},{type:c.ADD,text:"Added button to download results as JSON.",issues:[]},{type:c.ADD,text:"Added Sonar Amplifier perk.",issues:[]},{type:c.MODIFIED,text:"Enabled Modslot limitation.",issues:[]},{type:c.MODIFIED,text:"Enabled the 3x100 and 4x100 buttons.",issues:[]},{type:c.MODIFIED,text:"Enabled Zero-Waste mode.",issues:[]},{type:c.MODIFIED,text:"Temporarily disabled 'Reduce Wasted Stats'. It will be back soon.",issues:[]}]},{version:"2.3.2",date:"May 7, 2023",entries:[{type:c.ADD,text:"Feature: Added 'Guardian Games' class item type to the dropdown. ",issues:[]},{type:c.MODIFIED,text:"Reformatted every file in the codebase and improved the code workflow. You should not really see this on your end, but it will allow everyone to easily contribute to this open source project!",issues:[]}]},{version:"2.3.1",date:"April 2, 2023",entries:[{type:c.ADD,text:"Feature: Added the possibility to only show builds that contain an exotic.",issues:[]},{type:c.ADD,text:"Added 'Root of Nightmares' modslot filter.",issues:[]},{type:c.ADD,text:"Added 'Queen's Favor' seasonal perk filter.",issues:[]},{type:c.ADD,text:"Added text indicating that only fragments that affect stats are shown.",issues:[]},{type:c.MODIFIED,text:"Fixed deprecated mods being sent when opening the loadout in DIM. Also adds artifice mods now.",issues:[]},{type:c.MODIFIED,text:"Fixed an issue where the tool did not put artifice mods on the class item if you forced the class item to be artifice.....",issues:[]},{type:c.MODIFIED,text:"Fixed an issue where the default selection was the titan class, even if you had no titan characters.",issues:[]}]},{version:"2.3.0",date:"March 14, 2023",entries:[{type:c.ADD,text:"Automatically adds artifice mods to your armor. This replaces minor and major mods where possible.",issues:[]},{type:c.ADD,text:"Added the amount of used artifice mods to the result table overview (next to the mods). They are not calculated into the 'mod cost' column.",issues:[]},{type:c.ADD,text:"Added new fragments, including Strand.",issues:[]},{type:c.MODIFIED,text:"Adapted modslot cost of Resilience and Recovery mods.",issues:[]},{type:c.MODIFIED,text:"Introduced more modules for asynchronous loading. This is more a speed improvement than a feature.",issues:[]},{type:c.MODIFIED,text:"Reduced the maximum limit of reported results from 50,000 to 30,000. Note that D2AP still calculates every result, it just does not report them. This is a major speedup, and you usually should not even realize the change.",issues:[]},{type:c.MODIFIED,text:"Increased the visual contrast of major mods in the results table. This means it is now easier to distinguish major from minor mods.",issues:[]},{type:c.REMOVE,text:"Removed the elemental affinity completely.",issues:[]},{type:c.REMOVE,text:"DISABLED the 'Zero Waste' feature. It will be re-enabled in the future.",issues:[]},{type:c.REMOVE,text:"DISABLED the 'Modslot Limitation' feature. It will be re-enabled in the future.",issues:[]}]},{version:"2.2.16",date:"December 7, 2022",entries:[{type:c.ADD,text:"Added Ember of Torches (with -10 Discipline).",issues:[]},{type:c.ADD,text:"Added Retrofit mods (mobility and resilience).",issues:[]},{type:c.ADD,text:"Added armor perk 'Seraph Sensor Array' to the dropdown.",issues:[]},{type:c.ADD,text:"Added a Game2Give message. Let's support the little lights together!",issues:[]},{type:c.MODIFIED,text:"Fixed artifice modslot.",issues:[]},{type:c.MODIFIED,text:"Membership data is cached longer to make things faster and to ease the Bungie API.",issues:[]}]},{version:"2.2.15",date:"October 18, 2022",entries:[{type:c.ADD,text:"Added FOTL masks.",issues:[]}]},{version:"2.2.13",date:"September 23, 2022",entries:[{type:c.ADD,text:"Added an advanced setting to replace the 'Tiers' column with a 'Max Tiers' column. This is adds the amount of open modslots to the column, but ignores mod limitations at the moment. A T32 build without mods will now show T37.",issues:[]}]},{version:"2.2.12",date:"September 11, 2022",entries:[{type:c.MODIFIED,text:"Changed the layout to force the settings (left) and results (right) to be next to each other. This means that the page is more mobile approachable. This is also the first step to a more flexible layout.",issues:[]}]},{version:"2.2.11",date:"September 10, 2022",entries:[{type:c.ADD,text:"Added a display for your owned upgrade materials in the character overview.",issues:[]},{type:c.ADD,text:"Added a notification to warn you when you create a modslot limitation that yields no results. Note that this will not (yet) show invalid combinations over all armor, just for the given slot you selected it in.",issues:[]},{type:c.MODIFIED,text:"Reduced size of exotic icons so that the left side will not grow on Titan class.",issues:[]},{type:c.MODIFIED,text:"The 'Performance Optimization' settings will now always re-enable after a reload to prevent your browser being stuck in a crash-loop. (This is for you, iOS Safari users)",issues:[]},{type:c.MODIFIED,text:"Changed wording of the 'Performance Optimization' setting to prevent people from using it incorrectly.",issues:[]}]},{version:"2.2.10",date:"September 2, 2022",entries:[{type:c.MODIFIED,text:"Updated Artifice Modslot Hash after the most recent hotfix.",issues:[]}]},{version:"2.2.9",date:"September 1, 2022",entries:[{type:c.MODIFIED,text:"Tooltips do now not obstruct the clicks of stats. This fixes the iOS stat selection issue.",issues:[]}]},{version:"2.2.8c",date:"August 24, 2022",entries:[{type:c.MODIFIED,text:"The manifest is now (again) automatically updated on version changes. This fixes your artifice problems at the beginning of a new season.",issues:[]},{type:c.MODIFIED,text:"Added subclass hashes for Arc. This means that it now transfers to DIM.",issues:[]}]},{version:"2.2.8b",date:"August 24, 2022",entries:[{type:c.MODIFIED,text:"Fixed Artifice modslots. You might need to wait a bit, alternatively delete the database (Account section) or re-log.",issues:[]}]},{version:"2.2.8a",date:"August 23, 2022",entries:[{type:c.MODIFIED,text:"Updated grenade and melee cooldowns for arc.",issues:[]}]},{version:"2.2.8",date:"August 23, 2022",entries:[{type:c.ADD,text:"Added Arc 3.0 fragments.",issues:[]},{type:c.MODIFIED,text:"Fixed tooltip issues on iOS devices.",issues:[]},{type:c.MODIFIED,text:"Fixed an infinite loading issue.",issues:[]}]},{version:"2.2.7",date:"June 25, 2022",entries:[{type:c.ADD,text:"Added a link to my Discord bot Crayon.",issues:[]},{type:c.MODIFIED,text:"Fixed an issue where a large number of stored configurations would drastically slow down the app.",issues:[]}]},{version:"2.2.6",date:"June 8, 2022",entries:[{type:c.MODIFIED,text:"Fixed an issue where the elemental selection would not give the correct results under very specific conditions.",issues:[]}]},{version:"2.2.5",date:"June 7, 2022",entries:[{type:c.ADD,text:"Added all of the new ability cooldowns.",issues:[]},{type:c.MODIFIED,text:"Completely reworked the ability cooldown tooltips. They now show the difference to the currently selected tier.",issues:[]}]},{version:"2.2.4",date:"June 3, 2022",entries:[{type:c.MODIFIED,text:"Fixed the export to DIM. Thanks to bhollis for the fix!",issues:[]},{type:c.MODIFIED,text:"The manifest now automatically updates when Bungie updated it too, except just after a fixed timespan.",issues:[]}]},{version:"2.2.3",date:"May 24, 2022",entries:[{type:c.ADD,text:"Added Solar 3.0",issues:[]},{type:c.MODIFIED,text:"Adapted artifice armor to the new Season.",issues:[]}]},{version:"2.2.2",date:"Mar 9, 2022",entries:[{type:c.ADD,text:"See what mods do by hovering over their name.",issues:["D2AP-41"]},{type:c.ADD,text:"Added Vow of the Disciple armor.",issues:["D2AP-35"]},{type:c.ADD,text:"Added 'Uniformed Officer' armor.",issues:["D2AP-35"]},{type:c.MODIFIED,text:"Fixed Scatter grenades being Tier 3 (were T4 before).",issues:["D2AP-39"]},{type:c.MODIFIED,text:"Changed the color of the login button.",issues:["D2AP-37"]},{type:c.MODIFIED,text:"When a selected character class does not exist, the tool will now select the first available class as default."}]},{version:"2.2.1",date:"Feb 22, 2022",entries:[{type:c.ADD,text:"Added a switch to select between Stasis and Void 3.0 fragments. Stasis is enabled per default to ensure backwards compatibility of saved configurations.",issues:["D2AP-10"]},{type:c.ADD,text:"Added a debug section to the (new) account settings page. The account settings page does not do much yet, I just wanted to deploy the debug functions.",issues:["D2AP-23"]},{type:c.MODIFIED,text:"Modified super cooldowns for Witch Queen."},{type:c.MODIFIED,text:"Added a minor text to the exotic overview that explains that exotics not in the inventory are shown in grayscale. You can also no longer select those.",issues:["D2AP-17"]},{type:c.MODIFIED,text:"Minor changes in how the database behaves on logout. It now deletes the inventory when you log out, but still keeps the manifest.",issues:["D2AP-27"]},{type:c.MODIFIED,text:"Users are now logged out when the Bungie.Net API is down.",issues:["D2AP-34"]},{type:c.MODIFIED,text:"Fixed Charge Harvester and Echo of Persistence incorrectly reducing Discipline instead of recovery when used on a Warlock."}]},{version:"2.2.0",date:"Feb 09, 2022",entries:[{type:c.ADD,text:"Added the ability to select armor perks and 5th slots. Just like the elements you can optionally enforce it to be on a certain slot. Useful if you want to build Iron Banner armor or utilize artifice modslots."},{type:c.ADD,text:"Added the ability to limit the available points on each armor item for stat mods. This allows you to limit the kind of stat mods that are usable. You can now say 'do not use major intellect mods'."},{type:c.ADD,text:"Added the ability to lock stat tiers. Previously you could only set 'Use Tier 3 or higher', now you can optionally set 'Enforce Tier 3'. This is useful for example if you want to enforce T3 mobility on a Titan."},{type:c.ADD,text:"Added a summary of important configuration choices to the result header to improve readability."},{type:c.ADD,text:"Added a button to open the DIM Loadout Builder with the current settings."},{type:c.ADD,text:"Added an option that forces the correct element on non-masterworked armor pieces. This is per default enabled."},{type:c.ADD,text:"Added cooldowns for class abilities (Dodge, Barricade, Rift)."},{type:c.ADD,text:"Added visual indicators for minor and major mods in the overview table. The whole visualization is also more compact now."},{type:c.ADD,text:"Added visual cursor indicator to every clickable input, e.g. in the exotic, element and perk/mod selection."},{type:c.ADD,text:"Added a (very basic) item tooltip."},{type:c.ADD,text:"Show the required material cost for each item. Note that this ignores your class item."},{type:c.ADD,text:"Added a stat summary table to the stat detail view. This allows you to easily share a stat distribution with others."},{type:c.ADD,text:"Added 'Clear this section' button to each configuration section."},{type:c.ADD,text:"Added support for your class items. You won't see a lot of this, except when you use the slot and element limitation in specific ways."},{type:c.ADD,text:"Detailed information is now in expandable containers to improve readability."},{type:c.ADD,text:"Show the seasonal icon for every item too."},{type:c.ADD,text:"Added info text to the table headers."},{type:c.ADD,text:"The character selection now shows the existing characters - and their emblems too!"},{type:c.ADD,text:"Added Discord and another Ko-Fi link. You can find them in the character selection."},{type:c.ADD,text:"Added a changelog popup right at the start of the page. It only appears when a new update occured. You can always trigger it by clicking the current version number."},{type:c.ADD,text:"Now utilizes three webworkers instead of one. The process is simple, but generally speeds up the results by a huge margin."},{type:c.ADD,text:"Added an Armor Investigation tab for data scientists."},{type:c.ADD,text:"Added a sidenav for smaller devices and reworked the top menubar."},{type:c.ADD,text:"The detailed result table now shows the perk of an selected item, if it has one. This also applies to class items, if necessary."},{type:c.ADD,text:"Hovering over exotics in the exotic selection now displays their perk description."},{type:c.ADD,text:"Added an advanced setting to disable white, green and blue armor."},{type:c.ADD,text:"Added an advanced setting to ignore sunset armor."},{type:c.MODIFIED,text:"Changed the word 'Permutation' to 'Combination' wherever it has been used."},{type:c.MODIFIED,text:"Clicking on a setting that is already set does not re-trigger the calculation now. For example, selecting T3 recovery when it is already at T3 now does nothing."},{type:c.MODIFIED,text:"The default for all stats is now tier 0 instead of tier 1, to make it consistent with the clear buttons."},{type:c.MODIFIED,text:"The default setting for 'ignore non masterworked elements' is now 'off'."},{type:c.MODIFIED,text:"The 'time required' number now measures the time from before the webworkers are spawned until all webworkers are done. Previously it only monitored the time required INSIDE the webworker, so it may show slower times."},{type:c.MODIFIED,text:"Fixed the width of the 'Exotic' header in the results table. This means that it is now farther away from the 'Mobility' column."},{type:c.MODIFIED,text:"Completely reworked the elemental affinity selection. Per default it is now not fixed to a certain armor slot, but using a toggle button you can simply do so again."},{type:c.MODIFIED,text:"The results header now screams at you in bright red letters when no results are found."},{type:c.MODIFIED,text:"The alternating rows of the results details table have now a lighter color to make it easier to read."},{type:c.MODIFIED,text:"Fixed ability cooldowns for melee and grenade at tier 7 and tier 8."},{type:c.MODIFIED,text:"Cooldowns now are shown in MM:SS instead of plain seconds."},{type:c.MODIFIED,text:"Completely rewrote the core logic of D2ArmorPicker for the changes mentioned above."},{type:c.MODIFIED,text:"Exotics you do not have in your vault or inventory are now greyed out."},{type:c.MODIFIED,text:"Fixed an issue where exotics were not shown at your first login."},{type:c.MODIFIED,text:"Changed the color of important buttons so that they are easier to read."},{type:c.MODIFIED,text:"The icons of items in the results are now loaded asynchronous from their hashes. This saves a lot of memory, as I do not have to send two icon URLs for each item - for each result. I will further improve this in a later version."},{type:c.MODIFIED,text:"Maximum table output is now limited to 50 results (instead of 200). It still defaults to 20.}"},{type:c.MODIFIED,text:"Completely reworked the visuals of the changelog. It is now more pleasing to the eye."}]},{version:"2.1.4",date:"Dec 29, 2021",entries:[{type:c.MODIFIED,text:"Item stats are now built from their plugs and InvestmentStats (in case of some exotics). This fixes potentially invalid item stats when you use mods like Powerful Friends or Protective Light. A big thanks to u/deangaudet for reminding me that the API also reports the plugs of an item."},{type:c.MODIFIED,text:"Only save necessary item types of the manifest (namely mods and armor). Also, save twhe investmentStats now."},{type:c.MODIFIED,text:"Sped up the item update step."}]},{version:"2.1.3",date:"Dec 16, 2021",entries:[{type:c.MODIFIED,text:"Added new stat cooldowns"}]},{version:"2.1.2",date:"Dec 1, 2021",entries:[{type:c.MODIFIED,text:"The changelog is now in a scrollable box."},{type:c.MODIFIED,text:"Changed buymeacoffee to a ko-fi link. This way we can keep the PayPal support!"}]},{version:"2.1.1",date:"Nov 3, 2021",entries:[{type:c.REMOVE,text:"Removed the HALLOWEEN SPECIAL feature. Maybe something like this will return some day?"},{type:c.ADD,text:"Added tooltip to the item icons in the detailed overview to show the name of the item."},{type:c.MODIFIED,text:"Fixed an issue where the list of exotics did not load at the first login."},{type:c.MODIFIED,text:"Saved configurations now contain the current software version for future reference."},{type:c.MODIFIED,text:"Minor code quality improvements"}]},{version:"2.1.0 (major)",date:"Oct 29, 2021",entries:[{type:c.REMOVE,text:"Completely removed V1 of the tool. If you had any problems with V2, you had over three months to report them."},{type:c.ADD,text:"The stat selection now displays which stat tiers are added by stat mods (PF/RL) or stasis fragments in the configuration."},{type:c.ADD,text:"You can now export (and import) individual configurations as well as all stored configurations at once."},{type:c.ADD,text:"Added a navigation bar to the title bar. On smaller screens it is replaced by two buttons in the character selection."},{type:c.ADD,text:"Added more details to the last step of the 'What to do now?' section. It now lists the fragments and mods you selected."},{type:c.MODIFIED,text:"Optimized code and reduced overall page size."}]},{version:"2.0.16",date:"Oct 26, 2021",entries:[{type:c.MODIFIED,text:"Completely rewrote the core logic in order to fix the memory issues. The tool will now no longer crash when you have many armor items, but it's slightly slower than the previous approach. I tested it with 600 items - it works and does not crash, but takes up to a minute. Make sure to never get that much armor and to lock an exotic right away."},{type:c.MODIFIED,text:"The rewrite also fixed the issue where the tool did not work in Safari, or more generally, on Mac and iPhone."},{type:c.MODIFIED,text:"The rewrite also fixed an issue where items could not be found when an result update was triggered while the inventory was updated."}]},{version:"2.0.15",date:"Oct 24, 2021",entries:[{type:c.MODIFIED,text:"Updated the visual display of the cluster page. It displays the stats in a better way now."},{type:c.MODIFIED,text:"Fixed an issue with login, where you were automatically logged in again and could not switch accounts."}]},{version:"2.0.14",date:"Oct 21, 2021",entries:[{type:c.MODIFIED,text:"Updated URLs to the mobility, resilience and recovery images, as Bungie decided to change their URLs in today's hotfix."}]},{version:"2.0.13",date:"Oct 20, 2021",entries:[{type:c.ADD,text:"Added a chart to the armor clustering page, showing each clusters average stats."},{type:c.MODIFIED,text:"Stats over 100 are now seen as wasted."}]},{version:"2.0.12",date:"Oct 18, 2021",entries:[{type:c.ADD,text:"Added an experimental armor clustering feature."}]},{version:"2.0.11",date:"Oct 13, 2021",entries:[{type:c.ADD,text:"HALLOWEEN SPECIAL! Added (temporary) filter for halloween masks! This will be removed after the event."},{type:c.MODIFIED,text:"Fix: Clear the results if you switch character and no possible permutations can be found."}]},{version:"2.0.10",date:"Oct 10, 2021",entries:[{type:c.ADD,text:"Added 'Equip Items' button to the detailed item overview."}]},{version:"2.0.9",date:"Oct 6, 2021",entries:[{type:c.ADD,text:"Added a detailed description of the steps required to build a selected result."},{type:c.ADD,text:"Added a button to disable all four armor pieces at once."},{type:c.MODIFIED,text:"Fixed an issue where the permutations were not updated after 'Ignore armor elemental affinities on masterworked armor' was changed."}]},{version:"2.0.8",date:"Oct 5, 2021",entries:[{type:c.ADD,text:"Added this changelog to the help page."},{type:c.ADD,text:"Added 'Move to Inventory' button (beta)."},{type:c.ADD,text:"Split up 'Assume items are masterworked' into three settings: Class Items, Legendaries, Exotics"},{type:c.MODIFIED,text:"'Try to optimize wasted stats' is now active per default."},{type:c.MODIFIED,text:"Introduced an item buffer in the results component to further reduce memory usage."}]}];let re=(()=>{class n{constructor(e){this.changelog=e}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(Pt))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-changelog-dialog"]],decls:9,vars:2,consts:[["mat-dialog-title","",1,"title"],[1,"mat-typography"],["align","end"],["cdkFocusInitial","","color","primary","mat-raised-button","",3,"mat-dialog-close"]],template:function(e,o){1&e&&(t.TgZ(0,"h2",0),t._uU(1),t.qZA(),t.TgZ(2,"mat-dialog-content",1)(3,"div"),t._uU(4," Hi! There has been a new version of D2ArmorPicker! The following list shows all the relevant changes. Note that you can always look at the changelogs in the Help tab. "),t.qZA(),t._UZ(5,"app-changelog-list"),t.qZA(),t.TgZ(6,"mat-dialog-actions",2)(7,"button",3),t._uU(8,"Thanks, I saw it!"),t.qZA()()),2&e&&(t.xp6(1),t.hij("D2ArmorPicker Changelog for Version ",o.changelog.changelogData[0].version,""),t.xp6(6),t.Q6J("mat-dialog-close",!0))},styles:[".title[_ngcontent-%COMP%]{text-decoration:underline;-webkit-text-decoration-color:#0059ff;text-decoration-color:#0059ff}"]}),n})();var $=_(5412);let Pt=(()=>{class n{constructor(e){this.dialog=e}setChangelogSeenFlag(){return localStorage.setItem("last-changelog-version",this.changelogData[0].version)}get lastViewedChangelog(){return localStorage.getItem("last-changelog-version")}get mustShowChangelog(){return this.changelogData[0].version!==this.lastViewedChangelog}get changelogData(){return se}openChangelogDialog(){this.dialog.open(re).afterClosed().subscribe(o=>{this.setChangelogSeenFlag()})}}return n.\u0275fac=function(e){return new(e||n)(t.LFG($.uw))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();var y=_(6895),N=_(266),ke=_(3162),j=_(7392),bt=_(6338),le=_(3848),De=_(3267);let Ct=(()=>{class n{constructor(e,o){this.templateRef=e,this.vcRef=o,this.context={$implicit:null,ngVar:null},this.hasView=!1}set ngVar(e){this.context.$implicit=this.context.ngVar=e,this.hasView||(this.vcRef.createEmbeddedView(this.templateRef,this.context),this.hasView=!0)}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.Rgc),t.Y36(t.s_b))},n.\u0275dir=t.lG2({type:n,selectors:[["","ngVar",""]],inputs:{ngVar:"ngVar"}}),n})(),Ue=(()=>{class n{constructor(e){this.changelog=e}ngAfterViewInit(){this.changelog.mustShowChangelog&&this.changelog.openChangelogDialog()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(Pt))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-changelog-dialog-controller"]],decls:0,vars:0,template:function(e,o){},encapsulation:2}),n})();function Ee(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"a",29),t.NdJ("click",function(){t.CHM(e),t.oxw();const a=t.MAs(1);return t.KtG(a.toggle())}),t._uU(1),t.qZA()}if(2&n){const e=i.$implicit,o=i.index,a=t.oxw();t.ekj("active",a.activeLinkIndex===o),t.Q6J("routerLink",e.link),t.xp6(1),t.hij(" ",e.name," ")}}function Re(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"button",30),t.NdJ("click",function(){t.CHM(e),t.oxw();const a=t.MAs(1);return t.KtG(a.toggle())}),t.TgZ(1,"mat-icon",3),t._uU(2,"menu"),t.qZA()()}}function Pe(n,i){if(1&n&&(t.TgZ(0,"a",31),t._uU(1),t.qZA()),2&n){const e=i.$implicit,o=i.index,a=t.oxw();t.Q6J("active",a.activeLinkIndex===o)("routerLink",e.link),t.xp6(1),t.hij(" ",e.name," ")}}function Ne(n,i){1&n&&t._UZ(0,"mat-progress-bar",33)}function qe(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,Ne,1,0,"mat-progress-bar",32),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e.updatingResultsTable||e.calculatingResults||e.calculatingPermutations||e.updatingInventory||e.updatingManifest)}}function Je(n,i){1&n&&(t.TgZ(0,"mat-card",35),t._uU(1,"Updating the cached manifest. Please wait. "),t._UZ(2,"br"),t._uU(3,"If this takes too long, please logout and login again."),t.qZA())}function Ye(n,i){1&n&&(t.TgZ(0,"mat-card",35),t._uU(1,"Updating the cached inventory. Please wait."),t.qZA())}function Le(n,i){1&n&&(t.TgZ(0,"mat-card",35),t._uU(1,"Updating armor combinations. Please wait."),t.qZA())}function Fe(n,i){1&n&&(t.TgZ(0,"mat-card",35),t._uU(1,"Updating possible results. Please wait."),t.qZA())}function Qe(n,i){1&n&&(t.TgZ(0,"mat-card",35),t._uU(1,"Updating result table. Please wait."),t.qZA())}function Be(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,Je,4,0,"mat-card",34),t.YNc(2,Ye,2,0,"mat-card",34),t.YNc(3,Le,2,0,"mat-card",34),t.YNc(4,Fe,2,0,"mat-card",34),t.YNc(5,Qe,2,0,"mat-card",34),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e.updatingManifest),t.xp6(1),t.Q6J("ngIf",e.updatingInventory),t.xp6(1),t.Q6J("ngIf",e.calculatingPermutations),t.xp6(1),t.Q6J("ngIf",e.calculatingResults),t.xp6(1),t.Q6J("ngIf",e.updatingResultsTable)}}let Ve=(()=>{class n{constructor(e,o,a,s,l,d,u){this.status=e,this.breakpointObserver=o,this.inv=a,this.auth=s,this.router=l,this.characterStats=d,this.changelog=u,this.version="2.5.0",this.activeLinkIndex=0,this.navLinks=[{link:"/",name:"Home"},{link:"/cluster",name:"Clustering"},{link:"/help",name:"Help"},{link:"/investigate",name:"Armor Investigation"},{link:"/account",name:"Account"}],this.isHandset$=this.breakpointObserver.observe([mt.u3.Handset,mt.u3.Small,mt.u3.XSmall]).pipe((0,kt.U)(x=>x.matches),(0,Dt.d)())}ngOnInit(){this.activeLinkIndex=this.navLinks.indexOf(this.navLinks.find(e=>e.link===this.router.url)),this.router.events.subscribe(e=>{e instanceof I.m2&&(this.activeLinkIndex=this.navLinks.indexOf(this.navLinks.find(o=>o.link===this.router.url)))}),this.characterStats.loadCharacterStats()}refreshAll(e){var o=this;return(0,m.Z)(function*(){console.debug("Trigger refreshAll due to button press"),yield o.inv.refreshAll(e)})()}logout(){this.auth.logout()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(Tt),t.Y36(mt.Yg),t.Y36(K),t.Y36(L),t.Y36(I.F0),t.Y36(ae),t.Y36(Pt))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-app-v2-core"]],decls:59,vars:16,consts:[["fixedInViewport","","mode","over",1,"sidenav",3,"opened"],["drawer",""],["aria-label","Toggle sidenav","mat-stroked-button","","type","button",3,"click"],["aria-label","Side nav toggle icon"],["mat-list-item","",3,"active","routerLink","click",4,"ngFor","ngForOf"],["href","https://ko-fi.com/mijago","mat-list-item",""],["color","primary","mat-raised-button","","matTooltip","You like my work? This leads you to ko-fi.com, where you can easily support me!","target","_blank"],["inline",""],["mat-list-item","",3,"click"],["mat-raised-button",""],["id","header","role","heading"],["aria-label","Toggle sidenav","mat-icon-button","","type","button",3,"click",4,"ngIf"],["href","https://twitter.com/MijagoCoding/","matTooltip","Birb App","target","_blank"],["alt","Me on twitter","src","assets/logo-twitter.png",1,"logo-twitter"],["href","https://ko-fi.com/mijago","matTooltip","If you like my work, you can always buy me a coffee!","target","_blank"],["alt","Ko-Fi","src","assets/logo-kofi.png",1,"logo-twitter"],["href","http://discord.d2armorpicker.com/","matTooltip","Visit me at the development & support discord.","target","_blank"],["alt","Discord","src","assets/logo-discord.png",1,"logo-twitter"],[1,"header-spacer"],["fxHide.lt-md","true","fxShow","true"],["id","navbar","mat-tab-nav-bar",""],["mat-tab-link","",3,"active","routerLink",4,"ngFor","ngForOf"],["id","buttonContainer"],["fxShow","false","fxShow.gt-md","true","matTooltip","Click to show the changelog dialog.",1,"changelogText"],[3,"click"],["color","accent","fxHide.lt-md","true","fxShow","true","href","https://ko-fi.com/mijago","mat-stroked-button","","matTooltip","You like my work? This leads you to ko-fi.com, where you can easily support me!","target","_blank"],["aria-label","Refresh","mat-icon-button","","matTooltip","Reload all items from the API.",1,"example-icon",3,"click"],["aria-label","Logout","color","warn","mat-icon-button","","matTooltip","Logout",1,"example-icon",3,"click"],[4,"ngVar"],["mat-list-item","",3,"routerLink","click"],["aria-label","Toggle sidenav","mat-icon-button","","type","button",3,"click"],["mat-tab-link","",3,"active","routerLink"],["id","loading","mode","indeterminate",4,"ngIf"],["id","loading","mode","indeterminate"],["class","info",4,"ngIf"],[1,"info"]],template:function(e,o){if(1&e){const a=t.EpF();t.TgZ(0,"mat-sidenav",0,1),t.ALo(2,"async"),t.TgZ(3,"mat-toolbar")(4,"button",2),t.NdJ("click",function(){t.CHM(a);const l=t.MAs(1);return t.KtG(l.toggle())}),t.TgZ(5,"mat-icon",3),t._uU(6,"menu"),t.qZA(),t._uU(7," Close Menu "),t.qZA()(),t._UZ(8,"hr"),t.TgZ(9,"mat-nav-list"),t.YNc(10,Ee,2,4,"a",4),t._UZ(11,"hr"),t.TgZ(12,"a",5)(13,"a",6)(14,"mat-icon",7),t._uU(15,"attach_money"),t.qZA(),t._uU(16," Buy me a coffee! "),t.qZA()(),t.TgZ(17,"a",8),t.NdJ("click",function(){return o.changelog.openChangelogDialog()}),t.TgZ(18,"a",9),t._uU(19," Open changelog "),t.qZA()(),t._UZ(20,"hr"),t.qZA()(),t.TgZ(21,"mat-toolbar",10),t.YNc(22,Re,3,0,"button",11),t.ALo(23,"async"),t.TgZ(24,"span"),t._uU(25,"D2ArmorPicker "),t.TgZ(26,"small"),t._uU(27," by Mijago"),t.qZA(),t.TgZ(28,"a",12),t._UZ(29,"img",13),t.qZA(),t.TgZ(30,"a",14),t._UZ(31,"img",15),t.qZA(),t.TgZ(32,"a",16),t._UZ(33,"img",17),t.qZA()(),t._UZ(34,"span",18),t.TgZ(35,"div",19)(36,"nav",20),t.YNc(37,Pe,2,3,"a",21),t.qZA()(),t._UZ(38,"span",18),t.TgZ(39,"div",22)(40,"span",23)(41,"a",24),t.NdJ("click",function(){return o.changelog.openChangelogDialog()}),t._uU(42),t.qZA()(),t.TgZ(43,"a",25)(44,"mat-icon",7),t._uU(45,"attach_money"),t.qZA(),t._uU(46," Buy me a coffee! "),t.qZA(),t.TgZ(47,"button",26),t.NdJ("click",function(){return o.refreshAll(!0)}),t.TgZ(48,"mat-icon"),t._uU(49,"refresh"),t.qZA()(),t.TgZ(50,"button",27),t.NdJ("click",function(){return o.logout()}),t.TgZ(51,"mat-icon"),t._uU(52,"logout"),t.qZA()()()(),t._UZ(53,"router-outlet"),t.YNc(54,qe,2,1,"span",28),t.ALo(55,"async"),t.YNc(56,Be,6,5,"span",28),t.ALo(57,"async"),t._UZ(58,"app-changelog-dialog-controller")}2&e&&(t.Q6J("opened",!1),t.uIk("role",t.lcZ(2,8,o.isHandset$)?"dialog":"navigation"),t.xp6(10),t.Q6J("ngForOf",o.navLinks),t.xp6(12),t.Q6J("ngIf",t.lcZ(23,10,o.isHandset$)),t.xp6(15),t.Q6J("ngForOf",o.navLinks),t.xp6(5),t.hij("v",o.version,"\xa0"),t.xp6(12),t.Q6J("ngVar",t.lcZ(55,12,o.status.status)),t.xp6(2),t.Q6J("ngVar",t.lcZ(57,14,o.status.status)))},dependencies:[y.sg,y.O5,H.b8,g.lW,g.zs,A.a8,N.gM,ke.pW,j.Hw,W.Ye,bt.Hk,bt.Tg,le.BU,le.Nj,De.JX,I.lC,I.yS,Ct,Ue,y.Ov],styles:[".loading[_ngcontent-%COMP%]{cursor:progress}.info[_ngcontent-%COMP%]{z-index:1000;position:fixed;width:200px;left:50%;top:50px;transform:translate(-50%);border:antiquewhite 1px solid}.sidenav-container[_ngcontent-%COMP%]{position:fixed;top:0;left:0;height:100%;z-index:20}.sidenav[_ngcontent-%COMP%]{width:200px;position:fixed;top:0;left:0;height:100%;z-index:20}.sidenav[_ngcontent-%COMP%] .mat-toolbar[_ngcontent-%COMP%]{background:inherit}.sidenav[_ngcontent-%COMP%] .active[_ngcontent-%COMP%]{background-color:#ffffff12;color:#b8c4dc}.mat-toolbar.mat-primary[_ngcontent-%COMP%]{position:sticky;top:0;z-index:1}#header[_ngcontent-%COMP%]{position:relative;height:42px;margin-bottom:5px}#header[_ngcontent-%COMP%] .header-spacer[_ngcontent-%COMP%]{flex:1 1 auto}.changelogText[_ngcontent-%COMP%]{cursor:pointer}#loading[_ngcontent-%COMP%]{position:fixed;top:0;width:100%;z-index:1000}.d2ap-router-link[_ngcontent-%COMP%]{cursor:pointer}[_nghost-%COMP%] .mat-tab-link{min-width:75px;opacity:1}"]}),n})();var w=_(2143),ce=_(8739),Bt=_(6308),F=_(7340),nt=_(8929),Q=_(7625);function He(n,i){1&n&&(t.ynx(0),t._uU(1," Click on a row to expand it and to see the list of the items required for this build."),t._UZ(2,"br"),t.BQk())}function We(n,i){1&n&&(t.ynx(0),t.TgZ(1,"div",56),t._UZ(2,"img",57),t._uU(3,"\xa0 "),t.qZA(),t.TgZ(4,"span",58)(5,"b"),t._uU(6,"No combinations found."),t.qZA()(),t._uU(7," You should loosen your settings a bit. "),t.BQk())}function je(n,i){if(1&n&&(t.TgZ(0,"mat-icon",59,60),t.ALo(2,"number"),t._uU(3,"report_problem "),t.qZA()),2&n){const e=t.oxw();t.MGl("matTooltip","Note: To speed up the whole process, only ",t.lcZ(2,1,e.parsedResults)," results are listed in this table.\n If you need more entries, disable the limitation in the advanced settings.")}}function ze(n,i){if(1&n&&(t.TgZ(0,"mat-icon",59,60),t.ALo(2,"number"),t._uU(3,"report_problem "),t.qZA()),2&n){const e=t.oxw();t.MGl("matTooltip","Note: To prevent Out-Of-Memory crashes, only ",t.lcZ(2,1,e.parsedResults)," results are listed in this table.\n You should narrow down your settings a bit.")}}function Ge(n,i){1&n&&(t.TgZ(0,"mat-chip",61,60),t._uU(2,"No Exotic "),t.qZA())}function Ke(n,i){1&n&&(t.TgZ(0,"mat-chip",62,60),t._uU(2,"Exotic "),t.qZA())}function $e(n,i){1&n&&(t.TgZ(0,"mat-chip",63,60),t._uU(2," Multiple Exotics "),t.qZA())}function Xe(n,i){1&n&&(t.TgZ(0,"mat-chip",64,60),t._uU(2,"No stat mods "),t.qZA())}function tn(n,i){1&n&&(t.TgZ(0,"mat-chip",65,60),t._uU(2,"Reduce wasted stats "),t.qZA())}function en(n,i){1&n&&(t.TgZ(0,"mat-chip",66,60),t._uU(2,"Stat Mod Limitation "),t.qZA())}function nn(n,i){1&n&&(t.TgZ(0,"mat-chip",67,60),t._uU(2," Armor Perk or Slot "),t.qZA())}function on(n,i){1&n&&(t.TgZ(0,"mat-chip",68,60),t._uU(2,"Zero Waste "),t.qZA())}function an(n,i){1&n&&(t.TgZ(0,"mat-chip",69,60)(2,"mat-icon",70),t._uU(3,"report_problem"),t.qZA(),t._uU(4," \xa0Assume everything is artifice\xa0 "),t.TgZ(5,"mat-icon",70),t._uU(6,"report_problem"),t.qZA()())}function sn(n,i){1&n&&(t.TgZ(0,"mat-chip",71,60),t._uU(2," Masterworked Only "),t.qZA())}function rn(n,i){1&n&&(t.TgZ(0,"mat-chip",72,60),t._uU(2," Masterwork Assumption "),t.qZA())}function ln(n,i){1&n&&(t.TgZ(0,"mat-chip",73,60),t._uU(2," Include Collection Rolls "),t.qZA())}function cn(n,i){1&n&&(t.TgZ(0,"mat-chip",74,60),t._uU(2," Include Vendor Items "),t.qZA())}function mn(n,i){1&n&&(t.TgZ(0,"th",75),t._uU(1,"Mobility "),t.qZA())}function dn(n,i){if(1&n&&(t.TgZ(0,"td",76),t._uU(1),t._UZ(2,"img",77),t.qZA()),2&n){const e=i.$implicit,o=t.oxw();t.xp6(1),t.hij("",e.stats[o.ArmorStat.Mobility]," ")}}function un(n,i){1&n&&(t.TgZ(0,"th",78),t._uU(1," Resilience "),t.qZA())}function pn(n,i){if(1&n&&(t.TgZ(0,"td",76),t._uU(1),t._UZ(2,"img",79),t.qZA()),2&n){const e=i.$implicit,o=t.oxw();t.xp6(1),t.hij("",e.stats[o.ArmorStat.Resilience]," ")}}function gn(n,i){1&n&&(t.TgZ(0,"th",80),t._uU(1," Recovery "),t.qZA())}function _n(n,i){if(1&n&&(t.TgZ(0,"td",76),t._uU(1),t._UZ(2,"img",81),t.qZA()),2&n){const e=i.$implicit,o=t.oxw();t.xp6(1),t.hij("",e.stats[o.ArmorStat.Recovery]," ")}}function fn(n,i){1&n&&(t.TgZ(0,"th",82),t._uU(1," Discipline "),t.qZA())}function hn(n,i){if(1&n&&(t.TgZ(0,"td",76),t._uU(1),t._UZ(2,"img",83),t.qZA()),2&n){const e=i.$implicit,o=t.oxw();t.xp6(1),t.hij("",e.stats[o.ArmorStat.Discipline]," ")}}function xn(n,i){1&n&&(t.TgZ(0,"th",84),t._uU(1," Intellect "),t.qZA())}function Tn(n,i){if(1&n&&(t.TgZ(0,"td",76),t._uU(1),t._UZ(2,"img",85),t.qZA()),2&n){const e=i.$implicit,o=t.oxw();t.xp6(1),t.hij("",e.stats[o.ArmorStat.Intellect]," ")}}function yn(n,i){1&n&&(t.TgZ(0,"th",86),t._uU(1,"Strength "),t.qZA())}function bn(n,i){if(1&n&&(t.TgZ(0,"td",76),t._uU(1),t._UZ(2,"img",87),t.qZA()),2&n){const e=i.$implicit,o=t.oxw();t.xp6(1),t.hij("",e.stats[o.ArmorStat.Strength]," ")}}function Cn(n,i){1&n&&(t.TgZ(0,"th",88),t._uU(1," Used Mods "),t.qZA())}function vn(n,i){if(1&n&&(t.TgZ(0,"td",89),t._UZ(1,"app-table-mod-display",90),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.Q6J("mods",e.mods)("artifice",e.artifice)}}function An(n,i){1&n&&(t.TgZ(0,"th",91),t._uU(1," Exotic"),t.qZA())}function wn(n,i){if(1&n&&(t.ynx(0),t._UZ(1,"img",94,60)(3,"img",95),t.BQk()),2&n){const e=i.$implicit;t.xp6(1),t.s9C("matTooltip",e.name),t.MGl("src","https://bungie.net/",e.icon,"",t.LSH),t.xp6(2),t.MGl("src","https://bungie.net/",e.watermark,"",t.LSH)}}function Zn(n,i){1&n&&t._UZ(0,"img",96)}function Sn(n,i){if(1&n&&(t.TgZ(0,"td",89),t.YNc(1,wn,4,3,"ng-container",92),t.YNc(2,Zn,1,0,"img",93),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.Q6J("ngForOf",e.exotic),t.xp6(1),t.Q6J("ngIf",0===e.exotic.length)}}function In(n,i){1&n&&(t.TgZ(0,"th",91),t._uU(1,"Sources"),t.qZA())}function On(n,i){1&n&&t._UZ(0,"img",100)}function Mn(n,i){1&n&&t._UZ(0,"img",101)}function kn(n,i){if(1&n&&(t.TgZ(0,"td",89)(1,"span",97),t.YNc(2,On,1,0,"img",98),t.YNc(3,Mn,1,0,"img",99),t.qZA()()),2&n){const e=i.$implicit;t.xp6(2),t.Q6J("ngIf",!!e.usesCollectionRoll),t.xp6(1),t.Q6J("ngIf",!!e.usesVendorRoll)}}function Dn(n,i){1&n&&t._UZ(0,"th",91)}function Un(n,i){1&n&&(t.TgZ(0,"mat-icon",105),t._uU(1," expand_more "),t.qZA())}function En(n,i){1&n&&(t.TgZ(0,"mat-icon",106),t._uU(1," expand_less "),t.qZA())}function Rn(n,i){1&n&&(t.TgZ(0,"mat-icon",107,60),t._uU(2," report_problem "),t.qZA())}function Pn(n,i){if(1&n&&(t.TgZ(0,"td",89),t.YNc(1,Un,2,0,"mat-icon",102),t.YNc(2,En,2,0,"mat-icon",103),t.YNc(3,Rn,3,0,"mat-icon",104),t.qZA()),2&n){const e=i.$implicit,o=t.oxw();t.xp6(1),t.Q6J("ngIf",o.expandedElement!==e),t.xp6(1),t.Q6J("ngIf",o.expandedElement===e),t.xp6(1),t.Q6J("ngIf",o.checkIfAnyItemsMayBeInvalid(e))}}function Nn(n,i){1&n&&(t.TgZ(0,"th",108),t._uU(1,"Tiers "),t.qZA())}function qn(n,i){if(1&n&&(t.TgZ(0,"td",89),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.hij(" ",e.tiers," ")}}function Jn(n,i){1&n&&(t.TgZ(0,"th",109),t._uU(1,"Max Tiers "),t.qZA())}function Yn(n,i){if(1&n&&(t.TgZ(0,"td",89),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.hij(" ",e.tiers+(5-e.modCount)," ")}}function Ln(n,i){1&n&&(t.TgZ(0,"th",110),t._uU(1,"Wasted "),t.qZA())}function Fn(n,i){if(1&n&&(t.TgZ(0,"td",89),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.hij(" ",e.waste," ")}}function Qn(n,i){if(1&n&&(t.TgZ(0,"td",89)(1,"div",111),t._UZ(2,"app-expanded-result-content",112),t.qZA()()),2&n){const e=i.$implicit,o=t.oxw();t.uIk("colspan",o.shownColumns.length),t.xp6(1),t.Q6J("@detailExpand",e===o.expandedElement?"expanded":"collapsed"),t.xp6(1),t.Q6J("element",e)}}function Bn(n,i){1&n&&t._UZ(0,"tr",113)}function Vn(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"tr",114),t.NdJ("click",function(){const s=t.CHM(e).$implicit,l=t.oxw();return t.KtG(l.expandedElement=l.expandedElement===s?null:s)}),t.qZA()}if(2&n){const e=i.$implicit,o=t.oxw();t.ekj("example-expanded-row",o.expandedElement===e)}}function Hn(n,i){1&n&&t._UZ(0,"tr",115)}function Wn(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"mat-card-actions"),t._UZ(1,"span",116),t.TgZ(2,"button",117),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.saveBuilds())}),t._uU(3,"Download results as JSON"),t.qZA()()}}const jn=function(){return["expandedDetail"]},zn=function(){return[10,20,50]};var ht=(()=>{return(n=ht||(ht={}))[n.TRANSFER_NONE=0]="TRANSFER_NONE",n[n.WAITING_FOR_TRANSFER=1]="WAITING_FOR_TRANSFER",n[n.TRANSFERRING=2]="TRANSFERRING",n[n.TRANSFERRED=3]="TRANSFERRED",n[n.ERROR_DURING_TRANSFER=4]="ERROR_DURING_TRANSFER",ht;var n})();let me=(()=>{class n{constructor(e,o,a,s,l){this.inventory=e,this.db=o,this.bungieApi=a,this.config=s,this.status=l,this.ArmorStat=r.WB,this.StatModifier=r.iV,this._results=[],this._config_assumeLegendariesMasterworked=!1,this._config_assumeExoticsMasterworked=!1,this._config_assumeClassItemMasterworked=!1,this._config_enabledMods=[],this._config_limitParsedResults=!1,this._config_maximumStatMods=5,this._config_selectedExotics=[],this._config_tryLimitWastedStats=!1,this._config_onlyUseMasterworkedItems=!1,this._config_includeCollectionRolls=!1,this._config_includeVendorRolls=!1,this._config_onlyShowResultsWithNoWastedStats=!1,this._config_assumeEveryLegendaryIsArtifice=!1,this._config_modslotLimitation=[],this._config_armorPerkLimitation=[],this.tableDataSource=new w.by,this.paginator=null,this.sort=null,this.expandedElement=null,this.shownColumns=["exotic","mobility","resilience","recovery","discipline","intellect","strength","tiers","mods","dropdown"],this.selectedClass=U.None,this.totalTime=0,this.itemCount=0,this.totalResults=0,this.parsedResults=0,this.ngUnsubscribe=new nt.xQ}ngOnInit(){var e=this;this.config.configuration.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(o=>{this.selectedClass=o.characterClass,this._config_assumeLegendariesMasterworked=o.assumeLegendariesMasterworked,this._config_assumeExoticsMasterworked=o.assumeExoticsMasterworked,this._config_assumeClassItemMasterworked=o.assumeClassItemMasterworked,this._config_tryLimitWastedStats=o.tryLimitWastedStats,this._config_enabledMods=o.enabledMods||[],this._config_limitParsedResults=o.limitParsedResults,this._config_maximumStatMods=o.maximumStatMods,this._config_onlyUseMasterworkedItems=o.onlyUseMasterworkedItems,this._config_includeCollectionRolls=o.includeCollectionRolls,this._config_includeVendorRolls=o.includeVendorRolls,this._config_onlyShowResultsWithNoWastedStats=o.onlyShowResultsWithNoWastedStats,this._config_assumeEveryLegendaryIsArtifice=o.assumeEveryLegendaryIsArtifice,this._config_selectedExotics=o.selectedExotics,this._config_armorPerkLimitation=Object.entries(o.armorPerks).filter(s=>s[1].value!=r.Pn.None).map(s=>s[1]),this._config_modslotLimitation=Object.entries(o.maximumModSlots).filter(s=>s[1].value<5).map(s=>s[1]);let a=["exotic","mobility","resilience","recovery","discipline","intellect","strength",o.showPotentialTierColumn?"potential_tiers":"tiers","mods"];o.showWastedStatsColumn&&a.push("waste"),(o.includeVendorRolls||o.includeCollectionRolls)&&a.push("source"),a.push("dropdown"),this.shownColumns=a}),this.inventory.armorResults.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(function(){var o=(0,m.Z)(function*(a){e._results=a.results,e.itemCount=a.itemCount,e.totalTime=a.totalTime,e.totalResults=a.totalResults,e.parsedResults=e._results.length,e.status.modifyStatus(s=>s.updatingResultsTable=!0),yield e.updateData(),e.status.modifyStatus(s=>s.updatingResultsTable=!1)});return function(a){return o.apply(this,arguments)}}()),this.tableDataSource.paginator=this.paginator,this.tableDataSource.sort=this.sort,this.tableDataSource.sortingDataAccessor=(o,a)=>{switch(a){case"Mobility":return o.stats[r.WB.Mobility];case"Resilience":return o.stats[r.WB.Resilience];case"Recovery":return o.stats[r.WB.Recovery];case"Discipline":return o.stats[r.WB.Discipline];case"Intellect":return o.stats[r.WB.Intellect];case"Strength":return o.stats[r.WB.Strength];case"Tiers":return o.tiers;case"Max Tiers":return 10*(o.tiers+(5-o.modCount));case"Waste":return o.waste;case"Mods":return 100*o.modCount+o.modCost}return 0}}updateData(){var e=this;return(0,m.Z)(function*(){console.time("Update Table Data"),e.tableDataSource.paginator=e.paginator,e.tableDataSource.sort=e.sort,e.tableDataSource.data=e._results,console.timeEnd("Update Table Data")})()}checkIfAnyItemsMayBeInvalid(e){return(e?.items.filter(o=>o.filter(a=>a.mayBeBugged).length>0).length||0)>0}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}saveBuilds(){let e={configCompressed:this.config.getCurrentConfigBase64Compressed(),config:this.config.readonlyConfigurationSnapshot,results:this._results.map(l=>{let d=Object.assign({},l);return d.items=d.items.map(u=>({hash:u[0].hash,instance:u[0].itemInstanceId})),delete d.exotic,d})};document.createElement("a").download="builds.json";const a=window.URL.createObjectURL(new Blob([JSON.stringify(e,null,2)])),s=document.createElement("a");s.href=a,s.setAttribute("download","d2ap_results.json"),document.body.appendChild(s),s.click()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(K),t.Y36(et),t.Y36(Qt),t.Y36(B),t.Y36(Tt))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-results"]],viewQuery:function(e,o){if(1&e&&(t.Gf(ce.NW,5),t.Gf(Bt.YE,5)),2&e){let a;t.iGM(a=t.CRH())&&(o.paginator=a.first),t.iGM(a=t.CRH())&&(o.sort=a.first)}},decls:95,vars:34,consts:[["id","card-results"],[4,"ngIf"],["fxLayout","row","fxLayoutAlign","start center","fxLayoutGap","5px",1,"config-summary-box"],["appearance","outline","fxFlex","",1,"info-box"],["matInput","","readonly","",3,"value"],["class","report-problem-icon","matSuffix","",3,"matTooltip",4,"ngIf"],["appearance","outline","disabled","",1,"config-summary-box"],["matInput","","readonly","","value","\xa0",1,"hidden-input"],["aria-label","Configuration Summary"],["disableRipple","","matTooltip","This setting enforces that all exotics are ignored.",4,"ngIf"],["disableRipple","","matTooltip","This setting enforces that only one specific exotic is used.",4,"ngIf"],["disableRipple","","matTooltip","The tool will try to fulfill your settings for all the selected exotics. If you select exotics in different slots then it will search for legendary items to allow hotswapping with the same stats.",4,"ngIf"],["disableRipple","","matTooltip","You enforced that no stat mods are used.",4,"ngIf"],["disableRipple","","matTooltip","The tool will add minor stat mods to reduce wasted stats.",4,"ngIf"],["disableRipple","","matTooltip","This setting limits available stat mod types, like major Intellect or Recovery.",4,"ngIf"],["disableRipple","","matTooltip","This setting enforces an specific armor perk or modslot for a specific armor slot.",4,"ngIf"],["disableRipple","","matTooltip","This setting means that only builds with no wasted stats are shown.","selected","",4,"ngIf"],["disableRipple","","matTooltip","EVERY legendary is assumed to be artifice.","selected","","color","warn",4,"ngIf"],["disableRipple","","matTooltip","This setting means that only armor pieces are used that are already masterworked.","selected","",4,"ngIf"],["disableRipple","","matTooltip","Some masterwork assumptions are in place. This means that you may have to masterwork items. Look at your advanced settings to see which ones are activated.",4,"ngIf"],["disableRipple","","matTooltip","Collection Exotic rolls will be included in the search.",4,"ngIf"],["disableRipple","","matTooltip","Currently available Vendor items will be included in the search.",4,"ngIf"],[1,"hint-text"],["aria-hidden","false","inline",""],["mat-table","","matSort","","matSortActive","Mods","matSortDirection","asc","multiTemplateDataRows","",1,"result-table",3,"dataSource"],["matColumnDef","mobility"],["mat-header-cell","","mat-sort-header","Mobility","matTooltip","The mobility of this armor combination.",4,"matHeaderCellDef"],["class","statColumn","mat-cell","",4,"matCellDef"],["matColumnDef","resilience"],["mat-header-cell","","mat-sort-header","Resilience","matTooltip","The resilience of this armor combination.",4,"matHeaderCellDef"],["matColumnDef","recovery"],["mat-header-cell","","mat-sort-header","Recovery","matTooltip","The recovery of this armor combination.",4,"matHeaderCellDef"],["matColumnDef","discipline"],["mat-header-cell","","mat-sort-header","Discipline","matTooltip","The discipline of this armor combination.",4,"matHeaderCellDef"],["matColumnDef","intellect"],["mat-header-cell","","mat-sort-header","Intellect","matTooltip","The intellect of this armor combination.",4,"matHeaderCellDef"],["matColumnDef","strength"],["mat-header-cell","","mat-sort-header","Strength","matTooltip","The strength of this armor combination.",4,"matHeaderCellDef"],["matColumnDef","mods"],["mat-header-cell","","mat-sort-header","Mods","matTooltip","The amount of mods required for each combination. Sorting after this takes the mod cost into account.",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","exotic"],["mat-header-cell","",4,"matHeaderCellDef"],["matColumnDef","source"],["matColumnDef","dropdown"],["matColumnDef","tiers"],["mat-header-cell","","mat-sort-header","Tiers","matTooltip","The amount of Tiers in this build. A tier is each successful 10-step of any stat.",4,"matHeaderCellDef"],["matColumnDef","potential_tiers"],["mat-header-cell","","mat-sort-header","Max Tiers","matTooltip","The potential reachable stat tiers with all N stat mods used. As of now, this does NOT take mod filters into consideration.",4,"matHeaderCellDef"],["matColumnDef","waste"],["mat-header-cell","","mat-sort-header","Waste","matTooltip","How many points are wasted. Any stat not ending in 0 adds to this value.",4,"matHeaderCellDef"],["matColumnDef","expandedDetail"],["mat-header-row","",4,"matHeaderRowDef"],["class","example-element-row","mat-row","",3,"example-expanded-row","click",4,"matRowDef","matRowDefColumns"],["class","example-detail-row","mat-row","",4,"matRowDef","matRowDefColumns"],["aria-label","Select page of periodic elements","pageSize","20","showFirstLastButtons","",3,"pageSizeOptions"],[1,"no-found-sadcat-container"],["src","assets/status/emoji/sadcat.png",1,"no-found-sadcat"],[1,"warning-none-found"],["matSuffix","",1,"report-problem-icon",3,"matTooltip"],["tooltip","matTooltip"],["disableRipple","","matTooltip","This setting enforces that all exotics are ignored."],["disableRipple","","matTooltip","This setting enforces that only one specific exotic is used."],["disableRipple","","matTooltip","The tool will try to fulfill your settings for all the selected exotics. If you select exotics in different slots then it will search for legendary items to allow hotswapping with the same stats."],["disableRipple","","matTooltip","You enforced that no stat mods are used."],["disableRipple","","matTooltip","The tool will add minor stat mods to reduce wasted stats."],["disableRipple","","matTooltip","This setting limits available stat mod types, like major Intellect or Recovery."],["disableRipple","","matTooltip","This setting enforces an specific armor perk or modslot for a specific armor slot."],["disableRipple","","matTooltip","This setting means that only builds with no wasted stats are shown.","selected",""],["disableRipple","","matTooltip","EVERY legendary is assumed to be artifice.","selected","","color","warn"],["inline","",2,"height","100%"],["disableRipple","","matTooltip","This setting means that only armor pieces are used that are already masterworked.","selected",""],["disableRipple","","matTooltip","Some masterwork assumptions are in place. This means that you may have to masterwork items. Look at your advanced settings to see which ones are activated."],["disableRipple","","matTooltip","Collection Exotic rolls will be included in the search."],["disableRipple","","matTooltip","Currently available Vendor items will be included in the search."],["mat-header-cell","","mat-sort-header","Mobility","matTooltip","The mobility of this armor combination."],["mat-cell","",1,"statColumn"],["alt","Mobility","src","https://www.bungie.net/common/destiny2_content/icons/e26e0e93a9daf4fdd21bf64eb9246340.png",1,"statIcon"],["mat-header-cell","","mat-sort-header","Resilience","matTooltip","The resilience of this armor combination."],["alt","Resilience","src","https://www.bungie.net/common/destiny2_content/icons/202ecc1c6febeb6b97dafc856e863140.png",1,"statIcon"],["mat-header-cell","","mat-sort-header","Recovery","matTooltip","The recovery of this armor combination."],["alt","Recovery","src","https://www.bungie.net/common/destiny2_content/icons/128eee4ee7fc127851ab32eac6ca91cf.png",1,"statIcon"],["mat-header-cell","","mat-sort-header","Discipline","matTooltip","The discipline of this armor combination."],["alt","Discipline","src","https://www.bungie.net/common/destiny2_content/icons/79be2d4adef6a19203f7385e5c63b45b.png",1,"statIcon"],["mat-header-cell","","mat-sort-header","Intellect","matTooltip","The intellect of this armor combination."],["alt","Intellect","src","https://www.bungie.net/common/destiny2_content/icons/d1c154469670e9a592c9d4cbdcae5764.png",1,"statIcon"],["mat-header-cell","","mat-sort-header","Strength","matTooltip","The strength of this armor combination."],["alt","Strength","src","https://www.bungie.net/common/destiny2_content/icons/ea5af04ccd6a3470a44fd7bb0f66e2f7.png",1,"statIcon"],["mat-header-cell","","mat-sort-header","Mods","matTooltip","The amount of mods required for each combination. Sorting after this takes the mod cost into account."],["mat-cell",""],[1,"modPreview",3,"mods","artifice"],["mat-header-cell",""],[4,"ngFor","ngForOf"],["class","itemIcon","src","https://www.bungie.net/common/destiny2_content/icons/b4d05ef69d0c3227a7d4f7f35bbc2848.png",4,"ngIf"],[1,"itemIcon",3,"matTooltip","src"],[1,"itemIconWatermark",3,"src"],["src","https://www.bungie.net/common/destiny2_content/icons/b4d05ef69d0c3227a7d4f7f35bbc2848.png",1,"itemIcon"],[1,"source-column"],["matTooltip","This build uses a collection exotic. You have to collect it before you can use it.","class","collectionIcon","src","https://www.bungie.net/common/destiny2_content/icons/1d01287dd47af97fef16fa6acbac23ba.png",4,"ngIf"],["matTooltip","This build uses a vendor item. You have to collect it before you can use it.","class","vendorIcon","src","https://www.bungie.net/common/destiny2_content/icons/8ef4b5bd32277dba9aee7c368404ad5d.jpg",4,"ngIf"],["matTooltip","This build uses a collection exotic. You have to collect it before you can use it.","src","https://www.bungie.net/common/destiny2_content/icons/1d01287dd47af97fef16fa6acbac23ba.png",1,"collectionIcon"],["matTooltip","This build uses a vendor item. You have to collect it before you can use it.","src","https://www.bungie.net/common/destiny2_content/icons/8ef4b5bd32277dba9aee7c368404ad5d.jpg",1,"vendorIcon"],["matTooltip","Click to show details for this build.",4,"ngIf"],["matTooltip","Click to hide details for this build.",4,"ngIf"],["aria-hidden","false","aria-label","Error","class","report-problem-icon","inline","","matTooltip","The stats of this build may be incorrect. Make sure that you remove every positive or negative stat modifier from the marked items.",4,"ngIf"],["matTooltip","Click to show details for this build."],["matTooltip","Click to hide details for this build."],["aria-hidden","false","aria-label","Error","inline","","matTooltip","The stats of this build may be incorrect. Make sure that you remove every positive or negative stat modifier from the marked items.",1,"report-problem-icon"],["mat-header-cell","","mat-sort-header","Tiers","matTooltip","The amount of Tiers in this build. A tier is each successful 10-step of any stat."],["mat-header-cell","","mat-sort-header","Max Tiers","matTooltip","The potential reachable stat tiers with all N stat mods used. As of now, this does NOT take mod filters into consideration."],["mat-header-cell","","mat-sort-header","Waste","matTooltip","How many points are wasted. Any stat not ending in 0 adds to this value."],[1,"example-element-detail"],[3,"element"],["mat-header-row",""],["mat-row","",1,"example-element-row",3,"click"],["mat-row","",1,"example-detail-row"],[1,"flex-spacer"],["mat-raised-button","","color","primary",3,"click"]],template:function(e,o){1&e&&(t.TgZ(0,"mat-card",0)(1,"mat-card-title"),t._uU(2,"Results"),t.qZA(),t.TgZ(3,"mat-card-subtitle"),t.YNc(4,He,3,0,"ng-container",1),t.YNc(5,We,8,0,"ng-container",1),t.qZA(),t.TgZ(6,"mat-card-content")(7,"div")(8,"div",2)(9,"mat-form-field",3)(10,"mat-label"),t._uU(11,"Items Used"),t.qZA(),t._UZ(12,"input",4),t.ALo(13,"number"),t.qZA(),t.TgZ(14,"mat-form-field",3)(15,"mat-label"),t._uU(16,"Combinations generated"),t.qZA(),t._UZ(17,"input",4),t.ALo(18,"number"),t.YNc(19,je,4,3,"mat-icon",5),t.YNc(20,ze,4,3,"mat-icon",5),t.qZA(),t.TgZ(21,"mat-form-field",3)(22,"mat-label"),t._uU(23,"Time required"),t.qZA(),t._UZ(24,"input",4),t.ALo(25,"number"),t.qZA()(),t.TgZ(26,"mat-form-field",6)(27,"mat-label"),t._uU(28,"Summary of important configuration choices"),t.qZA(),t._UZ(29,"input",7),t.TgZ(30,"mat-chip-list",8),t.YNc(31,Ge,3,0,"mat-chip",9),t.YNc(32,Ke,3,0,"mat-chip",10),t.YNc(33,$e,3,0,"mat-chip",11),t.YNc(34,Xe,3,0,"mat-chip",12),t.YNc(35,tn,3,0,"mat-chip",13),t.YNc(36,en,3,0,"mat-chip",14),t.YNc(37,nn,3,0,"mat-chip",15),t.YNc(38,on,3,0,"mat-chip",16),t.YNc(39,an,7,0,"mat-chip",17),t.YNc(40,sn,3,0,"mat-chip",18),t.YNc(41,rn,3,0,"mat-chip",19),t.YNc(42,ln,3,0,"mat-chip",20),t.YNc(43,cn,3,0,"mat-chip",21),t.qZA()(),t.TgZ(44,"div",22)(45,"mat-icon",23),t._uU(46,"info"),t.qZA(),t._uU(47," Note that you can change the sort column and order of the table by clicking on the headers. "),t.qZA(),t.TgZ(48,"table",24),t.ynx(49,25),t.YNc(50,mn,2,0,"th",26),t.YNc(51,dn,3,1,"td",27),t.BQk(),t.ynx(52,28),t.YNc(53,un,2,0,"th",29),t.YNc(54,pn,3,1,"td",27),t.BQk(),t.ynx(55,30),t.YNc(56,gn,2,0,"th",31),t.YNc(57,_n,3,1,"td",27),t.BQk(),t.ynx(58,32),t.YNc(59,fn,2,0,"th",33),t.YNc(60,hn,3,1,"td",27),t.BQk(),t.ynx(61,34),t.YNc(62,xn,2,0,"th",35),t.YNc(63,Tn,3,1,"td",27),t.BQk(),t.ynx(64,36),t.YNc(65,yn,2,0,"th",37),t.YNc(66,bn,3,1,"td",27),t.BQk(),t.ynx(67,38),t.YNc(68,Cn,2,0,"th",39),t.YNc(69,vn,2,2,"td",40),t.BQk(),t.ynx(70,41),t.YNc(71,An,2,0,"th",42),t.YNc(72,Sn,3,2,"td",40),t.BQk(),t.ynx(73,43),t.YNc(74,In,2,0,"th",42),t.YNc(75,kn,4,2,"td",40),t.BQk(),t.ynx(76,44),t.YNc(77,Dn,1,0,"th",42),t.YNc(78,Pn,4,3,"td",40),t.BQk(),t.ynx(79,45),t.YNc(80,Nn,2,0,"th",46),t.YNc(81,qn,2,1,"td",40),t.BQk(),t.ynx(82,47),t.YNc(83,Jn,2,0,"th",48),t.YNc(84,Yn,2,1,"td",40),t.BQk(),t.ynx(85,49),t.YNc(86,Ln,2,0,"th",50),t.YNc(87,Fn,2,1,"td",40),t.BQk(),t.ynx(88,51),t.YNc(89,Qn,3,3,"td",40),t.BQk(),t.YNc(90,Bn,1,0,"tr",52),t.YNc(91,Vn,1,2,"tr",53),t.YNc(92,Hn,1,0,"tr",54),t.qZA(),t._UZ(93,"mat-paginator",55),t.qZA()(),t.YNc(94,Wn,4,0,"mat-card-actions",1),t.qZA()),2&e&&(t.xp6(4),t.Q6J("ngIf",o.totalResults>0),t.xp6(1),t.Q6J("ngIf",0===o.totalResults),t.xp6(7),t.s9C("value",t.lcZ(13,26,o.itemCount)),t.xp6(5),t.s9C("value",t.lcZ(18,28,o.totalResults)),t.xp6(2),t.Q6J("ngIf",o.parsedResults!==o.totalResults&&5e4===o.parsedResults),t.xp6(1),t.Q6J("ngIf",o.parsedResults!==o.totalResults&&1e6===o.parsedResults),t.xp6(4),t.MGl("value","",t.lcZ(25,30,o.totalTime),"ms"),t.xp6(7),t.Q6J("ngIf",o._config_selectedExotics.indexOf(-1)>-1),t.xp6(1),t.Q6J("ngIf",1===o._config_selectedExotics.length&&-1===o._config_selectedExotics.indexOf(-1)),t.xp6(1),t.Q6J("ngIf",o._config_selectedExotics.length>1&&-1===o._config_selectedExotics.indexOf(-1)),t.xp6(1),t.Q6J("ngIf",0===o._config_maximumStatMods),t.xp6(1),t.Q6J("ngIf",o._config_tryLimitWastedStats),t.xp6(1),t.Q6J("ngIf",o._config_modslotLimitation.length>0),t.xp6(1),t.Q6J("ngIf",o._config_armorPerkLimitation.length>0),t.xp6(1),t.Q6J("ngIf",o._config_onlyShowResultsWithNoWastedStats),t.xp6(1),t.Q6J("ngIf",o._config_assumeEveryLegendaryIsArtifice),t.xp6(1),t.Q6J("ngIf",o._config_onlyUseMasterworkedItems),t.xp6(1),t.Q6J("ngIf",!o._config_onlyUseMasterworkedItems&&(o._config_assumeLegendariesMasterworked||o._config_assumeExoticsMasterworked||o._config_assumeClassItemMasterworked)),t.xp6(1),t.Q6J("ngIf",o._config_includeCollectionRolls),t.xp6(1),t.Q6J("ngIf",o._config_includeVendorRolls),t.xp6(5),t.Q6J("dataSource",o.tableDataSource),t.xp6(42),t.Q6J("matHeaderRowDef",o.shownColumns),t.xp6(1),t.Q6J("matRowDefColumns",o.shownColumns),t.xp6(1),t.Q6J("matRowDefColumns",t.DdM(32,jn)),t.xp6(1),t.Q6J("pageSizeOptions",t.DdM(33,zn)),t.xp6(1),t.Q6J("ngIf",o.totalResults>0))},styles:["#card-results[_ngcontent-%COMP%]{display:inline-block;vertical-align:top;white-space:normal;width:-moz-fit-content;width:fit-content;margin-left:3px}.statColumn[_ngcontent-%COMP%]{position:relative}.statIcon[_ngcontent-%COMP%]{position:absolute;height:22px;margin-left:2px;top:11px}.itemIcon[_ngcontent-%COMP%]{width:32px;height:32px;margin-right:3px}.itemIconWatermark[_ngcontent-%COMP%]{width:32px;height:32px;margin-right:3px;margin-left:-35px;pointer-events:none}.source-column[_ngcontent-%COMP%]{float:left}.source-column[_ngcontent-%COMP%] img[_ngcontent-%COMP%]:nth-of-type(2){margin-top:5px;margin-bottom:-3px}.collectionIcon[_ngcontent-%COMP%], .vendorIcon[_ngcontent-%COMP%]{width:32px;margin-left:3px;display:block}tr.example-element-row[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-bottom-width:0}tr.example-detail-row[_ngcontent-%COMP%]{height:0!important}.example-element-detail[_ngcontent-%COMP%]{overflow:hidden;display:flex}.report-problem-icon[_ngcontent-%COMP%]{color:#f08080}.hint-text[_ngcontent-%COMP%]{font-size:small;color:#d5d5d5}[_nghost-%COMP%] .info-box .mat-form-field-wrapper{padding-bottom:5px!important;cursor:default}.hidden-input[_ngcontent-%COMP%]{display:none}.config-summary-box[_ngcontent-%COMP%]{width:100%}.result-table[_ngcontent-%COMP%] tr.example-element-row[_ngcontent-%COMP%]{cursor:pointer}.mat-row[_ngcontent-%COMP%]:nth-child(4n+3){background-color:#7474741a}.warning-none-found[_ngcontent-%COMP%]{color:red}.no-found-sadcat-container[_ngcontent-%COMP%]{width:20px;position:relative;display:inline-block}.no-found-sadcat[_ngcontent-%COMP%]{position:absolute;width:18px;top:-1px}.cdk-column-exotic[_ngcontent-%COMP%]{min-width:45px}.cdk-column-waste[_ngcontent-%COMP%]{padding-left:5px}"],data:{animation:[(0,F.X$)("detailExpand",[(0,F.SB)("collapsed, void",(0,F.oB)({height:"0px"})),(0,F.SB)("expanded",(0,F.oB)({height:"*"})),(0,F.eR)("expanded <=> collapsed",(0,F.jt)("225ms cubic-bezier(0.4, 0.0, 0.2, 1)")),(0,F.eR)("expanded <=> void",(0,F.jt)("225ms cubic-bezier(0.4, 0.0, 0.2, 1)"))])]}}),n})();const Gn={2:{shards:1,glimmer:500,core:0,prism:0,ascshard:0},3:{shards:1,glimmer:500,core:0,prism:0,ascshard:0},4:{shards:2,glimmer:500,core:0,prism:0,ascshard:0},5:{shards:2,glimmer:1e3,core:0,prism:0,ascshard:0},6:{shards:3,glimmer:1e3,core:1,prism:0,ascshard:0},7:{shards:3,glimmer:2500,core:2,prism:0,ascshard:0},8:{shards:4,glimmer:3e3,core:0,prism:1,ascshard:0},9:{shards:4,glimmer:3e3,core:0,prism:2,ascshard:0},10:{shards:5,glimmer:4e3,core:0,prism:0,ascshard:1}},Kn={2:{shards:1,glimmer:500,core:0,prism:0,ascshard:0},3:{shards:2,glimmer:1e3,core:0,prism:0,ascshard:0},4:{shards:2,glimmer:1e3,core:0,prism:0,ascshard:0},5:{shards:3,glimmer:2500,core:0,prism:0,ascshard:0},6:{shards:3,glimmer:3e3,core:2,prism:0,ascshard:0},7:{shards:4,glimmer:3e3,core:3,prism:0,ascshard:0},8:{shards:4,glimmer:4e3,core:0,prism:2,ascshard:0},9:{shards:5,glimmer:4e3,core:0,prism:3,ascshard:0},10:{shards:6,glimmer:5e3,core:0,prism:0,ascshard:3}};var Vt=_(7009),$n=_(1572),wt=_(4425),Nt=_(4080);const Xn={[k.Inventory]:"Inventory",[k.Collections]:"Collections",[k.Vendor]:"Vendor"};let to=(()=>{class n{constructor(e){this.database=e}transform(e){var o=this;return(0,m.Z)(function*(){return(yield o.database.vendorNames.where("vendorId").equals(e).first())?.vendorName??"Unknown Vendor"})()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(et,16))},n.\u0275pipe=t.Yjl({name:"getVendorName",type:n,pure:!0}),n})(),eo=(()=>{class n{constructor(){}transform(e){if(!e||!e.startsWith("v"))return-1;const o=parseInt(e.substring(1).split("-")[0]);return isNaN(o)?-1:o}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275pipe=t.Yjl({name:"getVendorIdFromItemId",type:n,pure:!0}),n})();function no(n,i){if(1&n&&(t.TgZ(0,"tr")(1,"td"),t._uU(2,"Vendor"),t.qZA(),t.TgZ(3,"td",2),t._uU(4),t.ALo(5,"async"),t.ALo(6,"getVendorName"),t.ALo(7,"getVendorIdFromItemId"),t.qZA()()),2&n){const e=t.oxw();t.xp6(4),t.Oqu(t.lcZ(5,1,t.lcZ(6,3,t.lcZ(7,5,e.itemTooltip.itemInstanceId))))}}function oo(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw().$implicit;t.xp6(1),t.Oqu(e)}}function io(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw().$implicit;t.xp6(1),t.Oqu(e+2)}}function ao(n,i){if(1&n&&(t.TgZ(0,"div",8),t._uU(1,"\xa0"),t.qZA()),2&n){const e=t.oxw(2);t.Udp("width",e.getWidth(2))}}function so(n,i){if(1&n&&(t.TgZ(0,"tr")(1,"td"),t._uU(2),t.qZA(),t.TgZ(3,"td"),t.YNc(4,oo,2,1,"span",3),t.YNc(5,io,2,1,"span",3),t.qZA(),t.TgZ(6,"td")(7,"div",5)(8,"div",6),t._uU(9,"\xa0"),t.qZA(),t.YNc(10,ao,2,2,"div",7),t.qZA()()()),2&n){const e=i.$implicit,o=i.index,a=t.oxw();t.xp6(2),t.Oqu(a.getArmorStatName(o)),t.xp6(2),t.Q6J("ngIf",!(null!=a.itemTooltip&&a.itemTooltip.masterworked)),t.xp6(1),t.Q6J("ngIf",null==a.itemTooltip?null:a.itemTooltip.masterworked),t.xp6(3),t.Udp("width",a.getWidth(e)),t.xp6(2),t.Q6J("ngIf",null==a.itemTooltip?null:a.itemTooltip.masterworked)}}let ro=(()=>{class n{constructor(){}getSourceText(){return this.itemTooltip?Xn[this.itemTooltip.source]:""}getArmorStatName(e){return r.Mi[e]}getWidth(e){return Math.min(100,e/32*100)+"%"}getTotalStats(){return this.itemTooltip?.stats.reduce((e,o)=>e+o,0)||0}get isVendorItem(){return this.itemTooltip?.source===k.Vendor}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-armor-tooltip-component"]],inputs:{itemTooltip:"itemTooltip"},decls:21,vars:5,consts:[[1,"tooltip-container"],["colspan","3"],["colspan","2"],[4,"ngIf"],[4,"ngFor","ngForOf"],[1,"stat-display"],[1,"stat-display-bar"],["class","stat-display-bar masterwork",3,"width",4,"ngIf"],[1,"stat-display-bar","masterwork"]],template:function(e,o){1&e&&(t.TgZ(0,"div")(1,"div",0)(2,"table")(3,"tr")(4,"td",1),t._uU(5),t.qZA()(),t.TgZ(6,"tr")(7,"td"),t._uU(8,"Source"),t.qZA(),t.TgZ(9,"td",2),t._uU(10),t.qZA()(),t.YNc(11,no,8,7,"tr",3),t.TgZ(12,"tr")(13,"td"),t._uU(14,"Current stats:"),t.qZA()(),t.YNc(15,so,11,6,"tr",4),t.TgZ(16,"tr")(17,"td"),t._uU(18,"Total base stats:"),t.qZA(),t.TgZ(19,"td"),t._uU(20),t.qZA()()()()()),2&e&&(t.xp6(5),t.Oqu(null==o.itemTooltip?null:o.itemTooltip.name),t.xp6(5),t.Oqu(o.getSourceText()),t.xp6(1),t.Q6J("ngIf",o.isVendorItem&&o.itemTooltip),t.xp6(4),t.Q6J("ngForOf",null==o.itemTooltip?null:o.itemTooltip.stats),t.xp6(5),t.hij(" ",o.getTotalStats()," "))},dependencies:[y.sg,y.O5,y.Ov,eo,to],styles:[".tooltip-container[_ngcontent-%COMP%]{border:1px solid gray;padding:1px 5px 4px;background:linear-gradient(#484848 0px,#2c2c2c 100%)}.stat-display[_ngcontent-%COMP%]{width:70px;height:20px;background-color:#2c2c2c}.stat-display-bar[_ngcontent-%COMP%]{height:100%;background-color:#a1a1a1;float:left}.masterwork[_ngcontent-%COMP%]{background-color:#eedb9e}"]}),n})();var pt=_(8184);let lo=(()=>{class n{constructor(e,o,a){this._overlay=e,this._overlayPositionBuilder=o,this._elementRef=a,this.showToolTip=!0}ngOnInit(){if(!this.showToolTip)return;const e=this._overlayPositionBuilder.flexibleConnectedTo(this._elementRef).withPositions([{originX:"center",originY:"bottom",overlayX:"center",overlayY:"top",offsetY:5},{originX:"center",originY:"top",overlayX:"center",overlayY:"bottom",offsetY:-5}]);this._overlayRef=this._overlay.create({positionStrategy:e}),this._overlayRef.addPanelClass("overlay-no-pointer-event")}show(){this._overlayRef&&!this._overlayRef.hasAttached()&&(this._overlayRef.attach(new Nt.C5(ro)).instance.itemTooltip=this.itemTooltip)}hide(){this.closeToolTip()}ngOnDestroy(){this.closeToolTip()}closeToolTip(){this._overlayRef&&this._overlayRef.detach()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(pt.aV),t.Y36(pt.wJ),t.Y36(t.SBq))},n.\u0275dir=t.lG2({type:n,selectors:[["","itemTooltip",""]],hostBindings:function(e,o){1&e&&t.NdJ("mouseenter",function(){return o.show()})("mouseleave",function(){return o.hide()})},inputs:{showToolTip:"showToolTip",itemTooltip:"itemTooltip",contentTemplate:"contentTemplate"}}),n})(),de=(()=>{class n{constructor(e){this.db=e,this.itemLookup=new Map}getItemCached(e){var o=this;return(0,m.Z)(function*(){if(o.itemLookup.has(e))return o.itemLookup.get(e)||void 0;const a=yield o.db.manifestArmor.where("hash").equals(e).first();return o.itemLookup.set(e,a),a})()}getExoticPerkDescription(e){var o=this;return(0,m.Z)(function*(){return e.exoticPerkHash?(yield o.getItemCached(e.exoticPerkHash))??null:null})()}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(et))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function co(n,i){if(1&n&&t._UZ(0,"img",6,7),2&n){const e=t.oxw(2);t.MGl("src","https://bungie.net/",e.item.icon,"",t.LSH),t.s9C("matTooltip",e.item.name)}}function mo(n,i){if(1&n&&t._UZ(0,"img",8),2&n){const e=t.oxw(2);t.MGl("src","https://bungie.net/",e.item.watermarkIcon,"",t.LSH)}}function uo(n,i){if(1&n&&t._UZ(0,"div",9),2&n){const e=t.oxw(2);t.ekj("vendor-item",e.isFromVendor)("collection-item",e.isFromCollection)}}function po(n,i){1&n&&t._UZ(0,"div",10)}function go(n,i){if(1&n&&(t.TgZ(0,"div",1),t.YNc(1,co,2,2,"img",2),t.YNc(2,mo,1,1,"img",3),t.YNc(3,uo,1,4,"div",4),t.YNc(4,po,1,0,"div",5),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngIf",e.item.icon),t.xp6(1),t.Q6J("ngIf",e.item.watermarkIcon),t.xp6(1),t.Q6J("ngIf",e.isFromVendor||e.isFromCollection),t.xp6(1),t.Q6J("ngIf",e.masterworked)}}let Ht=(()=>{class n{constructor(e){this.iconService=e,this.itemHash=0,this.masterworked=!1,this.source=k.Inventory,this.isFromVendor=!1,this.isFromCollection=!1,this.item=void 0}ngAfterViewInit(){var e=this;return(0,m.Z)(function*(){e.item=yield e.iconService.getItemCached(e.itemHash),e.isFromVendor=e.source===k.Vendor,e.isFromCollection=e.source===k.Collections})()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(de))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-item-icon"]],inputs:{itemHash:"itemHash",masterworked:"masterworked",source:"source"},decls:1,vars:1,consts:[["class","item-icon-container",4,"ngIf"],[1,"item-icon-container"],["class","item-icon",3,"src","matTooltip",4,"ngIf"],["class","item-icon-overlay",3,"src",4,"ngIf"],["class","item-source-overlay",3,"vendor-item","collection-item",4,"ngIf"],["class","item-icon-masterwork-overlay",4,"ngIf"],[1,"item-icon",3,"src","matTooltip"],["tooltip","matTooltip"],[1,"item-icon-overlay",3,"src"],[1,"item-source-overlay"],[1,"item-icon-masterwork-overlay"]],template:function(e,o){1&e&&t.YNc(0,go,5,4,"div",0),2&e&&t.Q6J("ngIf",o.item)},dependencies:[y.O5,N.gM],styles:["[_nghost-%COMP%]{height:22px;width:22px;display:block}.item-icon-masterwork-overlay[_ngcontent-%COMP%]{pointer-events:none;box-sizing:border-box;top:-1px;left:-1px;border-width:0;height:24px;width:24px;position:absolute;background-repeat:no-repeat;background-position:center;background-size:22px 22px;background-image:url(data:image/png;base64,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)}.item-icon-container[_ngcontent-%COMP%]{position:relative;transition:opacity .2s,transform .2s;width:100%;--icon-size: 22px}.item-icon-overlay[_ngcontent-%COMP%], .item-icon[_ngcontent-%COMP%]{position:absolute;left:0;top:0;width:100%;pointer-events:none}.item-source-overlay[_ngcontent-%COMP%]{position:absolute;left:0;top:0;width:0;pointer-events:none;border-top:calc(var(--icon-size) / 2) solid transparent;border-right:calc(var(--icon-size) / 2) solid transparent}.item-source-overlay.vendor-item[_ngcontent-%COMP%]{border-top-color:#00f}.item-source-overlay.collection-item[_ngcontent-%COMP%]{border-top-color:#90ee90}"]}),n})();function _o(n,i){if(1&n&&t._UZ(0,"img",5),2&n){const e=t.oxw(2);t.s9C("src",e.url,t.LSH)}}function fo(n,i){if(1&n&&(t.ynx(0),t._UZ(1,"img",2,3),t.YNc(3,_o,1,1,"img",4),t.BQk()),2&n){const e=t.oxw();t.xp6(1),t.s9C("matTooltip",e.name),t.xp6(2),t.Q6J("ngIf",e.customIconMods.indexOf(e.perk)>-1)}}function ho(n,i){if(1&n&&(t.ynx(0),t._UZ(1,"img",6,3),t.BQk()),2&n){const e=t.oxw();t.xp6(1),t.s9C("matTooltip",e.name),t.s9C("src",e.url,t.LSH)}}let Wt=(()=>{class n{constructor(){this.ArmorPerkOrSlot=r.Pn,this.customIconMods=[r.Pn.SlotKingsFall,r.Pn.SlotCrotasEnd,r.Pn.SlotArtifice,r.Pn.SlotVowOfTheDisciple,r.Pn.SlotRootOfNightmares],this.perk=r.Pn.None}get name(){return r.cM[this.perk]}get url(){return r.X9[this.perk]}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-armor-perk-icon"]],inputs:{perk:"perk"},decls:3,vars:2,consts:[[1,"overlay-icon-container"],[4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/b4d05ef69d0c3227a7d4f7f35bbc2848.png",1,"element-icon",3,"matTooltip"],["tooltip","matTooltip"],["class","overlay-icon",3,"src",4,"ngIf"],[1,"overlay-icon",3,"src"],[1,"element-icon",3,"matTooltip","src"]],template:function(e,o){1&e&&(t.TgZ(0,"span",0),t.YNc(1,fo,4,2,"ng-container",1),t.YNc(2,ho,3,2,"ng-container",1),t.qZA()),2&e&&(t.xp6(1),t.Q6J("ngIf",o.customIconMods.indexOf(o.perk)>-1),t.xp6(1),t.Q6J("ngIf",-1===o.customIconMods.indexOf(o.perk)))},dependencies:[y.O5,N.gM],styles:[".element-icon[_ngcontent-%COMP%]{height:100%;width:100%}.element-icon.disabled[_ngcontent-%COMP%]{opacity:.5;cursor:default;pointer-events:none}.overlay-icon-container[_ngcontent-%COMP%]{position:relative}.overlay-icon-container[_ngcontent-%COMP%] .overlay-icon[_ngcontent-%COMP%]{width:66%;position:absolute;left:17%;top:17%;pointer-events:none}[_nghost-%COMP%]{display:inline-flex;height:30px;width:30px}"]}),n})(),ue=(()=>{class n{transform(e,o=null){return e.filter(a=>null==o||a==o).length}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275pipe=t.Yjl({name:"count",type:n,pure:!0}),n})();function xo(n,i){1&n&&(t.TgZ(0,"mat-toolbar",24),t._uU(1," Warning: The stats of one or more items used for this build may be invalid."),t._UZ(2,"br"),t._uU(3," Please remove all negative/positive stat modifiers from the marked items. "),t.qZA())}function To(n,i){if(1&n&&(t.TgZ(0,"u",34,35),t._uU(2),t.qZA()),2&n){const e=t.oxw().$implicit;t.xp6(2),t.Oqu(e.name)}}function yo(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw().$implicit;t.xp6(1),t.Oqu(e.name)}}function bo(n,i){if(1&n&&(t.ynx(0),t.TgZ(1,"td",36)(2,"span",37),t._uU(3),t.qZA()(),t.TgZ(4,"td",36)(5,"span",37),t._uU(6),t.qZA()(),t.TgZ(7,"td",36)(8,"span",37),t._uU(9),t.qZA()(),t.TgZ(10,"td",36)(11,"span",37),t._uU(12),t.qZA()(),t.TgZ(13,"td",36)(14,"span",37),t._uU(15),t.qZA()(),t.TgZ(16,"td",36)(17,"span",37),t._uU(18),t.qZA()(),t.BQk()),2&n){const e=i.ngVar,o=t.oxw().$implicit,a=t.oxw(2);t.xp6(2),t.ekj("text-mw",o.masterworked),t.xp6(1),t.Oqu(o.stats[a.ArmorStat.Mobility]+e),t.xp6(2),t.ekj("text-mw",o.masterworked),t.xp6(1),t.Oqu(o.stats[a.ArmorStat.Resilience]+e),t.xp6(2),t.ekj("text-mw",o.masterworked),t.xp6(1),t.Oqu(o.stats[a.ArmorStat.Recovery]+e),t.xp6(2),t.ekj("text-mw",o.masterworked),t.xp6(1),t.Oqu(o.stats[a.ArmorStat.Discipline]+e),t.xp6(2),t.ekj("text-mw",o.masterworked),t.xp6(1),t.Oqu(o.stats[a.ArmorStat.Intellect]+e),t.xp6(2),t.ekj("text-mw",o.masterworked),t.xp6(1),t.Oqu(o.stats[a.ArmorStat.Strength]+e)}}function Co(n,i){1&n&&(t.TgZ(0,"td",27),t._UZ(1,"mat-progress-spinner",38),t.qZA())}function vo(n,i){1&n&&(t.TgZ(0,"td")(1,"mat-icon",39,35),t._uU(3," check_circle_outline "),t.qZA()())}function Ao(n,i){1&n&&(t.TgZ(0,"td")(1,"mat-icon",40,35),t._uU(3," error_outline "),t.qZA()())}function wo(n,i){1&n&&(t.TgZ(0,"td")(1,"mat-icon",41,35),t._uU(3," report_problem "),t.qZA()())}function Zo(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"tr")(1,"td"),t.YNc(2,To,3,1,"u",26),t.YNc(3,yo,2,1,"span",3),t.qZA(),t.YNc(4,bo,19,18,"ng-container",8),t.TgZ(5,"td",27)(6,"div",28),t._UZ(7,"app-item-icon",29),t.qZA()(),t.TgZ(8,"td",27)(9,"div",30),t._UZ(10,"app-armor-perk-icon",31),t.qZA()(),t.TgZ(11,"td",27)(12,"button",32),t.NdJ("click",function(){const s=t.CHM(e).$implicit,l=t.oxw(2);return t.KtG(l.disableItem(s.itemInstanceId))}),t.TgZ(13,"mat-icon"),t._uU(14,"block"),t.qZA()()(),t.YNc(15,Co,2,0,"td",33),t.YNc(16,vo,4,0,"td",3),t.YNc(17,Ao,4,0,"td",3),t.YNc(18,wo,4,0,"td",3),t.qZA()}if(2&n){const e=i.$implicit,o=t.oxw().$implicit,a=t.oxw();t.ekj("highlight-row",o[0].slot%2==0),t.xp6(2),t.Q6J("ngIf",e.masterworked),t.xp6(1),t.Q6J("ngIf",!e.masterworked),t.xp6(1),t.Q6J("ngVar",e.masterworked||!e.exotic&&a.config_assumeLegendariesMasterworked||e.exotic&&a.config_assumeExoticsMasterworked?2:0),t.xp6(2),t.Q6J("itemTooltip",e),t.xp6(1),t.Q6J("itemHash",e.hash)("masterworked",e.masterworked)("source",e.source),t.xp6(3),t.Q6J("perk",e.perk||0),t.xp6(5),t.Q6J("ngIf",1===e.transferState||2===e.transferState),t.xp6(1),t.Q6J("ngIf",3===e.transferState),t.xp6(1),t.Q6J("ngIf",4===e.transferState),t.xp6(1),t.Q6J("ngIf",e.mayBeBugged)}}function So(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Zo,19,14,"tr",25),t.BQk()),2&n){const e=i.$implicit;t.xp6(1),t.Q6J("ngForOf",e)}}function Io(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"tr")(1,"td",42,35),t._uU(3,"Any Class Item"),t.qZA(),t.TgZ(4,"td",43),t._uU(5),t.qZA(),t.TgZ(6,"td",43),t._uU(7),t.qZA(),t.TgZ(8,"td",43),t._uU(9),t.qZA(),t.TgZ(10,"td",43),t._uU(11),t.qZA(),t.TgZ(12,"td",43),t._uU(13),t.qZA(),t.TgZ(14,"td",43),t._uU(15),t.qZA(),t._UZ(16,"td"),t.TgZ(17,"td")(18,"div",30),t._UZ(19,"app-armor-perk-icon",31),t.qZA()(),t.TgZ(20,"td")(21,"button",44),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.disableAllItems())}),t.TgZ(22,"mat-icon"),t._uU(23,"block"),t.qZA()()()()}if(2&n){const e=t.oxw();t.xp6(5),t.Oqu(2),t.xp6(2),t.Oqu(2),t.xp6(2),t.Oqu(2),t.xp6(2),t.Oqu(2),t.xp6(2),t.Oqu(2),t.xp6(2),t.Oqu(2),t.xp6(4),t.Q6J("perk",(null==e.element||null==e.element.classItem?null:e.element.classItem.perk)||0)}}function Oo(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"tr")(1,"td"),t._uU(2,"Any Class Item"),t.qZA(),t.TgZ(3,"td",45),t._uU(4,"You chose to use non-masterworked class items."),t.qZA(),t._UZ(5,"td")(6,"td"),t.TgZ(7,"td")(8,"button",44),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.disableAllItems())}),t.TgZ(9,"mat-icon"),t._uU(10,"block"),t.qZA()()()()}}function Mo(n,i){if(1&n&&(t.TgZ(0,"td"),t._uU(1),t._UZ(2,"img",47),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw();t.xp6(1),t.hij(" ",e[o.ArmorStat.Mobility]," ")}}function ko(n,i){if(1&n&&(t.TgZ(0,"td"),t._uU(1),t._UZ(2,"img",48),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw();t.xp6(1),t.hij(" ",e[o.ArmorStat.Resilience]," ")}}function Do(n,i){if(1&n&&(t.TgZ(0,"td"),t._uU(1),t._UZ(2,"img",49),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw();t.xp6(1),t.hij(" ",e[o.ArmorStat.Recovery]," ")}}function Uo(n,i){if(1&n&&(t.TgZ(0,"td"),t._uU(1),t._UZ(2,"img",50),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw();t.xp6(1),t.hij(" ",e[o.ArmorStat.Discipline]," ")}}function Eo(n,i){if(1&n&&(t.TgZ(0,"td"),t._uU(1),t._UZ(2,"img",51),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw();t.xp6(1),t.hij(" ",e[o.ArmorStat.Intellect]," ")}}function Ro(n,i){if(1&n&&(t.TgZ(0,"td"),t._uU(1),t._UZ(2,"img",52),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw();t.xp6(1),t.hij(" ",e[o.ArmorStat.Strength]," ")}}function Po(n,i){if(1&n&&(t.TgZ(0,"tr",46)(1,"td"),t._uU(2,"Total (armor)"),t.qZA(),t.YNc(3,Mo,3,1,"td",3),t.YNc(4,ko,3,1,"td",3),t.YNc(5,Do,3,1,"td",3),t.YNc(6,Uo,3,1,"td",3),t.YNc(7,Eo,3,1,"td",3),t.YNc(8,Ro,3,1,"td",3),t.qZA()),2&n){const e=i.ngVar;t.xp6(3),t.Q6J("ngIf",!!e),t.xp6(1),t.Q6J("ngIf",!!e),t.xp6(1),t.Q6J("ngIf",!!e),t.xp6(1),t.Q6J("ngIf",!!e),t.xp6(1),t.Q6J("ngIf",!!e),t.xp6(1),t.Q6J("ngIf",!!e)}}function No(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"+"),t.qZA())}function qo(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,No,2,0,"span",3),t._uU(2),t.qZA()),2&n){const e=t.oxw();t.Tol(e.configValues[e.ArmorStat.Mobility]>0?"positive":"negative"),t.xp6(1),t.Q6J("ngIf",e.configValues[e.ArmorStat.Mobility]>0),t.xp6(1),t.hij("",e.configValues[e.ArmorStat.Mobility]," ")}}function Jo(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"+"),t.qZA())}function Yo(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,Jo,2,0,"span",3),t._uU(2),t.qZA()),2&n){const e=t.oxw();t.Tol(e.configValues[e.ArmorStat.Resilience]>0?"positive":"negative"),t.xp6(1),t.Q6J("ngIf",e.configValues[e.ArmorStat.Resilience]>0),t.xp6(1),t.hij("",e.configValues[e.ArmorStat.Resilience]," ")}}function Lo(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"+"),t.qZA())}function Fo(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,Lo,2,0,"span",3),t._uU(2),t.qZA()),2&n){const e=t.oxw();t.Tol(e.configValues[e.ArmorStat.Recovery]>0?"positive":"negative"),t.xp6(1),t.Q6J("ngIf",e.configValues[e.ArmorStat.Recovery]>0),t.xp6(1),t.hij("",e.configValues[e.ArmorStat.Recovery]," ")}}function Qo(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"+"),t.qZA())}function Bo(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,Qo,2,0,"span",3),t._uU(2),t.qZA()),2&n){const e=t.oxw();t.Tol(e.configValues[e.ArmorStat.Discipline]>0?"positive":"negative"),t.xp6(1),t.Q6J("ngIf",e.configValues[e.ArmorStat.Discipline]>0),t.xp6(1),t.hij("",e.configValues[e.ArmorStat.Discipline]," ")}}function Vo(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"+"),t.qZA())}function Ho(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,Vo,2,0,"span",3),t._uU(2),t.qZA()),2&n){const e=t.oxw();t.Tol(e.configValues[e.ArmorStat.Intellect]>0?"positive":"negative"),t.xp6(1),t.Q6J("ngIf",e.configValues[e.ArmorStat.Intellect]>0),t.xp6(1),t.hij("",e.configValues[e.ArmorStat.Intellect]," ")}}function Wo(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"+"),t.qZA())}function jo(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,Wo,2,0,"span",3),t._uU(2),t.qZA()),2&n){const e=t.oxw();t.Tol(e.configValues[e.ArmorStat.Strength]>0?"positive":"negative"),t.xp6(1),t.Q6J("ngIf",e.configValues[e.ArmorStat.Strength]>0),t.xp6(1),t.hij("",e.configValues[e.ArmorStat.Strength]," ")}}function zo(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd75")}}function Go(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,zo,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function Ko(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd75")}}function $o(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,Ko,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function Xo(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd75")}}function ti(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,Xo,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function ei(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd75")}}function ni(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,ei,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function oi(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd75")}}function ii(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,oi,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function ai(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd75")}}function si(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,ai,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function ri(n,i){if(1&n&&(t.TgZ(0,"tr",53)(1,"td"),t._uU(2,"Minor Mods"),t.qZA(),t.YNc(3,Go,2,1,"td",8),t.ALo(4,"count"),t.YNc(5,$o,2,1,"td",8),t.ALo(6,"count"),t.YNc(7,ti,2,1,"td",8),t.ALo(8,"count"),t.YNc(9,ni,2,1,"td",8),t.ALo(10,"count"),t.YNc(11,ii,2,1,"td",8),t.ALo(12,"count"),t.YNc(13,si,2,1,"td",8),t.ALo(14,"count"),t.qZA()),2&n){const e=i.ngVar,o=t.oxw();t.xp6(3),t.Q6J("ngVar",t.xi3(4,6,e,o.StatModifier.MINOR_MOBILITY)),t.xp6(2),t.Q6J("ngVar",t.xi3(6,9,e,o.StatModifier.MINOR_RESILIENCE)),t.xp6(2),t.Q6J("ngVar",t.xi3(8,12,e,o.StatModifier.MINOR_RECOVERY)),t.xp6(2),t.Q6J("ngVar",t.xi3(10,15,e,o.StatModifier.MINOR_DISCIPLINE)),t.xp6(2),t.Q6J("ngVar",t.xi3(12,18,e,o.StatModifier.MINOR_INTELLECT)),t.xp6(2),t.Q6J("ngVar",t.xi3(14,21,e,o.StatModifier.MINOR_STRENGTH))}}function li(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd710")}}function ci(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,li,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function mi(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd710")}}function di(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,mi,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function ui(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd710")}}function pi(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,ui,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function gi(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd710")}}function _i(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,gi,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function fi(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd710")}}function hi(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,fi,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function xi(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd710")}}function Ti(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,xi,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function yi(n,i){if(1&n&&(t.TgZ(0,"tr")(1,"td"),t._uU(2,"Major Mods"),t.qZA(),t.YNc(3,ci,2,1,"td",8),t.ALo(4,"count"),t.YNc(5,di,2,1,"td",8),t.ALo(6,"count"),t.YNc(7,pi,2,1,"td",8),t.ALo(8,"count"),t.YNc(9,_i,2,1,"td",8),t.ALo(10,"count"),t.YNc(11,hi,2,1,"td",8),t.ALo(12,"count"),t.YNc(13,Ti,2,1,"td",8),t.ALo(14,"count"),t.qZA()),2&n){const e=i.ngVar,o=t.oxw();t.xp6(3),t.Q6J("ngVar",t.xi3(4,6,e,o.StatModifier.MAJOR_MOBILITY)),t.xp6(2),t.Q6J("ngVar",t.xi3(6,9,e,o.StatModifier.MAJOR_RESILIENCE)),t.xp6(2),t.Q6J("ngVar",t.xi3(8,12,e,o.StatModifier.MAJOR_RECOVERY)),t.xp6(2),t.Q6J("ngVar",t.xi3(10,15,e,o.StatModifier.MAJOR_DISCIPLINE)),t.xp6(2),t.Q6J("ngVar",t.xi3(12,18,e,o.StatModifier.MAJOR_INTELLECT)),t.xp6(2),t.Q6J("ngVar",t.xi3(14,21,e,o.StatModifier.MAJOR_STRENGTH))}}function bi(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd73")}}function Ci(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,bi,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function vi(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd73")}}function Ai(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,vi,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function wi(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd73")}}function Zi(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,wi,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function Si(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd73")}}function Ii(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,Si,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function Oi(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd73")}}function Mi(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,Oi,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function ki(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd73")}}function Di(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,ki,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function Ui(n,i){if(1&n&&(t.ynx(0),t.TgZ(1,"tr")(2,"td"),t._uU(3,"Artifice Mods"),t.qZA(),t.YNc(4,Ci,2,1,"td",8),t.ALo(5,"count"),t.YNc(6,Ai,2,1,"td",8),t.ALo(7,"count"),t.YNc(8,Zi,2,1,"td",8),t.ALo(9,"count"),t.YNc(10,Ii,2,1,"td",8),t.ALo(11,"count"),t.YNc(12,Mi,2,1,"td",8),t.ALo(13,"count"),t.YNc(14,Di,2,1,"td",8),t.ALo(15,"count"),t.qZA(),t.BQk()),2&n){const e=i.ngVar,o=t.oxw();t.xp6(4),t.Q6J("ngVar",t.xi3(5,6,e,o.StatModifier.ARTIFICE_MOBILITY)),t.xp6(2),t.Q6J("ngVar",t.xi3(7,9,e,o.StatModifier.ARTIFICE_RESILIENCE)),t.xp6(2),t.Q6J("ngVar",t.xi3(9,12,e,o.StatModifier.ARTIFICE_RECOVERY)),t.xp6(2),t.Q6J("ngVar",t.xi3(11,15,e,o.StatModifier.ARTIFICE_DISCIPLINE)),t.xp6(2),t.Q6J("ngVar",t.xi3(13,18,e,o.StatModifier.ARTIFICE_INTELLECT)),t.xp6(2),t.Q6J("ngVar",t.xi3(15,21,e,o.StatModifier.ARTIFICE_STRENGTH))}}function Ei(n,i){if(1&n&&(t.TgZ(0,"tr",56)(1,"td"),t._uU(2,"Total"),t.qZA(),t.TgZ(3,"td"),t._uU(4),t._UZ(5,"img",47),t.qZA(),t.TgZ(6,"td"),t._uU(7),t._UZ(8,"img",48),t.qZA(),t.TgZ(9,"td"),t._uU(10),t._UZ(11,"img",49),t.qZA(),t.TgZ(12,"td"),t._uU(13),t._UZ(14,"img",50),t.qZA(),t.TgZ(15,"td"),t._uU(16),t._UZ(17,"img",51),t.qZA(),t.TgZ(18,"td"),t._uU(19),t._UZ(20,"img",52),t.qZA()()),2&n){const e=i.ngVar,o=t.oxw();t.xp6(4),t.hij(" ",e[o.ArmorStat.Mobility]," "),t.xp6(3),t.hij(" ",e[o.ArmorStat.Resilience]," "),t.xp6(3),t.hij(" ",e[o.ArmorStat.Recovery]," "),t.xp6(3),t.hij(" ",e[o.ArmorStat.Discipline]," "),t.xp6(3),t.hij(" ",e[o.ArmorStat.Intellect]," "),t.xp6(3),t.hij(" ",e[o.ArmorStat.Strength]," ")}}function Ri(n,i){if(1&n&&(t.TgZ(0,"span",64),t._UZ(1,"img",65),t._uU(2),t.ALo(3,"number"),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(2),t.hij(" ",t.lcZ(3,1,e.glimmer)," ")}}function Pi(n,i){if(1&n&&(t.TgZ(0,"span",66),t._UZ(1,"img",67),t._uU(2),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(2),t.hij(" ",e.shards," ")}}function Ni(n,i){if(1&n&&(t.TgZ(0,"span",68),t._UZ(1,"img",69),t._uU(2),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(2),t.hij(" ",e.core," ")}}function qi(n,i){if(1&n&&(t.TgZ(0,"span",70),t._UZ(1,"img",71),t._uU(2),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(2),t.hij(" ",e.prism," ")}}function Ji(n,i){if(1&n&&(t.TgZ(0,"span",72),t._UZ(1,"img",73),t._uU(2),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(2),t.hij(" ",e.ascshard," ")}}function Yi(n,i){if(1&n&&(t.TgZ(0,"div",58),t._uU(1," Total material cost: "),t.YNc(2,Ri,4,3,"span",59),t.YNc(3,Pi,3,1,"span",60),t.YNc(4,Ni,3,1,"span",61),t.YNc(5,qi,3,1,"span",62),t.YNc(6,Ji,3,1,"span",63),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(2),t.Q6J("ngIf",e.glimmer>0),t.xp6(1),t.Q6J("ngIf",e.shards>0),t.xp6(1),t.Q6J("ngIf",e.core>0),t.xp6(1),t.Q6J("ngIf",e.prism>0),t.xp6(1),t.Q6J("ngIf",e.ascshard>0)}}function Li(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Yi,7,5,"div",57),t.BQk()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e.total>0)}}function Fi(n,i){if(1&n){const e=t.EpF();t.ynx(0),t.TgZ(1,"button",74),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.openSnackBar("Copied the DIM search query to your clipboard."))}),t._uU(2," Copy DIM query to clipboard "),t.qZA(),t.BQk()}if(2&n){const e=i.ngVar;t.xp6(1),t.Q6J("cdkCopyToClipboard",e)}}function Qi(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1," and use a masterworked class item"),t.qZA())}function Bi(n,i){if(1&n&&(t.TgZ(0,"li"),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.hij(" ",e.name," ")}}function Vi(n,i){if(1&n&&(t.TgZ(0,"li"),t._uU(1," Masterwork these items: "),t.TgZ(2,"ul"),t.YNc(3,Bi,2,1,"li",2),t.qZA()()),2&n){const e=t.oxw().ngVar;t.xp6(3),t.Q6J("ngForOf",e)}}function Hi(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Vi,4,1,"li",3),t.BQk()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e.length>0)}}function Wi(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(3).ngVar;t.xp6(1),t.hij("",e," minor")}}function ji(n,i){1&n&&(t.ynx(0),t._uU(1," and"),t.BQk())}function zi(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(1),t.hij(" ",e," major ")}}function Gi(n,i){1&n&&(t.ynx(0),t._uU(1,"s"),t.BQk())}function Ki(n,i){if(1&n&&(t.TgZ(0,"li",55),t.YNc(1,Wi,2,1,"span",3),t.YNc(2,ji,2,0,"ng-container",3),t.YNc(3,zi,2,1,"span",3),t._uU(4," Mobility Mod"),t.YNc(5,Gi,2,0,"ng-container",3),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o>0),t.xp6(1),t.Q6J("ngIf",o>0&&e>0),t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(2),t.Q6J("ngIf",o+e>1)}}function $i(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Ki,6,4,"li",54),t.BQk()),2&n){const e=i.ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o+e>0)}}function Xi(n,i){if(1&n&&(t.ynx(0),t.YNc(1,$i,2,1,"ng-container",8),t.ALo(2,"count"),t.BQk()),2&n){const e=t.oxw().ngVar,o=t.oxw(2);t.xp6(1),t.Q6J("ngVar",t.xi3(2,1,e,o.StatModifier.MAJOR_MOBILITY))}}function ta(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(3).ngVar;t.xp6(1),t.hij("",e," minor")}}function ea(n,i){1&n&&(t.ynx(0),t._uU(1," and"),t.BQk())}function na(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(1),t.hij(" ",e," major ")}}function oa(n,i){1&n&&(t.ynx(0),t._uU(1,"s"),t.BQk())}function ia(n,i){if(1&n&&(t.TgZ(0,"li",55),t.YNc(1,ta,2,1,"span",3),t.YNc(2,ea,2,0,"ng-container",3),t.YNc(3,na,2,1,"span",3),t._uU(4," Resilience Mod"),t.YNc(5,oa,2,0,"ng-container",3),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o>0),t.xp6(1),t.Q6J("ngIf",o>0&&e>0),t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(2),t.Q6J("ngIf",o+e>1)}}function aa(n,i){if(1&n&&(t.ynx(0),t.YNc(1,ia,6,4,"li",54),t.BQk()),2&n){const e=i.ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o+e>0)}}function sa(n,i){if(1&n&&(t.ynx(0),t.YNc(1,aa,2,1,"ng-container",8),t.ALo(2,"count"),t.BQk()),2&n){const e=t.oxw().ngVar,o=t.oxw(2);t.xp6(1),t.Q6J("ngVar",t.xi3(2,1,e,o.StatModifier.MAJOR_RESILIENCE))}}function ra(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(3).ngVar;t.xp6(1),t.hij("",e," minor")}}function la(n,i){1&n&&(t.ynx(0),t._uU(1," and"),t.BQk())}function ca(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(1),t.hij(" ",e," major ")}}function ma(n,i){1&n&&(t.ynx(0),t._uU(1,"s"),t.BQk())}function da(n,i){if(1&n&&(t.TgZ(0,"li",55),t.YNc(1,ra,2,1,"span",3),t.YNc(2,la,2,0,"ng-container",3),t.YNc(3,ca,2,1,"span",3),t._uU(4," Recovery Mod"),t.YNc(5,ma,2,0,"ng-container",3),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o>0),t.xp6(1),t.Q6J("ngIf",o>0&&e>0),t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(2),t.Q6J("ngIf",o+e>1)}}function ua(n,i){if(1&n&&(t.ynx(0),t.YNc(1,da,6,4,"li",54),t.BQk()),2&n){const e=i.ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o+e>0)}}function pa(n,i){if(1&n&&(t.ynx(0),t.YNc(1,ua,2,1,"ng-container",8),t.ALo(2,"count"),t.BQk()),2&n){const e=t.oxw().ngVar,o=t.oxw(2);t.xp6(1),t.Q6J("ngVar",t.xi3(2,1,e,o.StatModifier.MAJOR_RECOVERY))}}function ga(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(3).ngVar;t.xp6(1),t.hij("",e," minor")}}function _a(n,i){1&n&&(t.ynx(0),t._uU(1," and"),t.BQk())}function fa(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(1),t.hij(" ",e," major ")}}function ha(n,i){1&n&&(t.ynx(0),t._uU(1,"s"),t.BQk())}function xa(n,i){if(1&n&&(t.TgZ(0,"li",55),t.YNc(1,ga,2,1,"span",3),t.YNc(2,_a,2,0,"ng-container",3),t.YNc(3,fa,2,1,"span",3),t._uU(4," Discipline Mod"),t.YNc(5,ha,2,0,"ng-container",3),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o>0),t.xp6(1),t.Q6J("ngIf",o>0&&e>0),t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(2),t.Q6J("ngIf",o+e>1)}}function Ta(n,i){if(1&n&&(t.ynx(0),t.YNc(1,xa,6,4,"li",54),t.BQk()),2&n){const e=i.ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o+e>0)}}function ya(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Ta,2,1,"ng-container",8),t.ALo(2,"count"),t.BQk()),2&n){const e=t.oxw().ngVar,o=t.oxw(2);t.xp6(1),t.Q6J("ngVar",t.xi3(2,1,e,o.StatModifier.MAJOR_DISCIPLINE))}}function ba(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(3).ngVar;t.xp6(1),t.hij("",e," minor")}}function Ca(n,i){1&n&&(t.ynx(0),t._uU(1," and"),t.BQk())}function va(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(1),t.hij(" ",e," major ")}}function Aa(n,i){1&n&&(t.ynx(0),t._uU(1,"s"),t.BQk())}function wa(n,i){if(1&n&&(t.TgZ(0,"li",55),t.YNc(1,ba,2,1,"span",3),t.YNc(2,Ca,2,0,"ng-container",3),t.YNc(3,va,2,1,"span",3),t._uU(4," Intellect Mod"),t.YNc(5,Aa,2,0,"ng-container",3),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o>0),t.xp6(1),t.Q6J("ngIf",o>0&&e>0),t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(2),t.Q6J("ngIf",o+e>1)}}function Za(n,i){if(1&n&&(t.ynx(0),t.YNc(1,wa,6,4,"li",54),t.BQk()),2&n){const e=i.ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o+e>0)}}function Sa(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Za,2,1,"ng-container",8),t.ALo(2,"count"),t.BQk()),2&n){const e=t.oxw().ngVar,o=t.oxw(2);t.xp6(1),t.Q6J("ngVar",t.xi3(2,1,e,o.StatModifier.MAJOR_INTELLECT))}}function Ia(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(3).ngVar;t.xp6(1),t.hij("",e," minor")}}function Oa(n,i){1&n&&(t.ynx(0),t._uU(1," and"),t.BQk())}function Ma(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(1),t.hij(" ",e," major ")}}function ka(n,i){1&n&&(t.ynx(0),t._uU(1,"s"),t.BQk())}function Da(n,i){if(1&n&&(t.TgZ(0,"li",55),t.YNc(1,Ia,2,1,"span",3),t.YNc(2,Oa,2,0,"ng-container",3),t.YNc(3,Ma,2,1,"span",3),t._uU(4," Strength Mod"),t.YNc(5,ka,2,0,"ng-container",3),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o>0),t.xp6(1),t.Q6J("ngIf",o>0&&e>0),t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(2),t.Q6J("ngIf",o+e>1)}}function Ua(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Da,6,4,"li",54),t.BQk()),2&n){const e=i.ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o+e>0)}}function Ea(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Ua,2,1,"ng-container",8),t.ALo(2,"count"),t.BQk()),2&n){const e=t.oxw().ngVar,o=t.oxw(2);t.xp6(1),t.Q6J("ngVar",t.xi3(2,1,e,o.StatModifier.MAJOR_STRENGTH))}}function Ra(n,i){if(1&n&&(t.TgZ(0,"ul"),t.YNc(1,Xi,3,4,"ng-container",8),t.ALo(2,"count"),t.YNc(3,sa,3,4,"ng-container",8),t.ALo(4,"count"),t.YNc(5,pa,3,4,"ng-container",8),t.ALo(6,"count"),t.YNc(7,ya,3,4,"ng-container",8),t.ALo(8,"count"),t.YNc(9,Sa,3,4,"ng-container",8),t.ALo(10,"count"),t.YNc(11,Ea,3,4,"ng-container",8),t.ALo(12,"count"),t.qZA()),2&n){const e=i.ngVar,o=t.oxw(2);t.xp6(1),t.Q6J("ngVar",t.xi3(2,6,e,o.StatModifier.MINOR_MOBILITY)),t.xp6(2),t.Q6J("ngVar",t.xi3(4,9,e,o.StatModifier.MINOR_RESILIENCE)),t.xp6(2),t.Q6J("ngVar",t.xi3(6,12,e,o.StatModifier.MINOR_RECOVERY)),t.xp6(2),t.Q6J("ngVar",t.xi3(8,15,e,o.StatModifier.MINOR_DISCIPLINE)),t.xp6(2),t.Q6J("ngVar",t.xi3(10,18,e,o.StatModifier.MINOR_INTELLECT)),t.xp6(2),t.Q6J("ngVar",t.xi3(12,21,e,o.StatModifier.MINOR_STRENGTH))}}function Pa(n,i){if(1&n&&(t.TgZ(0,"li"),t._uU(1,"Equip the following stat mods: "),t.YNc(2,Ra,13,24,"ul",8),t.qZA()),2&n){const e=t.oxw();t.xp6(2),t.Q6J("ngVar",null==e.element?null:e.element.mods)}}function Na(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1," Arc "),t.qZA())}function qa(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1," Solar "),t.qZA())}function Ja(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1," Void "),t.qZA())}function Ya(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1," Stasis "),t.qZA())}function La(n,i){if(1&n&&t._UZ(0,"img",76,35),2&n){const e=t.oxw(3).ngVar,o=t.oxw(3);t.MGl("matTooltip","",o.getAffinityName(e.requiredArmorAffinity)," affinity"),t.Q6J("src",o.getAffinityUrl(e.requiredArmorAffinity),t.LSH)}}function Fa(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.YNc(2,Na,2,0,"span",3),t.YNc(3,qa,2,0,"span",3),t.YNc(4,Ja,2,0,"span",3),t.YNc(5,Ya,2,0,"span",3),t.YNc(6,La,2,2,"img",75),t._uU(7," ) "),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(1),t.hij(" ( ",e.cost," "),t.xp6(1),t.Q6J("ngIf",1===e.requiredArmorAffinity),t.xp6(1),t.Q6J("ngIf",2===e.requiredArmorAffinity),t.xp6(1),t.Q6J("ngIf",3===e.requiredArmorAffinity),t.xp6(1),t.Q6J("ngIf",6===e.requiredArmorAffinity),t.xp6(1),t.Q6J("ngIf",0!==e.requiredArmorAffinity)}}function Qa(n,i){if(1&n&&(t.TgZ(0,"li"),t._uU(1),t.YNc(2,Fa,8,6,"span",3),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij(" Equip the mod ",e.name," "),t.xp6(1),t.Q6J("ngIf",0!==e.requiredArmorAffinity)}}function Ba(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Qa,3,2,"li",3),t.BQk()),2&n){const e=i.ngVar,o=t.oxw(3);t.xp6(1),t.Q6J("ngIf",e.type===o.ModifierType.CombatStyleMod)}}function Va(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Ba,2,1,"ng-container",8),t.BQk()),2&n){const e=i.$implicit,o=t.oxw(2);t.xp6(1),t.Q6J("ngVar",o.ModInformation[e])}}function Ha(n,i){if(1&n&&(t.TgZ(0,"li"),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij(" Equip the stasis fragment ",e.name," ")}}function Wa(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Ha,2,1,"li",3),t.BQk()),2&n){const e=i.ngVar,o=t.oxw(3);t.xp6(1),t.Q6J("ngIf",e.type===o.ModifierType.Stasis)}}function ja(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Wa,2,1,"ng-container",8),t.BQk()),2&n){const e=i.$implicit,o=t.oxw(2);t.xp6(1),t.Q6J("ngVar",o.ModInformation[e])}}function za(n,i){if(1&n&&(t.TgZ(0,"li"),t._uU(1," Equip any mods and fragments that you enabled in the configuration: "),t.TgZ(2,"ul"),t.YNc(3,Va,2,1,"ng-container",2),t.YNc(4,ja,2,1,"ng-container",2),t.qZA()()),2&n){const e=t.oxw();t.xp6(3),t.Q6J("ngForOf",e.config_enabledMods),t.xp6(1),t.Q6J("ngForOf",e.config_enabledMods)}}function Ga(n,i){if(1&n&&t._UZ(0,"div",80),2&n){const e=t.oxw().$implicit;t.Tol(e)}}function Ka(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,Ga,1,2,"div",79),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.Q6J("ngIf",!!e)}}function $a(n,i){if(1&n&&(t.TgZ(0,"tr")(1,"td"),t._uU(2),t.qZA(),t.TgZ(3,"td"),t._UZ(4,"img",77),t.qZA(),t.YNc(5,Ka,2,1,"td",2),t.TgZ(6,"td",78),t._uU(7),t.qZA()()),2&n){const e=i.$implicit,o=t.oxw();t.xp6(2),t.Oqu(o.ArmorStatNames[e]),t.xp6(2),t.s9C("alt",o.ArmorStatNames[e]),t.s9C("src",o.ArmorStatIconUrls[e],t.LSH),t.xp6(1),t.Q6J("ngForOf",o.getColumnForStat(e)),t.xp6(2),t.Oqu(o.getTiersForStat(e))}}function Xa(n,i){if(1&n&&(t.TgZ(0,"tr")(1,"td"),t._uU(2,"Exotic:"),t.qZA(),t.TgZ(3,"td",81),t._uU(4),t.qZA(),t.TgZ(5,"td",82)(6,"div",83),t._UZ(7,"img",84)(8,"img",85),t.qZA()()()),2&n){const e=t.oxw().ngVar;t.xp6(4),t.Oqu(e[0].name),t.xp6(3),t.MGl("src","https://bungie.net/",e[0].icon,"",t.LSH),t.xp6(1),t.MGl("src","https://bungie.net/",e[0].watermark,"",t.LSH)}}function ts(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Xa,9,3,"tr",3),t.BQk()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e[0])}}let es=(()=>{class n{constructor(e,o,a,s){this.config=e,this._snackBar=o,this.bungieApi=a,this.membership=s,this.armorStatIds=[0,1,2,3,4,5],this.ModifierType=h.O,this.ModInformation=ut,this.ArmorStatNames=r.Mi,this.ArmorStatIconUrls=r.lp,this.ArmorStat=r.WB,this.StatModifier=r.iV,this.config_characterClass=0,this.config_assumeLegendariesMasterworked=!1,this.config_assumeExoticsMasterworked=!1,this.config_assumeClassItemMasterworked=!1,this.config_enabledMods=[],this.DIMUrl="",this.configValues=[0,0,0,0,0,0],this.element=null,this.ngUnsubscribe=new nt.xQ}buildItemIdString(e){let o=e?.items.flat().map(s=>`id:'${s.itemInstanceId}'`).join(" or "),a=["is:classitem"];return e?.classItem.perk!=r.Pn.None&&e?.classItem.perk!=r.Pn.COUNT&&a.push(r.ID[e?.classItem.perk||0]),a.length>1&&(o+=` or (${a.join(" ")})`),o}openSnackBar(e){this._snackBar.open(e,"",{duration:2500,politeness:"polite"})}ngOnInit(){this.config.configuration.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(e=>{this.config_characterClass=e.characterClass,this.config_assumeLegendariesMasterworked=e.assumeLegendariesMasterworked,this.config_assumeExoticsMasterworked=e.assumeExoticsMasterworked,this.config_assumeClassItemMasterworked=e.assumeClassItemMasterworked,this.config_enabledMods=e.enabledMods,this.configValues=e.enabledMods.reduce((o,a)=>o.concat(ut[a].bonus),[]).reduce((o,a)=>(a.stat==r.AR.ClassAbilityRegenerationStat?o[[1,0,2][e.characterClass]]+=a.value:o[a.stat]+=a.value,o),[0,0,0,0,0,0]),this.DIMUrl=this.generateDIMLink(e)})}disableAllItems(){this.config.modifyConfiguration(e=>{for(let o of this.element?.items.flat())e.disabledItems.push(o.itemInstanceId)})}disableItem(e){this.config.modifyConfiguration(o=>{o.disabledItems.push(e)})}get mayAnyItemBeBugged(){return(this.element?.items.flat().filter(e=>e.mayBeBugged).length||0)>0}getCharacterId(){var e=this;return(0,m.Z)(function*(){let o=yield e.membership.getCharacters();return o=o.filter(a=>a.clazz==e.config_characterClass),0==o.length?(e.openSnackBar("Error: Could not find a character to move the items to."),null):o[0].characterId})()}moveItems(e=!1){var o=this;return(0,m.Z)(function*(){for(let d of(o.element?.items||[]).flat())d.transferState=ht.WAITING_FOR_TRANSFER;let a=yield o.getCharacterId();if(!a)return;let s=!0,l=(o.element?.items||[]).flat().sort(d=>d.exotic?1:-1);for(let d of l){d.transferState=ht.TRANSFERRING;let u=yield o.bungieApi.transferItem(d.itemInstanceId,a,e);d.transferState=u?ht.TRANSFERRED:ht.ERROR_DURING_TRANSFER,u||(s=!1)}o.openSnackBar(s?"Success! Moved all the items.":"Some of the items could not be moved. Make sure that there is enough space in the specific slot. This tool will not move items out of your inventory.")})()}getItemsThatMustBeMasterworked(){return this.element?.items.flat().filter(e=>!(e.masterworked||e.exotic&&!this.config_assumeExoticsMasterworked||!e.exotic&&!this.config_assumeLegendariesMasterworked))}calculateRequiredMasterworkCost(){let e={shards:0,glimmer:0,core:0,prism:0,ascshard:0,total:0},o=this.element?.items.flat()||[];o=o.filter(a=>a.energyLevel<10&&(a.exotic&&this.config_assumeExoticsMasterworked||!a.exotic&&this.config_assumeLegendariesMasterworked));for(let a of o){let s=a.exotic?Kn:Gn;for(let l=a.energyLevel;l<10;l++)for(let d in s[l+1])e[d]+=s[l+1][d],e.total++}return e}generateDIMLink(e){const o=[],a=[];for(let p of this.config_enabledMods){const b=ut[p];b.type===h.O.CombatStyleMod?o.push(b.hash):a.push(b.hash)}if(this.element)for(let p of this.element?.mods||[])o.push(r.K9[p][3]);var s={statConstraints:[{statHash:2996146975,minTier:e.minimumStatTiers[r.WB.Mobility].value,maxTier:e.minimumStatTiers[r.WB.Mobility].fixed?e.minimumStatTiers[r.WB.Mobility].value:10},{statHash:392767087,minTier:e.minimumStatTiers[r.WB.Resilience].value,maxTier:e.minimumStatTiers[r.WB.Resilience].fixed?e.minimumStatTiers[r.WB.Resilience].value:10},{statHash:1943323491,minTier:e.minimumStatTiers[r.WB.Recovery].value,maxTier:e.minimumStatTiers[r.WB.Recovery].fixed?e.minimumStatTiers[r.WB.Recovery].value:10},{statHash:1735777505,minTier:e.minimumStatTiers[r.WB.Discipline].value,maxTier:e.minimumStatTiers[r.WB.Recovery].fixed?e.minimumStatTiers[r.WB.Recovery].value:10},{statHash:144602215,minTier:e.minimumStatTiers[r.WB.Intellect].value,maxTier:e.minimumStatTiers[r.WB.Intellect].fixed?e.minimumStatTiers[r.WB.Intellect].value:10},{statHash:4244567218,minTier:e.minimumStatTiers[r.WB.Strength].value,maxTier:e.minimumStatTiers[r.WB.Strength].fixed?e.minimumStatTiers[r.WB.Strength].value:10}],mods:o,assumeArmorMasterwork:e.assumeLegendariesMasterworked?e.assumeExoticsMasterworked?3:2:1};if(1==e.selectedExotics.length)s.exoticArmorHash=e.selectedExotics[0];else{var l=this.element?.exotic;if(l&&1==l.length){var d=l[0].hash;d&&(s.exoticArmorHash=parseInt(d,10))}}const u={id:"d2ap",name:"D2ArmorPicker Loadout",classType:e.characterClass,parameters:s,equipped:(this.element?.items||[]).map(([p])=>({id:p.itemInstanceId,hash:p.hash})),unequipped:[],clearSpace:!1};if(a.length){const p=a.reduce((D,O,E)=>(D[E+7]=O,D),{}),Z={[U.Hunter]:{[h.O.Stasis]:873720784,[h.O.Void]:2453351420,[h.O.Solar]:2240888816,[h.O.Arc]:2328211300,[h.O.Strand]:3785442599},[U.Titan]:{[h.O.Stasis]:613647804,[h.O.Void]:2842471112,[h.O.Solar]:2550323932,[h.O.Arc]:2932390016,[h.O.Strand]:242419885},[U.Warlock]:{[h.O.Stasis]:3291545503,[h.O.Void]:2849050827,[h.O.Solar]:3941205951,[h.O.Arc]:3168997075,[h.O.Strand]:4204413574}}[e.characterClass]?.[e.selectedModElement];Z&&u.equipped.push({id:"12345",hash:Z,socketOverrides:p})}return"https://app.destinyitemmanager.com/loadouts?loadout="+encodeURIComponent(JSON.stringify(u))}goToDIM(){window.open(this.DIMUrl,"blank")}getTiersForStat(e){return Math.floor((this.element?.stats[e]||0)/10)}getColumnForStat(e){var o=Math.floor(this.configValues[e]/10);let a=[],s=0,l=Math.ceil((5*(this.element?.mods.filter(u=>u==1+2*e)||[]).length+10*(this.element?.mods.filter(u=>u==2+2*e)||[]).length)/10);var d=this.getTiersForStat(e)-o-l;for(let u=0;u10?" over100":""));for(let u=0;u10?" over100":""));for(let u=0;u10?" over100":""));for(;s++<10;)a.push("");return a}getRequiredMasterworkBonus(){return 2*(this.element?.items.filter(e=>!e[0].masterworked&&!e[0].exotic&&this.config_assumeLegendariesMasterworked||e[0].exotic&&this.config_assumeExoticsMasterworked)||[]).length}getAffinityName(e){return r.vr[e]}getAffinityUrl(e){return r.Sy[e]}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(B),t.Y36(Vt.ux),t.Y36(Qt),t.Y36(Rt))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-expanded-result-content"]],inputs:{element:"element"},decls:124,vars:26,consts:[["class","invalid-item-box mat-elevation-z4","color","warn",4,"ngIf"],[1,"specificStatTable"],[4,"ngFor","ngForOf"],[4,"ngIf"],["class","result-total-gear result-total highlight-row",4,"ngVar"],[1,"result-config"],[3,"class",4,"ngIf"],["class","highlight-row",4,"ngVar"],[4,"ngVar"],["class","result-total-all result-total highlight-row",4,"ngVar"],[1,"buttonContainer"],["color","primary","mat-raised-button","","matTooltip","Use this button to open this build as a DIM Loadout.",3,"click"],["mat-stroked-button","","matTooltip","Click this button to move Items to your inventory. Make sure that you have enough space in your inventory. This tool will not move any items out of your inventory.",3,"click"],["mat-stroked-button","","matTooltip","Click this button to equip the Items. Make sure that you have enough space in your inventory. This tool will not move any items out of your inventory.",3,"click"],[1,"mat-elevation-z6"],[1,"stat-preview"],["colspan","2"],[1,"tier-column"],[1,"legend"],[1,"energy-bar","normal"],["colspan","3"],[1,"energy-bar","mod"],["colspan","4"],[1,"energy-bar","config"],["color","warn",1,"invalid-item-box","mat-elevation-z4"],[3,"highlight-row",4,"ngFor","ngForOf"],["class","item-name-mw","matTooltip","This item is already masterworked.",4,"ngIf"],[1,"icon-column"],[1,"item-icon-container",3,"itemTooltip"],[1,"item-icon",3,"itemHash","masterworked","source"],[2,"position","relative","width","25px"],[3,"perk"],["mat-icon-button","","matTooltip","Disable this item from the results. It will not be used to generate results anymore, but you can always undo this.",1,"item-info-menu-btn",3,"click"],["class","icon-column",4,"ngIf"],["matTooltip","This item is already masterworked.",1,"item-name-mw"],["tooltip","matTooltip"],[1,"item-stat-container"],[1,"item-stat-value"],["color","primary","diameter","22","mode","indeterminate",1,"item-loading-spinner"],["aria-hidden","false","aria-label","Success","inline","","matTooltip","Item successfully moved to inventory.",1,"item-moved-icon"],["aria-hidden","false","aria-label","Error","inline","","matTooltip","This item could not be moved. Make sure that there is enough space on your character. This tool will not move items out of your inventory.",1,"report-problem-icon"],["aria-hidden","false","aria-label","Error","inline","","matTooltip","The stats of this item may be incorrect. Make sure that you remove every positive or negative stat modifier from this item.",1,"report-problem-icon"],["matTooltip","Class item should be masterworked.",1,"item-name-mw"],[1,"text-mw"],["mat-icon-button","","matTooltip","Disable all four items above from the results. They will not be used to generate results anymore, but you can always undo this.",1,"item-info-menu-btn","report-problem-icon",3,"click"],["colspan","6",1,"text-centered"],[1,"result-total-gear","result-total","highlight-row"],["alt","Mobility","src","https://www.bungie.net/common/destiny2_content/icons/e26e0e93a9daf4fdd21bf64eb9246340.png",1,"statIcon"],["alt","Resilience","src","https://www.bungie.net/common/destiny2_content/icons/202ecc1c6febeb6b97dafc856e863140.png",1,"statIcon"],["alt","Recovery","src","https://www.bungie.net/common/destiny2_content/icons/128eee4ee7fc127851ab32eac6ca91cf.png",1,"statIcon"],["alt","Discipline","src","https://www.bungie.net/common/destiny2_content/icons/79be2d4adef6a19203f7385e5c63b45b.png",1,"statIcon"],["alt","Intellect","src","https://www.bungie.net/common/destiny2_content/icons/d1c154469670e9a592c9d4cbdcae5764.png",1,"statIcon"],["alt","Strength","src","https://www.bungie.net/common/destiny2_content/icons/ea5af04ccd6a3470a44fd7bb0f66e2f7.png",1,"statIcon"],[1,"highlight-row"],["class","positive",4,"ngIf"],[1,"positive"],[1,"result-total-all","result-total","highlight-row"],["style","margin-top: 10px",4,"ngIf"],[2,"margin-top","10px"],["class","currency-icon-container","matTooltip","Glimmer",4,"ngIf"],["class","currency-icon-container","matTooltip","Legendary Shards",4,"ngIf"],["class","currency-icon-container","matTooltip","Enhancement Cores",4,"ngIf"],["class","currency-icon-container","matTooltip","Enhancement Prism",4,"ngIf"],["class","currency-icon-container","matTooltip","Ascendant Shard",4,"ngIf"],["matTooltip","Glimmer",1,"currency-icon-container"],["alt","Glimmer","src","https://www.bungie.net/common/destiny2_content/icons/88993eaeedad32f42072df6f77f47311.png",1,"currency-icon"],["matTooltip","Legendary Shards",1,"currency-icon-container"],["alt","Legendary Shards","src","https://www.bungie.net/common/destiny2_content/icons/18ddd0bdac721b8eb8e6f8ec2b3e813c.png",1,"currency-icon"],["matTooltip","Enhancement Cores",1,"currency-icon-container"],["alt","Enhancement Cores","src","https://www.bungie.net/common/destiny2_content/icons/0a4eb695ed55b4e720ddc401460cc0f9.jpg",1,"currency-icon"],["matTooltip","Enhancement Prism",1,"currency-icon-container"],["alt","Enhancement Prism","src","https://www.bungie.net/common/destiny2_content/icons/dea2a35badf7466d4c2c2697ce6e8d87.jpg",1,"currency-icon"],["matTooltip","Ascendant Shard",1,"currency-icon-container"],["alt","Ascendant Shard","src","https://www.bungie.net/common/destiny2_content/icons/0271d214fc3ec91b3def799a4b286b46.jpg",1,"currency-icon"],["color","primary","mat-raised-button","","matTooltip","Use this button to copy a DIM search query to your clip board. It allows you to search the given items in DIM.",3,"cdkCopyToClipboard","click"],["class","element-icon-mini",3,"src","matTooltip",4,"ngIf"],[1,"element-icon-mini",3,"src","matTooltip"],[2,"height","18px",3,"alt","src"],[1,"sum-tiers"],["class","energy-bar",3,"class",4,"ngIf"],[1,"energy-bar"],["colspan","10"],["colspan","1"],[1,"item-icon-container"],[1,"item-icon",3,"src"],[1,"item-icon-overlay",3,"src"]],template:function(e,o){1&e&&(t.TgZ(0,"div"),t.YNc(1,xo,4,0,"mat-toolbar",0),t._uU(2," This table shows you the expected stats of any item: "),t.TgZ(3,"table",1)(4,"thead")(5,"tr")(6,"th"),t._uU(7,"Name"),t.qZA(),t.TgZ(8,"th"),t._uU(9,"Mobility"),t.qZA(),t.TgZ(10,"th"),t._uU(11,"Resilience"),t.qZA(),t.TgZ(12,"th"),t._uU(13,"Recovery"),t.qZA(),t.TgZ(14,"th"),t._uU(15,"Discipline"),t.qZA(),t.TgZ(16,"th"),t._uU(17,"Intellect"),t.qZA(),t.TgZ(18,"th"),t._uU(19,"Strength"),t.qZA(),t._UZ(20,"th")(21,"th"),t.qZA()(),t.YNc(22,So,2,1,"ng-container",2),t.YNc(23,Io,24,7,"tr",3),t.YNc(24,Oo,11,0,"tr",3),t.YNc(25,Po,9,6,"tr",4),t.TgZ(26,"tr",5)(27,"td"),t._uU(28,"Configuration"),t.qZA(),t.TgZ(29,"td"),t.YNc(30,qo,3,4,"span",6),t.qZA(),t.TgZ(31,"td"),t.YNc(32,Yo,3,4,"span",6),t.qZA(),t.TgZ(33,"td"),t.YNc(34,Fo,3,4,"span",6),t.qZA(),t.TgZ(35,"td"),t.YNc(36,Bo,3,4,"span",6),t.qZA(),t.TgZ(37,"td"),t.YNc(38,Ho,3,4,"span",6),t.qZA(),t.TgZ(39,"td"),t.YNc(40,jo,3,4,"span",6),t.qZA()(),t.YNc(41,ri,15,24,"tr",7),t.YNc(42,yi,15,24,"tr",8),t.YNc(43,Ui,16,24,"ng-container",8),t.YNc(44,Ei,21,6,"tr",9),t.qZA()(),t.YNc(45,Li,2,1,"ng-container",8),t.TgZ(46,"div",10),t.YNc(47,Fi,3,1,"ng-container",8),t.TgZ(48,"button",11),t.NdJ("click",function(){return o.goToDIM()}),t._uU(49," Open Loadout in DIM "),t.qZA(),t._UZ(50,"br"),t.TgZ(51,"small"),t._uU(52,"The following two buttons may not work for some at the moment:"),t.qZA(),t._UZ(53,"br"),t.TgZ(54,"button",12),t.NdJ("click",function(){return o.moveItems()}),t._uU(55," Move items to inventory (beta) "),t.qZA(),t.TgZ(56,"button",13),t.NdJ("click",function(){return o.moveItems(!0)}),t._uU(57," Equip Items (beta) "),t.qZA()(),t.TgZ(58,"mat-accordion")(59,"mat-expansion-panel",14)(60,"mat-expansion-panel-header")(61,"mat-panel-title"),t._uU(62," What to do now? "),t.qZA(),t.TgZ(63,"mat-panel-description"),t._uU(64," Detailed Instructions of to get your loadout ready. "),t.qZA()(),t.TgZ(65,"div")(66,"ol")(67,"li"),t._uU(68," Move all related items into your inventory "),t.YNc(69,Qi,2,0,"span",3),t._uU(70,". "),t.qZA(),t.YNc(71,Hi,2,1,"ng-container",8),t.YNc(72,Pa,3,1,"li",3),t.ALo(73,"count"),t.YNc(74,za,5,2,"li",3),t.qZA()()(),t.TgZ(75,"mat-expansion-panel",14)(76,"mat-expansion-panel-header")(77,"mat-panel-title"),t._uU(78," Stat overview "),t.qZA(),t.TgZ(79,"mat-panel-description"),t._uU(80," Shows a summary of all the stats and where they come from. "),t.qZA()(),t.TgZ(81,"table",15)(82,"tr")(83,"td",16),t._uU(84,"Stat"),t.qZA(),t.TgZ(85,"td",17),t._uU(86,"1"),t.qZA(),t.TgZ(87,"td",17),t._uU(88,"2"),t.qZA(),t.TgZ(89,"td",17),t._uU(90,"3"),t.qZA(),t.TgZ(91,"td",17),t._uU(92,"4"),t.qZA(),t.TgZ(93,"td",17),t._uU(94,"5"),t.qZA(),t.TgZ(95,"td",17),t._uU(96,"6"),t.qZA(),t.TgZ(97,"td",17),t._uU(98,"7"),t.qZA(),t.TgZ(99,"td",17),t._uU(100,"8"),t.qZA(),t.TgZ(101,"td",17),t._uU(102,"9"),t.qZA(),t.TgZ(103,"td",17),t._uU(104,"10"),t.qZA(),t.TgZ(105,"td"),t._uU(106,"Tiers"),t.qZA()(),t.YNc(107,$a,8,5,"tr",2),t.TgZ(108,"tr",18)(109,"td",16),t._uU(110,"Armor"),t.qZA(),t.TgZ(111,"td"),t._UZ(112,"div",19),t.qZA(),t.TgZ(113,"td",20),t._uU(114,"Stat Mod"),t.qZA(),t.TgZ(115,"td"),t._UZ(116,"div",21),t.qZA(),t.TgZ(117,"td",22),t._uU(118,"Fragments & Mods"),t.qZA(),t.TgZ(119,"td"),t._UZ(120,"div",23),t.qZA()(),t.YNc(121,ts,2,1,"ng-container",8),t.qZA()()(),t._UZ(122,"br")(123,"br")),2&e&&(t.xp6(1),t.Q6J("ngIf",o.mayAnyItemBeBugged),t.xp6(21),t.Q6J("ngForOf",null==o.element?null:o.element.items),t.xp6(1),t.Q6J("ngIf",o.config_assumeClassItemMasterworked),t.xp6(1),t.Q6J("ngIf",!o.config_assumeClassItemMasterworked),t.xp6(1),t.Q6J("ngVar",null==o.element?null:o.element.statsNoMods),t.xp6(5),t.Q6J("ngIf",0!==o.configValues[o.ArmorStat.Mobility]),t.xp6(2),t.Q6J("ngIf",0!==o.configValues[o.ArmorStat.Resilience]),t.xp6(2),t.Q6J("ngIf",0!==o.configValues[o.ArmorStat.Recovery]),t.xp6(2),t.Q6J("ngIf",0!==o.configValues[o.ArmorStat.Discipline]),t.xp6(2),t.Q6J("ngIf",0!==o.configValues[o.ArmorStat.Intellect]),t.xp6(2),t.Q6J("ngIf",0!==o.configValues[o.ArmorStat.Strength]),t.xp6(1),t.Q6J("ngVar",null==o.element?null:o.element.mods),t.xp6(1),t.Q6J("ngVar",null==o.element?null:o.element.mods),t.xp6(1),t.Q6J("ngVar",null==o.element?null:o.element.artifice),t.xp6(1),t.Q6J("ngVar",null==o.element?null:o.element.stats),t.xp6(1),t.Q6J("ngVar",o.calculateRequiredMasterworkCost()),t.xp6(2),t.Q6J("ngVar",o.buildItemIdString(o.element)),t.xp6(22),t.Q6J("ngIf",o.config_assumeClassItemMasterworked),t.xp6(2),t.Q6J("ngVar",o.getItemsThatMustBeMasterworked()),t.xp6(1),t.Q6J("ngIf",(null==o.element?null:o.element.mods).length>0&&t.xi3(73,23,null==o.element?null:o.element.mods,o.StatModifier.NONE)<5),t.xp6(2),t.Q6J("ngIf",o.config_enabledMods.length>0),t.xp6(33),t.Q6J("ngForOf",o.armorStatIds),t.xp6(14),t.Q6J("ngVar",null==o.element?null:o.element.exotic))},dependencies:[y.sg,y.O5,g.lW,N.gM,j.Hw,W.Ye,J.pp,J.ib,J.yz,J.yK,J.u4,$n.Ou,wt.i3,Ct,lo,Ht,Wt,y.JJ,ue],styles:[".element-icon[_ngcontent-%COMP%]{width:22px}.element-icon-mini[_ngcontent-%COMP%]{height:12px}.item-loading-spinner[_ngcontent-%COMP%]{width:22px;height:22px;margin-bottom:6px}.item-icon[_ngcontent-%COMP%]{width:22px}.item-icon-overlay[_ngcontent-%COMP%]{width:22px;margin-left:-22px}.item-icon-container[_ngcontent-%COMP%]{position:relative;contain:layout paint style;box-sizing:border-box;width:var(--item-size);transition:opacity .2s,transform .2s;margin-top:-4px}.item-icon-masterwork-overlay[_ngcontent-%COMP%]{pointer-events:none;box-sizing:border-box;top:-1px;left:-1px;border-width:0;height:24px;width:24px;position:absolute;background-repeat:no-repeat;background-position:center;background-size:22px 22px;background-image:url(data:image/png;base64,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)}.negative[_ngcontent-%COMP%]{color:#f08080}.positive[_ngcontent-%COMP%]{color:#6495ed}table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{text-align:right}table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:not(:last-child) td[_ngcontent-%COMP%]{border-bottom:rgba(240,248,255,.08) solid .5px}.result-total-gear[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-bottom:aliceblue solid 1px!important}.result-total-all[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .result-total-gear[_ngcontent-%COMP%] > td[_ngcontent-%COMP%]{border-top:aliceblue double}.buttonContainer[_ngcontent-%COMP%]{margin-top:10px;margin-bottom:10px}.buttonContainer[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:not(:last-of-type){margin-right:6px;margin-bottom:3px}.result-total[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{position:relative;padding-right:14px}.statIcon[_ngcontent-%COMP%]{position:absolute;height:14px;margin-left:2px;top:3px}.item-info-menu-btn[_ngcontent-%COMP%]{height:22px!important;width:22px!important;line-height:22px!important;top:-4px;left:-4px}.item-info-menu-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:22px}.item-moved-icon[_ngcontent-%COMP%]{color:#7fffd4}.report-problem-icon[_ngcontent-%COMP%]{color:#f08080}.invalid-item-box[_ngcontent-%COMP%]{text-align:center;margin-right:auto;margin-left:auto;width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content;font-size:15px;line-height:20px}.text-centered[_ngcontent-%COMP%]{text-align:center!important}.specificStatTable[_ngcontent-%COMP%]{border-collapse:separate;border-spacing:0 0}.highlight-row[_ngcontent-%COMP%]{background-color:#6e6e6e21}tr.legend[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding-top:3px}.tier-column[_ngcontent-%COMP%]{min-width:27px}.energy-bar[_ngcontent-%COMP%]{width:25px;height:10px;border:white solid 2px;position:relative}.energy-bar.normal[_ngcontent-%COMP%]{background-color:#fff}.energy-bar.mod[_ngcontent-%COMP%]{background-color:gray;border:white ridge 2px}.energy-bar.config[_ngcontent-%COMP%]{background-color:#a3b1c2;border:white ridge 2px}.energy-bar.over100[_ngcontent-%COMP%]{border-color:#ff5e5e;width:10px}.item-stat-container[_ngcontent-%COMP%]{position:relative}.item-stat-bonus[_ngcontent-%COMP%]{position:absolute;right:20px;font-size:x-small}.item-name-mw[_ngcontent-%COMP%]{text-decoration:underline;-webkit-text-decoration-color:#ffbc00;text-decoration-color:#ffbc00}.text-mw[_ngcontent-%COMP%], .item-stat-bonus[_ngcontent-%COMP%]{color:#ffd86a}app-armor-perk-icon[_ngcontent-%COMP%]{width:23px;height:23px;position:absolute;top:-14px;left:0}td.sum-tiers[_ngcontent-%COMP%]{text-align:center!important;border-left:#6e6e6e solid 1px}.currency-icon[_ngcontent-%COMP%]{width:16px;position:absolute;left:0}.currency-icon-container[_ngcontent-%COMP%]{position:relative;padding-left:19px;padding-right:10px}.icon-column[_ngcontent-%COMP%]{padding-left:4px}"]}),n})();var pe=_(3238),ns=_(8729);function os(n,i){1&n&&(t.TgZ(0,"mat-icon",6),t._uU(1,"add_circle_outline "),t.qZA())}function is(n,i){1&n&&(t.TgZ(0,"mat-icon",7),t._uU(1,"remove_circle_outline "),t.qZA())}function as(n,i){1&n&&(t.TgZ(0,"mat-icon",8),t._uU(1,"change_history "),t.qZA())}function ss(n,i){if(1&n&&(t.TgZ(0,"mat-list-item"),t.YNc(1,os,2,0,"mat-icon",2),t.YNc(2,is,2,0,"mat-icon",3),t.YNc(3,as,2,0,"mat-icon",4),t.TgZ(4,"div",5)(5,"p"),t._uU(6),t.qZA()()()),2&n){const e=i.$implicit;t.xp6(1),t.Q6J("ngIf",0===e.type),t.xp6(1),t.Q6J("ngIf",1===e.type),t.xp6(1),t.Q6J("ngIf",2===e.type),t.xp6(3),t.Oqu(e.text)}}function rs(n,i){if(1&n&&(t.ynx(0),t.TgZ(1,"div",1),t._uU(2),t.qZA(),t.YNc(3,ss,7,4,"mat-list-item",0),t.TgZ(4,"mat-list-item"),t._UZ(5,"br")(6,"mat-divider"),t.qZA(),t.BQk()),2&n){const e=i.$implicit;t.xp6(2),t.AsE("",e.version,", released on ",e.date,""),t.xp6(1),t.Q6J("ngForOf",e.entries)}}let ge=(()=>{class n{constructor(e){this.changelog=e}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(Pt))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-changelog-list"]],decls:2,vars:1,consts:[[4,"ngFor","ngForOf"],["mat-subheader","",1,"title"],["mat-list-icon","","matTooltip","A new function has been added.",4,"ngIf"],["mat-list-icon","","matTooltip","A function has been removed.",4,"ngIf"],["mat-list-icon","","matTooltip","Something has been modified.",4,"ngIf"],["mat-line","",1,"e"],["mat-list-icon","","matTooltip","A new function has been added."],["mat-list-icon","","matTooltip","A function has been removed."],["mat-list-icon","","matTooltip","Something has been modified."]],template:function(e,o){1&e&&(t.TgZ(0,"mat-list"),t.YNc(1,rs,7,3,"ng-container",0),t.qZA()),2&e&&(t.xp6(1),t.Q6J("ngForOf",o.changelog.changelogData))},dependencies:[y.sg,y.O5,N.gM,j.Hw,bt.i$,bt.Tg,pe.X2,bt.Nh,bt.gs,ns.d],styles:["[_nghost-%COMP%] .mat-line{word-wrap:break-word!important;white-space:pre-wrap!important}[_nghost-%COMP%] .mat-list .mat-list-item{height:initial!important}.title[_ngcontent-%COMP%]{text-decoration:underline;font-size:20px}.e[_ngcontent-%COMP%] > p[_ngcontent-%COMP%]:first-child{padding-top:12px}"]}),n})();function ls(n,i){if(1&n&&(t.TgZ(0,"li"),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.Oqu(e)}}let cs=(()=>{class n{constructor(){this.knownIssues=["When you click buttons on the page too fast are able to select an invalid state with no results. Just undo your changed settings. And be patient - the calculation is an expensive task.","Sometimes duplicate results are given. This happens when the inventory got updated twice (Race Condition). Only reported once, and not really a problem."],this.changelog=se}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-help-page"]],decls:116,vars:1,consts:[["id","help-container"],["color","primary","fxShow","false","fxShow.lt-md","true","mat-raised-button","","routerLink","/",1,"returnbutton"],["href","https://twitter.com/MijagoCoding/","target","_blank","matTooltip","Birb App"],["alt","Me on twitter","src","assets/logo-twitter.png",1,"logo-twitter"],["href","https://ko-fi.com/mijago","target","_blank","matTooltip","If you like my work, you can always buy me a coffee!"],["alt","Ko-Fi","src","assets/logo-kofi.png",1,"logo-twitter"],["href","http://discord.d2armorpicker.com/","target","_blank","matTooltip","Visit me at the development & support discord."],["alt","Discord","src","assets/logo-discord.png",1,"logo-twitter"],["href","https://github.com/Mijago/D2-Gear-Calculator","target","_blank"],["href","https://mijago.github.io/D2GearCalculator/","target","_blank"],["href","https://twitter.com/MijagoCoding/","target","_blank"],["href","https://ko-fi.com/mijago","target","_blank"],[1,"preview-image-container"],["alt","Preview of the results table","src","assets/armor-images/preview_result_details.png",1,"preview-image"],["fxLayout","row","id","armor-image-container"],["src","assets/armor-images/kabrs_battlecage.png"],["src","assets/armor-images/lightkin_gauntlets.png"],["src","assets/armor-images/phobos_warden_helm.png"],["src","assets/armor-images/wild_hunt_vest.png"],[4,"ngFor","ngForOf"],[1,"changelog-table-container"]],template:function(e,o){1&e&&(t.TgZ(0,"div",0)(1,"a",1),t._uU(2," Return to D2ArmorPicker "),t.qZA(),t.TgZ(3,"mat-card")(4,"mat-card-title")(5,"span"),t._uU(6,"About D2ArmorPicker "),t.TgZ(7,"small"),t._uU(8," by Mijago"),t.qZA(),t.TgZ(9,"a",2),t._UZ(10,"img",3),t.qZA(),t.TgZ(11,"a",4),t._UZ(12,"img",5),t.qZA(),t.TgZ(13,"a",6),t._UZ(14,"img",7),t.qZA()()(),t.TgZ(15,"mat-card-content"),t._uU(16," D2ArmorPicker (or short D2AP) is a small web-app to quickly find armor that fits your desired stat requirements. It uses the armor in your vault, inventory and postmaster, calculates every possible variation and shows only those that fulfill the given requirements. "),t._UZ(17,"br")(18,"br"),t._uU(19," As I raided a lot and I mainly play meme builds, I wanted to be able to switch exotics and have decent stats without being a burden on my team. That's why I developed the "),t.TgZ(20,"a",8),t._uU(21,"first version of this tool"),t.qZA(),t._uU(22," in Python. After a few days I started to translate this tool "),t.TgZ(23,"a",9),t._uU(24,"into a webpage"),t.qZA(),t._uU(25,". My friends liked it, but it didn't have API access. Thus I created the first version of D2ArmorPicker, and after people started using and liking it, I started to completely rewrite it - that's Version\xa02! "),t._UZ(26,"br")(27,"br"),t._uU(28," I keep updating and improving this tool, but beware that it takes a bit, as I work on it on my spare time. Feel free to follow me on Twitter "),t.TgZ(29,"a",10),t._UZ(30,"img",3),t.qZA(),t._uU(31,", I occasionally post updates there. If you like my tools and want to support me, head to "),t.TgZ(32,"a",11),t._uU(33,"ko-fi.com"),t.qZA(),t._uU(34," and buy me a coffee! \u2764 "),t.qZA()(),t.TgZ(35,"mat-card")(36,"mat-card-title"),t._uU(37," How do I use D2ArmorPicker? "),t.qZA(),t.TgZ(38,"mat-card-content"),t._uU(39," Follow these few steps: "),t.TgZ(40,"ol")(41,"li"),t._uU(42,"Login. You already did this!"),t.qZA(),t.TgZ(43,"li"),t._uU(44," [Optional] Pick an exotic you want to use. The tool will only display results for this exotic. You can always undo this. "),t.qZA(),t.TgZ(45,"li"),t._uU(46," [Optional] Select additional mods/fragments that give a bonus (or penalty). These are important if you want certain stat combinations even if you have penalties on your gear. "),t.qZA(),t.TgZ(47,"li"),t._uU(48," Select the stat distribution you seek. This is the heart of D2ArmorPicker. You just click 100 recovery and it will display you builds that have 100 recovery. "),t.TgZ(49,"i"),t._uU(50,"Note that it automatically adds stat mods if necessary."),t.qZA()(),t.TgZ(51,"li"),t._uU(52," Now look to the result table. On a normal desktop it should be on the right, on smaller devices it might move below the configuration. The table lists multiple results and you can sort it by your requirements."),t._UZ(53,"br"),t.TgZ(54,"b"),t._uU(55,"Click"),t.qZA(),t._uU(56," on an entry to open look the detailed view: "),t.TgZ(57,"div",12),t._UZ(58,"img",13),t.qZA(),t._uU(59," The example above shows a build that utilizes Dunemarchers and a zero-waste-build. To achieve it, I have to move all the items in my inventory and equip them. After this, I "),t.TgZ(60,"i"),t._uU(61,"masterwork"),t.qZA(),t._uU(62," them and "),t.TgZ(63,"i"),t._uU(64,"add the mods"),t.qZA(),t._uU(65," as the table displays them: "),t.TgZ(66,"ul")(67,"li")(68,"b"),t._uU(69,"Discipline:"),t.qZA(),t._uU(70," One major mod, one minor mod;"),t.qZA(),t.TgZ(71,"li")(72,"b"),t._uU(73,"Intellect:"),t.qZA(),t._uU(74," One major mod, one minor mod;"),t.qZA(),t.TgZ(75,"li")(76,"b"),t._uU(77,"Strength:"),t.qZA(),t._uU(78," One major mod;"),t.qZA(),t.TgZ(79,"li"),t._uU(80,"I also add Powerful Friends and Radiant Light, as I chose them in the configuration."),t.qZA()()()()()(),t.TgZ(81,"mat-card")(82,"mat-card-title"),t._uU(83," Where can I grind high stat armor? "),t.qZA(),t.TgZ(84,"mat-card-content"),t._uU(85," There are many spots that give you mediocre armor, but for the really good builds you need the correct armor. Here I provide a list of high-stat armor sources. It may not be complete, but a good starting point. "),t.TgZ(86,"i"),t._uU(87,"Last updated February 8, 2022."),t.qZA(),t.TgZ(88,"ul")(89,"li"),t._uU(90," Farm legendary Dares!"),t.qZA(),t.TgZ(91,"li"),t._uU(92," Clear Pit of Heresy Dungeon, the boss drop guarantees two stats to be 16 (or higher)."),t.qZA(),t.TgZ(93,"li"),t._uU(94," Farm a bunch of Spoils, go into Master Vault of Glass and buy armor at the final chest."),t.qZA(),t.TgZ(95,"li"),t._uU(96," The list will be extended sometime in Witch Queen!"),t.qZA()(),t._uU(97," Some good armor rolls may look like these: "),t.TgZ(98,"div",14),t._UZ(99,"img",15)(100,"img",16)(101,"img",17)(102,"img",18),t.qZA()()(),t.TgZ(103,"mat-card")(104,"mat-card-title"),t._uU(105,"Known Issues"),t.qZA(),t.TgZ(106,"mat-card-content")(107,"ul"),t.YNc(108,ls,2,1,"li",19),t.qZA()()(),t.TgZ(109,"mat-card")(110,"mat-card-title"),t._uU(111,"Changelog"),t.qZA(),t.TgZ(112,"mat-card-content",20),t._UZ(113,"app-changelog-list"),t.qZA()(),t.TgZ(114,"a",1),t._uU(115," Return to D2ArmorPicker "),t.qZA()()),2&e&&(t.xp6(108),t.Q6J("ngForOf",o.knownIssues))},dependencies:[y.sg,Y.xw,H.b8,g.zs,A.a8,A.dn,A.n5,N.gM,I.yS,ge],styles:["#help-container[_ngcontent-%COMP%]{max-width:800px;margin-left:auto;margin-right:auto}.changelog-table-container[_ngcontent-%COMP%]{max-height:700px;overflow-y:scroll}mat-card[_ngcontent-%COMP%]{margin-bottom:8px}#armor-image-container[_ngcontent-%COMP%]{overflow:auto}#armor-image-container[_ngcontent-%COMP%] > img[_ngcontent-%COMP%]:not(:last-of-type){margin-right:20px}#armor-image-container[_ngcontent-%COMP%] > img[_ngcontent-%COMP%]{max-height:300px}.preview-image-container[_ngcontent-%COMP%]{max-width:600px}.preview-image[_ngcontent-%COMP%]{max-width:100%}.returnbutton[_ngcontent-%COMP%]{margin-top:5px;margin-bottom:15px;width:100%}.changelog-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]:first-of-type{min-width:80px}.changelog-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]:nth-of-type(2){min-width:40px}.changelog-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-top:#6e6e6e solid 1px}a[_ngcontent-%COMP%]{color:#99afe3}a[_ngcontent-%COMP%]:visited{color:#7294dc}"]}),n})();var V=_(4006),Zt=_(455),vt=_(3217),it=_(811);function us(n,i){if(1&n&&(t.TgZ(0,"th",5),t._uU(1),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.hij("\u2206 Tier ",e.differenceTier,"")}}function ps(n,i){if(1&n&&t._UZ(0,"img",9),2&n){const e=t.oxw(3).$implicit;t.MGl("src","https://www.bungie.net/",e.icon,"",t.LSH)}}function gs(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=i.ngVar,o=t.oxw(6).$implicit,a=t.oxw();t.ekj("good",a.differenceTiera.tier),t.xp6(1),t.AsE(" ",e>0?"+":"","",a.formatEntry(o,e)," ")}}function _s(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,gs,2,6,"span",10),t.qZA()),2&n){const e=t.oxw(2).ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngVar",-(e-o))}}function fs(n,i){if(1&n&&(t.TgZ(0,"td")(1,"span"),t._uU(2),t.ALo(3,"number"),t.qZA()()),2&n){const e=t.oxw().ngVar,o=t.oxw(5);t.xp6(1),t.ekj("good",o.differenceTiero.tier),t.xp6(1),t.AsE(" (",e>0?"+":"","",t.xi3(3,6,100*e,"1.0-0"),"%) ")}}function hs(n,i){if(1&n&&(t.ynx(0),t.YNc(1,_s,2,1,"td",6),t.YNc(2,fs,4,9,"td",6),t.BQk()),2&n){const e=t.oxw(5);t.xp6(1),t.Q6J("ngIf",e.differenceTier!==e.tier),t.xp6(1),t.Q6J("ngIf",e.differenceTier!==e.tier)}}function xs(n,i){if(1&n&&(t.ynx(0),t.YNc(1,hs,3,2,"ng-container",7),t.BQk()),2&n){const e=i.ngVar,o=t.oxw().ngVar,a=t.oxw(3);t.xp6(1),t.Q6J("ngVar",a.getPercentageDifference(o,e))}}function Ts(n,i){if(1&n&&(t.ynx(0),t._UZ(1,"app-item-icon",11),t.BQk()),2&n){const e=i.$implicit;t.xp6(1),t.Q6J("itemHash",e)}}function ys(n,i){if(1&n&&(t.ynx(0),t.TgZ(1,"td"),t.YNc(2,ps,1,1,"img",8),t._uU(3),t.qZA(),t.TgZ(4,"td"),t._uU(5),t.qZA(),t.YNc(6,xs,2,1,"ng-container",7),t.TgZ(7,"td"),t.YNc(8,Ts,2,1,"ng-container",4),t._uU(9),t.qZA(),t.BQk()),2&n){const e=i.ngVar,o=t.oxw(2).$implicit,a=t.oxw();t.xp6(2),t.Q6J("ngIf",o.icon),t.xp6(1),t.hij(" ",o.name," "),t.xp6(2),t.Oqu(a.formatEntry(o,e)),t.xp6(1),t.Q6J("ngVar",a.valueFunction(o,a.differenceTier)),t.xp6(2),t.Q6J("ngForOf",o.overrideIcons),t.xp6(1),t.hij(" ",o.description," ")}}function bs(n,i){if(1&n&&(t.TgZ(0,"tr"),t.YNc(1,ys,10,6,"ng-container",7),t.qZA()),2&n){const e=t.oxw().$implicit,o=t.oxw();t.xp6(1),t.Q6J("ngVar",o.valueFunction(e,o.tier))}}function Cs(n,i){if(1&n&&(t.ynx(0),t.YNc(1,bs,2,1,"tr",6),t.BQk()),2&n){const e=i.$implicit,o=t.oxw();t.xp6(1),t.Q6J("ngIf",null==e.description||!!e.description[o.characterClass])}}let Zs=(()=>{class n{constructor(e,o){this.config=e,this.characterStats=o,this.ArmorStatNames=r.Mi,this.tier=0,this.differenceTier=0,this.stat=r.WB.Mobility,this.entries=[]}get characterClass(){return this.config.readonlyConfigurationSnapshot.characterClass}ngOnInit(){this.entries=this.characterStats.get(r.Mi[this.stat],this.config.readonlyConfigurationSnapshot.characterClass,this.config.readonlyConfigurationSnapshot.selectedModElement,this.config.readonlyConfigurationSnapshot.selectedExotics)}formatEntry(e,o){return o=parseFloat(o.toFixed(2)),e.valueType===P.Speed?(n=>(Math.round(100*n)/100).toFixed(2)+"m/s")(o):e.valueType===P.Percentage?`${o}%`:e.valueType===P.PercentagePerSecond?`${o}%/s`:e.valueType===P.TimeMMSS?function As(n){var i=function ms(n){n=Math.abs(n),Math.floor(n%1*10);var e=Math.floor(n/60),o=Math.floor(n-60*e);return`${e}:${o<10?"0":""}${o}`}(n);return n<0&&(i="- "+i),i}(o):e.valueType===P.Time?function ws(n){var i=function ds(n){n=Math.abs(n);var i=Math.floor(n%1*10),e=Math.floor(n/60),o=Math.floor(n-60*e);let a=`${o}s`;return i>0&&(a=`${o}.${i}s`),e>0&&(a=`${e}m ${a}`),a}(n);return n<0&&(i="- "+i),i}(o):o}valueFunction(e,o){return e.values[o]}getPercentageDifference(e,o){return(e-o)/Math.max(1,o)}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(B),t.Y36(ae))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-stat-cooldown-tooltip"]],inputs:{tier:"tier",differenceTier:"differenceTier",stat:"stat"},decls:13,vars:5,consts:[[1,"tooltip-container"],["colspan","3",1,"exotic-name"],[2,"min-width","50px"],["style","min-width: 50px","colspan","2",4,"ngIf"],[4,"ngFor","ngForOf"],["colspan","2",2,"min-width","50px"],[4,"ngIf"],[4,"ngVar"],[3,"src",4,"ngIf"],[3,"src"],[3,"good","bad",4,"ngVar"],[3,"itemHash"]],template:function(e,o){1&e&&(t.TgZ(0,"div")(1,"div",0)(2,"table")(3,"tr")(4,"td",1),t._uU(5),t.qZA()(),t.TgZ(6,"tr")(7,"th",2),t._uU(8,"Stat"),t.qZA(),t.TgZ(9,"th",2),t._uU(10),t.qZA(),t.YNc(11,us,2,1,"th",3),t.qZA(),t.YNc(12,Cs,2,1,"ng-container",4),t.qZA()()()),2&e&&(t.xp6(5),t.AsE("",o.ArmorStatNames[o.stat]," at Tier ",o.tier,""),t.xp6(5),t.hij("Tier ",o.tier,""),t.xp6(1),t.Q6J("ngIf",o.differenceTier!==o.tier),t.xp6(1),t.Q6J("ngForOf",o.entries))},dependencies:[y.sg,y.O5,Ct,Ht,y.JJ],styles:["[_nghost-%COMP%]{max-width:420px}.tooltip-container[_ngcontent-%COMP%]{border:1px solid gray;padding:1px 5px 4px;background:linear-gradient(#484848 0px,#2c2c2c 100%)}.exotic-name[_ngcontent-%COMP%]{color:#eedb9e}.good[_ngcontent-%COMP%]{color:#58b458}.bad[_ngcontent-%COMP%]{color:#ff6b6b}table[_ngcontent-%COMP%]{border-collapse:separate;border-spacing:7px 3px}th[_ngcontent-%COMP%]{white-space:nowrap}img[_ngcontent-%COMP%]{width:24px;height:24px;float:left;margin-right:3px}tr[_ngcontent-%COMP%]{line-height:24px}"]}),n})(),Ss=(()=>{class n{constructor(e,o,a){this._overlay=e,this._overlayPositionBuilder=o,this._elementRef=a,this.showToolTip=!0,this.tooltipTier=0,this.tooltipStat=r.WB.Mobility,this.tooltipDifferenceTier=0}ngOnInit(){if(!this.showToolTip)return;const e=this._overlayPositionBuilder.flexibleConnectedTo(this._elementRef).withPositions([{originX:"center",originY:"bottom",overlayX:"center",overlayY:"top",offsetY:5},{originX:"center",originY:"top",overlayX:"center",overlayY:"bottom",offsetY:-5}]);this._overlayRef=this._overlay.create({positionStrategy:e}),this._overlayRef.addPanelClass("overlay-no-pointer-event")}show(){if(this._overlayRef&&!this._overlayRef.hasAttached()){const e=this._overlayRef.attach(new Nt.C5(Zs));e.instance.tier=this.tooltipTier,e.instance.differenceTier=this.tooltipDifferenceTier,e.instance.stat=this.tooltipStat}}hide(){this.closeToolTip()}ngOnDestroy(){this.closeToolTip()}closeToolTip(){this._overlayRef&&this._overlayRef.detach()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(pt.aV),t.Y36(pt.wJ),t.Y36(t.SBq))},n.\u0275dir=t.lG2({type:n,selectors:[["","statCooldownTooltip",""]],hostBindings:function(e,o){1&e&&t.NdJ("mouseenter",function(){return o.show()})("mouseleave",function(){return o.hide()})},inputs:{showToolTip:"showToolTip",tooltipTier:"tooltipTier",tooltipStat:"tooltipStat",tooltipDifferenceTier:"tooltipDifferenceTier",contentTemplate:"contentTemplate"}}),n})();function Is(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"mat-button-toggle",4),t.NdJ("click",function(){const s=t.CHM(e).index,l=t.oxw();return t.KtG(l.setValue(s))}),t.TgZ(1,"div",5),t._uU(2),t.qZA()()}if(2&n){const e=i.index,o=t.oxw();t.ekj("isFromMod",o.isAddedByConfigMods(e))("mat-button-toggle-checked",o.selectedTier>=e)("not-checked",o.selectedTier{class n{constructor(){this.TierRange=new Array(11),this.stat=r.WB.Mobility,this.statsByMods=0,this.maximumAvailableTier=10,this.selectedTier=0,this.locked=!1,this.selectedTierChange=new t.vpe,this.lockedChange=new t.vpe}setValue(e){e<=this.maximumAvailableTier&&(this.selectedTier=e,this.selectedTierChange.emit(e))}isAddedByConfigMods(e){return e>0&&(this.selectedTier-e>=0&&this.selectedTier-e{class n{constructor(e,o){this.config=e,this.inventory=o,this.minimumStatTiers=zt(1),this.maximumPossibleTiers=[10,10,10,10,10,10],this.statsByMods=[0,0,0,0,0,0],this._statCombo4x100=[],this._statCombo3x100=[],this.config_zero_waste=!1,this.config_mod_strategy=yt.None,this.config_reduce_waste=!1,this.ngUnsubscribe=new nt.xQ,this.stats=Object.keys(r.WB).filter(a=>!isNaN(Number(a))).map(a=>({name:r.WB[a],value:+a}))}ngOnInit(){this.config.configuration.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(e=>{const o=[0,0,0,0,0,0];for(let a of e.enabledMods)for(let s of ut[a].bonus)o[s.stat]+=s.value/10;this.statsByMods=o,this.minimumStatTiers=e.minimumStatTiers,this.config_zero_waste=e.onlyShowResultsWithNoWastedStats,this.config_mod_strategy=e.modOptimizationStrategy,this.config_reduce_waste=e.tryLimitWastedStats}),this.inventory.armorResults.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(e=>{const o=e.maximumPossibleTiers||[10,10,10,10,10,10];console.log("d.maximumPossibleTiers",o),o.filter(a=>0==a).length<6&&(this.maximumPossibleTiers=o),this._statCombo3x100=(e.statCombo3x100||[]).sort((a,s)=>_e(s)-_e(a)),this._statCombo4x100=e.statCombo4x100||[]})}setSelectedTier(e,o){this.config.modifyConfiguration(a=>{a.minimumStatTiers[e].value=o})}clearStatSelection(){this.config.modifyConfiguration(e=>{for(let o=0;o<6;o++)e.minimumStatTiers[o]={fixed:!1,value:0}})}useStatPreset(e){0!=e.filter(o=>10!=this.config.readonlyConfigurationSnapshot.minimumStatTiers[o].value).length&&this.config.modifyConfiguration(o=>{for(let a of e)o.minimumStatTiers[a].value=10})}setLockState(e,o){this.config.modifyConfiguration(a=>{a.minimumStatTiers[e].fixed=o})}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}setModOptimizationStrategy(){this.config.modifyConfiguration(e=>{e.modOptimizationStrategy=this.config_mod_strategy})}toggleReduceWaste(){this.config.modifyConfiguration(e=>{e.tryLimitWastedStats=!this.config_reduce_waste})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(B),t.Y36(K))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-desired-stat-selection"]],decls:41,vars:12,consts:[[4,"ngFor","ngForOf"],["id","tierSelectButtonContainer"],[1,"tierSelectButton"],["mat-stroked-button","","color","warn","id","clearStatButton",3,"click"],["mat-stroked-button","","aria-label","Select builds with three stats at tier 10.",1,"selectStatDistributionButton",3,"matMenuTriggerFor","disabled"],["menu",""],["menu1","matMenu"],["mat-menu-item","",3,"click",4,"ngFor","ngForOf"],["mat-stroked-button","","aria-label","Select builds with four stats at tier 10.",3,"matMenuTriggerFor","disabled"],["menu2","matMenu"],[3,"ngModel","ngModelChange","change"],["matTooltip","Fast. Will result in good and fast results. Some better results *may* be skipped.",3,"value"],["matTooltip","Slower. Reduces the amount of used mods. This means that it will try to give you 4 mods instead of 5 whenever possible.",3,"value"],["matTooltip","Slower. Reduces the total cost of mods. This will result in less Intellect mods, for example.",3,"value"],["color","primary",3,"checked","change"],[1,"statContainerWrapper"],["src","https://www.bungie.net/common/destiny2_content/icons/e26e0e93a9daf4fdd21bf64eb9246340.png","alt","Mobility","class","dialogStatIcon",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/202ecc1c6febeb6b97dafc856e863140.png","alt","Resilience","class","dialogStatIcon",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/128eee4ee7fc127851ab32eac6ca91cf.png","alt","Recovery","class","dialogStatIcon",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/79be2d4adef6a19203f7385e5c63b45b.png","alt","Discipline","class","dialogStatIcon",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/d1c154469670e9a592c9d4cbdcae5764.png","alt","Intellect","class","dialogStatIcon",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/ea5af04ccd6a3470a44fd7bb0f66e2f7.png","alt","Strength","class","dialogStatIcon",4,"ngIf"],[3,"stat","statsByMods","maximumAvailableTier","selectedTier","locked","selectedTierChange","lockedChange"],["src","https://www.bungie.net/common/destiny2_content/icons/e26e0e93a9daf4fdd21bf64eb9246340.png","alt","Mobility",1,"dialogStatIcon"],["src","https://www.bungie.net/common/destiny2_content/icons/202ecc1c6febeb6b97dafc856e863140.png","alt","Resilience",1,"dialogStatIcon"],["src","https://www.bungie.net/common/destiny2_content/icons/128eee4ee7fc127851ab32eac6ca91cf.png","alt","Recovery",1,"dialogStatIcon"],["src","https://www.bungie.net/common/destiny2_content/icons/79be2d4adef6a19203f7385e5c63b45b.png","alt","Discipline",1,"dialogStatIcon"],["src","https://www.bungie.net/common/destiny2_content/icons/d1c154469670e9a592c9d4cbdcae5764.png","alt","Intellect",1,"dialogStatIcon"],["src","https://www.bungie.net/common/destiny2_content/icons/ea5af04ccd6a3470a44fd7bb0f66e2f7.png","alt","Strength",1,"dialogStatIcon"],["mat-menu-item","",3,"click"],["class","statContainerWrapper",4,"ngFor","ngForOf"]],template:function(e,o){if(1&e&&(t.TgZ(0,"table"),t.YNc(1,qs,12,12,"tr",0),t.qZA(),t.TgZ(2,"span",1)(3,"span",2)(4,"button",3),t.NdJ("click",function(){return o.clearStatSelection()}),t._uU(5,"Clear"),t.qZA()(),t.TgZ(6,"span",2)(7,"button",4)(8,"mat-icon"),t._uU(9,"expand_more"),t.qZA(),t._uU(10," Select 3x T10 Builds "),t.qZA(),t.TgZ(11,"mat-menu",5,6),t.YNc(13,Hs,2,1,"button",7),t.qZA()(),t.TgZ(14,"span",2)(15,"button",8)(16,"mat-icon"),t._uU(17,"expand_more"),t.qZA(),t._uU(18," Select 4x T10 Builds "),t.qZA(),t.TgZ(19,"mat-menu",null,9),t.YNc(21,tr,2,1,"button",7),t.qZA()()(),t._UZ(22,"br")(23,"br"),t.TgZ(24,"div")(25,"div")(26,"b"),t._uU(27,"Mod optimization strategy:"),t.qZA()(),t.TgZ(28,"div"),t._uU(29,"You can choose if the algorithm should keep an eye on amount or the cost of mods."),t.qZA(),t.TgZ(30,"mat-button-toggle-group",10),t.NdJ("ngModelChange",function(s){return o.config_mod_strategy=s})("change",function(){return o.setModOptimizationStrategy()}),t.TgZ(31,"mat-button-toggle",11),t._uU(32,"No extra logic (fast)"),t.qZA(),t.TgZ(33,"mat-button-toggle",12),t._uU(34,"Fewer mods, high cost (slow)"),t.qZA(),t.TgZ(35,"mat-button-toggle",13),t._uU(36,"Many mods, low cost (slow)"),t.qZA()()(),t._UZ(37,"br"),t.TgZ(38,"div")(39,"mat-slide-toggle",14),t.NdJ("change",function(){return o.toggleReduceWaste()}),t._uU(40," Add mods to reduce wasted stats (slower) "),t.qZA()()),2&e){const a=t.MAs(12),s=t.MAs(20);t.xp6(1),t.Q6J("ngForOf",o.stats),t.xp6(6),t.Q6J("matMenuTriggerFor",a)("disabled",0===o._statCombo3x100.length),t.xp6(6),t.Q6J("ngForOf",o._statCombo3x100),t.xp6(2),t.Q6J("matMenuTriggerFor",s)("disabled",0===o._statCombo4x100.length),t.xp6(6),t.Q6J("ngForOf",o._statCombo4x100),t.xp6(9),t.Q6J("ngModel",o.config_mod_strategy),t.xp6(1),t.Q6J("value",0),t.xp6(2),t.Q6J("value",1),t.xp6(2),t.Q6J("value",2),t.xp6(4),t.Q6J("checked",o.config_reduce_waste)}},dependencies:[y.sg,y.O5,V.JJ,V.On,g.lW,Zt.Rr,N.gM,j.Hw,vt.VK,vt.OP,vt.p6,it.A9,it.Yi,ks],styles:["#tierSelectButtonContainer[_ngcontent-%COMP%] > .tierSelectButton[_ngcontent-%COMP%]:not(:last-child){margin-right:5px}.dialogStatIcon[_ngcontent-%COMP%]{height:35px}.warn[_ngcontent-%COMP%]{background-color:#8b0000;padding-left:15px;padding-right:15px}"]}),n})();function nr(n,i){if(1&n&&(t.TgZ(0,"div")(1,"div",22),t._UZ(2,"img",23)(3,"img",24),t.O4$(),t.TgZ(4,"svg",25)(5,"text",26),t._uU(6,"3"),t.qZA()(),t.TgZ(7,"svg",27)(8,"text",26),t._uU(9,"1"),t.qZA()(),t.kcU(),t._UZ(10,"div",28),t.qZA(),t.TgZ(11,"div",22),t._UZ(12,"img",29)(13,"img",30),t.O4$(),t.TgZ(14,"svg",25)(15,"text",26),t._uU(16,"4"),t.qZA()(),t.TgZ(17,"svg",27)(18,"text",26),t._uU(19,"2"),t.qZA()(),t.kcU(),t._UZ(20,"div",28),t.qZA(),t.TgZ(21,"div",22),t._UZ(22,"img",31)(23,"img",32),t.O4$(),t.TgZ(24,"svg",25)(25,"text",26),t._uU(26,"3"),t.qZA()(),t.TgZ(27,"svg",27)(28,"text",26),t._uU(29,"1"),t.qZA()(),t.kcU(),t._UZ(30,"div",28),t.qZA(),t.TgZ(31,"div",22),t._UZ(32,"img",33)(33,"img",34),t.O4$(),t.TgZ(34,"svg",25)(35,"text",26),t._uU(36,"3"),t.qZA()(),t.TgZ(37,"svg",27)(38,"text",26),t._uU(39,"1"),t.qZA()(),t.kcU(),t._UZ(40,"div",28),t.qZA(),t.TgZ(41,"div",22),t._UZ(42,"img",35)(43,"img",36),t.O4$(),t.TgZ(44,"svg",25)(45,"text",26),t._uU(46,"4"),t.qZA()(),t.TgZ(47,"svg",27)(48,"text",26),t._uU(49,"2"),t.qZA()(),t.kcU(),t._UZ(50,"div",28),t.qZA(),t.TgZ(51,"div",22),t._UZ(52,"img",37)(53,"img",38),t.O4$(),t.TgZ(54,"svg",25)(55,"text",26),t._uU(56,"4"),t.qZA()(),t.TgZ(57,"svg",27)(58,"text",26),t._uU(59,"2"),t.qZA()(),t.kcU(),t._UZ(60,"div",28),t.qZA()()),2&n){const e=i.ngVar;t.xp6(1),t.ekj("major",e>=3)("minor",e>=1&&e<3),t.xp6(10),t.ekj("major",e>=4)("minor",e>=2&&e<4),t.xp6(10),t.ekj("major",e>=3)("minor",e>=1&&e<3),t.xp6(10),t.ekj("major",e>=3)("minor",e>=1&&e<3),t.xp6(10),t.ekj("major",e>=4)("minor",e>=2&&e<4),t.xp6(10),t.ekj("major",e>=4)("minor",e>=2&&e<4)}}function or(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"mat-button-toggle",39),t.NdJ("click",function(){const s=t.CHM(e).index,l=t.oxw();return t.KtG(l.setValue(s))}),t._uU(1),t.qZA()}if(2&n){const e=i.index,o=t.oxw();t.Gre("select-button ",o.selection>=e?"mat-button-toggle-checked":"",""),t.Q6J("value",e),t.xp6(1),t.Oqu(e)}}function ir(n,i){1&n&&(t.TgZ(0,"mat-icon"),t._uU(1,"lock_open"),t.qZA())}function ar(n,i){1&n&&(t.TgZ(0,"mat-icon"),t._uU(1,"lock"),t.qZA())}function sr(n,i){if(1&n){const e=t.EpF();t.ynx(0),t.TgZ(1,"button",40),t.NdJ("click",function(){const s=t.CHM(e).$implicit,l=t.oxw();return t.KtG(l.setArmorPerk(s))}),t._UZ(2,"app-armor-perk-icon",41),t.TgZ(3,"span",42),t._uU(4),t.qZA()(),t.BQk()}if(2&n){const e=i.$implicit,o=t.oxw();t.xp6(1),t.ekj("selected-menu",e===o.armorPerk),t.xp6(1),t.Q6J("perk",e),t.xp6(2),t.Oqu(o.ArmorPerkOrSlotNames[e])}}function rr(n,i){if(1&n&&t._UZ(0,"img",43,44),2&n){const e=t.oxw();t.MGl("matTooltip","If you enable the lock on the settings on the right they will be forced to exist on a ",e.slotName,".")}}function lr(n,i){if(1&n&&t._UZ(0,"img",45,44),2&n){const e=t.oxw();t.MGl("matTooltip","If you enable the lock on the settings on the right they will be forced to exist on a ",e.slotName,".")}}function cr(n,i){if(1&n&&t._UZ(0,"img",46,44),2&n){const e=t.oxw();t.MGl("matTooltip","If you enable the lock on the settings on the right they will be forced to exist on a ",e.slotName,".")}}function mr(n,i){if(1&n&&t._UZ(0,"img",47,44),2&n){const e=t.oxw();t.MGl("matTooltip","If you enable the lock on the settings on the right they will be forced to exist on a ",e.slotName,".")}}function dr(n,i){if(1&n&&t._UZ(0,"img",48,44),2&n){const e=t.oxw();t.MGl("matTooltip","If you enable the lock on the settings on the right they will be forced to exist on a ",e.slotName,".")}}let ur=(()=>{class n{constructor(e,o,a){this.config=e,this.inventory=o,this.db=a,this.featureDisabled=!S_featureFlags_enableModslotLimitation,this.ArmorSlot=C.y,this.ArmorPerkOrSlotNames=r.cM,this.ArmorPerkOrSlot=r.Pn,this.ModRange=new Array(6),this.selection=5,this.slot=C.y.ArmorSlotHelmet,this.possible=new t.vpe,this.isPossible=!0,this.configSelectedClass=0,this.armorPerk=r.Pn.None,this.armorPerkLock=!1,this.maximumModSlots=5,this.hoveredSlot=-1,this.disabled=!1,this.availableArmorPerks=[r.Pn.None,r.Pn.PerkQueensFavor,r.Pn.SonarAmplifier,r.Pn.SlotRootOfNightmares,r.Pn.SlotKingsFall,r.Pn.SlotCrotasEnd,r.Pn.SlotVowOfTheDisciple,r.Pn.SlotVaultOfGlass,r.Pn.SlotDeepStoneCrypt,r.Pn.SlotGardenOfSalvation,r.Pn.SlotLastWish,r.Pn.SlotNightmare,r.Pn.SlotArtifice,r.Pn.PerkIronBanner,r.Pn.PerkUniformedOfficer,r.Pn.PerkPlunderersTrappings,r.Pn.SeraphSensorArray],this.ngUnsubscribe=new nt.xQ}runPossibilityCheck(){var e=this;return(0,m.Z)(function*(){if(e.armorPerkLock&&e.armorPerk!=r.Pn.None){var a=yield e.db.inventoryArmor.where("clazz").equals(e.configSelectedClass).and(s=>s.slot==e.slot).and(s=>s.perk==e.armorPerk).count();e.isPossible=a>0}else e.isPossible=!0;e.possible.next(e.isPossible)})()}get slotName(){switch(this.slot){case C.y.ArmorSlotHelmet:return"Helmet";case C.y.ArmorSlotGauntlet:return"Gauntlet";case C.y.ArmorSlotChest:return"Chest";case C.y.ArmorSlotLegs:return"Leg";case C.y.ArmorSlotClass:return"Class Item";default:return""}}ngOnInit(){var e=this;this.config.configuration.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(function(){var o=(0,m.Z)(function*(a){var s=e.configSelectedClass!=a.characterClass||e.selection!=a.maximumModSlots[e.slot].value||e.armorPerk!=a.armorPerks[e.slot].value||e.armorPerkLock!=a.armorPerks[e.slot].fixed||e.maximumModSlots!=a.maximumModSlots[e.slot].value;e.configSelectedClass=a.characterClass,e.selection=a.maximumModSlots[e.slot].value,e.armorPerk=a.armorPerks[e.slot].value,e.armorPerkLock=a.armorPerks[e.slot].fixed,e.maximumModSlots=a.maximumModSlots[e.slot].value,e.disabled=(yield e.inventory.getExoticsForClass(a.characterClass)).filter(l=>a.selectedExotics.indexOf(l.item.hash)>-1).map(l=>l.item.slot).indexOf(e.slot)>-1,s&&(yield e.runPossibilityCheck())});return function(a){return o.apply(this,arguments)}}())}ngAfterViewInit(){S_featureFlags_enableGuardianGamesFeatures&&this.slot===C.y.ArmorSlotClass&&this.availableArmorPerks.splice(1,0,r.Pn.GuardianGamesClassItem)}toggleArmorPerkLock(){this.config.modifyConfiguration(e=>{e.armorPerks[this.slot].fixed=!e.armorPerks[this.slot].fixed})}setArmorPerk(e){this.armorPerk!=e&&this.config.modifyConfiguration(o=>{o.armorPerks[this.slot].value=e})}setValue(e){this.featureDisabled||this.maximumModSlots!=e&&(this.maximumModSlots=e,this.config.modifyConfiguration(o=>o.maximumModSlots[this.slot].value=e))}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(B),t.Y36(K),t.Y36(et))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-slot-limitation-selection"]],inputs:{slot:"slot"},outputs:{possible:"possible"},decls:35,vars:58,consts:[[1,"container"],[1,"energy"],[1,"energy-container",3,"mouseout"],[1,"energy-bar","blocked",3,"click","mouseover"],[1,"energy-bar",3,"click","mouseover"],[4,"ngVar"],["appearance","standard","name","fontStyle",2,"display","none"],[3,"value","class","click",4,"ngFor","ngForOf"],[1,"selector-slots"],["value","bold",3,"matMenuTriggerFor"],[3,"perk"],["disabled","",3,"disabled","matTooltip","click"],[4,"ngIf"],[1,"modslot-select-scroll-menu"],["dropdownArmorModslot","matMenu"],[4,"ngFor","ngForOf"],[1,"slot-icon-container"],["class","slot-icon","src","data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51 51'%3e%3cpath d='M24.77 7.03c-8.15.38-14.42 7.41-14.42 15.57v16.06c0 .23.13.44.34.53l10.33 4.68c.78.35 1.66-.22 1.66-1.07V31.9c0-.39-.19-.75-.52-.97l-5.39-3.64c-.87-.52-1.43-1.5-1.34-2.61.13-1.46 1.46-2.52 2.93-2.52h4.36c.65 0 1.17.53 1.17 1.17v6.71s0 .61 1.61.61 1.61-.61 1.61-.61v-6.71c0-.65.52-1.17 1.17-1.17h4.36c1.47 0 2.8 1.06 2.93 2.52.1 1.11-.47 2.09-1.34 2.61l-5.39 3.64c-.32.22-.52.58-.52.97v10.91c0 .85.88 1.42 1.66 1.07l10.33-4.68c.21-.1.34-.3.34-.53v-16.5c.01-8.61-7.18-15.55-15.88-15.14z'/%3e%3c/svg%3e",3,"matTooltip",4,"ngIf"],["class","slot-icon","src","data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51 51'%3e%3cpath d='M40.1 30.03c.39-.47.59-1.11.42-1.8-.18-.76-.81-1.39-1.58-1.55-.81-.17-1.54.14-2.01.68 0 0-.03.04-.05.07l-.12.15c-.47.61-1.95 2.37-3.29 2.45-1.62.1 2.51-16.14 2.51-16.14h-.01c.04-.15.07-.31.07-.48 0-.98-.79-1.77-1.77-1.77-.81 0-1.49.55-1.69 1.29h-.01s-.01.03-.01.05l-.03.15c-.24 1.21-1.68 8.2-2.81 8.89-1.24.75-1.22-13.23-1.22-13.23 0-.98-.79-1.77-1.77-1.77s-1.77.79-1.77 1.77c0 0-.35 12.85-1.73 12.73-1.37-.12-2.47-10.67-2.47-10.67 0-.98-.79-1.77-1.77-1.77s-1.77.79-1.77 1.77c0 .15.02.28.06.42.27 2.06 1.36 11.12-.06 11.12-1.6 0-3.68-6.35-3.68-6.35a1.62 1.62 0 0 0-3.14.56c0 .09.01.17.03.25l-.03.01s.02.07.07.19c.02.09.05.17.09.25.99 2.71 6.28 17.46 7.26 26.23.03.25.24.44.49.44H30.5a.5.5 0 0 0 .5-.45c.1-1.04.52-3.68 2.09-5.54 1.8-2.14 6.06-6.89 6.86-7.79.02-.02.03-.04.05-.06.07-.06.11-.1.1-.1z'/%3e%3c/svg%3e",3,"matTooltip",4,"ngIf"],["class","slot-icon","src","data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51 51'%3e%3cpath d='M42.49 13.55c-1.06-1.51-4.05-5.05-9.52-6.49a.635.635 0 0 0-.78.5c-.35 2.04-1.78 8.08-6.69 8.08s-6.34-6.04-6.69-8.08a.635.635 0 0 0-.78-.5c-5.47 1.44-8.46 4.98-9.52 6.49-.24.34-.09.8.3.94 2.01.7 7.34 2.94 7.34 7.01 0 4.24-4.47 6.89-5.87 7.61-.25.13-.38.4-.33.67 1.44 7.62 7.55 13.09 8.67 14.04.11.1.25.15.4.15h12.94c.15 0 .29-.05.4-.15 1.12-.95 7.23-6.42 8.67-14.04a.624.624 0 0 0-.33-.67c-1.4-.72-5.87-3.37-5.87-7.61 0-4.08 5.33-6.32 7.34-7.01.41-.14.56-.61.32-.94z'/%3e%3c/svg%3e",3,"matTooltip",4,"ngIf"],["class","slot-icon","src","data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51 51'%3e%3cpath d='M13 7.6h13.96c1.73 0 2.99 1.64 2.54 3.32l-5.44 20.46c-.07.28.03.57.28.72.99.62 4.64 2.57 8.15 5.78.12.11 2.92-.03 3.09-.01 2.31.2 3.97-.08 5.05 4.7.09.42-.21.82-.64.82H11.82c-.34 0-.63-.26-.66-.61-.15-1.82-.4-7.23 1.74-9.32a.62.62 0 0 0 .2-.6c-.39-1.74-2.09-9.83-2.74-22.48-.07-1.5 1.12-2.78 2.64-2.78z'/%3e%3c/svg%3e",3,"matTooltip",4,"ngIf"],["class","slot-icon","src","data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51 51'%3e%3cpath d='M43.12 7.12c-4.13 2.33-17.62 1.9-17.62 1.9s-13.49.43-17.62-1.9c-.37-.21-.85-.03-.94.39-.36 1.49-.87 4.42.09 5.86.09.13.22.21.38.25 1.23.3 7.36 1.65 18.09 1.65s16.86-1.35 18.09-1.65c.15-.04.29-.12.38-.25.96-1.44.45-4.37.1-5.86-.1-.42-.58-.6-.95-.39zM9.27 28.34s0 2.34 2.27 2.34 2.27-2.34 2.27-2.34V15.73c-1.93-.22-3.45-.45-4.55-.65v13.26zM16.3 34.8s0 2.34 2.27 2.34 2.27-2.34 2.27-2.34V16.24c-1.66-.06-3.18-.16-4.55-.27V34.8zM37.18 28.34s0 2.34 2.27 2.34 2.27-2.34 2.27-2.34V15.08c-1.09.2-2.61.44-4.55.65v12.61zM30.15 34.8s0 2.34 2.27 2.34 2.27-2.34 2.27-2.34V15.97c-1.36.11-2.88.21-4.55.27V34.8zM23.23 16.31v25.31s0 2.34 2.27 2.34 2.27-2.34 2.27-2.34V16.31c-.74.01-1.49.02-2.27.02-.78.01-1.54 0-2.27-.02z'/%3e%3c/svg%3e",3,"matTooltip",4,"ngIf"],[1,"mod-info"],["src","https://www.bungie.net/common/destiny2_content/icons/8861e73c6701b8347cef025d400cd3dc.png",1,"mod-icon","mod-major"],["src","https://www.bungie.net/common/destiny2_content/icons/a6694a4ff65d371d19330fb10415b315.png",1,"mod-icon","mod-minor"],["viewBox","0 0 100 100",1,"mod-number","mod-major"],["font-size","25px","text-anchor","end","x","87","y","30"],["viewBox","0 0 100 100",1,"mod-number","mod-minor"],[1,"overlay"],["src","https://www.bungie.net/common/destiny2_content/icons/b2228e67e72fad2eb37735a33e0d0116.png",1,"mod-icon","mod-major"],["src","https://www.bungie.net/common/destiny2_content/icons/ab1ffe5128806c3639e531f89a2d72d1.png",1,"mod-icon","mod-minor"],["src","https://www.bungie.net/common/destiny2_content/icons/3a5a2d6ee50b2611ebc4d4806d29301a.png",1,"mod-icon","mod-major"],["src","https://www.bungie.net/common/destiny2_content/icons/f841f379751b7672fca0e5f231e92638.png",1,"mod-icon","mod-minor"],["src","https://www.bungie.net/common/destiny2_content/icons/7b64c0b8014a57c6c297babb18c2239e.png",1,"mod-icon","mod-major"],["src","https://www.bungie.net/common/destiny2_content/icons/dbd1615501778b66bca2764b9a561044.png",1,"mod-icon","mod-minor"],["src","https://www.bungie.net/common/destiny2_content/icons/4251f77e3b24900e262f16d5587980ef.png",1,"mod-icon","mod-major"],["src","https://www.bungie.net/common/destiny2_content/icons/e0fc8c022c2ab49ef92caff5843db7da.png",1,"mod-icon","mod-minor"],["src","https://www.bungie.net/common/destiny2_content/icons/98408051297c26cb033cb761ab955fac.png",1,"mod-icon","mod-major"],["src","https://www.bungie.net/common/destiny2_content/icons/f26479a3462676d613f135657ecad45a.png",1,"mod-icon","mod-minor"],[3,"value","click"],["mat-menu-item","",3,"click"],[1,"menuArmorIcon",3,"perk"],[1,"menuArmorText"],["src","data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51 51'%3e%3cpath d='M24.77 7.03c-8.15.38-14.42 7.41-14.42 15.57v16.06c0 .23.13.44.34.53l10.33 4.68c.78.35 1.66-.22 1.66-1.07V31.9c0-.39-.19-.75-.52-.97l-5.39-3.64c-.87-.52-1.43-1.5-1.34-2.61.13-1.46 1.46-2.52 2.93-2.52h4.36c.65 0 1.17.53 1.17 1.17v6.71s0 .61 1.61.61 1.61-.61 1.61-.61v-6.71c0-.65.52-1.17 1.17-1.17h4.36c1.47 0 2.8 1.06 2.93 2.52.1 1.11-.47 2.09-1.34 2.61l-5.39 3.64c-.32.22-.52.58-.52.97v10.91c0 .85.88 1.42 1.66 1.07l10.33-4.68c.21-.1.34-.3.34-.53v-16.5c.01-8.61-7.18-15.55-15.88-15.14z'/%3e%3c/svg%3e",1,"slot-icon",3,"matTooltip"],["tooltip","matTooltip"],["src","data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51 51'%3e%3cpath d='M40.1 30.03c.39-.47.59-1.11.42-1.8-.18-.76-.81-1.39-1.58-1.55-.81-.17-1.54.14-2.01.68 0 0-.03.04-.05.07l-.12.15c-.47.61-1.95 2.37-3.29 2.45-1.62.1 2.51-16.14 2.51-16.14h-.01c.04-.15.07-.31.07-.48 0-.98-.79-1.77-1.77-1.77-.81 0-1.49.55-1.69 1.29h-.01s-.01.03-.01.05l-.03.15c-.24 1.21-1.68 8.2-2.81 8.89-1.24.75-1.22-13.23-1.22-13.23 0-.98-.79-1.77-1.77-1.77s-1.77.79-1.77 1.77c0 0-.35 12.85-1.73 12.73-1.37-.12-2.47-10.67-2.47-10.67 0-.98-.79-1.77-1.77-1.77s-1.77.79-1.77 1.77c0 .15.02.28.06.42.27 2.06 1.36 11.12-.06 11.12-1.6 0-3.68-6.35-3.68-6.35a1.62 1.62 0 0 0-3.14.56c0 .09.01.17.03.25l-.03.01s.02.07.07.19c.02.09.05.17.09.25.99 2.71 6.28 17.46 7.26 26.23.03.25.24.44.49.44H30.5a.5.5 0 0 0 .5-.45c.1-1.04.52-3.68 2.09-5.54 1.8-2.14 6.06-6.89 6.86-7.79.02-.02.03-.04.05-.06.07-.06.11-.1.1-.1z'/%3e%3c/svg%3e",1,"slot-icon",3,"matTooltip"],["src","data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51 51'%3e%3cpath d='M42.49 13.55c-1.06-1.51-4.05-5.05-9.52-6.49a.635.635 0 0 0-.78.5c-.35 2.04-1.78 8.08-6.69 8.08s-6.34-6.04-6.69-8.08a.635.635 0 0 0-.78-.5c-5.47 1.44-8.46 4.98-9.52 6.49-.24.34-.09.8.3.94 2.01.7 7.34 2.94 7.34 7.01 0 4.24-4.47 6.89-5.87 7.61-.25.13-.38.4-.33.67 1.44 7.62 7.55 13.09 8.67 14.04.11.1.25.15.4.15h12.94c.15 0 .29-.05.4-.15 1.12-.95 7.23-6.42 8.67-14.04a.624.624 0 0 0-.33-.67c-1.4-.72-5.87-3.37-5.87-7.61 0-4.08 5.33-6.32 7.34-7.01.41-.14.56-.61.32-.94z'/%3e%3c/svg%3e",1,"slot-icon",3,"matTooltip"],["src","data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51 51'%3e%3cpath d='M13 7.6h13.96c1.73 0 2.99 1.64 2.54 3.32l-5.44 20.46c-.07.28.03.57.28.72.99.62 4.64 2.57 8.15 5.78.12.11 2.92-.03 3.09-.01 2.31.2 3.97-.08 5.05 4.7.09.42-.21.82-.64.82H11.82c-.34 0-.63-.26-.66-.61-.15-1.82-.4-7.23 1.74-9.32a.62.62 0 0 0 .2-.6c-.39-1.74-2.09-9.83-2.74-22.48-.07-1.5 1.12-2.78 2.64-2.78z'/%3e%3c/svg%3e",1,"slot-icon",3,"matTooltip"],["src","data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51 51'%3e%3cpath d='M43.12 7.12c-4.13 2.33-17.62 1.9-17.62 1.9s-13.49.43-17.62-1.9c-.37-.21-.85-.03-.94.39-.36 1.49-.87 4.42.09 5.86.09.13.22.21.38.25 1.23.3 7.36 1.65 18.09 1.65s16.86-1.35 18.09-1.65c.15-.04.29-.12.38-.25.96-1.44.45-4.37.1-5.86-.1-.42-.58-.6-.95-.39zM9.27 28.34s0 2.34 2.27 2.34 2.27-2.34 2.27-2.34V15.73c-1.93-.22-3.45-.45-4.55-.65v13.26zM16.3 34.8s0 2.34 2.27 2.34 2.27-2.34 2.27-2.34V16.24c-1.66-.06-3.18-.16-4.55-.27V34.8zM37.18 28.34s0 2.34 2.27 2.34 2.27-2.34 2.27-2.34V15.08c-1.09.2-2.61.44-4.55.65v12.61zM30.15 34.8s0 2.34 2.27 2.34 2.27-2.34 2.27-2.34V15.97c-1.36.11-2.88.21-4.55.27V34.8zM23.23 16.31v25.31s0 2.34 2.27 2.34 2.27-2.34 2.27-2.34V16.31c-.74.01-1.49.02-2.27.02-.78.01-1.54 0-2.27-.02z'/%3e%3c/svg%3e",1,"slot-icon",3,"matTooltip"]],template:function(e,o){if(1&e&&(t.TgZ(0,"div",0)(1,"div",1)(2,"div",2),t.NdJ("mouseout",function(){return o.hoveredSlot=-1}),t.TgZ(3,"div",3),t.NdJ("click",function(){return o.setValue(5)})("mouseover",function(){return o.hoveredSlot=0}),t.qZA(),t.TgZ(4,"div",3),t.NdJ("click",function(){return o.setValue(5)})("mouseover",function(){return o.hoveredSlot=0}),t.qZA(),t.TgZ(5,"div",3),t.NdJ("click",function(){return o.setValue(5)})("mouseover",function(){return o.hoveredSlot=0}),t.qZA(),t.TgZ(6,"div",3),t.NdJ("click",function(){return o.setValue(5)})("mouseover",function(){return o.hoveredSlot=0}),t.qZA(),t.TgZ(7,"div",3),t.NdJ("click",function(){return o.setValue(5)})("mouseover",function(){return o.hoveredSlot=0}),t.qZA(),t.TgZ(8,"div",4),t.NdJ("click",function(){return o.setValue(4)})("mouseover",function(){return o.hoveredSlot=1}),t.qZA(),t.TgZ(9,"div",4),t.NdJ("click",function(){return o.setValue(3)})("mouseover",function(){return o.hoveredSlot=2}),t.qZA(),t.TgZ(10,"div",4),t.NdJ("click",function(){return o.setValue(2)})("mouseover",function(){return o.hoveredSlot=3}),t.qZA(),t.TgZ(11,"div",4),t.NdJ("click",function(){return o.setValue(1)})("mouseover",function(){return o.hoveredSlot=4}),t.qZA(),t.TgZ(12,"div",4),t.NdJ("click",function(){return o.setValue(0)})("mouseover",function(){return o.hoveredSlot=5}),t.qZA()(),t._UZ(13,"br"),t.YNc(14,nr,61,24,"div",5),t.qZA(),t.TgZ(15,"mat-button-toggle-group",6),t.YNc(16,or,2,5,"mat-button-toggle",7),t.qZA(),t.TgZ(17,"div",8)(18,"mat-button-toggle-group")(19,"mat-button-toggle",9),t._UZ(20,"app-armor-perk-icon",10),t.TgZ(21,"mat-icon"),t._uU(22,"arrow_drop_down"),t.qZA()(),t.TgZ(23,"mat-button-toggle",11),t.NdJ("click",function(s){return o.toggleArmorPerkLock(),s.stopPropagation()}),t.YNc(24,ir,2,0,"mat-icon",12),t.YNc(25,ar,2,0,"mat-icon",12),t.qZA()(),t.TgZ(26,"mat-menu",13,14),t.YNc(28,sr,5,4,"ng-container",15),t.qZA()(),t.TgZ(29,"span",16),t.YNc(30,rr,2,1,"img",17),t.YNc(31,lr,2,1,"img",18),t.YNc(32,cr,2,1,"img",19),t.YNc(33,mr,2,1,"img",20),t.YNc(34,dr,2,1,"img",21),t.qZA()()),2&e){const a=t.MAs(27);t.ekj("disabled",o.disabled),t.xp6(8),t.ekj("active",5-o.maximumModSlots>=1)("hovered-higher",o.hoveredSlot>-1&&o.hoveredSlot<1)("hovered",o.hoveredSlot>=1)("blocked",o.featureDisabled),t.xp6(1),t.ekj("active",5-o.maximumModSlots>=2)("hovered-higher",o.hoveredSlot>-1&&o.hoveredSlot<2)("hovered",o.hoveredSlot>=2)("blocked",o.featureDisabled),t.xp6(1),t.ekj("active",5-o.maximumModSlots>=3)("hovered-higher",o.hoveredSlot>-1&&o.hoveredSlot<3)("hovered",o.hoveredSlot>=3)("blocked",o.featureDisabled),t.xp6(1),t.ekj("active",5-o.maximumModSlots>=4)("hovered-higher",o.hoveredSlot>-1&&o.hoveredSlot<4)("hovered",o.hoveredSlot>=4)("blocked",o.featureDisabled),t.xp6(1),t.ekj("active",5-o.maximumModSlots==5)("hovered-higher",o.hoveredSlot>-1&&o.hoveredSlot<5)("hovered",5===o.hoveredSlot)("blocked",o.featureDisabled),t.xp6(2),t.Q6J("ngVar",o.hoveredSlot>-1?5-o.hoveredSlot:o.maximumModSlots),t.xp6(2),t.Q6J("ngForOf",o.ModRange),t.xp6(2),t.ekj("impossible",!o.isPossible),t.xp6(1),t.Q6J("matMenuTriggerFor",a),t.xp6(1),t.Q6J("perk",o.armorPerk),t.xp6(3),t.MGl("matTooltip","Force the selected perk or slot to be on a ",o.slotName,"."),t.Q6J("disabled",o.disabled),t.xp6(1),t.Q6J("ngIf",!o.armorPerkLock),t.xp6(1),t.Q6J("ngIf",o.armorPerkLock),t.xp6(3),t.Q6J("ngForOf",o.availableArmorPerks),t.xp6(2),t.Q6J("ngIf",o.slot===o.ArmorSlot.ArmorSlotHelmet),t.xp6(1),t.Q6J("ngIf",o.slot===o.ArmorSlot.ArmorSlotGauntlet),t.xp6(1),t.Q6J("ngIf",o.slot===o.ArmorSlot.ArmorSlotChest),t.xp6(1),t.Q6J("ngIf",o.slot===o.ArmorSlot.ArmorSlotLegs),t.xp6(1),t.Q6J("ngIf",o.slot===o.ArmorSlot.ArmorSlotClass)}},dependencies:[y.sg,y.O5,N.gM,j.Hw,vt.VK,vt.OP,vt.p6,it.A9,it.Yi,Ct,Wt],styles:[".slot-icon-container[_ngcontent-%COMP%]{float:right;position:relative}.slot-icon-container[_ngcontent-%COMP%] .slot-icon[_ngcontent-%COMP%]{height:30px;position:absolute;left:-30px;filter:invert(1) drop-shadow(1px 1px 3px rgba(0,0,0,.25))!important}.container[_ngcontent-%COMP%]{height:60px}.select-button[_ngcontent-%COMP%]{min-width:40px}.selector-element[_ngcontent-%COMP%]{position:relative;float:right;width:90px;height:70px;top:-21px}.selector-element[_ngcontent-%COMP%] .lock[_ngcontent-%COMP%]{position:absolute;bottom:2px;left:60px}.selector-element[_ngcontent-%COMP%] .element-list[_ngcontent-%COMP%]{float:left;width:70px;padding-left:5px}.selector-element[_ngcontent-%COMP%] .element-list[_ngcontent-%COMP%] .element-icon[_ngcontent-%COMP%]{border:rgba(0,0,0,0) solid 2px;height:26px;width:26px;margin-right:1px;margin-bottom:1px;margin-top:1px;cursor:pointer;filter:grayscale(.4)}.selector-element[_ngcontent-%COMP%] .element-list[_ngcontent-%COMP%] .element-icon[_ngcontent-%COMP%]:hover{filter:grayscale(.2)}.selector-element[_ngcontent-%COMP%] .element-list[_ngcontent-%COMP%] .element-icon.selected[_ngcontent-%COMP%]{filter:grayscale(0)}[_nghost-%COMP%] .selector-slots .mat-button-toggle{background-color:inherit}.modslot-selection[_ngcontent-%COMP%]{width:180px}.selector-slots[_ngcontent-%COMP%]{position:relative;float:right;top:-10px}.selector-slots[_ngcontent-%COMP%] .lock[_ngcontent-%COMP%]{position:absolute;bottom:2px;left:140px}.selector-slots[_ngcontent-%COMP%] .element-list[_ngcontent-%COMP%]{float:left;height:70px;width:175px;padding-left:5px}.selector-slots[_ngcontent-%COMP%] .element-list[_ngcontent-%COMP%] .element-icon[_ngcontent-%COMP%]{height:30px;width:30px;border:rgba(0,0,0,0) solid 2px;margin-right:1px;margin-top:-2px;cursor:pointer}.selector-slots[_ngcontent-%COMP%] .element-list[_ngcontent-%COMP%] .element-icon.disabled[_ngcontent-%COMP%]{opacity:.5;cursor:default;border:rgba(0,0,0,0) solid 2px!important}.impossible[_ngcontent-%COMP%]{background-color:#ff00004d;cursor:help}.left_line[_ngcontent-%COMP%]{pointer-events:none;height:15px;width:100%;border-left:1px solid white;border-bottom:1px solid white;position:absolute;bottom:0px;left:0}.overlay-icon-container[_ngcontent-%COMP%]{position:relative}.overlay-icon-container[_ngcontent-%COMP%] .overlay-icon[_ngcontent-%COMP%]{width:20px;position:absolute;left:7px;bottom:11px;pointer-events:none}.element-icon[_ngcontent-%COMP%]:hover{border:cornflowerblue solid 2px!important}.selected[_ngcontent-%COMP%], .selected[_ngcontent-%COMP%]:hover{background-color:#89b2ff3d;border:#0059ff solid 2px!important}.energy-container[_ngcontent-%COMP%] .energy-bar[_ngcontent-%COMP%]{float:left;margin-right:3px;width:20px;height:10px;border:white solid 2px;cursor:pointer}.energy-container[_ngcontent-%COMP%] .energy-bar.none[_ngcontent-%COMP%]{border:indianred solid 2px}.energy-container[_ngcontent-%COMP%] .energy-bar[_ngcontent-%COMP%]:hover, .energy-container[_ngcontent-%COMP%] .hovered[_ngcontent-%COMP%]{background-color:#6e6e6e}.energy-container[_ngcontent-%COMP%] .hovered-higher[_ngcontent-%COMP%]{background-color:#0000!important}.energy-container[_ngcontent-%COMP%] .energy-bar.active[_ngcontent-%COMP%]{background-color:#fff}.energy-container[_ngcontent-%COMP%] .energy-bar.blocked[_ngcontent-%COMP%]{border:#606060 solid 2px;background-color:#6e6e6e}.mod-info[_ngcontent-%COMP%]{position:relative;float:left;height:40px;width:40px;margin-right:5px}.mod-info[_ngcontent-%COMP%] .mod-number[_ngcontent-%COMP%]{position:absolute;top:1px;bottom:1px;right:1px;left:1px;pointer-events:none;fill:#e0e0e0}.mod-info[_ngcontent-%COMP%] .mod-minor[_ngcontent-%COMP%]{display:none}.mod-info[_ngcontent-%COMP%] .overlay[_ngcontent-%COMP%]{position:absolute;top:0px;width:100%;height:100%;background:linear-gradient(to top left,rgba(0,0,0,0) 0%,rgba(0,0,0,0) calc(50% - .8px),rgb(0,0,0) 50%,rgba(0,0,0,0) calc(50% + .8px),rgba(0,0,0,0) 100%),linear-gradient(to top right,rgba(0,0,0,0) 0%,rgba(0,0,0,0) calc(50% - .8px),rgb(0,0,0) 50%,rgba(0,0,0,0) calc(50% + .8px),rgba(0,0,0,0) 100%)}.mod-info[_ngcontent-%COMP%] .mod-icon[_ngcontent-%COMP%]{width:40px;height:40px}.mod-info[_ngcontent-%COMP%] .mod-minor[_ngcontent-%COMP%]{border:rgba(0,0,0,0) solid 3px;width:34px;height:34px}.mod-info.major[_ngcontent-%COMP%] .overlay[_ngcontent-%COMP%], .mod-info.minor[_ngcontent-%COMP%] .overlay[_ngcontent-%COMP%]{display:none}.mod-info.minor[_ngcontent-%COMP%] .mod-minor[_ngcontent-%COMP%]{display:block}.mod-info.minor[_ngcontent-%COMP%] .mod-major[_ngcontent-%COMP%]{display:none}.menuArmorIcon[_ngcontent-%COMP%]{position:absolute;top:8px}.menuArmorText[_ngcontent-%COMP%]{padding-left:35px}.selected-menu[_ngcontent-%COMP%]{background-color:#89b2ff3d}.selected-menu[_ngcontent-%COMP%]:hover{background-color:#89b2ff4d} .modslot-select-scroll-menu{overflow-y:auto;max-height:250px!important}"]}),n})(),pr=(()=>{class n{constructor(){}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-slot-limitation-title"]],decls:5,vars:0,consts:[[1,"energy"],[1,"selector-slots"]],template:function(e,o){1&e&&(t.TgZ(0,"div")(1,"div",0),t._uU(2," Energy "),t.qZA(),t.TgZ(3,"span",1),t._uU(4," Modslots "),t.qZA()())},styles:[".energy[_ngcontent-%COMP%]{border-bottom:#a1a1a1 1px solid;margin-bottom:6px}.selector-element[_ngcontent-%COMP%]{position:relative;float:right;width:90px;top:-26px}.selector-slots[_ngcontent-%COMP%]{position:relative;float:right;width:155px;top:-26px;text-align:center}"]}),n})();function gr(n,i){1&n&&(t.TgZ(0,"mat-toolbar",13),t._uU(1," Some of your chosen limitations contain no armor pieces and will yield no results.\n"),t.qZA())}function _r(n,i){1&n&&(t.TgZ(0,"mat-toolbar",13),t._uU(1," The mod cost limitation is currently disabled. Modslot filtering still works.\n"),t.qZA())}let fr=(()=>{class n{constructor(e){this.config=e,this.ArmorSlot=C.y,this.ArmorPerkOrSlot=r.Pn,this.possibilityList=[!0,!0,!0,!0,!0],this.allPossible=!0,this.disabledSlotLimitation=!S_featureFlags_enableModslotLimitation}updatePossibility(e,o){this.possibilityList[e]=o,this.allPossible=5==this.possibilityList.filter(a=>!!a).length}clear(){this.config.modifyConfiguration(e=>{for(let o=0;o<5;o++)e.armorPerks[o+1]={fixed:!0,value:0},e.maximumModSlots[o+1]={fixed:!0,value:5}})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(B))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-desired-mod-selection"]],decls:129,vars:16,consts:[["color","warn","class","mat-elevation-z4 impossible-container",4,"ngIf"],[1,"container"],[3,"slot","possible"],["id","clear-container"],["color","warn","mat-stroked-button","",3,"click"],[1,"minispace"],[1,"mat-elevation-z6"],["aria-hidden","false","inline",""],["id","explanation-description"],[1,"text-highlight"],[1,"example-usecase"],[1,"modslot-legend"],[3,"perk"],["color","warn",1,"mat-elevation-z4","impossible-container"]],template:function(e,o){1&e&&(t.YNc(0,gr,2,0,"mat-toolbar",0),t.TgZ(1,"div",1),t._UZ(2,"app-slot-limitation-title"),t.TgZ(3,"app-slot-limitation-selection",2),t.NdJ("possible",function(s){return o.updatePossibility(0,s)}),t.qZA(),t._UZ(4,"br"),t.TgZ(5,"app-slot-limitation-selection",2),t.NdJ("possible",function(s){return o.updatePossibility(1,s)}),t.qZA(),t._UZ(6,"br"),t.TgZ(7,"app-slot-limitation-selection",2),t.NdJ("possible",function(s){return o.updatePossibility(2,s)}),t.qZA(),t._UZ(8,"br"),t.TgZ(9,"app-slot-limitation-selection",2),t.NdJ("possible",function(s){return o.updatePossibility(3,s)}),t.qZA(),t._UZ(10,"br"),t.TgZ(11,"app-slot-limitation-selection",2),t.NdJ("possible",function(s){return o.updatePossibility(4,s)}),t.qZA()(),t.TgZ(12,"div",3)(13,"button",4),t.NdJ("click",function(){return o.clear()}),t._uU(14,"Clear the whole selection"),t.qZA()(),t._UZ(15,"div",5),t.YNc(16,_r,2,0,"mat-toolbar",0),t._UZ(17,"div",5),t.TgZ(18,"mat-accordion")(19,"mat-expansion-panel",6)(20,"mat-expansion-panel-header")(21,"mat-panel-title")(22,"mat-icon",7),t._uU(23,"info"),t.qZA(),t._uU(24," Explanation "),t.qZA(),t.TgZ(25,"mat-panel-description"),t._uU(26," Detailed instructions for this section. "),t.qZA()(),t.TgZ(27,"div",8),t._uU(28," This section allows you to further finetune the results to your requirements."),t._UZ(29,"br")(30,"div",5),t.TgZ(31,"u"),t._uU(32,"Limitation of available stat mod types"),t.qZA(),t._UZ(33,"br"),t._uU(34," First off, you are able to "),t.TgZ(35,"span",9),t._uU(36,"select the kind and amount of stat mods"),t.qZA(),t._uU(37," you want. By filling the bars you "),t.TgZ(38,"span",9),t._uU(39,"specify how many modslots are already occupied"),t.qZA(),t._uU(40," and thus the tool knows how much space it is able to use for your builds. Hover over the bars, it will show you which mods are available after you changed your selection. "),t._UZ(41,"div",5),t.TgZ(42,"div",10),t._uU(43,' Example Use Case: "On one item I can only use up to four recovery mods, no major intellect mod. One item can not hold any mods". In this scenario you would set one slot to 10 used slots, and the rest to 6. '),t.qZA(),t._UZ(44,"br"),t.TgZ(45,"u"),t._uU(46,"Filter for Elemental Affinity and Armor Perk/Slot"),t.qZA(),t._UZ(47,"br"),t._uU(48," This allows you to super-finetune your elemental and armor-perk requirements. You can change the settings for "),t.TgZ(49,"span",9),t._uU(50,"each armor slot"),t.qZA(),t._uU(51,". There are two modes per armor slot: "),t.TgZ(52,"span",9),t._uU(53,"Locked"),t.qZA(),t._uU(54," and "),t.TgZ(55,"span",9),t._uU(56,"Unlocked"),t.qZA(),t._uU(57,". Per default each entry is in the "),t.TgZ(58,"span",9),t._uU(59,"Locked"),t.qZA(),t._uU(60," mode. "),t._UZ(61,"div",5),t.TgZ(62,"span",9),t._uU(63,"Locked"),t.qZA(),t._uU(64," means that "),t.TgZ(65,"span",9),t._uU(66,"this armor slot must have"),t.qZA(),t._uU(67," the selected element or perk. "),t._UZ(68,"div",5),t.TgZ(69,"span",9),t._uU(70,"Unlocked"),t.qZA(),t._uU(71," means that the perk must exist, but "),t.TgZ(72,"span",9),t._uU(73,"the exact armor slot is irrelevant"),t.qZA(),t._uU(74,". That means that the tool can decide where it puts the desired element or perk. "),t._UZ(75,"div",5),t.TgZ(76,"div",10),t._uU(77,' Example Use Case: "The Class Item and Gauntlet '),t.TgZ(78,"span",9),t._uU(79,"must be stasis"),t.qZA(),t._uU(80,'. Oh, and I need two solar and one arc modslots, but the position does not matter". In this scenario, Class Item and Gauntlet would be '),t.TgZ(81,"span",9),t._uU(82,"Locked"),t.qZA(),t._uU(83," and the rest would be "),t.TgZ(84,"span",9),t._uU(85,"Unlocked"),t.qZA(),t._uU(86,". "),t.qZA(),t._UZ(87,"br"),t._uU(88," Legend: "),t.TgZ(89,"table",11)(90,"tr")(91,"td"),t._UZ(92,"app-armor-perk-icon",12),t.qZA(),t.TgZ(93,"td"),t._uU(94,"Vault of Glass"),t.qZA(),t.TgZ(95,"td"),t._UZ(96,"app-armor-perk-icon",12),t.qZA(),t.TgZ(97,"td"),t._uU(98,"Deep Stone Crypt"),t.qZA(),t.TgZ(99,"td"),t._UZ(100,"app-armor-perk-icon",12),t.qZA(),t.TgZ(101,"td"),t._uU(102,"Garden of Salvation"),t.qZA()(),t.TgZ(103,"tr")(104,"td"),t._UZ(105,"app-armor-perk-icon",12),t.qZA(),t.TgZ(106,"td"),t._uU(107,"Last Wish"),t.qZA(),t.TgZ(108,"td"),t._UZ(109,"app-armor-perk-icon",12),t.qZA(),t.TgZ(110,"td"),t._uU(111,"Vow of the Disciple"),t.qZA(),t.TgZ(112,"td"),t._UZ(113,"app-armor-perk-icon",12),t.qZA(),t.TgZ(114,"td"),t._uU(115,"Nightmare Modslot"),t.qZA()(),t.TgZ(116,"tr")(117,"td"),t._UZ(118,"app-armor-perk-icon",12),t.qZA(),t.TgZ(119,"td"),t._uU(120,"Artifice Modslot"),t.qZA(),t.TgZ(121,"td"),t._UZ(122,"app-armor-perk-icon",12),t.qZA(),t.TgZ(123,"td"),t._uU(124,"Iron Banner Perk"),t.qZA(),t.TgZ(125,"td"),t._UZ(126,"app-armor-perk-icon",12),t.qZA(),t.TgZ(127,"td"),t._uU(128,"Uniformed Officer Perk"),t.qZA()()()()()()),2&e&&(t.Q6J("ngIf",!o.allPossible),t.xp6(3),t.Q6J("slot",o.ArmorSlot.ArmorSlotHelmet),t.xp6(2),t.Q6J("slot",o.ArmorSlot.ArmorSlotGauntlet),t.xp6(2),t.Q6J("slot",o.ArmorSlot.ArmorSlotChest),t.xp6(2),t.Q6J("slot",o.ArmorSlot.ArmorSlotLegs),t.xp6(2),t.Q6J("slot",o.ArmorSlot.ArmorSlotClass),t.xp6(5),t.Q6J("ngIf",o.disabledSlotLimitation),t.xp6(76),t.Q6J("perk",o.ArmorPerkOrSlot.SlotVaultOfGlass),t.xp6(4),t.Q6J("perk",o.ArmorPerkOrSlot.SlotDeepStoneCrypt),t.xp6(4),t.Q6J("perk",o.ArmorPerkOrSlot.SlotGardenOfSalvation),t.xp6(5),t.Q6J("perk",o.ArmorPerkOrSlot.SlotLastWish),t.xp6(4),t.Q6J("perk",o.ArmorPerkOrSlot.SlotVowOfTheDisciple),t.xp6(4),t.Q6J("perk",o.ArmorPerkOrSlot.SlotNightmare),t.xp6(5),t.Q6J("perk",o.ArmorPerkOrSlot.SlotArtifice),t.xp6(4),t.Q6J("perk",o.ArmorPerkOrSlot.PerkIronBanner),t.xp6(4),t.Q6J("perk",o.ArmorPerkOrSlot.PerkUniformedOfficer))},dependencies:[y.O5,g.lW,j.Hw,W.Ye,J.pp,J.ib,J.yz,J.yK,J.u4,ur,Wt,pr],styles:[".container[_ngcontent-%COMP%]{margin-bottom:10px}.impossible-container[_ngcontent-%COMP%]{text-align:center;margin-right:auto;margin-left:auto;width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content;font-size:15px;line-height:20px;margin-bottom:10px}.element-icon[_ngcontent-%COMP%]{height:30px;width:30px}.element-icon.disabled[_ngcontent-%COMP%]{opacity:.5;cursor:default;pointer-events:none}.overlay-icon-container[_ngcontent-%COMP%]{position:relative}.overlay-icon-container[_ngcontent-%COMP%] .overlay-icon[_ngcontent-%COMP%]{width:20px;position:absolute;left:5px;bottom:9px;pointer-events:none}.modslot-legend[_ngcontent-%COMP%]{border-collapse:separate;border-spacing:0 0;width:100%}.modslot-legend[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:0}#explanation-description[_ngcontent-%COMP%]{width:520px}.minispace[_ngcontent-%COMP%]{height:7px}.text-highlight[_ngcontent-%COMP%]{color:#cddcef}.example-usecase[_ngcontent-%COMP%]{font-size:small;line-height:normal}"]}),n})();function hr(n,i){if(1&n&&t._UZ(0,"img",6),2&n){const e=t.oxw();t.s9C("alt",e.exoticPerk.name),t.MGl("src","https://bungie.net/",e.exoticPerk.icon,"",t.LSH)}}function xr(n,i){1&n&&(t.TgZ(0,"tr")(1,"td"),t._uU(2,"Loading exotic perk.."),t.qZA()())}function Tr(n,i){1&n&&(t.TgZ(0,"tr")(1,"td"),t._uU(2,"No (fixed) exotic perk available."),t.qZA()())}function yr(n,i){if(1&n&&(t.TgZ(0,"tr")(1,"td")(2,"span"),t._uU(3),t.qZA()()()),2&n){const e=t.oxw();t.xp6(3),t.Oqu(e.exoticPerk.name)}}function br(n,i){if(1&n&&(t.TgZ(0,"tr")(1,"td",7),t._uU(2),t.qZA()()),2&n){const e=t.oxw();t.xp6(2),t.hij(" ",e.exoticPerk.description," ")}}function Cr(n,i){1&n&&(t.ynx(0),t._uU(1," and "),t.BQk())}function vr(n,i){if(1&n&&(t.ynx(0),t._uU(1," in your collection "),t.YNc(2,Cr,2,0,"ng-container",4),t.BQk()),2&n){const e=t.oxw(2);t.xp6(2),t.Q6J("ngIf",e.vendor)}}function Ar(n,i){1&n&&(t.ynx(0),t._uU(1,"available at a vendor"),t.BQk())}function wr(n,i){if(1&n&&(t.TgZ(0,"tr",8)(1,"td",7),t._uU(2," This exotic is not in your inventory but it is "),t.YNc(3,vr,3,1,"ng-container",4),t.YNc(4,Ar,2,0,"ng-container",4),t._uU(5,". You can still generate a loadout with this exotic, but you will have to grab it by yourself. "),t.qZA()()),2&n){const e=t.oxw();t.xp6(3),t.Q6J("ngIf",e.collection),t.xp6(1),t.Q6J("ngIf",e.vendor)}}let Zr=(()=>{class n{constructor(e,o){this.inv=e,this.iconService=o,this.vendor=!1,this.collection=!1,this.exoticPerkNotThere=!1}ngOnInit(){var e=this;return(0,m.Z)(function*(){e.exoticPerk=yield e.iconService.getItemCached(e.armor?.exoticPerkHash??0),e.exoticPerkNotThere=null==e.exoticPerk})()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(K),t.Y36(de))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-exotic-perk-tooltip"]],inputs:{armor:"armor",vendor:"vendor",collection:"collection"},decls:13,vars:7,consts:[[1,"tooltip-container"],["rowspan","2",1,"perk-icon-col"],["class","perk-icon",3,"alt","src",4,"ngIf"],[1,"exotic-name"],[4,"ngIf"],["class","collection-roll-info",4,"ngIf"],[1,"perk-icon",3,"alt","src"],["colspan","2"],[1,"collection-roll-info"]],template:function(e,o){1&e&&(t.TgZ(0,"div")(1,"div",0)(2,"table")(3,"tr")(4,"td",1),t.YNc(5,hr,1,2,"img",2),t.qZA(),t.TgZ(6,"td",3),t._uU(7),t.qZA()(),t.YNc(8,xr,3,0,"tr",4),t.YNc(9,Tr,3,0,"tr",4),t.YNc(10,yr,4,1,"tr",4),t.YNc(11,br,3,1,"tr",4),t.YNc(12,wr,6,2,"tr",5),t.qZA()()()),2&e&&(t.xp6(5),t.Q6J("ngIf",o.exoticPerk),t.xp6(2),t.Oqu(null==o.armor?null:o.armor.name),t.xp6(1),t.Q6J("ngIf",!o.exoticPerk&&!o.exoticPerkNotThere),t.xp6(1),t.Q6J("ngIf",!o.exoticPerk&&o.exoticPerkNotThere),t.xp6(1),t.Q6J("ngIf",o.exoticPerk),t.xp6(1),t.Q6J("ngIf",o.exoticPerk),t.xp6(1),t.Q6J("ngIf",o.collection||o.vendor))},dependencies:[y.O5],styles:["[_nghost-%COMP%]{width:350px}.tooltip-container[_ngcontent-%COMP%]{border:1px solid gray;padding:1px 5px 4px;background:linear-gradient(#484848 0px,#2c2c2c 100%)}.perk-icon[_ngcontent-%COMP%]{width:50px;height:50px}.perk-icon-col[_ngcontent-%COMP%]{width:55px}.exotic-name[_ngcontent-%COMP%]{color:#eedb9e}.collection-roll-info[_ngcontent-%COMP%]{color:#5cc3ec;font-size:12px;margin-top:5px}"]}),n})(),Sr=(()=>{class n{constructor(e,o,a){this._overlay=e,this._overlayPositionBuilder=o,this._elementRef=a,this.showToolTip=!0,this.exoticTooltipInVendor=!1,this.exoticTooltipInCollection=!1}ngOnInit(){if(!this.showToolTip)return;const e=this._overlayPositionBuilder.flexibleConnectedTo(this._elementRef).withPositions([{originX:"center",originY:"bottom",overlayX:"center",overlayY:"top",offsetY:5},{originX:"center",originY:"top",overlayX:"center",overlayY:"bottom",offsetY:-5}]);this._overlayRef=this._overlay.create({positionStrategy:e}),this._overlayRef.addPanelClass("overlay-no-pointer-event")}show(){if(this._overlayRef&&!this._overlayRef.hasAttached()){const e=this._overlayRef.attach(new Nt.C5(Zr));e.instance.collection=this.exoticTooltipInCollection,e.instance.vendor=this.exoticTooltipInVendor,e.instance.armor=this.exoticTooltip}}hide(){this.closeToolTip()}ngOnDestroy(){this.closeToolTip()}closeToolTip(){this._overlayRef&&this._overlayRef.detach()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(pt.aV),t.Y36(pt.wJ),t.Y36(t.SBq))},n.\u0275dir=t.lG2({type:n,selectors:[["","exoticTooltip",""]],hostBindings:function(e,o){1&e&&t.NdJ("mouseenter",function(){return o.show()})("mouseleave",function(){return o.hide()})},inputs:{showToolTip:"showToolTip",exoticTooltip:"exoticTooltip",exoticTooltipInVendor:"exoticTooltipInVendor",exoticTooltipInCollection:"exoticTooltipInCollection",contentTemplate:"contentTemplate"}}),n})();function Ir(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"img",5,6),t.NdJ("click",function(a){t.CHM(e);const s=t.oxw(2);return t.KtG(s.selectExotic(-2,a))}),t.qZA()}if(2&n){const e=t.oxw(2);t.Gre("exoticIcon ",e.selectedExotics.indexOf(-2)>-1?"selected":"","")}}function Or(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"img",7,6),t.NdJ("click",function(a){t.CHM(e);const s=t.oxw(2);return t.KtG(s.selectExotic(-1,a))}),t.qZA()}if(2&n){const e=t.oxw(2);t.Gre("exoticIcon ",e.selectedExotics.indexOf(-1)>-1?"selected":"","")}}function Mr(n,i){if(1&n&&t._UZ(0,"img",12),2&n){const e=t.oxw().$implicit;t.MGl("src","https://www.bungie.net/",e.item.watermarkIcon,"",t.LSH)}}function kr(n,i){if(1&n&&t._UZ(0,"div",13),2&n){const e=t.oxw().$implicit,o=t.oxw(2);t.ekj("vendor-item",o.includeVendorRolls&&e.inVendor)("collection-item",o.includeCollectionRolls&&e.inCollection)}}function Dr(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"span",8)(1,"img",9),t.NdJ("click",function(a){const l=t.CHM(e).$implicit,d=t.oxw(2);return t.KtG((l.inInventory||d.includeCollectionRolls&&l.inCollection)&&d.selectExotic(l.item.hash,a))}),t.qZA(),t.YNc(2,Mr,1,1,"img",10),t.YNc(3,kr,1,4,"div",11),t.qZA()}if(2&n){const e=i.$implicit,o=t.oxw(2);t.xp6(1),t.Gre("exoticIcon ",o.selectedExotics.indexOf(e.item.hash)>-1?"selected":"",""),t.ekj("vendor-item",!e.inInventory&&o.includeVendorRolls&&e.inVendor)("collection-item",!e.inInventory&&o.includeCollectionRolls&&e.inCollection)("disabled",!(e.inInventory||o.includeCollectionRolls&&e.inCollection||o.includeVendorRolls&&e.inVendor)),t.MGl("src","https://www.bungie.net/",e.item.icon,"",t.LSH),t.Q6J("exoticTooltip",e.item)("exoticTooltipInVendor",!e.inInventory&&o.includeVendorRolls&&e.inVendor)("exoticTooltipInCollection",!e.inInventory&&o.includeCollectionRolls&&e.inCollection),t.xp6(1),t.Q6J("ngIf",e.item.watermarkIcon),t.xp6(1),t.Q6J("ngIf",!e.inInventory)}}function Ur(n,i){if(1&n&&(t.TgZ(0,"div"),t.YNc(1,Ir,2,3,"img",2),t.YNc(2,Or,2,3,"img",3),t.YNc(3,Dr,4,15,"span",4),t.qZA()),2&n){const e=i.$implicit,o=i.index;t.Q6J("@listAnimation",e.length),t.xp6(1),t.Q6J("ngIf",0===o),t.xp6(1),t.Q6J("ngIf",0===o),t.xp6(1),t.Q6J("ngForOf",e)}}const Er=(0,F.X$)("listAnimation",[(0,F.eR)("* <=> *",[(0,F.IO)(":enter",[(0,F.oB)({opacity:0}),(0,F.EY)("30ms",(0,F.jt)("350ms ease-out",(0,F.oB)({opacity:1})))],{optional:!0})])]);let Rr=(()=>{class n{constructor(e,o){this.inventory=e,this.config=o,this.selectedExotics=[],this.includeCollectionRolls=!1,this.includeVendorRolls=!1,this.ignoreSunsetArmor=!1,this.allowBlueArmorPieces=!1,this.currentClass=U.Titan,this.exotics=[],this.ngUnsubscribe=new nt.xQ}ngOnInit(){var e=this;this.config.configuration.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(function(){var o=(0,m.Z)(function*(a){(a.characterClass!=e.currentClass||0==e.exotics.length)&&(e.currentClass=a.characterClass,yield e.updateExoticsForClass()),e.includeCollectionRolls=a.includeCollectionRolls,e.includeVendorRolls=a.includeVendorRolls,e.selectedExotics=a.selectedExotics,e.ignoreSunsetArmor=a.ignoreSunsetArmor,e.allowBlueArmorPieces=a.allowBlueArmorPieces});return function(a){return o.apply(this,arguments)}}()),this.inventory.manifest.pipe((0,st.b)(10),(0,Q.R)(this.ngUnsubscribe)).subscribe((0,m.Z)(function*(){yield e.updateExoticsForClass()})),this.inventory.inventory.pipe((0,st.b)(10),(0,Q.R)(this.ngUnsubscribe)).subscribe((0,m.Z)(function*(){yield e.updateExoticsForClass()}))}updateExoticsForClass(){var e=this;return(0,m.Z)(function*(){const o=yield e.inventory.getExoticsForClass(e.currentClass);function a(s){var l={};return s.filter(function(d){var u=d.item.hash;return!l.hasOwnProperty(u)&&(l[u]=!0)})}e.exotics=[a(o.filter(s=>s.item.slot==C.y.ArmorSlotHelmet)),a(o.filter(s=>s.item.slot==C.y.ArmorSlotGauntlet)),a(o.filter(s=>s.item.slot==C.y.ArmorSlotChest)),a(o.filter(s=>s.item.slot==C.y.ArmorSlotLegs))]})()}setAllowCollectionRolls(e){this.config.modifyConfiguration(o=>{o.includeCollectionRolls=e})}setAllowVendorItems(e){this.config.modifyConfiguration(o=>{o.includeVendorRolls=e})}setAllowBlueArmorPieces(e){this.config.modifyConfiguration(o=>{o.allowBlueArmorPieces=e})}setIgnoreSunsetArmor(e){this.config.modifyConfiguration(o=>{o.ignoreSunsetArmor=e})}selectExotic(e,o){const a=this.selectedExotics.indexOf(e);a>-1?this.selectedExotics.splice(a,1):-1==e?this.selectedExotics=[-1]:(0==this.selectedExotics.length||!o.shiftKey)&&(this.selectedExotics=[e]),this.config.modifyConfiguration(s=>{s.selectedExotics=this.selectedExotics})}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(K),t.Y36(B))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-desired-exotic-selection"]],decls:19,vars:5,consts:[[4,"ngFor","ngForOf"],["color","primary",3,"checked","change"],["src","https://www.bungie.net/common/destiny2_content/icons/763634b78eb22168ac707500588b7333.jpg","matTooltip","Force to use ANY exotic",3,"class","click",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/b4d05ef69d0c3227a7d4f7f35bbc2848.png","matTooltip","Force to use NO exotic at all",3,"class","click",4,"ngIf"],["class","container",4,"ngFor","ngForOf"],["src","https://www.bungie.net/common/destiny2_content/icons/763634b78eb22168ac707500588b7333.jpg","matTooltip","Force to use ANY exotic",3,"click"],["tooltip","matTooltip"],["src","https://www.bungie.net/common/destiny2_content/icons/b4d05ef69d0c3227a7d4f7f35bbc2848.png","matTooltip","Force to use NO exotic at all",3,"click"],[1,"container"],[3,"src","exoticTooltip","exoticTooltipInVendor","exoticTooltipInCollection","click"],["class","watermarkIcon",3,"src",4,"ngIf"],["class","item-source-overlay",3,"vendor-item","collection-item",4,"ngIf"],[1,"watermarkIcon",3,"src"],[1,"item-source-overlay"]],template:function(e,o){1&e&&(t.YNc(0,Ur,4,4,"div",0),t.TgZ(1,"div")(2,"mat-slide-toggle",1),t.NdJ("change",function(s){return o.setAllowCollectionRolls(s.checked)}),t._uU(3," Include "),t.TgZ(4,"u"),t._uU(5,"exotic"),t.qZA(),t._uU(6," collection rolls "),t.qZA()(),t.TgZ(7,"div")(8,"mat-slide-toggle",1),t.NdJ("change",function(s){return o.setAllowVendorItems(s.checked)}),t._uU(9," Inculde "),t.TgZ(10,"u"),t._uU(11,"legendary and exotic"),t.qZA(),t._uU(12," vendor armor (slower) "),t.qZA()(),t.TgZ(13,"div")(14,"mat-slide-toggle",1),t.NdJ("change",function(s){return o.setAllowBlueArmorPieces(s.checked)}),t._uU(15," Include white, blue and green items "),t.qZA()(),t.TgZ(16,"div")(17,"mat-slide-toggle",1),t.NdJ("change",function(s){return o.setIgnoreSunsetArmor(!s.checked)}),t._uU(18," Include sunset armor "),t.qZA()()),2&e&&(t.Q6J("ngForOf",o.exotics),t.xp6(2),t.Q6J("checked",o.includeCollectionRolls),t.xp6(6),t.Q6J("checked",o.includeVendorRolls),t.xp6(6),t.Q6J("checked",o.allowBlueArmorPieces),t.xp6(3),t.Q6J("checked",!o.ignoreSunsetArmor))},dependencies:[y.sg,y.O5,Zt.Rr,N.gM,Sr],styles:[".container[_ngcontent-%COMP%]{display:inline-block;position:relative;--icon-size: 36px}.exoticIcon[_ngcontent-%COMP%]{width:36px;height:36px;margin-right:3px;border:rgba(0,0,0,0) solid 2px;cursor:pointer}.watermarkIcon[_ngcontent-%COMP%]{width:36px;height:36px;margin-left:-41px;margin-top:2px;position:absolute;pointer-events:none}.exoticIcon[_ngcontent-%COMP%]:hover{border:cornflowerblue solid 2px}.selected[_ngcontent-%COMP%], .selected[_ngcontent-%COMP%]:hover{border:#0059ff solid 2px}[_nghost-%COMP%]{position:relative}.exoticText[_ngcontent-%COMP%]{position:absolute;text-shadow:0 0 6px #000000;background:rgba(33,33,33,.51);color:#f5f5f5;bottom:4px;right:5px}.disabled[_ngcontent-%COMP%]{filter:grayscale(1) contrast(.6)}.disabled[_ngcontent-%COMP%]:hover{cursor:default}.item-source-overlay[_ngcontent-%COMP%]{margin:2px}.item-source-overlay[_ngcontent-%COMP%]{position:absolute;left:0;top:0;width:0;pointer-events:none;border-top:calc(var(--icon-size) / 2) solid transparent;border-right:calc(var(--icon-size) / 2) solid transparent}.item-source-overlay.vendor-item[_ngcontent-%COMP%]{border-top-color:#00f}.item-source-overlay.collection-item[_ngcontent-%COMP%]{border-top-color:#90ee90}"],data:{animation:[Er]}}),n})(),Pr=(()=>{class n{constructor(e,o,a){var s=this;this.auth=e,this.membership=o,this.inventory=a,this.characters=[],this.loadCachedData(),e.logoutEvent.subscribe(l=>this.clearCachedData()),this.inventory.inventory.subscribe((0,m.Z)(function*(){yield s.updateCharacterData()}))}clearCachedData(){this.characters=[],localStorage.removeItem("cachedCharacters")}loadCachedData(){let e=localStorage.getItem("cachedCharacters")||"[]";this.characters=JSON.parse(e)}updateCharacterData(){var e=this;return(0,m.Z)(function*(){e.characters=yield e.membership.getCharacters(),localStorage.setItem("cachedCharacters",JSON.stringify(e.characters))})()}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(L),t.LFG(Rt),t.LFG(K))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function Nr(n,i){1&n&&(t.TgZ(0,"div",11),t._uU(1," Loading characters.. "),t.qZA())}function qr(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"Titan"),t.qZA())}function Jr(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"Hunter"),t.qZA())}function Yr(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"Warlock"),t.qZA())}function Lr(n,i){if(1&n&&(t.TgZ(0,"div"),t._UZ(1,"img",14),t.TgZ(2,"span",15),t._uU(3),t.qZA()()),2&n){const e=t.oxw().$implicit,o=t.oxw();t.xp6(3),t.hij("\xd7",o.itemCounts[e.clazz],"")}}function Fr(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"div",12),t.NdJ("click",function(){const s=t.CHM(e).$implicit,l=t.oxw();return t.KtG(l.selectClass(s.clazz))}),t.TgZ(1,"div",13),t.YNc(2,qr,2,0,"span",3),t.YNc(3,Jr,2,0,"span",3),t.YNc(4,Yr,2,0,"span",3),t.qZA(),t.YNc(5,Lr,4,1,"div",3),t.qZA()}if(2&n){const e=i.$implicit,o=i.index,a=t.oxw();t.Udp("background-image","url(https://bungie.net/"+e.emblemUrl+")"),t.ekj("selected",a.selectedClass===e.clazz),t.xp6(2),t.Q6J("ngIf",0===e.clazz),t.xp6(1),t.Q6J("ngIf",1===e.clazz),t.xp6(1),t.Q6J("ngIf",2===e.clazz),t.xp6(1),t.Q6J("ngIf",!!a.itemCounts[o])}}function Qr(n,i){if(1&n&&(t.TgZ(0,"div")(1,"span",16),t._UZ(2,"img",17),t._uU(3),t.ALo(4,"number"),t.qZA(),t.TgZ(5,"span",16),t._UZ(6,"img",18),t._uU(7),t.ALo(8,"number"),t.qZA(),t.TgZ(9,"span",16),t._UZ(10,"img",19),t._uU(11),t.ALo(12,"number"),t.qZA(),t.TgZ(13,"span",16),t._UZ(14,"img",20),t._uU(15),t.ALo(16,"number"),t.qZA(),t.TgZ(17,"span",16),t._UZ(18,"img",21),t._uU(19),t.ALo(20,"number"),t.qZA()()),2&n){const e=t.oxw();t.xp6(1),t.MGl("matTooltip","Ascendant Shards: ",e.storedMaterials[4257549985],""),t.xp6(2),t.hij(" ",t.xi3(4,10,e.storedMaterials[4257549985],"1.0-0")," "),t.xp6(2),t.MGl("matTooltip","Enhancement Prisms: ",e.storedMaterials[4257549984],""),t.xp6(2),t.hij(" ",t.xi3(8,13,e.storedMaterials[4257549984],"1.0-0")," "),t.xp6(2),t.MGl("matTooltip","Enhancement Cores: ",e.storedMaterials[3853748946],""),t.xp6(2),t.hij(" ",t.xi3(12,16,e.storedMaterials[3853748946],"1.0-0")," "),t.xp6(2),t.MGl("matTooltip","Legendary Shards: ",e.storedMaterials[1022552290],""),t.xp6(2),t.hij(" ",t.xi3(16,19,e.storedMaterials[1022552290],"1.0-0")," "),t.xp6(2),t.MGl("matTooltip","Glimmer: ",e.storedMaterials[3159615086],""),t.xp6(2),t.hij(" ",t.xi3(20,22,e.storedMaterials[3159615086],"1.0-0")," ")}}let Br=(()=>{class n{constructor(e,o,a){this.config=e,this.userdata=o,this.inv=a,this.itemCounts=[null,null,null],this.selectedClass=-1,this.storedMaterials=null,this.ngUnsubscribe=new nt.xQ}ngOnInit(){var e=this;this.config.configuration.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(o=>{this.selectedClass=o.characterClass;const a=-1!=this.userdata.characters.findIndex(s=>s.clazz==o.characterClass);this.userdata.characters.length>0&&!a&&this.config.modifyConfiguration(s=>{s.characterClass=this.userdata.characters[0].clazz,s.selectedExotics=[]})}),this.inv.inventory.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(function(){var o=(0,m.Z)(function*(a){yield e.loadStoredMaterials(),yield e.updateItemCount()});return function(a){return o.apply(this,arguments)}}())}selectClass(e){this.config.readonlyConfigurationSnapshot.characterClass!=e&&this.config.modifyConfiguration(o=>{o.characterClass=e,o.selectedExotics=[]})}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}updateItemCount(){var e=this;return(0,m.Z)(function*(){for(let o=0;o<3;o++)e.itemCounts[o]=yield e.inv.getItemCountForClass(o)})()}loadStoredMaterials(){var e=this;return(0,m.Z)(function*(){var o=JSON.parse(localStorage.getItem("stored-materials")||"{}");"3853748946"in o||(o[3853748946]=0),"4257549984"in o||(o[4257549984]=0),"4257549985"in o||(o[4257549985]=0),"3159615086"in o||(o[3159615086]=0),"1022552290"in o||(o[1022552290]=0),e.storedMaterials=o})()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(B),t.Y36(Pr),t.Y36(K))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-desired-class-selection"]],decls:22,vars:3,consts:[[1,"character-container"],["class","character-entry",4,"ngIf"],["class","character-entry","style","float: left",3,"selected","background-image","click",4,"ngFor","ngForOf"],[4,"ngIf"],["color","primary","fxShow","false","fxShow.lt-md","true","mat-flat-button","","routerLink","/help",2,"margin-left","15px"],["inline",""],["color","accent","href","https://ko-fi.com/mijago","matTooltip","You like my work? This leads you to ko-fi.com, where you can easily support me!","target","_blank"],["color","accent","href","http://discord.d2armorpicker.com","target","_blank"],[1,"crayon_logo_container"],["alt","","src","https://cdn.discordapp.com/emojis/917423317139480586.webp?size=96&quality=lossless",1,"crayon_logo"],["href","https://mijago.github.io/Crayon","target","_blank"],[1,"character-entry"],[1,"character-entry",2,"float","left",3,"click"],[1,"class-text"],["matTooltip","Amount of armor pieces for this class.","src","data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51 51'%3e%3cpath d='M24.77 7.03c-8.15.38-14.42 7.41-14.42 15.57v16.06c0 .23.13.44.34.53l10.33 4.68c.78.35 1.66-.22 1.66-1.07V31.9c0-.39-.19-.75-.52-.97l-5.39-3.64c-.87-.52-1.43-1.5-1.34-2.61.13-1.46 1.46-2.52 2.93-2.52h4.36c.65 0 1.17.53 1.17 1.17v6.71s0 .61 1.61.61 1.61-.61 1.61-.61v-6.71c0-.65.52-1.17 1.17-1.17h4.36c1.47 0 2.8 1.06 2.93 2.52.1 1.11-.47 2.09-1.34 2.61l-5.39 3.64c-.32.22-.52.58-.52.97v10.91c0 .85.88 1.42 1.66 1.07l10.33-4.68c.21-.1.34-.3.34-.53v-16.5c.01-8.61-7.18-15.55-15.88-15.14z'/%3e%3c/svg%3e",1,"head-icon"],["matTooltip","Amount of armor pieces for this class.",1,"armor-text"],[1,"material-listing",3,"matTooltip"],["src","https://www.bungie.net/common/destiny2_content/icons/0271d214fc3ec91b3def799a4b286b46.jpg","alt","Ascendant Shard"],["src","https://www.bungie.net/common/destiny2_content/icons/dea2a35badf7466d4c2c2697ce6e8d87.jpg","alt","Enhancement Prism"],["src","https://www.bungie.net/common/destiny2_content/icons/0a4eb695ed55b4e720ddc401460cc0f9.jpg","alt","Enhancement Core"],["src","https://www.bungie.net/common/destiny2_content/icons/18ddd0bdac721b8eb8e6f8ec2b3e813c.png","alt","Legendary Shard"],["src","https://www.bungie.net/common/destiny2_content/icons/88993eaeedad32f42072df6f77f47311.png","alt","Glimmer"]],template:function(e,o){1&e&&(t.TgZ(0,"div",0),t.YNc(1,Nr,2,0,"div",1),t.YNc(2,Fr,6,8,"div",2),t.qZA(),t.YNc(3,Qr,21,25,"div",3),t.TgZ(4,"a",4)(5,"mat-icon",5),t._uU(6,"help"),t.qZA(),t._uU(7," Help and Information about D2ArmorPicker\n"),t.qZA(),t.TgZ(8,"div"),t._uU(9," If you like my work, you can "),t.TgZ(10,"a",6),t._uU(11," support me here."),t.qZA(),t._uU(12," You can also "),t.TgZ(13,"a",7),t._uU(14," join my dev Discord! "),t.qZA(),t.TgZ(15,"div"),t._uU(16," Also check out my Discord-Bot "),t.TgZ(17,"div",8),t._UZ(18,"img",9),t.qZA(),t.TgZ(19,"a",10),t._uU(20,"Crayon"),t.qZA(),t._uU(21,", for all your item information needs! "),t.qZA()()),2&e&&(t.xp6(1),t.Q6J("ngIf",0===o.userdata.characters.length),t.xp6(1),t.Q6J("ngForOf",o.userdata.characters),t.xp6(1),t.Q6J("ngIf",null!==o.storedMaterials))},dependencies:[y.sg,y.O5,H.b8,g.zs,N.gM,j.Hw,I.yS,y.JJ],styles:[".discord-btn[_ngcontent-%COMP%]{margin-left:15px}.material-listing[_ngcontent-%COMP%]{position:relative;padding-left:22px;padding-right:10px}.material-listing[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:20px;position:absolute;top:-2px;left:0}.crayon_logo_container[_ngcontent-%COMP%]{position:relative;width:22px;display:inline-block;margin-right:3px}.crayon_logo_container[_ngcontent-%COMP%] .crayon_logo[_ngcontent-%COMP%]{position:absolute;width:22px;top:-14px} .mat-option-text{color:#fff}.character-container[_ngcontent-%COMP%]{height:50px}.character-entry[_ngcontent-%COMP%]{color:#fff;background-size:cover;background-position:left center;background-repeat:no-repeat;width:180px;height:36px;position:relative;margin-right:7px;margin-bottom:7px;border:rgba(255,255,255,0) solid 2px;opacity:.75;cursor:pointer}.character-entry[_ngcontent-%COMP%]:hover{border:rgba(255,255,255,.41) solid 2px;opacity:.98}.character-entry.selected[_ngcontent-%COMP%]{cursor:default;opacity:1;border:white solid 2px}.class-text[_ngcontent-%COMP%]{position:absolute;left:35px;top:8px;font-size:x-large;text-shadow:0 0 6px #000000}.head-icon[_ngcontent-%COMP%]{height:25px;top:6px;right:30px;position:absolute;filter:invert(1) drop-shadow(1px 1px 3px rgba(0,0,0,.25))!important}.armor-text[_ngcontent-%COMP%]{position:absolute;right:4px;top:9px;text-shadow:0 0 6px #000000;font-size:small}a[_ngcontent-%COMP%]{color:#99afe3}a[_ngcontent-%COMP%]:visited{color:#7294dc}"]}),n})();function Vr(n,i){1&n&&t._UZ(0,"img",7)}function Hr(n,i){1&n&&t._UZ(0,"img",8)}function Wr(n,i){1&n&&t._UZ(0,"img",9)}function jr(n,i){1&n&&t._UZ(0,"img",10)}function zr(n,i){1&n&&t._UZ(0,"img",11)}function Gr(n,i){1&n&&t._UZ(0,"img",12)}let fe=(()=>{class n{constructor(){this.stat=r.WB.Mobility}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-stat-icon"]],inputs:{stat:"stat"},decls:7,vars:6,consts:[[1,"statContainerWrapper"],["src","https://www.bungie.net/common/destiny2_content/icons/e26e0e93a9daf4fdd21bf64eb9246340.png","class","dialogStatIcon","alt","Mobility",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/202ecc1c6febeb6b97dafc856e863140.png","class","dialogStatIcon","alt","Resilience",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/128eee4ee7fc127851ab32eac6ca91cf.png","class","dialogStatIcon","alt","Recovery",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/79be2d4adef6a19203f7385e5c63b45b.png","class","dialogStatIcon","alt","Discipline",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/d1c154469670e9a592c9d4cbdcae5764.png","class","dialogStatIcon","alt","Intellect",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/ea5af04ccd6a3470a44fd7bb0f66e2f7.png","class","dialogStatIcon","alt","Strength",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/e26e0e93a9daf4fdd21bf64eb9246340.png","alt","Mobility",1,"dialogStatIcon"],["src","https://www.bungie.net/common/destiny2_content/icons/202ecc1c6febeb6b97dafc856e863140.png","alt","Resilience",1,"dialogStatIcon"],["src","https://www.bungie.net/common/destiny2_content/icons/128eee4ee7fc127851ab32eac6ca91cf.png","alt","Recovery",1,"dialogStatIcon"],["src","https://www.bungie.net/common/destiny2_content/icons/79be2d4adef6a19203f7385e5c63b45b.png","alt","Discipline",1,"dialogStatIcon"],["src","https://www.bungie.net/common/destiny2_content/icons/d1c154469670e9a592c9d4cbdcae5764.png","alt","Intellect",1,"dialogStatIcon"],["src","https://www.bungie.net/common/destiny2_content/icons/ea5af04ccd6a3470a44fd7bb0f66e2f7.png","alt","Strength",1,"dialogStatIcon"]],template:function(e,o){1&e&&(t.TgZ(0,"span",0),t.YNc(1,Vr,1,0,"img",1),t.YNc(2,Hr,1,0,"img",2),t.YNc(3,Wr,1,0,"img",3),t.YNc(4,jr,1,0,"img",4),t.YNc(5,zr,1,0,"img",5),t.YNc(6,Gr,1,0,"img",6),t.qZA()),2&e&&(t.xp6(1),t.Q6J("ngIf",0===o.stat),t.xp6(1),t.Q6J("ngIf",1===o.stat),t.xp6(1),t.Q6J("ngIf",2===o.stat),t.xp6(1),t.Q6J("ngIf",3===o.stat),t.xp6(1),t.Q6J("ngIf",4===o.stat),t.xp6(1),t.Q6J("ngIf",5===o.stat))},dependencies:[y.O5],styles:[".dialogStatIcon[_ngcontent-%COMP%]{position:relative;width:25px;margin-right:3px;top:4px}"]}),n})(),Kr=(()=>{class n{constructor(){}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-mod-description-tooltip"]],inputs:{mod:"mod"},decls:9,vars:2,consts:[[1,"tooltip-container"],[1,"exotic-name"]],template:function(e,o){1&e&&(t.TgZ(0,"div")(1,"div",0)(2,"table")(3,"tr")(4,"td",1),t._uU(5),t.qZA()(),t.TgZ(6,"tr")(7,"td"),t._uU(8),t.qZA()()()()()),2&e&&(t.xp6(5),t.Oqu(null==o.mod?null:o.mod.name),t.xp6(3),t.Oqu(null==o.mod?null:o.mod.description))},styles:["[_nghost-%COMP%]{width:350px}.tooltip-container[_ngcontent-%COMP%]{border:1px solid gray;padding:1px 5px 4px;background:linear-gradient(#484848 0px,#2c2c2c 100%)}.exotic-name[_ngcontent-%COMP%]{color:#eedb9e}"]}),n})(),$r=(()=>{class n{constructor(e,o,a){this._overlay=e,this._overlayPositionBuilder=o,this._elementRef=a}ngOnInit(){const e=this._overlayPositionBuilder.flexibleConnectedTo(this._elementRef).withPositions([{originX:"center",originY:"bottom",overlayX:"center",overlayY:"top",offsetY:5},{originX:"center",originY:"top",overlayX:"center",overlayY:"bottom",offsetY:-5}]);this._overlayRef=this._overlay.create({positionStrategy:e}),this._overlayRef.addPanelClass("overlay-no-pointer-event")}show(){this._overlayRef&&!this._overlayRef.hasAttached()&&(this._overlayRef.attach(new Nt.C5(Kr)).instance.mod=this.mod)}hide(){this.closeToolTip()}ngOnDestroy(){this.closeToolTip()}closeToolTip(){this._overlayRef&&this._overlayRef.detach()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(pt.aV),t.Y36(pt.wJ),t.Y36(t.SBq))},n.\u0275dir=t.lG2({type:n,selectors:[["","modTooltip",""]],hostBindings:function(e,o){1&e&&t.NdJ("mouseenter",function(){return o.show()})("mouseleave",function(){return o.hide()})},inputs:{mod:["modTooltip","mod"]}}),n})();function Xr(n,i){if(1&n){const e=t.EpF();t.ynx(0),t._UZ(1,"br"),t.TgZ(2,"mat-button-toggle-group",4)(3,"mat-button-toggle",5),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.setElement(a.ModifierType.Arc))}),t._uU(4," Arc "),t.qZA(),t.TgZ(5,"mat-button-toggle",5),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.setElement(a.ModifierType.Solar))}),t._uU(6," Solar "),t.qZA(),t.TgZ(7,"mat-button-toggle",5),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.setElement(a.ModifierType.Void))}),t._uU(8," Void "),t.qZA(),t.TgZ(9,"mat-button-toggle",5),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.setElement(a.ModifierType.Stasis))}),t._uU(10," Stasis "),t.qZA(),t.TgZ(11,"mat-button-toggle",5),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.setElement(a.ModifierType.Strand))}),t._uU(12," Strand "),t.qZA()(),t.BQk()}if(2&n){const e=t.oxw(2);t.xp6(2),t.Q6J("value",e.selectedElement),t.xp6(1),t.Q6J("value",e.ModifierType.Arc),t.xp6(2),t.Q6J("value",e.ModifierType.Solar),t.xp6(2),t.Q6J("value",e.ModifierType.Void),t.xp6(2),t.Q6J("value",e.ModifierType.Stasis),t.xp6(2),t.Q6J("value",e.ModifierType.Strand)}}function tl(n,i){if(1&n&&(t.TgZ(0,"h3",8),t._uU(1),t.qZA()),2&n){const e=t.oxw(2).$implicit;t.xp6(1),t.Oqu(e.name)}}function el(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"There are no fragments configured yet. Please be patient."),t.qZA())}function nl(n,i){1&n&&(t.TgZ(0,"th",22),t._uU(1,"Name"),t.qZA())}function ol(n,i){if(1&n&&(t.TgZ(0,"td",23)(1,"mat-slide-toggle",24),t._UZ(2,"app-item-icon",25),t._uU(3),t.qZA()()),2&n){const e=i.$implicit,o=t.oxw(4);t.Q6J("modTooltip",e),t.xp6(1),t.Q6J("checked",o.selectedMods.indexOf(e.id)>-1),t.xp6(1),t.Q6J("itemHash",e.hash),t.xp6(1),t.hij(" ",e.name," ")}}function il(n,i){1&n&&(t.TgZ(0,"th",22),t._UZ(1,"app-stat-icon",26),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",0))}function al(n,i){if(1&n&&(t.TgZ(0,"span",31),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("+",e,"")}}function sl(n,i){if(1&n&&(t.TgZ(0,"span",32),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.Oqu(e)}}function rl(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,al,2,1,"span",29),t.YNc(2,sl,2,1,"span",30),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(1),t.Q6J("ngIf",e<0)}}function ll(n,i){if(1&n&&(t.TgZ(0,"td",27),t.YNc(1,rl,3,2,"span",28),t.qZA()),2&n){const e=i.$implicit,o=t.oxw(4);t.xp6(1),t.Q6J("ngVar",o.getModifierTextForValue(e.bonus,0))}}function cl(n,i){1&n&&(t.TgZ(0,"th",22),t._UZ(1,"app-stat-icon",26),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",1))}function ml(n,i){if(1&n&&(t.TgZ(0,"span",31),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("+",e,"")}}function dl(n,i){if(1&n&&(t.TgZ(0,"span",32),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.Oqu(e)}}function ul(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,ml,2,1,"span",29),t.YNc(2,dl,2,1,"span",30),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(1),t.Q6J("ngIf",e<0)}}function pl(n,i){if(1&n&&(t.TgZ(0,"td",27),t.YNc(1,ul,3,2,"span",28),t.qZA()),2&n){const e=i.$implicit,o=t.oxw(4);t.xp6(1),t.Q6J("ngVar",o.getModifierTextForValue(e.bonus,1))}}function gl(n,i){1&n&&(t.TgZ(0,"th",22),t._UZ(1,"app-stat-icon",26),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",2))}function _l(n,i){if(1&n&&(t.TgZ(0,"span",31),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("+",e,"")}}function fl(n,i){if(1&n&&(t.TgZ(0,"span",32),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.Oqu(e)}}function hl(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,_l,2,1,"span",29),t.YNc(2,fl,2,1,"span",30),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(1),t.Q6J("ngIf",e<0)}}function xl(n,i){if(1&n&&(t.TgZ(0,"td",27),t.YNc(1,hl,3,2,"span",28),t.qZA()),2&n){const e=i.$implicit,o=t.oxw(4);t.xp6(1),t.Q6J("ngVar",o.getModifierTextForValue(e.bonus,2))}}function Tl(n,i){1&n&&(t.TgZ(0,"th",22),t._UZ(1,"app-stat-icon",26),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",3))}function yl(n,i){if(1&n&&(t.TgZ(0,"span",31),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("+",e,"")}}function bl(n,i){if(1&n&&(t.TgZ(0,"span",32),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.Oqu(e)}}function Cl(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,yl,2,1,"span",29),t.YNc(2,bl,2,1,"span",30),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(1),t.Q6J("ngIf",e<0)}}function vl(n,i){if(1&n&&(t.TgZ(0,"td",27),t.YNc(1,Cl,3,2,"span",28),t.qZA()),2&n){const e=i.$implicit,o=t.oxw(4);t.xp6(1),t.Q6J("ngVar",o.getModifierTextForValue(e.bonus,3))}}function Al(n,i){1&n&&(t.TgZ(0,"th",22),t._UZ(1,"app-stat-icon",26),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",4))}function wl(n,i){if(1&n&&(t.TgZ(0,"span",31),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("+",e,"")}}function Zl(n,i){if(1&n&&(t.TgZ(0,"span",32),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.Oqu(e)}}function Sl(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,wl,2,1,"span",29),t.YNc(2,Zl,2,1,"span",30),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(1),t.Q6J("ngIf",e<0)}}function Il(n,i){if(1&n&&(t.TgZ(0,"td",27),t.YNc(1,Sl,3,2,"span",28),t.qZA()),2&n){const e=i.$implicit,o=t.oxw(4);t.xp6(1),t.Q6J("ngVar",o.getModifierTextForValue(e.bonus,4))}}function Ol(n,i){1&n&&(t.TgZ(0,"th",22),t._UZ(1,"app-stat-icon",26),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",5))}function Ml(n,i){if(1&n&&(t.TgZ(0,"span",31),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("+",e,"")}}function kl(n,i){if(1&n&&(t.TgZ(0,"span",32),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.Oqu(e)}}function Dl(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,Ml,2,1,"span",29),t.YNc(2,kl,2,1,"span",30),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(1),t.Q6J("ngIf",e<0)}}function Ul(n,i){if(1&n&&(t.TgZ(0,"td",27),t.YNc(1,Dl,3,2,"span",28),t.qZA()),2&n){const e=i.$implicit,o=t.oxw(4);t.xp6(1),t.Q6J("ngVar",o.getModifierTextForValue(e.bonus,5))}}function El(n,i){1&n&&t._UZ(0,"tr",33)}function Rl(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"tr",34),t.NdJ("click",function(){const s=t.CHM(e).$implicit,l=t.oxw(4);return t.KtG(l.handleRowClick(s))}),t.qZA()}if(2&n){const e=i.$implicit,o=t.oxw(4);t.ekj("selected",o.selectedMods.indexOf(e.id)>-1)}}function Pl(n,i){if(1&n&&(t.TgZ(0,"table",9),t.ynx(1,10),t.YNc(2,nl,2,0,"th",11),t.YNc(3,ol,4,4,"td",12),t.BQk(),t.ynx(4,13),t.YNc(5,il,2,1,"th",11),t.YNc(6,ll,2,1,"td",14),t.BQk(),t.ynx(7,15),t.YNc(8,cl,2,1,"th",11),t.YNc(9,pl,2,1,"td",14),t.BQk(),t.ynx(10,16),t.YNc(11,gl,2,1,"th",11),t.YNc(12,xl,2,1,"td",14),t.BQk(),t.ynx(13,17),t.YNc(14,Tl,2,1,"th",11),t.YNc(15,vl,2,1,"td",14),t.BQk(),t.ynx(16,18),t.YNc(17,Al,2,1,"th",11),t.YNc(18,Il,2,1,"td",14),t.BQk(),t.ynx(19,19),t.YNc(20,Ol,2,1,"th",11),t.YNc(21,Ul,2,1,"td",14),t.BQk(),t.YNc(22,El,1,0,"tr",20),t.YNc(23,Rl,1,2,"tr",21),t.qZA()),2&n){const e=t.oxw(2).$implicit,o=t.oxw();t.Q6J("dataSource",e.data),t.xp6(22),t.Q6J("matHeaderRowDef",o.displayedColumns),t.xp6(1),t.Q6J("matRowDefColumns",o.displayedColumns)}}function Nl(n,i){if(1&n&&(t.ynx(0),t.YNc(1,tl,2,1,"h3",6),t.YNc(2,el,2,0,"span",3),t.YNc(3,Pl,24,3,"table",7),t.BQk()),2&n){const e=t.oxw().$implicit;t.xp6(1),t.Q6J("ngIf",!e.group),t.xp6(1),t.Q6J("ngIf",0===e.data.length),t.xp6(1),t.Q6J("ngIf",e.data.length>0)}}function ql(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,Xr,13,6,"ng-container",3),t.YNc(2,Nl,4,3,"ng-container",3),t.qZA()),2&n){const e=i.$implicit,o=i.index,a=t.oxw();t.xp6(1),t.Q6J("ngIf",0===o),t.xp6(1),t.Q6J("ngIf",!e.group||e.type===a.selectedElement)}}let Jl=(()=>{class n{constructor(e){this.config=e,this.ModifierType=h.O,this.ModOrAbility=f,this.displayedColumns=["name","mobility","resilience","recovery","discipline","intellect","strength"],this.selectedClass=U.None,this.selectedMods=[],this.selectedElement=h.O.Solar,this.ngUnsubscribe=new nt.xQ;const o=Object.values(ut).sort((p,b)=>p.name.toLowerCase()b.name.toLowerCase()?1:0);o.filter(p=>p.type==h.O.CombatStyleMod);let s=o.filter(p=>p.type==h.O.Stasis),l=o.filter(p=>p.type==h.O.Void),d=o.filter(p=>p.type==h.O.Solar),u=o.filter(p=>p.type==h.O.Arc),x=o.filter(p=>p.type==h.O.Strand);this.data=[{name:"Stasis Fragments",data:s,group:!0,type:h.O.Stasis},{name:"Void Fragments",data:l,group:!0,type:h.O.Void},{name:"Solar Fragments",data:d,group:!0,type:h.O.Solar},{name:"Arc Fragments",data:u,group:!0,type:h.O.Arc},{name:"Strand Fragments",data:x,group:!0,type:h.O.Strand}],this.dataSource=o}ngOnInit(){this.config.configuration.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(e=>{this.selectedMods=e.enabledMods,this.selectedClass=e.characterClass,this.selectedElement=e.selectedModElement})}getModifierTextForValue(e,o){return e.filter(a=>a.stat==o||a.stat==r.AR.ClassAbilityRegenerationStat&&(this.selectedClass==U.Titan&&o==r.WB.Resilience||this.selectedClass==U.Hunter&&o==r.WB.Mobility||this.selectedClass==U.Warlock&&o==r.WB.Recovery)).reduce((a,s)=>a+s.value,0)}handleRowClick(e){this.config.modifyConfiguration(o=>{const a=o.enabledMods.indexOf(e.id);a>-1?o.enabledMods.splice(a,1):o.enabledMods.push(e.id)})}clear(){this.config.modifyConfiguration(e=>{e.enabledMods=[]})}getAffinityName(e){return r.vr[e]}getAffinityUrl(e){return r.Sy[e]}setElement(e){this.selectedElement!=e&&this.config.modifyConfiguration(o=>{const a=o.enabledMods.filter(s=>ut[s].type!=h.O.CombatStyleMod&&ut[s].type!=e);o.selectedModElement=e;for(let s of a){const l=o.enabledMods.indexOf(s);o.enabledMods.splice(l,1)}})}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(B))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-desired-mods-selection"]],features:[t._Bn([{provide:Zt.HT,useValue:{disableToggleValue:!1,disableDragValue:!0}}])],decls:4,vars:1,consts:[[4,"ngFor","ngForOf"],["id","clear-container"],["color","warn","mat-stroked-button","",3,"click"],[4,"ngIf"],[3,"value"],[3,"value","click"],["class","stat-part-title",4,"ngIf"],["mat-table","",3,"dataSource",4,"ngIf"],[1,"stat-part-title"],["mat-table","",3,"dataSource"],["matColumnDef","name"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",3,"modTooltip",4,"matCellDef"],["matColumnDef","mobility"],["mat-cell","",4,"matCellDef"],["matColumnDef","resilience"],["matColumnDef","recovery"],["matColumnDef","discipline"],["matColumnDef","intellect"],["matColumnDef","strength"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",3,"selected","click",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],["mat-cell","",3,"modTooltip"],["color","primary","disabled","",2,"cursor","pointer !important",3,"checked"],[3,"itemHash"],[3,"stat"],["mat-cell",""],[4,"ngVar"],["class","stat-positive",4,"ngIf"],["class","stat-negative",4,"ngIf"],[1,"stat-positive"],[1,"stat-negative"],["mat-header-row",""],["mat-row","",3,"click"]],template:function(e,o){1&e&&(t.YNc(0,ql,3,2,"span",0),t.TgZ(1,"div",1)(2,"button",2),t.NdJ("click",function(){return o.clear()}),t._uU(3,"Clear the whole selection"),t.qZA()()),2&e&&t.Q6J("ngForOf",o.data)},dependencies:[y.sg,y.O5,g.lW,Zt.Rr,w.BZ,w.fO,w.as,w.w1,w.Dz,w.nj,w.ge,w.ev,w.XQ,w.Gk,it.A9,it.Yi,fe,Ct,Ht,$r],styles:[".mat-slide-toggle.mat-disabled[_ngcontent-%COMP%]{opacity:1}.stat-part-title[_ngcontent-%COMP%]{margin-top:10px;margin-bottom:5px}.modTable[_ngcontent-%COMP%]{width:100%}.mat-header-row[_ngcontent-%COMP%], .mat-row[_ngcontent-%COMP%]{height:30px}.mat-column-mobility[_ngcontent-%COMP%], .mat-column-resilience[_ngcontent-%COMP%], .mat-column-recovery[_ngcontent-%COMP%], .mat-column-discipline[_ngcontent-%COMP%], .mat-column-intellect[_ngcontent-%COMP%], .mat-column-strength[_ngcontent-%COMP%], .mat-column-cost[_ngcontent-%COMP%]{min-width:40px;text-align:center}.mat-row[_ngcontent-%COMP%]:hover{background-color:#494949}.mat-column-mobility[_ngcontent-%COMP%], .mat-column-recovery[_ngcontent-%COMP%], .mat-column-intellect[_ngcontent-%COMP%]{background-color:#464646}.mat-column-name[_ngcontent-%COMP%]{padding-right:4px;border-right:1px solid currentColor;min-width:150px}.mat-column-name[_ngcontent-%COMP%] app-item-icon[_ngcontent-%COMP%]{float:left;margin-right:5px}.mat-row[_ngcontent-%COMP%]{cursor:pointer}th.mat-header-cell[_ngcontent-%COMP%]:last-of-type, td.mat-cell[_ngcontent-%COMP%]:last-of-type, td.mat-footer-cell[_ngcontent-%COMP%]:last-of-type{padding-right:0}.mat-cell[_ngcontent-%COMP%]:last-of-type, .mat-header-cell[_ngcontent-%COMP%]:last-of-type, .mat-footer-cell[_ngcontent-%COMP%]:last-of-type{padding-right:0}.stat-negative[_ngcontent-%COMP%], .stat-positive[_ngcontent-%COMP%]{margin-right:3px}.stat-negative[_ngcontent-%COMP%]{color:#f08080}.stat-positive[_ngcontent-%COMP%]{color:#b6cbfc}.stat-display[_ngcontent-%COMP%]{width:60px;float:left;align-content:end;text-align:right}.mat-row[_ngcontent-%COMP%]:hover, .mat-row[_ngcontent-%COMP%]:hover .mat-cell[_ngcontent-%COMP%]{background-color:#494949}.mat-row.selected[_ngcontent-%COMP%]:hover, .mat-row.selected[_ngcontent-%COMP%]:hover .mat-cell[_ngcontent-%COMP%]{background-color:#89b2ff30}.selected[_ngcontent-%COMP%], .selected[_ngcontent-%COMP%] .mat-column-mobility[_ngcontent-%COMP%], .selected[_ngcontent-%COMP%] .mat-column-recovery[_ngcontent-%COMP%], .selected[_ngcontent-%COMP%] .mat-column-intellect[_ngcontent-%COMP%]{background-color:#89b2ff1c}.mat-column-name[_ngcontent-%COMP%]{min-width:190px}.element-icon[_ngcontent-%COMP%]{width:22px}#clear-container[_ngcontent-%COMP%]{padding-top:10px}#retrofit-table[_ngcontent-%COMP%] .rft-icon-container[_ngcontent-%COMP%]{width:22px;display:inline-block}#retrofit-table[_ngcontent-%COMP%] .rft-icon-container[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{position:relative}#retrofit-table[_ngcontent-%COMP%] .rft-icon-container[_ngcontent-%COMP%] app-stat-icon[_ngcontent-%COMP%]{position:absolute;top:-22px;left:-10px}"]}),n})();function Yl(n,i){if(1&n&&(t.TgZ(0,"mat-icon",8,9),t._uU(2," help "),t.qZA()),2&n){const e=t.oxw().$implicit;t.s9C("matTooltip",e.help)}}function Ll(n,i){1&n&&(t.TgZ(0,"mat-icon",10,9),t._uU(2," report_problem "),t.qZA())}function Fl(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"div",4)(1,"mat-slide-toggle",5),t.NdJ("change",function(a){const l=t.CHM(e).$implicit;return t.KtG(l.cp(a.checked))}),t._uU(2),t.qZA(),t.YNc(3,Yl,3,1,"mat-icon",6),t.YNc(4,Ll,3,0,"mat-icon",7),t.qZA()}if(2&n){const e=i.$implicit;t.xp6(1),t.Q6J("disabled",e.disabled)("checked",e.value),t.xp6(1),t.hij(" ",e.name," "),t.xp6(1),t.Q6J("ngIf",e.help),t.xp6(1),t.Q6J("ngIf",e.impactsResultCount)}}function Ql(n,i){if(1&n&&(t.TgZ(0,"div")(1,"span",1),t._uU(2),t.qZA(),t.YNc(3,Fl,5,5,"div",2),t._UZ(4,"div",3),t.qZA()),2&n){const e=i.$implicit,o=t.oxw();t.xp6(2),t.Oqu(e),t.xp6(1),t.Q6J("ngForOf",o.fields2[e])}}let Bl=(()=>{class n{constructor(e){this.config=e,this.fields2={},this.fieldKeys=[],this.ngUnsubscribe=new nt.xQ}ngOnInit(){this.config.configuration.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(e=>{this.fields2={Events:[{name:"Enforce the usage of a Festival of the Lost Mask.",cp:o=>this.config.modifyConfiguration(a=>a.useFotlArmor=o),value:e.useFotlArmor,disabled:!1,impactsResultCount:!0,help:"Only use a FotL masks. You will not get results if you do not own the mask."}],Masterwork:[{name:"Assume all legendary items are masterworked",cp:o=>this.config.modifyConfiguration(a=>a.assumeLegendariesMasterworked=o),value:e.assumeLegendariesMasterworked,disabled:!1,impactsResultCount:!1,help:void 0},{name:"Assume all exotic items are masterworked",cp:o=>this.config.modifyConfiguration(a=>a.assumeExoticsMasterworked=o),value:e.assumeExoticsMasterworked,disabled:!1,impactsResultCount:!1,help:"If this setting is enabled, the tool will treat non-masterworked exotic armor as if it were masterworked-."},{name:"Assume that class items are masterworked",cp:o=>this.config.modifyConfiguration(a=>a.assumeClassItemMasterworked=o),value:e.assumeClassItemMasterworked,disabled:!1,impactsResultCount:!1,help:"If this setting is enabled, a plain +2 is added to every stat. This means that your Class Item must be masterworked."},{name:"Only use already masterworked items",cp:o=>this.config.modifyConfiguration(a=>a.onlyUseMasterworkedItems=o),value:e.onlyUseMasterworkedItems,disabled:!1,impactsResultCount:!0,help:void 0}],"Performance Optimization":[{name:"Use security features to prevent app crashes (resets on reload).",cp:o=>this.config.modifyConfiguration(a=>a.limitParsedResults=o),value:e.limitParsedResults,disabled:!1,impactsResultCount:!0,help:"Only parse the first 30,000 results. Deactivating this may crash your browser. The results will still be limited to 1,000,000 entries. Note that you will not miss any significant results by leaving this enabled."}],"Extra Columns":[{name:"Show maximum reachable tiers in the Tiers-Column instead of real Tiers.",cp:o=>this.config.modifyConfiguration(a=>a.showPotentialTierColumn=o),value:e.showPotentialTierColumn,disabled:!1,impactsResultCount:!1,help:"Shows an additional column in the table that shows how many tiers this build would have, if all stat mods were used. This is important when builds do not use all 5 stat mods."},{name:"Show the wasted stats in an extra column.",cp:o=>this.config.modifyConfiguration(a=>a.showWastedStatsColumn=o),value:e.showWastedStatsColumn,disabled:!1,impactsResultCount:!1,help:"Shows an additional column in the table that shows how many stats are wasted in a build."}],"Wasted Stats":[{name:"Try to optimize wasted stats (slower)",cp:o=>this.config.modifyConfiguration(a=>a.tryLimitWastedStats=o),value:e.tryLimitWastedStats,disabled:!1,impactsResultCount:!1,help:"The tool will try to add minor stat mods to minimize wasted stats. This only works for combinations that fulfill your desired stat combination with enough mods so at least one mod slot is still open."},{name:"Only show builds with no wasted stats",cp:o=>this.config.modifyConfiguration(a=>a.onlyShowResultsWithNoWastedStats=o),value:S_featureFlags_enableZeroWaste&&e.onlyShowResultsWithNoWastedStats,disabled:!S_featureFlags_enableZeroWaste,impactsResultCount:!0,help:"Only show builds with zero wasted stats - this means, its highly likely that you won't get any results."}],"Data-Science":[{name:"Add a constant +1 resilience to the results with non-exotic chests (resets on reload).",cp:o=>this.config.modifyConfiguration(a=>a.addConstent1Resilience=o),value:e.addConstent1Resilience,disabled:!1,impactsResultCount:!1,help:"You usually do not want to use this."},{name:"Assume every legendary is an artifice armor.",cp:o=>this.config.modifyConfiguration(a=>a.assumeEveryLegendaryIsArtifice=o),value:e.assumeEveryLegendaryIsArtifice,disabled:!1,impactsResultCount:!0,help:"This is for debugging purposes. Do not complain if you enable this. Reload after changing this setting."}]},this.fieldKeys=Object.keys(this.fields2)})}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(B))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-advanced-settings"]],decls:1,vars:1,consts:[[4,"ngFor","ngForOf"],[1,"category-header"],["class","adv-settings",4,"ngFor","ngForOf"],[1,"category-spacer"],[1,"adv-settings"],["color","primary",3,"disabled","checked","change"],["inline","","aria-hidden","false","aria-label","Help",3,"matTooltip",4,"ngIf"],["inline","","aria-hidden","false","aria-label","Help","class","report-problem-icon","matTooltip","This setting might impact the amount of results. It may happen that you won't get any results if you change this setting. In this case, simply switch it back to its default state.",4,"ngIf"],["inline","","aria-hidden","false","aria-label","Help",3,"matTooltip"],["tooltip","matTooltip"],["inline","","aria-hidden","false","aria-label","Help","matTooltip","This setting might impact the amount of results. It may happen that you won't get any results if you change this setting. In this case, simply switch it back to its default state.",1,"report-problem-icon"]],template:function(e,o){1&e&&t.YNc(0,Ql,5,2,"div",0),2&e&&t.Q6J("ngForOf",o.fieldKeys)},dependencies:[y.sg,y.O5,Zt.Rr,N.gM,j.Hw],styles:[".category-spacer[_ngcontent-%COMP%]{height:3px}.category-header[_ngcontent-%COMP%]{font-style:italic}.adv-settings[_ngcontent-%COMP%]{margin-left:20px}.report-problem-icon[_ngcontent-%COMP%]{color:#f08080}"]}),n})(),qt=(()=>{class n{constructor(e,o){this.dialogRef=e,this.data=o}onNoClick(){this.dialogRef.close()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36($.so),t.Y36($.WI))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-confirm-dialog"]],decls:10,vars:2,consts:[["mat-dialog-title",""],["mat-dialog-content",""],["mat-dialog-actions",""],["mat-button","",3,"click"],["mat-raised-button","","color","primary",3,"mat-dialog-close"]],template:function(e,o){1&e&&(t.TgZ(0,"h1",0),t._uU(1,"Confirm"),t.qZA(),t.TgZ(2,"div",1)(3,"p"),t._uU(4),t.qZA()(),t.TgZ(5,"div",2)(6,"button",3),t.NdJ("click",function(){return o.onNoClick()}),t._uU(7,"No Thanks"),t.qZA(),t.TgZ(8,"button",4),t._uU(9,"Ok"),t.qZA()()),2&e&&(t.xp6(4),t.Oqu(o.data.description),t.xp6(4),t.Q6J("mat-dialog-close",!0))},dependencies:[g.lW,$.ZT,$.uh,$.xY,$.H8]}),n})();var lt=_(9549),Vl=_(4385),Jt=_(4144);function Hl(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"Titan"),t.qZA())}function Wl(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"Hunter"),t.qZA())}function jl(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"Warlock"),t.qZA())}function zl(n,i){if(1&n&&(t.TgZ(0,"mat-option",30)(1,"span"),t._uU(2,"("),t.YNc(3,Hl,2,0,"span",26),t.YNc(4,Wl,2,0,"span",26),t.YNc(5,jl,2,0,"span",26),t._uU(6,") "),t.qZA(),t.TgZ(7,"span"),t._uU(8),t.qZA()()),2&n){const e=i.$implicit;t.Q6J("value",e.name),t.xp6(3),t.Q6J("ngIf",0===e.configuration.characterClass),t.xp6(1),t.Q6J("ngIf",1===e.configuration.characterClass),t.xp6(1),t.Q6J("ngIf",2===e.configuration.characterClass),t.xp6(3),t.hij(" ",e.name,"")}}function Gl(n,i){1&n&&(t.TgZ(0,"th",31),t._uU(1,"Name"),t.qZA())}function Kl(n,i){if(1&n&&(t.TgZ(0,"td",32),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.hij("",e.name," ")}}function $l(n,i){1&n&&(t.TgZ(0,"th",31),t._uU(1," Class "),t.qZA())}function Xl(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"Titan"),t.qZA())}function tc(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"Hunter"),t.qZA())}function ec(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"Warlock"),t.qZA())}function nc(n,i){if(1&n&&(t.TgZ(0,"td",32),t.YNc(1,Xl,2,0,"span",26),t.YNc(2,tc,2,0,"span",26),t.YNc(3,ec,2,0,"span",26),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.Q6J("ngIf",0===e.configuration.characterClass),t.xp6(1),t.Q6J("ngIf",1===e.configuration.characterClass),t.xp6(1),t.Q6J("ngIf",2===e.configuration.characterClass)}}function oc(n,i){1&n&&(t.TgZ(0,"th",31),t._UZ(1,"app-stat-icon",33),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",0))}function ic(n,i){if(1&n&&(t.TgZ(0,"td",32),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.hij(" ",10*e.configuration.minimumStatTiers[0].value," ")}}function ac(n,i){1&n&&(t.TgZ(0,"th",31),t._UZ(1,"app-stat-icon",33),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",1))}function sc(n,i){if(1&n&&(t.TgZ(0,"td",32),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.hij(" ",10*e.configuration.minimumStatTiers[1].value," ")}}function rc(n,i){1&n&&(t.TgZ(0,"th",31),t._UZ(1,"app-stat-icon",33),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",2))}function lc(n,i){if(1&n&&(t.TgZ(0,"td",32),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.hij(" ",10*e.configuration.minimumStatTiers[2].value," ")}}function cc(n,i){1&n&&(t.TgZ(0,"th",31),t._UZ(1,"app-stat-icon",33),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",3))}function mc(n,i){if(1&n&&(t.TgZ(0,"td",32),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.hij(" ",10*e.configuration.minimumStatTiers[3].value," ")}}function dc(n,i){1&n&&(t.TgZ(0,"th",31),t._UZ(1,"app-stat-icon",33),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",4))}function uc(n,i){if(1&n&&(t.TgZ(0,"td",32),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.hij(" ",10*e.configuration.minimumStatTiers[4].value," ")}}function pc(n,i){1&n&&(t.TgZ(0,"th",31),t._UZ(1,"app-stat-icon",33),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",5))}function gc(n,i){if(1&n&&(t.TgZ(0,"td",32),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.hij(" ",10*e.configuration.minimumStatTiers[5].value," ")}}function _c(n,i){1&n&&t._UZ(0,"th",31)}function fc(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"td",32)(1,"button",34),t.NdJ("click",function(){const s=t.CHM(e).$implicit,l=t.oxw();return t.KtG(l.delete(s.name))}),t.TgZ(2,"mat-icon"),t._uU(3,"delete_forever"),t.qZA()(),t.TgZ(4,"button",35),t.NdJ("click",function(){const s=t.CHM(e).$implicit,l=t.oxw();return t.KtG(l.load(s.name))}),t.TgZ(5,"mat-icon"),t._uU(6,"check_circle_outline"),t.qZA()(),t.TgZ(7,"button",36),t.NdJ("click",function(){const s=t.CHM(e).$implicit,l=t.oxw();return t.KtG(l.copySingleSettingToClipboard(s))}),t.TgZ(8,"mat-icon"),t._uU(9,"get_app"),t.qZA()()()}}function hc(n,i){1&n&&t._UZ(0,"tr",37)}function xc(n,i){1&n&&t._UZ(0,"tr",38)}function Tc(n,i){if(1&n){const e=t.EpF();t.ynx(0),t._UZ(1,"br"),t.TgZ(2,"button",39),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.copyAllSettingsToClipboard())}),t._uU(3," Copy all saved configurations to the clipboard "),t.qZA(),t.BQk()}}let yc=(()=>{class n{constructor(e,o,a,s,l){this.config=e,this.formBuilder=o,this.dialog=a,this._snackBar=s,this.clipboard=l,this.selectedEntry="",this.storedConfigs=[],this.displayedColumns=["name","class","mobility","resilience","recovery","discipline","intellect","strength","delete"],this.ngUnsubscribe=new nt.xQ,this.settingsNameForm=this.formBuilder.group({name:[null]}),this.importTextForm=this.formBuilder.group({content:[null]})}ngOnInit(){this.config.storedConfigurations.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(e=>this.storedConfigs=e)}submit(){const e=this.settingsNameForm.get("name")?.value;!e||(this.config.doesSavedConfigurationExist(e)?this.dialog.open(qt,{width:"300px",data:{description:"Do you want to overwrite this configuration?"}}).afterClosed().subscribe(a=>{a&&(this.config.saveCurrentConfigurationToName(e),this.settingsNameForm.reset(),this.selectedEntry=e)}):(this.config.saveCurrentConfigurationToName(e),this.settingsNameForm.reset(),this.selectedEntry=e))}delete(e){this.dialog.open(qt,{width:"300px",data:{description:"Do you want to delete this configuration?"}}).afterClosed().subscribe(a=>{a&&this.config.deleteStoredConfiguration(e)})}clearEverything(){this.dialog.open(qt,{width:"300px",data:{description:"Do you want to clear all settings?"}}).afterClosed().subscribe(o=>{o&&this.config.resetCurrentConfiguration()})}load(e){this.dialog.open(qt,{width:"300px",data:{description:"Do you want to load this preset?"}}).afterClosed().subscribe(a=>{a&&this.config.loadSavedConfiguration(e)})}runImport(){const e=this.importTextForm.get("content")?.value;if(!e)return this.openSnackBar("Invalid input.");try{const o=rt.decompress(e,{inputEncoding:"Base64"}),a="["==o.substr(0,1);let s=JSON.parse(o);a||(s=[s]),console.log("Incoming json:",s);for(let l of s)this.config.checkAndFixOldSavedConfigurations(l),l.hasOwnProperty("name")?a?this.config.saveConfiguration(l.name,l.configuration):this.config.saveCurrentConfiguration(l.configuration):this.config.saveCurrentConfiguration(l);this.openSnackBar("Successfully loaded this configuration"),this.importTextForm.get("content")?.reset()}catch(o){this.openSnackBar("Invalid input."),console.error(o)}}copySingleSettingToClipboard(e){this.clipboard.copy(this.config.getStoredConfigurationBase64Compressed(e.name)),this.openSnackBar("Copied the configuration to your clipboard. You can share it with your friends.")}copyAllSettingsToClipboard(){this.clipboard.copy(this.config.getAllStoredConfigurationsBase64Compressed()),this.openSnackBar("Exported all configurations to the clipboard. You can then save and share them.")}openSnackBar(e){this._snackBar.open(e,"",{duration:2500,politeness:"polite"})}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(B),t.Y36(V.QS),t.Y36($.uw),t.Y36(Vt.ux),t.Y36(wt.TU))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-load-and-save-settings"]],decls:78,vars:13,consts:[[3,"formGroup","submit"],["id","settings"],["appearance","outline"],["formControlName","name","matInput","","maxlength","30","minlength","4","placeholder","Awesome Discipline Build 4"],["color","primary","mat-raised-button","","type","submit",3,"disabled"],["color","warn","mat-raised-button","","matTooltip","Clears the ENTIRE configuration and uses the default settings. Use with caution.",3,"click"],["color","primary","mat-raised-button","","matTooltip","Copy your current configuration into your clipboard. You will be able to share it with others and import it later.",3,"cdkCopyToClipboard","click"],[2,"display","none"],[3,"value","disabled","valueChange"],[3,"value",4,"ngFor","ngForOf"],["color","primary","mat-raised-button","","matTooltip","Load the currently selected configuration.",3,"disabled","click"],["color","warn","mat-stroked-button","","matTooltip","Delete the currently selected configuration. Can not be undone.",3,"disabled","click"],["mat-table","",3,"dataSource"],["matColumnDef","name"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","class"],["matColumnDef","mobility"],["matColumnDef","resilience"],["matColumnDef","recovery"],["matColumnDef","discipline"],["matColumnDef","intellect"],["matColumnDef","strength"],["matColumnDef","delete"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],[4,"ngIf"],[3,"formGroup"],["formControlName","content","matInput",""],["color","primary","mat-raised-button","","matTooltip","Import the given configuration",3,"click"],[3,"value"],["mat-header-cell",""],["mat-cell",""],[3,"stat"],["color","warn","mat-icon-button","","matTooltip","Delete this configuration permanently.",3,"click"],["color","primary","mat-icon-button","","matTooltip","Load this configuration. Your current settings will be overwritten.",3,"click"],["color","primary","mat-icon-button","","matTooltip","Copy this configuration into your clipboard. You will be able to share it with others and import it later.",3,"click"],["mat-header-row",""],["mat-row",""],["color","primary","mat-raised-button","","matTooltip","Export all configurations to the clipboard. You can then save and share them.",3,"click"]],template:function(e,o){if(1&e&&(t.TgZ(0,"form",0),t.NdJ("submit",function(){return o.submit()}),t.TgZ(1,"table",1)(2,"tr")(3,"td")(4,"mat-form-field",2)(5,"mat-label"),t._uU(6,"Name to save the configuration"),t.qZA(),t._UZ(7,"input",3),t.qZA()(),t.TgZ(8,"td")(9,"button",4),t._uU(10," Save current "),t.qZA()(),t.TgZ(11,"td")(12,"button",5),t.NdJ("click",function(){return o.clearEverything()}),t._uU(13,"Clear everything "),t.qZA()(),t.TgZ(14,"td")(15,"button",6),t.NdJ("click",function(){return o.openSnackBar("Copied the configuration to your clipboard. You can share it with your friends.")}),t._uU(16," Copy Current "),t.qZA()()(),t.TgZ(17,"tr",7)(18,"td")(19,"mat-form-field",2)(20,"mat-label"),t._uU(21,"Load saved configuration"),t.qZA(),t.TgZ(22,"mat-select",8),t.NdJ("valueChange",function(s){return o.selectedEntry=s}),t.YNc(23,zl,9,5,"mat-option",9),t.qZA()()(),t.TgZ(24,"td")(25,"button",10),t.NdJ("click",function(){return o.load(o.selectedEntry)}),t._uU(26,"Load "),t.qZA()(),t.TgZ(27,"td")(28,"button",11),t.NdJ("click",function(){return o.delete(o.selectedEntry)}),t._uU(29,"Delete "),t.qZA()()()()(),t._UZ(30,"br"),t.TgZ(31,"table",12),t.ynx(32,13),t.YNc(33,Gl,2,0,"th",14),t.YNc(34,Kl,2,1,"td",15),t.BQk(),t.ynx(35,16),t.YNc(36,$l,2,0,"th",14),t.YNc(37,nc,4,3,"td",15),t.BQk(),t.ynx(38,17),t.YNc(39,oc,2,1,"th",14),t.YNc(40,ic,2,1,"td",15),t.BQk(),t.ynx(41,18),t.YNc(42,ac,2,1,"th",14),t.YNc(43,sc,2,1,"td",15),t.BQk(),t.ynx(44,19),t.YNc(45,rc,2,1,"th",14),t.YNc(46,lc,2,1,"td",15),t.BQk(),t.ynx(47,20),t.YNc(48,cc,2,1,"th",14),t.YNc(49,mc,2,1,"td",15),t.BQk(),t.ynx(50,21),t.YNc(51,dc,2,1,"th",14),t.YNc(52,uc,2,1,"td",15),t.BQk(),t.ynx(53,22),t.YNc(54,pc,2,1,"th",14),t.YNc(55,gc,2,1,"td",15),t.BQk(),t.ynx(56,23),t.YNc(57,_c,1,0,"th",14),t.YNc(58,fc,10,0,"td",15),t.BQk(),t.YNc(59,hc,1,0,"tr",24),t.YNc(60,xc,1,0,"tr",25),t.qZA(),t.YNc(61,Tc,4,0,"ng-container",26),t._UZ(62,"br"),t.TgZ(63,"div"),t._UZ(64,"hr"),t.TgZ(65,"h2"),t._uU(66,"Import a previously exported configuration"),t.qZA(),t.TgZ(67,"form",27)(68,"table")(69,"tr")(70,"td")(71,"mat-form-field",2)(72,"mat-label"),t._uU(73,"Copied configuration"),t.qZA(),t._UZ(74,"input",28),t.qZA()(),t.TgZ(75,"td")(76,"button",29),t.NdJ("click",function(){return o.runImport()}),t._uU(77," Start the import "),t.qZA()()()()()()),2&e){let a;t.Q6J("formGroup",o.settingsNameForm),t.xp6(9),t.Q6J("disabled",!(null!=(a=o.settingsNameForm.get("name"))&&a.value)||(null==(a=o.settingsNameForm.get("name"))?null:a.value.length)<4||(null==(a=o.settingsNameForm.get("name"))?null:a.value.length)>30),t.xp6(6),t.Q6J("cdkCopyToClipboard",o.config.getCurrentConfigBase64Compressed()),t.xp6(7),t.Q6J("value",o.selectedEntry)("disabled",0===o.storedConfigs.length),t.xp6(1),t.Q6J("ngForOf",o.storedConfigs),t.xp6(2),t.Q6J("disabled",!o.selectedEntry||0===o.storedConfigs.length),t.xp6(3),t.Q6J("disabled",!o.selectedEntry||0===o.storedConfigs.length),t.xp6(3),t.Q6J("dataSource",o.storedConfigs),t.xp6(28),t.Q6J("matHeaderRowDef",o.displayedColumns),t.xp6(1),t.Q6J("matRowDefColumns",o.displayedColumns),t.xp6(1),t.Q6J("ngIf",o.storedConfigs.length>0),t.xp6(6),t.Q6J("formGroup",o.importTextForm)}},dependencies:[y.sg,y.O5,V._Y,V.Fj,V.JJ,V.JL,V.wO,V.nD,V.sg,V.u,g.lW,lt.KE,lt.hX,Vl.gD,pe.ey,Jt.Nt,w.BZ,w.fO,w.as,w.w1,w.Dz,w.nj,w.ge,w.ev,w.XQ,w.Gk,N.gM,j.Hw,wt.i3,fe],styles:[".modTable[_ngcontent-%COMP%]{width:100%}.mat-header-row[_ngcontent-%COMP%], .mat-row[_ngcontent-%COMP%]{height:30px}.mat-column-class[_ngcontent-%COMP%]{min-width:55px;padding-right:2px;padding-left:2px;text-align:center;border-right:1px solid currentColor}.mat-column-mobility[_ngcontent-%COMP%], .mat-column-resilience[_ngcontent-%COMP%], .mat-column-recovery[_ngcontent-%COMP%], .mat-column-discipline[_ngcontent-%COMP%], .mat-column-intellect[_ngcontent-%COMP%], .mat-column-strength[_ngcontent-%COMP%]{min-width:40px;text-align:center}.mat-row[_ngcontent-%COMP%]:hover{background-color:#494949}.mat-column-mobility[_ngcontent-%COMP%], .mat-column-recovery[_ngcontent-%COMP%], .mat-column-intellect[_ngcontent-%COMP%]{background-color:#464646}.mat-column-name[_ngcontent-%COMP%]{padding-right:4px;border-right:1px solid currentColor;min-width:150px}th.mat-header-cell[_ngcontent-%COMP%]:last-of-type, td.mat-cell[_ngcontent-%COMP%]:last-of-type, td.mat-footer-cell[_ngcontent-%COMP%]:last-of-type{padding-right:0}.mat-cell[_ngcontent-%COMP%]:last-of-type, .mat-header-cell[_ngcontent-%COMP%]:last-of-type, .mat-footer-cell[_ngcontent-%COMP%]:last-of-type{padding-right:0}.stat-negative[_ngcontent-%COMP%], .stat-positive[_ngcontent-%COMP%]{margin-right:3px}.stat-negative[_ngcontent-%COMP%]{color:#f08080}.stat-positive[_ngcontent-%COMP%]{color:#6495ed}.stat-display[_ngcontent-%COMP%]{width:60px;float:left;align-content:end;text-align:right}.mat-row[_ngcontent-%COMP%]:hover, .mat-row[_ngcontent-%COMP%]:hover .mat-cell[_ngcontent-%COMP%]{background-color:#494949}.mat-row.selected[_ngcontent-%COMP%]:hover, .mat-row.selected[_ngcontent-%COMP%]:hover .mat-cell[_ngcontent-%COMP%]{background-color:#89b2ff30}.selected[_ngcontent-%COMP%], .selected[_ngcontent-%COMP%] .mat-column-mobility[_ngcontent-%COMP%], .selected[_ngcontent-%COMP%] .mat-column-recovery[_ngcontent-%COMP%], .selected[_ngcontent-%COMP%] .mat-column-intellect[_ngcontent-%COMP%]{background-color:#89b2ff1c}.mat-column-load[_ngcontent-%COMP%], .mat-column-delete[_ngcontent-%COMP%]{padding-left:3px;padding-right:3px}[_nghost-%COMP%] .mat-form-field-wrapper{margin:0!important;padding:0}"]}),n})();function bc(n,i){1&n&&t._UZ(0,"br")}function Cc(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"span",2)(1,"img",3),t.NdJ("click",function(){const s=t.CHM(e).$implicit,l=t.oxw();return t.KtG(l.enableItem(s.itemInstanceId))}),t.qZA(),t.YNc(2,bc,1,0,"br",4),t.qZA()}if(2&n){const e=i.$implicit,o=i.index,a=t.oxw();t.xp6(1),t.MGl("src","https://bungie.net/",e.icon,"",t.LSH),t.Q6J("matTooltip",a.generateTooltip(e)),t.xp6(1),t.Q6J("ngIf",(o+1)%10==0)}}let vc=(()=>{class n{constructor(e,o){this.config=e,this.db=o,this.disabledItems=[],this.ngUnsubscribe=new nt.xQ}enableItem(e){this.config.modifyConfiguration(o=>{o.disabledItems.splice(o.disabledItems.indexOf(e),1)})}generateTooltip(e){return"Click this icon to activate this item again.\r\n"+e.name+" "+(e.mobility+(e.masterworked?2:0))+"/"+(e.resilience+(e.masterworked?2:0))+"/"+(e.recovery+(e.masterworked?2:0))+"/"+(e.discipline+(e.masterworked?2:0))+"/"+(e.intellect+(e.masterworked?2:0))+"/"+(e.strength+(e.masterworked?2:0))}ngOnInit(){var e=this;this.config.configuration.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(function(){var o=(0,m.Z)(function*(a){let s=[];for(let l of a.disabledItems){let d=yield e.db.inventoryArmor.where("itemInstanceId").equals(l).first();d&&s.push(d)}e.disabledItems=s});return function(a){return o.apply(this,arguments)}}())}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(B),t.Y36(et))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-ignored-items-list"]],decls:2,vars:1,consts:[[1,"item-icon-container"],["class","item-sub",4,"ngFor","ngForOf"],[1,"item-sub"],["matTooltipClass","allow-cr",1,"item-icon",3,"src","matTooltip","click"],[4,"ngIf"]],template:function(e,o){1&e&&(t.TgZ(0,"div",0),t.YNc(1,Cc,3,3,"span",1),t.qZA()),2&e&&(t.xp6(1),t.Q6J("ngForOf",o.disabledItems))},dependencies:[y.sg,y.O5,N.gM],styles:[".item-icon[_ngcontent-%COMP%]{width:40px}.item-icon[_ngcontent-%COMP%]:hover{filter:brightness(.8) hue-rotate(350deg) saturate(3) blur(2px) contrast(.6);cursor:not-allowed}.item-sub[_ngcontent-%COMP%]{margin-right:3px}.item-icon-container[_ngcontent-%COMP%]{position:relative;contain:layout paint style;box-sizing:border-box;width:var(--item-size);transition:opacity .2s,transform .2s}"]}),n})(),Ac=(()=>{class n{constructor(){}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-settings"]],decls:71,vars:0,consts:[["id","card-config"],["id","content-char-selection"],["inline","","aria-hidden","false","aria-label","Help","matTooltip","Cooldowns and Stats provided by Clarity."],["tooltip","matTooltip"]],template:function(e,o){1&e&&(t.TgZ(0,"div",0)(1,"mat-card")(2,"mat-card-title"),t._uU(3,"Character Selection"),t.qZA(),t.TgZ(4,"mat-card-content",1),t._UZ(5,"app-desired-class-selection"),t.qZA()(),t.TgZ(6,"mat-card")(7,"mat-card-title"),t._uU(8,"Select the stats you want to achieve"),t.qZA(),t.TgZ(9,"mat-card-subtitle"),t._uU(10,"The heart of this tool. Select the stats you want! "),t.TgZ(11,"mat-icon",2,3),t._uU(13," info "),t.qZA()(),t.TgZ(14,"mat-card-content"),t._UZ(15,"app-desired-stat-selection"),t.qZA()(),t.TgZ(16,"mat-card")(17,"mat-card-title"),t._uU(18,"Armor Selection"),t.qZA(),t.TgZ(19,"mat-card-subtitle"),t._uU(20," This section allows you to limit the armor pieces that are used in the buildcrafting process."),t._UZ(21,"br"),t._uU(22," If you want, limit all results to one exotic. "),t._UZ(23,"br"),t._uU(24," Exotics you do not have in the inventory or vault are grayed out. "),t.qZA(),t.TgZ(25,"mat-card-content"),t._UZ(26,"app-desired-exotic-selection"),t.qZA()(),t.TgZ(27,"mat-card")(28,"mat-card-title"),t._uU(29,"Armor limitation"),t.qZA(),t.TgZ(30,"mat-card-subtitle"),t._uU(31," This section allows you to further specify what kind of armor and mods you want. "),t.qZA(),t.TgZ(32,"mat-card-content"),t._UZ(33,"app-desired-mod-selection"),t.qZA()(),t.TgZ(34,"mat-card")(35,"mat-card-title"),t._uU(36,"Stat-Boost Selection"),t.qZA(),t.TgZ(37,"mat-card-subtitle"),t._uU(38,"Select Mods and Skills that affect your overall stats."),t._UZ(39,"br"),t._uU(40," Please note that D2AP also allows theoretical, but impossible input."),t._UZ(41,"br"),t.TgZ(42,"b"),t._uU(43,"Only fragments that affect stats are shown."),t.qZA()(),t.TgZ(44,"mat-card-content"),t._UZ(45,"app-desired-mods-selection"),t.qZA()(),t.TgZ(46,"mat-card")(47,"mat-card-title"),t._uU(48,"Advanced Settings"),t.qZA(),t.TgZ(49,"mat-card-subtitle"),t._uU(50,"More settings! Use them to fine-tune your buildcrafting process."),t.qZA(),t.TgZ(51,"mat-card-content"),t._UZ(52,"app-advanced-settings"),t.qZA()(),t.TgZ(53,"mat-card")(54,"mat-card-title"),t._uU(55,"Disabled Armor Pieces"),t.qZA(),t.TgZ(56,"mat-card-subtitle"),t._uU(57," These armor pieces are disabled. Click them to enable them again."),t._UZ(58,"br"),t._uU(59," They won't show up in any results."),t._UZ(60,"br"),t._uU(61," You can disable items in the detailed result overview. "),t.qZA(),t.TgZ(62,"mat-card-content"),t._UZ(63,"app-ignored-items-list"),t.qZA()(),t.TgZ(64,"mat-card")(65,"mat-card-title"),t._uU(66,"Configuration Management"),t.qZA(),t.TgZ(67,"mat-card-subtitle"),t._uU(68,"Save and load your buildcrafting settings for another day!"),t.qZA(),t.TgZ(69,"mat-card-content"),t._UZ(70,"app-load-and-save-settings"),t.qZA()()())},dependencies:[A.a8,A.dn,A.n5,A.$j,N.gM,j.Hw,er,fr,Rr,Br,Jl,Bl,yc,vc],styles:["#card-config[_ngcontent-%COMP%]{width:-moz-fit-content;width:fit-content;display:inline-block;vertical-align:top;white-space:normal;margin-bottom:20px;margin-left:3px;margin-right:3px}#card-config[_ngcontent-%COMP%] > mat-card[_ngcontent-%COMP%]{margin-bottom:4px}#content-char-selection[_ngcontent-%COMP%]{margin-bottom:0}"]}),n})(),wc=(()=>{class n{constructor(){}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-armor-picker-page"]],decls:3,vars:0,consts:[["id","container"]],template:function(e,o){1&e&&(t.TgZ(0,"div",0),t._UZ(1,"app-settings")(2,"app-results"),t.qZA())},dependencies:[Ac,me],styles:["#container[_ngcontent-%COMP%]{width:-moz-fit-content;width:fit-content;margin-right:3px;white-space:nowrap}"]}),n})();const he=function(){return["","Mobility","Resilience","Recovery","Discipline","Intellect","Strength"]};function Zc(n,i){if(1&n&&(t.TgZ(0,"tr",27)(1,"td"),t._uU(2),t.qZA(),t.TgZ(3,"td",22)(4,"div",28),t._UZ(5,"div",29),t.TgZ(6,"span",30),t._uU(7),t.ALo(8,"number"),t.qZA()()()()),2&n){const e=t.oxw().index,o=t.oxw(2).index,a=t.oxw();t.Q6J("matTooltip",t.DdM(9,he)[e]),t.xp6(2),t.hij(" ",t.DdM(10,he)[e]," "),t.xp6(3),t.Jzz("width:",a.clusterInformation[o].mean[e]/32*100,"%"),t.xp6(2),t.hij(" ",t.xi3(8,6,a.clusterInformation[o].mean[e],"1.0-0")," ")}}function Sc(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Zc,9,11,"tr",26),t.BQk()),2&n){const e=i.index;t.xp6(1),t.Q6J("ngIf",e>0)}}function Ic(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"mat-card",21)(1,"mat-card-title"),t._uU(2),t.qZA(),t.TgZ(3,"mat-card-subtitle"),t._uU(4),t.qZA(),t.TgZ(5,"mat-card-content")(6,"div")(7,"table",22),t.YNc(8,Sc,2,1,"ng-container",18),t.qZA()(),t.TgZ(9,"mat-form-field",23)(10,"mat-label"),t._uU(11,"DIM Search Query"),t.qZA(),t._UZ(12,"input",24),t.qZA(),t.TgZ(13,"button",25),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.openSnackBar("Copied the DIM search query to your clipboard."))}),t._uU(14," Copy DIM query to clipboard "),t.qZA()()()}if(2&n){const e=t.oxw(),o=e.index,a=e.$implicit,s=t.oxw();t.xp6(2),t.hij(" Cluster ",o+1," "),t.xp6(2),t.AsE(" Contains ",a.length," item",a.length>1?"s":""," "),t.xp6(4),t.Q6J("ngForOf",s.clusterInformation[o].mean),t.xp6(4),t.Q6J("value",s.getDIMStringForCluster(a)),t.xp6(1),t.Q6J("cdkCopyToClipboard",s.getDIMStringForCluster(a))}}function Oc(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Ic,15,6,"mat-card",20),t.BQk()),2&n){const e=i.$implicit;t.xp6(1),t.Q6J("ngIf",e.length>0)}}var xe=[{id:0,size:214,centroids:[5.242990654205609,3.4392523364485994,23.074766355140188,4.52336448598131,17.99532710280374,8.074766355140188],std:[3.262185500658884,3.137958193527344,2.0745611905196912,3.223158380401712,2.6478649185881147,3.356022774004607,3.3823650213485315],mean:[62.350467289719624,5.242990654205608,3.439252336448598,23.074766355140188,4.5233644859813085,17.99532710280374,8.074766355140186]},{id:1,size:264,centroids:[13.613636363636365,3.060606060606063,14.431818181818182,6.731060606060606,12.575757575757574,10.575757575757576],std:[4.915624932359143,2.735897756946947,1.897597343200423,3.036390647550984,3.2253188618447473,3.0097969617389406,3.1372197425220545],mean:[60.98863636363637,13.613636363636363,3.0606060606060606,14.431818181818182,6.731060606060606,12.575757575757576,10.575757575757576]},{id:2,size:220,centroids:[5.209090909090909,15.586363636363636,10.936363636363636,13.281818181818181,13.604545454545452,3.8818181818181836],std:[3.3631090204013643,2.931782865076046,2.9200605883727038,3.289049973803757,2.6349662061268395,2.6591750828428204,2.395703224398619],mean:[62.5,5.209090909090909,15.586363636363636,10.936363636363636,13.281818181818181,13.604545454545455,3.881818181818182]},{id:3,size:230,centroids:[8.6,15.330434782608698,6.943478260869563,6.408695652173913,5.578260869565216,18.26086956521739],std:[4.27370926113142,3.855014315301441,3.2487061290912984,3.5081098914433078,3.559587955581114,3.1761194803539676,3.596667444705349],mean:[61.12173913043478,8.6,15.330434782608696,6.943478260869565,6.408695652173913,5.578260869565217,18.26086956521739]},{id:4,size:261,centroids:[11.74712643678161,5.655172413793104,13.873563218390803,11.022988505747126,16.57088122605364,3.0038314176245224],std:[3.5878146263573103,2.8197860971981994,2.9890605143791737,2.9825309245974925,2.7497287061744258,2.8324620286123516,1.8428616632651005],mean:[61.87356321839081,11.74712643678161,5.655172413793103,13.873563218390805,11.022988505747126,16.57088122605364,3.003831417624521]},{id:5,size:249,centroids:[6.598393574297189,7.2289156626506035,7.674698795180722,6.831325301204822,5.995983935742974,7.425702811244981],std:[12.188382924990831,3.7780346472852226,3.7855581933977014,3.9659084518463055,3.2508780840166134,2.4288222155150856,3.23718036285365],mean:[41.75502008032129,6.598393574297189,7.228915662650603,7.674698795180723,6.831325301204819,5.995983935742972,7.42570281124498]},{id:6,size:241,centroids:[4.580912863070541,10.62655601659751,15.72199170124481,20.186721991701248,5.7634854771784205,4.8672199170124495],std:[4.0360666526825675,2.5776864620318327,2.726712032141287,2.7236414380869185,3.4135743182998106,3.164594939982558,2.8952195061747896],mean:[61.74688796680498,4.580912863070539,10.62655601659751,15.721991701244812,20.186721991701244,5.763485477178423,4.867219917012448]},{id:7,size:352,centroids:[4.96875,10.849431818181818,15.676136363636362,5.085227272727275,13.079545454545453,12.113636363636365],std:[3.864447558701623,2.876694966732471,2.825917840642513,2.8500410080793133,2.604753041986593,2.753797030174534,3.084495990290069],mean:[61.77272727272727,4.96875,10.849431818181818,15.676136363636363,5.0852272727272725,13.079545454545455,12.113636363636363]},{id:8,size:219,centroids:[21.401826484018265,4.529680365296804,4.954337899543379,14.022831050228312,7.168949771689496,6.8036529680365305],std:[7.654498360234386,3.856746305047457,3.0774088630224354,3.486239910130717,4.509361233853425,3.691515724130434,3.433882092856456],mean:[58.881278538812786,21.401826484018265,4.529680365296803,4.954337899543379,14.02283105022831,7.168949771689498,6.80365296803653]},{id:9,size:183,centroids:[4.448087431693989,22.114754098360656,4.868852459016392,7.459016393442623,11.240437158469945,9.765027322404372],std:[7.900837110469869,3.265921971202623,3.896032191192026,3.424902708986657,3.3556927380910535,3.7206143627650876,3.9564220813839577],mean:[59.89617486338798,4.448087431693989,22.114754098360656,4.868852459016393,7.459016393442623,11.240437158469945,9.765027322404372]},{id:10,size:197,centroids:[13.563451776649746,10.761421319796954,6.527918781725887,20.654822335025383,4.934010152284262,5.18274111675127],std:[4.239153654030002,3.3077343290831713,2.8924486501981233,2.9338771160608355,3.5098461495889413,3.192898794854312,2.920215710334156],mean:[61.6243654822335,13.563451776649746,10.761421319796954,6.527918781725888,20.65482233502538,4.934010152284264,5.182741116751269]},{id:11,size:176,centroids:[8.255681818181818,16.181818181818183,7.11931818181818,4.619318181818182,21.0625,5.505681818181819],std:[3.349621998445128,3.4620343467651815,3.3296776490755446,2.945693532873097,2.7583580190103967,3.126214049887545,3.078027492852078],mean:[62.74431818181818,8.255681818181818,16.181818181818183,7.119318181818182,4.619318181818182,21.0625,5.505681818181818]},{id:12,size:194,centroids:[3.5670103092783503,14.773195876288659,13.036082474226804,13.185567010309278,4.979381443298967,12.144329896907218],std:[3.89886364980042,2.255251632823776,2.5893570716174388,3.248552824613239,3.1004926799108317,2.8845824993776903,2.8864151735009584],mean:[61.68556701030928,3.5670103092783507,14.77319587628866,13.036082474226804,13.185567010309278,4.979381443298969,12.144329896907216]},{id:13,size:302,centroids:[5.311258278145695,4.4701986754966905,21.897350993377486,10.688741721854305,6.834437086092715,12.605960264900663],std:[5.1142628152416245,2.9920946350614983,2.6882491851253567,3.071581172564087,2.99431450280505,3.116626644660552,2.58548804104293],mean:[61.80794701986755,5.311258278145695,4.470198675496689,21.897350993377483,10.688741721854305,6.8344370860927155,12.605960264900663]},{id:14,size:364,centroids:[12.263736263736265,11.32967032967033,5.936813186813188,8.524725274725274,12.07142857142857,7.782967032967034],std:[6.666392881793753,2.8942239993391565,2.947866371540881,3.041289192757803,3.0876888182534996,2.4540644069260296,2.6803305558675676],mean:[57.90934065934066,12.263736263736265,11.32967032967033,5.936813186813187,8.524725274725276,12.071428571428571,7.782967032967033]},{id:15,size:219,centroids:[6.981735159817351,5.9908675799086755,18.127853881278536,4.97716894977169,5.182648401826483,20.89041095890411],std:[4.3335830659244685,3.5503759593138464,3.5270785628911785,4.123339305032141,2.7998081886699646,3.283747903424203,2.8311584355558064],mean:[62.15068493150685,6.981735159817352,5.9908675799086755,18.12785388127854,4.9771689497716896,5.1826484018264845,20.89041095890411]},{id:16,size:147,centroids:[6.285714285714285,20.836734693877553,4.8639455782312915,17.510204081632654,5.897959183673469,7.394557823129253],std:[3.358145469360083,3.4877476344546254,3.2245649941865486,3.0557367019327,4.0937094190209065,3.1136788219952605,3.842013283457479],mean:[62.7891156462585,6.285714285714286,20.836734693877553,4.863945578231292,17.510204081632654,5.8979591836734695,7.394557823129252]},{id:17,size:202,centroids:[18.425742574257423,6.871287128712871,6.678217821782177,5.06930693069307,20.40594059405941,5.876237623762377],std:[3.0226636827682554,3.292828132097339,3.518715749263091,3.4627255810748356,3.075363266145594,3.5804283293104753,3.315804113390658],mean:[63.32673267326733,18.425742574257427,6.871287128712871,6.678217821782178,5.069306930693069,20.405940594059405,5.876237623762377]},{id:18,size:286,centroids:[11.22027972027972,7.073426573426573,12.65034965034965,12.594405594405593,4.209790209790211,13.220279720279722],std:[4.720510224882134,2.8685361372318168,2.6005789112305338,3.052197922484291,2.451602446915686,2.7244266014541174,2.7638787756329526],mean:[60.96853146853147,11.22027972027972,7.073426573426573,12.65034965034965,12.594405594405595,4.20979020979021,13.22027972027972]},{id:19,size:197,centroids:[6.263959390862944,8.568527918781726,16.80710659898477,4.000000000000003,22.593908629441625,4.883248730964468],std:[2.7333118141791917,3.3626657547151964,3.4540163497542435,2.646397291854302,2.565469285152567,3.018237668617547,2.8287109641017594],mean:[63.11675126903553,6.2639593908629445,8.568527918781726,16.80710659898477,4,22.593908629441625,4.883248730964467]},{id:20,size:279,centroids:[18.025089605734767,6.150537634408602,6.161290322580646,5.767025089605736,7.999999999999998,15.602150537634408],std:[6.590788110639117,3.6436721401086296,3.165505073725202,3.13700467469825,2.7769973891540207,3.4672154149710614,4.017425492621824],mean:[59.70609318996416,18.025089605734767,6.150537634408602,6.161290322580645,5.767025089605735,8,15.602150537634408]},{id:21,size:78,centroids:[15.96153846153846,16.85897435897436,16.807692307692307,3552713678800501e-30,5329070518200751e-30,-5329070518200751e-30],std:[2.095815090231219,7.438828122504502,7.482836393563639,8.12413063050432,0,0,0],mean:[49.62820512820513,15.961538461538462,16.858974358974358,16.807692307692307,0,0,0]},{id:22,size:137,centroids:[4.525547445255475,3.583941605839417,23.532846715328468,19.948905109489054,4.3576642335766405,6.248175182481752],std:[2.9351806639916567,2.7575572416084317,2.2707939003224227,2.908029186302962,3.3306093063017315,2.6644092885703916,3.4848010785869454],mean:[62.197080291970806,4.525547445255475,3.5839416058394162,23.532846715328468,19.94890510948905,4.357664233576642,6.248175182481752]},{id:23,size:194,centroids:[13.242268041237114,3.5103092783505163,14.675257731958762,19.55154639175258,6.139175257731957,5.092783505154641],std:[3.810494814771566,2.886105181640385,2.0818477512276696,2.6197152448917316,3.409818599464837,3.0311357231629183,2.9733966349516936],mean:[62.21134020618557,13.242268041237113,3.5103092783505154,14.675257731958762,19.551546391752577,6.139175257731959,5.092783505154639]},{id:24,size:239,centroids:[5.569037656903766,5.401673640167365,20.92468619246862,13.09205020920502,13.497907949790793,4.096234309623432],std:[3.8502204432228733,3.071015816571908,3.081143061480697,2.79904271710946,2.169280265760518,2.62802363192924,2.3450167178621983],mean:[62.58158995815899,5.569037656903766,5.401673640167364,20.92468619246862,13.092050209205022,13.497907949790795,4.096234309623431]}];let Mc=(()=>{class n{constructor(e,o,a){this.db=e,this._snackBar=o,this.inventory=a,this.clusterInformation=xe,this.items=[],this.clusters=[],this.exoticFilter=0,this.masterworkFilter=0,this.classFilter=-1,this.clusterInformation=xe.sort((s,l)=>l.mean[3]-s.mean[3])}ngAfterViewInit(){var e=this;return(0,m.Z)(function*(){e.inventory.inventory.pipe((0,st.b)(200)).subscribe((0,m.Z)(function*(){yield e.Update(),e.openSnackBar("Clusters were updated.")}))})()}Update(){var e=this;return(0,m.Z)(function*(){var o=(yield e.db.inventoryArmor.toArray()).filter(l=>l.source===k.Inventory),a=[];for(let l=0;l`id:'${o.itemInstanceId}'`).join(" or ")}vectorDistance(e,o){return Math.sqrt(e.reduce((a,s,l)=>a+Math.pow(s-o[l],2),0))}getClusterid(e){var o=Number.MAX_VALUE,a=-1;for(let l=0;l0)}}function Uc(n,i){if(1&n&&(t.TgZ(0,"div",9,5),t._UZ(2,"img",10),t.TgZ(3,"span",11),t._uU(4),t.qZA()()),2&n){const e=t.oxw().ngVar,o=t.oxw().$implicit,a=t.oxw().$implicit,s=t.oxw();t.Q6J("matTooltip",s.getStatName(a)),t.xp6(2),t.ekj("minor",1===o),t.Q6J("src",s.ModUrl[o+3*a],t.LSH),t.xp6(1),t.ekj("minor",1===o),t.xp6(1),t.hij("\xd7",e,"")}}function Ec(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Uc,5,7,"div",8),t.BQk()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function Rc(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Ec,2,1,"ng-container",1),t.ALo(2,"count"),t.BQk()),2&n){const e=i.$implicit,o=t.oxw().$implicit,a=t.oxw();t.xp6(1),t.Q6J("ngVar",t.xi3(2,1,a.mods,e+3*o))}}function Pc(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Rc,3,4,"ng-container",2),t.BQk()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngForOf",e.modTypeIndex)}}const Nc={[r.iV.MINOR_MOBILITY]:"https://www.bungie.net/common/destiny2_content/icons/a6694a4ff65d371d19330fb10415b315.png",[r.iV.MAJOR_MOBILITY]:"https://www.bungie.net/common/destiny2_content/icons/8861e73c6701b8347cef025d400cd3dc.png",[r.iV.ARTIFICE_MOBILITY]:"https://www.bungie.net/common/destiny2_content/icons/a6694a4ff65d371d19330fb10415b315.png",[r.iV.MINOR_RESILIENCE]:"https://www.bungie.net/common/destiny2_content/icons/ab1ffe5128806c3639e531f89a2d72d1.png",[r.iV.MAJOR_RESILIENCE]:"https://www.bungie.net/common/destiny2_content/icons/b2228e67e72fad2eb37735a33e0d0116.png",[r.iV.ARTIFICE_RESILIENCE]:"https://www.bungie.net/common/destiny2_content/icons/ab1ffe5128806c3639e531f89a2d72d1.png",[r.iV.MINOR_RECOVERY]:"https://www.bungie.net/common/destiny2_content/icons/e0fc8c022c2ab49ef92caff5843db7da.png",[r.iV.MAJOR_RECOVERY]:"https://www.bungie.net/common/destiny2_content/icons/4251f77e3b24900e262f16d5587980ef.png",[r.iV.ARTIFICE_RECOVERY]:"https://www.bungie.net/common/destiny2_content/icons/e0fc8c022c2ab49ef92caff5843db7da.png",[r.iV.MINOR_DISCIPLINE]:"https://www.bungie.net/common/destiny2_content/icons/f841f379751b7672fca0e5f231e92638.png",[r.iV.MAJOR_DISCIPLINE]:"https://www.bungie.net/common/destiny2_content/icons/3a5a2d6ee50b2611ebc4d4806d29301a.png",[r.iV.ARTIFICE_DISCIPLINE]:"https://www.bungie.net/common/destiny2_content/icons/f841f379751b7672fca0e5f231e92638.png",[r.iV.MINOR_INTELLECT]:"https://www.bungie.net/common/destiny2_content/icons/f26479a3462676d613f135657ecad45a.png",[r.iV.MAJOR_INTELLECT]:"https://www.bungie.net/common/destiny2_content/icons/98408051297c26cb033cb761ab955fac.png",[r.iV.ARTIFICE_INTELLECT]:"https://www.bungie.net/common/destiny2_content/icons/f26479a3462676d613f135657ecad45a.png",[r.iV.MINOR_STRENGTH]:"https://www.bungie.net/common/destiny2_content/icons/dbd1615501778b66bca2764b9a561044.png",[r.iV.MAJOR_STRENGTH]:"https://www.bungie.net/common/destiny2_content/icons/7b64c0b8014a57c6c297babb18c2239e.png",[r.iV.ARTIFICE_STRENGTH]:"https://www.bungie.net/common/destiny2_content/icons/dbd1615501778b66bca2764b9a561044.png"};let qc=(()=>{class n{constructor(){this.artificeUrl=r.X9[r.Pn.SlotArtifice],this.modIndex=[0,1,2,3,4,5],this.modTypeIndex=[1,2],this.ModUrl=Nc,this.mods=[],this.artifice=[]}getStatName(e){return r.Mi[e]}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-table-mod-display"]],inputs:{mods:"mods",artifice:"artifice"},decls:4,vars:4,consts:[[1,"row-mod"],[4,"ngVar"],[4,"ngFor","ngForOf"],["class","container","matTooltip","Artifice",4,"ngIf"],["matTooltip","Artifice",1,"container"],["tooltip","matTooltip"],[1,"artificeIcon","artifice",3,"src"],[1,"modText","artifice"],["class","container",3,"matTooltip",4,"ngIf"],[1,"container",3,"matTooltip"],[1,"modIcon",3,"src"],[1,"modText"]],template:function(e,o){1&e&&(t.TgZ(0,"div",0),t.YNc(1,Dc,2,1,"ng-container",1),t.ALo(2,"count"),t.YNc(3,Pc,2,1,"ng-container",2),t.qZA()),2&e&&(t.xp6(1),t.Q6J("ngVar",t.lcZ(2,2,o.artifice)),t.xp6(2),t.Q6J("ngForOf",o.modIndex))},dependencies:[y.sg,y.O5,N.gM,Ct,ue],styles:[".container[_ngcontent-%COMP%]{display:inline-block;width:32px;height:30px;position:relative}.modIcon[_ngcontent-%COMP%]{position:absolute;top:-12px;left:-12px;width:50px;height:50px;filter:contrast(2.3);border:#00000000 solid 2px;-webkit-mask-image:url(modmask.f03dde91561a62d6.svg);mask-image:image(url(modmask.f03dde91561a62d6.svg),black)}.modIcon.minor[_ngcontent-%COMP%]{filter:contrast(1.3)}.artificeIcon[_ngcontent-%COMP%]{height:28px;width:28px;filter:saturate(40) hue-rotate(40deg)}.selected[_ngcontent-%COMP%]{border:red solid 2px}[_nghost-%COMP%]{position:relative}.modText[_ngcontent-%COMP%]{position:absolute;text-shadow:0 0 6px #000000;font-size:smaller;color:#f5f5f5;bottom:-6px;right:-1px}"]}),n})();var Jc=_(7314);function Yc(n,i){if(1&n&&t._UZ(0,"div"),2&n){const e=i.$implicit,o=i.index,a=t.oxw().index;t.Jzz("width:",e/32*100,"%"),t.Gre("stat-range-bar stat-range-bar",o+(a>=3?3:0),"")}}const Te=function(){return["Mobility","Resilience","Recovery","Discipline","Intellect","Strength"]};function Lc(n,i){if(1&n&&(t.ynx(0),t.TgZ(1,"tr",16)(2,"td"),t._uU(3),t.qZA(),t.TgZ(4,"td"),t._uU(5),t.ALo(6,"number"),t.qZA(),t.TgZ(7,"td",17)(8,"div",18),t.YNc(9,Yc,1,6,"div",19),t.qZA()()(),t.BQk()),2&n){const e=i.$implicit,o=i.index,a=t.oxw().$implicit;t.xp6(1),t.Q6J("matTooltip",t.DdM(7,Te)[o]),t.xp6(2),t.hij(" ",t.DdM(8,Te)[o]," "),t.xp6(2),t.Oqu(t.xi3(6,4,a.totalStats[o],"1.0-0")),t.xp6(4),t.Q6J("ngForOf",e)}}function Fc(n,i){if(1&n&&(t.TgZ(0,"tr")(1,"td")(2,"a",20),t._UZ(3,"img",15),t.qZA(),t._uU(4),t.qZA(),t.TgZ(5,"td",21),t._uU(6),t.qZA(),t.TgZ(7,"td"),t._uU(8),t.qZA()()),2&n){const e=i.$implicit,o=t.oxw(3);t.xp6(2),t.MGl("href","https://data.destinysets.com/i/InventoryItem:",e,"",t.LSH),t.xp6(2),t.hij(" ",e,""),t.xp6(2),t.Oqu(o.getPlugSum(e)),t.xp6(2),t.Oqu(o.getPlugString(e))}}const Qc=function(n,i,e,o,a,s){return[n,i,e,o,a,s]};function Bc(n,i){if(1&n&&(t.ynx(0),t.TgZ(1,"mat-card",12)(2,"mat-card-title"),t._uU(3),t.qZA(),t.TgZ(4,"mat-card-content")(5,"table")(6,"tr")(7,"td",13),t._uU(8,"Hash:"),t.qZA(),t.TgZ(9,"td")(10,"a",14),t._UZ(11,"img",15),t.qZA(),t._uU(12),t.qZA()(),t.TgZ(13,"tr")(14,"td",13),t._uU(15,"ItemInstanceId:"),t.qZA(),t.TgZ(16,"td"),t._uU(17),t.qZA()(),t.TgZ(18,"tr")(19,"td",13),t._uU(20,"Sunset?"),t.qZA(),t.TgZ(21,"td"),t._uU(22),t.qZA()(),t.TgZ(23,"tr")(24,"td"),t._uU(25,"Total"),t.qZA(),t.TgZ(26,"td"),t._uU(27),t.qZA()(),t.YNc(28,Lc,10,9,"ng-container",10),t.qZA()(),t.TgZ(29,"mat-card-content"),t._uU(30," Plugs: "),t.TgZ(31,"table")(32,"tr")(33,"td"),t._uU(34,"Plug"),t.qZA(),t.TgZ(35,"td"),t._uU(36,"Total"),t.qZA(),t.TgZ(37,"td"),t._uU(38,"Values"),t.qZA()(),t.YNc(39,Fc,9,4,"tr",10),t.qZA()()(),t.BQk()),2&n){const e=i.$implicit;t.xp6(3),t.hij(" ",e.name," "),t.xp6(7),t.MGl("href","https://data.destinysets.com/i/InventoryItem:",e.hash,"",t.LSH),t.xp6(2),t.hij(" ",e.hash,""),t.xp6(5),t.Oqu(e.itemInstanceId),t.xp6(5),t.Oqu(e.isSunset),t.xp6(5),t.Oqu(e.totalSum),t.xp6(1),t.Q6J("ngForOf",t.HTZ(8,Qc,e.mobility,e.resilience,e.recovery,e.discipline,e.intellect,e.strength)),t.xp6(11),t.Q6J("ngForOf",e.statPlugHashes)}}function Vc(n,i){if(1&n&&(t.ynx(0),t.TgZ(1,"mat-toolbar"),t._uU(2),t.qZA(),t._UZ(3,"br"),t.TgZ(4,"div",11),t.YNc(5,Bc,40,15,"ng-container",10),t.qZA(),t.BQk()),2&n){const e=i.$implicit,o=t.oxw();t.xp6(2),t.hij(" ",o.getCategoryName(e.key)," "),t.xp6(3),t.Q6J("ngForOf",e.value)}}let Hc=(()=>{class n{constructor(e,o){this.inventory=e,this.db=o,this.minMobility=0,this.minResilience=0,this.minRecovery=0,this.minDiscipline=0,this.minIntellect=0,this.minStrength=0,this.anyPlugWithN=0,this.anyPlugBelowN=17,this.allPlugsWithN=0,this.allPlugsBelowN=17,this.armorName="",this.armorHash="",this.armorId="",this.armorItemsPerSlot=new Map,this.plugData={},this.ngUnsubscribe=new nt.xQ}ngOnInit(){var e=this;this.inventory.inventory.pipe((0,st.b)(10),(0,Q.R)(this.ngUnsubscribe)).subscribe((0,m.Z)(function*(){e.updateItems()}))}getPlugString(e){var o=this.plugData[e];let a=[0,0,0,0,0,0];for(let s of o.investmentStats)switch(s.statTypeHash){case 2996146975:a[0]+=s.value;break;case 392767087:a[1]+=s.value;break;case 1943323491:a[2]+=s.value;break;case 1735777505:a[3]+=s.value;break;case 144602215:a[4]+=s.value;break;case 4244567218:a[5]+=s.value}return"["+a.join(" ")+"]"}updateItems(){var e=this;return(0,m.Z)(function*(){const a=(yield e.db.manifestArmor.toArray()).filter(d=>19==d.itemType);let s=Object.fromEntries(a.map(d=>[d.hash,d]));e.plugData=s;let l=(yield e.db.inventoryArmor.toArray()).filter(d=>d.source===k.Inventory).sort((d,u)=>(""+d.name).localeCompare(u.name)).map(d=>{var u={name:d.name,hash:d.hash,isSunset:d.isSunset,itemInstanceId:d.itemInstanceId,statPlugHashes:d.statPlugHashes,mobility:[],resilience:[],recovery:[],discipline:[],intellect:[],strength:[],totalStats:[0,0,0,0,0,0],totalSum:0,slot:d.slot};if(d.statPlugHashes)for(let p of d.statPlugHashes){var x=s[p];for(let b of x.investmentStats)switch(b.statTypeHash){case 2996146975:u.mobility.push(b.value),u.totalStats[0]+=b.value;break;case 392767087:u.resilience.push(b.value),u.totalStats[1]+=b.value;break;case 1943323491:u.recovery.push(b.value),u.totalStats[2]+=b.value;break;case 1735777505:u.discipline.push(b.value),u.totalStats[3]+=b.value;break;case 144602215:u.intellect.push(b.value),u.totalStats[4]+=b.value;break;case 4244567218:u.strength.push(b.value),u.totalStats[5]+=b.value}}if(d.investmentStats)for(let p of d.investmentStats)switch(p.statTypeHash){case 2996146975:u.mobility.push(p.value),u.totalStats[0]+=p.value;break;case 392767087:u.resilience.push(p.value),u.totalStats[1]+=p.value;break;case 1943323491:u.recovery.push(p.value),u.totalStats[2]+=p.value;break;case 1735777505:u.discipline.push(p.value),u.totalStats[3]+=p.value;break;case 144602215:u.intellect.push(p.value),u.totalStats[4]+=p.value;break;case 4244567218:u.strength.push(p.value),u.totalStats[5]+=p.value}for(let p of u.totalStats)u.totalSum+=p;return u});l=e.filterItems(l),e.armorItemsPerSlot=l.reduce((d,u)=>{const x=u.slot?u.slot:10;return d.has(x)||d.set(x,[]),d.get(x)?.push(u),d},new Map)})()}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}getCategoryName(e){switch(e){case 1:return"Helmets";case 2:return"Gauntlets";case 3:return"Chest Pieces";case 4:return"Legs";case 5:return"Class Items"}return"Unknown Category"}getPlugSum(e){var o=this.plugData[e],a=0;for(let s of o.investmentStats)switch(s.statTypeHash){case 2996146975:case 392767087:case 1943323491:case 1735777505:case 144602215:case 4244567218:a+=s.value}return a}clear(){this.armorName="",this.armorHash="",this.armorId="",this.minMobility=0,this.minResilience=0,this.minRecovery=0,this.minDiscipline=0,this.minIntellect=0,this.minStrength=0,this.anyPlugWithN=0,this.anyPlugBelowN=17}filterItems(e){return this.armorName&&(e=e.filter(o=>o.name.toLowerCase().indexOf(this.armorName)>-1)),this.armorHash&&(e=e.filter(o=>(o.hash||0).toString().indexOf(this.armorHash)>-1)),this.armorId&&(e=e.filter(o=>(o.itemInstanceId||0).toString().indexOf(this.armorId)>-1)),e=(e=(e=(e=(e=(e=e.filter(o=>o.totalStats[0]>=(this.minMobility||0))).filter(o=>o.totalStats[1]>=(this.minResilience||0))).filter(o=>o.totalStats[2]>=(this.minRecovery||0))).filter(o=>o.totalStats[3]>=(this.minDiscipline||0))).filter(o=>o.totalStats[4]>=(this.minIntellect||0))).filter(o=>o.totalStats[5]>=(this.minStrength||0)),(this.anyPlugWithN??0)>0&&(e=e.filter(o=>(o.statPlugHashes||[]).filter(a=>this.getPlugSum(a)>=(this.anyPlugWithN||0)).length>0)),(this.anyPlugBelowN??0)<17&&(e=e.filter(o=>(o.statPlugHashes||[]).filter(a=>this.getPlugSum(a)<=(this.anyPlugBelowN||0)).length>0)),(this.allPlugsWithN??0)>0&&(e=e.filter(o=>0==(o.statPlugHashes||[]).filter(a=>this.getPlugSum(a)<(this.allPlugsWithN||0)).length)),(this.allPlugsBelowN??0)<17&&(e=e.filter(o=>0==(o.statPlugHashes||[]).filter(a=>this.getPlugSum(a)>(this.allPlugsBelowN||0)).length)),e}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(K),t.Y36(et))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-armor-investigation-page"]],decls:112,vars:26,consts:[["id","description"],["href","https://www.reddit.com/r/DestinyTheGame/comments/mpaopq/how_armor_stats_roll_an_advanced_insight_into/","target","_blank"],["colspan","3"],["appearance","outline"],["matInput","","placeholder","Stronghold",3,"ngModel","ngModelChange"],["matInput","",3,"ngModel","ngModelChange"],["max","32","min","0","step","1","thumbLabel","","tickInterval","1",3,"value","valueChange"],["max","17","min","0","step","1","thumbLabel","","tickInterval","1",3,"value","valueChange"],["mat-raised-button","","color","primary",3,"click"],["mat-raised-button","","color","warn",3,"click"],[4,"ngFor","ngForOf"],["fxLayout","row","fxLayout.xs","column","fxLayoutGap","10px",1,"armor-container"],[1,"cluster-item"],["colspan","2"],["alt","This armor on data.destinysets.com","target","_blank",3,"href"],["src","https://data.destinysets.com/static/media/logo.556bd7bd.svg",2,"width","15px"],[3,"matTooltip"],["width","100%"],[1,"stat-range"],[3,"class","style",4,"ngFor","ngForOf"],["alt","This plug on data.destinysets.com","target","_blank",3,"href"],[1,"plug-sum-col"]],template:function(e,o){1&e&&(t.TgZ(0,"mat-card",0)(1,"mat-card-title"),t._uU(2," Armor Investigation "),t.qZA(),t.TgZ(3,"mat-card-subtitle"),t._uU(4," A visualization tool for data scientists. "),t.qZA(),t.TgZ(5,"mat-card-content"),t._uU(6," This part of the D2ArmorPicker lists all of your armor items. For each armor it shows how it is generated. It shows every used "),t.TgZ(7,"i"),t._uU(8,'"plug"'),t.qZA(),t._uU(9,", as well as the intrinsic stats of exotics. For more information about plugs, see "),t.TgZ(10,"a",1),t._uU(11,"here"),t.qZA(),t._uU(12,". Make sure to give the author an upvote for the hard work! "),t._UZ(13,"br")(14,"br"),t._uU(15," Please note that this feature is mainly targeted for data nerds and people interested in the basic stats of armor. It is just a data visualization. Mobile layout and a search function "),t.TgZ(16,"i"),t._uU(17,"may"),t.qZA(),t._uU(18," happen in the future. "),t.qZA(),t.TgZ(19,"mat-card-title"),t._uU(20," Filters "),t.qZA(),t.TgZ(21,"mat-card-subtitle"),t._uU(22," Some filters. Nothing fancy but it works. Sorry ;) "),t.qZA(),t.TgZ(23,"mat-card-content")(24,"table")(25,"tr")(26,"td",2)(27,"mat-form-field",3)(28,"mat-label"),t._uU(29,"Item Name"),t.qZA(),t.TgZ(30,"input",4),t.NdJ("ngModelChange",function(s){return o.armorName=s}),t.qZA()()(),t.TgZ(31,"td",2)(32,"mat-form-field",3)(33,"mat-label"),t._uU(34,"Item Hash"),t.qZA(),t.TgZ(35,"input",5),t.NdJ("ngModelChange",function(s){return o.armorHash=s}),t.qZA()()(),t.TgZ(36,"td",2)(37,"mat-form-field",3)(38,"mat-label"),t._uU(39,"Item ID"),t.qZA(),t.TgZ(40,"input",5),t.NdJ("ngModelChange",function(s){return o.armorId=s}),t.qZA()()()(),t.TgZ(41,"tr")(42,"td"),t._uU(43," Mobility: "),t.qZA(),t.TgZ(44,"td"),t._uU(45),t.qZA(),t.TgZ(46,"td")(47,"mat-slider",6),t.NdJ("valueChange",function(s){return o.minMobility=s}),t.qZA()(),t.TgZ(48,"td"),t._uU(49," Resilience: "),t.qZA(),t.TgZ(50,"td"),t._uU(51),t.qZA(),t.TgZ(52,"td")(53,"mat-slider",6),t.NdJ("valueChange",function(s){return o.minResilience=s}),t.qZA()(),t.TgZ(54,"td"),t._uU(55," Recovery: "),t.qZA(),t.TgZ(56,"td"),t._uU(57),t.qZA(),t.TgZ(58,"td")(59,"mat-slider",6),t.NdJ("valueChange",function(s){return o.minRecovery=s}),t.qZA()()(),t.TgZ(60,"tr")(61,"td"),t._uU(62," Discipline: "),t.qZA(),t.TgZ(63,"td"),t._uU(64),t.qZA(),t.TgZ(65,"td")(66,"mat-slider",6),t.NdJ("valueChange",function(s){return o.minDiscipline=s}),t.qZA()(),t.TgZ(67,"td"),t._uU(68," Intellect: "),t.qZA(),t.TgZ(69,"td"),t._uU(70),t.qZA(),t.TgZ(71,"td")(72,"mat-slider",6),t.NdJ("valueChange",function(s){return o.minIntellect=s}),t.qZA()(),t.TgZ(73,"td"),t._uU(74," Strength: "),t.qZA(),t.TgZ(75,"td"),t._uU(76),t.qZA(),t.TgZ(77,"td")(78,"mat-slider",6),t.NdJ("valueChange",function(s){return o.minStrength=s}),t.qZA()()(),t.TgZ(79,"tr")(80,"td"),t._uU(81," Any plug >=: "),t.qZA(),t.TgZ(82,"td"),t._uU(83),t.qZA(),t.TgZ(84,"td")(85,"mat-slider",7),t.NdJ("valueChange",function(s){return o.anyPlugWithN=s}),t.qZA()(),t.TgZ(86,"td"),t._uU(87," Any Plug <=: "),t.qZA(),t.TgZ(88,"td"),t._uU(89),t.qZA(),t.TgZ(90,"td")(91,"mat-slider",7),t.NdJ("valueChange",function(s){return o.anyPlugBelowN=s}),t.qZA()()(),t.TgZ(92,"tr")(93,"td"),t._uU(94," All plugs >=: "),t.qZA(),t.TgZ(95,"td"),t._uU(96),t.qZA(),t.TgZ(97,"td")(98,"mat-slider",7),t.NdJ("valueChange",function(s){return o.allPlugsWithN=s}),t.qZA()(),t.TgZ(99,"td"),t._uU(100," All Plugs <=: "),t.qZA(),t.TgZ(101,"td"),t._uU(102),t.qZA(),t.TgZ(103,"td")(104,"mat-slider",7),t.NdJ("valueChange",function(s){return o.allPlugsBelowN=s}),t.qZA()()()(),t.TgZ(105,"a",8),t.NdJ("click",function(){return o.updateItems()}),t._uU(106,"Update"),t.qZA(),t._uU(107,"\xa0 "),t.TgZ(108,"a",9),t.NdJ("click",function(){return o.clear()}),t._uU(109,"Clear"),t.qZA()()(),t.YNc(110,Vc,6,2,"ng-container",10),t.ALo(111,"keyvalue")),2&e&&(t.xp6(30),t.Q6J("ngModel",o.armorName),t.xp6(5),t.Q6J("ngModel",o.armorHash),t.xp6(5),t.Q6J("ngModel",o.armorId),t.xp6(5),t.hij(" ",o.minMobility,""),t.xp6(2),t.Q6J("value",o.minMobility),t.xp6(4),t.hij(" ",o.minResilience,""),t.xp6(2),t.Q6J("value",o.minResilience),t.xp6(4),t.hij(" ",o.minRecovery,""),t.xp6(2),t.Q6J("value",o.minRecovery),t.xp6(5),t.hij(" ",o.minDiscipline,""),t.xp6(2),t.Q6J("value",o.minDiscipline),t.xp6(4),t.hij(" ",o.minIntellect,""),t.xp6(2),t.Q6J("value",o.minIntellect),t.xp6(4),t.Oqu(o.minStrength),t.xp6(2),t.Q6J("value",o.minStrength),t.xp6(5),t.Oqu(o.anyPlugWithN),t.xp6(2),t.Q6J("value",o.anyPlugWithN),t.xp6(4),t.Oqu(o.anyPlugBelowN),t.xp6(2),t.Q6J("value",o.anyPlugBelowN),t.xp6(5),t.Oqu(o.allPlugsWithN),t.xp6(2),t.Q6J("value",o.allPlugsWithN),t.xp6(4),t.Oqu(o.allPlugsBelowN),t.xp6(2),t.Q6J("value",o.allPlugsBelowN),t.xp6(6),t.Q6J("ngForOf",t.lcZ(111,24,o.armorItemsPerSlot)))},dependencies:[y.sg,Y.xw,Y.SQ,V.Fj,V.JJ,V.On,g.zs,lt.KE,lt.hX,Jc.pH,Jt.Nt,A.a8,A.dn,A.n5,A.$j,N.gM,W.Ye,y.JJ,y.Nd],styles:["#description[_ngcontent-%COMP%], #filter[_ngcontent-%COMP%]{max-width:700px;margin-bottom:10px;margin-left:auto;margin-right:auto}.cluster-item[_ngcontent-%COMP%]{flex-grow:1;flex-basis:0;min-width:250px;max-width:350px;margin-bottom:10px}.armor-container[_ngcontent-%COMP%], .plug-sum-col[_ngcontent-%COMP%]{padding-left:5px}.armor-container[_ngcontent-%COMP%]{flex-wrap:wrap}.stat-range[_ngcontent-%COMP%]{height:20px;width:100%;margin-bottom:3px;float:left;background-color:gray}.stat-range-bar[_ngcontent-%COMP%]{height:100%;float:left;background-color:#fff}.stat-range-bar0[_ngcontent-%COMP%]{background-color:#acfff1}.stat-range-bar1[_ngcontent-%COMP%]{background-color:#5e9eff}.stat-range-bar3[_ngcontent-%COMP%]{background-color:#ffc2ac}.stat-range-bar4[_ngcontent-%COMP%]{background-color:#ffb45e}.stat-range-bar2[_ngcontent-%COMP%], .stat-range-bar5[_ngcontent-%COMP%]{background-color:#c246ff}a[_ngcontent-%COMP%]{color:#99afe3}a[_ngcontent-%COMP%]:visited{color:#7294dc}"]}),n})(),Wc=(()=>{class n{constructor(e,o,a){this.db=e,this.inv=o,this.loginService=a}downloadArmorInformation(){var e=this;return(0,m.Z)(function*(){const o=yield e.db.inventoryArmor.toArray(),a=window.URL.createObjectURL(new Blob([JSON.stringify(o,null,2)])),s=document.createElement("a");s.href=a,s.setAttribute("download","d2ap_armor.json"),document.body.appendChild(s),s.click()})()}downloadManifestInformation(){var e=this;return(0,m.Z)(function*(){const o=yield e.db.manifestArmor.toArray(),a=window.URL.createObjectURL(new Blob([JSON.stringify(o,null,1)])),s=document.createElement("a");s.href=a,s.setAttribute("download","d2ap_manifest.json"),document.body.appendChild(s),s.click()})()}resetDatabase(){var e=this;return(0,m.Z)(function*(){yield e.db.resetDatabase(),yield e.inv.refreshAll(!0,!0)})()}resetEverything(){var e=this;return(0,m.Z)(function*(){localStorage.clear(),yield e.db.resetDatabase(),yield e.loginService.logout()})()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(et),t.Y36(K),t.Y36(L))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-account-config-page"]],decls:35,vars:0,consts:[["id","account-config-container"],["color","primary","fxShow","false","fxShow.lt-md","true","mat-raised-button","","routerLink","/",1,"returnbutton"],["color","primary","mat-raised-button","",1,"btn-download",3,"click"],["color","warn","mat-raised-button","",1,"btn-download",3,"click"]],template:function(e,o){1&e&&(t.TgZ(0,"div",0)(1,"a",1),t._uU(2," Return to D2ArmorPicker "),t.qZA(),t.TgZ(3,"mat-card")(4,"mat-card-title"),t._uU(5," Account Configuration "),t.qZA(),t.TgZ(6,"mat-card-subtitle"),t._uU(7," The configuration on this page will not be reset when you reset your build settings. "),t.qZA(),t.TgZ(8,"mat-card-content"),t._uU(9,' This will come in a future update. Right now, I just wanted to push the "Debugging" section out. '),t.qZA()(),t.TgZ(10,"mat-card")(11,"mat-card-title"),t._uU(12," Debugging "),t.qZA(),t.TgZ(13,"mat-card-subtitle"),t._uU(14," Some options for debugging purposes. "),t.qZA(),t.TgZ(15,"mat-card-content"),t._uU(16," If the team asks you to send some specific data, you can find it here:"),t._UZ(17,"br"),t.TgZ(18,"a",2),t.NdJ("click",function(){return o.downloadArmorInformation()}),t._uU(19," Download armor information (d2ap_armor.json) "),t.qZA(),t.TgZ(20,"a",2),t.NdJ("click",function(){return o.downloadManifestInformation()}),t._uU(21," Download manifest information (d2ap_manifest.json) "),t.qZA(),t._UZ(22,"br")(23,"br"),t._uU(24," If you experience issues with the local database - for example, exotics not being found, try this:"),t._UZ(25,"br"),t.TgZ(26,"a",3),t.NdJ("click",function(){return o.resetDatabase()}),t._uU(27," Delete Database "),t.qZA(),t._UZ(28,"br"),t._uU(29," If you really want to reset EVERYTHING, use this: "),t._UZ(30,"br"),t.TgZ(31,"a",3),t.NdJ("click",function(){return o.resetEverything()}),t._uU(32," Reset the whole application "),t.qZA()()(),t.TgZ(33,"a",1),t._uU(34," Return to D2ArmorPicker "),t.qZA()())},dependencies:[H.b8,g.zs,A.a8,A.dn,A.n5,A.$j,I.yS],styles:[".returnbutton[_ngcontent-%COMP%]{margin-top:5px;margin-bottom:15px;width:100%}#account-config-container[_ngcontent-%COMP%]{max-width:800px;margin-left:auto;margin-right:auto}mat-card[_ngcontent-%COMP%]{margin-bottom:8px}.btn-download[_ngcontent-%COMP%]{margin-right:10px}"]}),n})();var jc=_(4661),ye=_(7331);const zc=[{path:"",component:Ve,canActivate:[Ot],children:[{path:"",component:wc},{path:"help",component:cs},{path:"cluster",component:Mc},{path:"investigate",component:Hc},{path:"theory",loadChildren:()=>_.e(613).then(_.bind(_,8613)).then(n=>n.TheorizerPageModule)},{path:"account",component:Wc}]},{path:"login",component:St,canActivate:[Mt]},{path:"login-bungie",component:_t},{path:"**",redirectTo:"/"}];let Gc=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n,bootstrap:[xt]}),n.\u0275inj=t.cJS({imports:[y.ez,jc.V,v.b2,It.PW,at.JF,I.Bz.forRoot(zc,{useHash:!0}),wt.Iq,mt.xu]}),n})();t.B6R(me,function(){return[y.sg,y.O5,Y.xw,Y.SQ,Y.Wh,Y.yH,g.lW,lt.KE,lt.hX,lt.R9,Jt.Nt,w.BZ,w.fO,w.as,w.w1,w.Dz,w.nj,w.ge,w.ev,w.XQ,w.Gk,A.a8,A.dn,A.n5,A.$j,A.hq,N.gM,j.Hw,Bt.YE,Bt.nU,ce.NW,ye.qn,ye.HS,es,qc]},function(){return[y.JJ]}),t.B6R(re,function(){return[g.lW,$.ZT,$.uh,$.xY,$.H8,ge]},[]),(0,t.G48)(),v.q6().bootstrapModule(Gc).catch(n=>console.error(n))},2361:()=>{},4616:()=>{}},ot=>{ot.O(0,[736],()=>ot(ot.s=7789)),ot.O()}]); \ No newline at end of file +(self.webpackChunkD2ArmorPicker=self.webpackChunkD2ArmorPicker||[]).push([[179],{4682:(ot,z,_)=>{"use strict";_.d(z,{F:()=>S});var v=_(5861),t=_(7975);function S(H){const W=new t.ZP("d2armorpicker-v2");return W.version(24).stores({manifestArmor:"id++, hash, isExotic",inventoryArmor:"id++, itemInstanceId, isExotic, hash, name, masterworked, clazz, slot, source",manifestCollectibles:"id++, hash",vendorNames:"id++, vendorId"}).upgrade(function(){var I=(0,v.Z)(function*(m){yield H()});return function(m){return I.apply(this,arguments)}}()),W}},6471:(ot,z,_)=>{"use strict";_.d(z,{y:()=>v});var v=(()=>{return(t=v||(v={}))[t.ArmorSlotNone=0]="ArmorSlotNone",t[t.ArmorSlotHelmet=1]="ArmorSlotHelmet",t[t.ArmorSlotGauntlet=2]="ArmorSlotGauntlet",t[t.ArmorSlotChest=3]="ArmorSlotChest",t[t.ArmorSlotLegs=4]="ArmorSlotLegs",t[t.ArmorSlotClass=5]="ArmorSlotClass",v;var t})()},1043:(ot,z,_)=>{"use strict";_.d(z,{AR:()=>I,DH:()=>L,ID:()=>_t,K9:()=>S,Mi:()=>H,Pn:()=>m,Sy:()=>Y,WB:()=>t,X9:()=>at,cM:()=>ct,iV:()=>v,lp:()=>W,vr:()=>xt});var v=(()=>{return(g=v||(v={}))[g.NONE=0]="NONE",g[g.MINOR_MOBILITY=1]="MINOR_MOBILITY",g[g.MAJOR_MOBILITY=2]="MAJOR_MOBILITY",g[g.ARTIFICE_MOBILITY=3]="ARTIFICE_MOBILITY",g[g.MINOR_RESILIENCE=4]="MINOR_RESILIENCE",g[g.MAJOR_RESILIENCE=5]="MAJOR_RESILIENCE",g[g.ARTIFICE_RESILIENCE=6]="ARTIFICE_RESILIENCE",g[g.MINOR_RECOVERY=7]="MINOR_RECOVERY",g[g.MAJOR_RECOVERY=8]="MAJOR_RECOVERY",g[g.ARTIFICE_RECOVERY=9]="ARTIFICE_RECOVERY",g[g.MINOR_DISCIPLINE=10]="MINOR_DISCIPLINE",g[g.MAJOR_DISCIPLINE=11]="MAJOR_DISCIPLINE",g[g.ARTIFICE_DISCIPLINE=12]="ARTIFICE_DISCIPLINE",g[g.MINOR_INTELLECT=13]="MINOR_INTELLECT",g[g.MAJOR_INTELLECT=14]="MAJOR_INTELLECT",g[g.ARTIFICE_INTELLECT=15]="ARTIFICE_INTELLECT",g[g.MINOR_STRENGTH=16]="MINOR_STRENGTH",g[g.MAJOR_STRENGTH=17]="MAJOR_STRENGTH",g[g.ARTIFICE_STRENGTH=18]="ARTIFICE_STRENGTH",v;var g})(),t=(()=>{return(g=t||(t={}))[g.Mobility=0]="Mobility",g[g.Resilience=1]="Resilience",g[g.Recovery=2]="Recovery",g[g.Discipline=3]="Discipline",g[g.Intellect=4]="Intellect",g[g.Strength=5]="Strength",t;var g})();const S={[v.NONE]:[t.Strength,0,0,0],[v.MINOR_MOBILITY]:[t.Mobility,5,1,1703647492],[v.MAJOR_MOBILITY]:[t.Mobility,10,3,4183296050],[v.ARTIFICE_MOBILITY]:[t.Mobility,3,0,2322202118],[v.MINOR_RESILIENCE]:[t.Resilience,5,2,2532323436],[v.MAJOR_RESILIENCE]:[t.Resilience,10,4,1180408010],[v.ARTIFICE_RESILIENCE]:[t.Resilience,3,0,199176566],[v.MINOR_RECOVERY]:[t.Recovery,5,2,1237786518],[v.MAJOR_RECOVERY]:[t.Recovery,10,4,4204488676],[v.ARTIFICE_RECOVERY]:[t.Recovery,3,0,539459624],[v.MINOR_DISCIPLINE]:[t.Discipline,5,1,4021790309],[v.MAJOR_DISCIPLINE]:[t.Discipline,10,3,1435557120],[v.ARTIFICE_DISCIPLINE]:[t.Discipline,3,0,617569843],[v.MINOR_INTELLECT]:[t.Intellect,5,2,350061697],[v.MAJOR_INTELLECT]:[t.Intellect,10,4,2724608735],[v.ARTIFICE_INTELLECT]:[t.Intellect,3,0,3160845295],[v.MINOR_STRENGTH]:[t.Strength,5,1,2639422088],[v.MAJOR_STRENGTH]:[t.Strength,10,3,4287799666],[v.ARTIFICE_STRENGTH]:[t.Strength,3,0,2507624050]},H={[t.Mobility]:"Mobility",[t.Resilience]:"Resilience",[t.Recovery]:"Recovery",[t.Discipline]:"Discipline",[t.Intellect]:"Intellect",[t.Strength]:"Strength"},W={[t.Mobility]:"https://www.bungie.net/common/destiny2_content/icons/e26e0e93a9daf4fdd21bf64eb9246340.png",[t.Resilience]:"https://www.bungie.net/common/destiny2_content/icons/202ecc1c6febeb6b97dafc856e863140.png",[t.Recovery]:"https://www.bungie.net/common/destiny2_content/icons/128eee4ee7fc127851ab32eac6ca91cf.png",[t.Discipline]:"https://www.bungie.net/common/destiny2_content/icons/79be2d4adef6a19203f7385e5c63b45b.png",[t.Intellect]:"https://www.bungie.net/common/destiny2_content/icons/d1c154469670e9a592c9d4cbdcae5764.png",[t.Strength]:"https://www.bungie.net/common/destiny2_content/icons/ea5af04ccd6a3470a44fd7bb0f66e2f7.png"};var I=(()=>{return(g=I||(I={}))[g.ClassAbilityRegenerationStat=10]="ClassAbilityRegenerationStat",I;var g})(),m=(()=>{return(g=m||(m={}))[g.None=0]="None",g[g.SlotNightmare=1]="SlotNightmare",g[g.SlotArtifice=2]="SlotArtifice",g[g.SlotLastWish=3]="SlotLastWish",g[g.SlotGardenOfSalvation=4]="SlotGardenOfSalvation",g[g.SlotDeepStoneCrypt=5]="SlotDeepStoneCrypt",g[g.SlotVaultOfGlass=6]="SlotVaultOfGlass",g[g.PerkIronBanner=7]="PerkIronBanner",g[g.PerkUniformedOfficer=8]="PerkUniformedOfficer",g[g.SlotVowOfTheDisciple=9]="SlotVowOfTheDisciple",g[g.SlotKingsFall=10]="SlotKingsFall",g[g.SlotCrotasEnd=11]="SlotCrotasEnd",g[g.PerkPlunderersTrappings=12]="PerkPlunderersTrappings",g[g.SeraphSensorArray=13]="SeraphSensorArray",g[g.SlotRootOfNightmares=14]="SlotRootOfNightmares",g[g.PerkQueensFavor=15]="PerkQueensFavor",g[g.GuardianGamesClassItem=16]="GuardianGamesClassItem",g[g.SonarAmplifier=17]="SonarAmplifier",g[g.COUNT=18]="COUNT",m;var g})();const ct={[m.None]:"None",[m.GuardianGamesClassItem]:"Guardian Games",[m.SlotNightmare]:"Nightmare Hunt Modslot",[m.SlotArtifice]:"Artifice Modslot",[m.SlotLastWish]:"Last Wish Modslot",[m.SlotGardenOfSalvation]:"Garden of Salvation Modslot",[m.SlotDeepStoneCrypt]:"Deep Stone Crypt Modslot",[m.SlotVaultOfGlass]:"Vault of Glass Modslot",[m.SlotVowOfTheDisciple]:"Vow of the Disciple Modslot",[m.PerkIronBanner]:"Iron Banner Perk",[m.PerkUniformedOfficer]:"Uniformed Officer",[m.SlotKingsFall]:"King's Fall Modslot",[m.SlotCrotasEnd]:"Crota's End Modslot",[m.PerkPlunderersTrappings]:"Plunderer's Trappings",[m.SeraphSensorArray]:"Seraph Sensor Array",[m.SlotRootOfNightmares]:"Root of Nightmares Modslot",[m.PerkQueensFavor]:"Queen's Favor",[m.SonarAmplifier]:"Sonar Amplifier",[m.COUNT]:""},at={[m.None]:"https://www.bungie.net/img/misc/missing_icon_d2.png",[m.GuardianGamesClassItem]:"https://www.bungie.net/common/destiny2_content/icons/DestinyEventCardDefinition_ce6c2cf855dce694bcc89803b6bc44b7.png",[m.SlotNightmare]:"https://www.bungie.net/common/destiny2_content/icons/53d6e3505cd03d4026b3dbbd9ccc19b6.jpg",[m.SlotArtifice]:"https://www.bungie.net/common/destiny2_content/icons/46eec78bb7864641bbd7ba1fd4f9f248.png",[m.SlotLastWish]:"https://www.bungie.net/common/destiny2_content/icons/76f0c1520fa384ceb27bd2469225dd8a.png",[m.SlotGardenOfSalvation]:"https://www.bungie.net/common/destiny2_content/icons/53d6e3505cd03d4026b3dbbd9ccc19b6.jpg",[m.SlotDeepStoneCrypt]:"https://www.bungie.net/common/destiny2_content/icons/d6452d010cfe72a51a9089ec68ab223c.png",[m.SlotVaultOfGlass]:"https://www.bungie.net/common/destiny2_content/icons/7c9a2d95113de19c5acdbed57775abf4.png",[m.SlotVowOfTheDisciple]:"https://www.bungie.net/common/destiny2_content/icons/b84b6ea72dd05de7123aa2ae87ba0d6a.png",[m.PerkIronBanner]:"https://bungie.net/common/destiny2_content/icons/DestinyActivityModeDefinition_fe57052d7cf971f7502daa75a2ca2437.png",[m.PerkUniformedOfficer]:"https://www.bungie.net/common/destiny2_content/icons/b4f6064c3757f9a6725b80f88ee824c0.png",[m.SlotKingsFall]:"https://www.bungie.net/common/destiny2_content/icons/0e515c7cf25a2f2350b788e6f5b7f8eb.png",[m.SlotCrotasEnd]:"https://www.bungie.net/common/destiny2_content/icons/7ddce334fe8391848f408227439c1d7a.png",[m.PerkPlunderersTrappings]:"https://www.bungie.net/common/destiny2_content/icons/7394ce8bcde3a665584b988cc133d62c.png",[m.SeraphSensorArray]:"https://www.bungie.net/common/destiny2_content/icons/7394ce8bcde3a665584b988cc133d62c.png",[m.SlotRootOfNightmares]:"https://www.bungie.net/common/destiny2_content/icons/f2b6ec58e14244e4972705897667c246.png",[m.PerkQueensFavor]:"https://www.bungie.net/common/destiny2_content/icons/8d844c97fa13f4cb649358404d011be7.png",[m.SonarAmplifier]:"https://www.bungie.net/common/destiny2_content/icons/e083d8a85c2c60825204d14b9e9263b7.png",[m.COUNT]:""},L={[m.SlotArtifice]:3727270518,[m.SonarAmplifier]:2779380852,[m.SlotRootOfNightmares]:4144354978,[m.SlotKingsFall]:1728096240,[m.SlotCrotasEnd]:717667840,[m.SlotLastWish]:1679876242,[m.SlotVaultOfGlass]:3738398030,[m.SlotGardenOfSalvation]:706611068,[m.SlotDeepStoneCrypt]:4055462131,[m.SlotVowOfTheDisciple]:2447143568,[m.PerkQueensFavor]:1101259514,[m.SlotNightmare]:1180997867,[m.PerkIronBanner]:2472875850,[m.PerkUniformedOfficer]:2392155347,[m.PerkPlunderersTrappings]:400659041,[m.SeraphSensorArray]:3525583702},_t={[m.None]:"",[m.GuardianGamesClassItem]:"(hash:537041732 or hash:366019830 or hash:1013401891)",[m.SlotNightmare]:"modslot:nightmare",[m.SlotArtifice]:'perkname:"artifice armor"',[m.SlotLastWish]:"modslot:lastwish",[m.SlotGardenOfSalvation]:"modslot:gardenofsalvation",[m.SlotDeepStoneCrypt]:"modslot:deepstonecrypt",[m.SlotVaultOfGlass]:"modslot:vaultofglass",[m.SlotVowOfTheDisciple]:"source:vow",[m.PerkIronBanner]:'perkname:"iron lord\'s pride"',[m.PerkUniformedOfficer]:'perkname:"Uniformed Officer"',[m.SlotKingsFall]:"modslot:kingsfall",[m.SlotCrotasEnd]:"modslot:crotasend",[m.PerkPlunderersTrappings]:'perkname:"plunderer\'s trappings"',[m.SeraphSensorArray]:'perkname:"seraph sensor array"',[m.SlotRootOfNightmares]:"modslot:rootofnightmares",[m.PerkQueensFavor]:'perkname:"queen\'s favor"',[m.SonarAmplifier]:'perkname:"sonar amplifier"',[m.COUNT]:""},xt={0:"Any",1:"Arc",2:"Solar",3:"Void",6:"Stasis",4:"Ghost",5:"Subclass"},Y={0:"",1:"https://www.bungie.net/common/destiny2_content/icons/DestinyDamageTypeDefinition_092d066688b879c807c3b460afdd61e6.png",2:"https://www.bungie.net/common/destiny2_content/icons/DestinyDamageTypeDefinition_2a1773e10968f2d088b97c22b22bba9e.png",3:"https://www.bungie.net/common/destiny2_content/icons/DestinyDamageTypeDefinition_ceb2f6197dccf3958bb31cc783eb97a0.png",6:"https://www.bungie.net/common/destiny2_content/icons/DestinyDamageTypeDefinition_530c4c3e7981dc2aefd24fd3293482bf.png",4:"",5:""}},8333:(ot,z,_)=>{"use strict";_.d(z,{O:()=>v});var v=(()=>{return(t=v||(v={}))[t.CombatStyleMod=0]="CombatStyleMod",t[t.Stasis=1]="Stasis",t[t.Void=2]="Void",t[t.Solar=3]="Solar",t[t.Arc=4]="Arc",t[t.Strand=5]="Strand",t[t.RetrofitMods=6]="RetrofitMods",v;var t})()},4661:(ot,z,_)=>{"use strict";_.d(z,{V:()=>At});var v=_(4859),t=_(9549),S=_(4385),H=_(3238),W=_(7314),I=_(4144),m=_(455),ct=_(2143),at=_(3546),L=_(266),_t=_(3162),xt=_(7392),Y=_(6308),g=_(8739),A=_(3683),J=_(3217),St=_(811),It=_(6338),Ot=_(7084),Mt=_(5412),mt=_(7009),kt=_(1572),Dt=_(3848),dt=_(7331),Tt=_(3267),U=_(4006),st=_(9814),r=_(4650);let At=(()=>{class ft{}return ft.\u0275fac=function(jt){return new(jt||ft)},ft.\u0275mod=r.oAB({type:ft}),ft.\u0275inj=r.cJS({imports:[v.ot,t.lN,S.LD,H.Ng,W.KP,I.c,m.rP,ct.p0,at.QW,L.AV,_t.Cv,xt.Ps,Y.JX,g.TU,A.g0,J.Tx,St.vV,It.ie,Ot.To,Mt.Is,mt.ZX,kt.Cq,Dt.Nh,dt.Hi,Tt.SJ,U.UX,U.u5,st.o9,st.o9,U.UX,U.u5,v.ot,t.lN,S.LD,H.Ng,W.KP,I.c,m.rP,ct.p0,at.QW,L.AV,_t.Cv,xt.Ps,Y.JX,g.TU,A.g0,J.Tx,St.vV,It.ie,Ot.To,Mt.Is,mt.ZX,kt.Cq,Dt.Nh,dt.Hi,Tt.SJ]}),ft})()},7789:(ot,z,_)=>{"use strict";var v=_(1481),t=_(4650);const S_apiKey="9415df8eff46408aa9c0d51e4d69b94f",S_featureFlags_enableModslotLimitation=!0,S_featureFlags_enableZeroWaste=!0,S_featureFlags_enableGuardianGamesFeatures=!1;var H=_(5829),W=_(3683),I=_(6630),m=_(5861),ct=_(6831),at=_(529);let L=(()=>{class n{constructor(e,o){this.http=e,this.router=o,this._logoutEvent=new ct.t(1),this.logoutEvent=this._logoutEvent.asObservable()}get refreshTokenExpired(){return this.refreshTokenExpiringAt (this.lastRefresh + timing)":Date.now()>e.lastRefresh+18e5}),!(e.refreshToken&&Date.now()e.lastRefresh+18e5)||(yield e.generateTokens(!0))})()}getCurrentMembershipData(){var e=this;return(0,m.Z)(function*(){const o=JSON.parse(localStorage.getItem("auth-membershipInfo")||"null");if(null==o){const a=e.getCurrentMembershipData();return localStorage.setItem("auth-membershipInfo",JSON.stringify(a)),a}return o})()}generateTokens(e=!1){var o=this;return(0,m.Z)(function*(){console.info("Generate auth tokens","refresh based on refresh_token:",e);let u=`grant_type=authorization_code&code=${o.authCode}&client_id=37252&client_secret=KnVcJPWr7C5y0loOfBoKSyQ-vWXR0JICrgb1aJLsLgg`;return e&&(u=`grant_type=refresh_token&refresh_token=${o.refreshToken}&client_id=37252&client_secret=KnVcJPWr7C5y0loOfBoKSyQ-vWXR0JICrgb1aJLsLgg`),yield o.http.post("https://www.bungie.net/Platform/App/OAuth/Token/",u,{headers:{"Content-Type":"application/x-www-form-urlencoded","X-API-Key":S_apiKey}}).toPromise().then(x=>(console.log("generateTokens",x),o.accessToken=x.access_token,o.refreshToken=x.refresh_token,o.refreshTokenExpiringAt=Date.now()+1e3*x.refresh_expires_in-1e4,o.lastRefresh=Date.now(),!0)).catch(function(){var x=(0,m.Z)(function*(p){return console.log({err:p}),yield o.logout(),!1});return function(p){return x.apply(this,arguments)}}())})()}isAuthenticated(){return!!this.accessToken}get authCode(){return localStorage.getItem("code")}set authCode(e){e?(console.info("Setting new auth code"),localStorage.setItem("code",""+e)):(console.info("Clearing auth code"),localStorage.removeItem("code"))}get accessToken(){return localStorage.getItem("accessToken")}set accessToken(e){e?(console.info("Setting new access token"),localStorage.setItem("accessToken",""+e)):(console.info("Clearing access token"),localStorage.removeItem("accessToken"))}get refreshToken(){return localStorage.getItem("refreshToken")}set refreshToken(e){e?(console.info("Setting new refresh token"),localStorage.setItem("refreshToken",""+e)):(console.info("Clearing refresh token"),localStorage.removeItem("refreshToken"))}get refreshTokenExpiringAt(){let e=localStorage.getItem("refreshTokenExpiringAt")||"0";return e?Number.parseInt(e):0}set refreshTokenExpiringAt(e){e?(console.info("Setting new refresh token"),localStorage.setItem("refreshTokenExpiringAt",""+e)):(console.info("Clearing refresh token"),localStorage.removeItem("refreshTokenExpiringAt"))}get lastRefresh(){let e=localStorage.getItem("lastRefresh")||"0";return e?Number.parseInt(e):0}set lastRefresh(e){e?localStorage.setItem("lastRefresh",e.toString()):localStorage.removeItem("lastRefresh")}clearManifestInfo(){localStorage.removeItem("LastArmorUpdate"),localStorage.removeItem("LastManifestUpdate")}clearLoginInfo(){this.lastRefresh=null,this.refreshTokenExpiringAt=null,this.authCode=null,this.accessToken=null,this.refreshToken=null,localStorage.removeItem("auth-membershipInfo")}logout(){var e=this;return(0,m.Z)(function*(){try{e._logoutEvent.next(null),e.clearManifestInfo(),e.clearLoginInfo()}finally{yield e.router.navigate(["login"])}})()}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(at.eN),t.LFG(I.F0))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),_t=(()=>{class n{constructor(e,o,a){this.activatedRoute=e,this.router=o,this.loginService=a}ngOnInit(){var e=this;this.activatedRoute.queryParams.subscribe(function(){var o=(0,m.Z)(function*(a){let s=a.code;window.location.search.indexOf("?code=")>-1&&(s=window.location.search.substr(6)),console.info({code:s}),s&&(e.loginService.authCode=s,console.info("Generate tokens with the new code"),yield e.loginService.generateTokens(),console.info("Now navigate to /"),yield e.router.navigate(["/"]))});return function(a){return o.apply(this,arguments)}}())}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(I.gz),t.Y36(I.F0),t.Y36(L))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-handle-bungie-login"]],decls:0,vars:0,template:function(e,o){}}),n})(),xt=(()=>{class n{constructor(){this.title="D2ArmorPicker",console.log("PRODUCTION?",true)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-root"]],decls:8,vars:0,consts:[["color","accent",1,"bungie-day",2,"display","none"],[1,"header-spacer"],["fxHide.xs","","src","../assets/bungie-game2give.png","alt","donordrive",1,"donordrive"],["href","https://bungiefoundation.donordrive.com/participant/19714","target","_blank","title","Support the Bungie Foundation!"]],template:function(e,o){1&e&&(t.TgZ(0,"mat-toolbar",0),t._UZ(1,"span",1)(2,"img",2),t.TgZ(3,"a",3),t._uU(4," Support us at the Bungie Foundation 2023 \u2764 "),t.qZA(),t._UZ(5,"span",1),t.qZA(),t._UZ(6,"app-handle-bungie-login")(7,"router-outlet"))},dependencies:[H.b8,W.Ye,I.lC,_t],styles:[".bungie-day[_ngcontent-%COMP%]{height:-moz-fit-content;height:fit-content;position:relative;max-width:100vw;word-break:break-all}.bungie-day[_ngcontent-%COMP%] img.donordrive[_ngcontent-%COMP%]{height:30px;margin-left:2px;margin-right:2px}.bungie-day[_ngcontent-%COMP%] a[_ngcontent-%COMP%], .bungie-day[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:visited{color:#fff}.bungie-day[_ngcontent-%COMP%] .header-spacer[_ngcontent-%COMP%]{flex:1 1 auto}"]}),n})();var Y=_(1576),g=_(4859),A=_(3546),J=_(7084);let St=(()=>{class n{constructor(){}startLogin(){window.location.href="https://www.bungie.net/en/OAuth/Authorize?client_id=37252&response_type=code&reauth=true"}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-login"]],decls:76,vars:0,consts:[["mat-card-avatar","",1,"example-header-image"],["href","https://ko-fi.com/mijago","target","_blank"],["href","https://github.com/Mijago/D2ArmorPicker","target","_blank"],["color","primary","mat-raised-button","",3,"click"],[1,"mat-elevation-z11"],["src","assets/info/statselection.png",1,"image-example"],["src","assets/resultOverviewWithFlex.png",1,"image-example"],["src","assets/info/whattodonow.png",1,"image-example"],["src","assets/info/armorClustering.png",1,"image-example"],["fxLayoutGap","10px","fxLayout","row",1,"armor-image-container"],["src","assets/info/cluster-example/img.png"],["src","assets/info/cluster-example/img_1.png"],["src","assets/info/cluster-example/img_2.png"]],template:function(e,o){1&e&&(t.TgZ(0,"mat-card")(1,"mat-card-header"),t._UZ(2,"div",0),t.TgZ(3,"mat-card-title"),t._uU(4,"Destiny 2 Armor Picker"),t.qZA(),t.TgZ(5,"mat-card-subtitle"),t._uU(6,"A simple armor min-max tool by Mijago."),t.qZA()(),t.TgZ(7,"mat-card-content")(8,"p"),t._uU(9," This tool allows you to select the optimal armor from your inventory and vault to satisfy your stat needs. It also tells you which stat mods you have to use! "),t._UZ(10,"br")(11,"br"),t._uU(12," You have to log in to enable this tool to grab your armor from the API."),t._UZ(13,"br"),t._uU(14," If you like my tools and want to support me, head to "),t.TgZ(15,"a",1),t._uU(16,"ko-fi.com"),t.qZA(),t._uU(17," and buy me a coffee! \u2764 "),t._UZ(18,"br"),t._uU(19," If you found a bug or have a feature request, please open an issue "),t.TgZ(20,"a",2),t._uU(21,"in the Github Repository"),t.qZA(),t._uU(22,"! "),t.qZA(),t.TgZ(23,"p"),t._uU(24," D2ArmorPicker uses the Bungie.net api and it's OAuth authorization. You log in on an official Bungie.net page and D2ArmorPicker receives a temporary login token from Bungie. That means it does not receive your credentials. "),t.qZA()(),t.TgZ(25,"mat-card-actions")(26,"button",3),t.NdJ("click",function(){return o.startLogin()}),t._uU(27,"Login"),t.qZA()()(),t.TgZ(28,"mat-card")(29,"mat-card-title"),t._uU(30," Examples "),t.qZA(),t.TgZ(31,"mat-card-subtitle"),t._uU(32,"Some examples to show what D2ArmorPicker can do."),t.qZA(),t.TgZ(33,"mat-card-content")(34,"mat-accordion")(35,"mat-expansion-panel",4)(36,"mat-expansion-panel-header")(37,"mat-panel-title"),t._uU(38," Stat Selection "),t.qZA(),t.TgZ(39,"mat-panel-description"),t._uU(40," The heart of this tool. "),t.qZA()(),t.TgZ(41,"p"),t._uU(42," First, you are able to select the stats you want. The tool will automatically parse all your armor (including your vault and your postmaster), and then show you which stat selections are even possible with your current gear. The tool also shows you all possible loadouts with three or four stats at 100! "),t._UZ(43,"img",5)(44,"br")(45,"br"),t._uU(46," There are also additional settings. You can add stasis fragments and negative and positive stat mods to your builds. Also, you can select 0-waste builds (so only flat numbers). D2ArmorPicker will also add stat mods to reduce wasted stats wherever possible! "),t.qZA()(),t.TgZ(47,"mat-expansion-panel",4)(48,"mat-expansion-panel-header")(49,"mat-panel-title"),t._uU(50," Result Display "),t.qZA(),t.TgZ(51,"mat-panel-description"),t._uU(52," What you will get from this tool. "),t.qZA()(),t.TgZ(53,"p"),t._uU(54," D2ArmorPicker will show you a table with many results. You can sort and filter it, and then you click on one row to see which items are needed for your desired stats. "),t._UZ(55,"img",6)(56,"br")(57,"br"),t._uU(58," The page will also give you a detailed description of what you have to do in order to get to your desired build. The following screenshot shows one of the more detailed descriptions: "),t._UZ(59,"img",7),t.qZA()(),t.TgZ(60,"mat-expansion-panel",4)(61,"mat-expansion-panel-header")(62,"mat-panel-title"),t._uU(63," Armor Clustering "),t.qZA(),t.TgZ(64,"mat-panel-description"),t._uU(65," For the time when your vault is overflowing. "),t.qZA()(),t.TgZ(66,"div"),t._uU(67," Since version 2.0.14, D2ArmorPicker has an armor clustering feature. This means that it takes all your armor and groups it in 25 groups, where all items in one group has very similar stats. This can help you to clear out your vault, especially from duplicated armor rolls. "),t._UZ(68,"img",8)(69,"br")(70,"br"),t._uU(71," Take Cluster 1, for example. I copy the DIM-Query, enter it into DIM and see the following results: "),t.TgZ(72,"div",9),t._UZ(73,"img",10)(74,"img",11)(75,"img",12),t.qZA()()()()()())},dependencies:[Y.xw,Y.SQ,g.lW,A.a8,A.dk,A.dn,A.n5,A.$j,A.hq,A.kc,J.pp,J.ib,J.yz,J.yK,J.u4],styles:["mat-card[_ngcontent-%COMP%]{max-width:600px;margin-bottom:4px;margin-left:auto;margin-right:auto}button[_ngcontent-%COMP%]{position:absolute;right:10px;bottom:10px}a[_ngcontent-%COMP%]{color:#99afe3}a[_ngcontent-%COMP%]:visited{color:#7294dc}.example-header-image[_ngcontent-%COMP%]{background-image:url(superGreatLogo.5307f2494314b5e1.png);background-size:cover}.image-example[_ngcontent-%COMP%]{max-width:100%}.armor-image-container[_ngcontent-%COMP%]{overflow:auto}.armor-image-container[_ngcontent-%COMP%] > img[_ngcontent-%COMP%]{max-height:300px}"]}),n})();var It=_(8746);let Ot=(()=>{class n{constructor(e,o){this.auth=e,this.router=o}canActivate(e,o){return!!this.auth.isAuthenticated()||(this.router.navigate(["login"]),!1)}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(L),t.LFG(I.F0))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),Mt=(()=>{class n{constructor(e,o){this.auth=e,this.router=o}canActivate(e,o){return!this.auth.isAuthenticated()||(this.router.navigate(["/"]),!1)}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(L),t.LFG(I.F0))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();var mt=_(2289),kt=_(4850),Dt=_(5154),dt=_(591);let Tt=(()=>{class n{constructor(){this.__status={calculatingResults:!1,calculatingPermutations:!1,updatingResultsTable:!1,updatingInventory:!1,updatingManifest:!1},this._status=new dt.X(this.__status),this.status=this._status.asObservable()}getStatus(){return this.__status}modifyStatus(e){e(this.__status),console.log("modifyStatus",this.__status),this._status.next(this.__status)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();var U=(()=>{return(n=U||(U={}))[n.None=-1]="None",n[n.Titan=0]="Titan",n[n.Hunter=1]="Hunter",n[n.Warlock=2]="Warlock",U;var n})(),st=_(13),r=_(1043),C=_(6471),h=_(8333),yt=(()=>{return(n=yt||(yt={}))[n.None=0]="None",n[n.ReduceUsedModSockets=1]="ReduceUsedModSockets",n[n.ReduceUsedModPoints=2]="ReduceUsedModPoints",yt;var n})();function zt(n){return{[r.WB.Mobility]:{fixed:!1,value:n},[r.WB.Resilience]:{fixed:!1,value:n},[r.WB.Recovery]:{fixed:!1,value:n},[r.WB.Discipline]:{fixed:!1,value:n},[r.WB.Intellect]:{fixed:!1,value:n},[r.WB.Strength]:{fixed:!1,value:n}}}class Et{constructor(){this.characterClass=U.Titan,this.addConstent1Resilience=!1,this.assumeEveryLegendaryIsArtifice=!1,this.disabledItems=[],this.minimumStatTiers={[r.WB.Mobility]:{fixed:!1,value:0},[r.WB.Resilience]:{fixed:!1,value:0},[r.WB.Recovery]:{fixed:!1,value:0},[r.WB.Discipline]:{fixed:!1,value:0},[r.WB.Intellect]:{fixed:!1,value:0},[r.WB.Strength]:{fixed:!1,value:0}},this.maximumStatMods=5,this.maximumModSlots={[C.y.ArmorSlotHelmet]:{fixed:!1,value:5},[C.y.ArmorSlotGauntlet]:{fixed:!1,value:5},[C.y.ArmorSlotChest]:{fixed:!1,value:5},[C.y.ArmorSlotLegs]:{fixed:!1,value:5},[C.y.ArmorSlotClass]:{fixed:!1,value:5},[C.y.ArmorSlotNone]:{fixed:!1,value:5}},this.putArtificeMods=!0,this.useFotlArmor=!0,this.allowBlueArmorPieces=!0,this.ignoreSunsetArmor=!1,this.includeVendorRolls=!1,this.includeCollectionRolls=!1,this.assumeLegendariesMasterworked=!0,this.assumeExoticsMasterworked=!0,this.assumeClassItemMasterworked=!0,this.onlyUseMasterworkedItems=!1,this.modOptimizationStrategy=yt.None,this.limitParsedResults=!0,this.tryLimitWastedStats=!1,this.onlyShowResultsWithNoWastedStats=!1,this.showWastedStatsColumn=!1,this.showPotentialTierColumn=!1,this.selectedModElement=h.O.Stasis,this.enabledMods=[],this.selectedExotics=[],this.armorPerks={[C.y.ArmorSlotHelmet]:{fixed:!0,value:r.Pn.None},[C.y.ArmorSlotGauntlet]:{fixed:!0,value:r.Pn.None},[C.y.ArmorSlotChest]:{fixed:!0,value:r.Pn.None},[C.y.ArmorSlotLegs]:{fixed:!0,value:r.Pn.None},[C.y.ArmorSlotClass]:{fixed:!0,value:r.Pn.None},[C.y.ArmorSlotNone]:{fixed:!0,value:r.Pn.None}}}static buildEmptyConfiguration(){return{enabledMods:[],disabledItems:[],addConstent1Resilience:!1,assumeEveryLegendaryIsArtifice:!1,putArtificeMods:!0,useFotlArmor:!1,maximumStatMods:5,onlyUseMasterworkedItems:!1,ignoreSunsetArmor:!1,includeCollectionRolls:!1,includeVendorRolls:!1,allowBlueArmorPieces:!0,assumeLegendariesMasterworked:!0,assumeExoticsMasterworked:!0,assumeClassItemMasterworked:!0,limitParsedResults:!0,modOptimizationStrategy:yt.None,tryLimitWastedStats:!1,onlyShowResultsWithNoWastedStats:!1,showWastedStatsColumn:!1,showPotentialTierColumn:!1,characterClass:U.Titan,selectedModElement:h.O.Stasis,selectedExotics:[],maximumModSlots:{[C.y.ArmorSlotHelmet]:{fixed:!1,value:5},[C.y.ArmorSlotGauntlet]:{fixed:!1,value:5},[C.y.ArmorSlotChest]:{fixed:!1,value:5},[C.y.ArmorSlotLegs]:{fixed:!1,value:5},[C.y.ArmorSlotClass]:{fixed:!1,value:5},[C.y.ArmorSlotNone]:{fixed:!1,value:5}},armorPerks:{[C.y.ArmorSlotHelmet]:{fixed:!0,value:r.Pn.None},[C.y.ArmorSlotGauntlet]:{fixed:!0,value:r.Pn.None},[C.y.ArmorSlotChest]:{fixed:!0,value:r.Pn.None},[C.y.ArmorSlotLegs]:{fixed:!0,value:r.Pn.None},[C.y.ArmorSlotClass]:{fixed:!0,value:r.Pn.None},[C.y.ArmorSlotNone]:{fixed:!0,value:r.Pn.None}},minimumStatTiers:zt(0)}}}var k=(()=>{return(n=k||(k={}))[n.Inventory=0]="Inventory",n[n.Collections=1]="Collections",n[n.Vendor=2]="Vendor",k;var n})();function Yt(n,i,e){if(!n)throw new Error("Missing manifest item");const o=Object.assign({id:-1,itemInstanceId:i,mayBeBugged:!1,masterworked:!1,energyLevel:0,mobility:0,resilience:0,recovery:0,discipline:0,intellect:0,strength:0,source:e},n);return o.id=void 0,(2545426109==n.hash||199733460==n.hash||3224066584==n.hash)&&(o.slot=C.y.ArmorSlotHelmet),o}function Gt(n,i){n.mobility=i[2996146975],n.resilience=i[392767087],n.recovery=i[1943323491],n.discipline=i[1735777505],n.intellect=i[144602215],n.strength=i[4244567218]}var Kt=_(4682);let et=(()=>{class n{constructor(e){var o=this;this.auth=e,this.db=(0,Kt.F)((0,m.Z)(function*(){yield o.auth.clearManifestInfo()})),this.manifestArmor=this.db.table("manifestArmor"),this.inventoryArmor=this.db.table("inventoryArmor"),this.manifestCollectibles=this.db.table("manifestCollectibles"),this.vendorNames=this.db.table("vendorNames"),this.auth.logoutEvent.subscribe(function(){var a=(0,m.Z)(function*(s){yield o.clearDatabase()});return function(s){return a.apply(this,arguments)}}())}initialize(){var e=this;this.db=(0,Kt.F)((0,m.Z)(function*(){yield e.auth.clearManifestInfo()})),this.manifestArmor=this.db.table("manifestArmor"),this.inventoryArmor=this.db.table("inventoryArmor"),this.manifestCollectibles=this.db.table("manifestCollectibles"),this.vendorNames=this.db.table("vendorNames")}writeManifestArmor(e,o){var a=this;return(0,m.Z)(function*(){yield a.manifestArmor.clear(),yield a.manifestArmor.bulkPut(e),localStorage.setItem("LastManifestUpdate",Date.now().toString()),localStorage.setItem("last-manifest-db-name",a.manifestArmor.db.name),localStorage.setItem("last-manifest-revision","6fcfd01"),localStorage.setItem("last-manifest-version",o)})()}clearDatabase(){var e=this;return(0,m.Z)(function*(){localStorage.removeItem("LastManifestUpdate"),localStorage.removeItem("LastArmorUpdate"),yield e.inventoryArmor.clear()})()}resetDatabase(e=!0){var o=this;return(0,m.Z)(function*(){localStorage.removeItem("LastManifestUpdate"),localStorage.removeItem("last-manifest-revision"),localStorage.removeItem("last-manifest-db-name"),localStorage.removeItem("LastArmorUpdate"),localStorage.removeItem("last-armor-db-name"),yield o.db.delete(),e&&o.initialize()})()}lastManifestUpdate(){const e=localStorage.getItem("LastManifestUpdate"),o=localStorage.getItem("last-manifest-version"),a=localStorage.getItem("last-manifest-revision"),s=localStorage.getItem("last-manifest-db-name");return e&&a&&s&&o&&"6fcfd01"===localStorage.getItem("last-manifest-revision")&&s===this.inventoryArmor.db.name?{updatedAt:parseInt(e),version:o}:void 0}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(L))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();var rt=_(9598),f=(()=>{return(n=f||(f={}))[n.WhisperOfDurance=1e3]="WhisperOfDurance",n[n.WhisperOfChains=1001]="WhisperOfChains",n[n.WhisperOfConduction=1002]="WhisperOfConduction",n[n.WhisperOfShards=1003]="WhisperOfShards",n[n.WhisperOfHedrons=1100]="WhisperOfHedrons",n[n.WhisperOfBonds=1101]="WhisperOfBonds",n[n.WhisperOfHunger=1102]="WhisperOfHunger",n[n.WhisperOfFractures=1103]="WhisperOfFractures",n[n.EchoOfExpulsion=1200]="EchoOfExpulsion",n[n.EchoOfProvision=1201]="EchoOfProvision",n[n.EchoOfPersistence=1202]="EchoOfPersistence",n[n.EchoOfLeeching=1203]="EchoOfLeeching",n[n.EchoOfDomineering=1204]="EchoOfDomineering",n[n.EchoOfDilation=1205]="EchoOfDilation",n[n.EchoOfUndermining=1206]="EchoOfUndermining",n[n.EchoOfInstability=1207]="EchoOfInstability",n[n.EchoOfHarvest=1208]="EchoOfHarvest",n[n.EchoOfObscurity=1209]="EchoOfObscurity",n[n.EchoOfStarvation=1210]="EchoOfStarvation",n[n.EchoOfVigilance=1211]="EchoOfVigilance",n[n.EmberOfBenelovence=1300]="EmberOfBenelovence",n[n.EmberOfBeams=1301]="EmberOfBeams",n[n.EmberOfEmpyrean=1302]="EmberOfEmpyrean",n[n.EmberOfCombustion=1303]="EmberOfCombustion",n[n.EmberOfChar=1304]="EmberOfChar",n[n.EmberOfTempering=1305]="EmberOfTempering",n[n.EmberOfEruption=1306]="EmberOfEruption",n[n.EmberOfWonder=1307]="EmberOfWonder",n[n.EmberOfSearing=1308]="EmberOfSearing",n[n.EmberOfTorches=1309]="EmberOfTorches",n[n.EmberOfMercy=1310]="EmberOfMercy",n[n.SparkOfBrilliance=1400]="SparkOfBrilliance",n[n.SparkOfFeedback=1401]="SparkOfFeedback",n[n.SparkOfDischarge=1402]="SparkOfDischarge",n[n.SparkOfFocus=1403]="SparkOfFocus",n[n.SparkOfVolts=1404]="SparkOfVolts",n[n.SparkOfResistance=1405]="SparkOfResistance",n[n.SparkOfShock=1406]="SparkOfShock",n[n.ThreadOfFury=1600]="ThreadOfFury",n[n.ThreadOfAscent=1601]="ThreadOfAscent",n[n.ThreadOfFinality=1602]="ThreadOfFinality",n[n.ThreadOfWarding=1603]="ThreadOfWarding",n[n.ThreadOfTransmutation=1604]="ThreadOfTransmutation",n[n.ThreadOfEvolution=1605]="ThreadOfEvolution",n[n.ThreadOfBinding=1606]="ThreadOfBinding",n[n.ThreadOfGeneration=1607]="ThreadOfGeneration",n[n.ThreadOfPropagation=1608]="ThreadOfPropagation",f;var n})();const ut={[f.WhisperOfDurance]:{id:f.WhisperOfDurance,name:"Whisper Of Durance",description:"Slow from your abilities lasts longer. For those abilities that linger, their duration will also increase.",type:h.O.Stasis,bonus:[{stat:r.WB.Strength,value:10}],cost:1,requiredArmorAffinity:0,hash:3469412969},[f.WhisperOfChains]:{id:f.WhisperOfChains,name:"Whisper Of Chains",description:"While you are near frozen targets or a friendly Stasis crystal, you take reduced damage from targets.",type:h.O.Stasis,bonus:[{stat:r.WB.Recovery,value:10}],cost:1,requiredArmorAffinity:0,hash:537774540},[f.WhisperOfShards]:{id:f.WhisperOfShards,name:"Whisper Of Shards",description:"Shattering a Stasis crystal temporarily boosts your grenade recharge rate. Shattering additional Stasis crystals increases the duration of this benefit.",type:h.O.Stasis,bonus:[{stat:r.WB.Resilience,value:10}],cost:1,requiredArmorAffinity:0,hash:3469412975},[f.WhisperOfConduction]:{id:f.WhisperOfConduction,name:"Whisper Of Conduction",description:"Nearby Stasis shards track to your position.",type:h.O.Stasis,bonus:[{stat:r.WB.Resilience,value:10},{stat:r.WB.Intellect,value:10}],cost:1,requiredArmorAffinity:0,hash:2483898429},[f.WhisperOfBonds]:{id:f.WhisperOfBonds,name:"Whisper of Bonds",description:"Defeating frozen targets grants you Super energy.",type:h.O.Stasis,bonus:[{stat:r.WB.Discipline,value:-10},{stat:r.WB.Intellect,value:-10}],cost:1,requiredArmorAffinity:0,hash:3469412974},[f.WhisperOfHedrons]:{id:f.WhisperOfHedrons,name:"Whisper of Hedrons",description:"Dramatically increases weapon stability, weapon aim assist, Mobility, Resilience, and Recovery after freezing a target with Stasis.",type:h.O.Stasis,bonus:[{stat:r.WB.Strength,value:-10}],cost:1,requiredArmorAffinity:0,hash:3469412970},[f.WhisperOfFractures]:{id:f.WhisperOfFractures,name:"Whisper of Fractures",description:"Your melee energy recharges faster when you are near two or more targets.",type:h.O.Stasis,bonus:[{stat:r.WB.Discipline,value:-10}],cost:1,requiredArmorAffinity:0,hash:537774542},[f.WhisperOfHunger]:{id:f.WhisperOfHunger,name:"Whisper of Hunger",description:"Increases the melee energy gained from picking up Stasis shards.",type:h.O.Stasis,bonus:[{stat:r.WB.Mobility,value:-10},{stat:r.WB.Recovery,value:-10}],cost:1,requiredArmorAffinity:0,hash:2483898431},[f.EchoOfExpulsion]:{id:f.EchoOfExpulsion,name:"Echo of Expulsion",description:"Void ability final blows cause targets to explode.",type:h.O.Void,bonus:[{stat:r.WB.Intellect,value:10}],cost:1,requiredArmorAffinity:0,hash:2272984665},[f.EchoOfProvision]:{id:f.EchoOfProvision,name:"Echo of Provision",description:"Damaging targets with grenades grants melee energy.",type:h.O.Void,bonus:[{stat:r.WB.Strength,value:-10}],cost:1,requiredArmorAffinity:0,hash:2272984664},[f.EchoOfPersistence]:{id:f.EchoOfPersistence,name:"Echo of Persistence",description:"Void buffs applied to you (Invisibility, Overshield, and Devour) have increased duration.",type:h.O.Void,bonus:[{stat:r.AR.ClassAbilityRegenerationStat,value:-10}],cost:1,requiredArmorAffinity:0,hash:2272984671},[f.EchoOfLeeching]:{id:f.EchoOfLeeching,name:"Echo of Leeching",description:"Melee final blows start health regeneration for you and nearby allies.",type:h.O.Void,bonus:[{stat:r.WB.Resilience,value:10}],cost:1,requiredArmorAffinity:0,hash:2272984670},[f.EchoOfDomineering]:{id:f.EchoOfDomineering,name:"Echo of Domineering",description:"After suppressing a target, you gain greatly increased Mobility for a short duration and your equipped weapon is reloaded from reserves.",type:h.O.Void,bonus:[{stat:r.WB.Discipline,value:10}],cost:1,requiredArmorAffinity:0,hash:2272984657},[f.EchoOfDilation]:{id:f.EchoOfDilation,name:"Echo of Dilation",description:"While crouched, you sneak faster and gain enhanced radar resolution.",type:h.O.Void,bonus:[{stat:r.WB.Mobility,value:10},{stat:r.WB.Intellect,value:10}],cost:1,requiredArmorAffinity:0,hash:2272984656},[f.EchoOfUndermining]:{id:f.EchoOfUndermining,name:"Echo of Undermining",description:"Your Void grenades weaken targets.",type:h.O.Void,bonus:[{stat:r.WB.Discipline,value:-20}],cost:1,requiredArmorAffinity:0,hash:2272984668},[f.EchoOfInstability]:{id:f.EchoOfInstability,name:"Echo of Instability",description:"Defeating targets with grenades grants Volatile Rounds to your Void weapons.",type:h.O.Void,bonus:[{stat:r.WB.Strength,value:10}],cost:1,requiredArmorAffinity:0,hash:2661180600},[f.EchoOfObscurity]:{id:f.EchoOfObscurity,name:"Echo of Obscurity",description:"Finisher final blows grant Invisibility.",type:h.O.Void,bonus:[{stat:r.WB.Recovery,value:10}],cost:1,requiredArmorAffinity:0,hash:2661180602},[f.EchoOfHarvest]:{id:f.EchoOfHarvest,name:"Echo of Harvest",description:"Defeating weakened targets with precision final blows will create an Orb of Power.",type:h.O.Void,bonus:[{stat:r.WB.Intellect,value:-10}],cost:1,requiredArmorAffinity:0,hash:2661180601},[f.EchoOfStarvation]:{id:f.EchoOfStarvation,name:"Echo of Starvation",description:"Picking up an Orb of Power grants Devour.",type:h.O.Void,bonus:[{stat:r.WB.Recovery,value:-10}],cost:1,requiredArmorAffinity:0,hash:2661180603},[f.EchoOfVigilance]:{id:f.EchoOfVigilance,name:"Echo of Vigilance",description:"Defeating a target while your shields are depleted grants you a temporary Void overshield.",type:h.O.Void,bonus:[{stat:r.WB.Recovery,value:-10}],cost:1,requiredArmorAffinity:0,hash:3854948621},[f.EmberOfBenelovence]:{id:f.EmberOfBenelovence,name:"Ember of Benelovence",description:"Applying restoration, cure, or radiant to allies grants increased grenade, melee, and class ability regeneration for a short duration.",type:h.O.Solar,bonus:[{stat:r.WB.Discipline,value:-10}],cost:1,requiredArmorAffinity:0,hash:362132292},[f.EmberOfBeams]:{id:f.EmberOfBeams,name:"Ember of Beams",description:"Your Solar Super projectiles have stronger target acquisition.",type:h.O.Solar,bonus:[{stat:r.WB.Intellect,value:10}],cost:1,requiredArmorAffinity:0,hash:362132295},[f.EmberOfEmpyrean]:{id:f.EmberOfEmpyrean,name:"Ember of Empyrean",description:"Solar weapon or ability final blows extend the duration of restoration and radiant effects applied to you.",type:h.O.Solar,bonus:[{stat:r.WB.Resilience,value:-10}],cost:1,requiredArmorAffinity:0,hash:362132294},[f.EmberOfCombustion]:{id:f.EmberOfCombustion,name:"Ember of Combustion",description:"Final blows with your Solar Super cause targets to ignite.",type:h.O.Solar,bonus:[{stat:r.WB.Strength,value:10}],cost:1,requiredArmorAffinity:0,hash:362132289},[f.EmberOfChar]:{id:f.EmberOfChar,name:"Ember of Char",description:"Your Solar ignitions spread scorch to affected targets.",type:h.O.Solar,bonus:[{stat:r.WB.Discipline,value:10}],cost:1,requiredArmorAffinity:0,hash:362132291},[f.EmberOfTempering]:{id:f.EmberOfTempering,name:"Ember of Tempering",description:"Solar weapon final blows grant you and your allies increased recovery for a short duration. Stacks 3 times.\nWhile Ember of Tempering is active, your weapons have increased airborne effectiveness.",type:h.O.Solar,bonus:[{stat:r.WB.Recovery,value:-10}],cost:1,requiredArmorAffinity:0,hash:362132290},[f.EmberOfEruption]:{id:f.EmberOfEruption,name:"Ember of Eruption",description:"Your Solar ignitions have increased area of effect.",type:h.O.Solar,bonus:[{stat:r.WB.Strength,value:10}],cost:1,requiredArmorAffinity:0,hash:1051276348},[f.EmberOfWonder]:{id:f.EmberOfWonder,name:"Ember of Wonder",description:"Rapidly defeating multiple targets with Solar ignitions generates an Orb of Power.",type:h.O.Solar,bonus:[{stat:r.WB.Resilience,value:10}],cost:1,requiredArmorAffinity:0,hash:1051276350},[f.EmberOfSearing]:{id:f.EmberOfSearing,name:"Ember of Searing",description:"Defeating scorched targets grants melee energy.",type:h.O.Solar,bonus:[{stat:r.WB.Recovery,value:10}],cost:1,requiredArmorAffinity:0,hash:1051276351},[f.EmberOfTorches]:{id:f.EmberOfTorches,name:"Ember of Torches",description:"Powered melee attacks against combatants make you and nearby allies radiant.",type:h.O.Solar,bonus:[{stat:r.WB.Discipline,value:-10}],cost:1,requiredArmorAffinity:0,hash:362132288},[f.EmberOfMercy]:{id:f.EmberOfMercy,name:"Ember of Mercy",description:"When you revive an ally, you and other nearby allies gain restoration. Picking up a Firesprite grants restoration.",type:h.O.Solar,bonus:[{stat:r.WB.Resilience,value:10}],cost:1,requiredArmorAffinity:0,hash:4180586737},[f.SparkOfBrilliance]:{id:f.SparkOfBrilliance,name:"Spark of Brilliance",description:"Defeating a blinded target with precision damage creates a blinding explosion.",type:h.O.Arc,bonus:[{stat:r.WB.Intellect,value:10}],cost:1,requiredArmorAffinity:0,hash:3277705905},[f.SparkOfFeedback]:{id:f.SparkOfFeedback,name:"Spark of Feedback",description:"Taking melee damage briefly increases your outgoing melee damage.",type:h.O.Arc,bonus:[{stat:r.WB.Resilience,value:10}],cost:1,requiredArmorAffinity:0,hash:3277705907},[f.SparkOfDischarge]:{id:f.SparkOfDischarge,name:"Spark of Discharge",description:"Arc weapon final blows have a chance to create an Ionic Trace.",type:h.O.Arc,bonus:[{stat:r.WB.Strength,value:-10}],cost:1,requiredArmorAffinity:0,hash:1727069362},[f.SparkOfFocus]:{id:f.SparkOfFocus,name:"Spark of Focus",description:"After sprinting for a short time, your class ability regeneration is increased.",type:h.O.Arc,bonus:[{stat:r.AR.ClassAbilityRegenerationStat,value:-10}],cost:1,requiredArmorAffinity:0,hash:1727069360},[f.SparkOfVolts]:{id:f.SparkOfVolts,name:"Spark of Volts",description:"Finishers make you amplified.",type:h.O.Arc,bonus:[{stat:r.WB.Recovery,value:10}],cost:1,requiredArmorAffinity:0,hash:3277705904},[f.SparkOfResistance]:{id:f.SparkOfResistance,name:"Spark of Resistance",description:"While surrounded by combatants, you are more resistant to incoming damage.",type:h.O.Arc,bonus:[{stat:r.WB.Strength,value:10}],cost:1,requiredArmorAffinity:0,hash:1727069366},[f.SparkOfShock]:{id:f.SparkOfShock,name:"Spark of Shock",description:"Your Arc grenades jolt targets.",type:h.O.Arc,bonus:[{stat:r.WB.Discipline,value:-10}],cost:1,requiredArmorAffinity:0,hash:1727069364},[f.ThreadOfFury]:{id:f.ThreadOfFury,name:"Thread of Fury",description:"Damaging targets with a Tangle grants melee energy.",type:h.O.Strand,bonus:[{stat:r.WB.Strength,value:-10}],cost:1,requiredArmorAffinity:0,hash:4208512219},[f.ThreadOfAscent]:{id:f.ThreadOfAscent,name:"Thread of Ascent",description:"Activating your grenade ability reloads your equipped weapon and grants bonus airborne effectiveness and handling for a short duration",type:h.O.Strand,bonus:[{stat:r.WB.Mobility,value:10}],cost:1,requiredArmorAffinity:0,hash:4208512216},[f.ThreadOfFinality]:{id:f.ThreadOfFinality,name:"Thread of Finality",description:"Finisher final blows create Threadlings.",type:h.O.Strand,bonus:[{stat:r.WB.Recovery,value:10}],cost:1,requiredArmorAffinity:0,hash:4208512217},[f.ThreadOfWarding]:{id:f.ThreadOfWarding,name:"Thread of Warding",description:"Picking up an Orb of Power grants Woven Mail.",type:h.O.Strand,bonus:[{stat:r.WB.Resilience,value:-10}],cost:1,requiredArmorAffinity:0,hash:4208512222},[f.ThreadOfTransmutation]:{id:f.ThreadOfTransmutation,name:"Thread of Transmutation",description:"While you have Woven Mail, weapon final blows create a Tangle",type:h.O.Strand,bonus:[{stat:r.WB.Strength,value:10}],cost:1,requiredArmorAffinity:0,hash:4208512221},[f.ThreadOfEvolution]:{id:f.ThreadOfEvolution,name:"Thread of Evolution",description:"Threadlings travel farther and deal additional damage.",type:h.O.Strand,bonus:[{stat:r.WB.Intellect,value:10}],cost:1,requiredArmorAffinity:0,hash:4208512211},[f.ThreadOfBinding]:{id:f.ThreadOfBinding,name:"Thread of Binding",description:"Super final blows emit a suspending burst from the target.",type:h.O.Strand,bonus:[{stat:r.WB.Resilience,value:10}],cost:1,requiredArmorAffinity:0,hash:3192552688},[f.ThreadOfGeneration]:{id:f.ThreadOfGeneration,name:"Thread of Generation",description:"Dealing damage generates grenade energy.",type:h.O.Strand,bonus:[{stat:r.WB.Discipline,value:-10}],cost:1,requiredArmorAffinity:0,hash:3192552691},[f.ThreadOfPropagation]:{id:f.ThreadOfPropagation,name:"Thread of Propagation",description:"Powered melee final blows grant your [Strand] Strand weapons Unraveling Rounds",type:h.O.Strand,bonus:[{stat:r.WB.Strength,value:10}],cost:1,requiredArmorAffinity:0,hash:4208512210}},Lt={outputEncoding:"Base64"},$t={inputEncoding:"Base64",outputEncoding:"String"};let B=(()=>{class n{constructor(){this.__configuration=this.loadCurrentConfiguration(),this._configuration=new dt.X(this.__configuration),this.configuration=this._configuration.asObservable(),this._storedConfigurations=new dt.X(this.listSavedConfigurations()),this.storedConfigurations=this._storedConfigurations.asObservable()}get readonlyConfigurationSnapshot(){return Object.assign(this.__configuration,{})}modifyConfiguration(e){e(this.__configuration),this.saveCurrentConfiguration(this.__configuration)}saveConfiguration(e,o){let a=this.listSavedConfigurations(),s=this.listSavedConfigurations().map((d,u)=>[d,u]).filter(d=>d[0].name==e)[0];s&&a.splice(s[1],1),a.push({configuration:o,name:e,version:"2.5.0"}),a=a.sort((d,u)=>d.nameu.name?1:0);const l=rt.compress(JSON.stringify(a),Lt);localStorage.setItem("storedConfigurations",l),this._storedConfigurations.next(a)}doesSavedConfigurationExist(e){return this.listSavedConfigurations().filter(o=>o.name==e).length>0}loadSavedConfiguration(e){let o=this.listSavedConfigurations().filter(a=>a.name==e)[0];return!!o&&(this.saveCurrentConfiguration(o.configuration),!0)}checkAndFixOldSavedConfigurations(e){if(e.configuration=Object.assign(Et.buildEmptyConfiguration(),e.configuration),e.configuration.hasOwnProperty("minimumStatTier")){let o=e.configuration.minimumStatTier;e.configuration.minimumStatTiers[r.WB.Mobility].value=o[r.WB.Mobility],e.configuration.minimumStatTiers[r.WB.Resilience].value=o[r.WB.Resilience],e.configuration.minimumStatTiers[r.WB.Recovery].value=o[r.WB.Recovery],e.configuration.minimumStatTiers[r.WB.Discipline].value=o[r.WB.Discipline],e.configuration.minimumStatTiers[r.WB.Intellect].value=o[r.WB.Intellect],e.configuration.minimumStatTiers[r.WB.Strength].value=o[r.WB.Strength],delete e.configuration.minimumStatTier}if(e.configuration.hasOwnProperty("selectedExoticHash")&&(e.configuration.selectedExotics=[e.configuration.selectedExoticHash],delete e.configuration.selectedExoticHash),e.configuration.hasOwnProperty("maximumStatMods")){for(let a=e.configuration.maximumStatMods;a<5;a++)e.configuration.maximumModSlots[1+a].value=0;delete e.configuration.maximumStatMods}e.configuration.enabledMods=e.configuration.enabledMods.filter(o=>!!ut[o]),e.configuration.limitParsedResults=!0,e.configuration.addConstent1Resilience=!1}listSavedConfigurations(){let e;try{e=localStorage.getItem("storedConfigurations")||"[]","["!=e.substr(0,1)&&(e=rt.decompress(e,$t))}catch{e=[]}let o=JSON.parse(e)||[];return o=o.sort((a,s)=>a.names.name?1:0),o.forEach(a=>this.checkAndFixOldSavedConfigurations(a)),o}deleteStoredConfiguration(e){let o=this.listSavedConfigurations(),a=this.listSavedConfigurations().map((s,l)=>[s,l]).filter(s=>s[0].name==e)[0];a&&o.splice(a[1],1),localStorage.setItem("storedConfigurations",rt.compress(JSON.stringify(o),Lt)),this._storedConfigurations.next(o)}saveCurrentConfigurationToName(e){this.saveConfiguration(e,this.__configuration)}saveCurrentConfiguration(e){console.debug("write configuration",e),this.__configuration=Object.assign(Et.buildEmptyConfiguration(),e),this.__configuration.enabledMods=[].concat(this.__configuration.enabledMods),this.__configuration.minimumStatTiers=Object.assign({},this.__configuration.minimumStatTiers);const o=rt.compress(JSON.stringify(this.__configuration),Lt);localStorage.setItem("currentConfig",o),this._configuration.next(Object.assign({},this.__configuration))}loadCurrentConfiguration(){let e;try{e=localStorage.getItem("currentConfig")||"{}","{"!=e.substr(0,1)&&(e=rt.decompress(e,$t))}catch{e={}}var o={name:"dummy",version:"1",configuration:JSON.parse(e)};return this.checkAndFixOldSavedConfigurations(o),o.configuration}getCurrentConfigBase64Compressed(){let e=localStorage.getItem("currentConfig")||"{}";return"{"==e.substr(0,1)&&(e=rt.compress(e,{outputEncoding:"Base64"})),e}getAllStoredConfigurationsBase64Compressed(){let e=localStorage.getItem("storedConfigurations")||"[]";return"["==e.substr(0,1)&&(e=rt.compress(e,{outputEncoding:"Base64"})),e}getStoredConfigurationBase64Compressed(e){let o=this.listSavedConfigurations().filter(a=>a.name==e)[0];return o?rt.compress(JSON.stringify(o),{outputEncoding:"Base64"}):""}resetCurrentConfiguration(){this.saveCurrentConfiguration(Et.buildEmptyConfiguration())}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();var G=_(8012),ve=_(1016);let Ft=(()=>{class n{constructor(e,o){this.authService=e,this.http=o}$httpWithoutKey(e){var o=this;return(0,m.Z)(function*(){return o.http.get(e.url,{params:e.params}).toPromise()})()}$httpPost(e){var o=this;return(0,m.Z)(function*(){return o.http.post(e.url,e.body,{params:e.params,headers:{"X-API-Key":S_apiKey,Authorization:"Bearer "+o.authService.accessToken}}).toPromise().catch(function(){var a=(0,m.Z)(function*(s){console.error(s)});return function(s){return a.apply(this,arguments)}}())})()}$http(e){var o=this;return(0,m.Z)(function*(){return o.http.get(e.url,{params:e.params,headers:{"X-API-Key":S_apiKey,Authorization:"Bearer "+o.authService.accessToken}}).toPromise().catch(function(){var a=(0,m.Z)(function*(s){console.error(s),"SystemDisabled"==s.error?.ErrorStatus&&(console.info("System is disabled. Revoking auth, must re-login"),yield o.authService.logout()),"Internal Server Error"!=s.ErrorStatus&&console.info("API-Error")});return function(s){return a.apply(this,arguments)}}())})()}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(L),t.LFG(at.eN))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();var Ae=_(9891);let Rt=(()=>{class n{constructor(e,o){this.authService=e,this.http=o}getMembershipDataForCurrentUser(){var e=this;return(0,m.Z)(function*(){var o=JSON.parse(localStorage.getItem("auth-membershipInfo")||"null"),a=JSON.parse(localStorage.getItem("auth-membershipInfo-date")||"0");if(o&&Date.now()-a<864e5)return console.log("getMembershipDataForCurrentUser -> loading cached! "),o;console.info("BungieApiService","getMembershipDataForCurrentUser");let l=(yield(0,Ae.Rm)(u=>e.http.$http(u)))?.Response.destinyMemberships;console.info("Memberships:",l),l=l.filter(u=>0==u.crossSaveOverride||u.crossSaveOverride==u.membershipType),console.info("Filtered Memberships:",l);let d=null;if(1==l?.length)d=l?.[0];else{let u=0,x=0;for(let p in l){const b=l?.[p],Z=yield(0,G.Ai)(D=>e.http.$http(D),{components:[100],membershipType:b.membershipType,destinyMembershipId:b.membershipId});if(Z&&Z.Response?.profile.data?.dateLastPlayed){let D=Date.parse(Z.Response?.profile.data?.dateLastPlayed);D>x&&(x=D,u=p)}}console.info("getMembershipDataForCurrentUser","Selected membership data for the last logged in membership."),d=l?.[u]}return localStorage.setItem("auth-membershipInfo",JSON.stringify(d)),localStorage.setItem("auth-membershipInfo-date",JSON.stringify(Date.now())),d})()}getCharacters(){var e=this;return(0,m.Z)(function*(){let o=yield e.getMembershipDataForCurrentUser();if(!o)return yield e.authService.logout(),[];const a=yield(0,G.Ai)(s=>e.http.$http(s),{components:[200],membershipType:o.membershipType,destinyMembershipId:o.membershipId});return Object.values(a?.Response.characters.data||{}).map(s=>({characterId:s.characterId,clazz:s.classType,emblemUrl:s.emblemBackgroundPath,lastPlayed:Date.parse(s.dateLastPlayed)}))||[]})()}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(L),t.LFG(Ft))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const Xt="vendor-next-refresh-time";let we=(()=>{class n{constructor(e,o,a){this.membership=e,this.http=o,this.db=a}getVendorArmorItemsForCharacter(e,o,a){var s=this;return(0,m.Z)(function*(){const l=yield(0,G.dH)(p=>s.http.$http(p),{components:[400,402,304],characterId:a,membershipType:o.membershipType,destinyMembershipId:o.membershipId,filter:0}),d=Object.entries(l.Response.vendors.data).filter(([p,b])=>b.enabled).flatMap(([p,b])=>{const Z=l.Response.sales.data?.[p]?.saleItems??{},D=l.Response.itemComponents[parseInt(p)].stats.data??{};return{items:Object.entries(Z).map(([E,M])=>{const q=e[M.itemHash],gt=D[parseInt(E)];if(128==(128&M.augments)||!q||!gt)return;const T=Object.values(gt.stats).reduce((X,{statHash:tt,value:be})=>(X[tt]=be,X),{}),R=Yt(q,`v${p}-${M.itemHash}`,k.Vendor);return Gt(R,T),R}).filter(Boolean),nextRefreshDate:new Date(b.nextRefreshDate).getTime()}}).filter(({items:p})=>p.length>0),u=d.flatMap(({items:p})=>p),x=Math.min(...d.map(({nextRefreshDate:p})=>p));return console.log(`Collected ${u.length} vendor armor items for character ${a}`),{items:u,nextRefreshDate:x}})()}isVendorCacheValid(){const e=localStorage.getItem(Xt);if(!e)return!1;const o=new Date(e);return!!isFinite(o.getTime())&&o>new Date}writeVendorCache(e,o){var a=this;return(0,m.Z)(function*(){console.log(`Writing new vendor cache (${e.length} items), valid until ${o.toISOString()}`),yield a.db.inventoryArmor.where({source:k.Vendor}).delete(),yield a.db.inventoryArmor.bulkPut(e),localStorage.setItem(Xt,o.toISOString())})()}updateVendorArmorItemsCache(){var e=this;return(0,m.Z)(function*(){if(e.isVendorCacheValid())return void console.log("Using vendor items cache");const o=yield e.membership.getMembershipDataForCurrentUser(),a=yield e.membership.getCharacters(),s=(yield e.db.manifestArmor.toArray()).filter(x=>2==x.itemType).reduce((x,p)=>(x[p.hash]=p,x),{}),l=yield Promise.all(a.map(({characterId:x})=>e.getVendorArmorItemsForCharacter(s,o,x))),d=l.flatMap(({items:x})=>x),u=Math.min(...l.map(({nextRefreshDate:x})=>x));return e.writeVendorCache(d,new Date(u))})()}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(Rt),t.LFG(Ft),t.LFG(et))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function te(n,i,e,o){const a={2996146975:0,392767087:0,1943323491:0,1735777505:0,144602215:0,4244567218:0};for(let l of i)l.statTypeHash in a&&(a[l.statTypeHash]+=l.value);if(n.slot!=C.y.ArmorSlotClass){const l=[e[6],e[7],e[8],e[9]];n.statPlugHashes=l;var s=l.map(d=>o[d||""]).filter(d=>null!=d);for(let d of s)for(let u of d.investmentStats)u.statTypeHash in a&&(a[u.statTypeHash]+=u.value)}Gt(n,a)}let Qt=(()=>{class n{constructor(e,o,a,s,l,d){var u=this;this.authService=e,this.http=o,this.db=a,this.config=s,this.membership=l,this.vendors=d,this.config_assumeEveryLegendaryIsArtifice=!1,this.config.configuration.subscribe(function(){var x=(0,m.Z)(function*(p){u.config_assumeEveryLegendaryIsArtifice=p.assumeEveryLegendaryIsArtifice});return function(p){return x.apply(this,arguments)}}())}transferItem(e,o,a=!1){var s=this;return(0,m.Z)(function*(){let l=yield s.membership.getMembershipDataForCurrentUser();if(!l)return yield s.authService.logout(),!1;let d=yield(0,G.rV)(x=>s.http.$http(x),{membershipType:l.membershipType,destinyMembershipId:l.membershipId,itemInstanceId:e,components:[307]}),u=!1;if(!d)return!1;if(d.Response.characterId!=o){2!=d.Response.item.data?.location&&(yield s.moveItemToVault(d.Response.item.data?.itemInstanceId||""),d=yield(0,G.rV)(p=>s.http.$http(p),{membershipType:l.membershipType,destinyMembershipId:l.membershipId,itemInstanceId:e,components:[307]}));const x={characterId:o,membershipType:3,itemId:d?.Response.item.data?.itemInstanceId||"",itemReferenceHash:d?.Response.item.data?.itemHash||0,stackSize:1,transferToVault:!1};u=!!(yield(0,G.ux)(p=>s.http.$httpPost(p),x))}if(a){let x={characterId:o,membershipType:3,stackSize:1,itemId:d?.Response.item.data?.itemInstanceId||"",itemReferenceHash:d?.Response.item.data?.itemHash||0};u=!!(yield(0,G.DH)(p=>s.http.$httpPost(p),x))}return u})()}moveItemToVault(e){var o=this;return(0,m.Z)(function*(){console.info("moveItemToVault",e);let a=yield o.membership.getMembershipDataForCurrentUser();if(!a)return void(yield o.authService.logout());const s=yield(0,G.rV)(d=>o.http.$http(d),{membershipType:a.membershipType,destinyMembershipId:a.membershipId,itemInstanceId:e,components:[307]}),l={characterId:s?.Response.characterId||"",membershipType:3,itemId:s?.Response.item.data?.itemInstanceId||"",itemReferenceHash:s?.Response.item.data?.itemHash||0,stackSize:1,transferToVault:!0};yield(0,G.ux)(d=>o.http.$httpPost(d),l)})()}getUnlockedExoticArmor(e){var o=this;return(0,m.Z)(function*(){const a=(yield o.db.manifestCollectibles.toArray()).reduce((l,d)=>(l[d.hash]=d.itemHash,l),{}),s=Object.values(e).flatMap(l=>Object.entries(l.collectibles??{})).filter(([l,{state:d}])=>0==(1&d)&&a[parseInt(l)]).map(([l,d])=>a[parseInt(l)]);return new Set(s)})()}updateArmorItems(e=!1){var o=this;return(0,m.Z)(function*(){if(!e&&localStorage.getItem("LastArmorUpdate")&&localStorage.getItem("last-armor-db-name")==o.db.inventoryArmor.db.name&&Date.now()-Number.parseInt(localStorage.getItem("LastArmorUpdate")||"0")<18e5)return;let a=yield o.membership.getMembershipDataForCurrentUser();if(!a)return void(yield o.authService.logout());console.info("BungieApiService","getProfile");let s=yield(0,G.Ai)(T=>o.http.$http(T),{components:[205,201,103,102,304,300,302,305,308,800],membershipType:a.membershipType,destinyMembershipId:a.membershipId});yield o.vendors.updateVendorArmorItemsCache();const l=yield o.getUnlockedExoticArmor(s.Response.characterCollectibles.data??{});let d=s.Response.profileInventory.data?.items||[];for(let T in s.Response.characterEquipment.data)d=d.concat(s.Response.characterEquipment.data[T].items);for(let T in s.Response.characterInventories.data)d=d.concat(s.Response.characterInventories.data[T].items);var u=d.filter(T=>[3853748946,4257549984,4257549985].indexOf(T.itemHash)>-1).reduce((T,R)=>(R.itemHash.toString()in T||(T[R.itemHash]=0),T[R.itemHash]+=R.quantity,T),{});let x=s.Response.profileCurrencies.data?.items.filter(T=>3159615086==T.itemHash)||[];u[3159615086]=x.length>0?x[0].quantity:0;let p=s.Response.profileCurrencies.data?.items.filter(T=>1022552290==T.itemHash)||[];u[1022552290]=p.length>0?p[0].quantity:0,localStorage.setItem("stored-materials",JSON.stringify(u));const b=new Set(d.map(T=>T.itemHash));l.forEach(T=>b.add(T));let Z=yield o.db.manifestArmor.toArray();const D=Z.filter(T=>b.has(T.hash)),O=Z.filter(T=>19==T.itemType);let E=Object.fromEntries(D.map(T=>[T.hash,T])),M=Object.fromEntries(O.map(T=>[T.hash,T])),q=d.filter(T=>!!T.itemInstanceId).filter(T=>3284755031!==T.bucketHash).filter(T=>!!((s.Response.itemComponents.stats.data||{})[T.itemInstanceId||""]?.stats||{})[392767087]).filter(T=>!!((s.Response.itemComponents.instances.data||{})[T.itemInstanceId||""]||{}).energy).map(T=>{let X=(s.Response.itemComponents.instances.data||{})[T.itemInstanceId||""]||{};if(!E[T.itemHash])return console.warn("Missing manifest item for item hash",T.itemHash),null;let tt=Yt(E[T.itemHash],T.itemInstanceId||"",k.Inventory);tt.masterworked=!!X.energy&&10==X.energy.energyCapacity,tt.energyLevel=X.energy?X.energy.energyCapacity:0;const Kc=(s.Response.itemComponents.sockets.data||{})[T.itemInstanceId]?.sockets.map(Ce=>Ce.plugHash)??[];return te(tt,E[T.itemHash]?.investmentStats??[],Kc,M),tt.perk==r.Pn.SlotArtifice&&((((s.Response.itemComponents.perks.data||{})[T.itemInstanceId||""]||{}).perks||[]).filter($c=>229248542==$c.perkHash).length>0||(tt.perk=r.Pn.None)),!tt.isExotic&&o.config_assumeEveryLegendaryIsArtifice&&(tt.perk=r.Pn.SlotArtifice),tt}).filter(Boolean);const gt=Array.from(l).map(T=>{const R=E[T];if(!R)return console.error("Couldn't find manifest item for exotic",T),null;const X=Yt(R,`c${R.hash}`,k.Collections);return te(X,R.investmentStats,R.socketEntries.map(tt=>tt.singleInitialItemHash),M),X}).filter(Boolean);return q=q.concat(gt),q=q.filter(T=>!T.statPlugHashes||null!=T.statPlugHashes[0]),yield o.db.inventoryArmor.where({source:k.Inventory}).delete(),yield o.db.inventoryArmor.where({source:k.Collections}).delete(),yield o.db.inventoryArmor.bulkAdd(q),localStorage.setItem("LastArmorUpdate",Date.now().toString()),localStorage.setItem("last-armor-db-name",o.db.inventoryArmor.db.name),q})()}getArmorPerk(e){if(S_featureFlags_enableGuardianGamesFeatures&&(1013401891===e.hash||366019830===e.hash||537041732==e.hash))return r.Pn.GuardianGamesClassItem;const o=e.sockets?.socketEntries??[];if(o.find(a=>1311==a.reusablePlugSetHash))return r.Pn.SlotArtifice;for(const a of o){const s=a.singleInitialItemHash;if(!s)continue;const l=Object.entries(r.DH).find(d=>d[1]==s);if(l)return parseInt(l[0])}return r.Pn.None}updateVendorNames(e){var o=this;return(0,m.Z)(function*(){const s=Object.values(e.DestinyVendorDefinition).map(l=>({vendorId:l.hash,vendorName:l.displayProperties.name}));yield o.db.vendorNames.clear(),yield o.db.vendorNames.bulkAdd(s)})()}updateAbilities(e){return(0,m.Z)(function*(){const o=Object.values(e.DestinyInventoryItemDefinition).filter(a=>a.plug?.plugCategoryIdentifier?.match(/\.(supers|grenades|class_abilities|melee|aspects|fragments)$/));localStorage.setItem("allAbilities",JSON.stringify(o))})()}updateExoticCollectibles(e){var o=this;return(0,m.Z)(function*(){const a=Object.entries(e.DestinyCollectibleDefinition).filter(([s,l])=>{const d=e.DestinyInventoryItemDefinition[l.itemHash];return"Exotic"==d?.inventory?.tierTypeName&&2==d?.itemType}).map(([s,l])=>({hash:parseInt(s),itemHash:l.itemHash}));console.log("Storing",a.length,"exotic armor hashes"),yield o.db.manifestCollectibles.clear(),yield o.db.manifestCollectibles.bulkPut(a)})()}updateManifest(e=!1){var o=this;return(0,m.Z)(function*(){const a=o.db.lastManifestUpdate();let s=null;if(a&&!e){if(Date.now()-a.updatedAt>9e5&&(s=yield(0,G.KN)(p=>o.http.$http(p)),a.version==s.Response.version))return void console.debug("bungieApiService - updateManifest","Abort updateManifest due to fitting ManifestVersion");if(Date.now()-a.updatedAt<864e5)return void console.debug("bungieApiService - updateManifest","Abort updateManifest due to fitting Date")}null==s&&(s=yield(0,G.KN)(x=>o.http.$http(x)));const l=s.Response.version,d=yield(0,ve.xG)(x=>o.http.$httpWithoutKey(x),{destinyManifest:s.Response,tableNames:["DestinyInventoryItemDefinition","DestinyCollectibleDefinition","DestinyVendorDefinition"],language:"en"});console.log("manifestTables.DestinyInventoryItemDefinition",d.DestinyInventoryItemDefinition),yield o.updateExoticCollectibles(d),yield o.updateVendorNames(d),yield o.updateAbilities(d);let u=Object.entries(d.DestinyInventoryItemDefinition).filter(([x,p])=>19==p.itemType||2==p.itemType||3448274439==p.inventory?.bucketTypeHash||3551918588==p.inventory?.bucketTypeHash||14239492==p.inventory?.bucketTypeHash||20886954==p.inventory?.bucketTypeHash).map(([x,p])=>{let b=C.y.ArmorSlotNone;(p.itemCategoryHashes?.indexOf(45)||-1)>-1&&(b=C.y.ArmorSlotHelmet),(p.itemCategoryHashes?.indexOf(46)||-1)>-1&&(b=C.y.ArmorSlotGauntlet),(p.itemCategoryHashes?.indexOf(47)||-1)>-1&&(b=C.y.ArmorSlotChest),(p.itemCategoryHashes?.indexOf(48)||-1)>-1&&(b=C.y.ArmorSlotLegs),(p.itemCategoryHashes?.indexOf(49)||-1)>-1&&(b=C.y.ArmorSlotClass);const Z=(p.sockets?.socketEntries.filter(q=>2512726577==q.socketTypeHash||1108765570==q.socketTypeHash||959256494==q.socketTypeHash||2512726577==q.socketTypeHash||3219375296==q.socketTypeHash||968742181==q.socketTypeHash)||[]).length>0,D="Exotic"==p.inventory?.tierTypeName?1:0;let O=null;D&&(O=(p.sockets?.socketEntries.filter(gt=>965959289==gt.socketTypeHash).map(gt=>gt.singleInitialItemHash)||[])[0]);var E=[1862490585,1862490584,1862490584,1862490583,2471437758],M=p.quality?.versions.filter(q=>E.includes(q.powerCapHash)).length==p.quality?.versions.length;return{hash:p.hash,icon:p.displayProperties.icon,watermarkIcon:(p.quality?.displayVersionWatermarkIcons||[null])[0],name:p.displayProperties.name,description:p.displayProperties.description,clazz:p.classType,armor2:Z,slot:b,isExotic:D,isSunset:M,rarity:p.inventory?.tierType,exoticPerkHash:O,itemType:p.itemType,itemSubType:p.itemSubType,investmentStats:p.investmentStats,perk:o.getArmorPerk(p),socketEntries:p.sockets?.socketEntries??[]}});return yield o.db.writeManifestArmor(u,l),d})()}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(L),t.LFG(Ft),t.LFG(et),t.LFG(B),t.LFG(Rt),t.LFG(we))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),K=(()=>{class n{constructor(e,o,a,s,l,d){var u=this;this.db=e,this.config=o,this.status=a,this.api=s,this.auth=l,this.router=d,this.allArmorResults=[],this.currentClass=U.None,this._config=Et.buildEmptyConfiguration(),this.updatingResults=!1,this.refreshing=!1,this._inventory=new ct.t(1),this.inventory=this._inventory.asObservable(),this._manifest=new ct.t(1),this.manifest=this._manifest.asObservable(),this._armorResults=new dt.X({results:this.allArmorResults}),this.armorResults=this._armorResults.asObservable();let x=!1,p=!1;d.events.pipe((0,st.b)(5)).subscribe(function(){var b=(0,m.Z)(function*(Z){!u.auth.refreshTokenExpired&&(yield u.auth.autoRegenerateTokens())?!l.isAuthenticated()||Z instanceof I.m2&&(u.clearResults(),console.debug("Trigger refreshAll due to router.events"),yield u.refreshAll(!x),x=!0):yield u.auth.logout()});return function(Z){return b.apply(this,arguments)}}()),o.configuration.pipe((0,st.b)(500)).subscribe(function(){var b=(0,m.Z)(function*(Z){!u.auth.refreshTokenExpired&&(yield u.auth.autoRegenerateTokens())?!l.isAuthenticated()||(u._config=Z,p=!0,console.debug("Trigger refreshAll due to config change"),yield u.refreshAll(!x),x=!0,p=!1):yield u.auth.logout()});return function(Z){return b.apply(this,arguments)}}())}clearResults(){this.allArmorResults=[],this._armorResults.next({results:this.allArmorResults,totalResults:0,totalTime:0,itemCount:0,maximumPossibleTiers:[0,0,0,0,0,0],statCombo3x100:[],statCombo4x100:[]})}shouldCalculateResults(){return console.log("this.router.url",this.router.url),"/"==this.router.url}refreshAll(e=!1,o=!1){var a=this;return(0,m.Z)(function*(){if(!a.refreshing){console.debug("Execute refreshAll");try{a.refreshing=!0;let s=yield a.updateManifest(o);(yield a.updateInventoryItems(s||e))&&a._inventory.next(null),a.shouldCalculateResults()&&a.updateResults()}finally{a.refreshing=!1}}})()}updateResults(e=3){if(this.clearResults(),this.updatingResults)console.warn("Called updateResults, but aborting, as it is already running.");else try{console.time("updateResults with WebWorker"),this.updatingResults=!0,this.status.modifyStatus(p=>p.calculatingResults=!0);let o=0,a=[],s=0,l=[],d=new Set,u=new Set;const x=Date.now();for(let p=0;p{if(a.push(Z.results),1==Z.done){o++,s+=Z.stats.permutationCount,l.push(Z.runtime.maximumPossibleTiers);for(let D of Z.runtime.statCombo3x100)d.add(D);for(let D of Z.runtime.statCombo4x100)u.add(D)}if(1==Z.done&&o==e){this.status.modifyStatus(O=>O.calculatingResults=!1),this.updatingResults=!1;let D=[];for(let O of a)D.push(...O);D=D.map(O=>(O.usesCollectionRoll=O.items.some(E=>E[0].source===k.Collections),O.usesVendorRoll=O.items.some(E=>E[0].source===k.Vendor),O)),console.debug("endResults",D),this._armorResults.next({results:D,totalResults:s,itemCount:Z.stats.itemCount,totalTime:Date.now()-x,maximumPossibleTiers:l.reduce((O,E)=>{for(let M=0;M<6;M++)O[M]Math.floor(Math.min(100,O)/10)),statCombo3x100:Array.from(d).map(O=>{let E=[];for(let M=0;M<6;M++)(O&1<0&&E.push(M);return E})||[],statCombo4x100:Array.from(u).map(O=>{let E=[];for(let M=0;M<6;M++)(O&1<0&&E.push(M);return E},[])||[]}),console.timeEnd("updateResults with WebWorker"),b.terminate()}else 1==Z.done&&o!=e&&b.terminate()},b.onerror=Z=>{console.error("ERROR IN WEBWORKER, TERMINATING WEBWORKER",Z),b.terminate()},b.postMessage({currentClass:this.currentClass,config:this._config,threadSplit:{count:e,current:p}})}}finally{}}getItemCountForClass(e,o){var a=this;return(0,m.Z)(function*(){let s=yield a.db.inventoryArmor.where("clazz").equals(e).toArray();return o&&(s=s.filter(l=>l.slot==o)),s=s.filter(l=>l.source==k.Inventory),s.length})()}getExoticsForClass(e,o){var a=this;return(0,m.Z)(function*(){let s=yield a.db.inventoryArmor.where("isExotic").equals(1).toArray();s=s.filter(d=>d.clazz==e&&d.armor2&&(!o||d.slot==o));let l=yield a.db.manifestArmor.where("isExotic").equals(1).toArray();return l=l.filter(d=>d.clazz==e&&d.armor2&&(!o||d.slot==o)),l.map(d=>{const u=s.filter(x=>x.hash==d.hash);return{item:d,inCollection:void 0!==u.find(x=>x.source===k.Collections),inInventory:void 0!==u.find(x=>x.source===k.Inventory),inVendor:void 0!==u.find(x=>x.source===k.Vendor)}})})()}updateManifest(e=!1){var o=this;return(0,m.Z)(function*(){if(o.status.getStatus().updatingManifest)return console.error("Already updating the manifest - abort"),!1;console.debug("updateManifest","Set s.updatingManifest = true"),o.status.modifyStatus(s=>s.updatingManifest=!0),console.debug("updateManifest","Call this.api.updateManifest(force) with force="+e);let a=yield o.api.updateManifest(e);return console.debug("updateManifest","Result is ",a),a&&o._manifest.next(null),console.debug("updateManifest","Set s.updatingManifest = false"),o.status.modifyStatus(s=>s.updatingManifest=!1),!!a})()}updateInventoryItems(e=!1,o=0){var a=this;return(0,m.Z)(function*(){console.debug("updateManifest","Set s.updatingInventory = true"),a.status.modifyStatus(s=>s.updatingInventory=!0);try{let s=yield a.api.updateArmorItems(e);return console.debug("updateManifest","Result is ",s),console.debug("updateManifest","Set s.updatingInventory = false"),a.status.modifyStatus(l=>l.updatingInventory=!1),!!s}catch(s){return o>3?(alert("You encountered a strange error with the inventory update. Please log out and log in again. If that does not fix it, please message Mijago."),!1):(a.status.modifyStatus(l=>l.updatingInventory=!1),console.error(s),console.warn("Automatically re-fetching manifest"),yield a.updateManifest(!0),yield a.updateInventoryItems(!0,o++))}})()}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(et),t.LFG(B),t.LFG(Tt),t.LFG(Qt),t.LFG(L),t.LFG(I.F0))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const ee="https://Database-Clarity.github.io/Character-Stats",Ze=`${ee}/versions/1.8/CharacterStatInfo-NI.json`,Se=`${ee}/update.json`,oe="clarity-character-stats-version",ie="clarity-character-stats";let Ie=(()=>{class n{constructor(e,o){this.http=e,this.inv=o,this._characterStats=new dt.X(null),this.characterStats=this._characterStats.asObservable(),this.inv.manifest.subscribe(a=>this.load())}load(){var e=this;return(0,m.Z)(function*(){try{yield e.loadCharacterStats()}catch(o){console.warn("Error loading Clarity data",o)}})()}fetchUpdateData(){var e=this;return(0,m.Z)(function*(){return e.http.get(Se).toPromise()})()}loadCharacterStats(){var e=this;return(0,m.Z)(function*(){const o=localStorage.getItem(ie);o&&e._characterStats.next(JSON.parse(o));const a=yield e.fetchUpdateData(),s=parseInt(localStorage.getItem(oe)||"0");a&&a.lastUpdate>s&&("1.8"!==a.schemaVersion?console.warn("Unsupported live character stats schema version",a.schemaVersion):a&&void 0!==a.lastUpdate&&(yield e.fetchLiveCharacterStats().then(l=>{localStorage.setItem(ie,JSON.stringify(l)),localStorage.setItem(oe,a.lastUpdate.toString()),e._characterStats.next(l)})))})()}fetchLiveCharacterStats(){var e=this;return(0,m.Z)(function*(){return e.http.get(Ze).toPromise()})()}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(at.eN),t.LFG(K))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();var P=(()=>{return(n=P||(P={}))[n.Speed=1]="Speed",n[n.Percentage=2]="Percentage",n[n.Time=3]="Time",n[n.TimeMMSS=4]="TimeMMSS",n[n.PercentagePerSecond=5]="PercentagePerSecond",P;var n})();let ae=(()=>{class n{constructor(e){this.clarity=e,this.allStatEntries={},this.overrides=[],this.clarity.characterStats.subscribe(o=>{o&&this.updateCharacterStats(o)})}loadCharacterStats(){this.clarity.load()}updateCharacterStats(e){const o=(JSON.parse(window.localStorage.getItem("allAbilities"))||[]).reduce((a,s)=>(a.set(s.hash,s),a),new Map);this.overrides=Object.values(e).map(a=>a.Overrides).flat(),this.allStatEntries={Mobility:this.generateEntries(e.Mobility,o,[{key:"WalkSpeed",name:"Walk Speed",valueType:P.Speed},{key:"StrafeSpeed",name:"Strafe Speed",valueType:P.Speed},{key:"CrouchSpeed",name:"Crouch Speed",valueType:P.Speed}]),Resilience:this.generateEntries(e.Resilience,o,[{key:"TotalHP",name:"Total HP"},{key:"PvEDamageResistance",name:"PvE Damage Resistance",valueType:P.Percentage},{key:"FlinchResistance",name:"Flinch Resistance",valueType:P.Percentage}]),Recovery:this.generateEntries(e.Recovery,o,[{key:"TotalRegenTime",name:"Total Regen Time",valueType:P.Time},{key:"HealthRegenDelay",name:"Health Regen Delay",valueType:P.Time},{key:"HealthRegenSpeed",name:"Health Regen Speed",valueType:P.PercentagePerSecond},{key:"ShieldRegenDelay",name:"Shield Regen Delay",valueType:P.Time},{key:"ShieldRegenSpeed",name:"Shield Regen Speed",valueType:P.PercentagePerSecond}]),Discipline:this.generateEntries(e.Discipline,o),Intellect:this.generateEntries(e.Intellect,o),Strength:this.generateEntries(e.Strength,o)}}get(e,o,a,s=[]){const l=this.allStatEntries[e]??[],d=this.overrides.filter(u=>s.includes(u.Hash));return l.filter(u=>!(void 0!==o&&void 0!==u.characterClass&&u.characterClass!==o||void 0!==a&&void 0!==u.element&&u.element!==a)).map(u=>d.reduce((x,p)=>function Me(n,i){if(!n.hash||!i.Requirements.includes(n.hash))return n;const e={...n,overrideIcons:[...n.overrideIcons??[],i.Hash]};if(i.CooldownOverride)return{...e,values:i.CooldownOverride};if(i.Scalar){const o=i.Requirements.indexOf(n.hash),a=i.Scalar[o];return{...e,values:e.values.map(s=>s*a)}}return console.log("Unhandled override",i),n}(x,p),u))}generateEntries(e,o,a=[]){const s=a.map(({key:d,...u})=>({values:e[d].Array,...u}));return("Abilities"in e?e.Abilities:"SuperAbilities"in e?e.SuperAbilities:[]).forEach(d=>{const u=o.get(d.Hash);if(!u)return;const{characterClass:x,element:p}=function Oe(n){let i,e;const o=n.plug?.plugCategoryIdentifier?.split(".");if(3!==o?.length)return{characterClass:i,element:e};const[a,s,l]=o;return"warlock"===a?i=U.Warlock:"hunter"===a?i=U.Hunter:"titan"===a&&(i=U.Titan),"arc"===s?e=h.O.Arc:"solar"===s?e=h.O.Solar:"void"===s?e=h.O.Void:"stasis"===s?e=h.O.Stasis:"strand"===s&&(e=h.O.Strand),{characterClass:i,element:e}}(u);s.push({hash:u.hash,name:u.displayProperties.name,icon:u.displayProperties.icon,values:d.Cooldowns,valueType:P.TimeMMSS,characterClass:x,element:p})}),s}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(Ie))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();var c=(()=>{return(n=c||(c={}))[n.ADD=0]="ADD",n[n.REMOVE=1]="REMOVE",n[n.MODIFIED=2]="MODIFIED",c;var n})();const se=[{version:"2.5.0",date:"October 14, 2023",entries:[{type:c.ADD,text:"The stat cooldowns and values are now automatically updated from the Clarity database. Thanks to ciar\xe1n!",issues:[]},{type:c.ADD,text:"The new modslots/perks are now available in the dropdown.",issues:[]},{type:c.MODIFIED,text:"The stat cooldowns now show icons. Thanks to ciar\xe1n!",issues:[]},{type:c.MODIFIED,text:"The fragments now show their icons. Thanks to ciar\xe1n!",issues:[]},{type:c.MODIFIED,text:"Minor internal updates for DIM references. Thanks to bhollis!",issues:[]},{type:c.MODIFIED,text:"Improved the wasted stats selection, again!",issues:[]}]},{version:"2.4.2",date:"July 11, 2023",entries:[{type:c.ADD,text:"Added the ability to use collection roll armor. This is disabled by default. Thanks to ciar\xe1n!",issues:[]},{type:c.ADD,text:"Added the ability to use vendor armor, including Xur. This is disabled by default. Thanks to ciar\xe1n!",issues:[]},{type:c.ADD,text:"Added the ability to select the optimization strategy. You can now choose between 'Reduce waste', 'Reduce used mods' and 'Reduce used modslots'. The default is 'Reduce waste'.",issues:[]},{type:c.ADD,text:"Re-added the reduce wasted stats feature. It is now disabled by default. It is a bit slower and not really necessary for most people.",issues:[]},{type:c.MODIFIED,text:"Zero Waste is no longer dependent on the 'Reduce wasted stats' setting. In fact, it practically overwrites it.",issues:[]},{type:c.REMOVE,text:"Removed the 'Extra optimization steps' setting. It is now always enabled.",issues:[]}]},{version:"2.4.0",date:"May 23, 2023",entries:[{type:c.MODIFIED,text:"Rewrote the internal algorithm. It makes stuff faster and gives better results.",issues:[]},{type:c.ADD,text:"Added a 'Perform further optimization' setting. This will give you better results, but it will take a bit longer.",issues:[]},{type:c.ADD,text:"Added Icons to the Stat Selection to make it easier to see which row is which perk.",issues:[]},{type:c.ADD,text:"Added button to download results as JSON.",issues:[]},{type:c.ADD,text:"Added Sonar Amplifier perk.",issues:[]},{type:c.MODIFIED,text:"Enabled Modslot limitation.",issues:[]},{type:c.MODIFIED,text:"Enabled the 3x100 and 4x100 buttons.",issues:[]},{type:c.MODIFIED,text:"Enabled Zero-Waste mode.",issues:[]},{type:c.MODIFIED,text:"Temporarily disabled 'Reduce Wasted Stats'. It will be back soon.",issues:[]}]},{version:"2.3.2",date:"May 7, 2023",entries:[{type:c.ADD,text:"Feature: Added 'Guardian Games' class item type to the dropdown. ",issues:[]},{type:c.MODIFIED,text:"Reformatted every file in the codebase and improved the code workflow. You should not really see this on your end, but it will allow everyone to easily contribute to this open source project!",issues:[]}]},{version:"2.3.1",date:"April 2, 2023",entries:[{type:c.ADD,text:"Feature: Added the possibility to only show builds that contain an exotic.",issues:[]},{type:c.ADD,text:"Added 'Root of Nightmares' modslot filter.",issues:[]},{type:c.ADD,text:"Added 'Queen's Favor' seasonal perk filter.",issues:[]},{type:c.ADD,text:"Added text indicating that only fragments that affect stats are shown.",issues:[]},{type:c.MODIFIED,text:"Fixed deprecated mods being sent when opening the loadout in DIM. Also adds artifice mods now.",issues:[]},{type:c.MODIFIED,text:"Fixed an issue where the tool did not put artifice mods on the class item if you forced the class item to be artifice.....",issues:[]},{type:c.MODIFIED,text:"Fixed an issue where the default selection was the titan class, even if you had no titan characters.",issues:[]}]},{version:"2.3.0",date:"March 14, 2023",entries:[{type:c.ADD,text:"Automatically adds artifice mods to your armor. This replaces minor and major mods where possible.",issues:[]},{type:c.ADD,text:"Added the amount of used artifice mods to the result table overview (next to the mods). They are not calculated into the 'mod cost' column.",issues:[]},{type:c.ADD,text:"Added new fragments, including Strand.",issues:[]},{type:c.MODIFIED,text:"Adapted modslot cost of Resilience and Recovery mods.",issues:[]},{type:c.MODIFIED,text:"Introduced more modules for asynchronous loading. This is more a speed improvement than a feature.",issues:[]},{type:c.MODIFIED,text:"Reduced the maximum limit of reported results from 50,000 to 30,000. Note that D2AP still calculates every result, it just does not report them. This is a major speedup, and you usually should not even realize the change.",issues:[]},{type:c.MODIFIED,text:"Increased the visual contrast of major mods in the results table. This means it is now easier to distinguish major from minor mods.",issues:[]},{type:c.REMOVE,text:"Removed the elemental affinity completely.",issues:[]},{type:c.REMOVE,text:"DISABLED the 'Zero Waste' feature. It will be re-enabled in the future.",issues:[]},{type:c.REMOVE,text:"DISABLED the 'Modslot Limitation' feature. It will be re-enabled in the future.",issues:[]}]},{version:"2.2.16",date:"December 7, 2022",entries:[{type:c.ADD,text:"Added Ember of Torches (with -10 Discipline).",issues:[]},{type:c.ADD,text:"Added Retrofit mods (mobility and resilience).",issues:[]},{type:c.ADD,text:"Added armor perk 'Seraph Sensor Array' to the dropdown.",issues:[]},{type:c.ADD,text:"Added a Game2Give message. Let's support the little lights together!",issues:[]},{type:c.MODIFIED,text:"Fixed artifice modslot.",issues:[]},{type:c.MODIFIED,text:"Membership data is cached longer to make things faster and to ease the Bungie API.",issues:[]}]},{version:"2.2.15",date:"October 18, 2022",entries:[{type:c.ADD,text:"Added FOTL masks.",issues:[]}]},{version:"2.2.13",date:"September 23, 2022",entries:[{type:c.ADD,text:"Added an advanced setting to replace the 'Tiers' column with a 'Max Tiers' column. This is adds the amount of open modslots to the column, but ignores mod limitations at the moment. A T32 build without mods will now show T37.",issues:[]}]},{version:"2.2.12",date:"September 11, 2022",entries:[{type:c.MODIFIED,text:"Changed the layout to force the settings (left) and results (right) to be next to each other. This means that the page is more mobile approachable. This is also the first step to a more flexible layout.",issues:[]}]},{version:"2.2.11",date:"September 10, 2022",entries:[{type:c.ADD,text:"Added a display for your owned upgrade materials in the character overview.",issues:[]},{type:c.ADD,text:"Added a notification to warn you when you create a modslot limitation that yields no results. Note that this will not (yet) show invalid combinations over all armor, just for the given slot you selected it in.",issues:[]},{type:c.MODIFIED,text:"Reduced size of exotic icons so that the left side will not grow on Titan class.",issues:[]},{type:c.MODIFIED,text:"The 'Performance Optimization' settings will now always re-enable after a reload to prevent your browser being stuck in a crash-loop. (This is for you, iOS Safari users)",issues:[]},{type:c.MODIFIED,text:"Changed wording of the 'Performance Optimization' setting to prevent people from using it incorrectly.",issues:[]}]},{version:"2.2.10",date:"September 2, 2022",entries:[{type:c.MODIFIED,text:"Updated Artifice Modslot Hash after the most recent hotfix.",issues:[]}]},{version:"2.2.9",date:"September 1, 2022",entries:[{type:c.MODIFIED,text:"Tooltips do now not obstruct the clicks of stats. This fixes the iOS stat selection issue.",issues:[]}]},{version:"2.2.8c",date:"August 24, 2022",entries:[{type:c.MODIFIED,text:"The manifest is now (again) automatically updated on version changes. This fixes your artifice problems at the beginning of a new season.",issues:[]},{type:c.MODIFIED,text:"Added subclass hashes for Arc. This means that it now transfers to DIM.",issues:[]}]},{version:"2.2.8b",date:"August 24, 2022",entries:[{type:c.MODIFIED,text:"Fixed Artifice modslots. You might need to wait a bit, alternatively delete the database (Account section) or re-log.",issues:[]}]},{version:"2.2.8a",date:"August 23, 2022",entries:[{type:c.MODIFIED,text:"Updated grenade and melee cooldowns for arc.",issues:[]}]},{version:"2.2.8",date:"August 23, 2022",entries:[{type:c.ADD,text:"Added Arc 3.0 fragments.",issues:[]},{type:c.MODIFIED,text:"Fixed tooltip issues on iOS devices.",issues:[]},{type:c.MODIFIED,text:"Fixed an infinite loading issue.",issues:[]}]},{version:"2.2.7",date:"June 25, 2022",entries:[{type:c.ADD,text:"Added a link to my Discord bot Crayon.",issues:[]},{type:c.MODIFIED,text:"Fixed an issue where a large number of stored configurations would drastically slow down the app.",issues:[]}]},{version:"2.2.6",date:"June 8, 2022",entries:[{type:c.MODIFIED,text:"Fixed an issue where the elemental selection would not give the correct results under very specific conditions.",issues:[]}]},{version:"2.2.5",date:"June 7, 2022",entries:[{type:c.ADD,text:"Added all of the new ability cooldowns.",issues:[]},{type:c.MODIFIED,text:"Completely reworked the ability cooldown tooltips. They now show the difference to the currently selected tier.",issues:[]}]},{version:"2.2.4",date:"June 3, 2022",entries:[{type:c.MODIFIED,text:"Fixed the export to DIM. Thanks to bhollis for the fix!",issues:[]},{type:c.MODIFIED,text:"The manifest now automatically updates when Bungie updated it too, except just after a fixed timespan.",issues:[]}]},{version:"2.2.3",date:"May 24, 2022",entries:[{type:c.ADD,text:"Added Solar 3.0",issues:[]},{type:c.MODIFIED,text:"Adapted artifice armor to the new Season.",issues:[]}]},{version:"2.2.2",date:"Mar 9, 2022",entries:[{type:c.ADD,text:"See what mods do by hovering over their name.",issues:["D2AP-41"]},{type:c.ADD,text:"Added Vow of the Disciple armor.",issues:["D2AP-35"]},{type:c.ADD,text:"Added 'Uniformed Officer' armor.",issues:["D2AP-35"]},{type:c.MODIFIED,text:"Fixed Scatter grenades being Tier 3 (were T4 before).",issues:["D2AP-39"]},{type:c.MODIFIED,text:"Changed the color of the login button.",issues:["D2AP-37"]},{type:c.MODIFIED,text:"When a selected character class does not exist, the tool will now select the first available class as default."}]},{version:"2.2.1",date:"Feb 22, 2022",entries:[{type:c.ADD,text:"Added a switch to select between Stasis and Void 3.0 fragments. Stasis is enabled per default to ensure backwards compatibility of saved configurations.",issues:["D2AP-10"]},{type:c.ADD,text:"Added a debug section to the (new) account settings page. The account settings page does not do much yet, I just wanted to deploy the debug functions.",issues:["D2AP-23"]},{type:c.MODIFIED,text:"Modified super cooldowns for Witch Queen."},{type:c.MODIFIED,text:"Added a minor text to the exotic overview that explains that exotics not in the inventory are shown in grayscale. You can also no longer select those.",issues:["D2AP-17"]},{type:c.MODIFIED,text:"Minor changes in how the database behaves on logout. It now deletes the inventory when you log out, but still keeps the manifest.",issues:["D2AP-27"]},{type:c.MODIFIED,text:"Users are now logged out when the Bungie.Net API is down.",issues:["D2AP-34"]},{type:c.MODIFIED,text:"Fixed Charge Harvester and Echo of Persistence incorrectly reducing Discipline instead of recovery when used on a Warlock."}]},{version:"2.2.0",date:"Feb 09, 2022",entries:[{type:c.ADD,text:"Added the ability to select armor perks and 5th slots. Just like the elements you can optionally enforce it to be on a certain slot. Useful if you want to build Iron Banner armor or utilize artifice modslots."},{type:c.ADD,text:"Added the ability to limit the available points on each armor item for stat mods. This allows you to limit the kind of stat mods that are usable. You can now say 'do not use major intellect mods'."},{type:c.ADD,text:"Added the ability to lock stat tiers. Previously you could only set 'Use Tier 3 or higher', now you can optionally set 'Enforce Tier 3'. This is useful for example if you want to enforce T3 mobility on a Titan."},{type:c.ADD,text:"Added a summary of important configuration choices to the result header to improve readability."},{type:c.ADD,text:"Added a button to open the DIM Loadout Builder with the current settings."},{type:c.ADD,text:"Added an option that forces the correct element on non-masterworked armor pieces. This is per default enabled."},{type:c.ADD,text:"Added cooldowns for class abilities (Dodge, Barricade, Rift)."},{type:c.ADD,text:"Added visual indicators for minor and major mods in the overview table. The whole visualization is also more compact now."},{type:c.ADD,text:"Added visual cursor indicator to every clickable input, e.g. in the exotic, element and perk/mod selection."},{type:c.ADD,text:"Added a (very basic) item tooltip."},{type:c.ADD,text:"Show the required material cost for each item. Note that this ignores your class item."},{type:c.ADD,text:"Added a stat summary table to the stat detail view. This allows you to easily share a stat distribution with others."},{type:c.ADD,text:"Added 'Clear this section' button to each configuration section."},{type:c.ADD,text:"Added support for your class items. You won't see a lot of this, except when you use the slot and element limitation in specific ways."},{type:c.ADD,text:"Detailed information is now in expandable containers to improve readability."},{type:c.ADD,text:"Show the seasonal icon for every item too."},{type:c.ADD,text:"Added info text to the table headers."},{type:c.ADD,text:"The character selection now shows the existing characters - and their emblems too!"},{type:c.ADD,text:"Added Discord and another Ko-Fi link. You can find them in the character selection."},{type:c.ADD,text:"Added a changelog popup right at the start of the page. It only appears when a new update occured. You can always trigger it by clicking the current version number."},{type:c.ADD,text:"Now utilizes three webworkers instead of one. The process is simple, but generally speeds up the results by a huge margin."},{type:c.ADD,text:"Added an Armor Investigation tab for data scientists."},{type:c.ADD,text:"Added a sidenav for smaller devices and reworked the top menubar."},{type:c.ADD,text:"The detailed result table now shows the perk of an selected item, if it has one. This also applies to class items, if necessary."},{type:c.ADD,text:"Hovering over exotics in the exotic selection now displays their perk description."},{type:c.ADD,text:"Added an advanced setting to disable white, green and blue armor."},{type:c.ADD,text:"Added an advanced setting to ignore sunset armor."},{type:c.MODIFIED,text:"Changed the word 'Permutation' to 'Combination' wherever it has been used."},{type:c.MODIFIED,text:"Clicking on a setting that is already set does not re-trigger the calculation now. For example, selecting T3 recovery when it is already at T3 now does nothing."},{type:c.MODIFIED,text:"The default for all stats is now tier 0 instead of tier 1, to make it consistent with the clear buttons."},{type:c.MODIFIED,text:"The default setting for 'ignore non masterworked elements' is now 'off'."},{type:c.MODIFIED,text:"The 'time required' number now measures the time from before the webworkers are spawned until all webworkers are done. Previously it only monitored the time required INSIDE the webworker, so it may show slower times."},{type:c.MODIFIED,text:"Fixed the width of the 'Exotic' header in the results table. This means that it is now farther away from the 'Mobility' column."},{type:c.MODIFIED,text:"Completely reworked the elemental affinity selection. Per default it is now not fixed to a certain armor slot, but using a toggle button you can simply do so again."},{type:c.MODIFIED,text:"The results header now screams at you in bright red letters when no results are found."},{type:c.MODIFIED,text:"The alternating rows of the results details table have now a lighter color to make it easier to read."},{type:c.MODIFIED,text:"Fixed ability cooldowns for melee and grenade at tier 7 and tier 8."},{type:c.MODIFIED,text:"Cooldowns now are shown in MM:SS instead of plain seconds."},{type:c.MODIFIED,text:"Completely rewrote the core logic of D2ArmorPicker for the changes mentioned above."},{type:c.MODIFIED,text:"Exotics you do not have in your vault or inventory are now greyed out."},{type:c.MODIFIED,text:"Fixed an issue where exotics were not shown at your first login."},{type:c.MODIFIED,text:"Changed the color of important buttons so that they are easier to read."},{type:c.MODIFIED,text:"The icons of items in the results are now loaded asynchronous from their hashes. This saves a lot of memory, as I do not have to send two icon URLs for each item - for each result. I will further improve this in a later version."},{type:c.MODIFIED,text:"Maximum table output is now limited to 50 results (instead of 200). It still defaults to 20.}"},{type:c.MODIFIED,text:"Completely reworked the visuals of the changelog. It is now more pleasing to the eye."}]},{version:"2.1.4",date:"Dec 29, 2021",entries:[{type:c.MODIFIED,text:"Item stats are now built from their plugs and InvestmentStats (in case of some exotics). This fixes potentially invalid item stats when you use mods like Powerful Friends or Protective Light. A big thanks to u/deangaudet for reminding me that the API also reports the plugs of an item."},{type:c.MODIFIED,text:"Only save necessary item types of the manifest (namely mods and armor). Also, save twhe investmentStats now."},{type:c.MODIFIED,text:"Sped up the item update step."}]},{version:"2.1.3",date:"Dec 16, 2021",entries:[{type:c.MODIFIED,text:"Added new stat cooldowns"}]},{version:"2.1.2",date:"Dec 1, 2021",entries:[{type:c.MODIFIED,text:"The changelog is now in a scrollable box."},{type:c.MODIFIED,text:"Changed buymeacoffee to a ko-fi link. This way we can keep the PayPal support!"}]},{version:"2.1.1",date:"Nov 3, 2021",entries:[{type:c.REMOVE,text:"Removed the HALLOWEEN SPECIAL feature. Maybe something like this will return some day?"},{type:c.ADD,text:"Added tooltip to the item icons in the detailed overview to show the name of the item."},{type:c.MODIFIED,text:"Fixed an issue where the list of exotics did not load at the first login."},{type:c.MODIFIED,text:"Saved configurations now contain the current software version for future reference."},{type:c.MODIFIED,text:"Minor code quality improvements"}]},{version:"2.1.0 (major)",date:"Oct 29, 2021",entries:[{type:c.REMOVE,text:"Completely removed V1 of the tool. If you had any problems with V2, you had over three months to report them."},{type:c.ADD,text:"The stat selection now displays which stat tiers are added by stat mods (PF/RL) or stasis fragments in the configuration."},{type:c.ADD,text:"You can now export (and import) individual configurations as well as all stored configurations at once."},{type:c.ADD,text:"Added a navigation bar to the title bar. On smaller screens it is replaced by two buttons in the character selection."},{type:c.ADD,text:"Added more details to the last step of the 'What to do now?' section. It now lists the fragments and mods you selected."},{type:c.MODIFIED,text:"Optimized code and reduced overall page size."}]},{version:"2.0.16",date:"Oct 26, 2021",entries:[{type:c.MODIFIED,text:"Completely rewrote the core logic in order to fix the memory issues. The tool will now no longer crash when you have many armor items, but it's slightly slower than the previous approach. I tested it with 600 items - it works and does not crash, but takes up to a minute. Make sure to never get that much armor and to lock an exotic right away."},{type:c.MODIFIED,text:"The rewrite also fixed the issue where the tool did not work in Safari, or more generally, on Mac and iPhone."},{type:c.MODIFIED,text:"The rewrite also fixed an issue where items could not be found when an result update was triggered while the inventory was updated."}]},{version:"2.0.15",date:"Oct 24, 2021",entries:[{type:c.MODIFIED,text:"Updated the visual display of the cluster page. It displays the stats in a better way now."},{type:c.MODIFIED,text:"Fixed an issue with login, where you were automatically logged in again and could not switch accounts."}]},{version:"2.0.14",date:"Oct 21, 2021",entries:[{type:c.MODIFIED,text:"Updated URLs to the mobility, resilience and recovery images, as Bungie decided to change their URLs in today's hotfix."}]},{version:"2.0.13",date:"Oct 20, 2021",entries:[{type:c.ADD,text:"Added a chart to the armor clustering page, showing each clusters average stats."},{type:c.MODIFIED,text:"Stats over 100 are now seen as wasted."}]},{version:"2.0.12",date:"Oct 18, 2021",entries:[{type:c.ADD,text:"Added an experimental armor clustering feature."}]},{version:"2.0.11",date:"Oct 13, 2021",entries:[{type:c.ADD,text:"HALLOWEEN SPECIAL! Added (temporary) filter for halloween masks! This will be removed after the event."},{type:c.MODIFIED,text:"Fix: Clear the results if you switch character and no possible permutations can be found."}]},{version:"2.0.10",date:"Oct 10, 2021",entries:[{type:c.ADD,text:"Added 'Equip Items' button to the detailed item overview."}]},{version:"2.0.9",date:"Oct 6, 2021",entries:[{type:c.ADD,text:"Added a detailed description of the steps required to build a selected result."},{type:c.ADD,text:"Added a button to disable all four armor pieces at once."},{type:c.MODIFIED,text:"Fixed an issue where the permutations were not updated after 'Ignore armor elemental affinities on masterworked armor' was changed."}]},{version:"2.0.8",date:"Oct 5, 2021",entries:[{type:c.ADD,text:"Added this changelog to the help page."},{type:c.ADD,text:"Added 'Move to Inventory' button (beta)."},{type:c.ADD,text:"Split up 'Assume items are masterworked' into three settings: Class Items, Legendaries, Exotics"},{type:c.MODIFIED,text:"'Try to optimize wasted stats' is now active per default."},{type:c.MODIFIED,text:"Introduced an item buffer in the results component to further reduce memory usage."}]}];let re=(()=>{class n{constructor(e){this.changelog=e}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(Pt))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-changelog-dialog"]],decls:9,vars:2,consts:[["mat-dialog-title","",1,"title"],[1,"mat-typography"],["align","end"],["cdkFocusInitial","","color","primary","mat-raised-button","",3,"mat-dialog-close"]],template:function(e,o){1&e&&(t.TgZ(0,"h2",0),t._uU(1),t.qZA(),t.TgZ(2,"mat-dialog-content",1)(3,"div"),t._uU(4," Hi! There has been a new version of D2ArmorPicker! The following list shows all the relevant changes. Note that you can always look at the changelogs in the Help tab. "),t.qZA(),t._UZ(5,"app-changelog-list"),t.qZA(),t.TgZ(6,"mat-dialog-actions",2)(7,"button",3),t._uU(8,"Thanks, I saw it!"),t.qZA()()),2&e&&(t.xp6(1),t.hij("D2ArmorPicker Changelog for Version ",o.changelog.changelogData[0].version,""),t.xp6(6),t.Q6J("mat-dialog-close",!0))},styles:[".title[_ngcontent-%COMP%]{text-decoration:underline;-webkit-text-decoration-color:#0059ff;text-decoration-color:#0059ff}"]}),n})();var $=_(5412);let Pt=(()=>{class n{constructor(e){this.dialog=e}setChangelogSeenFlag(){return localStorage.setItem("last-changelog-version",this.changelogData[0].version)}get lastViewedChangelog(){return localStorage.getItem("last-changelog-version")}get mustShowChangelog(){return this.changelogData[0].version!==this.lastViewedChangelog}get changelogData(){return se}openChangelogDialog(){this.dialog.open(re).afterClosed().subscribe(o=>{this.setChangelogSeenFlag()})}}return n.\u0275fac=function(e){return new(e||n)(t.LFG($.uw))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();var y=_(6895),N=_(266),ke=_(3162),j=_(7392),bt=_(6338),le=_(3848),De=_(3267);let Ct=(()=>{class n{constructor(e,o){this.templateRef=e,this.vcRef=o,this.context={$implicit:null,ngVar:null},this.hasView=!1}set ngVar(e){this.context.$implicit=this.context.ngVar=e,this.hasView||(this.vcRef.createEmbeddedView(this.templateRef,this.context),this.hasView=!0)}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.Rgc),t.Y36(t.s_b))},n.\u0275dir=t.lG2({type:n,selectors:[["","ngVar",""]],inputs:{ngVar:"ngVar"}}),n})(),Ue=(()=>{class n{constructor(e){this.changelog=e}ngAfterViewInit(){this.changelog.mustShowChangelog&&this.changelog.openChangelogDialog()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(Pt))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-changelog-dialog-controller"]],decls:0,vars:0,template:function(e,o){},encapsulation:2}),n})();function Ee(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"a",29),t.NdJ("click",function(){t.CHM(e),t.oxw();const a=t.MAs(1);return t.KtG(a.toggle())}),t._uU(1),t.qZA()}if(2&n){const e=i.$implicit,o=i.index,a=t.oxw();t.ekj("active",a.activeLinkIndex===o),t.Q6J("routerLink",e.link),t.xp6(1),t.hij(" ",e.name," ")}}function Re(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"button",30),t.NdJ("click",function(){t.CHM(e),t.oxw();const a=t.MAs(1);return t.KtG(a.toggle())}),t.TgZ(1,"mat-icon",3),t._uU(2,"menu"),t.qZA()()}}function Pe(n,i){if(1&n&&(t.TgZ(0,"a",31),t._uU(1),t.qZA()),2&n){const e=i.$implicit,o=i.index,a=t.oxw();t.Q6J("active",a.activeLinkIndex===o)("routerLink",e.link),t.xp6(1),t.hij(" ",e.name," ")}}function Ne(n,i){1&n&&t._UZ(0,"mat-progress-bar",33)}function qe(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,Ne,1,0,"mat-progress-bar",32),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e.updatingResultsTable||e.calculatingResults||e.calculatingPermutations||e.updatingInventory||e.updatingManifest)}}function Je(n,i){1&n&&(t.TgZ(0,"mat-card",35),t._uU(1,"Updating the cached manifest. Please wait. "),t._UZ(2,"br"),t._uU(3,"If this takes too long, please logout and login again."),t.qZA())}function Ye(n,i){1&n&&(t.TgZ(0,"mat-card",35),t._uU(1,"Updating the cached inventory. Please wait."),t.qZA())}function Le(n,i){1&n&&(t.TgZ(0,"mat-card",35),t._uU(1,"Updating armor combinations. Please wait."),t.qZA())}function Fe(n,i){1&n&&(t.TgZ(0,"mat-card",35),t._uU(1,"Updating possible results. Please wait."),t.qZA())}function Qe(n,i){1&n&&(t.TgZ(0,"mat-card",35),t._uU(1,"Updating result table. Please wait."),t.qZA())}function Be(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,Je,4,0,"mat-card",34),t.YNc(2,Ye,2,0,"mat-card",34),t.YNc(3,Le,2,0,"mat-card",34),t.YNc(4,Fe,2,0,"mat-card",34),t.YNc(5,Qe,2,0,"mat-card",34),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e.updatingManifest),t.xp6(1),t.Q6J("ngIf",e.updatingInventory),t.xp6(1),t.Q6J("ngIf",e.calculatingPermutations),t.xp6(1),t.Q6J("ngIf",e.calculatingResults),t.xp6(1),t.Q6J("ngIf",e.updatingResultsTable)}}let Ve=(()=>{class n{constructor(e,o,a,s,l,d,u){this.status=e,this.breakpointObserver=o,this.inv=a,this.auth=s,this.router=l,this.characterStats=d,this.changelog=u,this.version="2.5.0",this.activeLinkIndex=0,this.navLinks=[{link:"/",name:"Home"},{link:"/cluster",name:"Clustering"},{link:"/help",name:"Help"},{link:"/investigate",name:"Armor Investigation"},{link:"/account",name:"Account"}],this.isHandset$=this.breakpointObserver.observe([mt.u3.Handset,mt.u3.Small,mt.u3.XSmall]).pipe((0,kt.U)(x=>x.matches),(0,Dt.d)())}ngOnInit(){this.activeLinkIndex=this.navLinks.indexOf(this.navLinks.find(e=>e.link===this.router.url)),this.router.events.subscribe(e=>{e instanceof I.m2&&(this.activeLinkIndex=this.navLinks.indexOf(this.navLinks.find(o=>o.link===this.router.url)))}),this.characterStats.loadCharacterStats()}refreshAll(e){var o=this;return(0,m.Z)(function*(){console.debug("Trigger refreshAll due to button press"),yield o.inv.refreshAll(e)})()}logout(){this.auth.logout()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(Tt),t.Y36(mt.Yg),t.Y36(K),t.Y36(L),t.Y36(I.F0),t.Y36(ae),t.Y36(Pt))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-app-v2-core"]],decls:59,vars:16,consts:[["fixedInViewport","","mode","over",1,"sidenav",3,"opened"],["drawer",""],["aria-label","Toggle sidenav","mat-stroked-button","","type","button",3,"click"],["aria-label","Side nav toggle icon"],["mat-list-item","",3,"active","routerLink","click",4,"ngFor","ngForOf"],["href","https://ko-fi.com/mijago","mat-list-item",""],["color","primary","mat-raised-button","","matTooltip","You like my work? This leads you to ko-fi.com, where you can easily support me!","target","_blank"],["inline",""],["mat-list-item","",3,"click"],["mat-raised-button",""],["id","header","role","heading"],["aria-label","Toggle sidenav","mat-icon-button","","type","button",3,"click",4,"ngIf"],["href","https://twitter.com/MijagoCoding/","matTooltip","Birb App","target","_blank"],["alt","Me on twitter","src","assets/logo-twitter.png",1,"logo-twitter"],["href","https://ko-fi.com/mijago","matTooltip","If you like my work, you can always buy me a coffee!","target","_blank"],["alt","Ko-Fi","src","assets/logo-kofi.png",1,"logo-twitter"],["href","http://discord.d2armorpicker.com/","matTooltip","Visit me at the development & support discord.","target","_blank"],["alt","Discord","src","assets/logo-discord.png",1,"logo-twitter"],[1,"header-spacer"],["fxHide.lt-md","true","fxShow","true"],["id","navbar","mat-tab-nav-bar",""],["mat-tab-link","",3,"active","routerLink",4,"ngFor","ngForOf"],["id","buttonContainer"],["fxShow","false","fxShow.gt-md","true","matTooltip","Click to show the changelog dialog.",1,"changelogText"],[3,"click"],["color","accent","fxHide.lt-md","true","fxShow","true","href","https://ko-fi.com/mijago","mat-stroked-button","","matTooltip","You like my work? This leads you to ko-fi.com, where you can easily support me!","target","_blank"],["aria-label","Refresh","mat-icon-button","","matTooltip","Reload all items from the API.",1,"example-icon",3,"click"],["aria-label","Logout","color","warn","mat-icon-button","","matTooltip","Logout",1,"example-icon",3,"click"],[4,"ngVar"],["mat-list-item","",3,"routerLink","click"],["aria-label","Toggle sidenav","mat-icon-button","","type","button",3,"click"],["mat-tab-link","",3,"active","routerLink"],["id","loading","mode","indeterminate",4,"ngIf"],["id","loading","mode","indeterminate"],["class","info",4,"ngIf"],[1,"info"]],template:function(e,o){if(1&e){const a=t.EpF();t.TgZ(0,"mat-sidenav",0,1),t.ALo(2,"async"),t.TgZ(3,"mat-toolbar")(4,"button",2),t.NdJ("click",function(){t.CHM(a);const l=t.MAs(1);return t.KtG(l.toggle())}),t.TgZ(5,"mat-icon",3),t._uU(6,"menu"),t.qZA(),t._uU(7," Close Menu "),t.qZA()(),t._UZ(8,"hr"),t.TgZ(9,"mat-nav-list"),t.YNc(10,Ee,2,4,"a",4),t._UZ(11,"hr"),t.TgZ(12,"a",5)(13,"a",6)(14,"mat-icon",7),t._uU(15,"attach_money"),t.qZA(),t._uU(16," Buy me a coffee! "),t.qZA()(),t.TgZ(17,"a",8),t.NdJ("click",function(){return o.changelog.openChangelogDialog()}),t.TgZ(18,"a",9),t._uU(19," Open changelog "),t.qZA()(),t._UZ(20,"hr"),t.qZA()(),t.TgZ(21,"mat-toolbar",10),t.YNc(22,Re,3,0,"button",11),t.ALo(23,"async"),t.TgZ(24,"span"),t._uU(25,"D2ArmorPicker "),t.TgZ(26,"small"),t._uU(27," by Mijago"),t.qZA(),t.TgZ(28,"a",12),t._UZ(29,"img",13),t.qZA(),t.TgZ(30,"a",14),t._UZ(31,"img",15),t.qZA(),t.TgZ(32,"a",16),t._UZ(33,"img",17),t.qZA()(),t._UZ(34,"span",18),t.TgZ(35,"div",19)(36,"nav",20),t.YNc(37,Pe,2,3,"a",21),t.qZA()(),t._UZ(38,"span",18),t.TgZ(39,"div",22)(40,"span",23)(41,"a",24),t.NdJ("click",function(){return o.changelog.openChangelogDialog()}),t._uU(42),t.qZA()(),t.TgZ(43,"a",25)(44,"mat-icon",7),t._uU(45,"attach_money"),t.qZA(),t._uU(46," Buy me a coffee! "),t.qZA(),t.TgZ(47,"button",26),t.NdJ("click",function(){return o.refreshAll(!0)}),t.TgZ(48,"mat-icon"),t._uU(49,"refresh"),t.qZA()(),t.TgZ(50,"button",27),t.NdJ("click",function(){return o.logout()}),t.TgZ(51,"mat-icon"),t._uU(52,"logout"),t.qZA()()()(),t._UZ(53,"router-outlet"),t.YNc(54,qe,2,1,"span",28),t.ALo(55,"async"),t.YNc(56,Be,6,5,"span",28),t.ALo(57,"async"),t._UZ(58,"app-changelog-dialog-controller")}2&e&&(t.Q6J("opened",!1),t.uIk("role",t.lcZ(2,8,o.isHandset$)?"dialog":"navigation"),t.xp6(10),t.Q6J("ngForOf",o.navLinks),t.xp6(12),t.Q6J("ngIf",t.lcZ(23,10,o.isHandset$)),t.xp6(15),t.Q6J("ngForOf",o.navLinks),t.xp6(5),t.hij("v",o.version,"\xa0"),t.xp6(12),t.Q6J("ngVar",t.lcZ(55,12,o.status.status)),t.xp6(2),t.Q6J("ngVar",t.lcZ(57,14,o.status.status)))},dependencies:[y.sg,y.O5,H.b8,g.lW,g.zs,A.a8,N.gM,ke.pW,j.Hw,W.Ye,bt.Hk,bt.Tg,le.BU,le.Nj,De.JX,I.lC,I.yS,Ct,Ue,y.Ov],styles:[".loading[_ngcontent-%COMP%]{cursor:progress}.info[_ngcontent-%COMP%]{z-index:1000;position:fixed;width:200px;left:50%;top:50px;transform:translate(-50%);border:antiquewhite 1px solid}.sidenav-container[_ngcontent-%COMP%]{position:fixed;top:0;left:0;height:100%;z-index:20}.sidenav[_ngcontent-%COMP%]{width:200px;position:fixed;top:0;left:0;height:100%;z-index:20}.sidenav[_ngcontent-%COMP%] .mat-toolbar[_ngcontent-%COMP%]{background:inherit}.sidenav[_ngcontent-%COMP%] .active[_ngcontent-%COMP%]{background-color:#ffffff12;color:#b8c4dc}.mat-toolbar.mat-primary[_ngcontent-%COMP%]{position:sticky;top:0;z-index:1}#header[_ngcontent-%COMP%]{position:relative;height:42px;margin-bottom:5px}#header[_ngcontent-%COMP%] .header-spacer[_ngcontent-%COMP%]{flex:1 1 auto}.changelogText[_ngcontent-%COMP%]{cursor:pointer}#loading[_ngcontent-%COMP%]{position:fixed;top:0;width:100%;z-index:1000}.d2ap-router-link[_ngcontent-%COMP%]{cursor:pointer}[_nghost-%COMP%] .mat-tab-link{min-width:75px;opacity:1}"]}),n})();var w=_(2143),ce=_(8739),Bt=_(6308),F=_(7340),nt=_(8929),Q=_(7625);function He(n,i){1&n&&(t.ynx(0),t._uU(1," Click on a row to expand it and to see the list of the items required for this build."),t._UZ(2,"br"),t.BQk())}function We(n,i){1&n&&(t.ynx(0),t.TgZ(1,"div",56),t._UZ(2,"img",57),t._uU(3,"\xa0 "),t.qZA(),t.TgZ(4,"span",58)(5,"b"),t._uU(6,"No combinations found."),t.qZA()(),t._uU(7," You should loosen your settings a bit. "),t.BQk())}function je(n,i){if(1&n&&(t.TgZ(0,"mat-icon",59,60),t.ALo(2,"number"),t._uU(3,"report_problem "),t.qZA()),2&n){const e=t.oxw();t.MGl("matTooltip","Note: To speed up the whole process, only ",t.lcZ(2,1,e.parsedResults)," results are listed in this table.\n If you need more entries, disable the limitation in the advanced settings.")}}function ze(n,i){if(1&n&&(t.TgZ(0,"mat-icon",59,60),t.ALo(2,"number"),t._uU(3,"report_problem "),t.qZA()),2&n){const e=t.oxw();t.MGl("matTooltip","Note: To prevent Out-Of-Memory crashes, only ",t.lcZ(2,1,e.parsedResults)," results are listed in this table.\n You should narrow down your settings a bit.")}}function Ge(n,i){1&n&&(t.TgZ(0,"mat-chip",61,60),t._uU(2,"No Exotic "),t.qZA())}function Ke(n,i){1&n&&(t.TgZ(0,"mat-chip",62,60),t._uU(2,"Exotic "),t.qZA())}function $e(n,i){1&n&&(t.TgZ(0,"mat-chip",63,60),t._uU(2," Multiple Exotics "),t.qZA())}function Xe(n,i){1&n&&(t.TgZ(0,"mat-chip",64,60),t._uU(2,"No stat mods "),t.qZA())}function tn(n,i){1&n&&(t.TgZ(0,"mat-chip",65,60),t._uU(2,"Reduce wasted stats "),t.qZA())}function en(n,i){1&n&&(t.TgZ(0,"mat-chip",66,60),t._uU(2,"Stat Mod Limitation "),t.qZA())}function nn(n,i){1&n&&(t.TgZ(0,"mat-chip",67,60),t._uU(2," Armor Perk or Slot "),t.qZA())}function on(n,i){1&n&&(t.TgZ(0,"mat-chip",68,60),t._uU(2,"Zero Waste "),t.qZA())}function an(n,i){1&n&&(t.TgZ(0,"mat-chip",69,60)(2,"mat-icon",70),t._uU(3,"report_problem"),t.qZA(),t._uU(4," \xa0Assume everything is artifice\xa0 "),t.TgZ(5,"mat-icon",70),t._uU(6,"report_problem"),t.qZA()())}function sn(n,i){1&n&&(t.TgZ(0,"mat-chip",71,60),t._uU(2," Masterworked Only "),t.qZA())}function rn(n,i){1&n&&(t.TgZ(0,"mat-chip",72,60),t._uU(2," Masterwork Assumption "),t.qZA())}function ln(n,i){1&n&&(t.TgZ(0,"mat-chip",73,60),t._uU(2," Include Collection Rolls "),t.qZA())}function cn(n,i){1&n&&(t.TgZ(0,"mat-chip",74,60),t._uU(2," Include Vendor Items "),t.qZA())}function mn(n,i){1&n&&(t.TgZ(0,"th",75),t._uU(1,"Mobility "),t.qZA())}function dn(n,i){if(1&n&&(t.TgZ(0,"td",76),t._uU(1),t._UZ(2,"img",77),t.qZA()),2&n){const e=i.$implicit,o=t.oxw();t.xp6(1),t.hij("",e.stats[o.ArmorStat.Mobility]," ")}}function un(n,i){1&n&&(t.TgZ(0,"th",78),t._uU(1," Resilience "),t.qZA())}function pn(n,i){if(1&n&&(t.TgZ(0,"td",76),t._uU(1),t._UZ(2,"img",79),t.qZA()),2&n){const e=i.$implicit,o=t.oxw();t.xp6(1),t.hij("",e.stats[o.ArmorStat.Resilience]," ")}}function gn(n,i){1&n&&(t.TgZ(0,"th",80),t._uU(1," Recovery "),t.qZA())}function _n(n,i){if(1&n&&(t.TgZ(0,"td",76),t._uU(1),t._UZ(2,"img",81),t.qZA()),2&n){const e=i.$implicit,o=t.oxw();t.xp6(1),t.hij("",e.stats[o.ArmorStat.Recovery]," ")}}function fn(n,i){1&n&&(t.TgZ(0,"th",82),t._uU(1," Discipline "),t.qZA())}function hn(n,i){if(1&n&&(t.TgZ(0,"td",76),t._uU(1),t._UZ(2,"img",83),t.qZA()),2&n){const e=i.$implicit,o=t.oxw();t.xp6(1),t.hij("",e.stats[o.ArmorStat.Discipline]," ")}}function xn(n,i){1&n&&(t.TgZ(0,"th",84),t._uU(1," Intellect "),t.qZA())}function Tn(n,i){if(1&n&&(t.TgZ(0,"td",76),t._uU(1),t._UZ(2,"img",85),t.qZA()),2&n){const e=i.$implicit,o=t.oxw();t.xp6(1),t.hij("",e.stats[o.ArmorStat.Intellect]," ")}}function yn(n,i){1&n&&(t.TgZ(0,"th",86),t._uU(1,"Strength "),t.qZA())}function bn(n,i){if(1&n&&(t.TgZ(0,"td",76),t._uU(1),t._UZ(2,"img",87),t.qZA()),2&n){const e=i.$implicit,o=t.oxw();t.xp6(1),t.hij("",e.stats[o.ArmorStat.Strength]," ")}}function Cn(n,i){1&n&&(t.TgZ(0,"th",88),t._uU(1," Used Mods "),t.qZA())}function vn(n,i){if(1&n&&(t.TgZ(0,"td",89),t._UZ(1,"app-table-mod-display",90),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.Q6J("mods",e.mods)("artifice",e.artifice)}}function An(n,i){1&n&&(t.TgZ(0,"th",91),t._uU(1," Exotic"),t.qZA())}function wn(n,i){if(1&n&&(t.ynx(0),t._UZ(1,"img",94,60)(3,"img",95),t.BQk()),2&n){const e=i.$implicit;t.xp6(1),t.s9C("matTooltip",e.name),t.MGl("src","https://bungie.net/",e.icon,"",t.LSH),t.xp6(2),t.MGl("src","https://bungie.net/",e.watermark,"",t.LSH)}}function Zn(n,i){1&n&&t._UZ(0,"img",96)}function Sn(n,i){if(1&n&&(t.TgZ(0,"td",89),t.YNc(1,wn,4,3,"ng-container",92),t.YNc(2,Zn,1,0,"img",93),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.Q6J("ngForOf",e.exotic),t.xp6(1),t.Q6J("ngIf",0===e.exotic.length)}}function In(n,i){1&n&&(t.TgZ(0,"th",91),t._uU(1,"Sources"),t.qZA())}function On(n,i){1&n&&t._UZ(0,"img",100)}function Mn(n,i){1&n&&t._UZ(0,"img",101)}function kn(n,i){if(1&n&&(t.TgZ(0,"td",89)(1,"span",97),t.YNc(2,On,1,0,"img",98),t.YNc(3,Mn,1,0,"img",99),t.qZA()()),2&n){const e=i.$implicit;t.xp6(2),t.Q6J("ngIf",!!e.usesCollectionRoll),t.xp6(1),t.Q6J("ngIf",!!e.usesVendorRoll)}}function Dn(n,i){1&n&&t._UZ(0,"th",91)}function Un(n,i){1&n&&(t.TgZ(0,"mat-icon",105),t._uU(1," expand_more "),t.qZA())}function En(n,i){1&n&&(t.TgZ(0,"mat-icon",106),t._uU(1," expand_less "),t.qZA())}function Rn(n,i){1&n&&(t.TgZ(0,"mat-icon",107,60),t._uU(2," report_problem "),t.qZA())}function Pn(n,i){if(1&n&&(t.TgZ(0,"td",89),t.YNc(1,Un,2,0,"mat-icon",102),t.YNc(2,En,2,0,"mat-icon",103),t.YNc(3,Rn,3,0,"mat-icon",104),t.qZA()),2&n){const e=i.$implicit,o=t.oxw();t.xp6(1),t.Q6J("ngIf",o.expandedElement!==e),t.xp6(1),t.Q6J("ngIf",o.expandedElement===e),t.xp6(1),t.Q6J("ngIf",o.checkIfAnyItemsMayBeInvalid(e))}}function Nn(n,i){1&n&&(t.TgZ(0,"th",108),t._uU(1,"Tiers "),t.qZA())}function qn(n,i){if(1&n&&(t.TgZ(0,"td",89),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.hij(" ",e.tiers," ")}}function Jn(n,i){1&n&&(t.TgZ(0,"th",109),t._uU(1,"Max Tiers "),t.qZA())}function Yn(n,i){if(1&n&&(t.TgZ(0,"td",89),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.hij(" ",e.tiers+(5-e.modCount)," ")}}function Ln(n,i){1&n&&(t.TgZ(0,"th",110),t._uU(1,"Wasted "),t.qZA())}function Fn(n,i){if(1&n&&(t.TgZ(0,"td",89),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.hij(" ",e.waste," ")}}function Qn(n,i){if(1&n&&(t.TgZ(0,"td",89)(1,"div",111),t._UZ(2,"app-expanded-result-content",112),t.qZA()()),2&n){const e=i.$implicit,o=t.oxw();t.uIk("colspan",o.shownColumns.length),t.xp6(1),t.Q6J("@detailExpand",e===o.expandedElement?"expanded":"collapsed"),t.xp6(1),t.Q6J("element",e)}}function Bn(n,i){1&n&&t._UZ(0,"tr",113)}function Vn(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"tr",114),t.NdJ("click",function(){const s=t.CHM(e).$implicit,l=t.oxw();return t.KtG(l.expandedElement=l.expandedElement===s?null:s)}),t.qZA()}if(2&n){const e=i.$implicit,o=t.oxw();t.ekj("example-expanded-row",o.expandedElement===e)}}function Hn(n,i){1&n&&t._UZ(0,"tr",115)}function Wn(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"mat-card-actions"),t._UZ(1,"span",116),t.TgZ(2,"button",117),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.saveBuilds())}),t._uU(3,"Download results as JSON"),t.qZA()()}}const jn=function(){return["expandedDetail"]},zn=function(){return[10,20,50]};var ht=(()=>{return(n=ht||(ht={}))[n.TRANSFER_NONE=0]="TRANSFER_NONE",n[n.WAITING_FOR_TRANSFER=1]="WAITING_FOR_TRANSFER",n[n.TRANSFERRING=2]="TRANSFERRING",n[n.TRANSFERRED=3]="TRANSFERRED",n[n.ERROR_DURING_TRANSFER=4]="ERROR_DURING_TRANSFER",ht;var n})();let me=(()=>{class n{constructor(e,o,a,s,l){this.inventory=e,this.db=o,this.bungieApi=a,this.config=s,this.status=l,this.ArmorStat=r.WB,this.StatModifier=r.iV,this._results=[],this._config_assumeLegendariesMasterworked=!1,this._config_assumeExoticsMasterworked=!1,this._config_assumeClassItemMasterworked=!1,this._config_enabledMods=[],this._config_limitParsedResults=!1,this._config_maximumStatMods=5,this._config_selectedExotics=[],this._config_tryLimitWastedStats=!1,this._config_onlyUseMasterworkedItems=!1,this._config_includeCollectionRolls=!1,this._config_includeVendorRolls=!1,this._config_onlyShowResultsWithNoWastedStats=!1,this._config_assumeEveryLegendaryIsArtifice=!1,this._config_modslotLimitation=[],this._config_armorPerkLimitation=[],this.tableDataSource=new w.by,this.paginator=null,this.sort=null,this.expandedElement=null,this.shownColumns=["exotic","mobility","resilience","recovery","discipline","intellect","strength","tiers","mods","dropdown"],this.selectedClass=U.None,this.totalTime=0,this.itemCount=0,this.totalResults=0,this.parsedResults=0,this.ngUnsubscribe=new nt.xQ}ngOnInit(){var e=this;this.config.configuration.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(o=>{this.selectedClass=o.characterClass,this._config_assumeLegendariesMasterworked=o.assumeLegendariesMasterworked,this._config_assumeExoticsMasterworked=o.assumeExoticsMasterworked,this._config_assumeClassItemMasterworked=o.assumeClassItemMasterworked,this._config_tryLimitWastedStats=o.tryLimitWastedStats,this._config_enabledMods=o.enabledMods||[],this._config_limitParsedResults=o.limitParsedResults,this._config_maximumStatMods=o.maximumStatMods,this._config_onlyUseMasterworkedItems=o.onlyUseMasterworkedItems,this._config_includeCollectionRolls=o.includeCollectionRolls,this._config_includeVendorRolls=o.includeVendorRolls,this._config_onlyShowResultsWithNoWastedStats=o.onlyShowResultsWithNoWastedStats,this._config_assumeEveryLegendaryIsArtifice=o.assumeEveryLegendaryIsArtifice,this._config_selectedExotics=o.selectedExotics,this._config_armorPerkLimitation=Object.entries(o.armorPerks).filter(s=>s[1].value!=r.Pn.None).map(s=>s[1]),this._config_modslotLimitation=Object.entries(o.maximumModSlots).filter(s=>s[1].value<5).map(s=>s[1]);let a=["exotic","mobility","resilience","recovery","discipline","intellect","strength",o.showPotentialTierColumn?"potential_tiers":"tiers","mods"];o.showWastedStatsColumn&&a.push("waste"),(o.includeVendorRolls||o.includeCollectionRolls)&&a.push("source"),a.push("dropdown"),this.shownColumns=a}),this.inventory.armorResults.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(function(){var o=(0,m.Z)(function*(a){e._results=a.results,e.itemCount=a.itemCount,e.totalTime=a.totalTime,e.totalResults=a.totalResults,e.parsedResults=e._results.length,e.status.modifyStatus(s=>s.updatingResultsTable=!0),yield e.updateData(),e.status.modifyStatus(s=>s.updatingResultsTable=!1)});return function(a){return o.apply(this,arguments)}}()),this.tableDataSource.paginator=this.paginator,this.tableDataSource.sort=this.sort,this.tableDataSource.sortingDataAccessor=(o,a)=>{switch(a){case"Mobility":return o.stats[r.WB.Mobility];case"Resilience":return o.stats[r.WB.Resilience];case"Recovery":return o.stats[r.WB.Recovery];case"Discipline":return o.stats[r.WB.Discipline];case"Intellect":return o.stats[r.WB.Intellect];case"Strength":return o.stats[r.WB.Strength];case"Tiers":return o.tiers;case"Max Tiers":return 10*(o.tiers+(5-o.modCount));case"Waste":return o.waste;case"Mods":return 100*o.modCount+o.modCost}return 0}}updateData(){var e=this;return(0,m.Z)(function*(){console.time("Update Table Data"),e.tableDataSource.paginator=e.paginator,e.tableDataSource.sort=e.sort,e.tableDataSource.data=e._results,console.timeEnd("Update Table Data")})()}checkIfAnyItemsMayBeInvalid(e){return(e?.items.filter(o=>o.filter(a=>a.mayBeBugged).length>0).length||0)>0}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}saveBuilds(){let e={configCompressed:this.config.getCurrentConfigBase64Compressed(),config:this.config.readonlyConfigurationSnapshot,results:this._results.map(l=>{let d=Object.assign({},l);return d.items=d.items.map(u=>({hash:u[0].hash,instance:u[0].itemInstanceId})),delete d.exotic,d})};document.createElement("a").download="builds.json";const a=window.URL.createObjectURL(new Blob([JSON.stringify(e,null,2)])),s=document.createElement("a");s.href=a,s.setAttribute("download","d2ap_results.json"),document.body.appendChild(s),s.click()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(K),t.Y36(et),t.Y36(Qt),t.Y36(B),t.Y36(Tt))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-results"]],viewQuery:function(e,o){if(1&e&&(t.Gf(ce.NW,5),t.Gf(Bt.YE,5)),2&e){let a;t.iGM(a=t.CRH())&&(o.paginator=a.first),t.iGM(a=t.CRH())&&(o.sort=a.first)}},decls:95,vars:34,consts:[["id","card-results"],[4,"ngIf"],["fxLayout","row","fxLayoutAlign","start center","fxLayoutGap","5px",1,"config-summary-box"],["appearance","outline","fxFlex","",1,"info-box"],["matInput","","readonly","",3,"value"],["class","report-problem-icon","matSuffix","",3,"matTooltip",4,"ngIf"],["appearance","outline","disabled","",1,"config-summary-box"],["matInput","","readonly","","value","\xa0",1,"hidden-input"],["aria-label","Configuration Summary"],["disableRipple","","matTooltip","This setting enforces that all exotics are ignored.",4,"ngIf"],["disableRipple","","matTooltip","This setting enforces that only one specific exotic is used.",4,"ngIf"],["disableRipple","","matTooltip","The tool will try to fulfill your settings for all the selected exotics. If you select exotics in different slots then it will search for legendary items to allow hotswapping with the same stats.",4,"ngIf"],["disableRipple","","matTooltip","You enforced that no stat mods are used.",4,"ngIf"],["disableRipple","","matTooltip","The tool will add minor stat mods to reduce wasted stats.",4,"ngIf"],["disableRipple","","matTooltip","This setting limits available stat mod types, like major Intellect or Recovery.",4,"ngIf"],["disableRipple","","matTooltip","This setting enforces an specific armor perk or modslot for a specific armor slot.",4,"ngIf"],["disableRipple","","matTooltip","This setting means that only builds with no wasted stats are shown.","selected","",4,"ngIf"],["disableRipple","","matTooltip","EVERY legendary is assumed to be artifice.","selected","","color","warn",4,"ngIf"],["disableRipple","","matTooltip","This setting means that only armor pieces are used that are already masterworked.","selected","",4,"ngIf"],["disableRipple","","matTooltip","Some masterwork assumptions are in place. This means that you may have to masterwork items. Look at your advanced settings to see which ones are activated.",4,"ngIf"],["disableRipple","","matTooltip","Collection Exotic rolls will be included in the search.",4,"ngIf"],["disableRipple","","matTooltip","Currently available Vendor items will be included in the search.",4,"ngIf"],[1,"hint-text"],["aria-hidden","false","inline",""],["mat-table","","matSort","","matSortActive","Mods","matSortDirection","asc","multiTemplateDataRows","",1,"result-table",3,"dataSource"],["matColumnDef","mobility"],["mat-header-cell","","mat-sort-header","Mobility","matTooltip","The mobility of this armor combination.",4,"matHeaderCellDef"],["class","statColumn","mat-cell","",4,"matCellDef"],["matColumnDef","resilience"],["mat-header-cell","","mat-sort-header","Resilience","matTooltip","The resilience of this armor combination.",4,"matHeaderCellDef"],["matColumnDef","recovery"],["mat-header-cell","","mat-sort-header","Recovery","matTooltip","The recovery of this armor combination.",4,"matHeaderCellDef"],["matColumnDef","discipline"],["mat-header-cell","","mat-sort-header","Discipline","matTooltip","The discipline of this armor combination.",4,"matHeaderCellDef"],["matColumnDef","intellect"],["mat-header-cell","","mat-sort-header","Intellect","matTooltip","The intellect of this armor combination.",4,"matHeaderCellDef"],["matColumnDef","strength"],["mat-header-cell","","mat-sort-header","Strength","matTooltip","The strength of this armor combination.",4,"matHeaderCellDef"],["matColumnDef","mods"],["mat-header-cell","","mat-sort-header","Mods","matTooltip","The amount of mods required for each combination. Sorting after this takes the mod cost into account.",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","exotic"],["mat-header-cell","",4,"matHeaderCellDef"],["matColumnDef","source"],["matColumnDef","dropdown"],["matColumnDef","tiers"],["mat-header-cell","","mat-sort-header","Tiers","matTooltip","The amount of Tiers in this build. A tier is each successful 10-step of any stat.",4,"matHeaderCellDef"],["matColumnDef","potential_tiers"],["mat-header-cell","","mat-sort-header","Max Tiers","matTooltip","The potential reachable stat tiers with all N stat mods used. As of now, this does NOT take mod filters into consideration.",4,"matHeaderCellDef"],["matColumnDef","waste"],["mat-header-cell","","mat-sort-header","Waste","matTooltip","How many points are wasted. Any stat not ending in 0 adds to this value.",4,"matHeaderCellDef"],["matColumnDef","expandedDetail"],["mat-header-row","",4,"matHeaderRowDef"],["class","example-element-row","mat-row","",3,"example-expanded-row","click",4,"matRowDef","matRowDefColumns"],["class","example-detail-row","mat-row","",4,"matRowDef","matRowDefColumns"],["aria-label","Select page of periodic elements","pageSize","20","showFirstLastButtons","",3,"pageSizeOptions"],[1,"no-found-sadcat-container"],["src","assets/status/emoji/sadcat.png",1,"no-found-sadcat"],[1,"warning-none-found"],["matSuffix","",1,"report-problem-icon",3,"matTooltip"],["tooltip","matTooltip"],["disableRipple","","matTooltip","This setting enforces that all exotics are ignored."],["disableRipple","","matTooltip","This setting enforces that only one specific exotic is used."],["disableRipple","","matTooltip","The tool will try to fulfill your settings for all the selected exotics. If you select exotics in different slots then it will search for legendary items to allow hotswapping with the same stats."],["disableRipple","","matTooltip","You enforced that no stat mods are used."],["disableRipple","","matTooltip","The tool will add minor stat mods to reduce wasted stats."],["disableRipple","","matTooltip","This setting limits available stat mod types, like major Intellect or Recovery."],["disableRipple","","matTooltip","This setting enforces an specific armor perk or modslot for a specific armor slot."],["disableRipple","","matTooltip","This setting means that only builds with no wasted stats are shown.","selected",""],["disableRipple","","matTooltip","EVERY legendary is assumed to be artifice.","selected","","color","warn"],["inline","",2,"height","100%"],["disableRipple","","matTooltip","This setting means that only armor pieces are used that are already masterworked.","selected",""],["disableRipple","","matTooltip","Some masterwork assumptions are in place. This means that you may have to masterwork items. Look at your advanced settings to see which ones are activated."],["disableRipple","","matTooltip","Collection Exotic rolls will be included in the search."],["disableRipple","","matTooltip","Currently available Vendor items will be included in the search."],["mat-header-cell","","mat-sort-header","Mobility","matTooltip","The mobility of this armor combination."],["mat-cell","",1,"statColumn"],["alt","Mobility","src","https://www.bungie.net/common/destiny2_content/icons/e26e0e93a9daf4fdd21bf64eb9246340.png",1,"statIcon"],["mat-header-cell","","mat-sort-header","Resilience","matTooltip","The resilience of this armor combination."],["alt","Resilience","src","https://www.bungie.net/common/destiny2_content/icons/202ecc1c6febeb6b97dafc856e863140.png",1,"statIcon"],["mat-header-cell","","mat-sort-header","Recovery","matTooltip","The recovery of this armor combination."],["alt","Recovery","src","https://www.bungie.net/common/destiny2_content/icons/128eee4ee7fc127851ab32eac6ca91cf.png",1,"statIcon"],["mat-header-cell","","mat-sort-header","Discipline","matTooltip","The discipline of this armor combination."],["alt","Discipline","src","https://www.bungie.net/common/destiny2_content/icons/79be2d4adef6a19203f7385e5c63b45b.png",1,"statIcon"],["mat-header-cell","","mat-sort-header","Intellect","matTooltip","The intellect of this armor combination."],["alt","Intellect","src","https://www.bungie.net/common/destiny2_content/icons/d1c154469670e9a592c9d4cbdcae5764.png",1,"statIcon"],["mat-header-cell","","mat-sort-header","Strength","matTooltip","The strength of this armor combination."],["alt","Strength","src","https://www.bungie.net/common/destiny2_content/icons/ea5af04ccd6a3470a44fd7bb0f66e2f7.png",1,"statIcon"],["mat-header-cell","","mat-sort-header","Mods","matTooltip","The amount of mods required for each combination. Sorting after this takes the mod cost into account."],["mat-cell",""],[1,"modPreview",3,"mods","artifice"],["mat-header-cell",""],[4,"ngFor","ngForOf"],["class","itemIcon","src","https://www.bungie.net/common/destiny2_content/icons/b4d05ef69d0c3227a7d4f7f35bbc2848.png",4,"ngIf"],[1,"itemIcon",3,"matTooltip","src"],[1,"itemIconWatermark",3,"src"],["src","https://www.bungie.net/common/destiny2_content/icons/b4d05ef69d0c3227a7d4f7f35bbc2848.png",1,"itemIcon"],[1,"source-column"],["matTooltip","This build uses a collection exotic. You have to collect it before you can use it.","class","collectionIcon","src","https://www.bungie.net/common/destiny2_content/icons/1d01287dd47af97fef16fa6acbac23ba.png",4,"ngIf"],["matTooltip","This build uses a vendor item. You have to collect it before you can use it.","class","vendorIcon","src","https://www.bungie.net/common/destiny2_content/icons/8ef4b5bd32277dba9aee7c368404ad5d.jpg",4,"ngIf"],["matTooltip","This build uses a collection exotic. You have to collect it before you can use it.","src","https://www.bungie.net/common/destiny2_content/icons/1d01287dd47af97fef16fa6acbac23ba.png",1,"collectionIcon"],["matTooltip","This build uses a vendor item. You have to collect it before you can use it.","src","https://www.bungie.net/common/destiny2_content/icons/8ef4b5bd32277dba9aee7c368404ad5d.jpg",1,"vendorIcon"],["matTooltip","Click to show details for this build.",4,"ngIf"],["matTooltip","Click to hide details for this build.",4,"ngIf"],["aria-hidden","false","aria-label","Error","class","report-problem-icon","inline","","matTooltip","The stats of this build may be incorrect. Make sure that you remove every positive or negative stat modifier from the marked items.",4,"ngIf"],["matTooltip","Click to show details for this build."],["matTooltip","Click to hide details for this build."],["aria-hidden","false","aria-label","Error","inline","","matTooltip","The stats of this build may be incorrect. Make sure that you remove every positive or negative stat modifier from the marked items.",1,"report-problem-icon"],["mat-header-cell","","mat-sort-header","Tiers","matTooltip","The amount of Tiers in this build. A tier is each successful 10-step of any stat."],["mat-header-cell","","mat-sort-header","Max Tiers","matTooltip","The potential reachable stat tiers with all N stat mods used. As of now, this does NOT take mod filters into consideration."],["mat-header-cell","","mat-sort-header","Waste","matTooltip","How many points are wasted. Any stat not ending in 0 adds to this value."],[1,"example-element-detail"],[3,"element"],["mat-header-row",""],["mat-row","",1,"example-element-row",3,"click"],["mat-row","",1,"example-detail-row"],[1,"flex-spacer"],["mat-raised-button","","color","primary",3,"click"]],template:function(e,o){1&e&&(t.TgZ(0,"mat-card",0)(1,"mat-card-title"),t._uU(2,"Results"),t.qZA(),t.TgZ(3,"mat-card-subtitle"),t.YNc(4,He,3,0,"ng-container",1),t.YNc(5,We,8,0,"ng-container",1),t.qZA(),t.TgZ(6,"mat-card-content")(7,"div")(8,"div",2)(9,"mat-form-field",3)(10,"mat-label"),t._uU(11,"Items Used"),t.qZA(),t._UZ(12,"input",4),t.ALo(13,"number"),t.qZA(),t.TgZ(14,"mat-form-field",3)(15,"mat-label"),t._uU(16,"Combinations generated"),t.qZA(),t._UZ(17,"input",4),t.ALo(18,"number"),t.YNc(19,je,4,3,"mat-icon",5),t.YNc(20,ze,4,3,"mat-icon",5),t.qZA(),t.TgZ(21,"mat-form-field",3)(22,"mat-label"),t._uU(23,"Time required"),t.qZA(),t._UZ(24,"input",4),t.ALo(25,"number"),t.qZA()(),t.TgZ(26,"mat-form-field",6)(27,"mat-label"),t._uU(28,"Summary of important configuration choices"),t.qZA(),t._UZ(29,"input",7),t.TgZ(30,"mat-chip-list",8),t.YNc(31,Ge,3,0,"mat-chip",9),t.YNc(32,Ke,3,0,"mat-chip",10),t.YNc(33,$e,3,0,"mat-chip",11),t.YNc(34,Xe,3,0,"mat-chip",12),t.YNc(35,tn,3,0,"mat-chip",13),t.YNc(36,en,3,0,"mat-chip",14),t.YNc(37,nn,3,0,"mat-chip",15),t.YNc(38,on,3,0,"mat-chip",16),t.YNc(39,an,7,0,"mat-chip",17),t.YNc(40,sn,3,0,"mat-chip",18),t.YNc(41,rn,3,0,"mat-chip",19),t.YNc(42,ln,3,0,"mat-chip",20),t.YNc(43,cn,3,0,"mat-chip",21),t.qZA()(),t.TgZ(44,"div",22)(45,"mat-icon",23),t._uU(46,"info"),t.qZA(),t._uU(47," Note that you can change the sort column and order of the table by clicking on the headers. "),t.qZA(),t.TgZ(48,"table",24),t.ynx(49,25),t.YNc(50,mn,2,0,"th",26),t.YNc(51,dn,3,1,"td",27),t.BQk(),t.ynx(52,28),t.YNc(53,un,2,0,"th",29),t.YNc(54,pn,3,1,"td",27),t.BQk(),t.ynx(55,30),t.YNc(56,gn,2,0,"th",31),t.YNc(57,_n,3,1,"td",27),t.BQk(),t.ynx(58,32),t.YNc(59,fn,2,0,"th",33),t.YNc(60,hn,3,1,"td",27),t.BQk(),t.ynx(61,34),t.YNc(62,xn,2,0,"th",35),t.YNc(63,Tn,3,1,"td",27),t.BQk(),t.ynx(64,36),t.YNc(65,yn,2,0,"th",37),t.YNc(66,bn,3,1,"td",27),t.BQk(),t.ynx(67,38),t.YNc(68,Cn,2,0,"th",39),t.YNc(69,vn,2,2,"td",40),t.BQk(),t.ynx(70,41),t.YNc(71,An,2,0,"th",42),t.YNc(72,Sn,3,2,"td",40),t.BQk(),t.ynx(73,43),t.YNc(74,In,2,0,"th",42),t.YNc(75,kn,4,2,"td",40),t.BQk(),t.ynx(76,44),t.YNc(77,Dn,1,0,"th",42),t.YNc(78,Pn,4,3,"td",40),t.BQk(),t.ynx(79,45),t.YNc(80,Nn,2,0,"th",46),t.YNc(81,qn,2,1,"td",40),t.BQk(),t.ynx(82,47),t.YNc(83,Jn,2,0,"th",48),t.YNc(84,Yn,2,1,"td",40),t.BQk(),t.ynx(85,49),t.YNc(86,Ln,2,0,"th",50),t.YNc(87,Fn,2,1,"td",40),t.BQk(),t.ynx(88,51),t.YNc(89,Qn,3,3,"td",40),t.BQk(),t.YNc(90,Bn,1,0,"tr",52),t.YNc(91,Vn,1,2,"tr",53),t.YNc(92,Hn,1,0,"tr",54),t.qZA(),t._UZ(93,"mat-paginator",55),t.qZA()(),t.YNc(94,Wn,4,0,"mat-card-actions",1),t.qZA()),2&e&&(t.xp6(4),t.Q6J("ngIf",o.totalResults>0),t.xp6(1),t.Q6J("ngIf",0===o.totalResults),t.xp6(7),t.s9C("value",t.lcZ(13,26,o.itemCount)),t.xp6(5),t.s9C("value",t.lcZ(18,28,o.totalResults)),t.xp6(2),t.Q6J("ngIf",o.parsedResults!==o.totalResults&&5e4===o.parsedResults),t.xp6(1),t.Q6J("ngIf",o.parsedResults!==o.totalResults&&1e6===o.parsedResults),t.xp6(4),t.MGl("value","",t.lcZ(25,30,o.totalTime),"ms"),t.xp6(7),t.Q6J("ngIf",o._config_selectedExotics.indexOf(-1)>-1),t.xp6(1),t.Q6J("ngIf",1===o._config_selectedExotics.length&&-1===o._config_selectedExotics.indexOf(-1)),t.xp6(1),t.Q6J("ngIf",o._config_selectedExotics.length>1&&-1===o._config_selectedExotics.indexOf(-1)),t.xp6(1),t.Q6J("ngIf",0===o._config_maximumStatMods),t.xp6(1),t.Q6J("ngIf",o._config_tryLimitWastedStats),t.xp6(1),t.Q6J("ngIf",o._config_modslotLimitation.length>0),t.xp6(1),t.Q6J("ngIf",o._config_armorPerkLimitation.length>0),t.xp6(1),t.Q6J("ngIf",o._config_onlyShowResultsWithNoWastedStats),t.xp6(1),t.Q6J("ngIf",o._config_assumeEveryLegendaryIsArtifice),t.xp6(1),t.Q6J("ngIf",o._config_onlyUseMasterworkedItems),t.xp6(1),t.Q6J("ngIf",!o._config_onlyUseMasterworkedItems&&(o._config_assumeLegendariesMasterworked||o._config_assumeExoticsMasterworked||o._config_assumeClassItemMasterworked)),t.xp6(1),t.Q6J("ngIf",o._config_includeCollectionRolls),t.xp6(1),t.Q6J("ngIf",o._config_includeVendorRolls),t.xp6(5),t.Q6J("dataSource",o.tableDataSource),t.xp6(42),t.Q6J("matHeaderRowDef",o.shownColumns),t.xp6(1),t.Q6J("matRowDefColumns",o.shownColumns),t.xp6(1),t.Q6J("matRowDefColumns",t.DdM(32,jn)),t.xp6(1),t.Q6J("pageSizeOptions",t.DdM(33,zn)),t.xp6(1),t.Q6J("ngIf",o.totalResults>0))},styles:["#card-results[_ngcontent-%COMP%]{display:inline-block;vertical-align:top;white-space:normal;width:-moz-fit-content;width:fit-content;margin-left:3px}.statColumn[_ngcontent-%COMP%]{position:relative}.statIcon[_ngcontent-%COMP%]{position:absolute;height:22px;margin-left:2px;top:11px}.itemIcon[_ngcontent-%COMP%]{width:32px;height:32px;margin-right:3px}.itemIconWatermark[_ngcontent-%COMP%]{width:32px;height:32px;margin-right:3px;margin-left:-35px;pointer-events:none}.source-column[_ngcontent-%COMP%]{float:left}.source-column[_ngcontent-%COMP%] img[_ngcontent-%COMP%]:nth-of-type(2){margin-top:5px;margin-bottom:-3px}.collectionIcon[_ngcontent-%COMP%], .vendorIcon[_ngcontent-%COMP%]{width:32px;margin-left:3px;display:block}tr.example-element-row[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-bottom-width:0}tr.example-detail-row[_ngcontent-%COMP%]{height:0!important}.example-element-detail[_ngcontent-%COMP%]{overflow:hidden;display:flex}.report-problem-icon[_ngcontent-%COMP%]{color:#f08080}.hint-text[_ngcontent-%COMP%]{font-size:small;color:#d5d5d5}[_nghost-%COMP%] .info-box .mat-form-field-wrapper{padding-bottom:5px!important;cursor:default}.hidden-input[_ngcontent-%COMP%]{display:none}.config-summary-box[_ngcontent-%COMP%]{width:100%}.result-table[_ngcontent-%COMP%] tr.example-element-row[_ngcontent-%COMP%]{cursor:pointer}.mat-row[_ngcontent-%COMP%]:nth-child(4n+3){background-color:#7474741a}.warning-none-found[_ngcontent-%COMP%]{color:red}.no-found-sadcat-container[_ngcontent-%COMP%]{width:20px;position:relative;display:inline-block}.no-found-sadcat[_ngcontent-%COMP%]{position:absolute;width:18px;top:-1px}.cdk-column-exotic[_ngcontent-%COMP%]{min-width:45px}.cdk-column-waste[_ngcontent-%COMP%]{padding-left:5px}"],data:{animation:[(0,F.X$)("detailExpand",[(0,F.SB)("collapsed, void",(0,F.oB)({height:"0px"})),(0,F.SB)("expanded",(0,F.oB)({height:"*"})),(0,F.eR)("expanded <=> collapsed",(0,F.jt)("225ms cubic-bezier(0.4, 0.0, 0.2, 1)")),(0,F.eR)("expanded <=> void",(0,F.jt)("225ms cubic-bezier(0.4, 0.0, 0.2, 1)"))])]}}),n})();const Gn={2:{shards:1,glimmer:500,core:0,prism:0,ascshard:0},3:{shards:1,glimmer:500,core:0,prism:0,ascshard:0},4:{shards:2,glimmer:500,core:0,prism:0,ascshard:0},5:{shards:2,glimmer:1e3,core:0,prism:0,ascshard:0},6:{shards:3,glimmer:1e3,core:1,prism:0,ascshard:0},7:{shards:3,glimmer:2500,core:2,prism:0,ascshard:0},8:{shards:4,glimmer:3e3,core:0,prism:1,ascshard:0},9:{shards:4,glimmer:3e3,core:0,prism:2,ascshard:0},10:{shards:5,glimmer:4e3,core:0,prism:0,ascshard:1}},Kn={2:{shards:1,glimmer:500,core:0,prism:0,ascshard:0},3:{shards:2,glimmer:1e3,core:0,prism:0,ascshard:0},4:{shards:2,glimmer:1e3,core:0,prism:0,ascshard:0},5:{shards:3,glimmer:2500,core:0,prism:0,ascshard:0},6:{shards:3,glimmer:3e3,core:2,prism:0,ascshard:0},7:{shards:4,glimmer:3e3,core:3,prism:0,ascshard:0},8:{shards:4,glimmer:4e3,core:0,prism:2,ascshard:0},9:{shards:5,glimmer:4e3,core:0,prism:3,ascshard:0},10:{shards:6,glimmer:5e3,core:0,prism:0,ascshard:3}};var Vt=_(7009),$n=_(1572),wt=_(4425),Nt=_(4080);const Xn={[k.Inventory]:"Inventory",[k.Collections]:"Collections",[k.Vendor]:"Vendor"};let to=(()=>{class n{constructor(e){this.database=e}transform(e){var o=this;return(0,m.Z)(function*(){return(yield o.database.vendorNames.where("vendorId").equals(e).first())?.vendorName??"Unknown Vendor"})()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(et,16))},n.\u0275pipe=t.Yjl({name:"getVendorName",type:n,pure:!0}),n})(),eo=(()=>{class n{constructor(){}transform(e){if(!e||!e.startsWith("v"))return-1;const o=parseInt(e.substring(1).split("-")[0]);return isNaN(o)?-1:o}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275pipe=t.Yjl({name:"getVendorIdFromItemId",type:n,pure:!0}),n})();function no(n,i){if(1&n&&(t.TgZ(0,"tr")(1,"td"),t._uU(2,"Vendor"),t.qZA(),t.TgZ(3,"td",2),t._uU(4),t.ALo(5,"async"),t.ALo(6,"getVendorName"),t.ALo(7,"getVendorIdFromItemId"),t.qZA()()),2&n){const e=t.oxw();t.xp6(4),t.Oqu(t.lcZ(5,1,t.lcZ(6,3,t.lcZ(7,5,e.itemTooltip.itemInstanceId))))}}function oo(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw().$implicit;t.xp6(1),t.Oqu(e)}}function io(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw().$implicit;t.xp6(1),t.Oqu(e+2)}}function ao(n,i){if(1&n&&(t.TgZ(0,"div",8),t._uU(1,"\xa0"),t.qZA()),2&n){const e=t.oxw(2);t.Udp("width",e.getWidth(2))}}function so(n,i){if(1&n&&(t.TgZ(0,"tr")(1,"td"),t._uU(2),t.qZA(),t.TgZ(3,"td"),t.YNc(4,oo,2,1,"span",3),t.YNc(5,io,2,1,"span",3),t.qZA(),t.TgZ(6,"td")(7,"div",5)(8,"div",6),t._uU(9,"\xa0"),t.qZA(),t.YNc(10,ao,2,2,"div",7),t.qZA()()()),2&n){const e=i.$implicit,o=i.index,a=t.oxw();t.xp6(2),t.Oqu(a.getArmorStatName(o)),t.xp6(2),t.Q6J("ngIf",!(null!=a.itemTooltip&&a.itemTooltip.masterworked)),t.xp6(1),t.Q6J("ngIf",null==a.itemTooltip?null:a.itemTooltip.masterworked),t.xp6(3),t.Udp("width",a.getWidth(e)),t.xp6(2),t.Q6J("ngIf",null==a.itemTooltip?null:a.itemTooltip.masterworked)}}let ro=(()=>{class n{constructor(){}getSourceText(){return this.itemTooltip?Xn[this.itemTooltip.source]:""}getArmorStatName(e){return r.Mi[e]}getWidth(e){return Math.min(100,e/32*100)+"%"}getTotalStats(){return this.itemTooltip?.stats.reduce((e,o)=>e+o,0)||0}get isVendorItem(){return this.itemTooltip?.source===k.Vendor}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-armor-tooltip-component"]],inputs:{itemTooltip:"itemTooltip"},decls:21,vars:5,consts:[[1,"tooltip-container"],["colspan","3"],["colspan","2"],[4,"ngIf"],[4,"ngFor","ngForOf"],[1,"stat-display"],[1,"stat-display-bar"],["class","stat-display-bar masterwork",3,"width",4,"ngIf"],[1,"stat-display-bar","masterwork"]],template:function(e,o){1&e&&(t.TgZ(0,"div")(1,"div",0)(2,"table")(3,"tr")(4,"td",1),t._uU(5),t.qZA()(),t.TgZ(6,"tr")(7,"td"),t._uU(8,"Source"),t.qZA(),t.TgZ(9,"td",2),t._uU(10),t.qZA()(),t.YNc(11,no,8,7,"tr",3),t.TgZ(12,"tr")(13,"td"),t._uU(14,"Current stats:"),t.qZA()(),t.YNc(15,so,11,6,"tr",4),t.TgZ(16,"tr")(17,"td"),t._uU(18,"Total base stats:"),t.qZA(),t.TgZ(19,"td"),t._uU(20),t.qZA()()()()()),2&e&&(t.xp6(5),t.Oqu(null==o.itemTooltip?null:o.itemTooltip.name),t.xp6(5),t.Oqu(o.getSourceText()),t.xp6(1),t.Q6J("ngIf",o.isVendorItem&&o.itemTooltip),t.xp6(4),t.Q6J("ngForOf",null==o.itemTooltip?null:o.itemTooltip.stats),t.xp6(5),t.hij(" ",o.getTotalStats()," "))},dependencies:[y.sg,y.O5,y.Ov,eo,to],styles:[".tooltip-container[_ngcontent-%COMP%]{border:1px solid gray;padding:1px 5px 4px;background:linear-gradient(#484848 0px,#2c2c2c 100%)}.stat-display[_ngcontent-%COMP%]{width:70px;height:20px;background-color:#2c2c2c}.stat-display-bar[_ngcontent-%COMP%]{height:100%;background-color:#a1a1a1;float:left}.masterwork[_ngcontent-%COMP%]{background-color:#eedb9e}"]}),n})();var pt=_(8184);let lo=(()=>{class n{constructor(e,o,a){this._overlay=e,this._overlayPositionBuilder=o,this._elementRef=a,this.showToolTip=!0}ngOnInit(){if(!this.showToolTip)return;const e=this._overlayPositionBuilder.flexibleConnectedTo(this._elementRef).withPositions([{originX:"center",originY:"bottom",overlayX:"center",overlayY:"top",offsetY:5},{originX:"center",originY:"top",overlayX:"center",overlayY:"bottom",offsetY:-5}]);this._overlayRef=this._overlay.create({positionStrategy:e}),this._overlayRef.addPanelClass("overlay-no-pointer-event")}show(){this._overlayRef&&!this._overlayRef.hasAttached()&&(this._overlayRef.attach(new Nt.C5(ro)).instance.itemTooltip=this.itemTooltip)}hide(){this.closeToolTip()}ngOnDestroy(){this.closeToolTip()}closeToolTip(){this._overlayRef&&this._overlayRef.detach()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(pt.aV),t.Y36(pt.wJ),t.Y36(t.SBq))},n.\u0275dir=t.lG2({type:n,selectors:[["","itemTooltip",""]],hostBindings:function(e,o){1&e&&t.NdJ("mouseenter",function(){return o.show()})("mouseleave",function(){return o.hide()})},inputs:{showToolTip:"showToolTip",itemTooltip:"itemTooltip",contentTemplate:"contentTemplate"}}),n})(),de=(()=>{class n{constructor(e){this.db=e,this.itemLookup=new Map}getItemCached(e){var o=this;return(0,m.Z)(function*(){if(o.itemLookup.has(e))return o.itemLookup.get(e)||void 0;const a=yield o.db.manifestArmor.where("hash").equals(e).first();return o.itemLookup.set(e,a),a})()}getExoticPerkDescription(e){var o=this;return(0,m.Z)(function*(){return e.exoticPerkHash?(yield o.getItemCached(e.exoticPerkHash))??null:null})()}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(et))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function co(n,i){if(1&n&&t._UZ(0,"img",6,7),2&n){const e=t.oxw(2);t.MGl("src","https://bungie.net/",e.item.icon,"",t.LSH),t.s9C("matTooltip",e.item.name)}}function mo(n,i){if(1&n&&t._UZ(0,"img",8),2&n){const e=t.oxw(2);t.MGl("src","https://bungie.net/",e.item.watermarkIcon,"",t.LSH)}}function uo(n,i){if(1&n&&t._UZ(0,"div",9),2&n){const e=t.oxw(2);t.ekj("vendor-item",e.isFromVendor)("collection-item",e.isFromCollection)}}function po(n,i){1&n&&t._UZ(0,"div",10)}function go(n,i){if(1&n&&(t.TgZ(0,"div",1),t.YNc(1,co,2,2,"img",2),t.YNc(2,mo,1,1,"img",3),t.YNc(3,uo,1,4,"div",4),t.YNc(4,po,1,0,"div",5),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngIf",e.item.icon),t.xp6(1),t.Q6J("ngIf",e.item.watermarkIcon),t.xp6(1),t.Q6J("ngIf",e.isFromVendor||e.isFromCollection),t.xp6(1),t.Q6J("ngIf",e.masterworked)}}let Ht=(()=>{class n{constructor(e){this.iconService=e,this.itemHash=0,this.masterworked=!1,this.source=k.Inventory,this.isFromVendor=!1,this.isFromCollection=!1,this.item=void 0}ngAfterViewInit(){var e=this;return(0,m.Z)(function*(){e.item=yield e.iconService.getItemCached(e.itemHash),e.isFromVendor=e.source===k.Vendor,e.isFromCollection=e.source===k.Collections})()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(de))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-item-icon"]],inputs:{itemHash:"itemHash",masterworked:"masterworked",source:"source"},decls:1,vars:1,consts:[["class","item-icon-container",4,"ngIf"],[1,"item-icon-container"],["class","item-icon",3,"src","matTooltip",4,"ngIf"],["class","item-icon-overlay",3,"src",4,"ngIf"],["class","item-source-overlay",3,"vendor-item","collection-item",4,"ngIf"],["class","item-icon-masterwork-overlay",4,"ngIf"],[1,"item-icon",3,"src","matTooltip"],["tooltip","matTooltip"],[1,"item-icon-overlay",3,"src"],[1,"item-source-overlay"],[1,"item-icon-masterwork-overlay"]],template:function(e,o){1&e&&t.YNc(0,go,5,4,"div",0),2&e&&t.Q6J("ngIf",o.item)},dependencies:[y.O5,N.gM],styles:["[_nghost-%COMP%]{height:22px;width:22px;display:block}.item-icon-masterwork-overlay[_ngcontent-%COMP%]{pointer-events:none;box-sizing:border-box;top:-1px;left:-1px;border-width:0;height:24px;width:24px;position:absolute;background-repeat:no-repeat;background-position:center;background-size:22px 22px;background-image:url(data:image/png;base64,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)}.item-icon-container[_ngcontent-%COMP%]{position:relative;transition:opacity .2s,transform .2s;width:100%;--icon-size: 22px}.item-icon-overlay[_ngcontent-%COMP%], .item-icon[_ngcontent-%COMP%]{position:absolute;left:0;top:0;width:100%;pointer-events:none}.item-source-overlay[_ngcontent-%COMP%]{position:absolute;left:0;top:0;width:0;pointer-events:none;border-top:calc(var(--icon-size) / 2) solid transparent;border-right:calc(var(--icon-size) / 2) solid transparent}.item-source-overlay.vendor-item[_ngcontent-%COMP%]{border-top-color:#00f}.item-source-overlay.collection-item[_ngcontent-%COMP%]{border-top-color:#90ee90}"]}),n})();function _o(n,i){if(1&n&&t._UZ(0,"img",5),2&n){const e=t.oxw(2);t.s9C("src",e.url,t.LSH)}}function fo(n,i){if(1&n&&(t.ynx(0),t._UZ(1,"img",2,3),t.YNc(3,_o,1,1,"img",4),t.BQk()),2&n){const e=t.oxw();t.xp6(1),t.s9C("matTooltip",e.name),t.xp6(2),t.Q6J("ngIf",e.customIconMods.indexOf(e.perk)>-1)}}function ho(n,i){if(1&n&&(t.ynx(0),t._UZ(1,"img",6,3),t.BQk()),2&n){const e=t.oxw();t.xp6(1),t.s9C("matTooltip",e.name),t.s9C("src",e.url,t.LSH)}}let Wt=(()=>{class n{constructor(){this.ArmorPerkOrSlot=r.Pn,this.customIconMods=[r.Pn.SlotKingsFall,r.Pn.SlotCrotasEnd,r.Pn.SlotArtifice,r.Pn.SlotVowOfTheDisciple,r.Pn.SlotRootOfNightmares],this.perk=r.Pn.None}get name(){return r.cM[this.perk]}get url(){return r.X9[this.perk]}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-armor-perk-icon"]],inputs:{perk:"perk"},decls:3,vars:2,consts:[[1,"overlay-icon-container"],[4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/b4d05ef69d0c3227a7d4f7f35bbc2848.png",1,"element-icon",3,"matTooltip"],["tooltip","matTooltip"],["class","overlay-icon",3,"src",4,"ngIf"],[1,"overlay-icon",3,"src"],[1,"element-icon",3,"matTooltip","src"]],template:function(e,o){1&e&&(t.TgZ(0,"span",0),t.YNc(1,fo,4,2,"ng-container",1),t.YNc(2,ho,3,2,"ng-container",1),t.qZA()),2&e&&(t.xp6(1),t.Q6J("ngIf",o.customIconMods.indexOf(o.perk)>-1),t.xp6(1),t.Q6J("ngIf",-1===o.customIconMods.indexOf(o.perk)))},dependencies:[y.O5,N.gM],styles:[".element-icon[_ngcontent-%COMP%]{height:100%;width:100%}.element-icon.disabled[_ngcontent-%COMP%]{opacity:.5;cursor:default;pointer-events:none}.overlay-icon-container[_ngcontent-%COMP%]{position:relative}.overlay-icon-container[_ngcontent-%COMP%] .overlay-icon[_ngcontent-%COMP%]{width:66%;position:absolute;left:17%;top:17%;pointer-events:none}[_nghost-%COMP%]{display:inline-flex;height:30px;width:30px}"]}),n})(),ue=(()=>{class n{transform(e,o=null){return e.filter(a=>null==o||a==o).length}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275pipe=t.Yjl({name:"count",type:n,pure:!0}),n})();function xo(n,i){1&n&&(t.TgZ(0,"mat-toolbar",24),t._uU(1," Warning: The stats of one or more items used for this build may be invalid."),t._UZ(2,"br"),t._uU(3," Please remove all negative/positive stat modifiers from the marked items. "),t.qZA())}function To(n,i){if(1&n&&(t.TgZ(0,"u",34,35),t._uU(2),t.qZA()),2&n){const e=t.oxw().$implicit;t.xp6(2),t.Oqu(e.name)}}function yo(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw().$implicit;t.xp6(1),t.Oqu(e.name)}}function bo(n,i){if(1&n&&(t.ynx(0),t.TgZ(1,"td",36)(2,"span",37),t._uU(3),t.qZA()(),t.TgZ(4,"td",36)(5,"span",37),t._uU(6),t.qZA()(),t.TgZ(7,"td",36)(8,"span",37),t._uU(9),t.qZA()(),t.TgZ(10,"td",36)(11,"span",37),t._uU(12),t.qZA()(),t.TgZ(13,"td",36)(14,"span",37),t._uU(15),t.qZA()(),t.TgZ(16,"td",36)(17,"span",37),t._uU(18),t.qZA()(),t.BQk()),2&n){const e=i.ngVar,o=t.oxw().$implicit,a=t.oxw(2);t.xp6(2),t.ekj("text-mw",o.masterworked),t.xp6(1),t.Oqu(o.stats[a.ArmorStat.Mobility]+e),t.xp6(2),t.ekj("text-mw",o.masterworked),t.xp6(1),t.Oqu(o.stats[a.ArmorStat.Resilience]+e),t.xp6(2),t.ekj("text-mw",o.masterworked),t.xp6(1),t.Oqu(o.stats[a.ArmorStat.Recovery]+e),t.xp6(2),t.ekj("text-mw",o.masterworked),t.xp6(1),t.Oqu(o.stats[a.ArmorStat.Discipline]+e),t.xp6(2),t.ekj("text-mw",o.masterworked),t.xp6(1),t.Oqu(o.stats[a.ArmorStat.Intellect]+e),t.xp6(2),t.ekj("text-mw",o.masterworked),t.xp6(1),t.Oqu(o.stats[a.ArmorStat.Strength]+e)}}function Co(n,i){1&n&&(t.TgZ(0,"td",27),t._UZ(1,"mat-progress-spinner",38),t.qZA())}function vo(n,i){1&n&&(t.TgZ(0,"td")(1,"mat-icon",39,35),t._uU(3," check_circle_outline "),t.qZA()())}function Ao(n,i){1&n&&(t.TgZ(0,"td")(1,"mat-icon",40,35),t._uU(3," error_outline "),t.qZA()())}function wo(n,i){1&n&&(t.TgZ(0,"td")(1,"mat-icon",41,35),t._uU(3," report_problem "),t.qZA()())}function Zo(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"tr")(1,"td"),t.YNc(2,To,3,1,"u",26),t.YNc(3,yo,2,1,"span",3),t.qZA(),t.YNc(4,bo,19,18,"ng-container",8),t.TgZ(5,"td",27)(6,"div",28),t._UZ(7,"app-item-icon",29),t.qZA()(),t.TgZ(8,"td",27)(9,"div",30),t._UZ(10,"app-armor-perk-icon",31),t.qZA()(),t.TgZ(11,"td",27)(12,"button",32),t.NdJ("click",function(){const s=t.CHM(e).$implicit,l=t.oxw(2);return t.KtG(l.disableItem(s.itemInstanceId))}),t.TgZ(13,"mat-icon"),t._uU(14,"block"),t.qZA()()(),t.YNc(15,Co,2,0,"td",33),t.YNc(16,vo,4,0,"td",3),t.YNc(17,Ao,4,0,"td",3),t.YNc(18,wo,4,0,"td",3),t.qZA()}if(2&n){const e=i.$implicit,o=t.oxw().$implicit,a=t.oxw();t.ekj("highlight-row",o[0].slot%2==0),t.xp6(2),t.Q6J("ngIf",e.masterworked),t.xp6(1),t.Q6J("ngIf",!e.masterworked),t.xp6(1),t.Q6J("ngVar",e.masterworked||!e.exotic&&a.config_assumeLegendariesMasterworked||e.exotic&&a.config_assumeExoticsMasterworked?2:0),t.xp6(2),t.Q6J("itemTooltip",e),t.xp6(1),t.Q6J("itemHash",e.hash)("masterworked",e.masterworked)("source",e.source),t.xp6(3),t.Q6J("perk",e.perk||0),t.xp6(5),t.Q6J("ngIf",1===e.transferState||2===e.transferState),t.xp6(1),t.Q6J("ngIf",3===e.transferState),t.xp6(1),t.Q6J("ngIf",4===e.transferState),t.xp6(1),t.Q6J("ngIf",e.mayBeBugged)}}function So(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Zo,19,14,"tr",25),t.BQk()),2&n){const e=i.$implicit;t.xp6(1),t.Q6J("ngForOf",e)}}function Io(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"tr")(1,"td",42,35),t._uU(3,"Any Class Item"),t.qZA(),t.TgZ(4,"td",43),t._uU(5),t.qZA(),t.TgZ(6,"td",43),t._uU(7),t.qZA(),t.TgZ(8,"td",43),t._uU(9),t.qZA(),t.TgZ(10,"td",43),t._uU(11),t.qZA(),t.TgZ(12,"td",43),t._uU(13),t.qZA(),t.TgZ(14,"td",43),t._uU(15),t.qZA(),t._UZ(16,"td"),t.TgZ(17,"td")(18,"div",30),t._UZ(19,"app-armor-perk-icon",31),t.qZA()(),t.TgZ(20,"td")(21,"button",44),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.disableAllItems())}),t.TgZ(22,"mat-icon"),t._uU(23,"block"),t.qZA()()()()}if(2&n){const e=t.oxw();t.xp6(5),t.Oqu(2),t.xp6(2),t.Oqu(2),t.xp6(2),t.Oqu(2),t.xp6(2),t.Oqu(2),t.xp6(2),t.Oqu(2),t.xp6(2),t.Oqu(2),t.xp6(4),t.Q6J("perk",(null==e.element||null==e.element.classItem?null:e.element.classItem.perk)||0)}}function Oo(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"tr")(1,"td"),t._uU(2,"Any Class Item"),t.qZA(),t.TgZ(3,"td",45),t._uU(4,"You chose to use non-masterworked class items."),t.qZA(),t._UZ(5,"td")(6,"td"),t.TgZ(7,"td")(8,"button",44),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.disableAllItems())}),t.TgZ(9,"mat-icon"),t._uU(10,"block"),t.qZA()()()()}}function Mo(n,i){if(1&n&&(t.TgZ(0,"td"),t._uU(1),t._UZ(2,"img",47),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw();t.xp6(1),t.hij(" ",e[o.ArmorStat.Mobility]," ")}}function ko(n,i){if(1&n&&(t.TgZ(0,"td"),t._uU(1),t._UZ(2,"img",48),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw();t.xp6(1),t.hij(" ",e[o.ArmorStat.Resilience]," ")}}function Do(n,i){if(1&n&&(t.TgZ(0,"td"),t._uU(1),t._UZ(2,"img",49),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw();t.xp6(1),t.hij(" ",e[o.ArmorStat.Recovery]," ")}}function Uo(n,i){if(1&n&&(t.TgZ(0,"td"),t._uU(1),t._UZ(2,"img",50),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw();t.xp6(1),t.hij(" ",e[o.ArmorStat.Discipline]," ")}}function Eo(n,i){if(1&n&&(t.TgZ(0,"td"),t._uU(1),t._UZ(2,"img",51),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw();t.xp6(1),t.hij(" ",e[o.ArmorStat.Intellect]," ")}}function Ro(n,i){if(1&n&&(t.TgZ(0,"td"),t._uU(1),t._UZ(2,"img",52),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw();t.xp6(1),t.hij(" ",e[o.ArmorStat.Strength]," ")}}function Po(n,i){if(1&n&&(t.TgZ(0,"tr",46)(1,"td"),t._uU(2,"Total (armor)"),t.qZA(),t.YNc(3,Mo,3,1,"td",3),t.YNc(4,ko,3,1,"td",3),t.YNc(5,Do,3,1,"td",3),t.YNc(6,Uo,3,1,"td",3),t.YNc(7,Eo,3,1,"td",3),t.YNc(8,Ro,3,1,"td",3),t.qZA()),2&n){const e=i.ngVar;t.xp6(3),t.Q6J("ngIf",!!e),t.xp6(1),t.Q6J("ngIf",!!e),t.xp6(1),t.Q6J("ngIf",!!e),t.xp6(1),t.Q6J("ngIf",!!e),t.xp6(1),t.Q6J("ngIf",!!e),t.xp6(1),t.Q6J("ngIf",!!e)}}function No(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"+"),t.qZA())}function qo(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,No,2,0,"span",3),t._uU(2),t.qZA()),2&n){const e=t.oxw();t.Tol(e.configValues[e.ArmorStat.Mobility]>0?"positive":"negative"),t.xp6(1),t.Q6J("ngIf",e.configValues[e.ArmorStat.Mobility]>0),t.xp6(1),t.hij("",e.configValues[e.ArmorStat.Mobility]," ")}}function Jo(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"+"),t.qZA())}function Yo(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,Jo,2,0,"span",3),t._uU(2),t.qZA()),2&n){const e=t.oxw();t.Tol(e.configValues[e.ArmorStat.Resilience]>0?"positive":"negative"),t.xp6(1),t.Q6J("ngIf",e.configValues[e.ArmorStat.Resilience]>0),t.xp6(1),t.hij("",e.configValues[e.ArmorStat.Resilience]," ")}}function Lo(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"+"),t.qZA())}function Fo(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,Lo,2,0,"span",3),t._uU(2),t.qZA()),2&n){const e=t.oxw();t.Tol(e.configValues[e.ArmorStat.Recovery]>0?"positive":"negative"),t.xp6(1),t.Q6J("ngIf",e.configValues[e.ArmorStat.Recovery]>0),t.xp6(1),t.hij("",e.configValues[e.ArmorStat.Recovery]," ")}}function Qo(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"+"),t.qZA())}function Bo(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,Qo,2,0,"span",3),t._uU(2),t.qZA()),2&n){const e=t.oxw();t.Tol(e.configValues[e.ArmorStat.Discipline]>0?"positive":"negative"),t.xp6(1),t.Q6J("ngIf",e.configValues[e.ArmorStat.Discipline]>0),t.xp6(1),t.hij("",e.configValues[e.ArmorStat.Discipline]," ")}}function Vo(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"+"),t.qZA())}function Ho(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,Vo,2,0,"span",3),t._uU(2),t.qZA()),2&n){const e=t.oxw();t.Tol(e.configValues[e.ArmorStat.Intellect]>0?"positive":"negative"),t.xp6(1),t.Q6J("ngIf",e.configValues[e.ArmorStat.Intellect]>0),t.xp6(1),t.hij("",e.configValues[e.ArmorStat.Intellect]," ")}}function Wo(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"+"),t.qZA())}function jo(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,Wo,2,0,"span",3),t._uU(2),t.qZA()),2&n){const e=t.oxw();t.Tol(e.configValues[e.ArmorStat.Strength]>0?"positive":"negative"),t.xp6(1),t.Q6J("ngIf",e.configValues[e.ArmorStat.Strength]>0),t.xp6(1),t.hij("",e.configValues[e.ArmorStat.Strength]," ")}}function zo(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd75")}}function Go(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,zo,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function Ko(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd75")}}function $o(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,Ko,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function Xo(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd75")}}function ti(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,Xo,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function ei(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd75")}}function ni(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,ei,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function oi(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd75")}}function ii(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,oi,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function ai(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd75")}}function si(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,ai,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function ri(n,i){if(1&n&&(t.TgZ(0,"tr",53)(1,"td"),t._uU(2,"Minor Mods"),t.qZA(),t.YNc(3,Go,2,1,"td",8),t.ALo(4,"count"),t.YNc(5,$o,2,1,"td",8),t.ALo(6,"count"),t.YNc(7,ti,2,1,"td",8),t.ALo(8,"count"),t.YNc(9,ni,2,1,"td",8),t.ALo(10,"count"),t.YNc(11,ii,2,1,"td",8),t.ALo(12,"count"),t.YNc(13,si,2,1,"td",8),t.ALo(14,"count"),t.qZA()),2&n){const e=i.ngVar,o=t.oxw();t.xp6(3),t.Q6J("ngVar",t.xi3(4,6,e,o.StatModifier.MINOR_MOBILITY)),t.xp6(2),t.Q6J("ngVar",t.xi3(6,9,e,o.StatModifier.MINOR_RESILIENCE)),t.xp6(2),t.Q6J("ngVar",t.xi3(8,12,e,o.StatModifier.MINOR_RECOVERY)),t.xp6(2),t.Q6J("ngVar",t.xi3(10,15,e,o.StatModifier.MINOR_DISCIPLINE)),t.xp6(2),t.Q6J("ngVar",t.xi3(12,18,e,o.StatModifier.MINOR_INTELLECT)),t.xp6(2),t.Q6J("ngVar",t.xi3(14,21,e,o.StatModifier.MINOR_STRENGTH))}}function li(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd710")}}function ci(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,li,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function mi(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd710")}}function di(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,mi,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function ui(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd710")}}function pi(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,ui,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function gi(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd710")}}function _i(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,gi,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function fi(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd710")}}function hi(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,fi,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function xi(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd710")}}function Ti(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,xi,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function yi(n,i){if(1&n&&(t.TgZ(0,"tr")(1,"td"),t._uU(2,"Major Mods"),t.qZA(),t.YNc(3,ci,2,1,"td",8),t.ALo(4,"count"),t.YNc(5,di,2,1,"td",8),t.ALo(6,"count"),t.YNc(7,pi,2,1,"td",8),t.ALo(8,"count"),t.YNc(9,_i,2,1,"td",8),t.ALo(10,"count"),t.YNc(11,hi,2,1,"td",8),t.ALo(12,"count"),t.YNc(13,Ti,2,1,"td",8),t.ALo(14,"count"),t.qZA()),2&n){const e=i.ngVar,o=t.oxw();t.xp6(3),t.Q6J("ngVar",t.xi3(4,6,e,o.StatModifier.MAJOR_MOBILITY)),t.xp6(2),t.Q6J("ngVar",t.xi3(6,9,e,o.StatModifier.MAJOR_RESILIENCE)),t.xp6(2),t.Q6J("ngVar",t.xi3(8,12,e,o.StatModifier.MAJOR_RECOVERY)),t.xp6(2),t.Q6J("ngVar",t.xi3(10,15,e,o.StatModifier.MAJOR_DISCIPLINE)),t.xp6(2),t.Q6J("ngVar",t.xi3(12,18,e,o.StatModifier.MAJOR_INTELLECT)),t.xp6(2),t.Q6J("ngVar",t.xi3(14,21,e,o.StatModifier.MAJOR_STRENGTH))}}function bi(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd73")}}function Ci(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,bi,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function vi(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd73")}}function Ai(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,vi,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function wi(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd73")}}function Zi(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,wi,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function Si(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd73")}}function Ii(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,Si,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function Oi(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd73")}}function Mi(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,Oi,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function ki(n,i){if(1&n&&(t.TgZ(0,"span",55),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("",e,"\xd73")}}function Di(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,ki,2,1,"span",54),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function Ui(n,i){if(1&n&&(t.ynx(0),t.TgZ(1,"tr")(2,"td"),t._uU(3,"Artifice Mods"),t.qZA(),t.YNc(4,Ci,2,1,"td",8),t.ALo(5,"count"),t.YNc(6,Ai,2,1,"td",8),t.ALo(7,"count"),t.YNc(8,Zi,2,1,"td",8),t.ALo(9,"count"),t.YNc(10,Ii,2,1,"td",8),t.ALo(11,"count"),t.YNc(12,Mi,2,1,"td",8),t.ALo(13,"count"),t.YNc(14,Di,2,1,"td",8),t.ALo(15,"count"),t.qZA(),t.BQk()),2&n){const e=i.ngVar,o=t.oxw();t.xp6(4),t.Q6J("ngVar",t.xi3(5,6,e,o.StatModifier.ARTIFICE_MOBILITY)),t.xp6(2),t.Q6J("ngVar",t.xi3(7,9,e,o.StatModifier.ARTIFICE_RESILIENCE)),t.xp6(2),t.Q6J("ngVar",t.xi3(9,12,e,o.StatModifier.ARTIFICE_RECOVERY)),t.xp6(2),t.Q6J("ngVar",t.xi3(11,15,e,o.StatModifier.ARTIFICE_DISCIPLINE)),t.xp6(2),t.Q6J("ngVar",t.xi3(13,18,e,o.StatModifier.ARTIFICE_INTELLECT)),t.xp6(2),t.Q6J("ngVar",t.xi3(15,21,e,o.StatModifier.ARTIFICE_STRENGTH))}}function Ei(n,i){if(1&n&&(t.TgZ(0,"tr",56)(1,"td"),t._uU(2,"Total"),t.qZA(),t.TgZ(3,"td"),t._uU(4),t._UZ(5,"img",47),t.qZA(),t.TgZ(6,"td"),t._uU(7),t._UZ(8,"img",48),t.qZA(),t.TgZ(9,"td"),t._uU(10),t._UZ(11,"img",49),t.qZA(),t.TgZ(12,"td"),t._uU(13),t._UZ(14,"img",50),t.qZA(),t.TgZ(15,"td"),t._uU(16),t._UZ(17,"img",51),t.qZA(),t.TgZ(18,"td"),t._uU(19),t._UZ(20,"img",52),t.qZA()()),2&n){const e=i.ngVar,o=t.oxw();t.xp6(4),t.hij(" ",e[o.ArmorStat.Mobility]," "),t.xp6(3),t.hij(" ",e[o.ArmorStat.Resilience]," "),t.xp6(3),t.hij(" ",e[o.ArmorStat.Recovery]," "),t.xp6(3),t.hij(" ",e[o.ArmorStat.Discipline]," "),t.xp6(3),t.hij(" ",e[o.ArmorStat.Intellect]," "),t.xp6(3),t.hij(" ",e[o.ArmorStat.Strength]," ")}}function Ri(n,i){if(1&n&&(t.TgZ(0,"span",64),t._UZ(1,"img",65),t._uU(2),t.ALo(3,"number"),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(2),t.hij(" ",t.lcZ(3,1,e.glimmer)," ")}}function Pi(n,i){if(1&n&&(t.TgZ(0,"span",66),t._UZ(1,"img",67),t._uU(2),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(2),t.hij(" ",e.shards," ")}}function Ni(n,i){if(1&n&&(t.TgZ(0,"span",68),t._UZ(1,"img",69),t._uU(2),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(2),t.hij(" ",e.core," ")}}function qi(n,i){if(1&n&&(t.TgZ(0,"span",70),t._UZ(1,"img",71),t._uU(2),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(2),t.hij(" ",e.prism," ")}}function Ji(n,i){if(1&n&&(t.TgZ(0,"span",72),t._UZ(1,"img",73),t._uU(2),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(2),t.hij(" ",e.ascshard," ")}}function Yi(n,i){if(1&n&&(t.TgZ(0,"div",58),t._uU(1," Total material cost: "),t.YNc(2,Ri,4,3,"span",59),t.YNc(3,Pi,3,1,"span",60),t.YNc(4,Ni,3,1,"span",61),t.YNc(5,qi,3,1,"span",62),t.YNc(6,Ji,3,1,"span",63),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(2),t.Q6J("ngIf",e.glimmer>0),t.xp6(1),t.Q6J("ngIf",e.shards>0),t.xp6(1),t.Q6J("ngIf",e.core>0),t.xp6(1),t.Q6J("ngIf",e.prism>0),t.xp6(1),t.Q6J("ngIf",e.ascshard>0)}}function Li(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Yi,7,5,"div",57),t.BQk()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e.total>0)}}function Fi(n,i){if(1&n){const e=t.EpF();t.ynx(0),t.TgZ(1,"button",74),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.openSnackBar("Copied the DIM search query to your clipboard."))}),t._uU(2," Copy DIM query to clipboard "),t.qZA(),t.BQk()}if(2&n){const e=i.ngVar;t.xp6(1),t.Q6J("cdkCopyToClipboard",e)}}function Qi(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1," and use a masterworked class item"),t.qZA())}function Bi(n,i){if(1&n&&(t.TgZ(0,"li"),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.hij(" ",e.name," ")}}function Vi(n,i){if(1&n&&(t.TgZ(0,"li"),t._uU(1," Masterwork these items: "),t.TgZ(2,"ul"),t.YNc(3,Bi,2,1,"li",2),t.qZA()()),2&n){const e=t.oxw().ngVar;t.xp6(3),t.Q6J("ngForOf",e)}}function Hi(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Vi,4,1,"li",3),t.BQk()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e.length>0)}}function Wi(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(3).ngVar;t.xp6(1),t.hij("",e," minor")}}function ji(n,i){1&n&&(t.ynx(0),t._uU(1," and"),t.BQk())}function zi(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(1),t.hij(" ",e," major ")}}function Gi(n,i){1&n&&(t.ynx(0),t._uU(1,"s"),t.BQk())}function Ki(n,i){if(1&n&&(t.TgZ(0,"li",55),t.YNc(1,Wi,2,1,"span",3),t.YNc(2,ji,2,0,"ng-container",3),t.YNc(3,zi,2,1,"span",3),t._uU(4," Mobility Mod"),t.YNc(5,Gi,2,0,"ng-container",3),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o>0),t.xp6(1),t.Q6J("ngIf",o>0&&e>0),t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(2),t.Q6J("ngIf",o+e>1)}}function $i(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Ki,6,4,"li",54),t.BQk()),2&n){const e=i.ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o+e>0)}}function Xi(n,i){if(1&n&&(t.ynx(0),t.YNc(1,$i,2,1,"ng-container",8),t.ALo(2,"count"),t.BQk()),2&n){const e=t.oxw().ngVar,o=t.oxw(2);t.xp6(1),t.Q6J("ngVar",t.xi3(2,1,e,o.StatModifier.MAJOR_MOBILITY))}}function ta(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(3).ngVar;t.xp6(1),t.hij("",e," minor")}}function ea(n,i){1&n&&(t.ynx(0),t._uU(1," and"),t.BQk())}function na(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(1),t.hij(" ",e," major ")}}function oa(n,i){1&n&&(t.ynx(0),t._uU(1,"s"),t.BQk())}function ia(n,i){if(1&n&&(t.TgZ(0,"li",55),t.YNc(1,ta,2,1,"span",3),t.YNc(2,ea,2,0,"ng-container",3),t.YNc(3,na,2,1,"span",3),t._uU(4," Resilience Mod"),t.YNc(5,oa,2,0,"ng-container",3),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o>0),t.xp6(1),t.Q6J("ngIf",o>0&&e>0),t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(2),t.Q6J("ngIf",o+e>1)}}function aa(n,i){if(1&n&&(t.ynx(0),t.YNc(1,ia,6,4,"li",54),t.BQk()),2&n){const e=i.ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o+e>0)}}function sa(n,i){if(1&n&&(t.ynx(0),t.YNc(1,aa,2,1,"ng-container",8),t.ALo(2,"count"),t.BQk()),2&n){const e=t.oxw().ngVar,o=t.oxw(2);t.xp6(1),t.Q6J("ngVar",t.xi3(2,1,e,o.StatModifier.MAJOR_RESILIENCE))}}function ra(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(3).ngVar;t.xp6(1),t.hij("",e," minor")}}function la(n,i){1&n&&(t.ynx(0),t._uU(1," and"),t.BQk())}function ca(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(1),t.hij(" ",e," major ")}}function ma(n,i){1&n&&(t.ynx(0),t._uU(1,"s"),t.BQk())}function da(n,i){if(1&n&&(t.TgZ(0,"li",55),t.YNc(1,ra,2,1,"span",3),t.YNc(2,la,2,0,"ng-container",3),t.YNc(3,ca,2,1,"span",3),t._uU(4," Recovery Mod"),t.YNc(5,ma,2,0,"ng-container",3),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o>0),t.xp6(1),t.Q6J("ngIf",o>0&&e>0),t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(2),t.Q6J("ngIf",o+e>1)}}function ua(n,i){if(1&n&&(t.ynx(0),t.YNc(1,da,6,4,"li",54),t.BQk()),2&n){const e=i.ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o+e>0)}}function pa(n,i){if(1&n&&(t.ynx(0),t.YNc(1,ua,2,1,"ng-container",8),t.ALo(2,"count"),t.BQk()),2&n){const e=t.oxw().ngVar,o=t.oxw(2);t.xp6(1),t.Q6J("ngVar",t.xi3(2,1,e,o.StatModifier.MAJOR_RECOVERY))}}function ga(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(3).ngVar;t.xp6(1),t.hij("",e," minor")}}function _a(n,i){1&n&&(t.ynx(0),t._uU(1," and"),t.BQk())}function fa(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(1),t.hij(" ",e," major ")}}function ha(n,i){1&n&&(t.ynx(0),t._uU(1,"s"),t.BQk())}function xa(n,i){if(1&n&&(t.TgZ(0,"li",55),t.YNc(1,ga,2,1,"span",3),t.YNc(2,_a,2,0,"ng-container",3),t.YNc(3,fa,2,1,"span",3),t._uU(4," Discipline Mod"),t.YNc(5,ha,2,0,"ng-container",3),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o>0),t.xp6(1),t.Q6J("ngIf",o>0&&e>0),t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(2),t.Q6J("ngIf",o+e>1)}}function Ta(n,i){if(1&n&&(t.ynx(0),t.YNc(1,xa,6,4,"li",54),t.BQk()),2&n){const e=i.ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o+e>0)}}function ya(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Ta,2,1,"ng-container",8),t.ALo(2,"count"),t.BQk()),2&n){const e=t.oxw().ngVar,o=t.oxw(2);t.xp6(1),t.Q6J("ngVar",t.xi3(2,1,e,o.StatModifier.MAJOR_DISCIPLINE))}}function ba(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(3).ngVar;t.xp6(1),t.hij("",e," minor")}}function Ca(n,i){1&n&&(t.ynx(0),t._uU(1," and"),t.BQk())}function va(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(1),t.hij(" ",e," major ")}}function Aa(n,i){1&n&&(t.ynx(0),t._uU(1,"s"),t.BQk())}function wa(n,i){if(1&n&&(t.TgZ(0,"li",55),t.YNc(1,ba,2,1,"span",3),t.YNc(2,Ca,2,0,"ng-container",3),t.YNc(3,va,2,1,"span",3),t._uU(4," Intellect Mod"),t.YNc(5,Aa,2,0,"ng-container",3),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o>0),t.xp6(1),t.Q6J("ngIf",o>0&&e>0),t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(2),t.Q6J("ngIf",o+e>1)}}function Za(n,i){if(1&n&&(t.ynx(0),t.YNc(1,wa,6,4,"li",54),t.BQk()),2&n){const e=i.ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o+e>0)}}function Sa(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Za,2,1,"ng-container",8),t.ALo(2,"count"),t.BQk()),2&n){const e=t.oxw().ngVar,o=t.oxw(2);t.xp6(1),t.Q6J("ngVar",t.xi3(2,1,e,o.StatModifier.MAJOR_INTELLECT))}}function Ia(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(3).ngVar;t.xp6(1),t.hij("",e," minor")}}function Oa(n,i){1&n&&(t.ynx(0),t._uU(1," and"),t.BQk())}function Ma(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(1),t.hij(" ",e," major ")}}function ka(n,i){1&n&&(t.ynx(0),t._uU(1,"s"),t.BQk())}function Da(n,i){if(1&n&&(t.TgZ(0,"li",55),t.YNc(1,Ia,2,1,"span",3),t.YNc(2,Oa,2,0,"ng-container",3),t.YNc(3,Ma,2,1,"span",3),t._uU(4," Strength Mod"),t.YNc(5,ka,2,0,"ng-container",3),t.qZA()),2&n){const e=t.oxw().ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o>0),t.xp6(1),t.Q6J("ngIf",o>0&&e>0),t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(2),t.Q6J("ngIf",o+e>1)}}function Ua(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Da,6,4,"li",54),t.BQk()),2&n){const e=i.ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngIf",o+e>0)}}function Ea(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Ua,2,1,"ng-container",8),t.ALo(2,"count"),t.BQk()),2&n){const e=t.oxw().ngVar,o=t.oxw(2);t.xp6(1),t.Q6J("ngVar",t.xi3(2,1,e,o.StatModifier.MAJOR_STRENGTH))}}function Ra(n,i){if(1&n&&(t.TgZ(0,"ul"),t.YNc(1,Xi,3,4,"ng-container",8),t.ALo(2,"count"),t.YNc(3,sa,3,4,"ng-container",8),t.ALo(4,"count"),t.YNc(5,pa,3,4,"ng-container",8),t.ALo(6,"count"),t.YNc(7,ya,3,4,"ng-container",8),t.ALo(8,"count"),t.YNc(9,Sa,3,4,"ng-container",8),t.ALo(10,"count"),t.YNc(11,Ea,3,4,"ng-container",8),t.ALo(12,"count"),t.qZA()),2&n){const e=i.ngVar,o=t.oxw(2);t.xp6(1),t.Q6J("ngVar",t.xi3(2,6,e,o.StatModifier.MINOR_MOBILITY)),t.xp6(2),t.Q6J("ngVar",t.xi3(4,9,e,o.StatModifier.MINOR_RESILIENCE)),t.xp6(2),t.Q6J("ngVar",t.xi3(6,12,e,o.StatModifier.MINOR_RECOVERY)),t.xp6(2),t.Q6J("ngVar",t.xi3(8,15,e,o.StatModifier.MINOR_DISCIPLINE)),t.xp6(2),t.Q6J("ngVar",t.xi3(10,18,e,o.StatModifier.MINOR_INTELLECT)),t.xp6(2),t.Q6J("ngVar",t.xi3(12,21,e,o.StatModifier.MINOR_STRENGTH))}}function Pa(n,i){if(1&n&&(t.TgZ(0,"li"),t._uU(1,"Equip the following stat mods: "),t.YNc(2,Ra,13,24,"ul",8),t.qZA()),2&n){const e=t.oxw();t.xp6(2),t.Q6J("ngVar",null==e.element?null:e.element.mods)}}function Na(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1," Arc "),t.qZA())}function qa(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1," Solar "),t.qZA())}function Ja(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1," Void "),t.qZA())}function Ya(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1," Stasis "),t.qZA())}function La(n,i){if(1&n&&t._UZ(0,"img",76,35),2&n){const e=t.oxw(3).ngVar,o=t.oxw(3);t.MGl("matTooltip","",o.getAffinityName(e.requiredArmorAffinity)," affinity"),t.Q6J("src",o.getAffinityUrl(e.requiredArmorAffinity),t.LSH)}}function Fa(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.YNc(2,Na,2,0,"span",3),t.YNc(3,qa,2,0,"span",3),t.YNc(4,Ja,2,0,"span",3),t.YNc(5,Ya,2,0,"span",3),t.YNc(6,La,2,2,"img",75),t._uU(7," ) "),t.qZA()),2&n){const e=t.oxw(2).ngVar;t.xp6(1),t.hij(" ( ",e.cost," "),t.xp6(1),t.Q6J("ngIf",1===e.requiredArmorAffinity),t.xp6(1),t.Q6J("ngIf",2===e.requiredArmorAffinity),t.xp6(1),t.Q6J("ngIf",3===e.requiredArmorAffinity),t.xp6(1),t.Q6J("ngIf",6===e.requiredArmorAffinity),t.xp6(1),t.Q6J("ngIf",0!==e.requiredArmorAffinity)}}function Qa(n,i){if(1&n&&(t.TgZ(0,"li"),t._uU(1),t.YNc(2,Fa,8,6,"span",3),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij(" Equip the mod ",e.name," "),t.xp6(1),t.Q6J("ngIf",0!==e.requiredArmorAffinity)}}function Ba(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Qa,3,2,"li",3),t.BQk()),2&n){const e=i.ngVar,o=t.oxw(3);t.xp6(1),t.Q6J("ngIf",e.type===o.ModifierType.CombatStyleMod)}}function Va(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Ba,2,1,"ng-container",8),t.BQk()),2&n){const e=i.$implicit,o=t.oxw(2);t.xp6(1),t.Q6J("ngVar",o.ModInformation[e])}}function Ha(n,i){if(1&n&&(t.TgZ(0,"li"),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij(" Equip the stasis fragment ",e.name," ")}}function Wa(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Ha,2,1,"li",3),t.BQk()),2&n){const e=i.ngVar,o=t.oxw(3);t.xp6(1),t.Q6J("ngIf",e.type===o.ModifierType.Stasis)}}function ja(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Wa,2,1,"ng-container",8),t.BQk()),2&n){const e=i.$implicit,o=t.oxw(2);t.xp6(1),t.Q6J("ngVar",o.ModInformation[e])}}function za(n,i){if(1&n&&(t.TgZ(0,"li"),t._uU(1," Equip any mods and fragments that you enabled in the configuration: "),t.TgZ(2,"ul"),t.YNc(3,Va,2,1,"ng-container",2),t.YNc(4,ja,2,1,"ng-container",2),t.qZA()()),2&n){const e=t.oxw();t.xp6(3),t.Q6J("ngForOf",e.config_enabledMods),t.xp6(1),t.Q6J("ngForOf",e.config_enabledMods)}}function Ga(n,i){if(1&n&&t._UZ(0,"div",80),2&n){const e=t.oxw().$implicit;t.Tol(e)}}function Ka(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,Ga,1,2,"div",79),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.Q6J("ngIf",!!e)}}function $a(n,i){if(1&n&&(t.TgZ(0,"tr")(1,"td"),t._uU(2),t.qZA(),t.TgZ(3,"td"),t._UZ(4,"img",77),t.qZA(),t.YNc(5,Ka,2,1,"td",2),t.TgZ(6,"td",78),t._uU(7),t.qZA()()),2&n){const e=i.$implicit,o=t.oxw();t.xp6(2),t.Oqu(o.ArmorStatNames[e]),t.xp6(2),t.s9C("alt",o.ArmorStatNames[e]),t.s9C("src",o.ArmorStatIconUrls[e],t.LSH),t.xp6(1),t.Q6J("ngForOf",o.getColumnForStat(e)),t.xp6(2),t.Oqu(o.getTiersForStat(e))}}function Xa(n,i){if(1&n&&(t.TgZ(0,"tr")(1,"td"),t._uU(2,"Exotic:"),t.qZA(),t.TgZ(3,"td",81),t._uU(4),t.qZA(),t.TgZ(5,"td",82)(6,"div",83),t._UZ(7,"img",84)(8,"img",85),t.qZA()()()),2&n){const e=t.oxw().ngVar;t.xp6(4),t.Oqu(e[0].name),t.xp6(3),t.MGl("src","https://bungie.net/",e[0].icon,"",t.LSH),t.xp6(1),t.MGl("src","https://bungie.net/",e[0].watermark,"",t.LSH)}}function ts(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Xa,9,3,"tr",3),t.BQk()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e[0])}}let es=(()=>{class n{constructor(e,o,a,s){this.config=e,this._snackBar=o,this.bungieApi=a,this.membership=s,this.armorStatIds=[0,1,2,3,4,5],this.ModifierType=h.O,this.ModInformation=ut,this.ArmorStatNames=r.Mi,this.ArmorStatIconUrls=r.lp,this.ArmorStat=r.WB,this.StatModifier=r.iV,this.config_characterClass=0,this.config_assumeLegendariesMasterworked=!1,this.config_assumeExoticsMasterworked=!1,this.config_assumeClassItemMasterworked=!1,this.config_enabledMods=[],this.DIMUrl="",this.configValues=[0,0,0,0,0,0],this.element=null,this.ngUnsubscribe=new nt.xQ}buildItemIdString(e){let o=e?.items.flat().map(s=>`id:'${s.itemInstanceId}'`).join(" or "),a=["is:classitem"];return e?.classItem.perk!=r.Pn.None&&e?.classItem.perk!=r.Pn.COUNT&&a.push(r.ID[e?.classItem.perk||0]),a.length>1&&(o+=` or (${a.join(" ")})`),o}openSnackBar(e){this._snackBar.open(e,"",{duration:2500,politeness:"polite"})}ngOnInit(){this.config.configuration.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(e=>{this.config_characterClass=e.characterClass,this.config_assumeLegendariesMasterworked=e.assumeLegendariesMasterworked,this.config_assumeExoticsMasterworked=e.assumeExoticsMasterworked,this.config_assumeClassItemMasterworked=e.assumeClassItemMasterworked,this.config_enabledMods=e.enabledMods,this.configValues=e.enabledMods.reduce((o,a)=>o.concat(ut[a].bonus),[]).reduce((o,a)=>(a.stat==r.AR.ClassAbilityRegenerationStat?o[[1,0,2][e.characterClass]]+=a.value:o[a.stat]+=a.value,o),[0,0,0,0,0,0]),this.DIMUrl=this.generateDIMLink(e)})}disableAllItems(){this.config.modifyConfiguration(e=>{for(let o of this.element?.items.flat())e.disabledItems.push(o.itemInstanceId)})}disableItem(e){this.config.modifyConfiguration(o=>{o.disabledItems.push(e)})}get mayAnyItemBeBugged(){return(this.element?.items.flat().filter(e=>e.mayBeBugged).length||0)>0}getCharacterId(){var e=this;return(0,m.Z)(function*(){let o=yield e.membership.getCharacters();return o=o.filter(a=>a.clazz==e.config_characterClass),0==o.length?(e.openSnackBar("Error: Could not find a character to move the items to."),null):o[0].characterId})()}moveItems(e=!1){var o=this;return(0,m.Z)(function*(){for(let d of(o.element?.items||[]).flat())d.transferState=ht.WAITING_FOR_TRANSFER;let a=yield o.getCharacterId();if(!a)return;let s=!0,l=(o.element?.items||[]).flat().sort(d=>d.exotic?1:-1);for(let d of l){d.transferState=ht.TRANSFERRING;let u=yield o.bungieApi.transferItem(d.itemInstanceId,a,e);d.transferState=u?ht.TRANSFERRED:ht.ERROR_DURING_TRANSFER,u||(s=!1)}o.openSnackBar(s?"Success! Moved all the items.":"Some of the items could not be moved. Make sure that there is enough space in the specific slot. This tool will not move items out of your inventory.")})()}getItemsThatMustBeMasterworked(){return this.element?.items.flat().filter(e=>!(e.masterworked||e.exotic&&!this.config_assumeExoticsMasterworked||!e.exotic&&!this.config_assumeLegendariesMasterworked))}calculateRequiredMasterworkCost(){let e={shards:0,glimmer:0,core:0,prism:0,ascshard:0,total:0},o=this.element?.items.flat()||[];o=o.filter(a=>a.energyLevel<10&&(a.exotic&&this.config_assumeExoticsMasterworked||!a.exotic&&this.config_assumeLegendariesMasterworked));for(let a of o){let s=a.exotic?Kn:Gn;for(let l=a.energyLevel;l<10;l++)for(let d in s[l+1])e[d]+=s[l+1][d],e.total++}return e}generateDIMLink(e){const o=[],a=[];for(let p of this.config_enabledMods){const b=ut[p];b.type===h.O.CombatStyleMod?o.push(b.hash):a.push(b.hash)}if(this.element)for(let p of this.element?.mods||[])o.push(r.K9[p][3]);var s={statConstraints:[{statHash:2996146975,minTier:e.minimumStatTiers[r.WB.Mobility].value,maxTier:e.minimumStatTiers[r.WB.Mobility].fixed?e.minimumStatTiers[r.WB.Mobility].value:10},{statHash:392767087,minTier:e.minimumStatTiers[r.WB.Resilience].value,maxTier:e.minimumStatTiers[r.WB.Resilience].fixed?e.minimumStatTiers[r.WB.Resilience].value:10},{statHash:1943323491,minTier:e.minimumStatTiers[r.WB.Recovery].value,maxTier:e.minimumStatTiers[r.WB.Recovery].fixed?e.minimumStatTiers[r.WB.Recovery].value:10},{statHash:1735777505,minTier:e.minimumStatTiers[r.WB.Discipline].value,maxTier:e.minimumStatTiers[r.WB.Recovery].fixed?e.minimumStatTiers[r.WB.Recovery].value:10},{statHash:144602215,minTier:e.minimumStatTiers[r.WB.Intellect].value,maxTier:e.minimumStatTiers[r.WB.Intellect].fixed?e.minimumStatTiers[r.WB.Intellect].value:10},{statHash:4244567218,minTier:e.minimumStatTiers[r.WB.Strength].value,maxTier:e.minimumStatTiers[r.WB.Strength].fixed?e.minimumStatTiers[r.WB.Strength].value:10}],mods:o,assumeArmorMasterwork:e.assumeLegendariesMasterworked?e.assumeExoticsMasterworked?3:2:1};if(1==e.selectedExotics.length)s.exoticArmorHash=e.selectedExotics[0];else{var l=this.element?.exotic;if(l&&1==l.length){var d=l[0].hash;d&&(s.exoticArmorHash=parseInt(d,10))}}const u={id:"d2ap",name:"D2ArmorPicker Loadout",classType:e.characterClass,parameters:s,equipped:(this.element?.items||[]).map(([p])=>({id:p.itemInstanceId,hash:p.hash})),unequipped:[],clearSpace:!1};if(a.length){const p=a.reduce((D,O,E)=>(D[E+7]=O,D),{}),Z={[U.Hunter]:{[h.O.Stasis]:873720784,[h.O.Void]:2453351420,[h.O.Solar]:2240888816,[h.O.Arc]:2328211300,[h.O.Strand]:3785442599},[U.Titan]:{[h.O.Stasis]:613647804,[h.O.Void]:2842471112,[h.O.Solar]:2550323932,[h.O.Arc]:2932390016,[h.O.Strand]:242419885},[U.Warlock]:{[h.O.Stasis]:3291545503,[h.O.Void]:2849050827,[h.O.Solar]:3941205951,[h.O.Arc]:3168997075,[h.O.Strand]:4204413574}}[e.characterClass]?.[e.selectedModElement];Z&&u.equipped.push({id:"12345",hash:Z,socketOverrides:p})}return"https://app.destinyitemmanager.com/loadouts?loadout="+encodeURIComponent(JSON.stringify(u))}goToDIM(){window.open(this.DIMUrl,"blank")}getTiersForStat(e){return Math.floor((this.element?.stats[e]||0)/10)}getColumnForStat(e){var o=Math.floor(this.configValues[e]/10);let a=[],s=0,l=Math.ceil((5*(this.element?.mods.filter(u=>u==1+2*e)||[]).length+10*(this.element?.mods.filter(u=>u==2+2*e)||[]).length)/10);var d=this.getTiersForStat(e)-o-l;for(let u=0;u10?" over100":""));for(let u=0;u10?" over100":""));for(let u=0;u10?" over100":""));for(;s++<10;)a.push("");return a}getRequiredMasterworkBonus(){return 2*(this.element?.items.filter(e=>!e[0].masterworked&&!e[0].exotic&&this.config_assumeLegendariesMasterworked||e[0].exotic&&this.config_assumeExoticsMasterworked)||[]).length}getAffinityName(e){return r.vr[e]}getAffinityUrl(e){return r.Sy[e]}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(B),t.Y36(Vt.ux),t.Y36(Qt),t.Y36(Rt))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-expanded-result-content"]],inputs:{element:"element"},decls:124,vars:26,consts:[["class","invalid-item-box mat-elevation-z4","color","warn",4,"ngIf"],[1,"specificStatTable"],[4,"ngFor","ngForOf"],[4,"ngIf"],["class","result-total-gear result-total highlight-row",4,"ngVar"],[1,"result-config"],[3,"class",4,"ngIf"],["class","highlight-row",4,"ngVar"],[4,"ngVar"],["class","result-total-all result-total highlight-row",4,"ngVar"],[1,"buttonContainer"],["color","primary","mat-raised-button","","matTooltip","Use this button to open this build as a DIM Loadout.",3,"click"],["mat-stroked-button","","matTooltip","Click this button to move Items to your inventory. Make sure that you have enough space in your inventory. This tool will not move any items out of your inventory.",3,"click"],["mat-stroked-button","","matTooltip","Click this button to equip the Items. Make sure that you have enough space in your inventory. This tool will not move any items out of your inventory.",3,"click"],[1,"mat-elevation-z6"],[1,"stat-preview"],["colspan","2"],[1,"tier-column"],[1,"legend"],[1,"energy-bar","normal"],["colspan","3"],[1,"energy-bar","mod"],["colspan","4"],[1,"energy-bar","config"],["color","warn",1,"invalid-item-box","mat-elevation-z4"],[3,"highlight-row",4,"ngFor","ngForOf"],["class","item-name-mw","matTooltip","This item is already masterworked.",4,"ngIf"],[1,"icon-column"],[1,"item-icon-container",3,"itemTooltip"],[1,"item-icon",3,"itemHash","masterworked","source"],[2,"position","relative","width","25px"],[3,"perk"],["mat-icon-button","","matTooltip","Disable this item from the results. It will not be used to generate results anymore, but you can always undo this.",1,"item-info-menu-btn",3,"click"],["class","icon-column",4,"ngIf"],["matTooltip","This item is already masterworked.",1,"item-name-mw"],["tooltip","matTooltip"],[1,"item-stat-container"],[1,"item-stat-value"],["color","primary","diameter","22","mode","indeterminate",1,"item-loading-spinner"],["aria-hidden","false","aria-label","Success","inline","","matTooltip","Item successfully moved to inventory.",1,"item-moved-icon"],["aria-hidden","false","aria-label","Error","inline","","matTooltip","This item could not be moved. Make sure that there is enough space on your character. This tool will not move items out of your inventory.",1,"report-problem-icon"],["aria-hidden","false","aria-label","Error","inline","","matTooltip","The stats of this item may be incorrect. Make sure that you remove every positive or negative stat modifier from this item.",1,"report-problem-icon"],["matTooltip","Class item should be masterworked.",1,"item-name-mw"],[1,"text-mw"],["mat-icon-button","","matTooltip","Disable all four items above from the results. They will not be used to generate results anymore, but you can always undo this.",1,"item-info-menu-btn","report-problem-icon",3,"click"],["colspan","6",1,"text-centered"],[1,"result-total-gear","result-total","highlight-row"],["alt","Mobility","src","https://www.bungie.net/common/destiny2_content/icons/e26e0e93a9daf4fdd21bf64eb9246340.png",1,"statIcon"],["alt","Resilience","src","https://www.bungie.net/common/destiny2_content/icons/202ecc1c6febeb6b97dafc856e863140.png",1,"statIcon"],["alt","Recovery","src","https://www.bungie.net/common/destiny2_content/icons/128eee4ee7fc127851ab32eac6ca91cf.png",1,"statIcon"],["alt","Discipline","src","https://www.bungie.net/common/destiny2_content/icons/79be2d4adef6a19203f7385e5c63b45b.png",1,"statIcon"],["alt","Intellect","src","https://www.bungie.net/common/destiny2_content/icons/d1c154469670e9a592c9d4cbdcae5764.png",1,"statIcon"],["alt","Strength","src","https://www.bungie.net/common/destiny2_content/icons/ea5af04ccd6a3470a44fd7bb0f66e2f7.png",1,"statIcon"],[1,"highlight-row"],["class","positive",4,"ngIf"],[1,"positive"],[1,"result-total-all","result-total","highlight-row"],["style","margin-top: 10px",4,"ngIf"],[2,"margin-top","10px"],["class","currency-icon-container","matTooltip","Glimmer",4,"ngIf"],["class","currency-icon-container","matTooltip","Legendary Shards",4,"ngIf"],["class","currency-icon-container","matTooltip","Enhancement Cores",4,"ngIf"],["class","currency-icon-container","matTooltip","Enhancement Prism",4,"ngIf"],["class","currency-icon-container","matTooltip","Ascendant Shard",4,"ngIf"],["matTooltip","Glimmer",1,"currency-icon-container"],["alt","Glimmer","src","https://www.bungie.net/common/destiny2_content/icons/88993eaeedad32f42072df6f77f47311.png",1,"currency-icon"],["matTooltip","Legendary Shards",1,"currency-icon-container"],["alt","Legendary Shards","src","https://www.bungie.net/common/destiny2_content/icons/18ddd0bdac721b8eb8e6f8ec2b3e813c.png",1,"currency-icon"],["matTooltip","Enhancement Cores",1,"currency-icon-container"],["alt","Enhancement Cores","src","https://www.bungie.net/common/destiny2_content/icons/0a4eb695ed55b4e720ddc401460cc0f9.jpg",1,"currency-icon"],["matTooltip","Enhancement Prism",1,"currency-icon-container"],["alt","Enhancement Prism","src","https://www.bungie.net/common/destiny2_content/icons/dea2a35badf7466d4c2c2697ce6e8d87.jpg",1,"currency-icon"],["matTooltip","Ascendant Shard",1,"currency-icon-container"],["alt","Ascendant Shard","src","https://www.bungie.net/common/destiny2_content/icons/0271d214fc3ec91b3def799a4b286b46.jpg",1,"currency-icon"],["color","primary","mat-raised-button","","matTooltip","Use this button to copy a DIM search query to your clip board. It allows you to search the given items in DIM.",3,"cdkCopyToClipboard","click"],["class","element-icon-mini",3,"src","matTooltip",4,"ngIf"],[1,"element-icon-mini",3,"src","matTooltip"],[2,"height","18px",3,"alt","src"],[1,"sum-tiers"],["class","energy-bar",3,"class",4,"ngIf"],[1,"energy-bar"],["colspan","10"],["colspan","1"],[1,"item-icon-container"],[1,"item-icon",3,"src"],[1,"item-icon-overlay",3,"src"]],template:function(e,o){1&e&&(t.TgZ(0,"div"),t.YNc(1,xo,4,0,"mat-toolbar",0),t._uU(2," This table shows you the expected stats of any item: "),t.TgZ(3,"table",1)(4,"thead")(5,"tr")(6,"th"),t._uU(7,"Name"),t.qZA(),t.TgZ(8,"th"),t._uU(9,"Mobility"),t.qZA(),t.TgZ(10,"th"),t._uU(11,"Resilience"),t.qZA(),t.TgZ(12,"th"),t._uU(13,"Recovery"),t.qZA(),t.TgZ(14,"th"),t._uU(15,"Discipline"),t.qZA(),t.TgZ(16,"th"),t._uU(17,"Intellect"),t.qZA(),t.TgZ(18,"th"),t._uU(19,"Strength"),t.qZA(),t._UZ(20,"th")(21,"th"),t.qZA()(),t.YNc(22,So,2,1,"ng-container",2),t.YNc(23,Io,24,7,"tr",3),t.YNc(24,Oo,11,0,"tr",3),t.YNc(25,Po,9,6,"tr",4),t.TgZ(26,"tr",5)(27,"td"),t._uU(28,"Configuration"),t.qZA(),t.TgZ(29,"td"),t.YNc(30,qo,3,4,"span",6),t.qZA(),t.TgZ(31,"td"),t.YNc(32,Yo,3,4,"span",6),t.qZA(),t.TgZ(33,"td"),t.YNc(34,Fo,3,4,"span",6),t.qZA(),t.TgZ(35,"td"),t.YNc(36,Bo,3,4,"span",6),t.qZA(),t.TgZ(37,"td"),t.YNc(38,Ho,3,4,"span",6),t.qZA(),t.TgZ(39,"td"),t.YNc(40,jo,3,4,"span",6),t.qZA()(),t.YNc(41,ri,15,24,"tr",7),t.YNc(42,yi,15,24,"tr",8),t.YNc(43,Ui,16,24,"ng-container",8),t.YNc(44,Ei,21,6,"tr",9),t.qZA()(),t.YNc(45,Li,2,1,"ng-container",8),t.TgZ(46,"div",10),t.YNc(47,Fi,3,1,"ng-container",8),t.TgZ(48,"button",11),t.NdJ("click",function(){return o.goToDIM()}),t._uU(49," Open Loadout in DIM "),t.qZA(),t._UZ(50,"br"),t.TgZ(51,"small"),t._uU(52,"The following two buttons may not work for some at the moment:"),t.qZA(),t._UZ(53,"br"),t.TgZ(54,"button",12),t.NdJ("click",function(){return o.moveItems()}),t._uU(55," Move items to inventory (beta) "),t.qZA(),t.TgZ(56,"button",13),t.NdJ("click",function(){return o.moveItems(!0)}),t._uU(57," Equip Items (beta) "),t.qZA()(),t.TgZ(58,"mat-accordion")(59,"mat-expansion-panel",14)(60,"mat-expansion-panel-header")(61,"mat-panel-title"),t._uU(62," What to do now? "),t.qZA(),t.TgZ(63,"mat-panel-description"),t._uU(64," Detailed Instructions of to get your loadout ready. "),t.qZA()(),t.TgZ(65,"div")(66,"ol")(67,"li"),t._uU(68," Move all related items into your inventory "),t.YNc(69,Qi,2,0,"span",3),t._uU(70,". "),t.qZA(),t.YNc(71,Hi,2,1,"ng-container",8),t.YNc(72,Pa,3,1,"li",3),t.ALo(73,"count"),t.YNc(74,za,5,2,"li",3),t.qZA()()(),t.TgZ(75,"mat-expansion-panel",14)(76,"mat-expansion-panel-header")(77,"mat-panel-title"),t._uU(78," Stat overview "),t.qZA(),t.TgZ(79,"mat-panel-description"),t._uU(80," Shows a summary of all the stats and where they come from. "),t.qZA()(),t.TgZ(81,"table",15)(82,"tr")(83,"td",16),t._uU(84,"Stat"),t.qZA(),t.TgZ(85,"td",17),t._uU(86,"1"),t.qZA(),t.TgZ(87,"td",17),t._uU(88,"2"),t.qZA(),t.TgZ(89,"td",17),t._uU(90,"3"),t.qZA(),t.TgZ(91,"td",17),t._uU(92,"4"),t.qZA(),t.TgZ(93,"td",17),t._uU(94,"5"),t.qZA(),t.TgZ(95,"td",17),t._uU(96,"6"),t.qZA(),t.TgZ(97,"td",17),t._uU(98,"7"),t.qZA(),t.TgZ(99,"td",17),t._uU(100,"8"),t.qZA(),t.TgZ(101,"td",17),t._uU(102,"9"),t.qZA(),t.TgZ(103,"td",17),t._uU(104,"10"),t.qZA(),t.TgZ(105,"td"),t._uU(106,"Tiers"),t.qZA()(),t.YNc(107,$a,8,5,"tr",2),t.TgZ(108,"tr",18)(109,"td",16),t._uU(110,"Armor"),t.qZA(),t.TgZ(111,"td"),t._UZ(112,"div",19),t.qZA(),t.TgZ(113,"td",20),t._uU(114,"Stat Mod"),t.qZA(),t.TgZ(115,"td"),t._UZ(116,"div",21),t.qZA(),t.TgZ(117,"td",22),t._uU(118,"Fragments & Mods"),t.qZA(),t.TgZ(119,"td"),t._UZ(120,"div",23),t.qZA()(),t.YNc(121,ts,2,1,"ng-container",8),t.qZA()()(),t._UZ(122,"br")(123,"br")),2&e&&(t.xp6(1),t.Q6J("ngIf",o.mayAnyItemBeBugged),t.xp6(21),t.Q6J("ngForOf",null==o.element?null:o.element.items),t.xp6(1),t.Q6J("ngIf",o.config_assumeClassItemMasterworked),t.xp6(1),t.Q6J("ngIf",!o.config_assumeClassItemMasterworked),t.xp6(1),t.Q6J("ngVar",null==o.element?null:o.element.statsNoMods),t.xp6(5),t.Q6J("ngIf",0!==o.configValues[o.ArmorStat.Mobility]),t.xp6(2),t.Q6J("ngIf",0!==o.configValues[o.ArmorStat.Resilience]),t.xp6(2),t.Q6J("ngIf",0!==o.configValues[o.ArmorStat.Recovery]),t.xp6(2),t.Q6J("ngIf",0!==o.configValues[o.ArmorStat.Discipline]),t.xp6(2),t.Q6J("ngIf",0!==o.configValues[o.ArmorStat.Intellect]),t.xp6(2),t.Q6J("ngIf",0!==o.configValues[o.ArmorStat.Strength]),t.xp6(1),t.Q6J("ngVar",null==o.element?null:o.element.mods),t.xp6(1),t.Q6J("ngVar",null==o.element?null:o.element.mods),t.xp6(1),t.Q6J("ngVar",null==o.element?null:o.element.artifice),t.xp6(1),t.Q6J("ngVar",null==o.element?null:o.element.stats),t.xp6(1),t.Q6J("ngVar",o.calculateRequiredMasterworkCost()),t.xp6(2),t.Q6J("ngVar",o.buildItemIdString(o.element)),t.xp6(22),t.Q6J("ngIf",o.config_assumeClassItemMasterworked),t.xp6(2),t.Q6J("ngVar",o.getItemsThatMustBeMasterworked()),t.xp6(1),t.Q6J("ngIf",(null==o.element?null:o.element.mods).length>0&&t.xi3(73,23,null==o.element?null:o.element.mods,o.StatModifier.NONE)<5),t.xp6(2),t.Q6J("ngIf",o.config_enabledMods.length>0),t.xp6(33),t.Q6J("ngForOf",o.armorStatIds),t.xp6(14),t.Q6J("ngVar",null==o.element?null:o.element.exotic))},dependencies:[y.sg,y.O5,g.lW,N.gM,j.Hw,W.Ye,J.pp,J.ib,J.yz,J.yK,J.u4,$n.Ou,wt.i3,Ct,lo,Ht,Wt,y.JJ,ue],styles:[".element-icon[_ngcontent-%COMP%]{width:22px}.element-icon-mini[_ngcontent-%COMP%]{height:12px}.item-loading-spinner[_ngcontent-%COMP%]{width:22px;height:22px;margin-bottom:6px}.item-icon[_ngcontent-%COMP%]{width:22px}.item-icon-overlay[_ngcontent-%COMP%]{width:22px;margin-left:-22px}.item-icon-container[_ngcontent-%COMP%]{position:relative;contain:layout paint style;box-sizing:border-box;width:var(--item-size);transition:opacity .2s,transform .2s;margin-top:-4px}.item-icon-masterwork-overlay[_ngcontent-%COMP%]{pointer-events:none;box-sizing:border-box;top:-1px;left:-1px;border-width:0;height:24px;width:24px;position:absolute;background-repeat:no-repeat;background-position:center;background-size:22px 22px;background-image:url(data:image/png;base64,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)}.negative[_ngcontent-%COMP%]{color:#f08080}.positive[_ngcontent-%COMP%]{color:#6495ed}table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{text-align:right}table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:not(:last-child) td[_ngcontent-%COMP%]{border-bottom:rgba(240,248,255,.08) solid .5px}.result-total-gear[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-bottom:aliceblue solid 1px!important}.result-total-all[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .result-total-gear[_ngcontent-%COMP%] > td[_ngcontent-%COMP%]{border-top:aliceblue double}.buttonContainer[_ngcontent-%COMP%]{margin-top:10px;margin-bottom:10px}.buttonContainer[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:not(:last-of-type){margin-right:6px;margin-bottom:3px}.result-total[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{position:relative;padding-right:14px}.statIcon[_ngcontent-%COMP%]{position:absolute;height:14px;margin-left:2px;top:3px}.item-info-menu-btn[_ngcontent-%COMP%]{height:22px!important;width:22px!important;line-height:22px!important;top:-4px;left:-4px}.item-info-menu-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:22px}.item-moved-icon[_ngcontent-%COMP%]{color:#7fffd4}.report-problem-icon[_ngcontent-%COMP%]{color:#f08080}.invalid-item-box[_ngcontent-%COMP%]{text-align:center;margin-right:auto;margin-left:auto;width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content;font-size:15px;line-height:20px}.text-centered[_ngcontent-%COMP%]{text-align:center!important}.specificStatTable[_ngcontent-%COMP%]{border-collapse:separate;border-spacing:0 0}.highlight-row[_ngcontent-%COMP%]{background-color:#6e6e6e21}tr.legend[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding-top:3px}.tier-column[_ngcontent-%COMP%]{min-width:27px}.energy-bar[_ngcontent-%COMP%]{width:25px;height:10px;border:white solid 2px;position:relative}.energy-bar.normal[_ngcontent-%COMP%]{background-color:#fff}.energy-bar.mod[_ngcontent-%COMP%]{background-color:gray;border:white ridge 2px}.energy-bar.config[_ngcontent-%COMP%]{background-color:#a3b1c2;border:white ridge 2px}.energy-bar.over100[_ngcontent-%COMP%]{border-color:#ff5e5e;width:10px}.item-stat-container[_ngcontent-%COMP%]{position:relative}.item-stat-bonus[_ngcontent-%COMP%]{position:absolute;right:20px;font-size:x-small}.item-name-mw[_ngcontent-%COMP%]{text-decoration:underline;-webkit-text-decoration-color:#ffbc00;text-decoration-color:#ffbc00}.text-mw[_ngcontent-%COMP%], .item-stat-bonus[_ngcontent-%COMP%]{color:#ffd86a}app-armor-perk-icon[_ngcontent-%COMP%]{width:23px;height:23px;position:absolute;top:-14px;left:0}td.sum-tiers[_ngcontent-%COMP%]{text-align:center!important;border-left:#6e6e6e solid 1px}.currency-icon[_ngcontent-%COMP%]{width:16px;position:absolute;left:0}.currency-icon-container[_ngcontent-%COMP%]{position:relative;padding-left:19px;padding-right:10px}.icon-column[_ngcontent-%COMP%]{padding-left:4px}"]}),n})();var pe=_(3238),ns=_(8729);function os(n,i){1&n&&(t.TgZ(0,"mat-icon",6),t._uU(1,"add_circle_outline "),t.qZA())}function is(n,i){1&n&&(t.TgZ(0,"mat-icon",7),t._uU(1,"remove_circle_outline "),t.qZA())}function as(n,i){1&n&&(t.TgZ(0,"mat-icon",8),t._uU(1,"change_history "),t.qZA())}function ss(n,i){if(1&n&&(t.TgZ(0,"mat-list-item"),t.YNc(1,os,2,0,"mat-icon",2),t.YNc(2,is,2,0,"mat-icon",3),t.YNc(3,as,2,0,"mat-icon",4),t.TgZ(4,"div",5)(5,"p"),t._uU(6),t.qZA()()()),2&n){const e=i.$implicit;t.xp6(1),t.Q6J("ngIf",0===e.type),t.xp6(1),t.Q6J("ngIf",1===e.type),t.xp6(1),t.Q6J("ngIf",2===e.type),t.xp6(3),t.Oqu(e.text)}}function rs(n,i){if(1&n&&(t.ynx(0),t.TgZ(1,"div",1),t._uU(2),t.qZA(),t.YNc(3,ss,7,4,"mat-list-item",0),t.TgZ(4,"mat-list-item"),t._UZ(5,"br")(6,"mat-divider"),t.qZA(),t.BQk()),2&n){const e=i.$implicit;t.xp6(2),t.AsE("",e.version,", released on ",e.date,""),t.xp6(1),t.Q6J("ngForOf",e.entries)}}let ge=(()=>{class n{constructor(e){this.changelog=e}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(Pt))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-changelog-list"]],decls:2,vars:1,consts:[[4,"ngFor","ngForOf"],["mat-subheader","",1,"title"],["mat-list-icon","","matTooltip","A new function has been added.",4,"ngIf"],["mat-list-icon","","matTooltip","A function has been removed.",4,"ngIf"],["mat-list-icon","","matTooltip","Something has been modified.",4,"ngIf"],["mat-line","",1,"e"],["mat-list-icon","","matTooltip","A new function has been added."],["mat-list-icon","","matTooltip","A function has been removed."],["mat-list-icon","","matTooltip","Something has been modified."]],template:function(e,o){1&e&&(t.TgZ(0,"mat-list"),t.YNc(1,rs,7,3,"ng-container",0),t.qZA()),2&e&&(t.xp6(1),t.Q6J("ngForOf",o.changelog.changelogData))},dependencies:[y.sg,y.O5,N.gM,j.Hw,bt.i$,bt.Tg,pe.X2,bt.Nh,bt.gs,ns.d],styles:["[_nghost-%COMP%] .mat-line{word-wrap:break-word!important;white-space:pre-wrap!important}[_nghost-%COMP%] .mat-list .mat-list-item{height:initial!important}.title[_ngcontent-%COMP%]{text-decoration:underline;font-size:20px}.e[_ngcontent-%COMP%] > p[_ngcontent-%COMP%]:first-child{padding-top:12px}"]}),n})();function ls(n,i){if(1&n&&(t.TgZ(0,"li"),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.Oqu(e)}}let cs=(()=>{class n{constructor(){this.knownIssues=["When you click buttons on the page too fast are able to select an invalid state with no results. Just undo your changed settings. And be patient - the calculation is an expensive task.","Sometimes duplicate results are given. This happens when the inventory got updated twice (Race Condition). Only reported once, and not really a problem."],this.changelog=se}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-help-page"]],decls:116,vars:1,consts:[["id","help-container"],["color","primary","fxShow","false","fxShow.lt-md","true","mat-raised-button","","routerLink","/",1,"returnbutton"],["href","https://twitter.com/MijagoCoding/","target","_blank","matTooltip","Birb App"],["alt","Me on twitter","src","assets/logo-twitter.png",1,"logo-twitter"],["href","https://ko-fi.com/mijago","target","_blank","matTooltip","If you like my work, you can always buy me a coffee!"],["alt","Ko-Fi","src","assets/logo-kofi.png",1,"logo-twitter"],["href","http://discord.d2armorpicker.com/","target","_blank","matTooltip","Visit me at the development & support discord."],["alt","Discord","src","assets/logo-discord.png",1,"logo-twitter"],["href","https://github.com/Mijago/D2-Gear-Calculator","target","_blank"],["href","https://mijago.github.io/D2GearCalculator/","target","_blank"],["href","https://twitter.com/MijagoCoding/","target","_blank"],["href","https://ko-fi.com/mijago","target","_blank"],[1,"preview-image-container"],["alt","Preview of the results table","src","assets/armor-images/preview_result_details.png",1,"preview-image"],["fxLayout","row","id","armor-image-container"],["src","assets/armor-images/kabrs_battlecage.png"],["src","assets/armor-images/lightkin_gauntlets.png"],["src","assets/armor-images/phobos_warden_helm.png"],["src","assets/armor-images/wild_hunt_vest.png"],[4,"ngFor","ngForOf"],[1,"changelog-table-container"]],template:function(e,o){1&e&&(t.TgZ(0,"div",0)(1,"a",1),t._uU(2," Return to D2ArmorPicker "),t.qZA(),t.TgZ(3,"mat-card")(4,"mat-card-title")(5,"span"),t._uU(6,"About D2ArmorPicker "),t.TgZ(7,"small"),t._uU(8," by Mijago"),t.qZA(),t.TgZ(9,"a",2),t._UZ(10,"img",3),t.qZA(),t.TgZ(11,"a",4),t._UZ(12,"img",5),t.qZA(),t.TgZ(13,"a",6),t._UZ(14,"img",7),t.qZA()()(),t.TgZ(15,"mat-card-content"),t._uU(16," D2ArmorPicker (or short D2AP) is a small web-app to quickly find armor that fits your desired stat requirements. It uses the armor in your vault, inventory and postmaster, calculates every possible variation and shows only those that fulfill the given requirements. "),t._UZ(17,"br")(18,"br"),t._uU(19," As I raided a lot and I mainly play meme builds, I wanted to be able to switch exotics and have decent stats without being a burden on my team. That's why I developed the "),t.TgZ(20,"a",8),t._uU(21,"first version of this tool"),t.qZA(),t._uU(22," in Python. After a few days I started to translate this tool "),t.TgZ(23,"a",9),t._uU(24,"into a webpage"),t.qZA(),t._uU(25,". My friends liked it, but it didn't have API access. Thus I created the first version of D2ArmorPicker, and after people started using and liking it, I started to completely rewrite it - that's Version\xa02! "),t._UZ(26,"br")(27,"br"),t._uU(28," I keep updating and improving this tool, but beware that it takes a bit, as I work on it on my spare time. Feel free to follow me on Twitter "),t.TgZ(29,"a",10),t._UZ(30,"img",3),t.qZA(),t._uU(31,", I occasionally post updates there. If you like my tools and want to support me, head to "),t.TgZ(32,"a",11),t._uU(33,"ko-fi.com"),t.qZA(),t._uU(34," and buy me a coffee! \u2764 "),t.qZA()(),t.TgZ(35,"mat-card")(36,"mat-card-title"),t._uU(37," How do I use D2ArmorPicker? "),t.qZA(),t.TgZ(38,"mat-card-content"),t._uU(39," Follow these few steps: "),t.TgZ(40,"ol")(41,"li"),t._uU(42,"Login. You already did this!"),t.qZA(),t.TgZ(43,"li"),t._uU(44," [Optional] Pick an exotic you want to use. The tool will only display results for this exotic. You can always undo this. "),t.qZA(),t.TgZ(45,"li"),t._uU(46," [Optional] Select additional mods/fragments that give a bonus (or penalty). These are important if you want certain stat combinations even if you have penalties on your gear. "),t.qZA(),t.TgZ(47,"li"),t._uU(48," Select the stat distribution you seek. This is the heart of D2ArmorPicker. You just click 100 recovery and it will display you builds that have 100 recovery. "),t.TgZ(49,"i"),t._uU(50,"Note that it automatically adds stat mods if necessary."),t.qZA()(),t.TgZ(51,"li"),t._uU(52," Now look to the result table. On a normal desktop it should be on the right, on smaller devices it might move below the configuration. The table lists multiple results and you can sort it by your requirements."),t._UZ(53,"br"),t.TgZ(54,"b"),t._uU(55,"Click"),t.qZA(),t._uU(56," on an entry to open look the detailed view: "),t.TgZ(57,"div",12),t._UZ(58,"img",13),t.qZA(),t._uU(59," The example above shows a build that utilizes Dunemarchers and a zero-waste-build. To achieve it, I have to move all the items in my inventory and equip them. After this, I "),t.TgZ(60,"i"),t._uU(61,"masterwork"),t.qZA(),t._uU(62," them and "),t.TgZ(63,"i"),t._uU(64,"add the mods"),t.qZA(),t._uU(65," as the table displays them: "),t.TgZ(66,"ul")(67,"li")(68,"b"),t._uU(69,"Discipline:"),t.qZA(),t._uU(70," One major mod, one minor mod;"),t.qZA(),t.TgZ(71,"li")(72,"b"),t._uU(73,"Intellect:"),t.qZA(),t._uU(74," One major mod, one minor mod;"),t.qZA(),t.TgZ(75,"li")(76,"b"),t._uU(77,"Strength:"),t.qZA(),t._uU(78," One major mod;"),t.qZA(),t.TgZ(79,"li"),t._uU(80,"I also add Powerful Friends and Radiant Light, as I chose them in the configuration."),t.qZA()()()()()(),t.TgZ(81,"mat-card")(82,"mat-card-title"),t._uU(83," Where can I grind high stat armor? "),t.qZA(),t.TgZ(84,"mat-card-content"),t._uU(85," There are many spots that give you mediocre armor, but for the really good builds you need the correct armor. Here I provide a list of high-stat armor sources. It may not be complete, but a good starting point. "),t.TgZ(86,"i"),t._uU(87,"Last updated February 8, 2022."),t.qZA(),t.TgZ(88,"ul")(89,"li"),t._uU(90," Farm legendary Dares!"),t.qZA(),t.TgZ(91,"li"),t._uU(92," Clear Pit of Heresy Dungeon, the boss drop guarantees two stats to be 16 (or higher)."),t.qZA(),t.TgZ(93,"li"),t._uU(94," Farm a bunch of Spoils, go into Master Vault of Glass and buy armor at the final chest."),t.qZA(),t.TgZ(95,"li"),t._uU(96," The list will be extended sometime in Witch Queen!"),t.qZA()(),t._uU(97," Some good armor rolls may look like these: "),t.TgZ(98,"div",14),t._UZ(99,"img",15)(100,"img",16)(101,"img",17)(102,"img",18),t.qZA()()(),t.TgZ(103,"mat-card")(104,"mat-card-title"),t._uU(105,"Known Issues"),t.qZA(),t.TgZ(106,"mat-card-content")(107,"ul"),t.YNc(108,ls,2,1,"li",19),t.qZA()()(),t.TgZ(109,"mat-card")(110,"mat-card-title"),t._uU(111,"Changelog"),t.qZA(),t.TgZ(112,"mat-card-content",20),t._UZ(113,"app-changelog-list"),t.qZA()(),t.TgZ(114,"a",1),t._uU(115," Return to D2ArmorPicker "),t.qZA()()),2&e&&(t.xp6(108),t.Q6J("ngForOf",o.knownIssues))},dependencies:[y.sg,Y.xw,H.b8,g.zs,A.a8,A.dn,A.n5,N.gM,I.yS,ge],styles:["#help-container[_ngcontent-%COMP%]{max-width:800px;margin-left:auto;margin-right:auto}.changelog-table-container[_ngcontent-%COMP%]{max-height:700px;overflow-y:scroll}mat-card[_ngcontent-%COMP%]{margin-bottom:8px}#armor-image-container[_ngcontent-%COMP%]{overflow:auto}#armor-image-container[_ngcontent-%COMP%] > img[_ngcontent-%COMP%]:not(:last-of-type){margin-right:20px}#armor-image-container[_ngcontent-%COMP%] > img[_ngcontent-%COMP%]{max-height:300px}.preview-image-container[_ngcontent-%COMP%]{max-width:600px}.preview-image[_ngcontent-%COMP%]{max-width:100%}.returnbutton[_ngcontent-%COMP%]{margin-top:5px;margin-bottom:15px;width:100%}.changelog-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]:first-of-type{min-width:80px}.changelog-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]:nth-of-type(2){min-width:40px}.changelog-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-top:#6e6e6e solid 1px}a[_ngcontent-%COMP%]{color:#99afe3}a[_ngcontent-%COMP%]:visited{color:#7294dc}"]}),n})();var V=_(4006),Zt=_(455),vt=_(3217),it=_(811);function us(n,i){if(1&n&&(t.TgZ(0,"th",5),t._uU(1),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.hij("\u2206 Tier ",e.differenceTier,"")}}function ps(n,i){if(1&n&&t._UZ(0,"img",9),2&n){const e=t.oxw(3).$implicit;t.MGl("src","https://www.bungie.net/",e.icon,"",t.LSH)}}function gs(n,i){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=i.ngVar,o=t.oxw(6).$implicit,a=t.oxw();t.ekj("good",a.differenceTiera.tier),t.xp6(1),t.AsE(" ",e>0?"+":"","",a.formatEntry(o,e)," ")}}function _s(n,i){if(1&n&&(t.TgZ(0,"td"),t.YNc(1,gs,2,6,"span",10),t.qZA()),2&n){const e=t.oxw(2).ngVar,o=t.oxw().ngVar;t.xp6(1),t.Q6J("ngVar",-(e-o))}}function fs(n,i){if(1&n&&(t.TgZ(0,"td")(1,"span"),t._uU(2),t.ALo(3,"number"),t.qZA()()),2&n){const e=t.oxw().ngVar,o=t.oxw(5);t.xp6(1),t.ekj("good",o.differenceTiero.tier),t.xp6(1),t.AsE(" (",e>0?"+":"","",t.xi3(3,6,100*e,"1.0-0"),"%) ")}}function hs(n,i){if(1&n&&(t.ynx(0),t.YNc(1,_s,2,1,"td",6),t.YNc(2,fs,4,9,"td",6),t.BQk()),2&n){const e=t.oxw(5);t.xp6(1),t.Q6J("ngIf",e.differenceTier!==e.tier),t.xp6(1),t.Q6J("ngIf",e.differenceTier!==e.tier)}}function xs(n,i){if(1&n&&(t.ynx(0),t.YNc(1,hs,3,2,"ng-container",7),t.BQk()),2&n){const e=i.ngVar,o=t.oxw().ngVar,a=t.oxw(3);t.xp6(1),t.Q6J("ngVar",a.getPercentageDifference(o,e))}}function Ts(n,i){if(1&n&&(t.ynx(0),t._UZ(1,"app-item-icon",11),t.BQk()),2&n){const e=i.$implicit;t.xp6(1),t.Q6J("itemHash",e)}}function ys(n,i){if(1&n&&(t.ynx(0),t.TgZ(1,"td"),t.YNc(2,ps,1,1,"img",8),t._uU(3),t.qZA(),t.TgZ(4,"td"),t._uU(5),t.qZA(),t.YNc(6,xs,2,1,"ng-container",7),t.TgZ(7,"td"),t.YNc(8,Ts,2,1,"ng-container",4),t._uU(9),t.qZA(),t.BQk()),2&n){const e=i.ngVar,o=t.oxw(2).$implicit,a=t.oxw();t.xp6(2),t.Q6J("ngIf",o.icon),t.xp6(1),t.hij(" ",o.name," "),t.xp6(2),t.Oqu(a.formatEntry(o,e)),t.xp6(1),t.Q6J("ngVar",a.valueFunction(o,a.differenceTier)),t.xp6(2),t.Q6J("ngForOf",o.overrideIcons),t.xp6(1),t.hij(" ",o.description," ")}}function bs(n,i){if(1&n&&(t.TgZ(0,"tr"),t.YNc(1,ys,10,6,"ng-container",7),t.qZA()),2&n){const e=t.oxw().$implicit,o=t.oxw();t.xp6(1),t.Q6J("ngVar",o.valueFunction(e,o.tier))}}function Cs(n,i){if(1&n&&(t.ynx(0),t.YNc(1,bs,2,1,"tr",6),t.BQk()),2&n){const e=i.$implicit,o=t.oxw();t.xp6(1),t.Q6J("ngIf",null==e.description||!!e.description[o.characterClass])}}let Zs=(()=>{class n{constructor(e,o){this.config=e,this.characterStats=o,this.ArmorStatNames=r.Mi,this.tier=0,this.differenceTier=0,this.stat=r.WB.Mobility,this.entries=[]}get characterClass(){return this.config.readonlyConfigurationSnapshot.characterClass}ngOnInit(){this.entries=this.characterStats.get(r.Mi[this.stat],this.config.readonlyConfigurationSnapshot.characterClass,this.config.readonlyConfigurationSnapshot.selectedModElement,this.config.readonlyConfigurationSnapshot.selectedExotics)}formatEntry(e,o){return o=parseFloat(o.toFixed(2)),e.valueType===P.Speed?(n=>(Math.round(100*n)/100).toFixed(2)+"m/s")(o):e.valueType===P.Percentage?`${o}%`:e.valueType===P.PercentagePerSecond?`${o}%/s`:e.valueType===P.TimeMMSS?function As(n){var i=function ms(n){n=Math.abs(n),Math.floor(n%1*10);var e=Math.floor(n/60),o=Math.floor(n-60*e);return`${e}:${o<10?"0":""}${o}`}(n);return n<0&&(i="- "+i),i}(o):e.valueType===P.Time?function ws(n){var i=function ds(n){n=Math.abs(n);var i=Math.floor(n%1*10),e=Math.floor(n/60),o=Math.floor(n-60*e);let a=`${o}s`;return i>0&&(a=`${o}.${i}s`),e>0&&(a=`${e}m ${a}`),a}(n);return n<0&&(i="- "+i),i}(o):o}valueFunction(e,o){return e.values[o]}getPercentageDifference(e,o){return(e-o)/Math.max(1,o)}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(B),t.Y36(ae))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-stat-cooldown-tooltip"]],inputs:{tier:"tier",differenceTier:"differenceTier",stat:"stat"},decls:13,vars:5,consts:[[1,"tooltip-container"],["colspan","3",1,"exotic-name"],[2,"min-width","50px"],["style","min-width: 50px","colspan","2",4,"ngIf"],[4,"ngFor","ngForOf"],["colspan","2",2,"min-width","50px"],[4,"ngIf"],[4,"ngVar"],[3,"src",4,"ngIf"],[3,"src"],[3,"good","bad",4,"ngVar"],[3,"itemHash"]],template:function(e,o){1&e&&(t.TgZ(0,"div")(1,"div",0)(2,"table")(3,"tr")(4,"td",1),t._uU(5),t.qZA()(),t.TgZ(6,"tr")(7,"th",2),t._uU(8,"Stat"),t.qZA(),t.TgZ(9,"th",2),t._uU(10),t.qZA(),t.YNc(11,us,2,1,"th",3),t.qZA(),t.YNc(12,Cs,2,1,"ng-container",4),t.qZA()()()),2&e&&(t.xp6(5),t.AsE("",o.ArmorStatNames[o.stat]," at Tier ",o.tier,""),t.xp6(5),t.hij("Tier ",o.tier,""),t.xp6(1),t.Q6J("ngIf",o.differenceTier!==o.tier),t.xp6(1),t.Q6J("ngForOf",o.entries))},dependencies:[y.sg,y.O5,Ct,Ht,y.JJ],styles:["[_nghost-%COMP%]{max-width:420px}.tooltip-container[_ngcontent-%COMP%]{border:1px solid gray;padding:1px 5px 4px;background:linear-gradient(#484848 0px,#2c2c2c 100%)}.exotic-name[_ngcontent-%COMP%]{color:#eedb9e}.good[_ngcontent-%COMP%]{color:#58b458}.bad[_ngcontent-%COMP%]{color:#ff6b6b}table[_ngcontent-%COMP%]{border-collapse:separate;border-spacing:7px 3px}th[_ngcontent-%COMP%]{white-space:nowrap}img[_ngcontent-%COMP%]{width:24px;height:24px;float:left;margin-right:3px}tr[_ngcontent-%COMP%]{line-height:24px}"]}),n})(),Ss=(()=>{class n{constructor(e,o,a){this._overlay=e,this._overlayPositionBuilder=o,this._elementRef=a,this.showToolTip=!0,this.tooltipTier=0,this.tooltipStat=r.WB.Mobility,this.tooltipDifferenceTier=0}ngOnInit(){if(!this.showToolTip)return;const e=this._overlayPositionBuilder.flexibleConnectedTo(this._elementRef).withPositions([{originX:"center",originY:"bottom",overlayX:"center",overlayY:"top",offsetY:5},{originX:"center",originY:"top",overlayX:"center",overlayY:"bottom",offsetY:-5}]);this._overlayRef=this._overlay.create({positionStrategy:e}),this._overlayRef.addPanelClass("overlay-no-pointer-event")}show(){if(this._overlayRef&&!this._overlayRef.hasAttached()){const e=this._overlayRef.attach(new Nt.C5(Zs));e.instance.tier=this.tooltipTier,e.instance.differenceTier=this.tooltipDifferenceTier,e.instance.stat=this.tooltipStat}}hide(){this.closeToolTip()}ngOnDestroy(){this.closeToolTip()}closeToolTip(){this._overlayRef&&this._overlayRef.detach()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(pt.aV),t.Y36(pt.wJ),t.Y36(t.SBq))},n.\u0275dir=t.lG2({type:n,selectors:[["","statCooldownTooltip",""]],hostBindings:function(e,o){1&e&&t.NdJ("mouseenter",function(){return o.show()})("mouseleave",function(){return o.hide()})},inputs:{showToolTip:"showToolTip",tooltipTier:"tooltipTier",tooltipStat:"tooltipStat",tooltipDifferenceTier:"tooltipDifferenceTier",contentTemplate:"contentTemplate"}}),n})();function Is(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"mat-button-toggle",4),t.NdJ("click",function(){const s=t.CHM(e).index,l=t.oxw();return t.KtG(l.setValue(s))}),t.TgZ(1,"div",5),t._uU(2),t.qZA()()}if(2&n){const e=i.index,o=t.oxw();t.ekj("isFromMod",o.isAddedByConfigMods(e))("mat-button-toggle-checked",o.selectedTier>=e)("not-checked",o.selectedTier{class n{constructor(){this.TierRange=new Array(11),this.stat=r.WB.Mobility,this.statsByMods=0,this.maximumAvailableTier=10,this.selectedTier=0,this.locked=!1,this.selectedTierChange=new t.vpe,this.lockedChange=new t.vpe}setValue(e){e<=this.maximumAvailableTier&&(this.selectedTier=e,this.selectedTierChange.emit(e))}isAddedByConfigMods(e){return e>0&&(this.selectedTier-e>=0&&this.selectedTier-e{class n{constructor(e,o){this.config=e,this.inventory=o,this.minimumStatTiers=zt(1),this.maximumPossibleTiers=[10,10,10,10,10,10],this.statsByMods=[0,0,0,0,0,0],this._statCombo4x100=[],this._statCombo3x100=[],this.config_zero_waste=!1,this.config_mod_strategy=yt.None,this.config_reduce_waste=!1,this.ngUnsubscribe=new nt.xQ,this.stats=Object.keys(r.WB).filter(a=>!isNaN(Number(a))).map(a=>({name:r.WB[a],value:+a}))}ngOnInit(){this.config.configuration.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(e=>{const o=[0,0,0,0,0,0];for(let a of e.enabledMods)for(let s of ut[a].bonus)o[s.stat]+=s.value/10;this.statsByMods=o,this.minimumStatTiers=e.minimumStatTiers,this.config_zero_waste=e.onlyShowResultsWithNoWastedStats,this.config_mod_strategy=e.modOptimizationStrategy,this.config_reduce_waste=e.tryLimitWastedStats}),this.inventory.armorResults.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(e=>{const o=e.maximumPossibleTiers||[10,10,10,10,10,10];console.log("d.maximumPossibleTiers",o),o.filter(a=>0==a).length<6&&(this.maximumPossibleTiers=o),this._statCombo3x100=(e.statCombo3x100||[]).sort((a,s)=>_e(s)-_e(a)),this._statCombo4x100=e.statCombo4x100||[]})}setSelectedTier(e,o){this.config.modifyConfiguration(a=>{a.minimumStatTiers[e].value=o})}clearStatSelection(){this.config.modifyConfiguration(e=>{for(let o=0;o<6;o++)e.minimumStatTiers[o]={fixed:!1,value:0}})}useStatPreset(e){0!=e.filter(o=>10!=this.config.readonlyConfigurationSnapshot.minimumStatTiers[o].value).length&&this.config.modifyConfiguration(o=>{for(let a of e)o.minimumStatTiers[a].value=10})}setLockState(e,o){this.config.modifyConfiguration(a=>{a.minimumStatTiers[e].fixed=o})}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}setModOptimizationStrategy(){this.config.modifyConfiguration(e=>{e.modOptimizationStrategy=this.config_mod_strategy})}toggleReduceWaste(){this.config.modifyConfiguration(e=>{e.tryLimitWastedStats=!this.config_reduce_waste})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(B),t.Y36(K))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-desired-stat-selection"]],decls:41,vars:12,consts:[[4,"ngFor","ngForOf"],["id","tierSelectButtonContainer"],[1,"tierSelectButton"],["mat-stroked-button","","color","warn","id","clearStatButton",3,"click"],["mat-stroked-button","","aria-label","Select builds with three stats at tier 10.",1,"selectStatDistributionButton",3,"matMenuTriggerFor","disabled"],["menu",""],["menu1","matMenu"],["mat-menu-item","",3,"click",4,"ngFor","ngForOf"],["mat-stroked-button","","aria-label","Select builds with four stats at tier 10.",3,"matMenuTriggerFor","disabled"],["menu2","matMenu"],[3,"ngModel","ngModelChange","change"],["matTooltip","Fast. Will result in good and fast results. Some better results *may* be skipped.",3,"value"],["matTooltip","Slower. Reduces the amount of used mods. This means that it will try to give you 4 mods instead of 5 whenever possible.",3,"value"],["matTooltip","Slower. Reduces the total cost of mods. This will result in less Intellect mods, for example.",3,"value"],["color","primary",3,"checked","change"],[1,"statContainerWrapper"],["src","https://www.bungie.net/common/destiny2_content/icons/e26e0e93a9daf4fdd21bf64eb9246340.png","alt","Mobility","class","dialogStatIcon",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/202ecc1c6febeb6b97dafc856e863140.png","alt","Resilience","class","dialogStatIcon",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/128eee4ee7fc127851ab32eac6ca91cf.png","alt","Recovery","class","dialogStatIcon",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/79be2d4adef6a19203f7385e5c63b45b.png","alt","Discipline","class","dialogStatIcon",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/d1c154469670e9a592c9d4cbdcae5764.png","alt","Intellect","class","dialogStatIcon",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/ea5af04ccd6a3470a44fd7bb0f66e2f7.png","alt","Strength","class","dialogStatIcon",4,"ngIf"],[3,"stat","statsByMods","maximumAvailableTier","selectedTier","locked","selectedTierChange","lockedChange"],["src","https://www.bungie.net/common/destiny2_content/icons/e26e0e93a9daf4fdd21bf64eb9246340.png","alt","Mobility",1,"dialogStatIcon"],["src","https://www.bungie.net/common/destiny2_content/icons/202ecc1c6febeb6b97dafc856e863140.png","alt","Resilience",1,"dialogStatIcon"],["src","https://www.bungie.net/common/destiny2_content/icons/128eee4ee7fc127851ab32eac6ca91cf.png","alt","Recovery",1,"dialogStatIcon"],["src","https://www.bungie.net/common/destiny2_content/icons/79be2d4adef6a19203f7385e5c63b45b.png","alt","Discipline",1,"dialogStatIcon"],["src","https://www.bungie.net/common/destiny2_content/icons/d1c154469670e9a592c9d4cbdcae5764.png","alt","Intellect",1,"dialogStatIcon"],["src","https://www.bungie.net/common/destiny2_content/icons/ea5af04ccd6a3470a44fd7bb0f66e2f7.png","alt","Strength",1,"dialogStatIcon"],["mat-menu-item","",3,"click"],["class","statContainerWrapper",4,"ngFor","ngForOf"]],template:function(e,o){if(1&e&&(t.TgZ(0,"table"),t.YNc(1,qs,12,12,"tr",0),t.qZA(),t.TgZ(2,"span",1)(3,"span",2)(4,"button",3),t.NdJ("click",function(){return o.clearStatSelection()}),t._uU(5,"Clear"),t.qZA()(),t.TgZ(6,"span",2)(7,"button",4)(8,"mat-icon"),t._uU(9,"expand_more"),t.qZA(),t._uU(10," Select 3x T10 Builds "),t.qZA(),t.TgZ(11,"mat-menu",5,6),t.YNc(13,Hs,2,1,"button",7),t.qZA()(),t.TgZ(14,"span",2)(15,"button",8)(16,"mat-icon"),t._uU(17,"expand_more"),t.qZA(),t._uU(18," Select 4x T10 Builds "),t.qZA(),t.TgZ(19,"mat-menu",null,9),t.YNc(21,tr,2,1,"button",7),t.qZA()()(),t._UZ(22,"br")(23,"br"),t.TgZ(24,"div")(25,"div")(26,"b"),t._uU(27,"Mod optimization strategy:"),t.qZA()(),t.TgZ(28,"div"),t._uU(29,"You can choose if the algorithm should keep an eye on amount or the cost of mods."),t.qZA(),t.TgZ(30,"mat-button-toggle-group",10),t.NdJ("ngModelChange",function(s){return o.config_mod_strategy=s})("change",function(){return o.setModOptimizationStrategy()}),t.TgZ(31,"mat-button-toggle",11),t._uU(32,"No extra logic (fast)"),t.qZA(),t.TgZ(33,"mat-button-toggle",12),t._uU(34,"Fewer mods, high cost (slow)"),t.qZA(),t.TgZ(35,"mat-button-toggle",13),t._uU(36,"Many mods, low cost (slow)"),t.qZA()()(),t._UZ(37,"br"),t.TgZ(38,"div")(39,"mat-slide-toggle",14),t.NdJ("change",function(){return o.toggleReduceWaste()}),t._uU(40," Add mods to reduce wasted stats (slower) "),t.qZA()()),2&e){const a=t.MAs(12),s=t.MAs(20);t.xp6(1),t.Q6J("ngForOf",o.stats),t.xp6(6),t.Q6J("matMenuTriggerFor",a)("disabled",0===o._statCombo3x100.length),t.xp6(6),t.Q6J("ngForOf",o._statCombo3x100),t.xp6(2),t.Q6J("matMenuTriggerFor",s)("disabled",0===o._statCombo4x100.length),t.xp6(6),t.Q6J("ngForOf",o._statCombo4x100),t.xp6(9),t.Q6J("ngModel",o.config_mod_strategy),t.xp6(1),t.Q6J("value",0),t.xp6(2),t.Q6J("value",1),t.xp6(2),t.Q6J("value",2),t.xp6(4),t.Q6J("checked",o.config_reduce_waste)}},dependencies:[y.sg,y.O5,V.JJ,V.On,g.lW,Zt.Rr,N.gM,j.Hw,vt.VK,vt.OP,vt.p6,it.A9,it.Yi,ks],styles:["#tierSelectButtonContainer[_ngcontent-%COMP%] > .tierSelectButton[_ngcontent-%COMP%]:not(:last-child){margin-right:5px}.dialogStatIcon[_ngcontent-%COMP%]{height:35px}.warn[_ngcontent-%COMP%]{background-color:#8b0000;padding-left:15px;padding-right:15px}"]}),n})();function nr(n,i){if(1&n&&(t.TgZ(0,"div")(1,"div",22),t._UZ(2,"img",23)(3,"img",24),t.O4$(),t.TgZ(4,"svg",25)(5,"text",26),t._uU(6,"3"),t.qZA()(),t.TgZ(7,"svg",27)(8,"text",26),t._uU(9,"1"),t.qZA()(),t.kcU(),t._UZ(10,"div",28),t.qZA(),t.TgZ(11,"div",22),t._UZ(12,"img",29)(13,"img",30),t.O4$(),t.TgZ(14,"svg",25)(15,"text",26),t._uU(16,"4"),t.qZA()(),t.TgZ(17,"svg",27)(18,"text",26),t._uU(19,"2"),t.qZA()(),t.kcU(),t._UZ(20,"div",28),t.qZA(),t.TgZ(21,"div",22),t._UZ(22,"img",31)(23,"img",32),t.O4$(),t.TgZ(24,"svg",25)(25,"text",26),t._uU(26,"3"),t.qZA()(),t.TgZ(27,"svg",27)(28,"text",26),t._uU(29,"1"),t.qZA()(),t.kcU(),t._UZ(30,"div",28),t.qZA(),t.TgZ(31,"div",22),t._UZ(32,"img",33)(33,"img",34),t.O4$(),t.TgZ(34,"svg",25)(35,"text",26),t._uU(36,"3"),t.qZA()(),t.TgZ(37,"svg",27)(38,"text",26),t._uU(39,"1"),t.qZA()(),t.kcU(),t._UZ(40,"div",28),t.qZA(),t.TgZ(41,"div",22),t._UZ(42,"img",35)(43,"img",36),t.O4$(),t.TgZ(44,"svg",25)(45,"text",26),t._uU(46,"4"),t.qZA()(),t.TgZ(47,"svg",27)(48,"text",26),t._uU(49,"2"),t.qZA()(),t.kcU(),t._UZ(50,"div",28),t.qZA(),t.TgZ(51,"div",22),t._UZ(52,"img",37)(53,"img",38),t.O4$(),t.TgZ(54,"svg",25)(55,"text",26),t._uU(56,"4"),t.qZA()(),t.TgZ(57,"svg",27)(58,"text",26),t._uU(59,"2"),t.qZA()(),t.kcU(),t._UZ(60,"div",28),t.qZA()()),2&n){const e=i.ngVar;t.xp6(1),t.ekj("major",e>=3)("minor",e>=1&&e<3),t.xp6(10),t.ekj("major",e>=4)("minor",e>=2&&e<4),t.xp6(10),t.ekj("major",e>=3)("minor",e>=1&&e<3),t.xp6(10),t.ekj("major",e>=3)("minor",e>=1&&e<3),t.xp6(10),t.ekj("major",e>=4)("minor",e>=2&&e<4),t.xp6(10),t.ekj("major",e>=4)("minor",e>=2&&e<4)}}function or(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"mat-button-toggle",39),t.NdJ("click",function(){const s=t.CHM(e).index,l=t.oxw();return t.KtG(l.setValue(s))}),t._uU(1),t.qZA()}if(2&n){const e=i.index,o=t.oxw();t.Gre("select-button ",o.selection>=e?"mat-button-toggle-checked":"",""),t.Q6J("value",e),t.xp6(1),t.Oqu(e)}}function ir(n,i){1&n&&(t.TgZ(0,"mat-icon"),t._uU(1,"lock_open"),t.qZA())}function ar(n,i){1&n&&(t.TgZ(0,"mat-icon"),t._uU(1,"lock"),t.qZA())}function sr(n,i){if(1&n){const e=t.EpF();t.ynx(0),t.TgZ(1,"button",40),t.NdJ("click",function(){const s=t.CHM(e).$implicit,l=t.oxw();return t.KtG(l.setArmorPerk(s))}),t._UZ(2,"app-armor-perk-icon",41),t.TgZ(3,"span",42),t._uU(4),t.qZA()(),t.BQk()}if(2&n){const e=i.$implicit,o=t.oxw();t.xp6(1),t.ekj("selected-menu",e===o.armorPerk),t.xp6(1),t.Q6J("perk",e),t.xp6(2),t.Oqu(o.ArmorPerkOrSlotNames[e])}}function rr(n,i){if(1&n&&t._UZ(0,"img",43,44),2&n){const e=t.oxw();t.MGl("matTooltip","If you enable the lock on the settings on the right they will be forced to exist on a ",e.slotName,".")}}function lr(n,i){if(1&n&&t._UZ(0,"img",45,44),2&n){const e=t.oxw();t.MGl("matTooltip","If you enable the lock on the settings on the right they will be forced to exist on a ",e.slotName,".")}}function cr(n,i){if(1&n&&t._UZ(0,"img",46,44),2&n){const e=t.oxw();t.MGl("matTooltip","If you enable the lock on the settings on the right they will be forced to exist on a ",e.slotName,".")}}function mr(n,i){if(1&n&&t._UZ(0,"img",47,44),2&n){const e=t.oxw();t.MGl("matTooltip","If you enable the lock on the settings on the right they will be forced to exist on a ",e.slotName,".")}}function dr(n,i){if(1&n&&t._UZ(0,"img",48,44),2&n){const e=t.oxw();t.MGl("matTooltip","If you enable the lock on the settings on the right they will be forced to exist on a ",e.slotName,".")}}let ur=(()=>{class n{constructor(e,o,a){this.config=e,this.inventory=o,this.db=a,this.featureDisabled=!S_featureFlags_enableModslotLimitation,this.ArmorSlot=C.y,this.ArmorPerkOrSlotNames=r.cM,this.ArmorPerkOrSlot=r.Pn,this.ModRange=new Array(6),this.selection=5,this.slot=C.y.ArmorSlotHelmet,this.possible=new t.vpe,this.isPossible=!0,this.configSelectedClass=0,this.armorPerk=r.Pn.None,this.armorPerkLock=!1,this.maximumModSlots=5,this.hoveredSlot=-1,this.disabled=!1,this.availableArmorPerks=[r.Pn.None,r.Pn.PerkQueensFavor,r.Pn.SonarAmplifier,r.Pn.SlotRootOfNightmares,r.Pn.SlotKingsFall,r.Pn.SlotCrotasEnd,r.Pn.SlotVowOfTheDisciple,r.Pn.SlotVaultOfGlass,r.Pn.SlotDeepStoneCrypt,r.Pn.SlotGardenOfSalvation,r.Pn.SlotLastWish,r.Pn.SlotNightmare,r.Pn.SlotArtifice,r.Pn.PerkIronBanner,r.Pn.PerkUniformedOfficer,r.Pn.PerkPlunderersTrappings,r.Pn.SeraphSensorArray],this.ngUnsubscribe=new nt.xQ}runPossibilityCheck(){var e=this;return(0,m.Z)(function*(){if(e.armorPerkLock&&e.armorPerk!=r.Pn.None){var a=yield e.db.inventoryArmor.where("clazz").equals(e.configSelectedClass).and(s=>s.slot==e.slot).and(s=>s.perk==e.armorPerk).count();e.isPossible=a>0}else e.isPossible=!0;e.possible.next(e.isPossible)})()}get slotName(){switch(this.slot){case C.y.ArmorSlotHelmet:return"Helmet";case C.y.ArmorSlotGauntlet:return"Gauntlet";case C.y.ArmorSlotChest:return"Chest";case C.y.ArmorSlotLegs:return"Leg";case C.y.ArmorSlotClass:return"Class Item";default:return""}}ngOnInit(){var e=this;this.config.configuration.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(function(){var o=(0,m.Z)(function*(a){var s=e.configSelectedClass!=a.characterClass||e.selection!=a.maximumModSlots[e.slot].value||e.armorPerk!=a.armorPerks[e.slot].value||e.armorPerkLock!=a.armorPerks[e.slot].fixed||e.maximumModSlots!=a.maximumModSlots[e.slot].value;e.configSelectedClass=a.characterClass,e.selection=a.maximumModSlots[e.slot].value,e.armorPerk=a.armorPerks[e.slot].value,e.armorPerkLock=a.armorPerks[e.slot].fixed,e.maximumModSlots=a.maximumModSlots[e.slot].value,e.disabled=(yield e.inventory.getExoticsForClass(a.characterClass)).filter(l=>a.selectedExotics.indexOf(l.item.hash)>-1).map(l=>l.item.slot).indexOf(e.slot)>-1,s&&(yield e.runPossibilityCheck())});return function(a){return o.apply(this,arguments)}}())}ngAfterViewInit(){S_featureFlags_enableGuardianGamesFeatures&&this.slot===C.y.ArmorSlotClass&&this.availableArmorPerks.splice(1,0,r.Pn.GuardianGamesClassItem)}toggleArmorPerkLock(){this.config.modifyConfiguration(e=>{e.armorPerks[this.slot].fixed=!e.armorPerks[this.slot].fixed})}setArmorPerk(e){this.armorPerk!=e&&this.config.modifyConfiguration(o=>{o.armorPerks[this.slot].value=e})}setValue(e){this.featureDisabled||this.maximumModSlots!=e&&(this.maximumModSlots=e,this.config.modifyConfiguration(o=>o.maximumModSlots[this.slot].value=e))}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(B),t.Y36(K),t.Y36(et))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-slot-limitation-selection"]],inputs:{slot:"slot"},outputs:{possible:"possible"},decls:35,vars:58,consts:[[1,"container"],[1,"energy"],[1,"energy-container",3,"mouseout"],[1,"energy-bar","blocked",3,"click","mouseover"],[1,"energy-bar",3,"click","mouseover"],[4,"ngVar"],["appearance","standard","name","fontStyle",2,"display","none"],[3,"value","class","click",4,"ngFor","ngForOf"],[1,"selector-slots"],["value","bold",3,"matMenuTriggerFor"],[3,"perk"],["disabled","",3,"disabled","matTooltip","click"],[4,"ngIf"],[1,"modslot-select-scroll-menu"],["dropdownArmorModslot","matMenu"],[4,"ngFor","ngForOf"],[1,"slot-icon-container"],["class","slot-icon","src","data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51 51'%3e%3cpath d='M24.77 7.03c-8.15.38-14.42 7.41-14.42 15.57v16.06c0 .23.13.44.34.53l10.33 4.68c.78.35 1.66-.22 1.66-1.07V31.9c0-.39-.19-.75-.52-.97l-5.39-3.64c-.87-.52-1.43-1.5-1.34-2.61.13-1.46 1.46-2.52 2.93-2.52h4.36c.65 0 1.17.53 1.17 1.17v6.71s0 .61 1.61.61 1.61-.61 1.61-.61v-6.71c0-.65.52-1.17 1.17-1.17h4.36c1.47 0 2.8 1.06 2.93 2.52.1 1.11-.47 2.09-1.34 2.61l-5.39 3.64c-.32.22-.52.58-.52.97v10.91c0 .85.88 1.42 1.66 1.07l10.33-4.68c.21-.1.34-.3.34-.53v-16.5c.01-8.61-7.18-15.55-15.88-15.14z'/%3e%3c/svg%3e",3,"matTooltip",4,"ngIf"],["class","slot-icon","src","data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51 51'%3e%3cpath d='M40.1 30.03c.39-.47.59-1.11.42-1.8-.18-.76-.81-1.39-1.58-1.55-.81-.17-1.54.14-2.01.68 0 0-.03.04-.05.07l-.12.15c-.47.61-1.95 2.37-3.29 2.45-1.62.1 2.51-16.14 2.51-16.14h-.01c.04-.15.07-.31.07-.48 0-.98-.79-1.77-1.77-1.77-.81 0-1.49.55-1.69 1.29h-.01s-.01.03-.01.05l-.03.15c-.24 1.21-1.68 8.2-2.81 8.89-1.24.75-1.22-13.23-1.22-13.23 0-.98-.79-1.77-1.77-1.77s-1.77.79-1.77 1.77c0 0-.35 12.85-1.73 12.73-1.37-.12-2.47-10.67-2.47-10.67 0-.98-.79-1.77-1.77-1.77s-1.77.79-1.77 1.77c0 .15.02.28.06.42.27 2.06 1.36 11.12-.06 11.12-1.6 0-3.68-6.35-3.68-6.35a1.62 1.62 0 0 0-3.14.56c0 .09.01.17.03.25l-.03.01s.02.07.07.19c.02.09.05.17.09.25.99 2.71 6.28 17.46 7.26 26.23.03.25.24.44.49.44H30.5a.5.5 0 0 0 .5-.45c.1-1.04.52-3.68 2.09-5.54 1.8-2.14 6.06-6.89 6.86-7.79.02-.02.03-.04.05-.06.07-.06.11-.1.1-.1z'/%3e%3c/svg%3e",3,"matTooltip",4,"ngIf"],["class","slot-icon","src","data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51 51'%3e%3cpath d='M42.49 13.55c-1.06-1.51-4.05-5.05-9.52-6.49a.635.635 0 0 0-.78.5c-.35 2.04-1.78 8.08-6.69 8.08s-6.34-6.04-6.69-8.08a.635.635 0 0 0-.78-.5c-5.47 1.44-8.46 4.98-9.52 6.49-.24.34-.09.8.3.94 2.01.7 7.34 2.94 7.34 7.01 0 4.24-4.47 6.89-5.87 7.61-.25.13-.38.4-.33.67 1.44 7.62 7.55 13.09 8.67 14.04.11.1.25.15.4.15h12.94c.15 0 .29-.05.4-.15 1.12-.95 7.23-6.42 8.67-14.04a.624.624 0 0 0-.33-.67c-1.4-.72-5.87-3.37-5.87-7.61 0-4.08 5.33-6.32 7.34-7.01.41-.14.56-.61.32-.94z'/%3e%3c/svg%3e",3,"matTooltip",4,"ngIf"],["class","slot-icon","src","data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51 51'%3e%3cpath d='M13 7.6h13.96c1.73 0 2.99 1.64 2.54 3.32l-5.44 20.46c-.07.28.03.57.28.72.99.62 4.64 2.57 8.15 5.78.12.11 2.92-.03 3.09-.01 2.31.2 3.97-.08 5.05 4.7.09.42-.21.82-.64.82H11.82c-.34 0-.63-.26-.66-.61-.15-1.82-.4-7.23 1.74-9.32a.62.62 0 0 0 .2-.6c-.39-1.74-2.09-9.83-2.74-22.48-.07-1.5 1.12-2.78 2.64-2.78z'/%3e%3c/svg%3e",3,"matTooltip",4,"ngIf"],["class","slot-icon","src","data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51 51'%3e%3cpath d='M43.12 7.12c-4.13 2.33-17.62 1.9-17.62 1.9s-13.49.43-17.62-1.9c-.37-.21-.85-.03-.94.39-.36 1.49-.87 4.42.09 5.86.09.13.22.21.38.25 1.23.3 7.36 1.65 18.09 1.65s16.86-1.35 18.09-1.65c.15-.04.29-.12.38-.25.96-1.44.45-4.37.1-5.86-.1-.42-.58-.6-.95-.39zM9.27 28.34s0 2.34 2.27 2.34 2.27-2.34 2.27-2.34V15.73c-1.93-.22-3.45-.45-4.55-.65v13.26zM16.3 34.8s0 2.34 2.27 2.34 2.27-2.34 2.27-2.34V16.24c-1.66-.06-3.18-.16-4.55-.27V34.8zM37.18 28.34s0 2.34 2.27 2.34 2.27-2.34 2.27-2.34V15.08c-1.09.2-2.61.44-4.55.65v12.61zM30.15 34.8s0 2.34 2.27 2.34 2.27-2.34 2.27-2.34V15.97c-1.36.11-2.88.21-4.55.27V34.8zM23.23 16.31v25.31s0 2.34 2.27 2.34 2.27-2.34 2.27-2.34V16.31c-.74.01-1.49.02-2.27.02-.78.01-1.54 0-2.27-.02z'/%3e%3c/svg%3e",3,"matTooltip",4,"ngIf"],[1,"mod-info"],["src","https://www.bungie.net/common/destiny2_content/icons/8861e73c6701b8347cef025d400cd3dc.png",1,"mod-icon","mod-major"],["src","https://www.bungie.net/common/destiny2_content/icons/a6694a4ff65d371d19330fb10415b315.png",1,"mod-icon","mod-minor"],["viewBox","0 0 100 100",1,"mod-number","mod-major"],["font-size","25px","text-anchor","end","x","87","y","30"],["viewBox","0 0 100 100",1,"mod-number","mod-minor"],[1,"overlay"],["src","https://www.bungie.net/common/destiny2_content/icons/b2228e67e72fad2eb37735a33e0d0116.png",1,"mod-icon","mod-major"],["src","https://www.bungie.net/common/destiny2_content/icons/ab1ffe5128806c3639e531f89a2d72d1.png",1,"mod-icon","mod-minor"],["src","https://www.bungie.net/common/destiny2_content/icons/3a5a2d6ee50b2611ebc4d4806d29301a.png",1,"mod-icon","mod-major"],["src","https://www.bungie.net/common/destiny2_content/icons/f841f379751b7672fca0e5f231e92638.png",1,"mod-icon","mod-minor"],["src","https://www.bungie.net/common/destiny2_content/icons/7b64c0b8014a57c6c297babb18c2239e.png",1,"mod-icon","mod-major"],["src","https://www.bungie.net/common/destiny2_content/icons/dbd1615501778b66bca2764b9a561044.png",1,"mod-icon","mod-minor"],["src","https://www.bungie.net/common/destiny2_content/icons/4251f77e3b24900e262f16d5587980ef.png",1,"mod-icon","mod-major"],["src","https://www.bungie.net/common/destiny2_content/icons/e0fc8c022c2ab49ef92caff5843db7da.png",1,"mod-icon","mod-minor"],["src","https://www.bungie.net/common/destiny2_content/icons/98408051297c26cb033cb761ab955fac.png",1,"mod-icon","mod-major"],["src","https://www.bungie.net/common/destiny2_content/icons/f26479a3462676d613f135657ecad45a.png",1,"mod-icon","mod-minor"],[3,"value","click"],["mat-menu-item","",3,"click"],[1,"menuArmorIcon",3,"perk"],[1,"menuArmorText"],["src","data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51 51'%3e%3cpath d='M24.77 7.03c-8.15.38-14.42 7.41-14.42 15.57v16.06c0 .23.13.44.34.53l10.33 4.68c.78.35 1.66-.22 1.66-1.07V31.9c0-.39-.19-.75-.52-.97l-5.39-3.64c-.87-.52-1.43-1.5-1.34-2.61.13-1.46 1.46-2.52 2.93-2.52h4.36c.65 0 1.17.53 1.17 1.17v6.71s0 .61 1.61.61 1.61-.61 1.61-.61v-6.71c0-.65.52-1.17 1.17-1.17h4.36c1.47 0 2.8 1.06 2.93 2.52.1 1.11-.47 2.09-1.34 2.61l-5.39 3.64c-.32.22-.52.58-.52.97v10.91c0 .85.88 1.42 1.66 1.07l10.33-4.68c.21-.1.34-.3.34-.53v-16.5c.01-8.61-7.18-15.55-15.88-15.14z'/%3e%3c/svg%3e",1,"slot-icon",3,"matTooltip"],["tooltip","matTooltip"],["src","data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51 51'%3e%3cpath d='M40.1 30.03c.39-.47.59-1.11.42-1.8-.18-.76-.81-1.39-1.58-1.55-.81-.17-1.54.14-2.01.68 0 0-.03.04-.05.07l-.12.15c-.47.61-1.95 2.37-3.29 2.45-1.62.1 2.51-16.14 2.51-16.14h-.01c.04-.15.07-.31.07-.48 0-.98-.79-1.77-1.77-1.77-.81 0-1.49.55-1.69 1.29h-.01s-.01.03-.01.05l-.03.15c-.24 1.21-1.68 8.2-2.81 8.89-1.24.75-1.22-13.23-1.22-13.23 0-.98-.79-1.77-1.77-1.77s-1.77.79-1.77 1.77c0 0-.35 12.85-1.73 12.73-1.37-.12-2.47-10.67-2.47-10.67 0-.98-.79-1.77-1.77-1.77s-1.77.79-1.77 1.77c0 .15.02.28.06.42.27 2.06 1.36 11.12-.06 11.12-1.6 0-3.68-6.35-3.68-6.35a1.62 1.62 0 0 0-3.14.56c0 .09.01.17.03.25l-.03.01s.02.07.07.19c.02.09.05.17.09.25.99 2.71 6.28 17.46 7.26 26.23.03.25.24.44.49.44H30.5a.5.5 0 0 0 .5-.45c.1-1.04.52-3.68 2.09-5.54 1.8-2.14 6.06-6.89 6.86-7.79.02-.02.03-.04.05-.06.07-.06.11-.1.1-.1z'/%3e%3c/svg%3e",1,"slot-icon",3,"matTooltip"],["src","data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51 51'%3e%3cpath d='M42.49 13.55c-1.06-1.51-4.05-5.05-9.52-6.49a.635.635 0 0 0-.78.5c-.35 2.04-1.78 8.08-6.69 8.08s-6.34-6.04-6.69-8.08a.635.635 0 0 0-.78-.5c-5.47 1.44-8.46 4.98-9.52 6.49-.24.34-.09.8.3.94 2.01.7 7.34 2.94 7.34 7.01 0 4.24-4.47 6.89-5.87 7.61-.25.13-.38.4-.33.67 1.44 7.62 7.55 13.09 8.67 14.04.11.1.25.15.4.15h12.94c.15 0 .29-.05.4-.15 1.12-.95 7.23-6.42 8.67-14.04a.624.624 0 0 0-.33-.67c-1.4-.72-5.87-3.37-5.87-7.61 0-4.08 5.33-6.32 7.34-7.01.41-.14.56-.61.32-.94z'/%3e%3c/svg%3e",1,"slot-icon",3,"matTooltip"],["src","data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51 51'%3e%3cpath d='M13 7.6h13.96c1.73 0 2.99 1.64 2.54 3.32l-5.44 20.46c-.07.28.03.57.28.72.99.62 4.64 2.57 8.15 5.78.12.11 2.92-.03 3.09-.01 2.31.2 3.97-.08 5.05 4.7.09.42-.21.82-.64.82H11.82c-.34 0-.63-.26-.66-.61-.15-1.82-.4-7.23 1.74-9.32a.62.62 0 0 0 .2-.6c-.39-1.74-2.09-9.83-2.74-22.48-.07-1.5 1.12-2.78 2.64-2.78z'/%3e%3c/svg%3e",1,"slot-icon",3,"matTooltip"],["src","data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51 51'%3e%3cpath d='M43.12 7.12c-4.13 2.33-17.62 1.9-17.62 1.9s-13.49.43-17.62-1.9c-.37-.21-.85-.03-.94.39-.36 1.49-.87 4.42.09 5.86.09.13.22.21.38.25 1.23.3 7.36 1.65 18.09 1.65s16.86-1.35 18.09-1.65c.15-.04.29-.12.38-.25.96-1.44.45-4.37.1-5.86-.1-.42-.58-.6-.95-.39zM9.27 28.34s0 2.34 2.27 2.34 2.27-2.34 2.27-2.34V15.73c-1.93-.22-3.45-.45-4.55-.65v13.26zM16.3 34.8s0 2.34 2.27 2.34 2.27-2.34 2.27-2.34V16.24c-1.66-.06-3.18-.16-4.55-.27V34.8zM37.18 28.34s0 2.34 2.27 2.34 2.27-2.34 2.27-2.34V15.08c-1.09.2-2.61.44-4.55.65v12.61zM30.15 34.8s0 2.34 2.27 2.34 2.27-2.34 2.27-2.34V15.97c-1.36.11-2.88.21-4.55.27V34.8zM23.23 16.31v25.31s0 2.34 2.27 2.34 2.27-2.34 2.27-2.34V16.31c-.74.01-1.49.02-2.27.02-.78.01-1.54 0-2.27-.02z'/%3e%3c/svg%3e",1,"slot-icon",3,"matTooltip"]],template:function(e,o){if(1&e&&(t.TgZ(0,"div",0)(1,"div",1)(2,"div",2),t.NdJ("mouseout",function(){return o.hoveredSlot=-1}),t.TgZ(3,"div",3),t.NdJ("click",function(){return o.setValue(5)})("mouseover",function(){return o.hoveredSlot=0}),t.qZA(),t.TgZ(4,"div",3),t.NdJ("click",function(){return o.setValue(5)})("mouseover",function(){return o.hoveredSlot=0}),t.qZA(),t.TgZ(5,"div",3),t.NdJ("click",function(){return o.setValue(5)})("mouseover",function(){return o.hoveredSlot=0}),t.qZA(),t.TgZ(6,"div",3),t.NdJ("click",function(){return o.setValue(5)})("mouseover",function(){return o.hoveredSlot=0}),t.qZA(),t.TgZ(7,"div",3),t.NdJ("click",function(){return o.setValue(5)})("mouseover",function(){return o.hoveredSlot=0}),t.qZA(),t.TgZ(8,"div",4),t.NdJ("click",function(){return o.setValue(4)})("mouseover",function(){return o.hoveredSlot=1}),t.qZA(),t.TgZ(9,"div",4),t.NdJ("click",function(){return o.setValue(3)})("mouseover",function(){return o.hoveredSlot=2}),t.qZA(),t.TgZ(10,"div",4),t.NdJ("click",function(){return o.setValue(2)})("mouseover",function(){return o.hoveredSlot=3}),t.qZA(),t.TgZ(11,"div",4),t.NdJ("click",function(){return o.setValue(1)})("mouseover",function(){return o.hoveredSlot=4}),t.qZA(),t.TgZ(12,"div",4),t.NdJ("click",function(){return o.setValue(0)})("mouseover",function(){return o.hoveredSlot=5}),t.qZA()(),t._UZ(13,"br"),t.YNc(14,nr,61,24,"div",5),t.qZA(),t.TgZ(15,"mat-button-toggle-group",6),t.YNc(16,or,2,5,"mat-button-toggle",7),t.qZA(),t.TgZ(17,"div",8)(18,"mat-button-toggle-group")(19,"mat-button-toggle",9),t._UZ(20,"app-armor-perk-icon",10),t.TgZ(21,"mat-icon"),t._uU(22,"arrow_drop_down"),t.qZA()(),t.TgZ(23,"mat-button-toggle",11),t.NdJ("click",function(s){return o.toggleArmorPerkLock(),s.stopPropagation()}),t.YNc(24,ir,2,0,"mat-icon",12),t.YNc(25,ar,2,0,"mat-icon",12),t.qZA()(),t.TgZ(26,"mat-menu",13,14),t.YNc(28,sr,5,4,"ng-container",15),t.qZA()(),t.TgZ(29,"span",16),t.YNc(30,rr,2,1,"img",17),t.YNc(31,lr,2,1,"img",18),t.YNc(32,cr,2,1,"img",19),t.YNc(33,mr,2,1,"img",20),t.YNc(34,dr,2,1,"img",21),t.qZA()()),2&e){const a=t.MAs(27);t.ekj("disabled",o.disabled),t.xp6(8),t.ekj("active",5-o.maximumModSlots>=1)("hovered-higher",o.hoveredSlot>-1&&o.hoveredSlot<1)("hovered",o.hoveredSlot>=1)("blocked",o.featureDisabled),t.xp6(1),t.ekj("active",5-o.maximumModSlots>=2)("hovered-higher",o.hoveredSlot>-1&&o.hoveredSlot<2)("hovered",o.hoveredSlot>=2)("blocked",o.featureDisabled),t.xp6(1),t.ekj("active",5-o.maximumModSlots>=3)("hovered-higher",o.hoveredSlot>-1&&o.hoveredSlot<3)("hovered",o.hoveredSlot>=3)("blocked",o.featureDisabled),t.xp6(1),t.ekj("active",5-o.maximumModSlots>=4)("hovered-higher",o.hoveredSlot>-1&&o.hoveredSlot<4)("hovered",o.hoveredSlot>=4)("blocked",o.featureDisabled),t.xp6(1),t.ekj("active",5-o.maximumModSlots==5)("hovered-higher",o.hoveredSlot>-1&&o.hoveredSlot<5)("hovered",5===o.hoveredSlot)("blocked",o.featureDisabled),t.xp6(2),t.Q6J("ngVar",o.hoveredSlot>-1?5-o.hoveredSlot:o.maximumModSlots),t.xp6(2),t.Q6J("ngForOf",o.ModRange),t.xp6(2),t.ekj("impossible",!o.isPossible),t.xp6(1),t.Q6J("matMenuTriggerFor",a),t.xp6(1),t.Q6J("perk",o.armorPerk),t.xp6(3),t.MGl("matTooltip","Force the selected perk or slot to be on a ",o.slotName,"."),t.Q6J("disabled",o.disabled),t.xp6(1),t.Q6J("ngIf",!o.armorPerkLock),t.xp6(1),t.Q6J("ngIf",o.armorPerkLock),t.xp6(3),t.Q6J("ngForOf",o.availableArmorPerks),t.xp6(2),t.Q6J("ngIf",o.slot===o.ArmorSlot.ArmorSlotHelmet),t.xp6(1),t.Q6J("ngIf",o.slot===o.ArmorSlot.ArmorSlotGauntlet),t.xp6(1),t.Q6J("ngIf",o.slot===o.ArmorSlot.ArmorSlotChest),t.xp6(1),t.Q6J("ngIf",o.slot===o.ArmorSlot.ArmorSlotLegs),t.xp6(1),t.Q6J("ngIf",o.slot===o.ArmorSlot.ArmorSlotClass)}},dependencies:[y.sg,y.O5,N.gM,j.Hw,vt.VK,vt.OP,vt.p6,it.A9,it.Yi,Ct,Wt],styles:[".slot-icon-container[_ngcontent-%COMP%]{float:right;position:relative}.slot-icon-container[_ngcontent-%COMP%] .slot-icon[_ngcontent-%COMP%]{height:30px;position:absolute;left:-30px;filter:invert(1) drop-shadow(1px 1px 3px rgba(0,0,0,.25))!important}.container[_ngcontent-%COMP%]{height:60px}.select-button[_ngcontent-%COMP%]{min-width:40px}.selector-element[_ngcontent-%COMP%]{position:relative;float:right;width:90px;height:70px;top:-21px}.selector-element[_ngcontent-%COMP%] .lock[_ngcontent-%COMP%]{position:absolute;bottom:2px;left:60px}.selector-element[_ngcontent-%COMP%] .element-list[_ngcontent-%COMP%]{float:left;width:70px;padding-left:5px}.selector-element[_ngcontent-%COMP%] .element-list[_ngcontent-%COMP%] .element-icon[_ngcontent-%COMP%]{border:rgba(0,0,0,0) solid 2px;height:26px;width:26px;margin-right:1px;margin-bottom:1px;margin-top:1px;cursor:pointer;filter:grayscale(.4)}.selector-element[_ngcontent-%COMP%] .element-list[_ngcontent-%COMP%] .element-icon[_ngcontent-%COMP%]:hover{filter:grayscale(.2)}.selector-element[_ngcontent-%COMP%] .element-list[_ngcontent-%COMP%] .element-icon.selected[_ngcontent-%COMP%]{filter:grayscale(0)}[_nghost-%COMP%] .selector-slots .mat-button-toggle{background-color:inherit}.modslot-selection[_ngcontent-%COMP%]{width:180px}.selector-slots[_ngcontent-%COMP%]{position:relative;float:right;top:-10px}.selector-slots[_ngcontent-%COMP%] .lock[_ngcontent-%COMP%]{position:absolute;bottom:2px;left:140px}.selector-slots[_ngcontent-%COMP%] .element-list[_ngcontent-%COMP%]{float:left;height:70px;width:175px;padding-left:5px}.selector-slots[_ngcontent-%COMP%] .element-list[_ngcontent-%COMP%] .element-icon[_ngcontent-%COMP%]{height:30px;width:30px;border:rgba(0,0,0,0) solid 2px;margin-right:1px;margin-top:-2px;cursor:pointer}.selector-slots[_ngcontent-%COMP%] .element-list[_ngcontent-%COMP%] .element-icon.disabled[_ngcontent-%COMP%]{opacity:.5;cursor:default;border:rgba(0,0,0,0) solid 2px!important}.impossible[_ngcontent-%COMP%]{background-color:#ff00004d;cursor:help}.left_line[_ngcontent-%COMP%]{pointer-events:none;height:15px;width:100%;border-left:1px solid white;border-bottom:1px solid white;position:absolute;bottom:0px;left:0}.overlay-icon-container[_ngcontent-%COMP%]{position:relative}.overlay-icon-container[_ngcontent-%COMP%] .overlay-icon[_ngcontent-%COMP%]{width:20px;position:absolute;left:7px;bottom:11px;pointer-events:none}.element-icon[_ngcontent-%COMP%]:hover{border:cornflowerblue solid 2px!important}.selected[_ngcontent-%COMP%], .selected[_ngcontent-%COMP%]:hover{background-color:#89b2ff3d;border:#0059ff solid 2px!important}.energy-container[_ngcontent-%COMP%] .energy-bar[_ngcontent-%COMP%]{float:left;margin-right:3px;width:20px;height:10px;border:white solid 2px;cursor:pointer}.energy-container[_ngcontent-%COMP%] .energy-bar.none[_ngcontent-%COMP%]{border:indianred solid 2px}.energy-container[_ngcontent-%COMP%] .energy-bar[_ngcontent-%COMP%]:hover, .energy-container[_ngcontent-%COMP%] .hovered[_ngcontent-%COMP%]{background-color:#6e6e6e}.energy-container[_ngcontent-%COMP%] .hovered-higher[_ngcontent-%COMP%]{background-color:#0000!important}.energy-container[_ngcontent-%COMP%] .energy-bar.active[_ngcontent-%COMP%]{background-color:#fff}.energy-container[_ngcontent-%COMP%] .energy-bar.blocked[_ngcontent-%COMP%]{border:#606060 solid 2px;background-color:#6e6e6e}.mod-info[_ngcontent-%COMP%]{position:relative;float:left;height:40px;width:40px;margin-right:5px}.mod-info[_ngcontent-%COMP%] .mod-number[_ngcontent-%COMP%]{position:absolute;top:1px;bottom:1px;right:1px;left:1px;pointer-events:none;fill:#e0e0e0}.mod-info[_ngcontent-%COMP%] .mod-minor[_ngcontent-%COMP%]{display:none}.mod-info[_ngcontent-%COMP%] .overlay[_ngcontent-%COMP%]{position:absolute;top:0px;width:100%;height:100%;background:linear-gradient(to top left,rgba(0,0,0,0) 0%,rgba(0,0,0,0) calc(50% - .8px),rgb(0,0,0) 50%,rgba(0,0,0,0) calc(50% + .8px),rgba(0,0,0,0) 100%),linear-gradient(to top right,rgba(0,0,0,0) 0%,rgba(0,0,0,0) calc(50% - .8px),rgb(0,0,0) 50%,rgba(0,0,0,0) calc(50% + .8px),rgba(0,0,0,0) 100%)}.mod-info[_ngcontent-%COMP%] .mod-icon[_ngcontent-%COMP%]{width:40px;height:40px}.mod-info[_ngcontent-%COMP%] .mod-minor[_ngcontent-%COMP%]{border:rgba(0,0,0,0) solid 3px;width:34px;height:34px}.mod-info.major[_ngcontent-%COMP%] .overlay[_ngcontent-%COMP%], .mod-info.minor[_ngcontent-%COMP%] .overlay[_ngcontent-%COMP%]{display:none}.mod-info.minor[_ngcontent-%COMP%] .mod-minor[_ngcontent-%COMP%]{display:block}.mod-info.minor[_ngcontent-%COMP%] .mod-major[_ngcontent-%COMP%]{display:none}.menuArmorIcon[_ngcontent-%COMP%]{position:absolute;top:8px}.menuArmorText[_ngcontent-%COMP%]{padding-left:35px}.selected-menu[_ngcontent-%COMP%]{background-color:#89b2ff3d}.selected-menu[_ngcontent-%COMP%]:hover{background-color:#89b2ff4d} .modslot-select-scroll-menu{overflow-y:auto;max-height:250px!important}"]}),n})(),pr=(()=>{class n{constructor(){}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-slot-limitation-title"]],decls:5,vars:0,consts:[[1,"energy"],[1,"selector-slots"]],template:function(e,o){1&e&&(t.TgZ(0,"div")(1,"div",0),t._uU(2," Energy "),t.qZA(),t.TgZ(3,"span",1),t._uU(4," Modslots "),t.qZA()())},styles:[".energy[_ngcontent-%COMP%]{border-bottom:#a1a1a1 1px solid;margin-bottom:6px}.selector-element[_ngcontent-%COMP%]{position:relative;float:right;width:90px;top:-26px}.selector-slots[_ngcontent-%COMP%]{position:relative;float:right;width:155px;top:-26px;text-align:center}"]}),n})();function gr(n,i){1&n&&(t.TgZ(0,"mat-toolbar",13),t._uU(1," Some of your chosen limitations contain no armor pieces and will yield no results.\n"),t.qZA())}function _r(n,i){1&n&&(t.TgZ(0,"mat-toolbar",13),t._uU(1," The mod cost limitation is currently disabled. Modslot filtering still works.\n"),t.qZA())}let fr=(()=>{class n{constructor(e){this.config=e,this.ArmorSlot=C.y,this.ArmorPerkOrSlot=r.Pn,this.possibilityList=[!0,!0,!0,!0,!0],this.allPossible=!0,this.disabledSlotLimitation=!S_featureFlags_enableModslotLimitation}updatePossibility(e,o){this.possibilityList[e]=o,this.allPossible=5==this.possibilityList.filter(a=>!!a).length}clear(){this.config.modifyConfiguration(e=>{for(let o=0;o<5;o++)e.armorPerks[o+1]={fixed:!0,value:0},e.maximumModSlots[o+1]={fixed:!0,value:5}})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(B))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-desired-mod-selection"]],decls:129,vars:16,consts:[["color","warn","class","mat-elevation-z4 impossible-container",4,"ngIf"],[1,"container"],[3,"slot","possible"],["id","clear-container"],["color","warn","mat-stroked-button","",3,"click"],[1,"minispace"],[1,"mat-elevation-z6"],["aria-hidden","false","inline",""],["id","explanation-description"],[1,"text-highlight"],[1,"example-usecase"],[1,"modslot-legend"],[3,"perk"],["color","warn",1,"mat-elevation-z4","impossible-container"]],template:function(e,o){1&e&&(t.YNc(0,gr,2,0,"mat-toolbar",0),t.TgZ(1,"div",1),t._UZ(2,"app-slot-limitation-title"),t.TgZ(3,"app-slot-limitation-selection",2),t.NdJ("possible",function(s){return o.updatePossibility(0,s)}),t.qZA(),t._UZ(4,"br"),t.TgZ(5,"app-slot-limitation-selection",2),t.NdJ("possible",function(s){return o.updatePossibility(1,s)}),t.qZA(),t._UZ(6,"br"),t.TgZ(7,"app-slot-limitation-selection",2),t.NdJ("possible",function(s){return o.updatePossibility(2,s)}),t.qZA(),t._UZ(8,"br"),t.TgZ(9,"app-slot-limitation-selection",2),t.NdJ("possible",function(s){return o.updatePossibility(3,s)}),t.qZA(),t._UZ(10,"br"),t.TgZ(11,"app-slot-limitation-selection",2),t.NdJ("possible",function(s){return o.updatePossibility(4,s)}),t.qZA()(),t.TgZ(12,"div",3)(13,"button",4),t.NdJ("click",function(){return o.clear()}),t._uU(14,"Clear the whole selection"),t.qZA()(),t._UZ(15,"div",5),t.YNc(16,_r,2,0,"mat-toolbar",0),t._UZ(17,"div",5),t.TgZ(18,"mat-accordion")(19,"mat-expansion-panel",6)(20,"mat-expansion-panel-header")(21,"mat-panel-title")(22,"mat-icon",7),t._uU(23,"info"),t.qZA(),t._uU(24," Explanation "),t.qZA(),t.TgZ(25,"mat-panel-description"),t._uU(26," Detailed instructions for this section. "),t.qZA()(),t.TgZ(27,"div",8),t._uU(28," This section allows you to further finetune the results to your requirements."),t._UZ(29,"br")(30,"div",5),t.TgZ(31,"u"),t._uU(32,"Limitation of available stat mod types"),t.qZA(),t._UZ(33,"br"),t._uU(34," First off, you are able to "),t.TgZ(35,"span",9),t._uU(36,"select the kind and amount of stat mods"),t.qZA(),t._uU(37," you want. By filling the bars you "),t.TgZ(38,"span",9),t._uU(39,"specify how many modslots are already occupied"),t.qZA(),t._uU(40," and thus the tool knows how much space it is able to use for your builds. Hover over the bars, it will show you which mods are available after you changed your selection. "),t._UZ(41,"div",5),t.TgZ(42,"div",10),t._uU(43,' Example Use Case: "On one item I can only use up to four recovery mods, no major intellect mod. One item can not hold any mods". In this scenario you would set one slot to 10 used slots, and the rest to 6. '),t.qZA(),t._UZ(44,"br"),t.TgZ(45,"u"),t._uU(46,"Filter for Elemental Affinity and Armor Perk/Slot"),t.qZA(),t._UZ(47,"br"),t._uU(48," This allows you to super-finetune your elemental and armor-perk requirements. You can change the settings for "),t.TgZ(49,"span",9),t._uU(50,"each armor slot"),t.qZA(),t._uU(51,". There are two modes per armor slot: "),t.TgZ(52,"span",9),t._uU(53,"Locked"),t.qZA(),t._uU(54," and "),t.TgZ(55,"span",9),t._uU(56,"Unlocked"),t.qZA(),t._uU(57,". Per default each entry is in the "),t.TgZ(58,"span",9),t._uU(59,"Locked"),t.qZA(),t._uU(60," mode. "),t._UZ(61,"div",5),t.TgZ(62,"span",9),t._uU(63,"Locked"),t.qZA(),t._uU(64," means that "),t.TgZ(65,"span",9),t._uU(66,"this armor slot must have"),t.qZA(),t._uU(67," the selected element or perk. "),t._UZ(68,"div",5),t.TgZ(69,"span",9),t._uU(70,"Unlocked"),t.qZA(),t._uU(71," means that the perk must exist, but "),t.TgZ(72,"span",9),t._uU(73,"the exact armor slot is irrelevant"),t.qZA(),t._uU(74,". That means that the tool can decide where it puts the desired element or perk. "),t._UZ(75,"div",5),t.TgZ(76,"div",10),t._uU(77,' Example Use Case: "The Class Item and Gauntlet '),t.TgZ(78,"span",9),t._uU(79,"must be stasis"),t.qZA(),t._uU(80,'. Oh, and I need two solar and one arc modslots, but the position does not matter". In this scenario, Class Item and Gauntlet would be '),t.TgZ(81,"span",9),t._uU(82,"Locked"),t.qZA(),t._uU(83," and the rest would be "),t.TgZ(84,"span",9),t._uU(85,"Unlocked"),t.qZA(),t._uU(86,". "),t.qZA(),t._UZ(87,"br"),t._uU(88," Legend: "),t.TgZ(89,"table",11)(90,"tr")(91,"td"),t._UZ(92,"app-armor-perk-icon",12),t.qZA(),t.TgZ(93,"td"),t._uU(94,"Vault of Glass"),t.qZA(),t.TgZ(95,"td"),t._UZ(96,"app-armor-perk-icon",12),t.qZA(),t.TgZ(97,"td"),t._uU(98,"Deep Stone Crypt"),t.qZA(),t.TgZ(99,"td"),t._UZ(100,"app-armor-perk-icon",12),t.qZA(),t.TgZ(101,"td"),t._uU(102,"Garden of Salvation"),t.qZA()(),t.TgZ(103,"tr")(104,"td"),t._UZ(105,"app-armor-perk-icon",12),t.qZA(),t.TgZ(106,"td"),t._uU(107,"Last Wish"),t.qZA(),t.TgZ(108,"td"),t._UZ(109,"app-armor-perk-icon",12),t.qZA(),t.TgZ(110,"td"),t._uU(111,"Vow of the Disciple"),t.qZA(),t.TgZ(112,"td"),t._UZ(113,"app-armor-perk-icon",12),t.qZA(),t.TgZ(114,"td"),t._uU(115,"Nightmare Modslot"),t.qZA()(),t.TgZ(116,"tr")(117,"td"),t._UZ(118,"app-armor-perk-icon",12),t.qZA(),t.TgZ(119,"td"),t._uU(120,"Artifice Modslot"),t.qZA(),t.TgZ(121,"td"),t._UZ(122,"app-armor-perk-icon",12),t.qZA(),t.TgZ(123,"td"),t._uU(124,"Iron Banner Perk"),t.qZA(),t.TgZ(125,"td"),t._UZ(126,"app-armor-perk-icon",12),t.qZA(),t.TgZ(127,"td"),t._uU(128,"Uniformed Officer Perk"),t.qZA()()()()()()),2&e&&(t.Q6J("ngIf",!o.allPossible),t.xp6(3),t.Q6J("slot",o.ArmorSlot.ArmorSlotHelmet),t.xp6(2),t.Q6J("slot",o.ArmorSlot.ArmorSlotGauntlet),t.xp6(2),t.Q6J("slot",o.ArmorSlot.ArmorSlotChest),t.xp6(2),t.Q6J("slot",o.ArmorSlot.ArmorSlotLegs),t.xp6(2),t.Q6J("slot",o.ArmorSlot.ArmorSlotClass),t.xp6(5),t.Q6J("ngIf",o.disabledSlotLimitation),t.xp6(76),t.Q6J("perk",o.ArmorPerkOrSlot.SlotVaultOfGlass),t.xp6(4),t.Q6J("perk",o.ArmorPerkOrSlot.SlotDeepStoneCrypt),t.xp6(4),t.Q6J("perk",o.ArmorPerkOrSlot.SlotGardenOfSalvation),t.xp6(5),t.Q6J("perk",o.ArmorPerkOrSlot.SlotLastWish),t.xp6(4),t.Q6J("perk",o.ArmorPerkOrSlot.SlotVowOfTheDisciple),t.xp6(4),t.Q6J("perk",o.ArmorPerkOrSlot.SlotNightmare),t.xp6(5),t.Q6J("perk",o.ArmorPerkOrSlot.SlotArtifice),t.xp6(4),t.Q6J("perk",o.ArmorPerkOrSlot.PerkIronBanner),t.xp6(4),t.Q6J("perk",o.ArmorPerkOrSlot.PerkUniformedOfficer))},dependencies:[y.O5,g.lW,j.Hw,W.Ye,J.pp,J.ib,J.yz,J.yK,J.u4,ur,Wt,pr],styles:[".container[_ngcontent-%COMP%]{margin-bottom:10px}.impossible-container[_ngcontent-%COMP%]{text-align:center;margin-right:auto;margin-left:auto;width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content;font-size:15px;line-height:20px;margin-bottom:10px}.element-icon[_ngcontent-%COMP%]{height:30px;width:30px}.element-icon.disabled[_ngcontent-%COMP%]{opacity:.5;cursor:default;pointer-events:none}.overlay-icon-container[_ngcontent-%COMP%]{position:relative}.overlay-icon-container[_ngcontent-%COMP%] .overlay-icon[_ngcontent-%COMP%]{width:20px;position:absolute;left:5px;bottom:9px;pointer-events:none}.modslot-legend[_ngcontent-%COMP%]{border-collapse:separate;border-spacing:0 0;width:100%}.modslot-legend[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:0}#explanation-description[_ngcontent-%COMP%]{width:520px}.minispace[_ngcontent-%COMP%]{height:7px}.text-highlight[_ngcontent-%COMP%]{color:#cddcef}.example-usecase[_ngcontent-%COMP%]{font-size:small;line-height:normal}"]}),n})();function hr(n,i){if(1&n&&t._UZ(0,"img",6),2&n){const e=t.oxw();t.s9C("alt",e.exoticPerk.name),t.MGl("src","https://bungie.net/",e.exoticPerk.icon,"",t.LSH)}}function xr(n,i){1&n&&(t.TgZ(0,"tr")(1,"td"),t._uU(2,"Loading exotic perk.."),t.qZA()())}function Tr(n,i){1&n&&(t.TgZ(0,"tr")(1,"td"),t._uU(2,"No (fixed) exotic perk available."),t.qZA()())}function yr(n,i){if(1&n&&(t.TgZ(0,"tr")(1,"td")(2,"span"),t._uU(3),t.qZA()()()),2&n){const e=t.oxw();t.xp6(3),t.Oqu(e.exoticPerk.name)}}function br(n,i){if(1&n&&(t.TgZ(0,"tr")(1,"td",7),t._uU(2),t.qZA()()),2&n){const e=t.oxw();t.xp6(2),t.hij(" ",e.exoticPerk.description," ")}}function Cr(n,i){1&n&&(t.ynx(0),t._uU(1," and "),t.BQk())}function vr(n,i){if(1&n&&(t.ynx(0),t._uU(1," in your collection "),t.YNc(2,Cr,2,0,"ng-container",4),t.BQk()),2&n){const e=t.oxw(2);t.xp6(2),t.Q6J("ngIf",e.vendor)}}function Ar(n,i){1&n&&(t.ynx(0),t._uU(1,"available at a vendor"),t.BQk())}function wr(n,i){if(1&n&&(t.TgZ(0,"tr",8)(1,"td",7),t._uU(2," This exotic is not in your inventory but it is "),t.YNc(3,vr,3,1,"ng-container",4),t.YNc(4,Ar,2,0,"ng-container",4),t._uU(5,". You can still generate a loadout with this exotic, but you will have to grab it by yourself. "),t.qZA()()),2&n){const e=t.oxw();t.xp6(3),t.Q6J("ngIf",e.collection),t.xp6(1),t.Q6J("ngIf",e.vendor)}}let Zr=(()=>{class n{constructor(e,o){this.inv=e,this.iconService=o,this.vendor=!1,this.collection=!1,this.exoticPerkNotThere=!1}ngOnInit(){var e=this;return(0,m.Z)(function*(){e.exoticPerk=yield e.iconService.getItemCached(e.armor?.exoticPerkHash??0),e.exoticPerkNotThere=null==e.exoticPerk})()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(K),t.Y36(de))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-exotic-perk-tooltip"]],inputs:{armor:"armor",vendor:"vendor",collection:"collection"},decls:13,vars:7,consts:[[1,"tooltip-container"],["rowspan","2",1,"perk-icon-col"],["class","perk-icon",3,"alt","src",4,"ngIf"],[1,"exotic-name"],[4,"ngIf"],["class","collection-roll-info",4,"ngIf"],[1,"perk-icon",3,"alt","src"],["colspan","2"],[1,"collection-roll-info"]],template:function(e,o){1&e&&(t.TgZ(0,"div")(1,"div",0)(2,"table")(3,"tr")(4,"td",1),t.YNc(5,hr,1,2,"img",2),t.qZA(),t.TgZ(6,"td",3),t._uU(7),t.qZA()(),t.YNc(8,xr,3,0,"tr",4),t.YNc(9,Tr,3,0,"tr",4),t.YNc(10,yr,4,1,"tr",4),t.YNc(11,br,3,1,"tr",4),t.YNc(12,wr,6,2,"tr",5),t.qZA()()()),2&e&&(t.xp6(5),t.Q6J("ngIf",o.exoticPerk),t.xp6(2),t.Oqu(null==o.armor?null:o.armor.name),t.xp6(1),t.Q6J("ngIf",!o.exoticPerk&&!o.exoticPerkNotThere),t.xp6(1),t.Q6J("ngIf",!o.exoticPerk&&o.exoticPerkNotThere),t.xp6(1),t.Q6J("ngIf",o.exoticPerk),t.xp6(1),t.Q6J("ngIf",o.exoticPerk),t.xp6(1),t.Q6J("ngIf",o.collection||o.vendor))},dependencies:[y.O5],styles:["[_nghost-%COMP%]{width:350px}.tooltip-container[_ngcontent-%COMP%]{border:1px solid gray;padding:1px 5px 4px;background:linear-gradient(#484848 0px,#2c2c2c 100%)}.perk-icon[_ngcontent-%COMP%]{width:50px;height:50px}.perk-icon-col[_ngcontent-%COMP%]{width:55px}.exotic-name[_ngcontent-%COMP%]{color:#eedb9e}.collection-roll-info[_ngcontent-%COMP%]{color:#5cc3ec;font-size:12px;margin-top:5px}"]}),n})(),Sr=(()=>{class n{constructor(e,o,a){this._overlay=e,this._overlayPositionBuilder=o,this._elementRef=a,this.showToolTip=!0,this.exoticTooltipInVendor=!1,this.exoticTooltipInCollection=!1}ngOnInit(){if(!this.showToolTip)return;const e=this._overlayPositionBuilder.flexibleConnectedTo(this._elementRef).withPositions([{originX:"center",originY:"bottom",overlayX:"center",overlayY:"top",offsetY:5},{originX:"center",originY:"top",overlayX:"center",overlayY:"bottom",offsetY:-5}]);this._overlayRef=this._overlay.create({positionStrategy:e}),this._overlayRef.addPanelClass("overlay-no-pointer-event")}show(){if(this._overlayRef&&!this._overlayRef.hasAttached()){const e=this._overlayRef.attach(new Nt.C5(Zr));e.instance.collection=this.exoticTooltipInCollection,e.instance.vendor=this.exoticTooltipInVendor,e.instance.armor=this.exoticTooltip}}hide(){this.closeToolTip()}ngOnDestroy(){this.closeToolTip()}closeToolTip(){this._overlayRef&&this._overlayRef.detach()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(pt.aV),t.Y36(pt.wJ),t.Y36(t.SBq))},n.\u0275dir=t.lG2({type:n,selectors:[["","exoticTooltip",""]],hostBindings:function(e,o){1&e&&t.NdJ("mouseenter",function(){return o.show()})("mouseleave",function(){return o.hide()})},inputs:{showToolTip:"showToolTip",exoticTooltip:"exoticTooltip",exoticTooltipInVendor:"exoticTooltipInVendor",exoticTooltipInCollection:"exoticTooltipInCollection",contentTemplate:"contentTemplate"}}),n})();function Ir(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"img",5,6),t.NdJ("click",function(a){t.CHM(e);const s=t.oxw(2);return t.KtG(s.selectExotic(-2,a))}),t.qZA()}if(2&n){const e=t.oxw(2);t.Gre("exoticIcon ",e.selectedExotics.indexOf(-2)>-1?"selected":"","")}}function Or(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"img",7,6),t.NdJ("click",function(a){t.CHM(e);const s=t.oxw(2);return t.KtG(s.selectExotic(-1,a))}),t.qZA()}if(2&n){const e=t.oxw(2);t.Gre("exoticIcon ",e.selectedExotics.indexOf(-1)>-1?"selected":"","")}}function Mr(n,i){if(1&n&&t._UZ(0,"img",12),2&n){const e=t.oxw().$implicit;t.MGl("src","https://www.bungie.net/",e.item.watermarkIcon,"",t.LSH)}}function kr(n,i){if(1&n&&t._UZ(0,"div",13),2&n){const e=t.oxw().$implicit,o=t.oxw(2);t.ekj("vendor-item",o.includeVendorRolls&&e.inVendor)("collection-item",o.includeCollectionRolls&&e.inCollection)}}function Dr(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"span",8)(1,"img",9),t.NdJ("click",function(a){const l=t.CHM(e).$implicit,d=t.oxw(2);return t.KtG((l.inInventory||d.includeCollectionRolls&&l.inCollection)&&d.selectExotic(l.item.hash,a))}),t.qZA(),t.YNc(2,Mr,1,1,"img",10),t.YNc(3,kr,1,4,"div",11),t.qZA()}if(2&n){const e=i.$implicit,o=t.oxw(2);t.xp6(1),t.Gre("exoticIcon ",o.selectedExotics.indexOf(e.item.hash)>-1?"selected":"",""),t.ekj("vendor-item",!e.inInventory&&o.includeVendorRolls&&e.inVendor)("collection-item",!e.inInventory&&o.includeCollectionRolls&&e.inCollection)("disabled",!(e.inInventory||o.includeCollectionRolls&&e.inCollection||o.includeVendorRolls&&e.inVendor)),t.MGl("src","https://www.bungie.net/",e.item.icon,"",t.LSH),t.Q6J("exoticTooltip",e.item)("exoticTooltipInVendor",!e.inInventory&&o.includeVendorRolls&&e.inVendor)("exoticTooltipInCollection",!e.inInventory&&o.includeCollectionRolls&&e.inCollection),t.xp6(1),t.Q6J("ngIf",e.item.watermarkIcon),t.xp6(1),t.Q6J("ngIf",!e.inInventory)}}function Ur(n,i){if(1&n&&(t.TgZ(0,"div"),t.YNc(1,Ir,2,3,"img",2),t.YNc(2,Or,2,3,"img",3),t.YNc(3,Dr,4,15,"span",4),t.qZA()),2&n){const e=i.$implicit,o=i.index;t.Q6J("@listAnimation",e.length),t.xp6(1),t.Q6J("ngIf",0===o),t.xp6(1),t.Q6J("ngIf",0===o),t.xp6(1),t.Q6J("ngForOf",e)}}const Er=(0,F.X$)("listAnimation",[(0,F.eR)("* <=> *",[(0,F.IO)(":enter",[(0,F.oB)({opacity:0}),(0,F.EY)("30ms",(0,F.jt)("350ms ease-out",(0,F.oB)({opacity:1})))],{optional:!0})])]);let Rr=(()=>{class n{constructor(e,o){this.inventory=e,this.config=o,this.selectedExotics=[],this.includeCollectionRolls=!1,this.includeVendorRolls=!1,this.ignoreSunsetArmor=!1,this.allowBlueArmorPieces=!1,this.currentClass=U.Titan,this.exotics=[],this.ngUnsubscribe=new nt.xQ}ngOnInit(){var e=this;this.config.configuration.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(function(){var o=(0,m.Z)(function*(a){(a.characterClass!=e.currentClass||0==e.exotics.length)&&(e.currentClass=a.characterClass,yield e.updateExoticsForClass()),e.includeCollectionRolls=a.includeCollectionRolls,e.includeVendorRolls=a.includeVendorRolls,e.selectedExotics=a.selectedExotics,e.ignoreSunsetArmor=a.ignoreSunsetArmor,e.allowBlueArmorPieces=a.allowBlueArmorPieces});return function(a){return o.apply(this,arguments)}}()),this.inventory.manifest.pipe((0,st.b)(10),(0,Q.R)(this.ngUnsubscribe)).subscribe((0,m.Z)(function*(){yield e.updateExoticsForClass()})),this.inventory.inventory.pipe((0,st.b)(10),(0,Q.R)(this.ngUnsubscribe)).subscribe((0,m.Z)(function*(){yield e.updateExoticsForClass()}))}updateExoticsForClass(){var e=this;return(0,m.Z)(function*(){const o=yield e.inventory.getExoticsForClass(e.currentClass);function a(s){var l={};return s.filter(function(d){var u=d.item.hash;return!l.hasOwnProperty(u)&&(l[u]=!0)})}e.exotics=[a(o.filter(s=>s.item.slot==C.y.ArmorSlotHelmet)),a(o.filter(s=>s.item.slot==C.y.ArmorSlotGauntlet)),a(o.filter(s=>s.item.slot==C.y.ArmorSlotChest)),a(o.filter(s=>s.item.slot==C.y.ArmorSlotLegs))]})()}setAllowCollectionRolls(e){this.config.modifyConfiguration(o=>{o.includeCollectionRolls=e})}setAllowVendorItems(e){this.config.modifyConfiguration(o=>{o.includeVendorRolls=e})}setAllowBlueArmorPieces(e){this.config.modifyConfiguration(o=>{o.allowBlueArmorPieces=e})}setIgnoreSunsetArmor(e){this.config.modifyConfiguration(o=>{o.ignoreSunsetArmor=e})}selectExotic(e,o){const a=this.selectedExotics.indexOf(e);a>-1?this.selectedExotics.splice(a,1):-1==e?this.selectedExotics=[-1]:(0==this.selectedExotics.length||!o.shiftKey)&&(this.selectedExotics=[e]),this.config.modifyConfiguration(s=>{s.selectedExotics=this.selectedExotics})}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(K),t.Y36(B))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-desired-exotic-selection"]],decls:19,vars:5,consts:[[4,"ngFor","ngForOf"],["color","primary",3,"checked","change"],["src","https://www.bungie.net/common/destiny2_content/icons/763634b78eb22168ac707500588b7333.jpg","matTooltip","Force to use ANY exotic",3,"class","click",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/b4d05ef69d0c3227a7d4f7f35bbc2848.png","matTooltip","Force to use NO exotic at all",3,"class","click",4,"ngIf"],["class","container",4,"ngFor","ngForOf"],["src","https://www.bungie.net/common/destiny2_content/icons/763634b78eb22168ac707500588b7333.jpg","matTooltip","Force to use ANY exotic",3,"click"],["tooltip","matTooltip"],["src","https://www.bungie.net/common/destiny2_content/icons/b4d05ef69d0c3227a7d4f7f35bbc2848.png","matTooltip","Force to use NO exotic at all",3,"click"],[1,"container"],[3,"src","exoticTooltip","exoticTooltipInVendor","exoticTooltipInCollection","click"],["class","watermarkIcon",3,"src",4,"ngIf"],["class","item-source-overlay",3,"vendor-item","collection-item",4,"ngIf"],[1,"watermarkIcon",3,"src"],[1,"item-source-overlay"]],template:function(e,o){1&e&&(t.YNc(0,Ur,4,4,"div",0),t.TgZ(1,"div")(2,"mat-slide-toggle",1),t.NdJ("change",function(s){return o.setAllowCollectionRolls(s.checked)}),t._uU(3," Include "),t.TgZ(4,"u"),t._uU(5,"exotic"),t.qZA(),t._uU(6," collection rolls "),t.qZA()(),t.TgZ(7,"div")(8,"mat-slide-toggle",1),t.NdJ("change",function(s){return o.setAllowVendorItems(s.checked)}),t._uU(9," Inculde "),t.TgZ(10,"u"),t._uU(11,"legendary and exotic"),t.qZA(),t._uU(12," vendor armor (slower) "),t.qZA()(),t.TgZ(13,"div")(14,"mat-slide-toggle",1),t.NdJ("change",function(s){return o.setAllowBlueArmorPieces(s.checked)}),t._uU(15," Include white, blue and green items "),t.qZA()(),t.TgZ(16,"div")(17,"mat-slide-toggle",1),t.NdJ("change",function(s){return o.setIgnoreSunsetArmor(!s.checked)}),t._uU(18," Include sunset armor "),t.qZA()()),2&e&&(t.Q6J("ngForOf",o.exotics),t.xp6(2),t.Q6J("checked",o.includeCollectionRolls),t.xp6(6),t.Q6J("checked",o.includeVendorRolls),t.xp6(6),t.Q6J("checked",o.allowBlueArmorPieces),t.xp6(3),t.Q6J("checked",!o.ignoreSunsetArmor))},dependencies:[y.sg,y.O5,Zt.Rr,N.gM,Sr],styles:[".container[_ngcontent-%COMP%]{display:inline-block;position:relative;--icon-size: 36px}.exoticIcon[_ngcontent-%COMP%]{width:36px;height:36px;margin-right:3px;border:rgba(0,0,0,0) solid 2px;cursor:pointer}.watermarkIcon[_ngcontent-%COMP%]{width:36px;height:36px;margin-left:-41px;margin-top:2px;position:absolute;pointer-events:none}.exoticIcon[_ngcontent-%COMP%]:hover{border:cornflowerblue solid 2px}.selected[_ngcontent-%COMP%], .selected[_ngcontent-%COMP%]:hover{border:#0059ff solid 2px}[_nghost-%COMP%]{position:relative}.exoticText[_ngcontent-%COMP%]{position:absolute;text-shadow:0 0 6px #000000;background:rgba(33,33,33,.51);color:#f5f5f5;bottom:4px;right:5px}.disabled[_ngcontent-%COMP%]{filter:grayscale(1) contrast(.6)}.disabled[_ngcontent-%COMP%]:hover{cursor:default}.item-source-overlay[_ngcontent-%COMP%]{margin:2px}.item-source-overlay[_ngcontent-%COMP%]{position:absolute;left:0;top:0;width:0;pointer-events:none;border-top:calc(var(--icon-size) / 2) solid transparent;border-right:calc(var(--icon-size) / 2) solid transparent}.item-source-overlay.vendor-item[_ngcontent-%COMP%]{border-top-color:#00f}.item-source-overlay.collection-item[_ngcontent-%COMP%]{border-top-color:#90ee90}"],data:{animation:[Er]}}),n})(),Pr=(()=>{class n{constructor(e,o,a){var s=this;this.auth=e,this.membership=o,this.inventory=a,this.characters=[],this.loadCachedData(),e.logoutEvent.subscribe(l=>this.clearCachedData()),this.inventory.inventory.subscribe((0,m.Z)(function*(){yield s.updateCharacterData()}))}clearCachedData(){this.characters=[],localStorage.removeItem("cachedCharacters")}loadCachedData(){let e=localStorage.getItem("cachedCharacters")||"[]";this.characters=JSON.parse(e)}updateCharacterData(){var e=this;return(0,m.Z)(function*(){e.characters=yield e.membership.getCharacters(),localStorage.setItem("cachedCharacters",JSON.stringify(e.characters))})()}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(L),t.LFG(Rt),t.LFG(K))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function Nr(n,i){1&n&&(t.TgZ(0,"div",11),t._uU(1," Loading characters.. "),t.qZA())}function qr(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"Titan"),t.qZA())}function Jr(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"Hunter"),t.qZA())}function Yr(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"Warlock"),t.qZA())}function Lr(n,i){if(1&n&&(t.TgZ(0,"div"),t._UZ(1,"img",14),t.TgZ(2,"span",15),t._uU(3),t.qZA()()),2&n){const e=t.oxw().$implicit,o=t.oxw();t.xp6(3),t.hij("\xd7",o.itemCounts[e.clazz],"")}}function Fr(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"div",12),t.NdJ("click",function(){const s=t.CHM(e).$implicit,l=t.oxw();return t.KtG(l.selectClass(s.clazz))}),t.TgZ(1,"div",13),t.YNc(2,qr,2,0,"span",3),t.YNc(3,Jr,2,0,"span",3),t.YNc(4,Yr,2,0,"span",3),t.qZA(),t.YNc(5,Lr,4,1,"div",3),t.qZA()}if(2&n){const e=i.$implicit,o=i.index,a=t.oxw();t.Udp("background-image","url(https://bungie.net/"+e.emblemUrl+")"),t.ekj("selected",a.selectedClass===e.clazz),t.xp6(2),t.Q6J("ngIf",0===e.clazz),t.xp6(1),t.Q6J("ngIf",1===e.clazz),t.xp6(1),t.Q6J("ngIf",2===e.clazz),t.xp6(1),t.Q6J("ngIf",!!a.itemCounts[o])}}function Qr(n,i){if(1&n&&(t.TgZ(0,"div")(1,"span",16),t._UZ(2,"img",17),t._uU(3),t.ALo(4,"number"),t.qZA(),t.TgZ(5,"span",16),t._UZ(6,"img",18),t._uU(7),t.ALo(8,"number"),t.qZA(),t.TgZ(9,"span",16),t._UZ(10,"img",19),t._uU(11),t.ALo(12,"number"),t.qZA(),t.TgZ(13,"span",16),t._UZ(14,"img",20),t._uU(15),t.ALo(16,"number"),t.qZA(),t.TgZ(17,"span",16),t._UZ(18,"img",21),t._uU(19),t.ALo(20,"number"),t.qZA()()),2&n){const e=t.oxw();t.xp6(1),t.MGl("matTooltip","Ascendant Shards: ",e.storedMaterials[4257549985],""),t.xp6(2),t.hij(" ",t.xi3(4,10,e.storedMaterials[4257549985],"1.0-0")," "),t.xp6(2),t.MGl("matTooltip","Enhancement Prisms: ",e.storedMaterials[4257549984],""),t.xp6(2),t.hij(" ",t.xi3(8,13,e.storedMaterials[4257549984],"1.0-0")," "),t.xp6(2),t.MGl("matTooltip","Enhancement Cores: ",e.storedMaterials[3853748946],""),t.xp6(2),t.hij(" ",t.xi3(12,16,e.storedMaterials[3853748946],"1.0-0")," "),t.xp6(2),t.MGl("matTooltip","Legendary Shards: ",e.storedMaterials[1022552290],""),t.xp6(2),t.hij(" ",t.xi3(16,19,e.storedMaterials[1022552290],"1.0-0")," "),t.xp6(2),t.MGl("matTooltip","Glimmer: ",e.storedMaterials[3159615086],""),t.xp6(2),t.hij(" ",t.xi3(20,22,e.storedMaterials[3159615086],"1.0-0")," ")}}let Br=(()=>{class n{constructor(e,o,a){this.config=e,this.userdata=o,this.inv=a,this.itemCounts=[null,null,null],this.selectedClass=-1,this.storedMaterials=null,this.ngUnsubscribe=new nt.xQ}ngOnInit(){var e=this;this.config.configuration.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(o=>{this.selectedClass=o.characterClass;const a=-1!=this.userdata.characters.findIndex(s=>s.clazz==o.characterClass);this.userdata.characters.length>0&&!a&&this.config.modifyConfiguration(s=>{s.characterClass=this.userdata.characters[0].clazz,s.selectedExotics=[]})}),this.inv.inventory.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(function(){var o=(0,m.Z)(function*(a){yield e.loadStoredMaterials(),yield e.updateItemCount()});return function(a){return o.apply(this,arguments)}}())}selectClass(e){this.config.readonlyConfigurationSnapshot.characterClass!=e&&this.config.modifyConfiguration(o=>{o.characterClass=e,o.selectedExotics=[]})}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}updateItemCount(){var e=this;return(0,m.Z)(function*(){for(let o=0;o<3;o++)e.itemCounts[o]=yield e.inv.getItemCountForClass(o)})()}loadStoredMaterials(){var e=this;return(0,m.Z)(function*(){var o=JSON.parse(localStorage.getItem("stored-materials")||"{}");"3853748946"in o||(o[3853748946]=0),"4257549984"in o||(o[4257549984]=0),"4257549985"in o||(o[4257549985]=0),"3159615086"in o||(o[3159615086]=0),"1022552290"in o||(o[1022552290]=0),e.storedMaterials=o})()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(B),t.Y36(Pr),t.Y36(K))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-desired-class-selection"]],decls:22,vars:3,consts:[[1,"character-container"],["class","character-entry",4,"ngIf"],["class","character-entry","style","float: left",3,"selected","background-image","click",4,"ngFor","ngForOf"],[4,"ngIf"],["color","primary","fxShow","false","fxShow.lt-md","true","mat-flat-button","","routerLink","/help",2,"margin-left","15px"],["inline",""],["color","accent","href","https://ko-fi.com/mijago","matTooltip","You like my work? This leads you to ko-fi.com, where you can easily support me!","target","_blank"],["color","accent","href","http://discord.d2armorpicker.com","target","_blank"],[1,"crayon_logo_container"],["alt","","src","https://cdn.discordapp.com/emojis/917423317139480586.webp?size=96&quality=lossless",1,"crayon_logo"],["href","https://mijago.github.io/Crayon","target","_blank"],[1,"character-entry"],[1,"character-entry",2,"float","left",3,"click"],[1,"class-text"],["matTooltip","Amount of armor pieces for this class.","src","data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51 51'%3e%3cpath d='M24.77 7.03c-8.15.38-14.42 7.41-14.42 15.57v16.06c0 .23.13.44.34.53l10.33 4.68c.78.35 1.66-.22 1.66-1.07V31.9c0-.39-.19-.75-.52-.97l-5.39-3.64c-.87-.52-1.43-1.5-1.34-2.61.13-1.46 1.46-2.52 2.93-2.52h4.36c.65 0 1.17.53 1.17 1.17v6.71s0 .61 1.61.61 1.61-.61 1.61-.61v-6.71c0-.65.52-1.17 1.17-1.17h4.36c1.47 0 2.8 1.06 2.93 2.52.1 1.11-.47 2.09-1.34 2.61l-5.39 3.64c-.32.22-.52.58-.52.97v10.91c0 .85.88 1.42 1.66 1.07l10.33-4.68c.21-.1.34-.3.34-.53v-16.5c.01-8.61-7.18-15.55-15.88-15.14z'/%3e%3c/svg%3e",1,"head-icon"],["matTooltip","Amount of armor pieces for this class.",1,"armor-text"],[1,"material-listing",3,"matTooltip"],["src","https://www.bungie.net/common/destiny2_content/icons/0271d214fc3ec91b3def799a4b286b46.jpg","alt","Ascendant Shard"],["src","https://www.bungie.net/common/destiny2_content/icons/dea2a35badf7466d4c2c2697ce6e8d87.jpg","alt","Enhancement Prism"],["src","https://www.bungie.net/common/destiny2_content/icons/0a4eb695ed55b4e720ddc401460cc0f9.jpg","alt","Enhancement Core"],["src","https://www.bungie.net/common/destiny2_content/icons/18ddd0bdac721b8eb8e6f8ec2b3e813c.png","alt","Legendary Shard"],["src","https://www.bungie.net/common/destiny2_content/icons/88993eaeedad32f42072df6f77f47311.png","alt","Glimmer"]],template:function(e,o){1&e&&(t.TgZ(0,"div",0),t.YNc(1,Nr,2,0,"div",1),t.YNc(2,Fr,6,8,"div",2),t.qZA(),t.YNc(3,Qr,21,25,"div",3),t.TgZ(4,"a",4)(5,"mat-icon",5),t._uU(6,"help"),t.qZA(),t._uU(7," Help and Information about D2ArmorPicker\n"),t.qZA(),t.TgZ(8,"div"),t._uU(9," If you like my work, you can "),t.TgZ(10,"a",6),t._uU(11," support me here."),t.qZA(),t._uU(12," You can also "),t.TgZ(13,"a",7),t._uU(14," join my dev Discord! "),t.qZA(),t.TgZ(15,"div"),t._uU(16," Also check out my Discord-Bot "),t.TgZ(17,"div",8),t._UZ(18,"img",9),t.qZA(),t.TgZ(19,"a",10),t._uU(20,"Crayon"),t.qZA(),t._uU(21,", for all your item information needs! "),t.qZA()()),2&e&&(t.xp6(1),t.Q6J("ngIf",0===o.userdata.characters.length),t.xp6(1),t.Q6J("ngForOf",o.userdata.characters),t.xp6(1),t.Q6J("ngIf",null!==o.storedMaterials))},dependencies:[y.sg,y.O5,H.b8,g.zs,N.gM,j.Hw,I.yS,y.JJ],styles:[".discord-btn[_ngcontent-%COMP%]{margin-left:15px}.material-listing[_ngcontent-%COMP%]{position:relative;padding-left:22px;padding-right:10px}.material-listing[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:20px;position:absolute;top:-2px;left:0}.crayon_logo_container[_ngcontent-%COMP%]{position:relative;width:22px;display:inline-block;margin-right:3px}.crayon_logo_container[_ngcontent-%COMP%] .crayon_logo[_ngcontent-%COMP%]{position:absolute;width:22px;top:-14px} .mat-option-text{color:#fff}.character-container[_ngcontent-%COMP%]{height:50px}.character-entry[_ngcontent-%COMP%]{color:#fff;background-size:cover;background-position:left center;background-repeat:no-repeat;width:180px;height:36px;position:relative;margin-right:7px;margin-bottom:7px;border:rgba(255,255,255,0) solid 2px;opacity:.75;cursor:pointer}.character-entry[_ngcontent-%COMP%]:hover{border:rgba(255,255,255,.41) solid 2px;opacity:.98}.character-entry.selected[_ngcontent-%COMP%]{cursor:default;opacity:1;border:white solid 2px}.class-text[_ngcontent-%COMP%]{position:absolute;left:35px;top:8px;font-size:x-large;text-shadow:0 0 6px #000000}.head-icon[_ngcontent-%COMP%]{height:25px;top:6px;right:30px;position:absolute;filter:invert(1) drop-shadow(1px 1px 3px rgba(0,0,0,.25))!important}.armor-text[_ngcontent-%COMP%]{position:absolute;right:4px;top:9px;text-shadow:0 0 6px #000000;font-size:small}a[_ngcontent-%COMP%]{color:#99afe3}a[_ngcontent-%COMP%]:visited{color:#7294dc}"]}),n})();function Vr(n,i){1&n&&t._UZ(0,"img",7)}function Hr(n,i){1&n&&t._UZ(0,"img",8)}function Wr(n,i){1&n&&t._UZ(0,"img",9)}function jr(n,i){1&n&&t._UZ(0,"img",10)}function zr(n,i){1&n&&t._UZ(0,"img",11)}function Gr(n,i){1&n&&t._UZ(0,"img",12)}let fe=(()=>{class n{constructor(){this.stat=r.WB.Mobility}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-stat-icon"]],inputs:{stat:"stat"},decls:7,vars:6,consts:[[1,"statContainerWrapper"],["src","https://www.bungie.net/common/destiny2_content/icons/e26e0e93a9daf4fdd21bf64eb9246340.png","class","dialogStatIcon","alt","Mobility",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/202ecc1c6febeb6b97dafc856e863140.png","class","dialogStatIcon","alt","Resilience",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/128eee4ee7fc127851ab32eac6ca91cf.png","class","dialogStatIcon","alt","Recovery",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/79be2d4adef6a19203f7385e5c63b45b.png","class","dialogStatIcon","alt","Discipline",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/d1c154469670e9a592c9d4cbdcae5764.png","class","dialogStatIcon","alt","Intellect",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/ea5af04ccd6a3470a44fd7bb0f66e2f7.png","class","dialogStatIcon","alt","Strength",4,"ngIf"],["src","https://www.bungie.net/common/destiny2_content/icons/e26e0e93a9daf4fdd21bf64eb9246340.png","alt","Mobility",1,"dialogStatIcon"],["src","https://www.bungie.net/common/destiny2_content/icons/202ecc1c6febeb6b97dafc856e863140.png","alt","Resilience",1,"dialogStatIcon"],["src","https://www.bungie.net/common/destiny2_content/icons/128eee4ee7fc127851ab32eac6ca91cf.png","alt","Recovery",1,"dialogStatIcon"],["src","https://www.bungie.net/common/destiny2_content/icons/79be2d4adef6a19203f7385e5c63b45b.png","alt","Discipline",1,"dialogStatIcon"],["src","https://www.bungie.net/common/destiny2_content/icons/d1c154469670e9a592c9d4cbdcae5764.png","alt","Intellect",1,"dialogStatIcon"],["src","https://www.bungie.net/common/destiny2_content/icons/ea5af04ccd6a3470a44fd7bb0f66e2f7.png","alt","Strength",1,"dialogStatIcon"]],template:function(e,o){1&e&&(t.TgZ(0,"span",0),t.YNc(1,Vr,1,0,"img",1),t.YNc(2,Hr,1,0,"img",2),t.YNc(3,Wr,1,0,"img",3),t.YNc(4,jr,1,0,"img",4),t.YNc(5,zr,1,0,"img",5),t.YNc(6,Gr,1,0,"img",6),t.qZA()),2&e&&(t.xp6(1),t.Q6J("ngIf",0===o.stat),t.xp6(1),t.Q6J("ngIf",1===o.stat),t.xp6(1),t.Q6J("ngIf",2===o.stat),t.xp6(1),t.Q6J("ngIf",3===o.stat),t.xp6(1),t.Q6J("ngIf",4===o.stat),t.xp6(1),t.Q6J("ngIf",5===o.stat))},dependencies:[y.O5],styles:[".dialogStatIcon[_ngcontent-%COMP%]{position:relative;width:25px;margin-right:3px;top:4px}"]}),n})(),Kr=(()=>{class n{constructor(){}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-mod-description-tooltip"]],inputs:{mod:"mod"},decls:9,vars:2,consts:[[1,"tooltip-container"],[1,"exotic-name"]],template:function(e,o){1&e&&(t.TgZ(0,"div")(1,"div",0)(2,"table")(3,"tr")(4,"td",1),t._uU(5),t.qZA()(),t.TgZ(6,"tr")(7,"td"),t._uU(8),t.qZA()()()()()),2&e&&(t.xp6(5),t.Oqu(null==o.mod?null:o.mod.name),t.xp6(3),t.Oqu(null==o.mod?null:o.mod.description))},styles:["[_nghost-%COMP%]{width:350px}.tooltip-container[_ngcontent-%COMP%]{border:1px solid gray;padding:1px 5px 4px;background:linear-gradient(#484848 0px,#2c2c2c 100%)}.exotic-name[_ngcontent-%COMP%]{color:#eedb9e}"]}),n})(),$r=(()=>{class n{constructor(e,o,a){this._overlay=e,this._overlayPositionBuilder=o,this._elementRef=a}ngOnInit(){const e=this._overlayPositionBuilder.flexibleConnectedTo(this._elementRef).withPositions([{originX:"center",originY:"bottom",overlayX:"center",overlayY:"top",offsetY:5},{originX:"center",originY:"top",overlayX:"center",overlayY:"bottom",offsetY:-5}]);this._overlayRef=this._overlay.create({positionStrategy:e}),this._overlayRef.addPanelClass("overlay-no-pointer-event")}show(){this._overlayRef&&!this._overlayRef.hasAttached()&&(this._overlayRef.attach(new Nt.C5(Kr)).instance.mod=this.mod)}hide(){this.closeToolTip()}ngOnDestroy(){this.closeToolTip()}closeToolTip(){this._overlayRef&&this._overlayRef.detach()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(pt.aV),t.Y36(pt.wJ),t.Y36(t.SBq))},n.\u0275dir=t.lG2({type:n,selectors:[["","modTooltip",""]],hostBindings:function(e,o){1&e&&t.NdJ("mouseenter",function(){return o.show()})("mouseleave",function(){return o.hide()})},inputs:{mod:["modTooltip","mod"]}}),n})();function Xr(n,i){if(1&n){const e=t.EpF();t.ynx(0),t._UZ(1,"br"),t.TgZ(2,"mat-button-toggle-group",4)(3,"mat-button-toggle",5),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.setElement(a.ModifierType.Arc))}),t._uU(4," Arc "),t.qZA(),t.TgZ(5,"mat-button-toggle",5),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.setElement(a.ModifierType.Solar))}),t._uU(6," Solar "),t.qZA(),t.TgZ(7,"mat-button-toggle",5),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.setElement(a.ModifierType.Void))}),t._uU(8," Void "),t.qZA(),t.TgZ(9,"mat-button-toggle",5),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.setElement(a.ModifierType.Stasis))}),t._uU(10," Stasis "),t.qZA(),t.TgZ(11,"mat-button-toggle",5),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.setElement(a.ModifierType.Strand))}),t._uU(12," Strand "),t.qZA()(),t.BQk()}if(2&n){const e=t.oxw(2);t.xp6(2),t.Q6J("value",e.selectedElement),t.xp6(1),t.Q6J("value",e.ModifierType.Arc),t.xp6(2),t.Q6J("value",e.ModifierType.Solar),t.xp6(2),t.Q6J("value",e.ModifierType.Void),t.xp6(2),t.Q6J("value",e.ModifierType.Stasis),t.xp6(2),t.Q6J("value",e.ModifierType.Strand)}}function tl(n,i){if(1&n&&(t.TgZ(0,"h3",8),t._uU(1),t.qZA()),2&n){const e=t.oxw(2).$implicit;t.xp6(1),t.Oqu(e.name)}}function el(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"There are no fragments configured yet. Please be patient."),t.qZA())}function nl(n,i){1&n&&(t.TgZ(0,"th",22),t._uU(1,"Name"),t.qZA())}function ol(n,i){if(1&n&&(t.TgZ(0,"td",23)(1,"mat-slide-toggle",24),t._UZ(2,"app-item-icon",25),t._uU(3),t.qZA()()),2&n){const e=i.$implicit,o=t.oxw(4);t.Q6J("modTooltip",e),t.xp6(1),t.Q6J("checked",o.selectedMods.indexOf(e.id)>-1),t.xp6(1),t.Q6J("itemHash",e.hash),t.xp6(1),t.hij(" ",e.name," ")}}function il(n,i){1&n&&(t.TgZ(0,"th",22),t._UZ(1,"app-stat-icon",26),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",0))}function al(n,i){if(1&n&&(t.TgZ(0,"span",31),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("+",e,"")}}function sl(n,i){if(1&n&&(t.TgZ(0,"span",32),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.Oqu(e)}}function rl(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,al,2,1,"span",29),t.YNc(2,sl,2,1,"span",30),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(1),t.Q6J("ngIf",e<0)}}function ll(n,i){if(1&n&&(t.TgZ(0,"td",27),t.YNc(1,rl,3,2,"span",28),t.qZA()),2&n){const e=i.$implicit,o=t.oxw(4);t.xp6(1),t.Q6J("ngVar",o.getModifierTextForValue(e.bonus,0))}}function cl(n,i){1&n&&(t.TgZ(0,"th",22),t._UZ(1,"app-stat-icon",26),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",1))}function ml(n,i){if(1&n&&(t.TgZ(0,"span",31),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("+",e,"")}}function dl(n,i){if(1&n&&(t.TgZ(0,"span",32),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.Oqu(e)}}function ul(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,ml,2,1,"span",29),t.YNc(2,dl,2,1,"span",30),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(1),t.Q6J("ngIf",e<0)}}function pl(n,i){if(1&n&&(t.TgZ(0,"td",27),t.YNc(1,ul,3,2,"span",28),t.qZA()),2&n){const e=i.$implicit,o=t.oxw(4);t.xp6(1),t.Q6J("ngVar",o.getModifierTextForValue(e.bonus,1))}}function gl(n,i){1&n&&(t.TgZ(0,"th",22),t._UZ(1,"app-stat-icon",26),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",2))}function _l(n,i){if(1&n&&(t.TgZ(0,"span",31),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("+",e,"")}}function fl(n,i){if(1&n&&(t.TgZ(0,"span",32),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.Oqu(e)}}function hl(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,_l,2,1,"span",29),t.YNc(2,fl,2,1,"span",30),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(1),t.Q6J("ngIf",e<0)}}function xl(n,i){if(1&n&&(t.TgZ(0,"td",27),t.YNc(1,hl,3,2,"span",28),t.qZA()),2&n){const e=i.$implicit,o=t.oxw(4);t.xp6(1),t.Q6J("ngVar",o.getModifierTextForValue(e.bonus,2))}}function Tl(n,i){1&n&&(t.TgZ(0,"th",22),t._UZ(1,"app-stat-icon",26),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",3))}function yl(n,i){if(1&n&&(t.TgZ(0,"span",31),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("+",e,"")}}function bl(n,i){if(1&n&&(t.TgZ(0,"span",32),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.Oqu(e)}}function Cl(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,yl,2,1,"span",29),t.YNc(2,bl,2,1,"span",30),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(1),t.Q6J("ngIf",e<0)}}function vl(n,i){if(1&n&&(t.TgZ(0,"td",27),t.YNc(1,Cl,3,2,"span",28),t.qZA()),2&n){const e=i.$implicit,o=t.oxw(4);t.xp6(1),t.Q6J("ngVar",o.getModifierTextForValue(e.bonus,3))}}function Al(n,i){1&n&&(t.TgZ(0,"th",22),t._UZ(1,"app-stat-icon",26),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",4))}function wl(n,i){if(1&n&&(t.TgZ(0,"span",31),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("+",e,"")}}function Zl(n,i){if(1&n&&(t.TgZ(0,"span",32),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.Oqu(e)}}function Sl(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,wl,2,1,"span",29),t.YNc(2,Zl,2,1,"span",30),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(1),t.Q6J("ngIf",e<0)}}function Il(n,i){if(1&n&&(t.TgZ(0,"td",27),t.YNc(1,Sl,3,2,"span",28),t.qZA()),2&n){const e=i.$implicit,o=t.oxw(4);t.xp6(1),t.Q6J("ngVar",o.getModifierTextForValue(e.bonus,4))}}function Ol(n,i){1&n&&(t.TgZ(0,"th",22),t._UZ(1,"app-stat-icon",26),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",5))}function Ml(n,i){if(1&n&&(t.TgZ(0,"span",31),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.hij("+",e,"")}}function kl(n,i){if(1&n&&(t.TgZ(0,"span",32),t._uU(1),t.qZA()),2&n){const e=t.oxw().ngVar;t.xp6(1),t.Oqu(e)}}function Dl(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,Ml,2,1,"span",29),t.YNc(2,kl,2,1,"span",30),t.qZA()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0),t.xp6(1),t.Q6J("ngIf",e<0)}}function Ul(n,i){if(1&n&&(t.TgZ(0,"td",27),t.YNc(1,Dl,3,2,"span",28),t.qZA()),2&n){const e=i.$implicit,o=t.oxw(4);t.xp6(1),t.Q6J("ngVar",o.getModifierTextForValue(e.bonus,5))}}function El(n,i){1&n&&t._UZ(0,"tr",33)}function Rl(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"tr",34),t.NdJ("click",function(){const s=t.CHM(e).$implicit,l=t.oxw(4);return t.KtG(l.handleRowClick(s))}),t.qZA()}if(2&n){const e=i.$implicit,o=t.oxw(4);t.ekj("selected",o.selectedMods.indexOf(e.id)>-1)}}function Pl(n,i){if(1&n&&(t.TgZ(0,"table",9),t.ynx(1,10),t.YNc(2,nl,2,0,"th",11),t.YNc(3,ol,4,4,"td",12),t.BQk(),t.ynx(4,13),t.YNc(5,il,2,1,"th",11),t.YNc(6,ll,2,1,"td",14),t.BQk(),t.ynx(7,15),t.YNc(8,cl,2,1,"th",11),t.YNc(9,pl,2,1,"td",14),t.BQk(),t.ynx(10,16),t.YNc(11,gl,2,1,"th",11),t.YNc(12,xl,2,1,"td",14),t.BQk(),t.ynx(13,17),t.YNc(14,Tl,2,1,"th",11),t.YNc(15,vl,2,1,"td",14),t.BQk(),t.ynx(16,18),t.YNc(17,Al,2,1,"th",11),t.YNc(18,Il,2,1,"td",14),t.BQk(),t.ynx(19,19),t.YNc(20,Ol,2,1,"th",11),t.YNc(21,Ul,2,1,"td",14),t.BQk(),t.YNc(22,El,1,0,"tr",20),t.YNc(23,Rl,1,2,"tr",21),t.qZA()),2&n){const e=t.oxw(2).$implicit,o=t.oxw();t.Q6J("dataSource",e.data),t.xp6(22),t.Q6J("matHeaderRowDef",o.displayedColumns),t.xp6(1),t.Q6J("matRowDefColumns",o.displayedColumns)}}function Nl(n,i){if(1&n&&(t.ynx(0),t.YNc(1,tl,2,1,"h3",6),t.YNc(2,el,2,0,"span",3),t.YNc(3,Pl,24,3,"table",7),t.BQk()),2&n){const e=t.oxw().$implicit;t.xp6(1),t.Q6J("ngIf",!e.group),t.xp6(1),t.Q6J("ngIf",0===e.data.length),t.xp6(1),t.Q6J("ngIf",e.data.length>0)}}function ql(n,i){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,Xr,13,6,"ng-container",3),t.YNc(2,Nl,4,3,"ng-container",3),t.qZA()),2&n){const e=i.$implicit,o=i.index,a=t.oxw();t.xp6(1),t.Q6J("ngIf",0===o),t.xp6(1),t.Q6J("ngIf",!e.group||e.type===a.selectedElement)}}let Jl=(()=>{class n{constructor(e){this.config=e,this.ModifierType=h.O,this.ModOrAbility=f,this.displayedColumns=["name","mobility","resilience","recovery","discipline","intellect","strength"],this.selectedClass=U.None,this.selectedMods=[],this.selectedElement=h.O.Solar,this.ngUnsubscribe=new nt.xQ;const o=Object.values(ut).sort((p,b)=>p.name.toLowerCase()b.name.toLowerCase()?1:0);o.filter(p=>p.type==h.O.CombatStyleMod);let s=o.filter(p=>p.type==h.O.Stasis),l=o.filter(p=>p.type==h.O.Void),d=o.filter(p=>p.type==h.O.Solar),u=o.filter(p=>p.type==h.O.Arc),x=o.filter(p=>p.type==h.O.Strand);this.data=[{name:"Stasis Fragments",data:s,group:!0,type:h.O.Stasis},{name:"Void Fragments",data:l,group:!0,type:h.O.Void},{name:"Solar Fragments",data:d,group:!0,type:h.O.Solar},{name:"Arc Fragments",data:u,group:!0,type:h.O.Arc},{name:"Strand Fragments",data:x,group:!0,type:h.O.Strand}],this.dataSource=o}ngOnInit(){this.config.configuration.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(e=>{this.selectedMods=e.enabledMods,this.selectedClass=e.characterClass,this.selectedElement=e.selectedModElement})}getModifierTextForValue(e,o){return e.filter(a=>a.stat==o||a.stat==r.AR.ClassAbilityRegenerationStat&&(this.selectedClass==U.Titan&&o==r.WB.Resilience||this.selectedClass==U.Hunter&&o==r.WB.Mobility||this.selectedClass==U.Warlock&&o==r.WB.Recovery)).reduce((a,s)=>a+s.value,0)}handleRowClick(e){this.config.modifyConfiguration(o=>{const a=o.enabledMods.indexOf(e.id);a>-1?o.enabledMods.splice(a,1):o.enabledMods.push(e.id)})}clear(){this.config.modifyConfiguration(e=>{e.enabledMods=[]})}getAffinityName(e){return r.vr[e]}getAffinityUrl(e){return r.Sy[e]}setElement(e){this.selectedElement!=e&&this.config.modifyConfiguration(o=>{const a=o.enabledMods.filter(s=>ut[s].type!=h.O.CombatStyleMod&&ut[s].type!=e);o.selectedModElement=e;for(let s of a){const l=o.enabledMods.indexOf(s);o.enabledMods.splice(l,1)}})}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(B))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-desired-mods-selection"]],features:[t._Bn([{provide:Zt.HT,useValue:{disableToggleValue:!1,disableDragValue:!0}}])],decls:4,vars:1,consts:[[4,"ngFor","ngForOf"],["id","clear-container"],["color","warn","mat-stroked-button","",3,"click"],[4,"ngIf"],[3,"value"],[3,"value","click"],["class","stat-part-title",4,"ngIf"],["mat-table","",3,"dataSource",4,"ngIf"],[1,"stat-part-title"],["mat-table","",3,"dataSource"],["matColumnDef","name"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",3,"modTooltip",4,"matCellDef"],["matColumnDef","mobility"],["mat-cell","",4,"matCellDef"],["matColumnDef","resilience"],["matColumnDef","recovery"],["matColumnDef","discipline"],["matColumnDef","intellect"],["matColumnDef","strength"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",3,"selected","click",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],["mat-cell","",3,"modTooltip"],["color","primary","disabled","",2,"cursor","pointer !important",3,"checked"],[3,"itemHash"],[3,"stat"],["mat-cell",""],[4,"ngVar"],["class","stat-positive",4,"ngIf"],["class","stat-negative",4,"ngIf"],[1,"stat-positive"],[1,"stat-negative"],["mat-header-row",""],["mat-row","",3,"click"]],template:function(e,o){1&e&&(t.YNc(0,ql,3,2,"span",0),t.TgZ(1,"div",1)(2,"button",2),t.NdJ("click",function(){return o.clear()}),t._uU(3,"Clear the whole selection"),t.qZA()()),2&e&&t.Q6J("ngForOf",o.data)},dependencies:[y.sg,y.O5,g.lW,Zt.Rr,w.BZ,w.fO,w.as,w.w1,w.Dz,w.nj,w.ge,w.ev,w.XQ,w.Gk,it.A9,it.Yi,fe,Ct,Ht,$r],styles:[".mat-slide-toggle.mat-disabled[_ngcontent-%COMP%]{opacity:1}.stat-part-title[_ngcontent-%COMP%]{margin-top:10px;margin-bottom:5px}.modTable[_ngcontent-%COMP%]{width:100%}.mat-header-row[_ngcontent-%COMP%], .mat-row[_ngcontent-%COMP%]{height:30px}.mat-column-mobility[_ngcontent-%COMP%], .mat-column-resilience[_ngcontent-%COMP%], .mat-column-recovery[_ngcontent-%COMP%], .mat-column-discipline[_ngcontent-%COMP%], .mat-column-intellect[_ngcontent-%COMP%], .mat-column-strength[_ngcontent-%COMP%], .mat-column-cost[_ngcontent-%COMP%]{min-width:40px;text-align:center}.mat-row[_ngcontent-%COMP%]:hover{background-color:#494949}.mat-column-mobility[_ngcontent-%COMP%], .mat-column-recovery[_ngcontent-%COMP%], .mat-column-intellect[_ngcontent-%COMP%]{background-color:#464646}.mat-column-name[_ngcontent-%COMP%]{padding-right:4px;border-right:1px solid currentColor;min-width:150px}.mat-column-name[_ngcontent-%COMP%] app-item-icon[_ngcontent-%COMP%]{float:left;margin-right:5px}.mat-row[_ngcontent-%COMP%]{cursor:pointer}th.mat-header-cell[_ngcontent-%COMP%]:last-of-type, td.mat-cell[_ngcontent-%COMP%]:last-of-type, td.mat-footer-cell[_ngcontent-%COMP%]:last-of-type{padding-right:0}.mat-cell[_ngcontent-%COMP%]:last-of-type, .mat-header-cell[_ngcontent-%COMP%]:last-of-type, .mat-footer-cell[_ngcontent-%COMP%]:last-of-type{padding-right:0}.stat-negative[_ngcontent-%COMP%], .stat-positive[_ngcontent-%COMP%]{margin-right:3px}.stat-negative[_ngcontent-%COMP%]{color:#f08080}.stat-positive[_ngcontent-%COMP%]{color:#b6cbfc}.stat-display[_ngcontent-%COMP%]{width:60px;float:left;align-content:end;text-align:right}.mat-row[_ngcontent-%COMP%]:hover, .mat-row[_ngcontent-%COMP%]:hover .mat-cell[_ngcontent-%COMP%]{background-color:#494949}.mat-row.selected[_ngcontent-%COMP%]:hover, .mat-row.selected[_ngcontent-%COMP%]:hover .mat-cell[_ngcontent-%COMP%]{background-color:#89b2ff30}.selected[_ngcontent-%COMP%], .selected[_ngcontent-%COMP%] .mat-column-mobility[_ngcontent-%COMP%], .selected[_ngcontent-%COMP%] .mat-column-recovery[_ngcontent-%COMP%], .selected[_ngcontent-%COMP%] .mat-column-intellect[_ngcontent-%COMP%]{background-color:#89b2ff1c}.mat-column-name[_ngcontent-%COMP%]{min-width:190px}.element-icon[_ngcontent-%COMP%]{width:22px}#clear-container[_ngcontent-%COMP%]{padding-top:10px}#retrofit-table[_ngcontent-%COMP%] .rft-icon-container[_ngcontent-%COMP%]{width:22px;display:inline-block}#retrofit-table[_ngcontent-%COMP%] .rft-icon-container[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{position:relative}#retrofit-table[_ngcontent-%COMP%] .rft-icon-container[_ngcontent-%COMP%] app-stat-icon[_ngcontent-%COMP%]{position:absolute;top:-22px;left:-10px}"]}),n})();function Yl(n,i){if(1&n&&(t.TgZ(0,"mat-icon",8,9),t._uU(2," help "),t.qZA()),2&n){const e=t.oxw().$implicit;t.s9C("matTooltip",e.help)}}function Ll(n,i){1&n&&(t.TgZ(0,"mat-icon",10,9),t._uU(2," report_problem "),t.qZA())}function Fl(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"div",4)(1,"mat-slide-toggle",5),t.NdJ("change",function(a){const l=t.CHM(e).$implicit;return t.KtG(l.cp(a.checked))}),t._uU(2),t.qZA(),t.YNc(3,Yl,3,1,"mat-icon",6),t.YNc(4,Ll,3,0,"mat-icon",7),t.qZA()}if(2&n){const e=i.$implicit;t.xp6(1),t.Q6J("disabled",e.disabled)("checked",e.value),t.xp6(1),t.hij(" ",e.name," "),t.xp6(1),t.Q6J("ngIf",e.help),t.xp6(1),t.Q6J("ngIf",e.impactsResultCount)}}function Ql(n,i){if(1&n&&(t.TgZ(0,"div")(1,"span",1),t._uU(2),t.qZA(),t.YNc(3,Fl,5,5,"div",2),t._UZ(4,"div",3),t.qZA()),2&n){const e=i.$implicit,o=t.oxw();t.xp6(2),t.Oqu(e),t.xp6(1),t.Q6J("ngForOf",o.fields2[e])}}let Bl=(()=>{class n{constructor(e){this.config=e,this.fields2={},this.fieldKeys=[],this.ngUnsubscribe=new nt.xQ}ngOnInit(){this.config.configuration.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(e=>{this.fields2={Events:[{name:"Enforce the usage of a Festival of the Lost Mask.",cp:o=>this.config.modifyConfiguration(a=>a.useFotlArmor=o),value:e.useFotlArmor,disabled:!1,impactsResultCount:!0,help:"Only use a FotL masks. You will not get results if you do not own the mask."}],Masterwork:[{name:"Assume all legendary items are masterworked",cp:o=>this.config.modifyConfiguration(a=>a.assumeLegendariesMasterworked=o),value:e.assumeLegendariesMasterworked,disabled:!1,impactsResultCount:!1,help:void 0},{name:"Assume all exotic items are masterworked",cp:o=>this.config.modifyConfiguration(a=>a.assumeExoticsMasterworked=o),value:e.assumeExoticsMasterworked,disabled:!1,impactsResultCount:!1,help:"If this setting is enabled, the tool will treat non-masterworked exotic armor as if it were masterworked-."},{name:"Assume that class items are masterworked",cp:o=>this.config.modifyConfiguration(a=>a.assumeClassItemMasterworked=o),value:e.assumeClassItemMasterworked,disabled:!1,impactsResultCount:!1,help:"If this setting is enabled, a plain +2 is added to every stat. This means that your Class Item must be masterworked."},{name:"Only use already masterworked items",cp:o=>this.config.modifyConfiguration(a=>a.onlyUseMasterworkedItems=o),value:e.onlyUseMasterworkedItems,disabled:!1,impactsResultCount:!0,help:void 0}],"Performance Optimization":[{name:"Use security features to prevent app crashes (resets on reload).",cp:o=>this.config.modifyConfiguration(a=>a.limitParsedResults=o),value:e.limitParsedResults,disabled:!1,impactsResultCount:!0,help:"Only parse the first 30,000 results. Deactivating this may crash your browser. The results will still be limited to 1,000,000 entries. Note that you will not miss any significant results by leaving this enabled."}],"Extra Columns":[{name:"Show maximum reachable tiers in the Tiers-Column instead of real Tiers.",cp:o=>this.config.modifyConfiguration(a=>a.showPotentialTierColumn=o),value:e.showPotentialTierColumn,disabled:!1,impactsResultCount:!1,help:"Shows an additional column in the table that shows how many tiers this build would have, if all stat mods were used. This is important when builds do not use all 5 stat mods."},{name:"Show the wasted stats in an extra column.",cp:o=>this.config.modifyConfiguration(a=>a.showWastedStatsColumn=o),value:e.showWastedStatsColumn,disabled:!1,impactsResultCount:!1,help:"Shows an additional column in the table that shows how many stats are wasted in a build."}],"Wasted Stats":[{name:"Try to optimize wasted stats (slower)",cp:o=>this.config.modifyConfiguration(a=>a.tryLimitWastedStats=o),value:e.tryLimitWastedStats,disabled:!1,impactsResultCount:!1,help:"The tool will try to add minor stat mods to minimize wasted stats. This only works for combinations that fulfill your desired stat combination with enough mods so at least one mod slot is still open."},{name:"Only show builds with no wasted stats",cp:o=>this.config.modifyConfiguration(a=>a.onlyShowResultsWithNoWastedStats=o),value:S_featureFlags_enableZeroWaste&&e.onlyShowResultsWithNoWastedStats,disabled:!S_featureFlags_enableZeroWaste,impactsResultCount:!0,help:"Only show builds with zero wasted stats - this means, its highly likely that you won't get any results."}],"Data-Science":[{name:"Add a constant +1 resilience to the results with non-exotic chests (resets on reload).",cp:o=>this.config.modifyConfiguration(a=>a.addConstent1Resilience=o),value:e.addConstent1Resilience,disabled:!1,impactsResultCount:!1,help:"You usually do not want to use this."},{name:"Assume every legendary is an artifice armor.",cp:o=>this.config.modifyConfiguration(a=>a.assumeEveryLegendaryIsArtifice=o),value:e.assumeEveryLegendaryIsArtifice,disabled:!1,impactsResultCount:!0,help:"This is for debugging purposes. Do not complain if you enable this. Reload after changing this setting."}]},this.fieldKeys=Object.keys(this.fields2)})}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(B))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-advanced-settings"]],decls:1,vars:1,consts:[[4,"ngFor","ngForOf"],[1,"category-header"],["class","adv-settings",4,"ngFor","ngForOf"],[1,"category-spacer"],[1,"adv-settings"],["color","primary",3,"disabled","checked","change"],["inline","","aria-hidden","false","aria-label","Help",3,"matTooltip",4,"ngIf"],["inline","","aria-hidden","false","aria-label","Help","class","report-problem-icon","matTooltip","This setting might impact the amount of results. It may happen that you won't get any results if you change this setting. In this case, simply switch it back to its default state.",4,"ngIf"],["inline","","aria-hidden","false","aria-label","Help",3,"matTooltip"],["tooltip","matTooltip"],["inline","","aria-hidden","false","aria-label","Help","matTooltip","This setting might impact the amount of results. It may happen that you won't get any results if you change this setting. In this case, simply switch it back to its default state.",1,"report-problem-icon"]],template:function(e,o){1&e&&t.YNc(0,Ql,5,2,"div",0),2&e&&t.Q6J("ngForOf",o.fieldKeys)},dependencies:[y.sg,y.O5,Zt.Rr,N.gM,j.Hw],styles:[".category-spacer[_ngcontent-%COMP%]{height:3px}.category-header[_ngcontent-%COMP%]{font-style:italic}.adv-settings[_ngcontent-%COMP%]{margin-left:20px}.report-problem-icon[_ngcontent-%COMP%]{color:#f08080}"]}),n})(),qt=(()=>{class n{constructor(e,o){this.dialogRef=e,this.data=o}onNoClick(){this.dialogRef.close()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36($.so),t.Y36($.WI))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-confirm-dialog"]],decls:10,vars:2,consts:[["mat-dialog-title",""],["mat-dialog-content",""],["mat-dialog-actions",""],["mat-button","",3,"click"],["mat-raised-button","","color","primary",3,"mat-dialog-close"]],template:function(e,o){1&e&&(t.TgZ(0,"h1",0),t._uU(1,"Confirm"),t.qZA(),t.TgZ(2,"div",1)(3,"p"),t._uU(4),t.qZA()(),t.TgZ(5,"div",2)(6,"button",3),t.NdJ("click",function(){return o.onNoClick()}),t._uU(7,"No Thanks"),t.qZA(),t.TgZ(8,"button",4),t._uU(9,"Ok"),t.qZA()()),2&e&&(t.xp6(4),t.Oqu(o.data.description),t.xp6(4),t.Q6J("mat-dialog-close",!0))},dependencies:[g.lW,$.ZT,$.uh,$.xY,$.H8]}),n})();var lt=_(9549),Vl=_(4385),Jt=_(4144);function Hl(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"Titan"),t.qZA())}function Wl(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"Hunter"),t.qZA())}function jl(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"Warlock"),t.qZA())}function zl(n,i){if(1&n&&(t.TgZ(0,"mat-option",30)(1,"span"),t._uU(2,"("),t.YNc(3,Hl,2,0,"span",26),t.YNc(4,Wl,2,0,"span",26),t.YNc(5,jl,2,0,"span",26),t._uU(6,") "),t.qZA(),t.TgZ(7,"span"),t._uU(8),t.qZA()()),2&n){const e=i.$implicit;t.Q6J("value",e.name),t.xp6(3),t.Q6J("ngIf",0===e.configuration.characterClass),t.xp6(1),t.Q6J("ngIf",1===e.configuration.characterClass),t.xp6(1),t.Q6J("ngIf",2===e.configuration.characterClass),t.xp6(3),t.hij(" ",e.name,"")}}function Gl(n,i){1&n&&(t.TgZ(0,"th",31),t._uU(1,"Name"),t.qZA())}function Kl(n,i){if(1&n&&(t.TgZ(0,"td",32),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.hij("",e.name," ")}}function $l(n,i){1&n&&(t.TgZ(0,"th",31),t._uU(1," Class "),t.qZA())}function Xl(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"Titan"),t.qZA())}function tc(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"Hunter"),t.qZA())}function ec(n,i){1&n&&(t.TgZ(0,"span"),t._uU(1,"Warlock"),t.qZA())}function nc(n,i){if(1&n&&(t.TgZ(0,"td",32),t.YNc(1,Xl,2,0,"span",26),t.YNc(2,tc,2,0,"span",26),t.YNc(3,ec,2,0,"span",26),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.Q6J("ngIf",0===e.configuration.characterClass),t.xp6(1),t.Q6J("ngIf",1===e.configuration.characterClass),t.xp6(1),t.Q6J("ngIf",2===e.configuration.characterClass)}}function oc(n,i){1&n&&(t.TgZ(0,"th",31),t._UZ(1,"app-stat-icon",33),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",0))}function ic(n,i){if(1&n&&(t.TgZ(0,"td",32),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.hij(" ",10*e.configuration.minimumStatTiers[0].value," ")}}function ac(n,i){1&n&&(t.TgZ(0,"th",31),t._UZ(1,"app-stat-icon",33),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",1))}function sc(n,i){if(1&n&&(t.TgZ(0,"td",32),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.hij(" ",10*e.configuration.minimumStatTiers[1].value," ")}}function rc(n,i){1&n&&(t.TgZ(0,"th",31),t._UZ(1,"app-stat-icon",33),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",2))}function lc(n,i){if(1&n&&(t.TgZ(0,"td",32),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.hij(" ",10*e.configuration.minimumStatTiers[2].value," ")}}function cc(n,i){1&n&&(t.TgZ(0,"th",31),t._UZ(1,"app-stat-icon",33),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",3))}function mc(n,i){if(1&n&&(t.TgZ(0,"td",32),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.hij(" ",10*e.configuration.minimumStatTiers[3].value," ")}}function dc(n,i){1&n&&(t.TgZ(0,"th",31),t._UZ(1,"app-stat-icon",33),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",4))}function uc(n,i){if(1&n&&(t.TgZ(0,"td",32),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.hij(" ",10*e.configuration.minimumStatTiers[4].value," ")}}function pc(n,i){1&n&&(t.TgZ(0,"th",31),t._UZ(1,"app-stat-icon",33),t.qZA()),2&n&&(t.xp6(1),t.Q6J("stat",5))}function gc(n,i){if(1&n&&(t.TgZ(0,"td",32),t._uU(1),t.qZA()),2&n){const e=i.$implicit;t.xp6(1),t.hij(" ",10*e.configuration.minimumStatTiers[5].value," ")}}function _c(n,i){1&n&&t._UZ(0,"th",31)}function fc(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"td",32)(1,"button",34),t.NdJ("click",function(){const s=t.CHM(e).$implicit,l=t.oxw();return t.KtG(l.delete(s.name))}),t.TgZ(2,"mat-icon"),t._uU(3,"delete_forever"),t.qZA()(),t.TgZ(4,"button",35),t.NdJ("click",function(){const s=t.CHM(e).$implicit,l=t.oxw();return t.KtG(l.load(s.name))}),t.TgZ(5,"mat-icon"),t._uU(6,"check_circle_outline"),t.qZA()(),t.TgZ(7,"button",36),t.NdJ("click",function(){const s=t.CHM(e).$implicit,l=t.oxw();return t.KtG(l.copySingleSettingToClipboard(s))}),t.TgZ(8,"mat-icon"),t._uU(9,"get_app"),t.qZA()()()}}function hc(n,i){1&n&&t._UZ(0,"tr",37)}function xc(n,i){1&n&&t._UZ(0,"tr",38)}function Tc(n,i){if(1&n){const e=t.EpF();t.ynx(0),t._UZ(1,"br"),t.TgZ(2,"button",39),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.copyAllSettingsToClipboard())}),t._uU(3," Copy all saved configurations to the clipboard "),t.qZA(),t.BQk()}}let yc=(()=>{class n{constructor(e,o,a,s,l){this.config=e,this.formBuilder=o,this.dialog=a,this._snackBar=s,this.clipboard=l,this.selectedEntry="",this.storedConfigs=[],this.displayedColumns=["name","class","mobility","resilience","recovery","discipline","intellect","strength","delete"],this.ngUnsubscribe=new nt.xQ,this.settingsNameForm=this.formBuilder.group({name:[null]}),this.importTextForm=this.formBuilder.group({content:[null]})}ngOnInit(){this.config.storedConfigurations.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(e=>this.storedConfigs=e)}submit(){const e=this.settingsNameForm.get("name")?.value;!e||(this.config.doesSavedConfigurationExist(e)?this.dialog.open(qt,{width:"300px",data:{description:"Do you want to overwrite this configuration?"}}).afterClosed().subscribe(a=>{a&&(this.config.saveCurrentConfigurationToName(e),this.settingsNameForm.reset(),this.selectedEntry=e)}):(this.config.saveCurrentConfigurationToName(e),this.settingsNameForm.reset(),this.selectedEntry=e))}delete(e){this.dialog.open(qt,{width:"300px",data:{description:"Do you want to delete this configuration?"}}).afterClosed().subscribe(a=>{a&&this.config.deleteStoredConfiguration(e)})}clearEverything(){this.dialog.open(qt,{width:"300px",data:{description:"Do you want to clear all settings?"}}).afterClosed().subscribe(o=>{o&&this.config.resetCurrentConfiguration()})}load(e){this.dialog.open(qt,{width:"300px",data:{description:"Do you want to load this preset?"}}).afterClosed().subscribe(a=>{a&&this.config.loadSavedConfiguration(e)})}runImport(){const e=this.importTextForm.get("content")?.value;if(!e)return this.openSnackBar("Invalid input.");try{const o=rt.decompress(e,{inputEncoding:"Base64"}),a="["==o.substr(0,1);let s=JSON.parse(o);a||(s=[s]),console.log("Incoming json:",s);for(let l of s)this.config.checkAndFixOldSavedConfigurations(l),l.hasOwnProperty("name")?a?this.config.saveConfiguration(l.name,l.configuration):this.config.saveCurrentConfiguration(l.configuration):this.config.saveCurrentConfiguration(l);this.openSnackBar("Successfully loaded this configuration"),this.importTextForm.get("content")?.reset()}catch(o){this.openSnackBar("Invalid input."),console.error(o)}}copySingleSettingToClipboard(e){this.clipboard.copy(this.config.getStoredConfigurationBase64Compressed(e.name)),this.openSnackBar("Copied the configuration to your clipboard. You can share it with your friends.")}copyAllSettingsToClipboard(){this.clipboard.copy(this.config.getAllStoredConfigurationsBase64Compressed()),this.openSnackBar("Exported all configurations to the clipboard. You can then save and share them.")}openSnackBar(e){this._snackBar.open(e,"",{duration:2500,politeness:"polite"})}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(B),t.Y36(V.QS),t.Y36($.uw),t.Y36(Vt.ux),t.Y36(wt.TU))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-load-and-save-settings"]],decls:78,vars:13,consts:[[3,"formGroup","submit"],["id","settings"],["appearance","outline"],["formControlName","name","matInput","","maxlength","30","minlength","4","placeholder","Awesome Discipline Build 4"],["color","primary","mat-raised-button","","type","submit",3,"disabled"],["color","warn","mat-raised-button","","matTooltip","Clears the ENTIRE configuration and uses the default settings. Use with caution.",3,"click"],["color","primary","mat-raised-button","","matTooltip","Copy your current configuration into your clipboard. You will be able to share it with others and import it later.",3,"cdkCopyToClipboard","click"],[2,"display","none"],[3,"value","disabled","valueChange"],[3,"value",4,"ngFor","ngForOf"],["color","primary","mat-raised-button","","matTooltip","Load the currently selected configuration.",3,"disabled","click"],["color","warn","mat-stroked-button","","matTooltip","Delete the currently selected configuration. Can not be undone.",3,"disabled","click"],["mat-table","",3,"dataSource"],["matColumnDef","name"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","class"],["matColumnDef","mobility"],["matColumnDef","resilience"],["matColumnDef","recovery"],["matColumnDef","discipline"],["matColumnDef","intellect"],["matColumnDef","strength"],["matColumnDef","delete"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],[4,"ngIf"],[3,"formGroup"],["formControlName","content","matInput",""],["color","primary","mat-raised-button","","matTooltip","Import the given configuration",3,"click"],[3,"value"],["mat-header-cell",""],["mat-cell",""],[3,"stat"],["color","warn","mat-icon-button","","matTooltip","Delete this configuration permanently.",3,"click"],["color","primary","mat-icon-button","","matTooltip","Load this configuration. Your current settings will be overwritten.",3,"click"],["color","primary","mat-icon-button","","matTooltip","Copy this configuration into your clipboard. You will be able to share it with others and import it later.",3,"click"],["mat-header-row",""],["mat-row",""],["color","primary","mat-raised-button","","matTooltip","Export all configurations to the clipboard. You can then save and share them.",3,"click"]],template:function(e,o){if(1&e&&(t.TgZ(0,"form",0),t.NdJ("submit",function(){return o.submit()}),t.TgZ(1,"table",1)(2,"tr")(3,"td")(4,"mat-form-field",2)(5,"mat-label"),t._uU(6,"Name to save the configuration"),t.qZA(),t._UZ(7,"input",3),t.qZA()(),t.TgZ(8,"td")(9,"button",4),t._uU(10," Save current "),t.qZA()(),t.TgZ(11,"td")(12,"button",5),t.NdJ("click",function(){return o.clearEverything()}),t._uU(13,"Clear everything "),t.qZA()(),t.TgZ(14,"td")(15,"button",6),t.NdJ("click",function(){return o.openSnackBar("Copied the configuration to your clipboard. You can share it with your friends.")}),t._uU(16," Copy Current "),t.qZA()()(),t.TgZ(17,"tr",7)(18,"td")(19,"mat-form-field",2)(20,"mat-label"),t._uU(21,"Load saved configuration"),t.qZA(),t.TgZ(22,"mat-select",8),t.NdJ("valueChange",function(s){return o.selectedEntry=s}),t.YNc(23,zl,9,5,"mat-option",9),t.qZA()()(),t.TgZ(24,"td")(25,"button",10),t.NdJ("click",function(){return o.load(o.selectedEntry)}),t._uU(26,"Load "),t.qZA()(),t.TgZ(27,"td")(28,"button",11),t.NdJ("click",function(){return o.delete(o.selectedEntry)}),t._uU(29,"Delete "),t.qZA()()()()(),t._UZ(30,"br"),t.TgZ(31,"table",12),t.ynx(32,13),t.YNc(33,Gl,2,0,"th",14),t.YNc(34,Kl,2,1,"td",15),t.BQk(),t.ynx(35,16),t.YNc(36,$l,2,0,"th",14),t.YNc(37,nc,4,3,"td",15),t.BQk(),t.ynx(38,17),t.YNc(39,oc,2,1,"th",14),t.YNc(40,ic,2,1,"td",15),t.BQk(),t.ynx(41,18),t.YNc(42,ac,2,1,"th",14),t.YNc(43,sc,2,1,"td",15),t.BQk(),t.ynx(44,19),t.YNc(45,rc,2,1,"th",14),t.YNc(46,lc,2,1,"td",15),t.BQk(),t.ynx(47,20),t.YNc(48,cc,2,1,"th",14),t.YNc(49,mc,2,1,"td",15),t.BQk(),t.ynx(50,21),t.YNc(51,dc,2,1,"th",14),t.YNc(52,uc,2,1,"td",15),t.BQk(),t.ynx(53,22),t.YNc(54,pc,2,1,"th",14),t.YNc(55,gc,2,1,"td",15),t.BQk(),t.ynx(56,23),t.YNc(57,_c,1,0,"th",14),t.YNc(58,fc,10,0,"td",15),t.BQk(),t.YNc(59,hc,1,0,"tr",24),t.YNc(60,xc,1,0,"tr",25),t.qZA(),t.YNc(61,Tc,4,0,"ng-container",26),t._UZ(62,"br"),t.TgZ(63,"div"),t._UZ(64,"hr"),t.TgZ(65,"h2"),t._uU(66,"Import a previously exported configuration"),t.qZA(),t.TgZ(67,"form",27)(68,"table")(69,"tr")(70,"td")(71,"mat-form-field",2)(72,"mat-label"),t._uU(73,"Copied configuration"),t.qZA(),t._UZ(74,"input",28),t.qZA()(),t.TgZ(75,"td")(76,"button",29),t.NdJ("click",function(){return o.runImport()}),t._uU(77," Start the import "),t.qZA()()()()()()),2&e){let a;t.Q6J("formGroup",o.settingsNameForm),t.xp6(9),t.Q6J("disabled",!(null!=(a=o.settingsNameForm.get("name"))&&a.value)||(null==(a=o.settingsNameForm.get("name"))?null:a.value.length)<4||(null==(a=o.settingsNameForm.get("name"))?null:a.value.length)>30),t.xp6(6),t.Q6J("cdkCopyToClipboard",o.config.getCurrentConfigBase64Compressed()),t.xp6(7),t.Q6J("value",o.selectedEntry)("disabled",0===o.storedConfigs.length),t.xp6(1),t.Q6J("ngForOf",o.storedConfigs),t.xp6(2),t.Q6J("disabled",!o.selectedEntry||0===o.storedConfigs.length),t.xp6(3),t.Q6J("disabled",!o.selectedEntry||0===o.storedConfigs.length),t.xp6(3),t.Q6J("dataSource",o.storedConfigs),t.xp6(28),t.Q6J("matHeaderRowDef",o.displayedColumns),t.xp6(1),t.Q6J("matRowDefColumns",o.displayedColumns),t.xp6(1),t.Q6J("ngIf",o.storedConfigs.length>0),t.xp6(6),t.Q6J("formGroup",o.importTextForm)}},dependencies:[y.sg,y.O5,V._Y,V.Fj,V.JJ,V.JL,V.wO,V.nD,V.sg,V.u,g.lW,lt.KE,lt.hX,Vl.gD,pe.ey,Jt.Nt,w.BZ,w.fO,w.as,w.w1,w.Dz,w.nj,w.ge,w.ev,w.XQ,w.Gk,N.gM,j.Hw,wt.i3,fe],styles:[".modTable[_ngcontent-%COMP%]{width:100%}.mat-header-row[_ngcontent-%COMP%], .mat-row[_ngcontent-%COMP%]{height:30px}.mat-column-class[_ngcontent-%COMP%]{min-width:55px;padding-right:2px;padding-left:2px;text-align:center;border-right:1px solid currentColor}.mat-column-mobility[_ngcontent-%COMP%], .mat-column-resilience[_ngcontent-%COMP%], .mat-column-recovery[_ngcontent-%COMP%], .mat-column-discipline[_ngcontent-%COMP%], .mat-column-intellect[_ngcontent-%COMP%], .mat-column-strength[_ngcontent-%COMP%]{min-width:40px;text-align:center}.mat-row[_ngcontent-%COMP%]:hover{background-color:#494949}.mat-column-mobility[_ngcontent-%COMP%], .mat-column-recovery[_ngcontent-%COMP%], .mat-column-intellect[_ngcontent-%COMP%]{background-color:#464646}.mat-column-name[_ngcontent-%COMP%]{padding-right:4px;border-right:1px solid currentColor;min-width:150px}th.mat-header-cell[_ngcontent-%COMP%]:last-of-type, td.mat-cell[_ngcontent-%COMP%]:last-of-type, td.mat-footer-cell[_ngcontent-%COMP%]:last-of-type{padding-right:0}.mat-cell[_ngcontent-%COMP%]:last-of-type, .mat-header-cell[_ngcontent-%COMP%]:last-of-type, .mat-footer-cell[_ngcontent-%COMP%]:last-of-type{padding-right:0}.stat-negative[_ngcontent-%COMP%], .stat-positive[_ngcontent-%COMP%]{margin-right:3px}.stat-negative[_ngcontent-%COMP%]{color:#f08080}.stat-positive[_ngcontent-%COMP%]{color:#6495ed}.stat-display[_ngcontent-%COMP%]{width:60px;float:left;align-content:end;text-align:right}.mat-row[_ngcontent-%COMP%]:hover, .mat-row[_ngcontent-%COMP%]:hover .mat-cell[_ngcontent-%COMP%]{background-color:#494949}.mat-row.selected[_ngcontent-%COMP%]:hover, .mat-row.selected[_ngcontent-%COMP%]:hover .mat-cell[_ngcontent-%COMP%]{background-color:#89b2ff30}.selected[_ngcontent-%COMP%], .selected[_ngcontent-%COMP%] .mat-column-mobility[_ngcontent-%COMP%], .selected[_ngcontent-%COMP%] .mat-column-recovery[_ngcontent-%COMP%], .selected[_ngcontent-%COMP%] .mat-column-intellect[_ngcontent-%COMP%]{background-color:#89b2ff1c}.mat-column-load[_ngcontent-%COMP%], .mat-column-delete[_ngcontent-%COMP%]{padding-left:3px;padding-right:3px}[_nghost-%COMP%] .mat-form-field-wrapper{margin:0!important;padding:0}"]}),n})();function bc(n,i){1&n&&t._UZ(0,"br")}function Cc(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"span",2)(1,"img",3),t.NdJ("click",function(){const s=t.CHM(e).$implicit,l=t.oxw();return t.KtG(l.enableItem(s.itemInstanceId))}),t.qZA(),t.YNc(2,bc,1,0,"br",4),t.qZA()}if(2&n){const e=i.$implicit,o=i.index,a=t.oxw();t.xp6(1),t.MGl("src","https://bungie.net/",e.icon,"",t.LSH),t.Q6J("matTooltip",a.generateTooltip(e)),t.xp6(1),t.Q6J("ngIf",(o+1)%10==0)}}let vc=(()=>{class n{constructor(e,o){this.config=e,this.db=o,this.disabledItems=[],this.ngUnsubscribe=new nt.xQ}enableItem(e){this.config.modifyConfiguration(o=>{o.disabledItems.splice(o.disabledItems.indexOf(e),1)})}generateTooltip(e){return"Click this icon to activate this item again.\r\n"+e.name+" "+(e.mobility+(e.masterworked?2:0))+"/"+(e.resilience+(e.masterworked?2:0))+"/"+(e.recovery+(e.masterworked?2:0))+"/"+(e.discipline+(e.masterworked?2:0))+"/"+(e.intellect+(e.masterworked?2:0))+"/"+(e.strength+(e.masterworked?2:0))}ngOnInit(){var e=this;this.config.configuration.pipe((0,Q.R)(this.ngUnsubscribe)).subscribe(function(){var o=(0,m.Z)(function*(a){let s=[];for(let l of a.disabledItems){let d=yield e.db.inventoryArmor.where("itemInstanceId").equals(l).first();d&&s.push(d)}e.disabledItems=s});return function(a){return o.apply(this,arguments)}}())}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(B),t.Y36(et))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-ignored-items-list"]],decls:2,vars:1,consts:[[1,"item-icon-container"],["class","item-sub",4,"ngFor","ngForOf"],[1,"item-sub"],["matTooltipClass","allow-cr",1,"item-icon",3,"src","matTooltip","click"],[4,"ngIf"]],template:function(e,o){1&e&&(t.TgZ(0,"div",0),t.YNc(1,Cc,3,3,"span",1),t.qZA()),2&e&&(t.xp6(1),t.Q6J("ngForOf",o.disabledItems))},dependencies:[y.sg,y.O5,N.gM],styles:[".item-icon[_ngcontent-%COMP%]{width:40px}.item-icon[_ngcontent-%COMP%]:hover{filter:brightness(.8) hue-rotate(350deg) saturate(3) blur(2px) contrast(.6);cursor:not-allowed}.item-sub[_ngcontent-%COMP%]{margin-right:3px}.item-icon-container[_ngcontent-%COMP%]{position:relative;contain:layout paint style;box-sizing:border-box;width:var(--item-size);transition:opacity .2s,transform .2s}"]}),n})(),Ac=(()=>{class n{constructor(){}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-settings"]],decls:71,vars:0,consts:[["id","card-config"],["id","content-char-selection"],["inline","","aria-hidden","false","aria-label","Help","matTooltip","Cooldowns and Stats provided by Clarity."],["tooltip","matTooltip"]],template:function(e,o){1&e&&(t.TgZ(0,"div",0)(1,"mat-card")(2,"mat-card-title"),t._uU(3,"Character Selection"),t.qZA(),t.TgZ(4,"mat-card-content",1),t._UZ(5,"app-desired-class-selection"),t.qZA()(),t.TgZ(6,"mat-card")(7,"mat-card-title"),t._uU(8,"Select the stats you want to achieve"),t.qZA(),t.TgZ(9,"mat-card-subtitle"),t._uU(10,"The heart of this tool. Select the stats you want! "),t.TgZ(11,"mat-icon",2,3),t._uU(13," info "),t.qZA()(),t.TgZ(14,"mat-card-content"),t._UZ(15,"app-desired-stat-selection"),t.qZA()(),t.TgZ(16,"mat-card")(17,"mat-card-title"),t._uU(18,"Armor Selection"),t.qZA(),t.TgZ(19,"mat-card-subtitle"),t._uU(20," This section allows you to limit the armor pieces that are used in the buildcrafting process."),t._UZ(21,"br"),t._uU(22," If you want, limit all results to one exotic. "),t._UZ(23,"br"),t._uU(24," Exotics you do not have in the inventory or vault are grayed out. "),t.qZA(),t.TgZ(25,"mat-card-content"),t._UZ(26,"app-desired-exotic-selection"),t.qZA()(),t.TgZ(27,"mat-card")(28,"mat-card-title"),t._uU(29,"Armor limitation"),t.qZA(),t.TgZ(30,"mat-card-subtitle"),t._uU(31," This section allows you to further specify what kind of armor and mods you want. "),t.qZA(),t.TgZ(32,"mat-card-content"),t._UZ(33,"app-desired-mod-selection"),t.qZA()(),t.TgZ(34,"mat-card")(35,"mat-card-title"),t._uU(36,"Stat-Boost Selection"),t.qZA(),t.TgZ(37,"mat-card-subtitle"),t._uU(38,"Select Mods and Skills that affect your overall stats."),t._UZ(39,"br"),t._uU(40," Please note that D2AP also allows theoretical, but impossible input."),t._UZ(41,"br"),t.TgZ(42,"b"),t._uU(43,"Only fragments that affect stats are shown."),t.qZA()(),t.TgZ(44,"mat-card-content"),t._UZ(45,"app-desired-mods-selection"),t.qZA()(),t.TgZ(46,"mat-card")(47,"mat-card-title"),t._uU(48,"Advanced Settings"),t.qZA(),t.TgZ(49,"mat-card-subtitle"),t._uU(50,"More settings! Use them to fine-tune your buildcrafting process."),t.qZA(),t.TgZ(51,"mat-card-content"),t._UZ(52,"app-advanced-settings"),t.qZA()(),t.TgZ(53,"mat-card")(54,"mat-card-title"),t._uU(55,"Disabled Armor Pieces"),t.qZA(),t.TgZ(56,"mat-card-subtitle"),t._uU(57," These armor pieces are disabled. Click them to enable them again."),t._UZ(58,"br"),t._uU(59," They won't show up in any results."),t._UZ(60,"br"),t._uU(61," You can disable items in the detailed result overview. "),t.qZA(),t.TgZ(62,"mat-card-content"),t._UZ(63,"app-ignored-items-list"),t.qZA()(),t.TgZ(64,"mat-card")(65,"mat-card-title"),t._uU(66,"Configuration Management"),t.qZA(),t.TgZ(67,"mat-card-subtitle"),t._uU(68,"Save and load your buildcrafting settings for another day!"),t.qZA(),t.TgZ(69,"mat-card-content"),t._UZ(70,"app-load-and-save-settings"),t.qZA()()())},dependencies:[A.a8,A.dn,A.n5,A.$j,N.gM,j.Hw,er,fr,Rr,Br,Jl,Bl,yc,vc],styles:["#card-config[_ngcontent-%COMP%]{width:-moz-fit-content;width:fit-content;display:inline-block;vertical-align:top;white-space:normal;margin-bottom:20px;margin-left:3px;margin-right:3px}#card-config[_ngcontent-%COMP%] > mat-card[_ngcontent-%COMP%]{margin-bottom:4px}#content-char-selection[_ngcontent-%COMP%]{margin-bottom:0}"]}),n})(),wc=(()=>{class n{constructor(){}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-armor-picker-page"]],decls:3,vars:0,consts:[["id","container"]],template:function(e,o){1&e&&(t.TgZ(0,"div",0),t._UZ(1,"app-settings")(2,"app-results"),t.qZA())},dependencies:[Ac,me],styles:["#container[_ngcontent-%COMP%]{width:-moz-fit-content;width:fit-content;margin-right:3px;white-space:nowrap}"]}),n})();const he=function(){return["","Mobility","Resilience","Recovery","Discipline","Intellect","Strength"]};function Zc(n,i){if(1&n&&(t.TgZ(0,"tr",27)(1,"td"),t._uU(2),t.qZA(),t.TgZ(3,"td",22)(4,"div",28),t._UZ(5,"div",29),t.TgZ(6,"span",30),t._uU(7),t.ALo(8,"number"),t.qZA()()()()),2&n){const e=t.oxw().index,o=t.oxw(2).index,a=t.oxw();t.Q6J("matTooltip",t.DdM(9,he)[e]),t.xp6(2),t.hij(" ",t.DdM(10,he)[e]," "),t.xp6(3),t.Jzz("width:",a.clusterInformation[o].mean[e]/32*100,"%"),t.xp6(2),t.hij(" ",t.xi3(8,6,a.clusterInformation[o].mean[e],"1.0-0")," ")}}function Sc(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Zc,9,11,"tr",26),t.BQk()),2&n){const e=i.index;t.xp6(1),t.Q6J("ngIf",e>0)}}function Ic(n,i){if(1&n){const e=t.EpF();t.TgZ(0,"mat-card",21)(1,"mat-card-title"),t._uU(2),t.qZA(),t.TgZ(3,"mat-card-subtitle"),t._uU(4),t.qZA(),t.TgZ(5,"mat-card-content")(6,"div")(7,"table",22),t.YNc(8,Sc,2,1,"ng-container",18),t.qZA()(),t.TgZ(9,"mat-form-field",23)(10,"mat-label"),t._uU(11,"DIM Search Query"),t.qZA(),t._UZ(12,"input",24),t.qZA(),t.TgZ(13,"button",25),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.openSnackBar("Copied the DIM search query to your clipboard."))}),t._uU(14," Copy DIM query to clipboard "),t.qZA()()()}if(2&n){const e=t.oxw(),o=e.index,a=e.$implicit,s=t.oxw();t.xp6(2),t.hij(" Cluster ",o+1," "),t.xp6(2),t.AsE(" Contains ",a.length," item",a.length>1?"s":""," "),t.xp6(4),t.Q6J("ngForOf",s.clusterInformation[o].mean),t.xp6(4),t.Q6J("value",s.getDIMStringForCluster(a)),t.xp6(1),t.Q6J("cdkCopyToClipboard",s.getDIMStringForCluster(a))}}function Oc(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Ic,15,6,"mat-card",20),t.BQk()),2&n){const e=i.$implicit;t.xp6(1),t.Q6J("ngIf",e.length>0)}}var xe=[{id:0,size:214,centroids:[5.242990654205609,3.4392523364485994,23.074766355140188,4.52336448598131,17.99532710280374,8.074766355140188],std:[3.262185500658884,3.137958193527344,2.0745611905196912,3.223158380401712,2.6478649185881147,3.356022774004607,3.3823650213485315],mean:[62.350467289719624,5.242990654205608,3.439252336448598,23.074766355140188,4.5233644859813085,17.99532710280374,8.074766355140186]},{id:1,size:264,centroids:[13.613636363636365,3.060606060606063,14.431818181818182,6.731060606060606,12.575757575757574,10.575757575757576],std:[4.915624932359143,2.735897756946947,1.897597343200423,3.036390647550984,3.2253188618447473,3.0097969617389406,3.1372197425220545],mean:[60.98863636363637,13.613636363636363,3.0606060606060606,14.431818181818182,6.731060606060606,12.575757575757576,10.575757575757576]},{id:2,size:220,centroids:[5.209090909090909,15.586363636363636,10.936363636363636,13.281818181818181,13.604545454545452,3.8818181818181836],std:[3.3631090204013643,2.931782865076046,2.9200605883727038,3.289049973803757,2.6349662061268395,2.6591750828428204,2.395703224398619],mean:[62.5,5.209090909090909,15.586363636363636,10.936363636363636,13.281818181818181,13.604545454545455,3.881818181818182]},{id:3,size:230,centroids:[8.6,15.330434782608698,6.943478260869563,6.408695652173913,5.578260869565216,18.26086956521739],std:[4.27370926113142,3.855014315301441,3.2487061290912984,3.5081098914433078,3.559587955581114,3.1761194803539676,3.596667444705349],mean:[61.12173913043478,8.6,15.330434782608696,6.943478260869565,6.408695652173913,5.578260869565217,18.26086956521739]},{id:4,size:261,centroids:[11.74712643678161,5.655172413793104,13.873563218390803,11.022988505747126,16.57088122605364,3.0038314176245224],std:[3.5878146263573103,2.8197860971981994,2.9890605143791737,2.9825309245974925,2.7497287061744258,2.8324620286123516,1.8428616632651005],mean:[61.87356321839081,11.74712643678161,5.655172413793103,13.873563218390805,11.022988505747126,16.57088122605364,3.003831417624521]},{id:5,size:249,centroids:[6.598393574297189,7.2289156626506035,7.674698795180722,6.831325301204822,5.995983935742974,7.425702811244981],std:[12.188382924990831,3.7780346472852226,3.7855581933977014,3.9659084518463055,3.2508780840166134,2.4288222155150856,3.23718036285365],mean:[41.75502008032129,6.598393574297189,7.228915662650603,7.674698795180723,6.831325301204819,5.995983935742972,7.42570281124498]},{id:6,size:241,centroids:[4.580912863070541,10.62655601659751,15.72199170124481,20.186721991701248,5.7634854771784205,4.8672199170124495],std:[4.0360666526825675,2.5776864620318327,2.726712032141287,2.7236414380869185,3.4135743182998106,3.164594939982558,2.8952195061747896],mean:[61.74688796680498,4.580912863070539,10.62655601659751,15.721991701244812,20.186721991701244,5.763485477178423,4.867219917012448]},{id:7,size:352,centroids:[4.96875,10.849431818181818,15.676136363636362,5.085227272727275,13.079545454545453,12.113636363636365],std:[3.864447558701623,2.876694966732471,2.825917840642513,2.8500410080793133,2.604753041986593,2.753797030174534,3.084495990290069],mean:[61.77272727272727,4.96875,10.849431818181818,15.676136363636363,5.0852272727272725,13.079545454545455,12.113636363636363]},{id:8,size:219,centroids:[21.401826484018265,4.529680365296804,4.954337899543379,14.022831050228312,7.168949771689496,6.8036529680365305],std:[7.654498360234386,3.856746305047457,3.0774088630224354,3.486239910130717,4.509361233853425,3.691515724130434,3.433882092856456],mean:[58.881278538812786,21.401826484018265,4.529680365296803,4.954337899543379,14.02283105022831,7.168949771689498,6.80365296803653]},{id:9,size:183,centroids:[4.448087431693989,22.114754098360656,4.868852459016392,7.459016393442623,11.240437158469945,9.765027322404372],std:[7.900837110469869,3.265921971202623,3.896032191192026,3.424902708986657,3.3556927380910535,3.7206143627650876,3.9564220813839577],mean:[59.89617486338798,4.448087431693989,22.114754098360656,4.868852459016393,7.459016393442623,11.240437158469945,9.765027322404372]},{id:10,size:197,centroids:[13.563451776649746,10.761421319796954,6.527918781725887,20.654822335025383,4.934010152284262,5.18274111675127],std:[4.239153654030002,3.3077343290831713,2.8924486501981233,2.9338771160608355,3.5098461495889413,3.192898794854312,2.920215710334156],mean:[61.6243654822335,13.563451776649746,10.761421319796954,6.527918781725888,20.65482233502538,4.934010152284264,5.182741116751269]},{id:11,size:176,centroids:[8.255681818181818,16.181818181818183,7.11931818181818,4.619318181818182,21.0625,5.505681818181819],std:[3.349621998445128,3.4620343467651815,3.3296776490755446,2.945693532873097,2.7583580190103967,3.126214049887545,3.078027492852078],mean:[62.74431818181818,8.255681818181818,16.181818181818183,7.119318181818182,4.619318181818182,21.0625,5.505681818181818]},{id:12,size:194,centroids:[3.5670103092783503,14.773195876288659,13.036082474226804,13.185567010309278,4.979381443298967,12.144329896907218],std:[3.89886364980042,2.255251632823776,2.5893570716174388,3.248552824613239,3.1004926799108317,2.8845824993776903,2.8864151735009584],mean:[61.68556701030928,3.5670103092783507,14.77319587628866,13.036082474226804,13.185567010309278,4.979381443298969,12.144329896907216]},{id:13,size:302,centroids:[5.311258278145695,4.4701986754966905,21.897350993377486,10.688741721854305,6.834437086092715,12.605960264900663],std:[5.1142628152416245,2.9920946350614983,2.6882491851253567,3.071581172564087,2.99431450280505,3.116626644660552,2.58548804104293],mean:[61.80794701986755,5.311258278145695,4.470198675496689,21.897350993377483,10.688741721854305,6.8344370860927155,12.605960264900663]},{id:14,size:364,centroids:[12.263736263736265,11.32967032967033,5.936813186813188,8.524725274725274,12.07142857142857,7.782967032967034],std:[6.666392881793753,2.8942239993391565,2.947866371540881,3.041289192757803,3.0876888182534996,2.4540644069260296,2.6803305558675676],mean:[57.90934065934066,12.263736263736265,11.32967032967033,5.936813186813187,8.524725274725276,12.071428571428571,7.782967032967033]},{id:15,size:219,centroids:[6.981735159817351,5.9908675799086755,18.127853881278536,4.97716894977169,5.182648401826483,20.89041095890411],std:[4.3335830659244685,3.5503759593138464,3.5270785628911785,4.123339305032141,2.7998081886699646,3.283747903424203,2.8311584355558064],mean:[62.15068493150685,6.981735159817352,5.9908675799086755,18.12785388127854,4.9771689497716896,5.1826484018264845,20.89041095890411]},{id:16,size:147,centroids:[6.285714285714285,20.836734693877553,4.8639455782312915,17.510204081632654,5.897959183673469,7.394557823129253],std:[3.358145469360083,3.4877476344546254,3.2245649941865486,3.0557367019327,4.0937094190209065,3.1136788219952605,3.842013283457479],mean:[62.7891156462585,6.285714285714286,20.836734693877553,4.863945578231292,17.510204081632654,5.8979591836734695,7.394557823129252]},{id:17,size:202,centroids:[18.425742574257423,6.871287128712871,6.678217821782177,5.06930693069307,20.40594059405941,5.876237623762377],std:[3.0226636827682554,3.292828132097339,3.518715749263091,3.4627255810748356,3.075363266145594,3.5804283293104753,3.315804113390658],mean:[63.32673267326733,18.425742574257427,6.871287128712871,6.678217821782178,5.069306930693069,20.405940594059405,5.876237623762377]},{id:18,size:286,centroids:[11.22027972027972,7.073426573426573,12.65034965034965,12.594405594405593,4.209790209790211,13.220279720279722],std:[4.720510224882134,2.8685361372318168,2.6005789112305338,3.052197922484291,2.451602446915686,2.7244266014541174,2.7638787756329526],mean:[60.96853146853147,11.22027972027972,7.073426573426573,12.65034965034965,12.594405594405595,4.20979020979021,13.22027972027972]},{id:19,size:197,centroids:[6.263959390862944,8.568527918781726,16.80710659898477,4.000000000000003,22.593908629441625,4.883248730964468],std:[2.7333118141791917,3.3626657547151964,3.4540163497542435,2.646397291854302,2.565469285152567,3.018237668617547,2.8287109641017594],mean:[63.11675126903553,6.2639593908629445,8.568527918781726,16.80710659898477,4,22.593908629441625,4.883248730964467]},{id:20,size:279,centroids:[18.025089605734767,6.150537634408602,6.161290322580646,5.767025089605736,7.999999999999998,15.602150537634408],std:[6.590788110639117,3.6436721401086296,3.165505073725202,3.13700467469825,2.7769973891540207,3.4672154149710614,4.017425492621824],mean:[59.70609318996416,18.025089605734767,6.150537634408602,6.161290322580645,5.767025089605735,8,15.602150537634408]},{id:21,size:78,centroids:[15.96153846153846,16.85897435897436,16.807692307692307,3552713678800501e-30,5329070518200751e-30,-5329070518200751e-30],std:[2.095815090231219,7.438828122504502,7.482836393563639,8.12413063050432,0,0,0],mean:[49.62820512820513,15.961538461538462,16.858974358974358,16.807692307692307,0,0,0]},{id:22,size:137,centroids:[4.525547445255475,3.583941605839417,23.532846715328468,19.948905109489054,4.3576642335766405,6.248175182481752],std:[2.9351806639916567,2.7575572416084317,2.2707939003224227,2.908029186302962,3.3306093063017315,2.6644092885703916,3.4848010785869454],mean:[62.197080291970806,4.525547445255475,3.5839416058394162,23.532846715328468,19.94890510948905,4.357664233576642,6.248175182481752]},{id:23,size:194,centroids:[13.242268041237114,3.5103092783505163,14.675257731958762,19.55154639175258,6.139175257731957,5.092783505154641],std:[3.810494814771566,2.886105181640385,2.0818477512276696,2.6197152448917316,3.409818599464837,3.0311357231629183,2.9733966349516936],mean:[62.21134020618557,13.242268041237113,3.5103092783505154,14.675257731958762,19.551546391752577,6.139175257731959,5.092783505154639]},{id:24,size:239,centroids:[5.569037656903766,5.401673640167365,20.92468619246862,13.09205020920502,13.497907949790793,4.096234309623432],std:[3.8502204432228733,3.071015816571908,3.081143061480697,2.79904271710946,2.169280265760518,2.62802363192924,2.3450167178621983],mean:[62.58158995815899,5.569037656903766,5.401673640167364,20.92468619246862,13.092050209205022,13.497907949790795,4.096234309623431]}];let Mc=(()=>{class n{constructor(e,o,a){this.db=e,this._snackBar=o,this.inventory=a,this.clusterInformation=xe,this.items=[],this.clusters=[],this.exoticFilter=0,this.masterworkFilter=0,this.classFilter=-1,this.clusterInformation=xe.sort((s,l)=>l.mean[3]-s.mean[3])}ngAfterViewInit(){var e=this;return(0,m.Z)(function*(){e.inventory.inventory.pipe((0,st.b)(200)).subscribe((0,m.Z)(function*(){yield e.Update(),e.openSnackBar("Clusters were updated.")}))})()}Update(){var e=this;return(0,m.Z)(function*(){var o=(yield e.db.inventoryArmor.toArray()).filter(l=>l.source===k.Inventory),a=[];for(let l=0;l`id:'${o.itemInstanceId}'`).join(" or ")}vectorDistance(e,o){return Math.sqrt(e.reduce((a,s,l)=>a+Math.pow(s-o[l],2),0))}getClusterid(e){var o=Number.MAX_VALUE,a=-1;for(let l=0;l0)}}function Uc(n,i){if(1&n&&(t.TgZ(0,"div",9,5),t._UZ(2,"img",10),t.TgZ(3,"span",11),t._uU(4),t.qZA()()),2&n){const e=t.oxw().ngVar,o=t.oxw().$implicit,a=t.oxw().$implicit,s=t.oxw();t.Q6J("matTooltip",s.getStatName(a)),t.xp6(2),t.ekj("minor",1===o),t.Q6J("src",s.ModUrl[o+3*a],t.LSH),t.xp6(1),t.ekj("minor",1===o),t.xp6(1),t.hij("\xd7",e,"")}}function Ec(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Uc,5,7,"div",8),t.BQk()),2&n){const e=i.ngVar;t.xp6(1),t.Q6J("ngIf",e>0)}}function Rc(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Ec,2,1,"ng-container",1),t.ALo(2,"count"),t.BQk()),2&n){const e=i.$implicit,o=t.oxw().$implicit,a=t.oxw();t.xp6(1),t.Q6J("ngVar",t.xi3(2,1,a.mods,e+3*o))}}function Pc(n,i){if(1&n&&(t.ynx(0),t.YNc(1,Rc,3,4,"ng-container",2),t.BQk()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngForOf",e.modTypeIndex)}}const Nc={[r.iV.MINOR_MOBILITY]:"https://www.bungie.net/common/destiny2_content/icons/a6694a4ff65d371d19330fb10415b315.png",[r.iV.MAJOR_MOBILITY]:"https://www.bungie.net/common/destiny2_content/icons/8861e73c6701b8347cef025d400cd3dc.png",[r.iV.ARTIFICE_MOBILITY]:"https://www.bungie.net/common/destiny2_content/icons/a6694a4ff65d371d19330fb10415b315.png",[r.iV.MINOR_RESILIENCE]:"https://www.bungie.net/common/destiny2_content/icons/ab1ffe5128806c3639e531f89a2d72d1.png",[r.iV.MAJOR_RESILIENCE]:"https://www.bungie.net/common/destiny2_content/icons/b2228e67e72fad2eb37735a33e0d0116.png",[r.iV.ARTIFICE_RESILIENCE]:"https://www.bungie.net/common/destiny2_content/icons/ab1ffe5128806c3639e531f89a2d72d1.png",[r.iV.MINOR_RECOVERY]:"https://www.bungie.net/common/destiny2_content/icons/e0fc8c022c2ab49ef92caff5843db7da.png",[r.iV.MAJOR_RECOVERY]:"https://www.bungie.net/common/destiny2_content/icons/4251f77e3b24900e262f16d5587980ef.png",[r.iV.ARTIFICE_RECOVERY]:"https://www.bungie.net/common/destiny2_content/icons/e0fc8c022c2ab49ef92caff5843db7da.png",[r.iV.MINOR_DISCIPLINE]:"https://www.bungie.net/common/destiny2_content/icons/f841f379751b7672fca0e5f231e92638.png",[r.iV.MAJOR_DISCIPLINE]:"https://www.bungie.net/common/destiny2_content/icons/3a5a2d6ee50b2611ebc4d4806d29301a.png",[r.iV.ARTIFICE_DISCIPLINE]:"https://www.bungie.net/common/destiny2_content/icons/f841f379751b7672fca0e5f231e92638.png",[r.iV.MINOR_INTELLECT]:"https://www.bungie.net/common/destiny2_content/icons/f26479a3462676d613f135657ecad45a.png",[r.iV.MAJOR_INTELLECT]:"https://www.bungie.net/common/destiny2_content/icons/98408051297c26cb033cb761ab955fac.png",[r.iV.ARTIFICE_INTELLECT]:"https://www.bungie.net/common/destiny2_content/icons/f26479a3462676d613f135657ecad45a.png",[r.iV.MINOR_STRENGTH]:"https://www.bungie.net/common/destiny2_content/icons/dbd1615501778b66bca2764b9a561044.png",[r.iV.MAJOR_STRENGTH]:"https://www.bungie.net/common/destiny2_content/icons/7b64c0b8014a57c6c297babb18c2239e.png",[r.iV.ARTIFICE_STRENGTH]:"https://www.bungie.net/common/destiny2_content/icons/dbd1615501778b66bca2764b9a561044.png"};let qc=(()=>{class n{constructor(){this.artificeUrl=r.X9[r.Pn.SlotArtifice],this.modIndex=[0,1,2,3,4,5],this.modTypeIndex=[1,2],this.ModUrl=Nc,this.mods=[],this.artifice=[]}getStatName(e){return r.Mi[e]}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-table-mod-display"]],inputs:{mods:"mods",artifice:"artifice"},decls:4,vars:4,consts:[[1,"row-mod"],[4,"ngVar"],[4,"ngFor","ngForOf"],["class","container","matTooltip","Artifice",4,"ngIf"],["matTooltip","Artifice",1,"container"],["tooltip","matTooltip"],[1,"artificeIcon","artifice",3,"src"],[1,"modText","artifice"],["class","container",3,"matTooltip",4,"ngIf"],[1,"container",3,"matTooltip"],[1,"modIcon",3,"src"],[1,"modText"]],template:function(e,o){1&e&&(t.TgZ(0,"div",0),t.YNc(1,Dc,2,1,"ng-container",1),t.ALo(2,"count"),t.YNc(3,Pc,2,1,"ng-container",2),t.qZA()),2&e&&(t.xp6(1),t.Q6J("ngVar",t.lcZ(2,2,o.artifice)),t.xp6(2),t.Q6J("ngForOf",o.modIndex))},dependencies:[y.sg,y.O5,N.gM,Ct,ue],styles:[".container[_ngcontent-%COMP%]{display:inline-block;width:32px;height:30px;position:relative}.modIcon[_ngcontent-%COMP%]{position:absolute;top:-12px;left:-12px;width:50px;height:50px;filter:contrast(2.3);border:#00000000 solid 2px;-webkit-mask-image:url(modmask.f03dde91561a62d6.svg);mask-image:image(url(modmask.f03dde91561a62d6.svg),black)}.modIcon.minor[_ngcontent-%COMP%]{filter:contrast(1.3)}.artificeIcon[_ngcontent-%COMP%]{height:28px;width:28px;filter:saturate(40) hue-rotate(40deg)}.selected[_ngcontent-%COMP%]{border:red solid 2px}[_nghost-%COMP%]{position:relative}.modText[_ngcontent-%COMP%]{position:absolute;text-shadow:0 0 6px #000000;font-size:smaller;color:#f5f5f5;bottom:-6px;right:-1px}"]}),n})();var Jc=_(7314);function Yc(n,i){if(1&n&&t._UZ(0,"div"),2&n){const e=i.$implicit,o=i.index,a=t.oxw().index;t.Jzz("width:",e/32*100,"%"),t.Gre("stat-range-bar stat-range-bar",o+(a>=3?3:0),"")}}const Te=function(){return["Mobility","Resilience","Recovery","Discipline","Intellect","Strength"]};function Lc(n,i){if(1&n&&(t.ynx(0),t.TgZ(1,"tr",16)(2,"td"),t._uU(3),t.qZA(),t.TgZ(4,"td"),t._uU(5),t.ALo(6,"number"),t.qZA(),t.TgZ(7,"td",17)(8,"div",18),t.YNc(9,Yc,1,6,"div",19),t.qZA()()(),t.BQk()),2&n){const e=i.$implicit,o=i.index,a=t.oxw().$implicit;t.xp6(1),t.Q6J("matTooltip",t.DdM(7,Te)[o]),t.xp6(2),t.hij(" ",t.DdM(8,Te)[o]," "),t.xp6(2),t.Oqu(t.xi3(6,4,a.totalStats[o],"1.0-0")),t.xp6(4),t.Q6J("ngForOf",e)}}function Fc(n,i){if(1&n&&(t.TgZ(0,"tr")(1,"td")(2,"a",20),t._UZ(3,"img",15),t.qZA(),t._uU(4),t.qZA(),t.TgZ(5,"td",21),t._uU(6),t.qZA(),t.TgZ(7,"td"),t._uU(8),t.qZA()()),2&n){const e=i.$implicit,o=t.oxw(3);t.xp6(2),t.MGl("href","https://data.destinysets.com/i/InventoryItem:",e,"",t.LSH),t.xp6(2),t.hij(" ",e,""),t.xp6(2),t.Oqu(o.getPlugSum(e)),t.xp6(2),t.Oqu(o.getPlugString(e))}}const Qc=function(n,i,e,o,a,s){return[n,i,e,o,a,s]};function Bc(n,i){if(1&n&&(t.ynx(0),t.TgZ(1,"mat-card",12)(2,"mat-card-title"),t._uU(3),t.qZA(),t.TgZ(4,"mat-card-content")(5,"table")(6,"tr")(7,"td",13),t._uU(8,"Hash:"),t.qZA(),t.TgZ(9,"td")(10,"a",14),t._UZ(11,"img",15),t.qZA(),t._uU(12),t.qZA()(),t.TgZ(13,"tr")(14,"td",13),t._uU(15,"ItemInstanceId:"),t.qZA(),t.TgZ(16,"td"),t._uU(17),t.qZA()(),t.TgZ(18,"tr")(19,"td",13),t._uU(20,"Sunset?"),t.qZA(),t.TgZ(21,"td"),t._uU(22),t.qZA()(),t.TgZ(23,"tr")(24,"td"),t._uU(25,"Total"),t.qZA(),t.TgZ(26,"td"),t._uU(27),t.qZA()(),t.YNc(28,Lc,10,9,"ng-container",10),t.qZA()(),t.TgZ(29,"mat-card-content"),t._uU(30," Plugs: "),t.TgZ(31,"table")(32,"tr")(33,"td"),t._uU(34,"Plug"),t.qZA(),t.TgZ(35,"td"),t._uU(36,"Total"),t.qZA(),t.TgZ(37,"td"),t._uU(38,"Values"),t.qZA()(),t.YNc(39,Fc,9,4,"tr",10),t.qZA()()(),t.BQk()),2&n){const e=i.$implicit;t.xp6(3),t.hij(" ",e.name," "),t.xp6(7),t.MGl("href","https://data.destinysets.com/i/InventoryItem:",e.hash,"",t.LSH),t.xp6(2),t.hij(" ",e.hash,""),t.xp6(5),t.Oqu(e.itemInstanceId),t.xp6(5),t.Oqu(e.isSunset),t.xp6(5),t.Oqu(e.totalSum),t.xp6(1),t.Q6J("ngForOf",t.HTZ(8,Qc,e.mobility,e.resilience,e.recovery,e.discipline,e.intellect,e.strength)),t.xp6(11),t.Q6J("ngForOf",e.statPlugHashes)}}function Vc(n,i){if(1&n&&(t.ynx(0),t.TgZ(1,"mat-toolbar"),t._uU(2),t.qZA(),t._UZ(3,"br"),t.TgZ(4,"div",11),t.YNc(5,Bc,40,15,"ng-container",10),t.qZA(),t.BQk()),2&n){const e=i.$implicit,o=t.oxw();t.xp6(2),t.hij(" ",o.getCategoryName(e.key)," "),t.xp6(3),t.Q6J("ngForOf",e.value)}}let Hc=(()=>{class n{constructor(e,o){this.inventory=e,this.db=o,this.minMobility=0,this.minResilience=0,this.minRecovery=0,this.minDiscipline=0,this.minIntellect=0,this.minStrength=0,this.anyPlugWithN=0,this.anyPlugBelowN=17,this.allPlugsWithN=0,this.allPlugsBelowN=17,this.armorName="",this.armorHash="",this.armorId="",this.armorItemsPerSlot=new Map,this.plugData={},this.ngUnsubscribe=new nt.xQ}ngOnInit(){var e=this;this.inventory.inventory.pipe((0,st.b)(10),(0,Q.R)(this.ngUnsubscribe)).subscribe((0,m.Z)(function*(){e.updateItems()}))}getPlugString(e){var o=this.plugData[e];let a=[0,0,0,0,0,0];for(let s of o.investmentStats)switch(s.statTypeHash){case 2996146975:a[0]+=s.value;break;case 392767087:a[1]+=s.value;break;case 1943323491:a[2]+=s.value;break;case 1735777505:a[3]+=s.value;break;case 144602215:a[4]+=s.value;break;case 4244567218:a[5]+=s.value}return"["+a.join(" ")+"]"}updateItems(){var e=this;return(0,m.Z)(function*(){const a=(yield e.db.manifestArmor.toArray()).filter(d=>19==d.itemType);let s=Object.fromEntries(a.map(d=>[d.hash,d]));e.plugData=s;let l=(yield e.db.inventoryArmor.toArray()).filter(d=>d.source===k.Inventory).sort((d,u)=>(""+d.name).localeCompare(u.name)).map(d=>{var u={name:d.name,hash:d.hash,isSunset:d.isSunset,itemInstanceId:d.itemInstanceId,statPlugHashes:d.statPlugHashes,mobility:[],resilience:[],recovery:[],discipline:[],intellect:[],strength:[],totalStats:[0,0,0,0,0,0],totalSum:0,slot:d.slot};if(d.statPlugHashes)for(let p of d.statPlugHashes){var x=s[p];for(let b of x.investmentStats)switch(b.statTypeHash){case 2996146975:u.mobility.push(b.value),u.totalStats[0]+=b.value;break;case 392767087:u.resilience.push(b.value),u.totalStats[1]+=b.value;break;case 1943323491:u.recovery.push(b.value),u.totalStats[2]+=b.value;break;case 1735777505:u.discipline.push(b.value),u.totalStats[3]+=b.value;break;case 144602215:u.intellect.push(b.value),u.totalStats[4]+=b.value;break;case 4244567218:u.strength.push(b.value),u.totalStats[5]+=b.value}}if(d.investmentStats)for(let p of d.investmentStats)switch(p.statTypeHash){case 2996146975:u.mobility.push(p.value),u.totalStats[0]+=p.value;break;case 392767087:u.resilience.push(p.value),u.totalStats[1]+=p.value;break;case 1943323491:u.recovery.push(p.value),u.totalStats[2]+=p.value;break;case 1735777505:u.discipline.push(p.value),u.totalStats[3]+=p.value;break;case 144602215:u.intellect.push(p.value),u.totalStats[4]+=p.value;break;case 4244567218:u.strength.push(p.value),u.totalStats[5]+=p.value}for(let p of u.totalStats)u.totalSum+=p;return u});l=e.filterItems(l),e.armorItemsPerSlot=l.reduce((d,u)=>{const x=u.slot?u.slot:10;return d.has(x)||d.set(x,[]),d.get(x)?.push(u),d},new Map)})()}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}getCategoryName(e){switch(e){case 1:return"Helmets";case 2:return"Gauntlets";case 3:return"Chest Pieces";case 4:return"Legs";case 5:return"Class Items"}return"Unknown Category"}getPlugSum(e){var o=this.plugData[e],a=0;for(let s of o.investmentStats)switch(s.statTypeHash){case 2996146975:case 392767087:case 1943323491:case 1735777505:case 144602215:case 4244567218:a+=s.value}return a}clear(){this.armorName="",this.armorHash="",this.armorId="",this.minMobility=0,this.minResilience=0,this.minRecovery=0,this.minDiscipline=0,this.minIntellect=0,this.minStrength=0,this.anyPlugWithN=0,this.anyPlugBelowN=17}filterItems(e){return this.armorName&&(e=e.filter(o=>o.name.toLowerCase().indexOf(this.armorName)>-1)),this.armorHash&&(e=e.filter(o=>(o.hash||0).toString().indexOf(this.armorHash)>-1)),this.armorId&&(e=e.filter(o=>(o.itemInstanceId||0).toString().indexOf(this.armorId)>-1)),e=(e=(e=(e=(e=(e=e.filter(o=>o.totalStats[0]>=(this.minMobility||0))).filter(o=>o.totalStats[1]>=(this.minResilience||0))).filter(o=>o.totalStats[2]>=(this.minRecovery||0))).filter(o=>o.totalStats[3]>=(this.minDiscipline||0))).filter(o=>o.totalStats[4]>=(this.minIntellect||0))).filter(o=>o.totalStats[5]>=(this.minStrength||0)),(this.anyPlugWithN??0)>0&&(e=e.filter(o=>(o.statPlugHashes||[]).filter(a=>this.getPlugSum(a)>=(this.anyPlugWithN||0)).length>0)),(this.anyPlugBelowN??0)<17&&(e=e.filter(o=>(o.statPlugHashes||[]).filter(a=>this.getPlugSum(a)<=(this.anyPlugBelowN||0)).length>0)),(this.allPlugsWithN??0)>0&&(e=e.filter(o=>0==(o.statPlugHashes||[]).filter(a=>this.getPlugSum(a)<(this.allPlugsWithN||0)).length)),(this.allPlugsBelowN??0)<17&&(e=e.filter(o=>0==(o.statPlugHashes||[]).filter(a=>this.getPlugSum(a)>(this.allPlugsBelowN||0)).length)),e}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(K),t.Y36(et))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-armor-investigation-page"]],decls:112,vars:26,consts:[["id","description"],["href","https://www.reddit.com/r/DestinyTheGame/comments/mpaopq/how_armor_stats_roll_an_advanced_insight_into/","target","_blank"],["colspan","3"],["appearance","outline"],["matInput","","placeholder","Stronghold",3,"ngModel","ngModelChange"],["matInput","",3,"ngModel","ngModelChange"],["max","32","min","0","step","1","thumbLabel","","tickInterval","1",3,"value","valueChange"],["max","17","min","0","step","1","thumbLabel","","tickInterval","1",3,"value","valueChange"],["mat-raised-button","","color","primary",3,"click"],["mat-raised-button","","color","warn",3,"click"],[4,"ngFor","ngForOf"],["fxLayout","row","fxLayout.xs","column","fxLayoutGap","10px",1,"armor-container"],[1,"cluster-item"],["colspan","2"],["alt","This armor on data.destinysets.com","target","_blank",3,"href"],["src","https://data.destinysets.com/static/media/logo.556bd7bd.svg",2,"width","15px"],[3,"matTooltip"],["width","100%"],[1,"stat-range"],[3,"class","style",4,"ngFor","ngForOf"],["alt","This plug on data.destinysets.com","target","_blank",3,"href"],[1,"plug-sum-col"]],template:function(e,o){1&e&&(t.TgZ(0,"mat-card",0)(1,"mat-card-title"),t._uU(2," Armor Investigation "),t.qZA(),t.TgZ(3,"mat-card-subtitle"),t._uU(4," A visualization tool for data scientists. "),t.qZA(),t.TgZ(5,"mat-card-content"),t._uU(6," This part of the D2ArmorPicker lists all of your armor items. For each armor it shows how it is generated. It shows every used "),t.TgZ(7,"i"),t._uU(8,'"plug"'),t.qZA(),t._uU(9,", as well as the intrinsic stats of exotics. For more information about plugs, see "),t.TgZ(10,"a",1),t._uU(11,"here"),t.qZA(),t._uU(12,". Make sure to give the author an upvote for the hard work! "),t._UZ(13,"br")(14,"br"),t._uU(15," Please note that this feature is mainly targeted for data nerds and people interested in the basic stats of armor. It is just a data visualization. Mobile layout and a search function "),t.TgZ(16,"i"),t._uU(17,"may"),t.qZA(),t._uU(18," happen in the future. "),t.qZA(),t.TgZ(19,"mat-card-title"),t._uU(20," Filters "),t.qZA(),t.TgZ(21,"mat-card-subtitle"),t._uU(22," Some filters. Nothing fancy but it works. Sorry ;) "),t.qZA(),t.TgZ(23,"mat-card-content")(24,"table")(25,"tr")(26,"td",2)(27,"mat-form-field",3)(28,"mat-label"),t._uU(29,"Item Name"),t.qZA(),t.TgZ(30,"input",4),t.NdJ("ngModelChange",function(s){return o.armorName=s}),t.qZA()()(),t.TgZ(31,"td",2)(32,"mat-form-field",3)(33,"mat-label"),t._uU(34,"Item Hash"),t.qZA(),t.TgZ(35,"input",5),t.NdJ("ngModelChange",function(s){return o.armorHash=s}),t.qZA()()(),t.TgZ(36,"td",2)(37,"mat-form-field",3)(38,"mat-label"),t._uU(39,"Item ID"),t.qZA(),t.TgZ(40,"input",5),t.NdJ("ngModelChange",function(s){return o.armorId=s}),t.qZA()()()(),t.TgZ(41,"tr")(42,"td"),t._uU(43," Mobility: "),t.qZA(),t.TgZ(44,"td"),t._uU(45),t.qZA(),t.TgZ(46,"td")(47,"mat-slider",6),t.NdJ("valueChange",function(s){return o.minMobility=s}),t.qZA()(),t.TgZ(48,"td"),t._uU(49," Resilience: "),t.qZA(),t.TgZ(50,"td"),t._uU(51),t.qZA(),t.TgZ(52,"td")(53,"mat-slider",6),t.NdJ("valueChange",function(s){return o.minResilience=s}),t.qZA()(),t.TgZ(54,"td"),t._uU(55," Recovery: "),t.qZA(),t.TgZ(56,"td"),t._uU(57),t.qZA(),t.TgZ(58,"td")(59,"mat-slider",6),t.NdJ("valueChange",function(s){return o.minRecovery=s}),t.qZA()()(),t.TgZ(60,"tr")(61,"td"),t._uU(62," Discipline: "),t.qZA(),t.TgZ(63,"td"),t._uU(64),t.qZA(),t.TgZ(65,"td")(66,"mat-slider",6),t.NdJ("valueChange",function(s){return o.minDiscipline=s}),t.qZA()(),t.TgZ(67,"td"),t._uU(68," Intellect: "),t.qZA(),t.TgZ(69,"td"),t._uU(70),t.qZA(),t.TgZ(71,"td")(72,"mat-slider",6),t.NdJ("valueChange",function(s){return o.minIntellect=s}),t.qZA()(),t.TgZ(73,"td"),t._uU(74," Strength: "),t.qZA(),t.TgZ(75,"td"),t._uU(76),t.qZA(),t.TgZ(77,"td")(78,"mat-slider",6),t.NdJ("valueChange",function(s){return o.minStrength=s}),t.qZA()()(),t.TgZ(79,"tr")(80,"td"),t._uU(81," Any plug >=: "),t.qZA(),t.TgZ(82,"td"),t._uU(83),t.qZA(),t.TgZ(84,"td")(85,"mat-slider",7),t.NdJ("valueChange",function(s){return o.anyPlugWithN=s}),t.qZA()(),t.TgZ(86,"td"),t._uU(87," Any Plug <=: "),t.qZA(),t.TgZ(88,"td"),t._uU(89),t.qZA(),t.TgZ(90,"td")(91,"mat-slider",7),t.NdJ("valueChange",function(s){return o.anyPlugBelowN=s}),t.qZA()()(),t.TgZ(92,"tr")(93,"td"),t._uU(94," All plugs >=: "),t.qZA(),t.TgZ(95,"td"),t._uU(96),t.qZA(),t.TgZ(97,"td")(98,"mat-slider",7),t.NdJ("valueChange",function(s){return o.allPlugsWithN=s}),t.qZA()(),t.TgZ(99,"td"),t._uU(100," All Plugs <=: "),t.qZA(),t.TgZ(101,"td"),t._uU(102),t.qZA(),t.TgZ(103,"td")(104,"mat-slider",7),t.NdJ("valueChange",function(s){return o.allPlugsBelowN=s}),t.qZA()()()(),t.TgZ(105,"a",8),t.NdJ("click",function(){return o.updateItems()}),t._uU(106,"Update"),t.qZA(),t._uU(107,"\xa0 "),t.TgZ(108,"a",9),t.NdJ("click",function(){return o.clear()}),t._uU(109,"Clear"),t.qZA()()(),t.YNc(110,Vc,6,2,"ng-container",10),t.ALo(111,"keyvalue")),2&e&&(t.xp6(30),t.Q6J("ngModel",o.armorName),t.xp6(5),t.Q6J("ngModel",o.armorHash),t.xp6(5),t.Q6J("ngModel",o.armorId),t.xp6(5),t.hij(" ",o.minMobility,""),t.xp6(2),t.Q6J("value",o.minMobility),t.xp6(4),t.hij(" ",o.minResilience,""),t.xp6(2),t.Q6J("value",o.minResilience),t.xp6(4),t.hij(" ",o.minRecovery,""),t.xp6(2),t.Q6J("value",o.minRecovery),t.xp6(5),t.hij(" ",o.minDiscipline,""),t.xp6(2),t.Q6J("value",o.minDiscipline),t.xp6(4),t.hij(" ",o.minIntellect,""),t.xp6(2),t.Q6J("value",o.minIntellect),t.xp6(4),t.Oqu(o.minStrength),t.xp6(2),t.Q6J("value",o.minStrength),t.xp6(5),t.Oqu(o.anyPlugWithN),t.xp6(2),t.Q6J("value",o.anyPlugWithN),t.xp6(4),t.Oqu(o.anyPlugBelowN),t.xp6(2),t.Q6J("value",o.anyPlugBelowN),t.xp6(5),t.Oqu(o.allPlugsWithN),t.xp6(2),t.Q6J("value",o.allPlugsWithN),t.xp6(4),t.Oqu(o.allPlugsBelowN),t.xp6(2),t.Q6J("value",o.allPlugsBelowN),t.xp6(6),t.Q6J("ngForOf",t.lcZ(111,24,o.armorItemsPerSlot)))},dependencies:[y.sg,Y.xw,Y.SQ,V.Fj,V.JJ,V.On,g.zs,lt.KE,lt.hX,Jc.pH,Jt.Nt,A.a8,A.dn,A.n5,A.$j,N.gM,W.Ye,y.JJ,y.Nd],styles:["#description[_ngcontent-%COMP%], #filter[_ngcontent-%COMP%]{max-width:700px;margin-bottom:10px;margin-left:auto;margin-right:auto}.cluster-item[_ngcontent-%COMP%]{flex-grow:1;flex-basis:0;min-width:250px;max-width:350px;margin-bottom:10px}.armor-container[_ngcontent-%COMP%], .plug-sum-col[_ngcontent-%COMP%]{padding-left:5px}.armor-container[_ngcontent-%COMP%]{flex-wrap:wrap}.stat-range[_ngcontent-%COMP%]{height:20px;width:100%;margin-bottom:3px;float:left;background-color:gray}.stat-range-bar[_ngcontent-%COMP%]{height:100%;float:left;background-color:#fff}.stat-range-bar0[_ngcontent-%COMP%]{background-color:#acfff1}.stat-range-bar1[_ngcontent-%COMP%]{background-color:#5e9eff}.stat-range-bar3[_ngcontent-%COMP%]{background-color:#ffc2ac}.stat-range-bar4[_ngcontent-%COMP%]{background-color:#ffb45e}.stat-range-bar2[_ngcontent-%COMP%], .stat-range-bar5[_ngcontent-%COMP%]{background-color:#c246ff}a[_ngcontent-%COMP%]{color:#99afe3}a[_ngcontent-%COMP%]:visited{color:#7294dc}"]}),n})(),Wc=(()=>{class n{constructor(e,o,a){this.db=e,this.inv=o,this.loginService=a}downloadArmorInformation(){var e=this;return(0,m.Z)(function*(){const o=yield e.db.inventoryArmor.toArray(),a=window.URL.createObjectURL(new Blob([JSON.stringify(o,null,2)])),s=document.createElement("a");s.href=a,s.setAttribute("download","d2ap_armor.json"),document.body.appendChild(s),s.click()})()}downloadManifestInformation(){var e=this;return(0,m.Z)(function*(){const o=yield e.db.manifestArmor.toArray(),a=window.URL.createObjectURL(new Blob([JSON.stringify(o,null,1)])),s=document.createElement("a");s.href=a,s.setAttribute("download","d2ap_manifest.json"),document.body.appendChild(s),s.click()})()}resetDatabase(){var e=this;return(0,m.Z)(function*(){yield e.db.resetDatabase(),yield e.inv.refreshAll(!0,!0)})()}resetEverything(){var e=this;return(0,m.Z)(function*(){localStorage.clear(),yield e.db.resetDatabase(),yield e.loginService.logout()})()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(et),t.Y36(K),t.Y36(L))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-account-config-page"]],decls:35,vars:0,consts:[["id","account-config-container"],["color","primary","fxShow","false","fxShow.lt-md","true","mat-raised-button","","routerLink","/",1,"returnbutton"],["color","primary","mat-raised-button","",1,"btn-download",3,"click"],["color","warn","mat-raised-button","",1,"btn-download",3,"click"]],template:function(e,o){1&e&&(t.TgZ(0,"div",0)(1,"a",1),t._uU(2," Return to D2ArmorPicker "),t.qZA(),t.TgZ(3,"mat-card")(4,"mat-card-title"),t._uU(5," Account Configuration "),t.qZA(),t.TgZ(6,"mat-card-subtitle"),t._uU(7," The configuration on this page will not be reset when you reset your build settings. "),t.qZA(),t.TgZ(8,"mat-card-content"),t._uU(9,' This will come in a future update. Right now, I just wanted to push the "Debugging" section out. '),t.qZA()(),t.TgZ(10,"mat-card")(11,"mat-card-title"),t._uU(12," Debugging "),t.qZA(),t.TgZ(13,"mat-card-subtitle"),t._uU(14," Some options for debugging purposes. "),t.qZA(),t.TgZ(15,"mat-card-content"),t._uU(16," If the team asks you to send some specific data, you can find it here:"),t._UZ(17,"br"),t.TgZ(18,"a",2),t.NdJ("click",function(){return o.downloadArmorInformation()}),t._uU(19," Download armor information (d2ap_armor.json) "),t.qZA(),t.TgZ(20,"a",2),t.NdJ("click",function(){return o.downloadManifestInformation()}),t._uU(21," Download manifest information (d2ap_manifest.json) "),t.qZA(),t._UZ(22,"br")(23,"br"),t._uU(24," If you experience issues with the local database - for example, exotics not being found, try this:"),t._UZ(25,"br"),t.TgZ(26,"a",3),t.NdJ("click",function(){return o.resetDatabase()}),t._uU(27," Delete Database "),t.qZA(),t._UZ(28,"br"),t._uU(29," If you really want to reset EVERYTHING, use this: "),t._UZ(30,"br"),t.TgZ(31,"a",3),t.NdJ("click",function(){return o.resetEverything()}),t._uU(32," Reset the whole application "),t.qZA()()(),t.TgZ(33,"a",1),t._uU(34," Return to D2ArmorPicker "),t.qZA()())},dependencies:[H.b8,g.zs,A.a8,A.dn,A.n5,A.$j,I.yS],styles:[".returnbutton[_ngcontent-%COMP%]{margin-top:5px;margin-bottom:15px;width:100%}#account-config-container[_ngcontent-%COMP%]{max-width:800px;margin-left:auto;margin-right:auto}mat-card[_ngcontent-%COMP%]{margin-bottom:8px}.btn-download[_ngcontent-%COMP%]{margin-right:10px}"]}),n})();var jc=_(4661),ye=_(7331);const zc=[{path:"",component:Ve,canActivate:[Ot],children:[{path:"",component:wc},{path:"help",component:cs},{path:"cluster",component:Mc},{path:"investigate",component:Hc},{path:"theory",loadChildren:()=>_.e(613).then(_.bind(_,8613)).then(n=>n.TheorizerPageModule)},{path:"account",component:Wc}]},{path:"login",component:St,canActivate:[Mt]},{path:"login-bungie",component:_t},{path:"**",redirectTo:"/"}];let Gc=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n,bootstrap:[xt]}),n.\u0275inj=t.cJS({imports:[y.ez,jc.V,v.b2,It.PW,at.JF,I.Bz.forRoot(zc,{useHash:!0}),wt.Iq,mt.xu]}),n})();t.B6R(me,function(){return[y.sg,y.O5,Y.xw,Y.SQ,Y.Wh,Y.yH,g.lW,lt.KE,lt.hX,lt.R9,Jt.Nt,w.BZ,w.fO,w.as,w.w1,w.Dz,w.nj,w.ge,w.ev,w.XQ,w.Gk,A.a8,A.dn,A.n5,A.$j,A.hq,N.gM,j.Hw,Bt.YE,Bt.nU,ce.NW,ye.qn,ye.HS,es,qc]},function(){return[y.JJ]}),t.B6R(re,function(){return[g.lW,$.ZT,$.uh,$.xY,$.H8,ge]},[]),(0,t.G48)(),v.q6().bootstrapModule(Gc).catch(n=>console.error(n))},2361:()=>{},4616:()=>{}},ot=>{ot.O(0,[736],()=>ot(ot.s=7789)),ot.O()}]); \ No newline at end of file diff --git a/runtime.903622f803ff9e69.js b/runtime.846031c18dbabbb6.js similarity index 54% rename from runtime.903622f803ff9e69.js rename to runtime.846031c18dbabbb6.js index 58f8eb8f..4d5bc3bd 100644 --- a/runtime.903622f803ff9e69.js +++ b/runtime.846031c18dbabbb6.js @@ -1 +1 @@ -(()=>{"use strict";var e,m={},v={};function r(e){var n=v[e];if(void 0!==n)return n.exports;var t=v[e]={id:e,loaded:!1,exports:{}};return m[e](t,t.exports,r),t.loaded=!0,t.exports}r.m=m,r.c=v,e=[],r.O=(n,t,f,o)=>{if(!t){var a=1/0;for(i=0;i=o)&&Object.keys(r.O).every(b=>r.O[b](t[u]))?t.splice(u--,1):(c=!1,o0&&e[i-1][2]>o;i--)e[i]=e[i-1];e[i]=[t,f,o]},r.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return r.d(n,{a:n}),n},r.d=(e,n)=>{for(var t in n)r.o(n,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((n,t)=>(r.f[t](e,n),n),[])),r.u=e=>e+"."+{613:"6d53fbfd5762e4b2",681:"8fae9f841f3f6c5a"}[e]+".js",r.miniCssF=e=>{},r.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),(()=>{var e={},n="D2ArmorPicker:";r.l=(t,f,o,i)=>{if(e[t])e[t].push(f);else{var a,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d{a.onerror=a.onload=null,clearTimeout(p);var h=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),h&&h.forEach(_=>_(b)),g)return g(b)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=s.bind(null,a.onerror),a.onload=s.bind(null,a.onload),c&&document.head.appendChild(a)}}})(),r.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:n=>n},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="",(()=>{r.b=document.baseURI||self.location.href;var e={666:0};r.f.j=(f,o)=>{var i=r.o(e,f)?e[f]:void 0;if(0!==i)if(i)o.push(i[2]);else if(666!=f){var a=new Promise((l,s)=>i=e[f]=[l,s]);o.push(i[2]=a);var c=r.p+r.u(f),u=new Error;r.l(c,l=>{if(r.o(e,f)&&(0!==(i=e[f])&&(e[f]=void 0),i)){var s=l&&("load"===l.type?"missing":l.type),p=l&&l.target&&l.target.src;u.message="Loading chunk "+f+" failed.\n("+s+": "+p+")",u.name="ChunkLoadError",u.type=s,u.request=p,i[1](u)}},"chunk-"+f,f)}else e[f]=0},r.O.j=f=>0===e[f];var n=(f,o)=>{var u,d,[i,a,c]=o,l=0;if(i.some(p=>0!==e[p])){for(u in a)r.o(a,u)&&(r.m[u]=a[u]);if(c)var s=c(r)}for(f&&f(o);l{"use strict";var e,m={},v={};function r(e){var n=v[e];if(void 0!==n)return n.exports;var t=v[e]={id:e,loaded:!1,exports:{}};return m[e](t,t.exports,r),t.loaded=!0,t.exports}r.m=m,r.c=v,e=[],r.O=(n,t,o,f)=>{if(!t){var a=1/0;for(i=0;i=f)&&Object.keys(r.O).every(b=>r.O[b](t[u]))?t.splice(u--,1):(c=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[t,o,f]},r.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return r.d(n,{a:n}),n},r.d=(e,n)=>{for(var t in n)r.o(n,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((n,t)=>(r.f[t](e,n),n),[])),r.u=e=>e+"."+{613:"805c8114c942817a",681:"8fae9f841f3f6c5a"}[e]+".js",r.miniCssF=e=>{},r.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),(()=>{var e={},n="D2ArmorPicker:";r.l=(t,o,f,i)=>{if(e[t])e[t].push(o);else{var a,c;if(void 0!==f)for(var u=document.getElementsByTagName("script"),d=0;d{a.onerror=a.onload=null,clearTimeout(p);var h=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),h&&h.forEach(_=>_(b)),g)return g(b)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=s.bind(null,a.onerror),a.onload=s.bind(null,a.onload),c&&document.head.appendChild(a)}}})(),r.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:n=>n},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="",(()=>{r.b=document.baseURI||self.location.href;var e={666:0};r.f.j=(o,f)=>{var i=r.o(e,o)?e[o]:void 0;if(0!==i)if(i)f.push(i[2]);else if(666!=o){var a=new Promise((l,s)=>i=e[o]=[l,s]);f.push(i[2]=a);var c=r.p+r.u(o),u=new Error;r.l(c,l=>{if(r.o(e,o)&&(0!==(i=e[o])&&(e[o]=void 0),i)){var s=l&&("load"===l.type?"missing":l.type),p=l&&l.target&&l.target.src;u.message="Loading chunk "+o+" failed.\n("+s+": "+p+")",u.name="ChunkLoadError",u.type=s,u.request=p,i[1](u)}},"chunk-"+o,o)}else e[o]=0},r.O.j=o=>0===e[o];var n=(o,f)=>{var u,d,[i,a,c]=f,l=0;if(i.some(p=>0!==e[p])){for(u in a)r.o(a,u)&&(r.m[u]=a[u]);if(c)var s=c(r)}for(o&&o(f);l