1import{a as Me}from"./chunk-ROAYWFE3.js";import{a as Ce}from"./chunk-N4RONQJW.js";import{a as ce}from"./chunk-634FCCIA.js";import{b as Ve,c as Re,d as ze,h as Ne}from"./chunk-GKPNXFBR.js";import{a as he,b as xe}from"./chunk-PZ3MHHNF.js";import{a as fe,b as be,c as ve}from"./chunk-WFC7OTHB.js";import{b as Pe,c as ke,d as Oe,e as Se,f as we,g as Te,h as Ee,i as Ie,j as $e,k as Fe,m as De}from"./chunk-JJ34GR4J.js";import{a as ge}from"./chunk-BOKGPF5L.js";import{a as Ae}from"./chunk-ARC56PBP.js";import{a as Q}from"./chunk-NPPDZT3N.js";import"./chunk-TZPAEUEQ.js";import"./chunk-ATJ5Z3AE.js";import{a as ye}from"./chunk-UDOJB5M5.js";import"./chunk-5KMSWIXJ.js";import{a as le}from"./chunk-3CAPO2TL.js";import{k as ue}from"./chunk-FWUTYCZQ.js";import{b as me,d as de}from"./chunk-CHZLVAUG.js";import{a as re,b as se}from"./chunk-6ZTL6GFP.js";import{a as ae}from"./chunk-PM4ZPVPD.js";import{a as ie}from"./chunk-6VKMXZGV.js";import"./chunk-CDFI3T4I.js";import"./chunk-77NG3VXC.js";import{c as _e}from"./chunk-3HVK22Q3.js";import"./chunk-KVR626JS.js";import{a as pe}from"./chunk-MQTNR3WQ.js";import{d as Tt}from"./chunk-MHGUBVXK.js";import"./chunk-X3JMCOQX.js";import"./chunk-BV2OUJIG.js";import"./chunk-N33DLVOR.js";import{a as ne,b as oe}from"./chunk-HXBGSEHQ.js";import{b as ee}from"./chunk-LY2L7L3N.js";import"./chunk-4ZNKTWHU.js";import{B as te,m as Yt,o as Gt}from"./chunk-C53UORQN.js";import"./chunk-O6XYH7PW.js";import"./chunk-HYT4FRIV.js";import"./chunk-GRKZLBTJ.js";import"./chunk-DNJMDJPD.js";import"./chunk-WYFHTUC5.js";import"./chunk-SJPXSUWQ.js";import"./chunk-N4X2ZSCK.js";import{d as I,p as Nt,y as w}from"./chunk-YBSG77R6.js";import"./chunk-JMVK4GP4.js";import"./chunk-I6AEVJLZ.js";import{g as Vt,i as Rt,j as zt}from"./chunk-DXTONCKZ.js";import{b as It,c as $t}from"./chunk-HRCH7YTL.js";import"./chunk-ZUVYQ52R.js";import{a as B,b as Y}from"./chunk-V2N2YMJZ.js";import{d as F}from"./chunk-3WKYSXKM.js";import{a as Kt,b as Qt,e as Zt}from"./chunk-QHZU4PST.js";import"./chunk-LO4BUZD5.js";import{b as Jt,i as Wt,j as Xt}from"./chunk-HFX225X2.js";import{H as Ut,I as jt,c as Lt,f as Bt,i as qt,n as st,u as Ht}from"./chunk-3QAVFP5S.js";import{g as Et,i as Ft,j as Dt,l as At}from"./chunk-NKUORADV.js";import"./chunk-A5YLLBSK.js";import"./chunk-VJLDJJUQ.js";import{r as kt,s as Ot}from"./chunk-224PXFJJ.js";import{i as St,p as wt}from"./chunk-2K5EWLY6.js";import{$b as it,Cd as $,Da as bt,Ec as C,Fb as vt,Gc as s,Hb as Mt,J as nt,Ja as O,Lb as T,N as gt,Sc as N,Vc as d,Wc as R,Xc as j,Yc as K,_b as h,ac as at,ca as ht,da as xt,dc as b,fa as ft,fc as v,gc as rt,ic as W,id as yt,jc as X,k as dt,kb as ot,kc as f,la as J,lc as i,m as _t,mc as r,n as pt,nc as x,pb as c,qa as k,r as U,rc as A,rd as z,sc as V,sd as L,u as ut,ud as Pt,vc as S,xa as _,ya as p,z as Ct}from"./chunk-QXK5WLZZ.js";import{a as M,b as y}from"./chunk-MH5V57HS.js";var Z="search",tt="contentType",q="channel",et="dateRange",G="status";var Le=(()=>{class n{filterChips=k(Q);channelService=k(te);channelDialog=k(le);logger=F("CommentFilterChipsDirective");ngOnInit(){this.filterChips.sortFields.set([{title:"Date",value:"date",type:I.Date,defaultSortDirection:"desc"},{title:"Comment Text",value:"comment",type:I.Text,defaultSortDirection:"asc"},{title:"Location",value:"location",type:I.Text,defaultSortDirection:"asc"}]);let t=[{id:Z,name:"Search",queryParam:"query",type:I.Text,inputLabel:"Search by author or text"},{id:tt,name:"Content Type",queryParam:"contentTypes",type:I.Select,multiple:!0,options:[{name:"Post",value:"post"},{name:"Event",value:"event"}]},{id:q,name:"Channel",queryParam:"channelIds",type:I.Select,multiple:!0,options:void 0,onOpenOptionsDialog:()=>Promise.resolve([])},{id:et,name:"Date Range",queryParam:"dateFrom,dateTo",type:I.DateRange}];this.filterChips.types=t,this.loadChannelsFromService()}async loadChannelsFromService(){try{let t=await U(this.channelService.getFilterableChannels());this.applyChannelFilterUpdate(t)}catch(t){this.logger.error("Failed to fetch channels for filter",{error:t}),this.applyChannelFilterUpdate([])}}applyChannelFilterUpdate(t){let e=this.filterChips.types.find(a=>a.id===q);if(!e){this.logger.warn("Channel filter not found in filterChips.types");return}let o=y(M({},e),{options:t.map(a=>({name:a.name,value:a.channelId.toString()})),onOpenOptionsDialog:this.makeChannelDialogOpener(t)});this.filterChips.types=this.filterChips.types.map(a=>a.id===q?o:a)}makeChannelDialogOpener(t){return async e=>{let o=await this.channelDialog.open({dialogTitle:"Select Channels",selectedChannels:e?t.filter(m=>e.map(g=>Number(g.value)).filter(g=>Number.isFinite(g)).includes(m.channelId)):[],context:"contentFilter",isContentCreator:!0,includeEveryone:!0},!1);return(await U(o.afterClosed()))?.map(m=>({name:m.name,value:m.channelId.toString()}))??[]}}static \u0275fac=function(e){return new(e||n)};static \u0275dir=Mt({type:n,selectors:[["ih-filter-chips","ihCommentFilterChips",""]]})}return n})();var Be=(()=>{class n{http=k(wt);logger=F("CommentListService");BASE_URL="/api/comments/builder";get(t){let e=this.buildHttpParams(t);return U(this.http.get(`${this.BASE_URL}/list`,{params:e})).catch(o=>(this.logger.error("Failed to load comments",{error:o,status:t.comment_status,skip:t.skip,limit:t.limit}),null))}getSummary(t){let e=this.buildHttpParams(t);return this.http.get(`${this.BASE_URL}/summary`,{params:e})}buildHttpParams(t){let e=new St;return e=e.set("comment_status",t.comment_status),e=e.set("skip",t.skip.toString()),e=e.set("limit",t.limit.toString()),e=e.set("sort",t.sort),e=e.set("order",t.order),t.query&&(e=e.set("query",t.query)),t.contentTypes&&t.contentTypes.length>0&&(e=e.set("contentTypes",JSON.stringify(t.contentTypes))),t.channelIds&&t.channelIds.length>0&&(e=e.set("channelIds",JSON.stringify(t.channelIds))),t.dateFrom&&(e=e.set("dateFrom",t.dateFrom)),t.dateTo&&(e=e.set("dateTo",t.dateTo)),t.includeMetrics===!1&&(e=e.set("includeMetrics","fal
1se")),e}moderateComments(t,e){let o={bulkAction:t,comments:e.map(a=>({commentId:a.user_comment_id,commentStateId:0,text:null}))};return this.http.put(`${this.BASE_URL}/moderate`,o)}editComment(t){let e={bulkAction:"edit",comments:[{commentId:t.user_comment_id,commentStateId:0,text:t.text}]};return this.http.put(`${this.BASE_URL}/moderate`,e)}static \u0275fac=function(e){return new(e||n)};static \u0275prov=J({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var qe=["all","pending","approved","spam","trash"],lt=(()=>{class n{listService=k(Be);snackbar=k(Yt);router=k(Rt);route=k(Vt);destroyRef=k(bt);logger=F("CommentModerationStateService");sort=O({active:"date",direction:"desc"});filters=O([]);page=O({pageIndex:0,pageSize:25});status=O("pending");refreshTrigger=O(0);items=O([]);metrics=O(null);totalCount=O(0);loading=O(!0);error=O(null);items$=this.items.asReadonly();metrics$=this.metrics.asReadonly();totalCount$=this.totalCount.asReadonly();loading$=this.loading.asReadonly();pageSize$=$(()=>this.page().pageSize);pageIndex$=$(()=>this.page().pageIndex);sort$=this.sort.asReadonly();_viewMode=O("cards");viewMode$=this._viewMode.asReadonly();currentStatus$=this.status.asReadonly();currentStatusIndex$=$(()=>qe.indexOf(this.status()));selectedComments$=$(()=>this.items$().filter(t=>t.selected));selectedCount$=$(()=>this.selectedComments$().length);isAnySelected$=$(()=>this.selectedCount$()>0);selectAll$=$(()=>{let t=this.items$();return t.length>0&&this.selectedCount$()===t.length});emptyStateConfig$=$(()=>this.error()?this.getErrorStateConfig():!this.loading()&&this.items().length===0?this.getEmptyStateConfig():{illustration:"noData",title:"",message:""});signedOut$=_e(()=>this.clearForSignOut(),{routePrefix:Ce,loggerScope:"CommentModerationSignOutRedirect",surfaceLabel:"comment list"});clearForSignOut(){this.items.set([]),this.totalCount.set(0),this.metrics.set(null),this.loading.set(!1)}constructor(){ut([Y(this.sort),Y(this.filters),Y(this.page),Y(this.refreshTrigger)]).pipe(ft(()=>this.loading.set(!0)),ht(([t,e,o])=>{let a=this.getSearchParams(t,e,o);return Ct({list:_t(this.listService.get(y(M({},a),{includeMetrics:!1}))),summary:this.listService.getSummary(a).pipe(nt(m=>(this.logger.error("Failed to fetch comment summary:",{error:m}),pt(null))))}).pipe(nt(m=>(this.error.set(m instanceof Error?m:new Error("Failed to load comments")),this.loading.set(!1),dt)))}),xt(this.signedOut$),B(this.destroyRef)).subscribe(({list:t,summary:e})=>{if(!t){this.items.set([]),this.totalCount.set(0),this.metrics.set(null),this.error.set(new Error("Failed to load comments")),this.loading.set(!1);return}this.items.set(t.comments.map(o=>y(M({},o),{selected:!1,busy:!1}))),this.totalCount.set(t.hits),this.metrics.set(e),this.error.set(null),this.loading.set(!1)})}loadInitialData(){let t=this.route.snapshot.queryParamMap.get("status"),e=t&&qe.includes(t)?t:"pending";this.setStatus(e,!1)}setStatus(t,e=!0){this.status.set(t),this.updateStatusFilter(t),e&&this.router.navigate([],{relativeTo:this.route,queryParams:{status:t},queryParamsHandling:"merge"}),this.clearSelection()}setSort(t){this.page.update(e=>y(M({},e),{pageIndex:0})),this.sort.set(t)}setFilters(t){this.page.update(a=>y(M({},a),{pageIndex:0}));let e=this.createStatusFilter(this.status()),o=t.filter(a=>a.id!==G);this.filters.set([e,...o])}setPage(t,e){this.page.set({pageIndex:t,pageSize:e})}reload(){this.refreshTrigger.update(t=>t+1)}toggleSelection(t){this.items.update(e=>e.map(o=>o.user_comment_id===t?y(M({},o),{selected:!o.selected}):o))}toggleSelectAll(){let t=!this.selectAll$();this.items.update(e=>e.map(o=>y(M({},o),{selected:t})))}clearSelection(){this.items.update(t=>t.map(e=>y(M({},e),{selected:!1})))}moderateComments(t,e){let o=new Set(t.map(m=>m.user_comment_id));this.items.update(m=>m.map(u=>o.has(u.user_comment_id)?y(M({},u),{busy:!0}):u));let a=e==="restore"?"unapprove":e;this.listService.moderateComments(a,t).pipe(B(this.destroyRef)).subscribe({next:async m=>{await this.handleModerationResult(m,e,t.length),this.items.update(u=>u.map(g=>o.has(g.user_comment_id)?y(M({},g),{busy:!1}):g))},error:async m=>{let u=m?.error,g=u&&typeof u=="object"&&("successIds"in u||"failedIds"in u)?{successIds:u.successIds??[],unauthorizedIds:u.unauthorizedIds??[],failedIds:u.failedIds??[],errorMessage:u.errorMessage}:{successIds:[],failedIds:[],unauthorizedIds:[],errorMessage:"An unknown error occurred."};await this.handleModerationResult(g,e,t.length),this.items.update(P=>P.map(E=>o.has(E.user_comment_id)?y(M({},E),{busy:!1}):E))}})}saveCommentEdit(t,e){return new Promise((o,a)=>{let m=!1;this.listService.editComment({user_comment_id:t,text:e}).pipe(B(this.destroyRef)).subscribe({next:u=>{m=!0,u.successIds?.includes(t)?(this.items.update(g=>g.map(P=>P.user_comment_id===t?y(M({},P),{text:e}):P)),this.snackbar.open("Comment updated.")):this.snackbar.open(u.errorMessage||"Failed to update comment.","Dismiss"),o()},error:u=>{m=!0,this.snackbar.open(u.error?.errorMessage||"Failed to update comment.","Dismiss"),a(u)},complete:()=>{m||a(new Error("Edit cancelled: component destroyed"))}})})}fetchSummary(){let t=this.getSearchParams(this.sort(),this.filters(),this.page());this.listService.getSummary(t).pipe(B(this.destroyRef)).subscribe({next:e=>{this.metrics.set(e)},error:e=>{this.metrics.set(null),this.logger.error("Failed to fetch comment summary:",e),this.snackbar.open("Failed to refresh comment metrics.","Dismiss")}})}async handleModerationResult(t,e,o){let a=t.successIds.length;if(a>0){let g=new Set(t.successIds),P=this.items$().filter(D=>g.has(D.user_comment_id)),E={approve:"approved",unapprove:"unapproved",spam:"marked as spam",trash:"trashed",restore:"restored"},He=`${a} comment${a>
11?"s":""} ${E[e]}`;(await this.snackbar.open(He,"Undo",{duration:5e3})).onAction().pipe(gt(1)).subscribe(()=>this.undoModeration(P,e));let mt=this.getNewStateForAction(e);this.shouldRemoveAfterAction(mt)?(this.items.update(D=>D.filter(H=>!g.has(H.user_comment_id))),this.totalCount.update(D=>Math.max(0,D-a))):this.items.update(D=>D.map(H=>g.has(H.user_comment_id)?y(M({},H),{user_comment_state_id:mt}):H))}let m=t.unauthorizedIds.length,u=t.failedIds.length;m>0||u>0?this.snackbar.open(`Action partially failed: ${m} unauthorized, ${u} failed.`,"Dismiss"):t.errorMessage&&a===0&&this.snackbar.open(t.errorMessage,"Dismiss"),o>1&&this.clearSelection(),this.fetchSummary()}undoModeration(t,e){let o=this.getUndoAction(e);o&&this.listService.moderateComments(o,t.map(a=>({user_comment_id:a.user_comment_id}))).pipe(B(this.destroyRef)).subscribe({next:()=>{this.snackbar.open("Action undone.","Dismiss",{duration:3e3}),this.reload()},error:()=>{this.snackbar.open("Failed to undo action. Please try again.","Dismiss")}})}getSearchParams(t,e,o){let a=e.reduce((m,u)=>{if(!u.query)return m;switch(u.id){case Z:m.query=u.query.value;break;case G:m.comment_status=u.query.value;break;case tt:m.contentTypes=u.query.map(g=>g.value);break;case q:m.channelIds=u.query.map(g=>g.value).filter(g=>g!==void 0);break;case et:{let g=u.query.value,P=null;if(typeof g=="string")try{P=JSON.parse(g)}catch{P=null}else g&&typeof g=="object"&&(P=g);if(P?.start){let E=new Date(P.start);isNaN(E.getTime())||(m.dateFrom=E.toISOString())}if(P?.end){let E=new Date(P.end);isNaN(E.getTime())||(m.dateTo=E.toISOString())}break}}return m},{});return M({comment_status:"all",skip:o.pageIndex*o.pageSize,limit:o.pageSize,sort:t.active,order:t.direction||"desc"},a)}updateStatusFilter(t){this.page.update(e=>y(M({},e),{pageIndex:0})),this.filters.update(e=>{let o=e.filter(m=>m.id!==G);return[this.createStatusFilter(t),...o]})}createStatusFilter=t=>({id:G,name:"Status",queryParam:"comment_status",type:I.Select,query:{name:t,value:t}});getUndoAction=t=>({approve:"unapprove",unapprove:"approve",spam:"unapprove",trash:"unapprove",restore:"trash"})[t];getNewStateForAction=t=>({approve:w.Approved,unapprove:w.Pending,spam:w.Spam,trash:w.Trash,restore:w.Pending})[t]||w.Pending;shouldRemoveAfterAction=t=>{let o={pending:w.Pending,approved:w.Approved,spam:w.Spam,trash:w.Trash}[this.status()];return this.status()!=="all"&&o!==t};getErrorStateConfig=()=>({illustration:"error",title:"Unable to Load Comments",message:"There was a problem connecting to the server. Please try again.",secondaryActionText:"Try Again",secondaryActionIcon:"refresh"});getEmptyStateConfig=()=>({illustration:"noData",title:"No Comments Found",message:"When new comments match this status and your filters, they will appear here."});static \u0275fac=function(e){return new(e||n)};static \u0275prov=J({token:n,factory:n.\u0275fac})}return n})();var Ue=(n,l)=>l.user_comment_id;function je(n,l){if(n&1&&(i(0,"span",25),d(1),z(2,"thousandSuffix"),r()),n&2){let t=s();c(),R(L(2,1,t.pending+t.approved+t.spam+t.trash+t.deleted))}}function Ye(n,l){if(n&1&&b(0,je,3,3,"span",25),n&2){let t=l;v(t.pending+t.approved+t.spam+t.trash+t.deleted>0?0:-1)}}function Ge(n,l){if(n&1&&(i(0,"span",22),x(1,"mat-icon",23),i(2,"span",24),d(3,"All"),r(),b(4,Ye,1,1),r()),n&2){let t,e=s(2);c(4),v((t=e.state.metrics$())?4:-1,t)}}function Je(n,l){if(n&1&&(i(0,"span",28),d(1),z(2,"thousandSuffix"),r()),n&2){let t=l;N("attention-pulse",t.pending>0),c(),R(L(2,3,t.pending))}}function We(n,l){if(n&1&&(i(0,"span",22),x(1,"mat-icon",26),i(2,"span",24),d(3,"Pending"),r(),b(4,Je,3,5,"span",27),r()),n&2){let t,e=s(2);c(4),v((t=e.state.metrics$())?4:-1,t)}}function Xe(n,l){n&1&&(i(0,"span",25),d(1),z(2,"thousandSuffix"),r()),n&2&&(c(),R(L(2,1,l.approved)))}function Ke(n,l){if(n&1&&(i(0,"span",22),x(1,"mat-icon",29),i(2,"span",24),d(3,"Approved"),r(),b(4,Xe,3,3,"span",25),r()),n&2){let t,e=s(2);c(4),v((t=e.state.metrics$())?4:-1,t)}}function Qe(n,l){n&1&&(i(0,"span",25),d(1),z(2,"thousandSuffix"),r()),n&2&&(c(),R(L(2,1,l.spam)))}function Ze(n,l){if(n&1&&(i(0,"span",22),x(1,"mat-icon",30),i(2,"
1span",24),d(3,"Spam"),r(),b(4,Qe,3,3,"span",25),r()),n&2){let t,e=s(2);c(4),v((t=e.state.metrics$())?4:-1,t)}}function tn(n,l){n&1&&(i(0,"span",25),d(1),z(2,"thousandSuffix"),r()),n&2&&(c(),R(L(2,1,l.trash)))}function en(n,l){if(n&1&&(i(0,"span",22),x(1,"mat-icon",31),i(2,"span",24),d(3,"Trash"),r(),b(4,tn,3,3,"span",25),r()),n&2){let t,e=s(2);c(4),v((t=e.state.metrics$())?4:-1,t)}}function nn(n,l){if(n&1){let t=S();i(0,"div",15),at(function(){return"ih-bulk-command-leave"}),it(function(){return"ih-bulk-command-enter"}),i(1,"mat-checkbox",32),C("change",function(){_(t);let o=s(2);return p(o.state.toggleSelectAll())}),r(),i(2,"span",33),d(3),r(),i(4,"div",34)(5,"mat-form-field",35)(6,"mat-label"),d(7,"Actions"),r(),i(8,"mat-select",36)(9,"mat-option",37),d(10,"Approve"),r(),i(11,"mat-option",38),d(12,"Unapprove"),r(),i(13,"mat-option",39),d(14,"Mark as Spam"),r(),i(15,"mat-option",40),d(16,"Move to Trash"),r()()(),i(17,"button",41),C("click",function(){_(t);let o=s(2);return p(o.applyBulkAction())}),d(18," Apply "),r(),i(19,"button",42),C("click",function(){_(t);let o=s(2);return p(o.state.clearSelection())}),d(20," Clear "),r()()()}if(n&2){let t=s(2);c(),f("checked",t.state.selectAll$())("indeterminate",t.state.isAnySelected$()&&!t.state.selectAll$()),c(2),j("",t.state.selectedCount$()," selected"),c(5),f("formControl",t.bulkAction),c(9),f("disabled",!t.bulkAction.value)}}function on(n,l){n&1&&(i(0,"div",55),x(1,"div",50)(2,"div",51)(3,"div",52)(4,"div",53)(5,"div",54),r())}function an(n,l){if(n&1&&(i(0,"div",44)(1,"div",49),x(2,"div",50)(3,"div",51)(4,"div",52)(5,"div",53)(6,"div",54),r(),W(7,on,6,0,"div",55,rt),r()),n&2){let t=s(3);c(7),X(t.skeletonItems)}}function rn(n,l){if(n&1){let t=S();i(0,"th",71)(1,"mat-checkbox",72),C("change",function(){_(t);let o=s(4);return p(o.state.toggleSelectAll())}),r()()}if(n&2){let t=s(4);c(),f("checked",t.state.selectAll$())("indeterminate",t.state.isAnySelected$()&&!t.state.selectAll$())}}function sn(n,l){if(n&1){let t=S();i(0,"td",73)(1,"mat-checkbox",74),C("change",function(){let o=_(t).$implicit,a=s(4);return p(a.state.toggleSelection(o.user_comment_id))})("click",function(o){_(t);let a=s(4);return p(a.stopPropagation(o))}),r()()}if(n&2){let t=l.$implicit;h("data-testid","select-cell-"+t.user_comment_id),c(),f("checked",t.selected),h("aria-label","Select comment by "+t.first_name+" "+t.last_name)("data-testid","comment-checkbox-"+t.user_comment_id)}}function cn(n,l){n&1&&(i(0,"th",75),d(1,"Author"),r())}function ln(n,l){if(n&1&&(i(0,"td",73),d(1),r()),n&2){let t=l.$implicit;h("data-testid","author-cell-"+t.user_comment_id),c(),K(" ",t.first_name," ",t.last_name," ")}}function mn(n,l){n&1&&(i(0,"th",76),d(1,"Comment"),r())}function dn(n,l){if(n&1&&(i(0,"td",77),d(1),z(2,"slice"),r()),n&2){let t=l.$implicit;f("matTooltip",t.text.length>100?t.text:""),h("data-testid","comment-text-cell-"+t.user_comment_id),c(),K(" ",Pt(2,4,t.text,0,100),"",t.text.length>100?"...":""," ")}}function _n(n,l){n&1&&(i(0,"th",78),d(1,"Location"),r())}function pn(n,l){if(n&1){let t=S();i(0,"td",73)(1,"a",79),C("click",function(o){_(t);let a=s(4);return p(a.stopPropagation(o))}),d(2),r()()}if(n&2){let t=l.$implicit;h("data-testid","location-cell-"+t.user_comment_id),c(),f("href",t.location_url,ot),c(),j(" ",t.location," ")}}function un(n,l){n&1&&(i(0,"th",80),d(1,"Date"),r())}function Cn(n,l){if(n&1&&(i(0,"td",73),x(1,"ih-time-ago",81),r()),n&2){let t=l.$implicit,e=s(4);h("data-testid","date-cell-"+t.user_comment_id),c(),f("value",e.toDate(t.date))}}function gn(n,l){n&1&&x(0,"tr",82)}function hn(n,l){if(n&1){let t=S();i(0,"tr",83),C("click",function(){let o=_(t).$implicit,a=s(4);return p(a.state.toggleSelection(o.user_comment_id))}),r()}if(n&2){let t=l.$implicit,e=s(4);N("selected",t.selected)("pending",t.user_comment_state_id===e.CommentState.Pending)("processing",t.busy),h("data-testid","comment-row-"+t.user_comment_id)}}function xn(n,l){if(n&1){let t=S();i(0,"table",56),C("matSortChange",function(o){_(t);let a=s(3);return p(a.onSortChanged(o))}),A(1,57),T(2,rn,2,2,"th",58)(3,sn,2,4,"td",59),V(),A(4,60),T(5,cn,2,0,"th",61)(6,ln,2,3,"td",59),V(),A(7,62),T(8,mn,2,0,"th",63)(9,dn,3,8,"td",64),V(),A(10,65),T(11,_n,2,0,"th",66)(12,pn,3,3,"td",59),V(),A(13,67),T(14,un,2,0,"th",68)(15,Cn,2,2,"td",59),V(),T(16,gn,1,0,"tr",69)(17,hn,1,7,"tr",70),r()}if(n&2){let t=s(3);f("dataSource",t.state.items$())("matSortActive",t.state.sort$().active)("matSortDirection",t.state.sort$().direction),c(16),f("matHeaderRowDef",t.displayedColumns),c(),f("matRowDefColumns",t.displayedColumns)}}function fn(n,l){if(n&1){let t=S();i(0,"ih-empty-state",84),C("secondaryAction",function(){_(t);let o=s(3);return p(o.onEmptyStateAction())}),r()}if(n&2){let t=s(3);f("illustration",t.state.emptyStateConfig$().illustration)("title",t.state.emptyStateConfig$().title)("message",t.state.emptyStateConfig$().message)("secondaryActionText",t.state.emptyStateConfig$().secondaryActionText)("secondaryActionIcon",t.state.emptyStateConfig$().secondaryActionIcon)}}function bn(n,l){n&1&&(i(0,"div",48),x(1,"mat-progress-bar",85),r())}function vn(n,l){if(n&1&&(i(0,"div",43),b(1,an,9,0,"div",44)(2,xn,18,5,"table",45),i(3,"div",46),b(4,fn,1,5,"ih-empty-state",47),r(),b(5,bn,2,0,"div",48),r()),n&2){let t=s(2);N("loading-overlay-active",t.state.loading$()),c(),v(t.state.loading$()&&t.state.items$().length===0?1:2),c(3),v(!t.state.loading$()&&t.state.items$().length===0?4:-1),c(),v(t.state.loading$()&&t.state.items$().length>0?5:-1)}}function Mn(n,l){if(n&1&&x(0,"article",90),n&2){let t=l.$index;h("data-testid","comment-card-skeleton-"+t)}}function yn(n,l){if(n&1&&(i(0,"div",87),W(1,Mn,1,1,"article",90,rt),r()),n&2){let t=s(3);c(),X(t.skeletonItems)}}function Pn(n,l){if(n&1){let t=S();i(0,"button",111),C("click",function(o){_(t);let a=s().$implicit,m=s(4);return p(m.moderateComment(o,a,"approve"))}),x(1,"mat-icon",112),r(),i(2,"button",113),C("click",function(o){_(t);let a=s().$implicit,m=s(4);return p(m.moderateComment(o,a,"spam"))}),x(3,"mat-icon",114),r()}if(n&2){let t=s().$implicit;h("data-testid","approve-button-"+t.user_comment_id),c(2),h("data-testid","spam-button-"+t.user_comment_id)}}function kn(n,l){if(n&1){let t=S();i(0,"button",115),C("click",function(o){_(t);let a=s().$implicit,m=s(4);return p(m.moderateComment(o,a,"unapprove"))}),x(1,"mat-icon",116),r(),i(2,"button",113),C("click",function(o){_(t);let a=s().$implicit,m=s(4);return p(m.moderateComment(o,a,"spam"))}),x(3,"mat-icon",114),r()}if(n&2){let t=s().$implicit;c(2),h("data-testid","spam-button-"+t.user_comment_id)}}function On(n,l){if(n&1){let t=S();i(0,"button",117),C("click",function(o){_(t);let a=s().$implicit,m=s(4);return p(m.moderateComment(o,a,"restore"))}),x(1,"mat-icon",118),r()}if(n&2){let t=s().$implicit;h("data-testid","restore-button-"+t.user_comment_id)}}function Sn(n,l){if(n&1){let t=S();i(0,"div",119),at(function(){return"ih-expand-collapse-leave"}),it(function(){return"ih-expand-collapse-enter"}),C("click",function(o){_(t);let a=s(5);return p(a.stopPropagation(o))}),i(1,"div",120)(2,"textarea",121,2),C("keydown.escape",function(){_(t);let o=s(5);return p(o.cancelInlineEdit())})("keydown.control.enter",function(){_(t);let o=s().$implicit,a=s(4);return p(a.saveInlineEdit(o))})("keydown.meta.enter",function(){_(t);let o=s().$implicit,a=s(4);return p(a.saveInlineEdit(o))}),r(),i(4,"div",122)(5,"div",123)(6,"span",124),d(7),r(),i(8,"span",125)(9,"kbd"),d(10,"Ctrl"),r(),d(11,"+"),i(12,"kbd"),d(13,"Enter"),r(),d(14," to save "),r()(),i(15,"div",126)(16,"button",127),C("click",function(o){return _(t),s(5).cancelInlineEdit(),p(o.stopPropagation())}),d(17," Cancel "),r(),i(18,"button",128),C("click",function(o){_(t);let a=s().$implicit;return s(4).saveInlineEdit(a),p(o.stopPropagation())}),d(19," Save "),r()()()()()}if(n&2){let t=s(5);c(2),f("formControl",t.editingTextControl),c(5),j("",(t.editingTextControl.value==null?null:t.editingTextControl.value.length)||0," characters"),c(11),f("inProgress",t.isSavingEdit())("disabled",t.editingTextControl.invalid||t.isSavingEdit())}}function wn(n,l){if(n&1&&(i(0,"div",110),x(1,"mat-progress-bar",129),r()),n&2){let t=s().$implicit;h("data-testid","processing-indicator-"+t.user_comment_id)}}function Tn(n,l){if(n&1){let t=S();i(0,"article",92,1),C("click",function(){let o=_(t).$implicit,a=s(4);return p(a.editingCommentId()!==o.user_comment_id&&a.state.toggleSelection(o.user_comment_id))}),i(2,"div",93)(3,"div",94)(4,"mat-checkbox",95),C("change",function(){let o=_(t).$implicit,a=s(4);return p(a.state.toggleSelection(o.user_comment_id))})("click",function(o){_(t);let a=s(4);return p(a.stopPropagation(o))}),r()(),i(5,"div",96)(6,"p",97),d(7),r(),i(8,"div",98)(9,"div",99),x(10,"mat-icon",100),i(11,"span"),d(12),r()(),i(13,"div",99),x(14,"mat-icon",101),i(15,"span"),x(16,"ih-time-ago",81),r()(),i(17,"div",99),x(18,"mat-icon",102),i(19,"a",79),C("click",function(o){_(t);let a=s(4);return p(a.stopPropagation(o))}),d(20),r()()()(),i(21,"div",103),b(22,Pn,4,2)(23,kn,4,1)(24,On,2,1,"button",104),i(25,"button",105),C("click",function(o){let a=_(t).$implicit,m=s(4);return p(m.startInlineEdit(o,a))}),x(26,"mat-icon",106),r(),i(27,"button",107),C("click",function(o){let a=_(t).$implicit,m=s(4);return p(m.moderateComment(o,a,"trash"))}),x(28,"mat-icon",108),r()()(),b(29,Sn,20,4,"div",109),b(30,wn,2,1,"div",110),r()}if(n&2){let t=l.$implicit,e=s(4);N("selected",t.selected)("editing",e.editingCommentId()===t.user_comment_id)("pending",t.user_comment_state_id===e.CommentState.Pending)("approved",t.user_comment_state_id===e.CommentState.Approved)("spam",t.user_comment_state_id===e.CommentState.Spam)("trash",t.user_comment_state_id===e.CommentState.Trash)("processing",t.busy),h("data-testid","comment-card-"+t.user_comment_id),c(4),f("checked",t.selected)("disabled",e.editingCommentId()===t.user_comment_id),h("aria-label","Select comment by "+t.first_name+" "+t.last_name)("data-testid","comment-checkbox-"+t.user_comment_id),c(2),h("data-testid","comment-text-"+t.user_comment_id),c(),j(" ",t.text," "),c(),h("data-testid","comment-meta-"+t.user_comment_id),c(),h("data-testid","author-meta-"+t.user_comment_id),c(2),h("data-testid","author-name-"+t.user_comment_id),c(),K("",t.first_name," ",t.last_name),c(),h("data-testid","date-meta-"+t.user_comment_id),c(2),h("data-testid","comment-date-"+t.user_comment_id),c(),f("value",e.toDate(t.date)),c(),h("data-testid","location-meta-"+t.user_comment_id),c(2),f("href",t.location_url,ot),h("data-testid","location-link-"+t.user_comment_id),c(),R(t.location),c(),h("data-testid","comment-actions-"+t.user_comment_id),c(),v(t.user_comment_state_id===e.CommentState.Pending?22:t.user_comment_state_id===e.CommentState.Approved?23:t.user_comment_state_id===e.CommentState.Spam||t.user_comment_state_id===e.CommentState.Trash?24:-1),c(3),h("data-testid","edit-button-"+t.user_comment_id),c(2),h("data-testid","trash-button-"+t.user_comment_id),c(2),v(e.editingCommentId()===t.user_comment_id?29:-1),c(),v(t.busy?30:-1)}}function En(n,l){if(n&1&&(i(0,"div",88),W(1,Tn,31,39,"article",91,Ue),r()),n&2){let t=s(3);c(),X(t.state.items$())}}function In(n,l){if(n&1){let t=S();i(0,"ih-empty-state",130),C("primaryAction",function(){_(t);let o=s(3);return p(o.onEmptyStateAction())}),r()}if(n&2){let t=s(3);f("illustration",t.state.emptyStateConfig$().illustration)("title",t.state.emptyStateConfig$().title)("message",t.state.emptyStateConfig$().message)}}function $n(n,l){n&1&&(i(0,"div",48),x(1,"mat-progress-bar",85),r())}function Fn(n,l){if(n&1&&(i(0,"div",86),b(1,yn,3,0,"div",87)(2,En,3,0,"div",88),i(3,"div",46),b(4,In,1,3,"ih-empty-state",89),r(),b(5,$n,2,0,"div",48),r()),n&2){let t=s(2);N("loading-overlay-active",t.state.loading$()),c(),v(t.state.loading$()&&t.state.items$().length===0?1:2),c(3),v(!t.state.loading$()&&t.state.items$().length===0?4:-1),c(),v(t.state.loading$()&&t.state.items$().length>0?5:-1)}}function Dn(n,l){if(n&1){let t=S();i(0,"ih-admin-base",3),x(1,"div",5),i(2,"div",6)(3,"mat-tab-group",7),C("selectedIndexChange",function(o){_(t);let a=s();return p(a.onStatusTabChange(o))}),i(4,"mat-tab",8),T(5,Ge,5,1,"ng-template",9),r(),i(6,"mat-tab",10),T(7,We,5,1,"ng-template",9),r(),i(8,"mat-tab",11),T(9,Ke,5,1,"ng-template",9),r(),i(10,"mat-tab",12),T(11,Ze,5,1,"ng-template",9),r(),i(12,"mat-tab",13),T(13,en,5,1,"ng-template",9),r()()(),i(14,"ih-filter-chips",14),C("filterChanged",function(o){_(t);let a=s();return p(a.onFilterChanged(o))})("sortChanged",function(o){_(t);let a=s();return p(a.onSortChanged(o))}),r(),b(15,nn,21,5,"div",15),i(16,"div",16),b(17,vn,6,5,"div",17)(18,Fn,6,5,"div",18),r(),A(19,19),i(20,"div",20)(21,"mat-paginator",21,0),C("page",function(o){_(t);let a=s();return p(a.onPageChanged(o))}),r()(),V(),r()}if(n&2){let t=s();c(3),f("selectedIndex",t.state.currentStatusIndex$()),c(12),v(t.state.isAnySelected$()?15:-1),c(2),v(t.state.viewMode$()==="table"?17:t.state.viewMode$()==="cards"?18:-1),c(4),f("pageSizeOptions",t.pageSizeOptions)("length",t.state.totalCount$())("pageSize",t.state.pageSize$())("pageIndex",t.state.pageIndex$())}}function An(n,l){n&1&&(i(0,"div",4),x(1,"mat-icon",131),i(2,"h2",132),d(3,"Permission Required"),r(),i(4,"p",133),d(5,"You need moderation permissions to access this area."),r(),i(6,"button",134),d(7," Return to Dashboard "),r()())}var Ci=(()=>{class n{security=k(Gt);state=k(lt);logger=F("CommentModerationComponent");
1canModerate=this.security.canAnyChannel(Nt.ModerateComments);CommentState=w;skeletonItems=Array.from({length:8});displayedColumns=["select","author","comment","location","date"];pageSizeOptions=[10,25,50,100];currentStatusIndex$=this.state.currentStatusIndex$;metrics$=this.state.metrics$;bulkAction=new st(null);editingTextControl=new st("",{nonNullable:!0,validators:[Bt.required]});editingCommentId=O(null);isSavingEdit=O(!1);ngOnInit(){this.canModerate&&this.state.loadInitialData()}onStatusTabChange(t){let e=["all","pending","approved","spam","trash"][t];this.state.setStatus(e)}onFilterChanged(t){this.state.setFilters(t)}onSortChanged(t){let e={active:"active"in t&&t.active?t.active:"field"in t?t.field:"",direction:t.direction};this.state.setSort(e)}onPageChanged(t){this.state.setPage(t.pageIndex,t.pageSize)}applyBulkAction(){let t=this.bulkAction.value,e=this.state.selectedComments$();!t||e.length===0||(this.state.moderateComments(e,t),this.bulkAction.reset())}moderateComment(t,e,o){t.stopPropagation(),this.state.moderateComments([e],o)}startInlineEdit(t,e){t.stopPropagation(),this.state.clearSelection(),this.editingTextControl.setValue(e.text),this.editingCommentId.set(e.user_comment_id)}cancelInlineEdit(){this.editingCommentId.set(null)}async saveInlineEdit(t){if(!(this.editingTextControl.invalid||this.isSavingEdit())){this.isSavingEdit.set(!0);try{await this.state.saveCommentEdit(t.user_comment_id,this.editingTextControl.value),this.cancelInlineEdit()}catch(e){this.logger.error("Failed to save comment edit:",{error:e})}finally{this.isSavingEdit.set(!1)}}}onEmptyStateAction(){this.state.reload()}stopPropagation=t=>t.stopPropagation();toDate=t=>new Date(t);trackByItemId=(t,e)=>e.user_comment_id;static \u0275fac=function(e){return new(e||n)};static \u0275cmp=vt({type:n,selectors:[["ih-comment-moderation"]],features:[yt([lt])],decls:2,vars:1,consts:[["paginator",""],["commentCardRef",""],["editTextArea",""],["editorTitle","Comment Moderation","iconName","message-processing-outline"],["data-testid","no-permission",1,"no-permission"],["button-controls",""],["filter-section","","data-testid","status-tabs",1,"status-tabs"],["animationDuration","200ms","data-testid","status-tab-group",1,"status-tab-group",3,"selectedIndexChange","selectedIndex"],["data-testid","status-tab-all"],["mat-tab-label",""],["data-testid","status-tab-pending"],["data-testid","status-tab-approved"],["data-testid","status-tab-spam"],["data-testid","status-tab-trash"],["ihCommentFilterChips","","data-testid","comment-filter-chips",3,"filterChanged","sortChanged"],["data-testid","bulk-command-surface",1,"bulk-command-surface"],["data-testid","comment-list-wrapper",1,"comment-list-wrapper"],["data-testid","comment-table-container",1,"table-container","mat-elevation-z2",3,"loading-overlay-active"],["data-testid","comment-list","role","list",1,"comment-list",3,"loading-overlay-active"],["paginator-section",""],["data-testid","paginator-section",1,"comment-paginator-container","admin-paginator-container"],["aria-label","Select page of comments","data-testid","paginator",1,"sticky-paginator",3,"page","pageSizeOptions","length","pageSize","pageIndex"],[1,"tab-label"],["svgIcon","format-list-bulleted",1,"tab-icon"],[1,"tab-text"],[1,"tab-count"],["svgIcon","clock-outline",1,"tab-icon"],[1,"tab-count","warning",3,"attention-pulse"],[1,"tab-count","warning"],["svgIcon","check-circle-outline",1,"tab-icon"],["svgIcon","alert-circle-outline",1,"tab-icon"],["svgIcon","delete-outline",1,"tab-icon"],["aria-label","Select all comments on page","data-testid","bulk-select-all-checkbox",1,"master-checkbox",3,"change","checked","indeterminate"],["data-testid","selection-count",1,"selection-count"],["data-testid","bulk-actions",1,"bulk-actions"],["appearance","outline","subscriptSizing","dynamic",1,"action-select"],["data-testid","bulk-action-select",3,"formControl"],["value","approve"],["value","unapprove"],["value","spam"],["value","trash"],["type","button","mat-flat-button","","color","primary","data-testid","apply-bulk-action-button",1,"btn-primary",3,"click","disabled"],["type","button","mat-button","","data-testid","clear-selection-button",1,"btn-ghost",3,"click"],["data-testid","comment-table-container",1,"table-container","mat-elevation-z2"],["data-testid","table-skeleton",1,"table-skeleton"],["mat-table","","matSort","","data-testid","comment-table",3,"dataSource","matSortActive","matSortDirection"],["data-testid","list-footer",1,"list-footer"],["data-testid","comments-empty-state-table",3,"illustration","title","message","secondaryActionText","secondaryActionIcon"],["data-testid","loading-overlay",1,"loading-overlay"],[1,"skeleton-header"],[1,"skeleton-checkbox"],[1,"skeleton-cell","author-cell"],[1,"skeleton-cell","comment-cell"],[1,"skeleton-cell","location-cell"],[1,"skeleton-cell","date-cell"],[1,"skeleton-row"],["mat-table","","matSort","","data-testid","comment-table",3,"matSortChange","dataSource","matSortActive","matSortDirection"],["matColumnDef","select"],["mat-header-cell","","data-testid","select-header-cell",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","author"],["mat-header-cell","","mat-sort-header","","data-testid","author-header-cell",4,"matHeaderCellDef"],["matColumnDef","comment"],["mat-header-cell","","data-testid","comment-header-cell",4,"matHeaderCellDef"],["mat-cell","","class","comment-text-cell","matTooltipPosition","above","matTooltipClass","comment-tooltip",3,"matTooltip",4,"matCellDef"],["matColumnDef","location"],["mat-header-cell","","data-testid","location-header-cell",4,"matHeaderCellDef"],["matColumnDef","date"],["mat-header-cell","","mat-sort-header","","data-testid","date-header-cell",4,"matHeaderCellDef"],["mat-header-row","","data-testid","table-header-row",4,"matHeaderRowDef"],["mat-row","",3,"selected","pending","processing","click",4,"matRowDef","matRowDefColumns"],["mat-header-cell","","data-testid","select-header-cell"],["aria-label","Select all c
1omments","data-testid","master-checkbox",3,"change","checked","indeterminate"],["mat-cell",""],[3,"change","click","checked"],["mat-header-cell","","mat-sort-header","","data-testid","author-header-cell"],["mat-header-cell","","data-testid","comment-header-cell"],["mat-cell","","matTooltipPosition","above","matTooltipClass","comment-tooltip",1,"comment-text-cell",3,"matTooltip"],["mat-header-cell","","data-testid","location-header-cell"],["target","_blank","rel","noopener",3,"click","href"],["mat-header-cell","","mat-sort-header","","data-testid","date-header-cell"],[3,"value"],["mat-header-row","","data-testid","table-header-row"],["mat-row","",3,"click"],["data-testid","comments-empty-state-table",3,"secondaryAction","illustration","title","message","secondaryActionText","secondaryActionIcon"],["mode","query","color","primary","aria-label","Loading comments",1,"loading-bar"],["data-testid","comment-list","role","list",1,"comment-list"],["data-testid","cards-skeleton",1,"cards-skeleton"],["data-testid","comment-cards-container",1,"comment-cards-container"],["data-testid","comments-empty-state",3,"illustration","title","message"],[1,"comment-card-skeleton"],["role","listitem",1,"comment-card",3,"selected","editing","pending","approved","spam","trash","processing"],["role","listitem",1,"comment-card",3,"click"],[1,"comment-content"],[1,"selection-control"],[1,"checkbox",3,"change","click","checked","disabled"],[1,"comment-body"],[1,"comment-text"],[1,"comment-meta"],[1,"meta-item"],["svgIcon","account-circle-outline",1,"meta-icon"],["svgIcon","clock-outline",1,"meta-icon"],["svgIcon","link",1,"meta-icon"],[1,"comment-actions"],["mat-icon-button","","matTooltip","Re
1store Comment","aria-label","Restore comment",1,"action-btn","restore"],["mat-icon-button","","matTooltip","Edit Comment","aria-label","Edit comment",1,"action-btn","edit",3,"click"],["svgIcon","pencil-outline"],["mat-icon-button","","matTooltip","Move to Trash","aria-label","Move comment to trash",1,"action-btn","trash",3,"click"],["svgIcon","delete-outline"],["data-testid","inline-edit-panel",1,"inline-edit-panel"],[1,"processing-indicator"],["mat-icon-button","","matTooltip","Approve","aria-label","Approve comment",1,"action-btn","approve",3,"click"],["svgIcon","check-circle-outline"],["mat-icon-button","","matTooltip","Mark as Spam","aria-label","Mark comment as spam",1,"action-btn","spam",3,"click"],["svgIcon","alert-circle-outline"],["mat-icon-button","","matTooltip","Move to Pending","aria-label","Move to Pending",1,"action-btn",3,"click"],["svgIcon","arrow-u-left-top"],["mat-icon-button","","matTooltip","Restore Comment","aria-label","Restore comment",1,"action-btn","restore",3,"click"],["svgIcon","restore"],["data-testid","inline-edit-panel",1,"inline-edit-panel",3,"click"],[1,"edit-surface"],["aria-label","Edit comment","cdkTextareaAutosize","","cdkAutosizeMinRows","3","cdkAutosizeMaxRows","10","data-testid","inline-edit-textarea",1,"edit-textarea",3,"keydown.escape","keydown.control.enter","keydown.meta.enter","formControl"],[1,"edit-footer"],[1,"edit-hints"],[1,"character-count"],[1,"keyboard-hints"],[1,"edit-actions"],["mat-button","",1,"btn-cancel",3,"click"],["mat-flat-button","","color","primary",1,"btn-save",3,"click","inProgress","disabled"],["mode","indeterminate","aria-label","Processing comment",1,"processing-bar"],["data-testid","comments-empty-state",3,"primaryAction","illustration","title","message"],["svgIcon","lock-outline","data-testid","permission-icon",1,"permission-icon"],["data-testid","no-permission-title"],["data-testid","no-permission-message"],["mat-flat-button","","color","primary","routerLink","/","data-testid","return-dashboard-btn"]],template:function(e,o){e&1&&b(0,Dn,23,7,"ih-admin-base",3)(1,An,8,0,"div",4),e&2&&v(o.canModerate?0:1)},dependencies:[Ot,zt,Ut,Lt,qt,At,Dt,Ft,ye,se,re,ue,Xt,Wt,Jt,$t,It,Zt,Kt,xe,he,oe,ne,ee,Et,de,me,Tt,ve,fe,be,De,Pe,Oe,Ee,Se,ke,Ie,we,Te,$e,Fe,Ne,Ve,Re,ze,ae,ie,jt,Ht,Qt,ge,Me,Q,pe,Ae,Le,kt,ce],styles:['[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}[_nghost-%COMP%] .trend-icon[_ngcontent-%COMP%]{color:var(--success-500)}[_nghost-%COMP%] .view-toggle-group[_ngcontent-%COMP%]{box-shadow:none}.moderation-header[_ngcontent-%COMP%]{position:sticky;top:0;z-index:100;background:var(--mat-sys-surface);box-shadow:var(--shadow-sm);transition:box-shadow var(--mat-sys-motion-duration-short2) ease}.moderation-header.elevated[_ngcontent-%COMP%]{box-shadow:var(--shadow-md)}.app-bar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:24px;height:72px;padding:16px 24px}.module-identity[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px}.module-identity[_ngcontent-%COMP%] .module-icon[_ngcontent-%COMP%]{width:32px;height:32px;color:var(--mat-sys-primary)}.module-identity[_ngcontent-%COMP%] .module-title[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:600;letter-spacing:-.02em;white-space:nowrap}.stats-badge[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--mat-sys-corner-full);background:var(--warning-100);animation:_ngcontent-%COMP%_subtle-pulse 4s ease-in-out infinite}.stats-badge[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;color:var(--warning-600)}.stats-badge[_ngcontent-%COMP%] .stat-label[_ngcontent-%COMP%]{font-size:.875rem;color:var(--mat-sys-on-surface-variant)}ih-filter-chips[_ngcontent-%COMP%]{margin:0 0 16px;background-color:var(--brand-neutral-0, #fff)}.command-zone[_ngcontent-%COMP%]{display:flex;flex:1;align-items:center;justify-content:flex-end;max-width:520px;height:44px}.search-container[_ngcontent-%COMP%], .bulk-command-surface[_ngcontent-%COMP%]{width:100%}.search-container[_ngcontent-%COMP%]{position:relative}.search-container[_ngcontent-%COMP%] .search-icon[_ngcontent-%COMP%]{position:absolute;top:50%;left:14px;pointer-events:none;color:var(--mat-sys-on-surface-variant);transform:translateY(-50%)}.search-container[_ngcontent-%COMP%] .search-field[_ngcontent-%COMP%]{width:100%;height:44px;padding:10px 16px 10px 44px;font-size:.9rem;border:1px solid var(--mat-sys-outline-variant);border-radius:var(--mat-sys-corner-small);background:var(--mat-sys-surface-container-low);transition:all var(--mat-sys-motion-duration-short2) ease}.search-container[_ngcontent-%COMP%] .search-field[_ngcontent-%COMP%]:focus{border-color:var(--mat-sys-primary);outline:none;background:var(--mat-sys-surface);box-shadow:0 0 0 3px var(--focus-ring, rgba(33, 150, 243, .1))}.search-container[_ngcontent-%COMP%] .search-spinner[_ngcontent-%COMP%]{position:absolute;top:50%;right:12px;transform:translateY(-50%)}.bulk-command-surface[_ngcontent-%COMP%]{display:flex;align-items:center;gap:16px;padding:8px 12px;border-radius:var(--mat-sys-corner-small);background:var(--mat-sys-primary-container);transform-origin:top}.bulk-command-surface[_ngcontent-%COMP%] .master-checkbox[_ngcontent-%COMP%]{--mdc-checkbox-selected-icon-color: var(--mat-sys-primary);--mdc-checkbox-selected-hover-state-layer-color: var(--mat-sys-primary);--mdc-checkbox-selected-focus-state-layer-color: var(--mat-sys-primary);--mdc-checkbox-selected-pressed-state-layer-color: var(--mat-sys-primary);--mat-checkbox-selected-ripple-color: var(--mat-sys-primary)}.bulk-command-surface[_ngcontent-%COMP%] .selection-count[_ngcontent-%COMP%]{font-weight:600;white-space:nowrap;color:var(--mat-sys-on-primary-container)}.bulk-command-surface[_ngcontent-%COMP%] .bulk-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;margin-left:auto}.bulk-command-surface[_ngcontent-%COMP%] .action-select[_ngcontent-%COMP%]{width:160px}.bulk-command-surface[_ngcontent-%COMP%] .btn-primary[_ngcontent-%COMP%]{--mdc-button-protected-container-color: var(--mat-sys-primary)}.bulk-command-surface[_ngcontent-%COMP%] .btn-ghost[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant)}.status-tabs[_ngcontent-%COMP%]{position:relative;width:100%;overflow:hidden}.status-tab-group[_ngcontent-%COMP%] .mat-mdc-tab-header{--mat-tab-header-inactive-label-text-color: var(--mat-sys-on-surface-variant);--mat-tab-header-active-label-text-color: var(--mat-sys-primary);--mat-tab-header-active-ripple-color: var(--mat-sys-primary);--mat-tab-header-active-focus-label-text-color: var(--mat-sys-primary)}.status-tab-group[_ngcontent-%COMP%] .mat-mdc-tab{height:52px}.status-tab-group[_ngcontent-%COMP%] .mdc-tab-indicator__content--underline{border-color:var(--mat-sys-primary)!important;border-top-width:3px!important}.tab-label[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;font-size:.875rem;font-weight:500;white-space:nowrap}@media(max-width:1024px){.tab-label[_ngcontent-%COMP%]{gap:5px;font-size:.825rem}}@media(max-width:768px){.tab-label[_ngcontent-%COMP%]{gap:4px;font-size:.8rem}}@media(max-width:600px){.tab-label[_ngcontent-%COMP%]{gap:3px;font-size:.75rem}.tab-label[_ngcontent-%COMP%] .tab-icon[_ngcontent-%COMP%]{display:none}}@media(max-width:480px){.tab-label[_ngcontent-%COMP%]{font-size:.7rem}.tab-label[_ngcontent-%COMP%] .tab-text[_ngcontent-%COMP%]{max-width:40px;overflow:hidden;text-overflow:ellipsis}}@media(max-width:380px){.tab-label[_ngcontent-%COMP%] .tab-text[_ngcontent-%COMP%]{max-width:30px}}.tab-icon[_ngcontent-%COMP%]{flex-shrink:0;width:16px;height:16px}@media(max-width:1024px){.tab-icon[_ngcontent-%COMP%]{width:15px;height:15px}}@media(max-width:768px){.tab-icon[_ngcontent-%COMP%]{width:14px;
1height:14px}}.tab-count[_ngcontent-%COMP%]{flex-shrink:0;min-width:18px;padding:2px 6px;font-size:.7rem;font-weight:600;line-height:1.2;text-align:center;color:var(--mat-sys-on-surface-variant);border-radius:10px;background:var(--mat-sys-surface-container-high);transition:all var(--mat-sys-motion-duration-short2) ease}@media(max-width:1024px){.tab-count[_ngcontent-%COMP%]{min-width:16px;padding:1px 5px;font-size:.675rem}}@media(max-width:768px){.tab-count[_ngcontent-%COMP%]{min-width:14px;padding:1px 4px;font-size:.65rem;border-radius:8px}}@media(max-width:600px){.tab-count[_ngcontent-%COMP%]{min-width:12px;padding:1px 3px;font-size:.6rem}}@media(max-width:480px){.tab-count[_ngcontent-%COMP%]{min-width:10px;padding:0 2px;font-size:.55rem;border-radius:6px}}@media(max-width:380px){.tab-count[_ngcontent-%COMP%]:not(.warning){width:6px;min-width:6px;height:6px;padding:0;font-size:0;border-radius:50%}.tab-count[_ngcontent-%COMP%]:not(.warning):empty{display:none}.tab-count.warning[_ngcontent-%COMP%]{min-width:8px;padding:0 1px;font-size:.5rem}}.tab-count.warning[_ngcontent-%COMP%]{color:#fff;background:var(--warning-500)}.tab-count.warning.attention-pulse[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_attention-pulse 2s ease-in-out infinite}.comment-list-wrapper[_ngcontent-%COMP%]{display:flex;flex:1 1 auto;flex-direction:column;width:100%;max-width:1200px;min-height:0;margin:0 auto}.table-container[_ngcontent-%COMP%], .comment-list[_ngcontent-%COMP%]{position:relative;display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.comment-list[_ngcontent-%COMP%]{padding:0 24px;overflow-y:auto}.comment-cards-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px;padding-bottom:16px}.comment-card[_ngcontent-%COMP%]{position:relative;border-radius:var(--mat-sys-corner-small);background:var(--mat-sys-surface);box-shadow:var(--shadow-md);cursor:pointer;transition:box-shadow var(--mat-sys-motion-duration-short2) ease,background-color var(--mat-sys-motion-duration-short2) ease;animation:_ngcontent-%COMP%_fadeInUp var(--mat-sys-motion-duration-medium2) ease-out backwards}.comment-card[_ngcontent-%COMP%]:nth-child(1){animation-delay:40ms}.comment-card[_ngcontent-%COMP%]:nth-child(2){animation-delay:80ms}.comment-card[_ngcontent-%COMP%]:nth-child(3){animation-delay:.12s}.comment-card[_ngcontent-%COMP%]:nth-child(4){animation-delay:.16s}.comment-card[_ngcontent-%COMP%]:nth-child(5){animation-delay:.2s}.comment-card[_ngcontent-%COMP%]:nth-child(6){animation-delay:.24s}.comment-card[_ngcontent-%COMP%]:nth-child(7){animation-delay:.28s}.comment-card[_ngcontent-%COMP%]:nth-child(8){animation-delay:.32s}.comment-card[_ngcontent-%COMP%]:nth-child(9){animation-delay:.36s}.comment-card[_ngcontent-%COMP%]:nth-child(10){animation-delay:.4s}.comment-card[_ngcontent-%COMP%]:nth-child(11){animation-delay:.44s}.comment-card[_ngcontent-%COMP%]:nth-child(12){animation-delay:.48s}.comment-card[_ngcontent-%COMP%]:nth-child(13){animation-delay:.52s}.comment-card[_ngcontent-%COMP%]:nth-child(14){animation-delay:.56s}.comment-card[_ngcontent-%COMP%]:nth-child(15){animation-delay:.6s}.comment-card[_ngcontent-%COMP%]:nth-child(16){animation-delay:.64s}.comment-card[_ngcontent-%COMP%]:nth-child(17){animation-delay:.68s}.comment-card[_ngcontent-%COMP%]:nth-child(18){animation-delay:.72s}.comment-card[_ngcontent-%COMP%]:nth-child(19){animation-delay:.76s}.comment-card[_ngcontent-%COMP%]:nth-child(20){animation-delay:.8s}.comment-card[_ngcontent-%COMP%]:before{position:absolute;top:0;bottom:0;left:0;width:3px;border-radius:var(--mat-sys-corner-small) 0 0 var(--mat-sys-corner-small);background-color:transparent;content:"";transition:width var(--mat-sys-motion-duration-short2) ease}.comment-card.pending[_ngcontent-%COMP%]:before{background:var(--warning-500)}.comment-card.approved[_ngcontent-%COMP%]:before{background:var(--success-500)}.comment-card.spam[_ngcontent-%COMP%]:before, .comment-card.trash[_ngcontent-%COMP%]:before{background:var(--mat-sys-error)}.comment-card[_ngcontent-%COMP%]:hover:not(.editing){background:color-mix(in srgb,var(--mat-sys-primary) 8%,var(--mat-sys-surface));box-shadow:var(--shadow-lg)}.comment-card[_ngcontent-%COMP%]:hover:not(.editing):before{width:4px}.comment-card[_ngcontent-%COMP%]:hover:not(.editing) .comment-actions[_ngcontent-%COMP%]{opacity:1}.comment-card.selected[_ngcontent-%COMP%]:not(.editing){background:color-mix(in srgb,var(--mat-sys-primary) 12%,var(--mat-sys-surface));box-shadow:var(--shadow-lg)}.comment-card.selected[_ngcontent-%COMP%]:not(.editing):before{width:4px;background-color:var(--mat-sys-primary)}.comment-card.processing[_ngcontent-%COMP%]{pointer-events:none;opacity:.6}.comment-content[_ngcontent-%COMP%]{display:flex;gap:12px;padding:16px 20px;transition:opacity .2s ease}.selection-control[_ngcontent-%COMP%]{flex-shrink:0;padding-top:2px}.selection-control[_ngcontent-%COMP%] .checkbox[_ngcontent-%COMP%]{--mdc-checkbox-selected-icon-color: var(--mat-sys-primary);--mdc-checkbox-unselected-hover-icon-color: var(--mat-sys-primary)}.selection-control[_ngcontent-%COMP%] .checkbox.mat-mdc-checkbox-checked[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_checkbox-pop .3s var(--transition-bounce)}.comment-body[_ngcontent-%COMP%]{flex:1;min-width:0}.comment-text[_ngcontent-%COMP%]{margin:0 0 12px;line-height:1.6;color:var(--mat-sys-on-surface)}.comment-meta[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:12px 24px;padding-top:12px;font-size:.875rem;color:var(--mat-sys-on-surface-variant);border-top:1px solid var(--mat-sys-outline-variant)}.comment-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}
1.comment-meta[_ngcontent-%COMP%] .meta-icon[_ngcontent-%COMP%]{width:18px;height:18px;opacity:.7}.comment-meta[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{text-decoration:none;color:var(--mat-sys-primary)}.comment-meta[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{text-decoration:underline}.comment-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px;margin-left:auto;opacity:0;transition:opacity var(--mat-sys-motion-duration-short2) ease}.comment-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]{--mat-icon-button-icon-size: 20px;color:var(--mat-sys-on-surface-variant)}.comment-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]:hover{color:var(--mat-sys-on-surface);background:var(--overlay-scrim, rgba(0, 0, 0, .04))}.comment-actions[_ngcontent-%COMP%] .action-btn.approve[_ngcontent-%COMP%]:hover{color:var(--success-500)}.comment-actions[_ngcontent-%COMP%] .action-btn.spam[_ngcontent-%COMP%]:hover, .comment-actions[_ngcontent-%COMP%] .action-btn.trash[_ngcontent-%COMP%]:hover{color:var(--mat-sys-error)}.processing-indicator[_ngcontent-%COMP%]{position:absolute;display:grid;background:var(--overlay-scrim, rgba(255, 255, 255, .7));inset:0;place-content:center}.list-footer[_ngcontent-%COMP%]{padding:32px;text-align:center;color:var(--mat-sys-on-surface-variant)}.no-permission[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;padding:24px;text-align:center}.no-permission[_ngcontent-%COMP%] .permission-icon[_ngcontent-%COMP%]{width:64px;height:64px;margin-bottom:16px;font-size:64px}.table-container[_ngcontent-%COMP%]{margin:0 24px 16px;overflow-y:auto;border-radius:var(--mat-sys-corner-medium);background:var(--mat-sys-surface)}.comment-table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse}.comment-table[_ngcontent-%COMP%] .mat-mdc-header-cell[_ngcontent-%COMP%]{padding:12px 16px;font-size:.8rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--mat-sys-on-surface-variant);border-bottom:1px solid var(--mat-sys-outline-variant);background-color:var(--mat-sys-surface-container-low)}.comment-table[_ngcontent-%COMP%] .mat-mdc-header-row[_ngcontent-%COMP%]{position:sticky;top:0;z-index:2}.comment-table[_ngcontent-%COMP%] .mat-mdc-cell[_ngcontent-%COMP%]{padding:12px 16px;font-size:.9rem;vertical-align:top;color:var(--mat-sys-on-surface);border-bottom:1px solid var(--mat-sys-outline-variant)}.comment-table[_ngcontent-%COMP%] .mat-mdc-row[_ngcontent-%COMP%]{min-height:56px;cursor:pointer;transition:background-color var(--mat-sys-motion-duration-short2) ease}.comment-table[_ngcontent-%COMP%] .mat-mdc-row[_ngcontent-%COMP%]:hover{background-color:var(--mat-sys-surface-container-low)}.comment-table[_ngcontent-%COMP%] .mat-mdc-row.selected[_ngcontent-%COMP%]{background-color:var(--mat-sys-surface-container)}.comment-table[_ngcontent-%COMP%] .mat-mdc-row.processing[_ngcontent-%COMP%]{pointer-events:none;opacity:.6}.comment-table[_ngcontent-%COMP%] .comment-text-cell[_ngcontent-%COMP%]{max-width:400px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.comment-table[_ngcontent-%COMP%] .mat-mdc-cell[_ngcontent-%COMP%] .mat-mdc-checkbox[_ngcontent-%COMP%]{padding-top:0;padding-bottom:0}.comment-table[_ngcontent-%COMP%] .mat-sort-header-arrow{color:var(--mat-sys-on-surface-variant)}.loading-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;border-radius:var(--mat-sys-corner-medium);background:color-mix(in srgb,var(--mat-sys-surface) 80%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.loading-overlay[_ngcontent-%COMP%] .loading-bar[_ngcontent-%COMP%]{position:absolute;top:0;right:0;left:0;width:100%;height:4px}.table-container.loading-overlay-active[_ngcontent-%COMP%], .comment-list.loading-overlay-active[_ngcontent-%COMP%]{position:relative}.sr-only[_ngcontent-%COMP%]{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes _ngcontent-%COMP%_subtle-pulse{0%,to{opacity:1}50%{opacity:.8}}@keyframes _ngcontent-%COMP%_attention-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--warning-500) 40%,transparent);transform:scale(1)}50%{transform:scale(1.1)}70%{box-shadow:0 0 0 10px color-mix(in srgb,var(--warning-500) 0%,transparent)}}@keyframes _ngcontent-%COMP%_loading{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes _ngcontent-%COMP%_fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes _ngcontent-%COMP%_checkbox-pop{0%{transform:scale(1)}50%{transform:scale(1.25)}to{transform:scale(1)}}.comment-card.editing[_ngcontent-%COMP%]{background:var(--mat-sys-surface);box-shadow:var(--shadow-lg);cursor:default}.comment-card.editing[_ngcontent-%COMP%]:before{width:4px;background:var(--mat-sys-primary)!important}.comment-card.editing[_ngcontent-%COMP%] .comment-actions[_ngcontent-%COMP%]{pointer-events:none;opacity:0}
1.inline-edit-panel[_ngcontent-%COMP%]{position:relative;overflow:hidden;border-top:1px solid var(--mat-sys-outline-variant);background:var(--mat-sys-surface-container-low)}.edit-surface[_ngcontent-%COMP%]{padding:20px}@media(max-width:600px){.edit-surface[_ngcontent-%COMP%]{padding:16px}}.edit-textarea[_ngcontent-%COMP%]{width:100%;box-sizing:border-box;padding:14px 16px;font-family:inherit;font-size:.95rem;line-height:1.6;border:1px solid var(--mat-sys-outline-variant);border-radius:var(--mat-sys-corner-small);background:var(--mat-sys-surface);box-shadow:inset 0 1px 2px #0000000a,0 0 0 0 transparent;resize:vertical;transition:border-color var(--mat-sys-motion-duration-short2) ease,background var(--mat-sys-motion-duration-short2) ease,box-shadow var(--mat-sys-motion-duration-short2) ease;appearance:none}.edit-textarea[_ngcontent-%COMP%]:hover:not(:focus){border-color:var(--mat-sys-outline)}.edit-textarea[_ngcontent-%COMP%]:focus{border-color:var(--mat-sys-primary);outline:none;background:var(--mat-sys-surface);box-shadow:inset 0 1px 2px #0000000a,0 0 0 3px var(--focus-ring, rgba(var(--primary-rgb), .12))}.edit-textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:8px}.edit-textarea[_ngcontent-%COMP%]::-webkit-scrollbar-track{background:transparent}.edit-textarea[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{border-radius:4px;background:var(--scrollbar-thumb, rgba(0, 0, 0, .2))}.edit-textarea[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover, rgba(0, 0, 0, .3))}.edit-footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px}@media(max-width:600px){.edit-footer[_ngcontent-%COMP%]{flex-direction:column;align-items:stretch;gap:12px}}.edit-hints[_ngcontent-%COMP%]{display:flex;align-items:center;gap:16px;font-size:.8rem;color:var(--mat-sys-on-surface-variant)}@media(max-width:600px){.edit-hints[_ngcontent-%COMP%]{justify-content:space-between}}.character-count[_ngcontent-%COMP%]{transition:color var(--mat-sys-motion-duration-short2) ease}.character-count.warning[_ngcontent-%COMP%]{font-weight:500;color:var(--warning-600)}.keyboard-hints[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px;opacity:.7}@media(max-width:768px){.keyboard-hints[_ngcontent-%COMP%]{display:none}}.keyboard-hints[_ngcontent-%COMP%] kbd[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:.7rem;border:1px solid var(--mat-sys-outline-variant);border-bottom-width:2px;border-radius:4px;background:var(--mat-sys-surface);box-shadow:inset 0 -1px #0000001a,0 1px 2px #0000000d}.edit-actions[_ngcontent-%COMP%]{display:flex;gap:8px}@media(max-width:600px){.edit-actions[_ngcontent-%COMP%]{justify-content:flex-end}}.btn-cancel[_ngcontent-%COMP%]{--mdc-text-button-label-text-color: var(--mat-sys-on-surface-variant)}.btn-cancel[_ngcontent-%COMP%]:hover{--mdc-text-button-label-text-color: var(--mat-sys-on-surface);background:#0000000a}.btn-save[_ngcontent-%COMP%]{min-width:90px}.btn-save[_ngcontent-%COMP%] .inline-spinner[_ngcontent-%COMP%]{margin-right:8px}.action-btn.edit[_ngcontent-%COMP%]:hover{color:var(--mat-sys-primary);background:rgba(var(--primary-rgb),.08)}@keyframes _ngcontent-%COMP%_shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-base[_ngcontent-%COMP%], .comment-card-skeleton[_ngcontent-%COMP%], .table-skeleton[_ngcontent-%COMP%] .skeleton-header[_ngcontent-%COMP%] .skeleton-cell[_ngcontent-%COMP%], .table-skeleton[_ngcontent-%COMP%] .skeleton-row[_ngcontent-%COMP%] .skeleton-cell[_ngcontent-%COMP%], .table-skeleton[_ngcontent-%COMP%] .skeleton-header[_ngcontent-%COMP%] .skeleton-checkbox[_ngcontent-%COMP%], .table-skeleton[_ngcontent-%COMP%] .skeleton-row[_ngcontent-%COMP%] .skeleton-checkbox[_ngcontent-%COMP%]{background:linear-gradient(90deg,var(--mat-sys-surface-container-low) 25%,var(--mat-sys-surface-container) 50%,var(--mat-sys-surface-container-low) 75%);background-size:200% 100%;animation:_ngcontent-%COMP%_shimmer 1.5s infinite;border-radius:4px}.table-skeleton[_ngcontent-%COMP%] .skeleton-header[_ngcontent-%COMP%], .table-skeleton[_ngcontent-%COMP%] .skeleton-row[_ngcontent-%COMP%]{display:flex;align-items:center;padding:16px 24px;border-bottom:1px solid var(--mat-sys-outline-variant)}.table-skeleton[_ngcontent-%COMP%] .skeleton-header[_ngcontent-%COMP%] .skeleton-checkbox[_ngcontent-%COMP%], .table-skeleton[_ngcontent-%COMP%] .skeleton-row[_ngcontent-%COMP%] .skeleton-checkbox[_ngcontent-%COMP%]{width:20px;height:20px;border-radius:3px;margin-right:16px}.table-skeleton[_ngcontent-%COMP%] .skeleton-header[_ngcontent-%COMP%] .skeleton-cell[_ngcontent-%COMP%], .table-skeleton[_ngcontent-%COMP%] .skeleton-row[_ngcontent-%COMP%] .skeleton-cell[_ngcontent-%COMP%]{height:20px;margin-right:24px}.table-skeleton[_ngcontent-%COMP%] .skeleton-header[_ngcontent-%COMP%] .skeleton-cell.author-cell[_ngcontent-%COMP%], .table-skeleton[_ngcontent-%COMP%] .skeleton-row[_ngcontent-%COMP%] .skeleton-cell.author-cell[_ngcontent-%COMP%]{width:120px}.table-skeleton[_ngcontent-%COMP%] .skeleton-header[_ngcontent-%COMP%] .skeleton-cell.comment-cell[_ngcontent-%COMP%], .table-skeleton[_ngcontent-%COMP%] .skeleton-row[_ngcontent-%COMP%] .skeleton-cell.comment-cell[_ngcontent-%COMP%]{width:300px;flex:1}.table-skeleton[_ngcontent-%COMP%] .skeleton-header[_ngcontent-%COMP%] .skeleton-cell.location-cell[_ngcontent-%COMP%], .table-skeleton[_ngcontent-%COMP%] .skeleton-row[_ngcontent-%COMP%] .skeleton-cell.location-cell[_ngcontent-%COMP%]{width:150px}.table-skeleton[_ngcontent-%COMP%] .skeleton-header[_ngcontent-%COMP%] .skeleton-cell.date-cell[_ngcontent-%COMP%], .table-skeleton[_ngcontent-%COMP%] .skeleton-row[_ngcontent-%COMP%] .skeleton-cell.date-cell[_ngcontent-%COMP%]{width:100px}.table-skeleton[_ngcontent-%COMP%] .skeleton-header[_ngcontent-%COMP%]{background-color:var(--mat-sys-surface-container);font-weight:600}.cards-skeleton[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr;gap:16px;padding:24px}@media(min-width:1200px){.cards-skeleton[_ngcontent-%COMP%]{grid-template-columns:repeat(auto-fill,minmax(400px,1fr));padding:32px}}.comment-card-skeleton[_ngcontent-%COMP%]{background:var(--mat-sys-surface);border-radius:var(--mat-sys-corner-medium);padding:24px;height:180px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.comment-card-skeleton[_ngcontent-%COMP%]:before{content:"";position:absolute;top:24px;left:24px;right:24px;height:20px;background:linear-gradient(90deg,var(--mat-sys-surface-container-low) 25%,var(--mat-sys-surface-container) 50%,var(--mat-sys-surface-container-low) 75%);background-size:200% 100%;animation:_ngcontent-%COMP%_shimmer 1.5s infinite;border-radius:4px}.comment-card-skeleton[_ngcontent-%COMP%]:after{content:"";position:absolute;bottom:24px;left:24px;width:60%;height:16px;background:linear-gradient(90deg,var(--mat-sys-surface-container-low) 25%,var(--mat-sys-surface-container) 50%,var(--mat-sys-surface-container-low) 75%);background-size:200% 100%;animation:_ngcontent-%COMP%_shimmer 1.5s infinite .2s;border-radius:4px}@media(prefers-reduced-motion:reduce){.comment-card[_ngcontent-%COMP%], .inline-edit-panel[_ngcontent-%COMP%], .edit-textarea[_ngcontent-%COMP%], .action-btn[_ngcontent-%COMP%]{transition-duration:.01ms!important;animation-duration:.01ms!important}.skeleton-base[_ngcontent-%COMP%], .table-skeleton[_ngcontent-%COMP%] .skeleton-header[_ngcontent-%COMP%] .skeleton-checkbox[_ngcontent-%COMP%], .table-skeleton[_ngcontent-%COMP%] .skeleton-row[_ngcontent-%COMP%] .skeleton-checkbox[_ngcontent-%COMP%], .table-skeleton[_ngcontent-%COMP%] .skeleton-header[_ngcontent-%COMP%] .skeleton-cell[_ngcontent-%COMP%], .table-skeleton[_ngcontent-%COMP%] .skeleton-row[_ngcontent-%COMP%] .skeleton-cell[_ngcontent-%COMP%], .comment-card-skeleton[_ngcontent-%COMP%], .comment-card-skeleton[_ngcontent-%COMP%]:before, .comment-card-skeleton[_ngcontent-%COMP%]:after{animation:none!important}}'],changeDetection:0})}return n})();export{q as CHANNEL_FILTER_ID,tt as CONTENT_TYPE_FILTER_ID,Le as CommentFilterChipsDirective,Be as CommentListService,Ci as CommentModerationComponent,lt as CommentModerationStateService,w as CommentState,et as DATE_RANGE_FILTER_ID,Z as SEARCH_FILTER_ID,G as STATUS_FILTER_ID}; 2/**i18n:c9e569e2ecdb3e0de183c72d8315eadfdcb9da9e09d5ac2d9fef9056c1853e21*/
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.