1import{a as H}from"./chunk-MLVLOVIL.js";import"./chunk-DG6VDOKI.js";import{a as W}from"./chunk-Q7ZBFT2N.js";import{b as z,d as N,g as V,o as B,p as q,q as j,x as Y}from"./chunk-SHVV5AKT.js";import"./chunk-XJHXCWH6.js";import{p as A}from"./chunk-U2AQDPPE.js";import{i as I,j as E,k as D,s as F,v as R}from"./chunk-3XAFC6JP.js";import{Bb as m,Db as u,Kb as b,Mb as o,Na as r,Nb as d,Ob as C,Pb as O,Sb as h,Tb as f,Ub as _,Y as y,Ya as x,Z as P,bb as S,cc as T,ec as w,gb as g,ob as p,oc as L,pb as a,qb as i,rb as v,yb as M}from"./chunk-XLTCFI2Y.js";import{a as k}from"./chunk-DAQOROHW.js";function U(l,n){if(l&1&&(a(0,"option",32),o(1),i()),l&2){let e=n.$implicit;p("value",e.value),r(),d(e.label)}}function J(l,n){if(l&1&&(a(0,"tr")(1,"td"),o(2),i(),a(3,"td"),o(4),i(),a(5,"td"),o(6),i(),a(7,"td"),o(8),i(),a(9,"td"),o(10),i()()),l&2){let e=n.$implicit;r(2),d(e.channel),r(2),d(e.shown),r(2),d(e.clicked),r(2),d(e.addedToCart),r(2),d(e.ordered)}}function K(l,n){if(l&1&&(a(0,"div",33)(1,"h2"),o(2,"By channel"),i(),a(3,"table",34)(4,"thead")(5,"tr")(6,"th"),o(7,"Channel"),i(),a(8,"th"),o(9,"Shown"),i(),a(10,"th"),o(11,"Clicked"),i(),a(12,"th"),o(13,"Added"),i(),a(14,"th"),o(15,"Ordered"),i()()(),a(16,"tbody"),g(17,J,11,5,"tr",28),i()()()),l&2){let e=u();r(17),p("ngForOf",e.channelRows)}}function Q(l,n){if(l&1&&(a(0,"option",32),o(1),i()),l&2){let e=n.$implicit;p("value",e._id),r(),d(e.name)}}function X(l,n){if(l&1&&(a(0,"option",32),o(1),i()),l&2){let e=n.$implicit;p("value",e.value),r(),d(e.label)}}function Z(l,n){if(l&1&&(a(0,"option",32),o(1),i()),l&2){let e=n.$implicit;p("value",e.value),r(),d(e.label)}}function $(l,n){if(l&1&&(a(0,"div",35),o(1),i()),l&2){let e=u();r(),d(e.errorMsg)}}function ee(l,n){if(l&1&&(a(0,"tr")(1,"td"),o(2),T(3,"date"),i(),a(4,"td"),o(5),i(),a(6,"td")(7,"span",36),o(8),i()(),a(9,"td"),o(10),i(),a(11,"td"),o(12),i(),a(13,"td"),o(14),i(),a(15,"td"),o(16),i()()),l&2){let e=n.$implicit,t=u();r(2),d(w(3,8,e.createdAt,"dd MMM, HH:mm")),r(3),d(t.restaurantNameFor(e)),r(2),p("ngClass","act-"+e.action),r(),d(t.actionLabel(e.action)),r(2),d(t.userLabelFor(e)),r(2),d(e.menuItemName||"\u2014"),r(2),d(t.channelLabelFor(e)),r(2),d(t.orderRefFor(e))}}function te(l,n){if(l&1&&(a(0,"div",37),o(1),i()),l&2){let e=u();r(),C(" No ",e.sectionLabel," activity for the selected filters. ")}}function ne(l,n){l&1&&(a(0,"div",38),v(1,"i",39),o(2," Loading\u2026 "),i())}function ie(l,n){if(l&1){let e=M();a(0,"button",24),m("click",function(){let s=y(e).$implicit,c=u(2);return P(c.goToPage(s))}),o(1),i()}if(l&2){let e=n.$implicit,t=u(2);b("active",e===t.page),r(),d(e)}}function ae(l,n){if(l&1){let e=M();a(0,"div",40)(1,"button",41),m("click",function(){y(e);let s=u();return P(s.goToPage(s.page-1))}),v(2,"i",42),i(),g(3,ie,2,3,"button",43),a(4,"button",41),m("click",function(){y(e);let s=u();return P(s.goToPage(s.page+1))}),v(5,"i",44),i()()}if(l&2){let e=u();r(),p("disabled",e.page<=1),r(2),p("ngForOf",e.pageWindow),r(),p("disabled",e.page>=e.totalPages)}}var G=class l{constructor(n,e,t){this.cdr=n;this.restaurantService=e;this.recommendationService=t}loading=!1;errorMsg="";selectedSource="top_pick";sourceOptions=[{value:"top_pick",label:"ORVO Picks"},{value:"must_try",label:"Must Try"},{value:"popular_near_you",label:"Popular Near You"},{value:"ordered_together",label:"Ordered Together"}];selectedRestaurantId="";restaurants=[];restaurantsLoading=!1;action="";channel="";search="";fromDate="";toDate="";activePreset=null;page=1;limit=50;total=0;totalPages=1;items=[];summary={shown:0,clicked:0,addedToCart:0,ordered:0,itemsOrdered:0,uniqueShown:0,uniqueAdded:0,uniqueOrdered:0,conversionPct:0,byChannel:{}};get sectionLabel(){return this.sourceOptions.find(n=>n.value===this.selectedSource)?.label||"Recommendation"}actionOptions=[{value:"",label:"All activity"},{value:"view",label:"Shown"},{value:"click",label:"Clicked"},{value:"add_to_cart",label:"Added to cart"},{value:"order",label:"Ordered"}];channelOptions=[{value:"",label:"All channels"},{value:"takeaway",label:"Takeaway"},{value:"delivery",label:"Delivery"}];ngOnInit(){this.loadRestaurants(),this.setToday(!0),this.loadLogs()}loadRestaurants(){this.restaurantsLoading=!0,this.cdr.detectChanges(),this.restaurantService.getAllRestaurants().subscribe({next:n=>{let e=Array.isArray(n)?n:Array.isArray(n?.data?.restaurants)?n.data.restaurants:Array.isArray(n?.restaurants)?n.restaurants:Array.isArray(n?.data)?n.data:[];this.restaurants=e.map(t=>({_id:String(t._id),name:t.name||"(unnamed)"})).sort((t,s)=>t.name.localeCompare(s.name)),this.restaurantsLoading=!1,this.cdr.detectChanges()},error:()=>{this.restaurants=[],this.restaurantsLoading=!1,this.cdr.detectChanges()}})}restaurantNameFor(n){return n.restaurant&&typeof n.restaurant=="object"&&n.restaurant.name||"\u2014"}userLabelFor(n){return n.customer&&typeof n.customer=="object"?n.customer.name||n.customer.email||"Customer":n.sessionId?`Guest (${n.sessionId.slice(0,8)})`:"Guest"}actionLabel(n){return this.actionOptions.find(e=>e.value===n)?.label||n}channelLabelFor(n){let e=n.metadata?.orderChannel;return e==="takeaway"?"Takeaway":e==="delivery"?"Delivery":"\u2014"}orderRefFor(n){let e=n.metadata?.orderId;return e?`#${String(e).slice(-6)}`:"\u2014"}get channelRows(){let n=this.summary.byChannel||{};return Object.keys(n).map(e=>k({channel:e==="takeaway"?"Takeaway":e==="delivery"?"Delivery":"Unknown"},n[e]))}loadLogs(){this.loading=!0,this.errorMsg="",this.cdr.detectChanges();let n={page:this.page,limit:this.limit,source:this.selectedSource};if(this.action&&(n.action=this.action),this.channel&&(n.channel=this.channel),this.search&&(n.search=this.search),this.selectedRestaurantId&&(n.restaurantId=this.selectedRestaurantId),this.fromDate&&(n.from=new Date(this.fromDate).toISOString()),this.toDate){let e=new Date(this.toDate);
1e.setHours(23,59,59,999),n.to=e.toISOString()}this.recommendationService.getTopPickLogs(n).subscribe({next:e=>{e?.success?(this.items=e.data.items||[],this.page=e.data.pagination.page,this.totalPages=e.data.pagination.totalPages,this.total=e.data.pagination.total,this.summary=e.data.summary||this.summary):this.errorMsg="Failed to load Top Picks logs",this.loading=!1,this.cdr.detectChanges()},error:e=>{this.loading=!1,this.errorMsg=e?.error?.message||"Failed to load Top Picks logs",this.cdr.detectChanges()}})}applyFilters(){this.page=1,this.loadLogs()}onSourceChange(){this.page=1,this.loadLogs()}clearFilters(){this.selectedRestaurantId="",this.action="",this.channel="",this.search="",this.page=1,this.setToday()}setToday(n=!1){let e=this.formatDateForInput(new Date);this.fromDate=e,this.toDate=e,this.activePreset="today",this.page=1,n||this.loadLogs()}setYesterday(){let n=new Date;n.setDate(n.getDate()-1);let e=this.formatDateForInput(n);this.fromDate=e,this.toDate=e,this.activePreset="yesterday",this.page=1,this.loadLogs()}setLast7Days(){let n=new Date,e=new Date;e.setDate(n.getDate()-6),this.fromDate=this.formatDateForInput(e),this.toDate=this.formatDateForInput(n),this.activePreset="last7",this.page=1,this.loadLogs()}setThisMonth(){let n=new Date,e=new Date(n.getFullYear(),n.getMonth(),1);this.fromDate=this.formatDateForInput(e),this.toDate=this.formatDateForInput(n),this.activePreset="thisMonth",this.page=1,this.loadLogs()}setLastMonth(){let n=new Date,e=new Date(n.getFullYear(),n.getMonth(),1),t=new Date(e);t.setDate(t.getDate()-1);let s=new Date(t.getFullYear(),t.getMonth(),1);this.fromDate=this.formatDateForInput(s),this.toDate=this.formatDateForInput(t),this.activePreset="lastMonth",this.page=1,this.loadLogs()}onDateInputChange(){this.activePreset=this.fromDate||this.toDate?"custom":null,this.page=1,this.loadLogs()}formatDateForInput(n){let e=n.getFullYear(),t=String(n.getMonth()+1).padStart(2,"0"),s=String(n.getDate()).padStart(2,"0");return`${e}-${t}-${s}`}goToPage(n){n<1||n>this.totalPages||n===this.page||(this.page=n,this.loadLogs())}get pageWindow(){let e=Math.max(1,this.page-Math.floor(2.5)),t=Math.min(this.totalPages,e+5-1);e=Math.max(1,t-5+1);let s=[];for(let c=e;c<=t;c++)s.push(c);return s}static \u0275fac=function(e){return new(e||l)(x(L),x(W),x(H))};static \u0275cmp=S({type:l,selectors:[["app-top-pick-logs"]],decls:116,vars:39,consts:[[1,"tpl-page"],[1,"tpl-header"],[1,"tpl-header-text"],[1,"bi","bi-star-fill"],[1,"tpl-header-actions"],[1,"tpl-section-select",3,"ngModelChange","change","ngModel"],[3,"value",4,"ngFor","ngForOf"],[1,"tpl-refresh",3,"click","disabled"],[1,"bi","bi-arrow-clockwise"],[1,"tpl-summary"],[1,"tpl-card"],[1,"tpl-card-label"],[1,"tpl-card-value"],[1,"tpl-card-sub"],[1,"tpl-card","tpl-card-accent"],["class","tpl-channels",4,"ngIf"],[1,"tpl-filters"],[1,"tpl-filter"],[3,"ngModelChange","change","ngModel"],["value",""],[1,"tpl-filter","tpl-filter-grow"],["type","text","placeholder","Item name\u2026",3,"ngModelChange","keyup.enter","ngModel"],["type","date",3,"ngModelChange","change","ngModel"],[1,"tpl-presets"],[3,"click"],["class","tpl-error",4,"ngIf"],[1,"tpl-table-wrap"],[1,"tpl-table"],[4,"ngFor","ngForOf"],["class","tpl-empty",4,"ngIf"],["class","tpl-loading",4,"ngIf"],["class","tpl-pagination",4,"ngIf"],[3,"value"],[1,"tpl-channels"],[1,"tpl-channel-table"],[1,"tpl-error"],[1,"tpl-badge",3,"ngClass"],[1,"tpl-empty"],[1,"tpl-loading"],[1,"bi","bi-arrow-repeat","spin"],[1,"tpl-pagination"],[3,"click","disabled"],[1,"bi","bi-chevron-left"],[3,"active","click",4,"ngFor","ngForOf"],[1,"bi","bi-chevron-right"]],template:function(e,t){e&1&&(a(0,"div",0)(1,"div",1)(2,"div",2)(3,"h1"),v(4,"i",3),o(5),i(),a(6,"p"),o(7),i()(),a(8,"div",4)(9,"select",5),_("ngModelChange",function(c){return f(t.selectedSource,c)||(t.selectedSource=c),c}),m("change",function(){return t.onSourceChange()}),g(10,U,2,2,"option",6),i(),a(11,"button",7),m("click",function(){return t.loadLogs()}),v(12,"i",8),o(13," Refresh "),i()()(),a(14,"div",9)(15,"div",10)(16,"span",11),o(17,"Shown"),i(),a(18,"span",12),o(19),i(),a(20,"span",13),o(21),i()(),a(22,"div",10)(23,"span",11),o(24,"Clicked"),i(),a(25,"span",12),o(26),i()(),a(27,"div",10)(28,"span",11),o(29,"Added to cart"),i(),a(30,"span",12),o(31),i(),a(32,"span",13),o(33),i()(),a(34,"div",10)(35,"span",11),o(36,"Ordered"),i(),a(37,"span",12),o(38),i(),a(39,"span",13),o(40),i()(),a(41,"div",14)(42,"span",11),o(43,"Conversion"),i(),a(44,"span",12),o(45),i(),a(46,"span",13),o(47,"orders \xF7 shown"),i()()(),g(48,K,18,1,"div",15),a(49,"div",16)(50,"div",17)(51,"label"),o(52,"Restaurant"),i(),a(53,"select",18),_("ngModelChange",function(c){return f(t.selectedRestaurantId,c)||(t.selectedRestaurantId=c),c}),m("change",function(){return t.applyFilters()}),a(54,"option",19),o(55,"All restaurants"),i(),g(56,Q,2,2,"option",6),i()(),a(57,"div",17)(58,"label"),o(59,"Activity"),i(),a(60,"select",18),_("ngModelChange",function(c){return f(t.action,c)||(t.action=c),c}),m("change",function(){return t.applyFilters()}),g(61,X,2,2,"option",6),i()(),a(62,"div",17)(63,"label"),o(64,"Channel"),i(),a(65,"select",18),_("ngModelChange",function(c){return f(t.channel,c)||(t.channel=c),c}),m("change",function(){return t.applyFilters()}),g(66,Z,2,2,"option",6),i()(),a(67,"div",20)(68,"label"),o(69,"Search item"),i(),a(70,"input",21),_("ngModelChange",function(c){return f(t.search,c)||(t.search=c),c}),m("keyup.enter",function(){return t.applyFilters()}),i()(),a(71,"div",17)(72,"label"),o(73,"From"),i(),a(74,"input",22),_("ngModelChange",function(c){return f(t.fromDate,c)||(t.fromDate=c),c}),m("change",function(){return t.onDateInputChange()}),i()(),a(75,"div",17)(76,"label"),o(77,"To"),i(),a(78,"input",22),_("ngModelChange",function(c){return f(t.toDate,c)||(t.toDate=c),c}),m("change",function(){return t.onDateInputChange()}),i()()(),a(79,"div",23)(80,"button",24),m("click",function(){return t.setToday()}),o(81,"Today"),i(),a(82,"button",24),m("click",function(){return t.setYesterday()}),o(83,"Yesterday"),i(),a(84,"button",24),m("click",function(){return t.setLast7Days()}),o(85,"Last 7 days"),i(),a(86,"button",24),m("click",function(){return t.setThisMonth()}),o(87,"This month"),i(),a(88,"button",24),m("click",function(){return t.setLastMonth()}),o(89,"Last month"),i(),a(90,"button",24),m("click",function(){return t.clearFilters()}),o(91,"Clear"),i()(),g(92,$,2,1,"div",25),a(93,"div",26)(94,"table",27)(95,"thead")(96,"tr")(97,"th"),o(98,"When"),i(),a(99,"th"),o(100,"Restaurant"),i(),a(101,"th"),o(102,"Activity"),i(),a(103,"th"),o(104,"User"),i(),a(105,"th"),o(106,"Item"),i(),a(107,"th"),o(108,"Channel"),i(),a(109,"th"),o(110,"Order"),i()()(),a(111,"tbody"),g(112,ee,17,11,"tr",28),i()(),g(113,te,2,1,"div",29)(114,ne,3,0,"div",30),i(),g(115,ae,6,3,"div",31),i()),e&2&&(r(5),C(" ",t.sectionLabel," Logs"),r(2),C("Who was shown ",t.sectionLabel,", who clicked & added items, and who ordered from it \u2014 by channel."),r(2),h("ngModel",t.selectedSource),r(),p("ngForOf",t.sourceOptions),r(),p("disabled",t.loading),r(8),d(t.summary.shown),r(2),C("",t.summary.uniqueShown," users"),r(5),d(t.summary.clicked),r(5),d(t.summary.addedToCart),r(2),C("",t.summary.uniqueAdded," users"),r(5),d(t.summary.ordered),r(2),O("",t.summary.itemsOrdered," items \xB7 ",t.summary.uniqueOrdered," customers"),r(5),C("",t.summary.conversionPct,"%"),r(3),p("ngIf",t.channelRows.length),r(5),h("ngModel",t.selectedRestaurantId),r(3),p("ngForOf",t.restaurants),r(4),h("ngModel",t.action),r(),p("ngForOf",t.actionOptions),r(4),h("ngModel",t.channel),r(),p("ngForOf",t.channelOptions),r(4),h("ngModel",t.search),r(4),h("ngModel",t.fromDate),r(4),h("ngModel",t.toDate),r(2),b("active",t.activePreset==="today"),r(2),b("active",t.activePreset==="yesterday"),r(2),b("active",t.activePreset==="last7"),r(2),b("active",t.activePreset==="thisMonth"),r(2),b("active",t.activePreset==="lastMonth"),r(4),p("ngIf",t.errorMsg),r(20),p("ngForOf",t.items),r(),p("ngIf",!t.loading&&t.items.length===0),r(),p("ngIf",t.loading),r(),p("ngIf",t.totalPages>1))},dependencies:[R,I,E,D,Y,q,j,z,B,N,V,A,F],styles:[".tpl-page[_ngcontent-%COMP%]{margin:0 auto;color:#1f2937}.tpl-header[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.tpl-header[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{font-size:24px;font-weight:700;margin:0 0 4px;display:flex;align-items:center;gap:8px}.tpl-header[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{color:#6366f1}.tpl-header[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;color:#6b7280;font-size:14px}.tpl-refresh[_ngcontent-%COMP%]{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;background:#6366f1;color:#fff;border:none;border-radius:8px;padding:9px 14px;font-weight:600;cursor:pointer}.tpl-refresh[_ngcontent-%COMP%]:disabled{opacity:.6;cursor:default}.tpl-header-actions[_ngcontent-%COMP%]{flex-shrink:0;display:inline-flex;align-items:center;gap:10px}.tpl-section-select[_ngcontent-%COMP%]{padding:9px 12px;border:1px solid #d1d5db;border-radius:8px;font-weight:600;font-size:14px;color:#111827;background:#fff;cursor:pointer}.tpl-summary[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:20px}.tpl-card[_ngcontent-%COMP%]{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:2px}
1.tpl-card-accent[_ngcontent-%COMP%]{border-color:#c7d2fe;background:#eef2ff}.tpl-card-label[_ngcontent-%COMP%]{font-size:12px;color:#6b7280;text-transform:uppercase;letter-spacing:.03em}.tpl-card-value[_ngcontent-%COMP%]{font-size:26px;font-weight:800;color:#111827}.tpl-card-sub[_ngcontent-%COMP%]{font-size:12px;color:#9ca3af}.tpl-channels[_ngcontent-%COMP%]{margin-bottom:22px}.tpl-channels[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{font-size:16px;font-weight:700;margin:0 0 8px}.tpl-channel-table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.tpl-channel-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .tpl-channel-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:9px 14px;text-align:left;font-size:14px;border-bottom:1px solid #f3f4f6}.tpl-channel-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{background:#f9fafb;font-weight:600;color:#4b5563}.tpl-channel-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%]{border-bottom:none}.tpl-filters[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px}.tpl-filter[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px;min-width:150px}.tpl-filter-grow[_ngcontent-%COMP%]{flex:1;
1min-width:200px}.tpl-filter[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{font-size:12px;color:#6b7280;font-weight:600}.tpl-filter[_ngcontent-%COMP%] select[_ngcontent-%COMP%], .tpl-filter[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{border:1px solid #d1d5db;border-radius:8px;padding:8px 10px;font-size:14px;background:#fff}.tpl-presets[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.tpl-presets[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{border:1px solid #d1d5db;background:#fff;border-radius:999px;padding:6px 14px;font-size:13px;cursor:pointer;color:#4b5563}.tpl-presets[_ngcontent-%COMP%] button.active[_ngcontent-%COMP%]{background:#6366f1;border-color:#6366f1;color:#fff}.tpl-error[_ngcontent-%COMP%]{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:8px;padding:10px 14px;margin-bottom:14px;font-size:14px}.tpl-table-wrap[_ngcontent-%COMP%]{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow-x:auto}.tpl-table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse}.tpl-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .tpl-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:11px 14px;text-align:left;font-size:14px;border-bottom:1px solid #f3f4f6;white-space:nowrap}.tpl-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{background:#f9fafb;font-weight:600;color:#4b5563;position:sticky;top:0}.tpl-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover{background:#fafafa}.tpl-badge[_ngcontent-%COMP%]{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}.act-view[_ngcontent-%COMP%]{background:#f3f4f6;color:#4b5563}.act-click[_ngcontent-%COMP%]{background:#e0f2fe;color:#0369a1}.act-add_to_cart[_ngcontent-%COMP%]{background:#fef3c7;color:#b45309}.act-order[_ngcontent-%COMP%]{background:#dcfce7;color:#15803d}.tpl-empty[_ngcontent-%COMP%], .tpl-loading[_ngcontent-%COMP%]{padding:32px 16px;text-align:center;color:#9ca3af;font-size:14px}.spin[_ngcontent-%COMP%]{display:inline-block;animation:_ngcontent-%COMP%_tpl-spin 1s linear infinite}@keyframes _ngcontent-%COMP%_tpl-spin{to{transform:rotate(360deg)}}.tpl-pagination[_ngcontent-%COMP%]{display:flex;gap:6px;justify-content:center;margin-top:16px}.tpl-pagination[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{min-width:36px;height:36px;border:1px solid #d1d5db;background:#fff;border-radius:8px;cursor:pointer;color:#4b5563}.tpl-pagination[_ngcontent-%COMP%] button.active[_ngcontent-%COMP%]{background:#6366f1;border-color:#6366f1;color:#fff}.tpl-pagination[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:default}"]})};export{G as TopPickLogsComponent};
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.