1"use strict";(self.webpackChunkSlideSquad=self.webpackChunkSlideSquad||[]).push([[2445],{32445:(B,p,c)=>{c.r(p),c.d(p,{CapacityEarnReviewComponent:()=>z});var d=c(60177),s=c(89417),e=c(54438),_=c(21626);let g=(()=>{class t{constructor(n){this.http=n}getQueue(n,i=200){const r=(new _.Nl).set("includeDecided",n?"true":"false").set("max",String(i));return this.http.get("/api/Capacity/admin/earn/queue",{params:r})}approve(n){return this.http.post(`/api/Capacity/admin/earn/${n}/approve`,{})}reject(n,i){return this.http.post(`/api/Capacity/admin/earn/${n}/reject`,{reason:i??null})}revoke(n,i){return this.http.post(`/api/Capacity/admin/earn/${n}/revoke`,{reason:i??null})}override(n,i){return this.http.post(`/api/Capacity/admin/earn/${n}/override`,{reason:i})}static{this.\u0275fac=function(i){return new(i||t)(e.KVO(_.Qq))}}static{this.\u0275prov=e.jDH({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const u=()=>[1,2,3,4,5];function b(t,a){1&t&&(e.j41(0,"div",16),e.nrm(1,"i",17),e.EFF(2," The earn-via-social loop is currently "),e.j41(3,"strong"),e.EFF(4,"off"),e.k0s(),e.EFF(5," for this environment ("),e.j41(6,"code"),e.EFF(7,"Capacity_Social_Enabled"),e.k0s(),e.EFF(8,"). Customers can't submit new shares \u2014 this queue shows anything already recorded. "),e.k0s())}function v(t,a){if(1&t&&(e.j41(0,"div",18),e.nrm(1,"i",19),e.EFF(2),e.k0s()),2&t){const n=e.XpG();e.R7$(2),e.SpI(" ",n.loadError," ")}}function h(t,a){1&t&&(e.j41(0,"div",22),e.nrm(1,"div",23),e.j41(2,"div",24),e.nrm(3,"div",25)(4,"div",26),e.k0s()())}function C(t,a){1&t&&(e.j41(0,"div",20),e.DNE(1,h,5,0,"div",21),e.k0s()),2&t&&(e.R7$(),e.Y8G("ngForOf",e.lJ4(1,u)))}function k(t,a){1&t&&(e.j41(0,"div",27),e.nrm(1,"i",28),e.j41(2,"h3"),e.EFF(3,"The queue is clear"),e.k0s(),e.j41(4,"p"),e.EFF(5,"No shares are waiting on a human decision. High-confidence posts auto-grant;
1 anything the AI can't confidently judge lands here."),e.k0s()())}function M(t,a){if(1&t&&(e.j41(0,"a",60),e.nrm(1,"img",61),e.k0s()),2&t){const n=e.XpG().$implicit;e.Y8G("href",n.screenshotUrl,e.B4B),e.BMQ("aria-label","Open screenshot for submission "+n.submissionId),e.R7$(),e.Y8G("src",n.screenshotUrl,e.B4B)}}function y(t,a){1&t&&(e.j41(0,"div",62),e.nrm(1,"i",63),e.k0s())}function O(t,a){if(1&t&&(e.j41(0,"span",64),e.EFF(1),e.k0s()),2&t){const n=e.XpG().$implicit;e.R7$(),e.JRh("@"+n.handle)}}function x(t,a){if(1&t&&(e.j41(0,"span",65),e.EFF(1),e.k0s()),2&t){const n=e.XpG().$implicit;e.R7$(),e.SpI('"',n.visionReason,'"')}}function R(t,a){if(1&t&&(e.j41(0,"div",66),e.nrm(1,"i",67),e.EFF(2),e.k0s()),2&t){const n=e.XpG().$implicit;e.R7$(2),e.SpI(" ",n.outcome," ")}}function P(t,a){if(1&t){const n=e.RV6();e.j41(0,"button",74),e.bIt("click",function(){e.eBV(n);const r=e.XpG(2).$implicit,o=e.XpG(2);return e.Njj(o.askConfirm(r,"approve"))}),e.nrm(1,"i",75),e.EFF(2," Approve "),e.k0s()}if(2&t){const n=e.XpG(2).$implicit;e.Y8G("disabled",n.busy)}}function w(t,a){if(1&t){const n=e.RV6();e.j41(0,"button",76),e.bIt("click",function(){e.eBV(n);const r=e.XpG(2).$implicit,o=e.XpG(2);return e.Njj(o.askConfirm(r,"reject"))}),e.nrm(1,"i",77),e.EFF(2," Reject "),e.k0s()}if(2&t){const n=e.XpG(2).$implicit;e.Y8G("disabled",n.busy)}}function j(t,a){if(1&t){const n=e.RV6();e.j41(0,"button",78),e.bIt("click",function(){e.eBV(n);const r=e.XpG(2).$implicit,o=e.XpG(2);return e.Njj(o.askConfirm(r,"revoke"))}),e.nrm(1,"i",79),e.EFF(2," Revoke "),e.k0s()}if(2&t){const n=e.XpG(2).$implicit;e.Y8G("disabled",n.busy)}}function F(t,a){if(1&t){const n=e.RV6();e.j41(0,"button",80),e.bIt("click",function(){e.eBV(n);const r=e.XpG(2).$implicit,o=e.XpG(2);return e.Njj(o.askConfirm(r,"override"))}),e.nrm(1,"i",81),e.EFF(2," Override rejection "),e.k0s()}if(2&t){const n=e.XpG(2).$implicit;e.Y8G("disabled",n.busy)}}function E(t,a){1&t&&(e.j41(0,"span",82),e.EFF(1," Already granted once, then revoked. "),e.k0s())}function I(t,a){1&t&&(e.j41(0,"span",83),e.nrm(1,"i",84),e.k0s())}function $(t,a){if(1&t&&(e.qex(0),e.DNE(1,P,3,1,"button",68)(2,w,3,1,"button",69)(3,j,3,1,"button",70)(4,F,3,1,"button",71)(5,E,2,0,"span",72)(6,I,2,0,"span",73),e.bVm()),2&t){const n=e.XpG().$implicit,i=e.XpG(2);e.R7$(),e.Y8G("ngIf",i.canAct(n)),e.R7$(),e.Y8G("ngIf",i.canAct(n)),e.R7$(),e.Y8G("ngIf",i.canRevoke(n)),e.R7$(),e.Y8G("ngIf",i.canOverride(n)),e.R7$(),e.Y8G("ngIf",i.isGrantedOnceThenRevoked(n)),e.R7$(),e.Y8G("ngIf",n.busy)}}function G(t,a){if(1&t){const n=e.RV6();e.j41(0,"div",85)(1,"span",86),e.EFF(2,"Grant capacity for this share?"),e.k0s(),e.j41(3,"div",87)(4,"button",88),e.bIt("click",function(){e.eBV(n);const r=e.XpG().$implicit,o=e.XpG(2);return e.Njj(o.confirmApprove(r))}),e.nrm(5,"i",75),e.EFF(6," Confirm "),e.k0s(),e.j41(7,"button",89),e.bIt("click",function(){e.eBV(n);const r=e.XpG().$implicit,o=e.XpG(2);return e.Njj(o.cancelConfirm(r))}),e.EFF(8,"Cancel"),e.k0s()()()}}function D(t,a){if(1&t){const n=e.RV6();e.j41(0,"div",90)(1,"span",86),e.EFF(2,"Reject this share? (no grant)"),e.k0s(),e.j41(3,"input",91),e.mxI("ngModelChange",function(r){e.eBV(n);const o=e.XpG().$implicit;return e.DH7(o.reasonDraft,r)||(o.reasonDraft=r),e.Njj(r)}),e.k0s(),e.j41(4,"div",87)(5,"button",92),e.bIt("click",function(){e.eBV(n);const r=e.XpG().$implicit,o=e.XpG(2);return e.Njj(o.confirmReject(r))}),e.nrm(6,"i",77),e.EFF(7," Confirm reject "),e.k0s(),e.j41(8,"button",89),e.bIt("click",function(){e.eBV(n);const r=e.XpG().$implicit,o=e.XpG(2);return e.Njj(o.cancelConfirm(r))}),e.EFF(9,"Cancel"),e.k0s()()()}if(2&t){const n=e.XpG().$implicit;e.R7$(3),e.R50("ngModel",n.reasonDraft)}}function T(t,a){if(1&t){const n=e.RV6();e.j41(0,"div",93)(1,"span",86),e.EFF(2,"Claw back the granted capacity?"),e.k0s(),e.j41(3,"input",91),e.mxI("ngModelChange",function(r){e.eBV(n);const o=e.XpG().$implicit;return e.DH7(o.reasonDraft,r)||(o.reasonDraft=r),e.Njj(r)}),e.k0s(),e.j41(4,"div",87)(5,"button",94),e.bIt("click",function(){e.eBV(n);const r=e.XpG().$implicit,o=e.XpG(2);return e.Njj(o.confirmRevoke(r))}),e.nrm(6,"i",79),e.EFF(7," Confirm revoke "),e.k0s(),e.j41(8,"button",89),e.bIt("click",function(){e.eBV(n);const r=e.XpG().$implicit,o=e.XpG(2);return e.Njj(o.cancelConfirm(r))}),e.EFF(9,"Cancel"),e.k0s()()()}if(2&t){const n=e.XpG().$implicit;e.R7$(3),e.R50("ngModel",n.reasonDraft)}}function X(t,a){if(1&t){const n=e.RV6();e.j41(0,"div",95)(1,"span",86),e.EFF(2,"Override this rejection and grant the capacity?"),e.k0s(),e.j41(3,"input",96),e.mxI("ngModelChange",function(r){e.eBV(n);const o=e.XpG().$implicit;return e.DH7(o.reasonDraft,r)||(o.reasonDraft=r),e.Njj(r)}
1),e.k0s(),e.j41(4,"div",87)(5,"button",80),e.bIt("click",function(){e.eBV(n);const r=e.XpG().$implicit,o=e.XpG(2);return e.Njj(o.confirmOverride(r))}),e.nrm(6,"i",81),e.EFF(7," Confirm override "),e.k0s(),e.j41(8,"button",89),e.bIt("click",function(){e.eBV(n);const r=e.XpG().$implicit,o=e.XpG(2);return e.Njj(o.cancelConfirm(r))}),e.EFF(9,"Cancel"),e.k0s()()()}if(2&t){const n=e.XpG().$implicit;e.R7$(3),e.R50("ngModel",n.reasonDraft),e.R7$(2),e.Y8G("disabled",!n.reasonDraft||!n.reasonDraft.trim())}}function V(t,a){if(1&t&&(e.j41(0,"div",30),e.DNE(1,M,2,3,"a",31)(2,y,2,0,"div",32),e.j41(3,"div",33)(4,"div",34)(5,"span"),e.EFF(6),e.k0s(),e.j41(7,"a",35),e.EFF(8),e.nrm(9,"i",36),e.k0s(),e.j41(10,"span"),e.EFF(11),e.k0s(),e.j41(12,"span",37),e.EFF(13),e.k0s()(),e.j41(14,"div",38)(15,"span",39),e.nrm(16,"i",40),e.EFF(17),e.j41(18,"span",41),e.EFF(19),e.k0s()(),e.j41(20,"span",42),e.nrm(21,"i",43),e.EFF(22),e.k0s(),e.DNE(23,O,2,1,"span",44),e.j41(24,"span",45),e.EFF(25),e.k0s()(),e.j41(26,"div",46)(27,"span",47),e.nrm(28,"i",48),e.EFF(29),e.k0s(),e.j41(30,"span",49),e.nrm(31,"i",50),e.EFF(32," mentions RW "),e.k0s(),e.j41(33,"span",51),e.nrm(34,"i",50),e.EFF(35," review-mention "),e.k0s(),e.DNE(36,x,2,1,"span",52),e.k0s(),e.DNE(37,R,3,1,"div",53),e.k0s(),e.j41(38,"div",54),e.DNE(39,$,7,6,"ng-container",55)(40,G,9,0,"div",56)(41,D,10,1,"div",57)(42,T,10,1,"div",58)(43,X,10,2,"div",59),e.k0s()()),2&t){const n=a.$implicit,i=e.XpG(2);e.AVh("is-busy",n.busy),e.R7$(),e.Y8G("ngIf",n.screenshotUrl),e.R7$(),e.Y8G("ngIf",!n.screenshotUrl),e.R7$(3),e.ZvI("er-platform pf-",n.platform,""),e.R7$(),e.JRh(n.platform),e.R7$(),e.Y8G("href",n.postUrl,e.B4B),e.R7$(),e.SpI(" ",n.postUrl," "),e.R7$(2),e.ZvI("er-status ",i.statusClass(n.status),""),e.R7$(),e.JRh(n.status),e.R7$(2),e.JRh(n.dimension),e.R7$(4),e.SpI(" ",i.orgLabel(n)," "),e.R7$(2),e.SpI("#",n.orgId,""),e.R7$(3),e.SpI(" ",i.submitterLabel(n)," "),e.R7$(),e.Y8G("ngIf",n.handle),e.R7$(2),e.JRh(i.createdRelative(n)),e.R7$(2),e.ZvI("v-pill v-conf conf-",i.confidenceBand(n),""),e.R7$(2),e.SpI(" ",i.confidencePct(n)," "),e.R7$(),e.AVh("v-yes",!0===n.visionMentionsRealWave)("v-no",!1===n.visionMentionsRealWave),e.R7$(),e.Y8G("ngClass",n.visionMentionsRealWave?"fa-check":"fa-xmark"),e.R7$(2),e.AVh("v-yes",!0===n.visionMentionsReview),e.R7$(),e.Y8G("ngClass",n.visionMentionsReview?"fa-check":"fa-minus"),e.R7$(2),e.Y8G("ngIf",n.visionReason),e.R7$(),e.Y8G("ngIf",n.outcome),e.R7$(2),e.Y8G("ngIf",!n.confirm),e.R7$(),e.Y8G("ngIf","approve"===n.confirm),e.R7$(),e.Y8G("ngIf","reject"===n.confirm),e.R7$(),e.Y8G("ngIf","revoke"===n.confirm),e.R7$(),e.Y8G("ngIf","override"===n.confirm)}}function Y(t,a){if(1&t&&(e.j41(0,"div",20),e.DNE(1,V,44,39,"div",29),e.k0s()),2&t){const n=e.XpG();e.R7$(),e.Y8G("ngForOf",n.rows)("ngForTrackBy",n.trackBySubmissionId)}}let z=(()=>{class t{constructor(n,i){this.svc=n,this.cdr=i,this.rows=[],this.isLoading=!1,this.loadError=null,this.includeDecided=!1,this.socialEnabled=!1,this.trackBySubmissionId=(r,o)=>o.submissionId}ngOnInit(){this.refresh()}refresh(){this.isLoading=!0,this.loadError=null,this.cdr.markForCheck(),this.svc.getQueue(this.includeDecided,200).subscribe({next:n=>{this.socialEnabled=n.socialEnabled,this.rows=(n.submissions??[]).map(i=>this.toVm(i)),this.isLoading=!1,this.cdr.markForCheck()},error:n=>{this.loadError=n?.error?.error??n?.error?.message??"Couldn't load the review queue.",this.isLoading=!1,this.cdr.markForCheck()}})}toggleIncludeDecided(){this.includeDecided=!this.includeDecided,this.refresh()}toVm(n){return{...n,confirm:null,busy:!1,outcome:null,reasonDraft:""}}askConfirm(n,i){n.confirm=n.confirm===i?null:i,n.reasonDraft="",this.cdr.markForCheck()}cancelConfirm(n){n.confirm=null,n.reasonDraft="",this.cdr.markForCheck()}confirmApprove(n){this.runDecision(n,this.svc.approve(n.submissionId))}confirmReject(n){this.runDecision(n,this.svc.reject(n.submissionId,n.reasonDraft?.trim()||void 0))}confirmRevoke(n){this.runDecision(n,this.svc.revoke(n.submissionId,n.reasonDraft?.trim()||void 0))}confirmOverride(n){const i=n.reasonDraft?.trim();
1i&&this.runDecision(n,this.svc.override(n.submissionId,i))}runDecision(n,i){n.busy=!0,n.confirm=null,this.cdr.markForCheck(),i.subscribe({next:r=>{n.busy=!1,n.status=r.status??n.status,n.outcome=r.reason??this.defaultOutcome(r.status),!this.includeDecided&&this.isDecided(n.status)&&setTimeout(()=>{this.rows=this.rows.filter(o=>o.submissionId!==n.submissionId),this.cdr.markForCheck()},2200),this.cdr.markForCheck()},error:r=>{n.busy=!1,n.outcome=r?.error?.error??r?.error?.message??"That action failed \u2014 try again.",this.cdr.markForCheck()}})}defaultOutcome(n){switch(n){case"Verified":return"Approved \u2014 capacity granted.";case"Rejected":return"Rejected \u2014 no capacity granted.";default:return"Done."}}isDecided(n){return"Verified"===n||"Rejected"===n}orgLabel(n){return n.orgName?`${n.orgName}`:`Org #${n.orgId}`}submitterLabel(n){return n.submitterName||n.submitterEmail||`User #${n.submittedByUserId}`}confidencePct(n){return null==n.visionConfidence?"\u2014":`${Math.round(100*n.visionConfidence)}%`}confidenceBand(n){return null==n.visionConfidence?"none":n.visionConfidence>=.7?"high":n.visionConfidence>=.4?"mid":"low"}statusClass(n){switch(n){case"Verified":return"st-verified";case"Rejected":return"st-rejected";case"Flagged":return"st-flagged";default:return"st-pending"}}createdRelative(n){if(!n.createdDate)return"\u2014";const i=new Date(n.createdDate),r=Date.now()-i.getTime();if(r<0)return"just now";const o=Math.floor(r/1e3);if(o<60)return`${o}s ago`;const l=Math.floor(o/60);if(l<60)return`${l} min ago`;const f=Math.floor(l/60);if(f<24)return`${f}h ago`;const m=Math.floor(f/24);return m<30?`${m}d ago`:i.toLocaleDateString()}get flaggedCount(){return this.rows.filter(n=>"Flagged"===n.status).length}canAct(n){return"Flagged"===n.status||"Pending"===n.status}canRevoke(n){return"Verified"===n.status}canOverride(n){return"Rejected"===n.status&&!n.hasPositiveGrant}isGrantedOnceThenRevoked(n){return"Rejected"===n.status&&!!n.hasPositiveGrant}static{this.\u0275fac=function(i){return new(i||t)(e.rXU(g),e.rXU(e.gRc))}}static{this.\u0275cmp=e.VBU({type:t,selectors:[["app-capacity-earn-review"]],standalone:!0,features:[e.aNF],decls:23,vars:12,consts:[[1,"earn-review"],[1,"er-header"],[1,"er-title-block"],[1,"er-title"],[1,"fa-solid","fa-share-nodes"],[1,"er-subtitle"],[1,"er-header-actions"],[1,"er-count-pill"],[1,"er-toggle"],["type","checkbox",3,"change","checked"],["type","button",1,"er-btn","er-btn-ghost",3,"click","disabled"],[1,"fa-solid","fa-rotate"],["class","er-hint",4,"ngIf"],["class","er-error",4,"ngIf"],["class","er-list",4,"ngIf"],["class","er-empty",4,"ngIf"],[1,"er-hint"],[1,"fa-solid","fa-circle-info"],[1,"er-error"],[1,"fa-solid","fa-triangle-exclamation"],[1,"er-list"],["class","er-row er-skeleton",4,"ngFor","ngForOf"],[1,"er-row","er-skeleton"],[1,"sk","sk-thumb"],[1,"sk-lines"],[1,"sk","sk-line","w60"],[1,"sk","sk-line","w40"],[1,"er-empty"],[1,"fa-regular","fa-circle-check"],["class","er-row",3,"is-busy",4,"ngFor","ngForOf","ngForTrackBy"],[1,"er-row"],["class","er-thumb","target","_blank","rel","noopener noreferrer",3,"href",4,"ngIf"],["class","er-thumb er-thumb-empty","aria-hidden","true",4,"ngIf"],[1,"er-main"],[1,"er-main-top"],["target","_blank","rel","noopener noreferrer",1,"er-posturl",3,"href"],[1,"fa-solid","fa-arrow-up-right-from-square"],[1,"er-dim"],[1,"er-main-mid"],["title","Organization",1,"er-org"],[1,"fa-solid","fa-building"],[1,"muted"],["title","Submitter",1,"er-submitter"],[1,"fa-solid","fa-user"],["class","er-handle","title","Handle",4,"ngIf"],[1,"er-time"],[1,"er-verdict"],["title","AI confidence"],[1,"fa-solid","fa-gauge-high"],["title","Mentions Real Wave",1,"v-pill"],[1,"fa-solid",3,"ngClass"],["title","Mentions leaving a public review (\u2192 higher weight)",1,"v-pill"],["class","v-reason",4,"ngIf"],["class","er-outcome",4,"ngIf"],[1,"er-actions"],[4,"ngIf"],["class","er-confirm approve",4,"ngIf"],["class","er-confirm reject",4,"ngIf"],["class","er-confirm revoke",4,"ngIf"],["class","er-confirm override",4,"ngIf"],["target","_blank","rel","noopener noreferrer",1,"er-thumb",3,"href"],["alt","Post screenshot","loading","lazy",3,"src"],["aria-hidden","true",1,"er-thumb","er-thumb-empty"],[1,"fa-regular","fa-image"],["title","Handle",1,"er-handle"],[1,"v-reason"],[1,"er-outcome"],[1,"fa-solid","fa-circle-check"],["type","button","class","er-btn er-btn-approve",3,"disabled","click",4,"ngIf"],["type","button","class","er-btn er-btn-reject",3,"disabled","click",4,"ngIf"],["type","button","class","er-btn er-btn-revoke",3,"disabled","click",4,"ngIf"],["type","button","class","er-btn er-btn-override",3,"disabled","click",4,"ngIf"],["class","er-note",4,"ngIf"],["class","er-busy",4,"ngIf"],["type","button",1,"er-btn","er-btn-approve",3,"click","disabled"],[1,"fa-solid","fa-check"],["type","button",1,"er-btn","er-btn-reject",3,"click","disabled"],[1,"fa-solid","fa-xmark"],["type","button",1,"er-btn","er-btn-revoke",3,"click","disabled"],[1,"fa-solid","fa-rotate-left"],["type","button",1,"er-btn","er-btn-override",3,"click","disabled"],[1,"fa-solid","fa-scale-balanced"],[1,"er-note"],[1,"er-busy"],[1,"fa-solid","fa-spinner","fa-spin"],[1,"er-confirm","approve"],[1,"cf-q"],[1,"cf-btns"],["type","button",1,"er-btn","er-btn-approve",3,"click"],["type","button",1,"er-btn","er-btn-ghost",3,"click"],[1,"er-confirm","reject"],["type","text","placeholder","Reason (optional)","maxlength","500",1,"cf-reason",3,"ngModelChange","ngModel"],["type","button",1,"er-btn","er-btn-reject",3,"click"],[1,"er-confirm","revoke"],["type","button",1,"er-btn","er-btn-revoke",3,"click"],[1,"er-confirm","override"],["type","text","placeholder","Reason (required)","maxlength","500",1,"cf-reason",3,"ngModelChange","ngModel"]],template:function(i,r){1&i&&(e.j41(0,"div",0)(1,"header",1)(2,"div",2)(3,"h1",3),e.nrm(4,"i",4),e.EFF(5," Capacity \u2014 Earn Review "),e.k0s(),e.j41(6,"p",5),e.EFF(7," The human side of the earn-via-social hybrid approval. Adjudicate the shares the AI verifier couldn't high-confidence auto-decide. "),e.k0s()(),e.j41(8,"div",6)(9,"span",7),e.EFF(10),e.k0s(),e.j41(11,"label",8)(12,"input",9),e.bIt("change",function(){return r.toggleIncludeDecided()}),e.k0s(),e.j41(13,"span"),e.EFF(14,"Show decided"),e.k0s()(),e.j41(15,"button",10),e.bIt("click",function(){return r.refresh()}),e.nrm(16,"i",11),e.EFF(17," Refresh "),e.k0s()()(),e.DNE(18,b,9,0,"div",12)(19,v,3,1,"div",13)(20,C,2,2,"div",14)(21,k,6,0,"div",15)(22,Y,2,2,"div",14),e.k0s()),2&i&&(e.R7$(9),e.AVh("zero",0===r.flaggedCount),e.R7$(),e.SpI(" ",r.flaggedCount," flagged "),e.R7$(2),e.Y8G("checked",r.includeDecided),e.R7$(3),e.Y8G("disabled",r.isLoading),e.R7$(),e.AVh("fa-spin",r.isLoading),e.R7$(2),e.Y8G("ngIf",!r.socialEnabled&&!r.isLoading),e.R7$(),e.Y8G("ngIf",r.loadError),e.R7$(),e.Y8G("ngIf",r.isLoading),e.R7$(),e.Y8G("ngIf",!r.isLoading&&!r.loadError&&0===r.rows.length),e.R7$(),e.Y8G("ngIf",!r.isLoading&&r.rows.length>0))},dependencies:[d.MD,d.YU,d.Sq,d.bT,s.YN,s.me,s.BC,s.tU,s.vS],styles:['.earn-review[_ngcontent-%COMP%]{min-height:100vh;background:linear-gradient(135deg,#f8fafc,#eef2f7);padding:2rem 2.5rem 4rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:#1e293b}.er-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;flex-wrap:wrap;margin-bottom:1.5rem}.er-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.6rem;margin:0 0 .35rem;font-size:1.6rem;font-weight:700;color:#1e293b}.er-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{color:#2563eb;font-size:1.4rem}.er-subtitle[_ngcontent-%COMP%]{margin:0;max-width:640px;font-size:.92rem;color:#64748b;line-height:1.5}.er-header-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.er-count-pill[_ngcontent-%COMP%]{padding:.35rem .75rem;border-radius:999px;background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe;font-size:.82rem;font-weight:700}.er-count-pill.zero[_ngcontent-%COMP%]{background:#f0fdf4;color:#16a34a;border-color:#bbf7d0}.er-toggle[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:#475569;cursor:pointer;-webkit-user-select:none;user-select:none}.er-toggle[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{accent-color:#2563eb;
1cursor:pointer}.er-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .85rem;border-radius:8px;border:1px solid #cbd5e1;background:#fff;color:#475569;font-size:.83rem;font-weight:600;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease}.er-btn[_ngcontent-%COMP%]:hover:not(:disabled){border-color:#3b82f6;color:#2563eb}.er-btn[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed}.er-btn[_ngcontent-%COMP%]:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.er-btn-ghost[_ngcontent-%COMP%]{background:transparent}.er-btn-approve[_ngcontent-%COMP%]{background:#2563eb;border-color:#2563eb;color:#fff}.er-btn-approve[_ngcontent-%COMP%]:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8;color:#fff}.er-btn-reject[_ngcontent-%COMP%]{background:#fff;border-color:#fecaca;color:#dc2626}.er-btn-reject[_ngcontent-%COMP%]:hover:not(:disabled){background:#fef2f2;border-color:#dc2626;color:#dc2626}.er-btn-revoke[_ngcontent-%COMP%]{background:#fff;border-color:#fde68a;color:#d97706}.er-btn-revoke[_ngcontent-%COMP%]:hover:not(:disabled){background:#fffbeb;border-color:#d97706;color:#d97706}.er-btn-override[_ngcontent-%COMP%]{background:#fff;border-color:#3b82f6;color:#2563eb}.er-btn-override[_ngcontent-%COMP%]:hover:not(:disabled){background:#eff6ff;border-color:#2563eb;color:#2563eb}.er-hint[_ngcontent-%COMP%], .er-error[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:.55rem;padding:.75rem 1rem;border-radius:10px;font-size:.86rem;margin-bottom:1.1rem;line-height:1.45}.er-hint[_ngcontent-%COMP%] code[_ngcontent-%COMP%], .er-error[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:#0f172a0f;padding:0 .3rem;border-radius:4px;font-size:.82rem}.er-hint[_ngcontent-%COMP%]{background:#eff6ff;color:#475569;border:1px solid #bfdbfe}.er-hint[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{color:#2563eb;margin-top:2px}.er-error[_ngcontent-%COMP%]{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.er-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.55rem}.er-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:64px 1fr auto;gap:1rem;align-items:flex-start;padding:.8rem 1rem;background:#fff;border:1px solid #e2e8f0;border-left:3px solid #3b82f6;border-radius:10px;box-shadow:0 1px 2px #0f172a0a;transition:border-color .18s ease,box-shadow .18s ease}.er-row[_ngcontent-%COMP%]:hover{border-color:#cbd5e1;box-shadow:0 2px 8px #0f172a12}.er-row.is-busy[_ngcontent-%COMP%]{opacity:.72}.er-thumb[_ngcontent-%COMP%]{width:64px;height:64px;border-radius:8px;overflow:hidden;border:1px solid #e2e8f0;display:block;background:#f8fafc}.er-thumb[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:cover;display:block}.er-thumb-empty[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;color:#cbd5e1}.er-thumb-empty[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:1.4rem}.er-main[_ngcontent-%COMP%]{min-width:0;display:flex;flex-direction:column;gap:.4rem}.er-main-top[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.er-platform[_ngcontent-%COMP%]{text-transform:capitalize;font-size:.74rem;font-weight:700;letter-spacing:.02em;padding:.15rem .5rem;border-radius:6px;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.pf-linkedin[_ngcontent-%COMP%]{background:#eaf3fb;color:#0a66c2;border-color:#bcd9f2}.pf-facebook[_ngcontent-%COMP%]{background:#eef2ff;color:#1877f2;border-color:#c7d6fb}.pf-instagram[_ngcontent-%COMP%]{background:#fdf1f7;color:#c13584;border-color:#f4cfe4}.pf-tiktok[_ngcontent-%COMP%]{background:#f1f5f9;color:#111827;border-color:#d5dbe3}.er-posturl[_ngcontent-%COMP%]{font-size:.82rem;color:#2563eb;text-decoration:none;max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .18s ease}.er-posturl[_ngcontent-%COMP%]:hover{color:#1d4ed8;text-decoration:underline}.er-posturl[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:.68rem;opacity:.7}.er-status[_ngcontent-%COMP%]{font-size:.72rem;font-weight:700;padding:.15rem .5rem;border-radius:6px}.er-status.st-flagged[_ngcontent-%COMP%]{background:#fffbeb;color:#d97706;border:1px solid #fde68a}.er-status.st-verified[_ngcontent-%COMP%]{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.er-status.st-rejected[_ngcontent-%COMP%]{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.er-status.st-pending[_ngcontent-%COMP%]{background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0}.er-dim[_ngcontent-%COMP%]{font-size:.72rem;font-weight:600;color:#64748b;padding:.15rem .45rem;border-radius:6px;background:#f8fafc;border:1px solid #e2e8f0}.er-main-mid[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;font-size:.82rem;color:#475569}.er-main-mid[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{color:#64748b;margin-right:.25rem;font-size:.78rem}.er-main-mid[_ngcontent-%COMP%] .muted[_ngcontent-%COMP%]{color:#64748b;font-weight:400}
1.er-time[_ngcontent-%COMP%]{color:#64748b;font-size:.78rem;margin-left:auto}.er-handle[_ngcontent-%COMP%]{color:#64748b}.er-verdict[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.15rem}.v-pill[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.3rem;font-size:.74rem;font-weight:600;padding:.15rem .5rem;border-radius:6px;background:#f8fafc;color:#64748b;border:1px solid #e2e8f0}.v-pill[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:.7rem}.v-pill.v-yes[_ngcontent-%COMP%]{background:#f0fdf4;color:#16a34a;border-color:#bbf7d0}.v-pill.v-no[_ngcontent-%COMP%]{background:#fef2f2;color:#dc2626;border-color:#fecaca}.v-conf.conf-high[_ngcontent-%COMP%]{background:#f0fdf4;color:#16a34a;border-color:#bbf7d0}.v-conf.conf-mid[_ngcontent-%COMP%]{background:#fffbeb;color:#d97706;border-color:#fde68a}.v-conf.conf-low[_ngcontent-%COMP%]{background:#fef2f2;color:#dc2626;border-color:#fecaca}.v-conf.conf-none[_ngcontent-%COMP%]{background:#f1f5f9;color:#64748b}.v-reason[_ngcontent-%COMP%]{font-size:.8rem;font-style:italic;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.er-outcome[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.4rem;margin-top:.35rem;font-size:.82rem;font-weight:600;color:#16a34a}.er-outcome[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:.8rem}.er-actions[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem;min-width:0}.er-actions[_ngcontent-%COMP%] > ng-container[_ngcontent-%COMP%], .er-actions[_ngcontent-%COMP%] .er-btn[_ngcontent-%COMP%]{flex-shrink:0}.er-actions[_ngcontent-%COMP%] > ng-container[_ngcontent-%COMP%]{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.er-busy[_ngcontent-%COMP%]{color:#2563eb;font-size:.9rem;padding:.4rem}.er-note[_ngcontent-%COMP%]{font-size:.78rem;color:#64748b;padding:.45rem 0;text-align:right;max-width:210px}.er-confirm[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.45rem;padding:.7rem .85rem;border-radius:10px;min-width:230px;border:1px solid #e2e8f0;background:#f8fafc}.er-confirm.approve[_ngcontent-%COMP%]{border-color:#bfdbfe;background:#eff6ff}.er-confirm.reject[_ngcontent-%COMP%]{border-color:#fecaca;background:#fef2f2}.er-confirm.revoke[_ngcontent-%COMP%], .er-confirm.override[_ngcontent-%COMP%]{border-color:#fde68a;background:#fffbeb}.er-confirm[_ngcontent-%COMP%] .cf-q[_ngcontent-%COMP%]{font-size:.82rem;font-weight:600;color:#1e293b}.er-confirm[_ngcontent-%COMP%] .cf-reason[_ngcontent-%COMP%]{font-size:.82rem;padding:.4rem .55rem;border:1px solid #cbd5e1;border-radius:7px;background:#fff;color:#1e293b}.er-confirm[_ngcontent-%COMP%] .cf-reason[_ngcontent-%COMP%]:focus-visible{outline:2px solid #2563eb;outline-offset:1px}.er-confirm[_ngcontent-%COMP%] .cf-btns[_ngcontent-%COMP%]{display:flex;gap:.4rem}.er-empty[_ngcontent-%COMP%]{text-align:center;padding:4rem 1.5rem;color:#64748b}.er-empty[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:3rem;color:#86efac;margin-bottom:1rem}.er-empty[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0 0 .5rem;font-size:1.2rem;color:#1e293b}.er-empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0 auto;max-width:460px;font-size:.92rem;line-height:1.55}.er-skeleton[_ngcontent-%COMP%]{align-items:center}.sk[_ngcontent-%COMP%]{background:linear-gradient(90deg,#eef2f7 25%,#e2e8f0 37%,#eef2f7 63%);background-size:400% 100%;animation:_ngcontent-%COMP%_er-shimmer 1.4s ease infinite;border-radius:6px}.sk-thumb[_ngcontent-%COMP%]{width:64px;height:64px;border-radius:8px}.sk-lines[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;flex:1}.sk-line[_ngcontent-%COMP%]{height:12px}.w60[_ngcontent-%COMP%]{width:60%}.w40[_ngcontent-%COMP%]{width:40%}@keyframes _ngcontent-%COMP%_er-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (max-width: 820px){.earn-review[_ngcontent-%COMP%]{padding:1.25rem 1rem 3rem}.er-row[_ngcontent-%COMP%]{grid-template-columns:56px 1fr;grid-template-areas:"thumb main" "actions actions"}.er-thumb[_ngcontent-%COMP%]{grid-area:thumb;width:56px;height:56px}.er-main[_ngcontent-%COMP%]{grid-area:main}.er-actions[_ngcontent-%COMP%]{grid-area:actions;flex-direction:row;align-items:stretch;flex-wrap:wrap;justify-content:flex-start;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #e2e8f0}.er-confirm[_ngcontent-%COMP%]{min-width:100%}.er-posturl[_ngcontent-%COMP%]{max-width:100%}
1.er-time[_ngcontent-%COMP%]{margin-left:0}}@media (prefers-reduced-motion: reduce){.sk[_ngcontent-%COMP%]{animation:none}.er-btn[_ngcontent-%COMP%], .er-row[_ngcontent-%COMP%], .er-posturl[_ngcontent-%COMP%]{transition:none}.fa-spin[_ngcontent-%COMP%]{animation:none}}'],changeDetection:0})}}return t})()}}]);
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.