PageSourceSearch

https://memorabid.com/chunk-NJKTIMND.js

js memorabid.com collected 2026-10-02 02:13:52 UTC 13,606 bytes, 1 lines download raw bytes

1import{b as tt,c as et}from"./chunk-HPFILZO6.js";import"./chunk-O7CRINMH.js";import"./chunk-U5LKCI7G.js";import"./chunk-CTDFFJI3.js";import"./chunk-COKVTCYF.js";import"./chunk-W7NYFTXD.js";import"./chunk-62PPDRN3.js";import{a as Q}from"./chunk-R6ZZG3GH.js";import"./chunk-Y2JSFPU2.js";import"./chunk-5B57F7CQ.js";import"./chunk-WP5K4YT2.js";import"./chunk-MLHQZ5ZE.js";import"./chunk-3FX6MHYU.js";import{c as Z}from"./chunk-DDZ4EERA.js";import"./chunk-YLXCZFZ3.js";import{W as X,qa as Y}from"./chunk-73T7QSHR.js";import{a as J,b as u}from"./chunk-TZ5BAEDW.js";import"./chunk-G63D4XK2.js";import"./chunk-SSVL63ME.js";import{a as U,b as j}from"./chunk-ZV4QMBVC.js";import"./chunk-VRRSYZMO.js";import{b as W}from"./chunk-TC2TZDHK.js";import{b as V,d as q,e as G}from"./chunk-UFCUC3YK.js";import{$c as E,Ad as $,Bb as F,Db as p,Ea as a,O as w,Oa as P,Pb as _,Sb as h,Tb as R,Ub as g,aa as l,ad as H,bb as N,dd as K,eb as A,ec as B,fb as k,g as S,ib as D,jb as L,kb as c,lb as s,ma as O,mb as m,na as y,nb as d,oc as b,pc as T,rc as I,t as C,xd as z}from"./chunk-RUOSUUM6.js";import"./chunk-JSSFPNKJ.js";var it=(o,t)=>t.tableName;function at(o,t){o&1&&(s(0,"div",7),d(1,"div",10),m())}function ot(o,t){if(o&1&&(s(0,"div",13)(1,"span",14),h(2),m(),s(3,"span",15),h(4),m(),s(5,"span",16),h(6),b(7,"number"),m()()),o&2){let e=t.$implicit,n=t.$index,i=p(2);_("rank-changed",i.isRankChanged(e))("rank-gold",n===0)("rank-silver",n===1)("rank-bronze",n===2)("rank-mine",i.isUserTable(e)),a(2),R(n+1),a(),c("title",i.getDisplayTableName(e.tableName)),a(),g(" ",i.getDisplayTableName(e.tableName)," "),a(),_("amount-changed",i.isAmountChanged(e)),a(),g(" ",I(7,16,i.getAnimatedAmount(e),"1.0-0","it")," \u20AC ")}}function rt(o,t){if(o&1&&(s(0,"div",12),d(1,"fa-icon",17),s(2,"p"),h(3),b(4,"translate"),m()()),o&2){let e=p(2);a(),c("icon",e.faListOl),a(2),g("",T(4,2,"IDS_TABLE_CHALLENGE_CLASSIFICA"),"\u2026")}}function st(o,t){if(o&1&&(s(0,"div",8),D(1,ot,8,20,"div",11,it),A(3,rt,5,4,"div",12),m()),o&2){let e=p();a(),L(e.tableLeaderboard()),a(2),k(e.tableLeaderboard().length===0?3:-1)}}function mt(o,t){if(o&1&&d(0,"app-event-now-fixed-footer",9),o&2){let e=p();c("slug",e.slug)("idEvent",e.idEvent)("donationEnabled",e.memoraEvent.donationEnabled)("assistanceEnabled",e.memoraEvent.enableAssistance)("isDarkTheme",!0)("enableTableChallenge",e.memoraEvent.enableTableChallenge)("tableChallengeTables",e.memoraEvent.tableChallengeTables)("timerDays",e.timerDays)("timerHours",e.timerHours)("timerMinutes",e.timerMinutes)("timerSeconds",e.timerSeconds)}}var nt=class M{constructor(){this.faArrowLeft=Y,this.faListOl=X,this.memoraEvent=null,this.tableLeaderboard=y([]),this.animatedAmounts={},this.animatedTotalAmount=0,this.isLoading=!0,this.slug="",this.idEvent=-1,this.totalAmount=0,this.timerDays=0,this.timerHours=0,this.timerMinutes=0,this.timerSeconds=0,this.userTableName=null,this.noTableMarker="__NO_TABLE__",this.rankAnimationDurationMs=1200,this.amountChangeAnimationDurationMs=650,this.amountAnimationDurationMs=320,this.previousRanks={},this.rankChangedKeys=new Set,this.amountChangedKeys=new Set,this.rankAnimationTimeouts={},this.amountChangeTimeouts={},this.amountAnimationFrames={},this.totalAmountAnimFrame=null,this.eventService=l(Q),this.route=l(z),this.router=l($),this.platformService=l(W),this.translate=l(V),this.authService=l(Z),this.datePipe=l(E),this.ngZone=l(O)}ngOnInit(){this.route.params.pipe(u(this)).subscribe(t=>{this.slug=t.slug,this.loadEvent()})}loadEvent(){this.eventService.getBySlug(this.slug,!0).pipe(u(this)).subscribe({next:t=>{if(!t?.enableTableChallenge){this.router.navigate(["/eventnow",this.slug]);return}this.memoraEvent=t,this.idEvent=t.idEvent,this.totalAmount=t.totalAmount??0,this.isLoading=!1,this.startPolling(),this.startTimer(),this.loadUserTableName()},error:()=>{this.router.navigate(["/eventnow",this.slug])}})}startPolling(){this.stopPolling(),this.platformService.runOnBrowser(()=>{this.pollingSubscription=C(0,4e3).pipe(w(()=>this.eventService.getTableChallengeLeaderboard(this.idEvent)),u(this)).subscribe(t=>{this.applyLeaderboardWithAnimations(t?.entries??[])}),this.totalAmountSubscription=C(0,4e3).pipe(w(()=>this.eventService.getTotalAmount(this.idEvent)),u(this)).subscribe(t=>{let e=Number(t)||0;this.animateTotalAmount(e),this.totalAmount=e})})}stopPolling(){this.pollingSubscription?.unsubscribe(),this.pollingSubscription=void 0,this.totalAmountSubscription?.unsubscribe(),this.totalAmountSubscription=void 0}startTimer(){this.memoraEvent?.endDateView&&this.platformService.runOnBrowser(()=>{this.timerSubscription=C(0,1e3).pipe(u(this)).subscribe(()=>this.updateTimer())})}updateTimer(){let t=this.memoraEvent?.endDateView;if(!t)return;
1let e=this.datePipe.transform(t,"MM/dd/yyyy HH:mm");if(!e)return;let i=new Date(`${e} UTC`).getTime()-Date.now();if(i<=0){this.timerDays=this.timerHours=this.timerMinutes=this.timerSeconds=0,this.timerSubscription?.unsubscribe();return}let r=Math.floor(i/1e3);this.timerDays=Math.floor(r/86400),this.timerHours=Math.floor(r%86400/3600),this.timerMinutes=Math.floor(r%3600/60),this.timerSeconds=r%60}getEntryKey(t){return`${t.tableName?.trim().toLowerCase()||"unknown-table"}::${t.participantCount}`}getAnimatedAmount(t){let e=this.getEntryKey(t);return this.animatedAmounts[e]??Math.round(t.totalAmount)}getDisplayTableName(t){if(!t||t===this.noTableMarker){let e=this.translate.instant("IDS_TABLE_CHALLENGE_NO_TABLE");return e==="IDS_TABLE_CHALLENGE_NO_TABLE"?"No table":e}return t}isRankChanged(t){return this.rankChangedKeys.has(this.getEntryKey(t))}isAmountChanged(t){return this.amountChangedKeys.has(this.getEntryKey(t))}goBack(){this.router.navigate(["/eventnow",this.slug])}isUserTable(t){return!!this.userTableName&&t.tableName===this.userTableName}loadUserTableName(){this.authService.isAuthenticated()&&this.eventService.getMyTableChallengeAssignment(this.idEvent).pipe(u(this)).subscribe(t=>{this.userTableName=t?.tableName??null})}applyLeaderboardWithAnimations(t){let e=[...t??[]].filter(n=>n.tableName&&n.tableName!==this.noTableMarker).sort((n,i)=>i.totalAmount-n.totalAmount);e.forEach(n=>{let i=this.getEntryKey(n),r=this.previousRanks[i];r!==void 0&&r!==n.rank&&this.markRankChanged(i),this.previousRanks[i]=n.rank,this.animateAmount(i,Math.round(n.totalAmount))}),this.tableLeaderboard.set(e)}markRankChanged(t){this.rankChangedKeys.add(t),this.rankAnimationTimeouts[t]&&clearTimeout(this.rankAnimationTimeouts[t]),this.rankAnimationTimeouts[t]=window.setTimeout(()=>{this.rankChangedKeys.delete(t),delete this.rankAnimationTimeouts[t]},this.rankAnimationDurationMs)}animateAmount(t,e){this.platformService.runOnBrowser(()=>{let n=this.animatedAmounts[t]??e,i=e-n;if(Math.abs(i)<1){this.animatedAmounts[t]=e;return}this.markAmountChanged(t),this.amountAnimationFrames[t]&&cancelAnimationFrame(this.amountAnimationFrames[t]);let r=performance.now(),f=v=>{let x=Math.min(1,(v-r)/this.amountAnimationDurationMs);this.animatedAmounts[t]=Math.round(n+i*x),x<1?this.amountAnimationFrames[t]=requestAnimationFrame(f):(this.animatedAmounts[t]=e,delete this.amountAnimationFrames[t])};this.amountAnimationFrames[t]=requestAnimationFrame(f)})}markAmountChanged(t){this.amountChangedKeys.add(t),this.amountChangeTimeouts[t]&&clearTimeout(this.amountChangeTimeouts[t]),this.amountChangeTimeouts[t]=window.setTimeout(()=>{this.amountChangedKeys.delete(t),delete this.amountChangeTimeouts[t]},this.amountChangeAnimationDurationMs)}animateTotalAmount(t){this.platformService.runOnBrowser(()=>{let e=this.animatedTotalAmount,n=t-e;if(Math.abs(n)<1){this.animatedTotalAmount=t;return}this.totalAmountAnimFrame!==null&&cancelAnimationFrame(this.totalAmountAnimFrame);let i=performance.now(),r=f=>{let v=Math.min(1,(f-i)/this.amountAnimationDurationMs);this.animatedTotalAmount=Math.round(e+n*v),v<1?this.totalAmountAnimFrame=requestAnimationFrame(r):(this.animatedTotalAmount=t,this.totalAmountAnimFrame=null)};this.totalAmountAnimFrame=requestAnimationFrame(r)})}ngOnDestroy(){this.stopPolling(),Object.values(this.amountAnimationFrames).forEach(cancelAnimationFrame),this.totalAmountAnimFrame!==null&&cancelAnimationFrame(this.totalAmountAnimFrame),Object.values(this.rankAnimationTimeouts).forEach(clearTimeout),Object.values(this.amountChangeTimeouts).forEach(clearTimeout)}static{this.\u0275fac=function(e){return new(e||M)}}static{this.\u0275cmp=P({type:M,selectors:[["app-event-now-ranking"]],hostVars:2,hostBindings:function(e,n){e&2&&_("dark-host",!0)},features:[B([E])],decls:13,vars:17,consts:[[3,"idEvent","slug","totalAmount","isDarkTheme","eventEnded","enableTableChallenge","hideTableStats"],[1,"ranking-page"],[1,"ranking-toolbar","px-3","pt-3","pb-2"],["type","button",1,"btn-back",3,"click"],[3,"icon"],[1,"ranking-title"],[1,"me-2",3,"icon"],["aria-busy","true",1,"loading-area"],[1,"ranking-list","px-3","pb-5"],[3,"slug","idEvent","donationEnabled","assistanceEnabled","isDarkTheme","enableTableChallenge","tableChallengeTables","timerDays","timerHours","timerMinutes","timerSeconds"],[1,"spinner"],[1,"ranking-row",3,"rank-changed","rank-gold","rank-silver","rank-bronze","rank-mine"],[1,"empty-state","py-5","text-center"],[1,"ranking-row"],[1,"rank-number"],[1,"rank-name",3,"title"],[1,"rank-amount"],[1,"empty-icon","mb-3",3,"icon"]],template:function(e,n){e&1&&(d(0,"app-event-now-header",0),s(1,"div",1)(2,"div",2)(3,"button",3),b(4,"translate"),F("click",function(){return n.goBack()}),d(5,"fa-icon",4),m(),s(6,"h2",5),d(7,"fa-icon",6),h(8),b(9,"translate"),m()(),A(10,at,2,0,"div",7)(11,st,4,1,"div",8),m(),A(12,mt,1,11,"app-event-now-fixed-footer",9)),e&2&&(c("idEvent",n.idEvent)("slug",n.slug)("totalAmount",n.totalAmount)("isDarkTheme",!0)("eventEnded",!1)("enableTableChallenge",(n.memoraEvent==null?null:n.memoraEvent.enableTableChallenge)??!1)("hideTableStats",!0),a(3),N("aria-label",T(4,13,"IDS_BACK")),a(2),c("icon",n.faArrowLeft),a(2),c("icon",n.faListOl),a(),g(" ",T(9,15,"IDS_TABLE_CHALLENGE_CLASSIFICA")," "),a(2),k(n.isLoading?10:11),a(2),k(n.memoraEvent?12:-1))},dependencies:[K,G,j,U,et,tt,H,q],styles:[".dark-host[_nghost-%COMP%]{display:block;min-height:100vh;background-color:#2f2b27;color:#ffffffe6}.ranking-page[_ngcontent-%COMP%]{width:100%;max-width:600px;margin:0 auto}.ranking-toolbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(203,165,72,.25);margin-bottom:8px}.btn-back[_ngcontent-%COMP%]{background:none;border:none;color:#cba548;font-size:1.25rem;padding:4px 8px;cursor:pointer;display:flex;align-items:center;flex-shrink:0;line-height:1}.btn-back[_ngcontent-%COMP%]:hover{color:#dcc284}.ranking-title[_ngcontent-%COMP%]{font-family:Raleway;font-size:1.2rem;font-weight:700;color:#cba548;margin:0;text-transform:uppercase;letter-spacing:.05em}.loading-area[_ngcontent-%COMP%]{display:flex;justify-content:center;padding:60px 0}.spinner[_ngcontent-%COMP%]{width:40px;height:40px;border:3px solid rgba(203,165,72,.25);border-top-color:#cba548;border-radius:50%;animation:_ngcontent-%COMP%_spin .8s linear infinite}@keyframes _ngcontent-%COMP%_spin{to{transform:rotate(360deg)}}.ranking-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px}.ranking-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:10px;background-color:#403a35;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:12px 14px;transition:transform .26s ease,background-color .26s ease}.ranking-row.rank-changed[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_row-rank-shift .9s ease}.ranking-row.rank-gold[_ngcontent-%COMP%]{border-color:#d4a84273;background:linear-gradient(135deg,#48423c,#3d3833)}.ranking-row.rank-gold[_ngcontent-%COMP%]   .rank-number[_ngcontent-%COMP%]{color:#eecf6b}.ranking-row.rank-silver[_ngcontent-%COMP%]{border-color:#b0b4ba66}.ranking-row.rank-silver[_ngcontent-%COMP%]   .rank-number[_ngcontent-%COMP%]{color:#c8ccd0}.ranking-row.rank-bronze[_ngcontent-%COMP%]{border-color:#c08a5a66}.ranking-row.rank-bronze[_ngcontent-%COMP%]   .rank-number[_ngcontent-%COMP%]{color:#d9a77b}.ranking-row.rank-mine[_ngcontent-%COMP%]{border-color:#cba548b3;background:linear-gradient(135deg,#cba54826,#cba54814);box-shadow:0 0 0 1px #cba54859 inset}
1.ranking-row.rank-mine[_ngcontent-%COMP%]   .rank-name[_ngcontent-%COMP%]{color:#cba548;font-weight:700}.ranking-row.rank-mine[_ngcontent-%COMP%]   .rank-number[_ngcontent-%COMP%]{color:#cba548}.rank-number[_ngcontent-%COMP%]{font-family:Raleway;font-size:1.15rem;font-weight:900;color:#ffffff80;text-align:center;min-width:0}.rank-name[_ngcontent-%COMP%]{font-family:OpenSans;font-size:1rem;font-weight:600;color:#ffffffe6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.rank-amount[_ngcontent-%COMP%]{font-family:Raleway;font-size:1.05rem;font-weight:700;color:#cba548;white-space:nowrap;text-align:right;transition:color .24s ease}.rank-amount.amount-changed[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_amount-pulse .65s ease}.empty-state[_ngcontent-%COMP%]{color:#fff6;font-family:OpenSans}.empty-icon[_ngcontent-%COMP%]{font-size:2.5rem;display:block;color:#cba54866}@keyframes _ngcontent-%COMP%_row-rank-shift{0%{transform:translate(0);background-color:#cba5482e}20%{transform:translate(-6px)}50%{transform:translate(4px)}80%{transform:translate(-2px)}to{transform:translate(0);background-color:transparent}}@keyframes _ngcontent-%COMP%_amount-pulse{0%{color:#cba548;letter-spacing:normal}30%{color:#e4d09f;letter-spacing:.04em}70%{color:#d6b970;letter-spacing:.02em}to{color:#cba548;letter-spacing:normal}}"]})}};nt=S([J()],nt);export{nt as EventNowRankingComponent};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.