PageSourceSearch

https://ad-intelligence-59ba7.web.app/chunk-5J5OTXOL.js

js ad-intelligence-59ba7.web.app collected 2026-10-03 12:16:19 UTC 100,020 bytes, 2 lines download raw bytes

1import{a as Ye}from"./chunk-GISDS3D7.js";import"./chunk-HPH5YAIL.js";import{a as Qe}from"./chunk-RTNUKTP3.js";import{a as Xe,b as Ue,c as je}from"./chunk-3FBYWICL.js";import"./chunk-5GTYKF4G.js";import{a as He}from"./chunk-FSTGQY3M.js";import{a as $e}from"./chunk-ABEOKCRC.js";import"./chunk-G3FXFTBU.js";import"./chunk-RKR3PV64.js";import"./chunk-5GBSNZOW.js";import"./chunk-7VPF77TY.js";import"./chunk-7MQTEMAJ.js";import"./chunk-HTCLQCOU.js";import"./chunk-YWMD53KQ.js";import{f as Oe}from"./chunk-A6AWQOXQ.js";import{A as Be,C as qe,c as De,h as Ie,l as Ve,n as Ne,t as Ge,u as We,v as Fe,w as Ke,x as Le}from"./chunk-PJ5GV7IK.js";import{g as Me,l as ke,q as ze,t as Ee,u as Pe,x as Re}from"./chunk-EDUSMAQY.js";import{Ab as C,B as v,Bb as P,Cb as ve,E as xe,Eb as Te,Jb as Se,K as fe,Mb as ee,Ob as ye,Ra as w,Rb as R,Sa as M,Sb as K,Tb as B,Ua as le,Ub as Ae,Va as j,Wa as Y,Xa as f,Ya as r,Za as o,_a as ae,_b as N,bc as we,fb as I,ia as s,jb as x,k as U,lb as c,p,q as g,wb as ce,xa as Ce,xb as S,yb as be,zb as d}from"./chunk-FFQQO7O7.js";import"./chunk-ID4WHIPA.js";import"./chunk-QUA7QOZA.js";import{a as V,b as F}from"./chunk-C6Q5SG76.js";var ot=(l,t)=>({background:l,color:t}),oe=()=>[],st=(l,t)=>t.value,dt=(l,t)=>t.date,lt=(l,t)=>t.rowKey;function ct(l,t){if(l&1){let e=I();r(0,"button",35),x("click",function(){p(e);let i=c();return g(i.backfillSearchTerms())}),d(1),o()}if(l&2){let e,n=c();f("disabled",n.backfillLoading()||n.loading()||!((e=n.vm())!=null&&e.hasSelectedProfile())),s(),P(" ",n.backfillLoading()?"Backfilling...":"Backfill Range"," ")}}function mt(l,t){if(l&1&&(r(0,"div",11)(1,"div")(2,"span",36),d(3,"Account Name"),o(),r(4,"strong"),d(5),o()(),r(6,"div")(7,"span",36),d(8,"Amazon Login"),o(),r(9,"strong"),d(10),o()(),r(11,"div")(12,"span",36),d(13,"Login Email"),o(),d(14),o(),r(15,"div")(16,"span",36),d(17,"Profile ID"),o(),r(18,"span",37),d(19),o()()()),l&2){let e=c();s(5),C(e.selectedAccountMeta().accountName),s(5),C(e.selectedAccountMeta().connectionLabel),s(4),C(e.selectedAccountMeta().amazonEmail||"-"),s(5),C(e.selectedAccountMeta().profileId)}}function pt(l,t){if(l&1&&(r(0,"option",21),d(1),o()),l&2){let e=t.$implicit;f("value",e.value),s(),C(e.label)}}function gt(l,t){if(l&1){let e=I();r(0,"button",35),x("click",function(){p(e);let i=c();return g(i.loadCoverage())}),d(1),o()}if(l&2){let e,n=c();f("disabled",n.coverageLoading()||n.loading()||!((e=n.vm())!=null&&e.hasSelectedProfile())),s(),P(" ",n.coverageLoading()?"Checking...":"Check Coverage"," ")}}function ut(l,t){if(l&1&&(r(0,"div",44)(1,"span"),d(2),R(3,"date"),o(),r(4,"strong"),d(5),o(),r(6,"em"),d(7),o()()),l&2){let e=t.$implicit,n=c(2);f("ngClass",n.getCoverageClass(e))("title",n.getCoverageTooltip(e)),s(2),C(Ae(3,5,e.date,"MMM d","UTC")),s(3),C(n.getCoverageLabel(e)),s(2),P("",(e.warehouse==null?null:e.warehouse.rowCount)||0," rows")}}function ht(l,t){if(l&1){let e=I();r(0,"button",35),x("click",function(){p(e);let i=c(3);return g(i.backfillSearchTerms())}),d(1," Backfill Missing Dates "),o()}if(l&2){let e=c(3);f("disabled",e.backfillLoading()||e.loading())}}function _t(l,t){if(l&1){let e=I();r(0,"div",45)(1,"div")(2,"strong"),d(3,"Resolution"),o(),r(4,"span"),d(5," Missing dates need a search-term backfill. Saved dates have backup files but may still be waiting on warehouse ingestion. "),o()(),r(6,"div",46),w(7,ht,2,1,"button",9),r(8,"button",35),x("click",function(){p(e);let i=c(2);return g(i.loadCoverage())}),d(9," Re-check Coverage "),o()()()}if(l&2){let e=c(2);s(7),M(e.missingCoverageDays().length?7:-1),s(),f("disabled",e.coverageLoading()||e.loading())}}function xt(l,t){if(l&1&&(r(0,"div",27)(1,"div",38)(2,"div")(3,"strong"),d(4,"Search Term Data Coverage"),o(),r(5,"span"),d(6),o()(),r(7,"div",39)(8,"span"),ae(9,"i",40),d(10,"Queryable"),o(),r(11,"span"),ae(12,"i",41),d(13,"Saved"),o(),r(14,"span"),ae(15,"i",42),d(16,"Missing"),o()()(),r(17,"div",43),j(18,ut,8,9,"div",44,dt),o(),w(20,_t,10,2,"div",45),o()),l&2){let e=t,n=c();s(6),Te("",e.summary.queryableDates," queryable, ",e.summary.backupOnlyDates," saved, ",e.summary.missingDates," missing of ",e.summary.requestedDates," dates"),s(12),Y(n.coverageDays()),s(2),M(n.missingCoverageDays().length||n.backupOnlyCoverageDays().length?20:-1)}}function ft(l,t){if(l&1&&(r(0,"button",52)(1,"span"),d(2,"\u2728 New Terms"),o(),r(3,"strong"),d(4),R(5,"number"),o()()),l&2){let e=c(2);s(4),C(K(5,1,e.harvestSummary().newTerms))}}function Ct(l,t){if(l&1){let e=I();r(0,"div",28)(1,"button",47),x("click",function(){p(e);let i=c();return g(i.setRecommendationFilter("ALL"))}),r(2,"span"),d(3,"All Terms"),o(),r(4,"strong"),d(5),R(6,"number"),o()(),r(7,"button",48),x("click",function(){p(e);let i=c();return g(i.setRecommendationFilter("ADD_EXACT"))}
1),r(8,"span"),d(9,"Harvest"),o(),r(10,"strong"),d(11),R(12,"number"),o()(),r(13,"button",49),x("click",function(){p(e);let i=c();return g(i.setRecommendationFilter("NEGATIVE_EXACT"))}),r(14,"span"),d(15,"Negatives"),o(),r(16,"strong"),d(17),R(18,"number"),o()(),r(19,"button",50),x("click",function(){p(e);let i=c();return g(i.setRecommendationFilter("AUDIT_EXACT"))}),r(20,"span"),d(21,"Audit Exact"),o(),r(22,"strong"),d(23),R(24,"number"),o()(),r(25,"button",51),x("click",function(){p(e);let i=c();return g(i.setRecommendationFilter("ALREADY_COVERED"))}),r(26,"span"),d(27,"Already Covered"),o(),r(28,"strong"),d(29),R(30,"number"),o()(),w(31,ft,6,3,"button",52),r(32,"div",53)(33,"span"),d(34,"Total Spend"),o(),r(35,"strong"),d(36),R(37,"number"),o()(),r(38,"div",53)(39,"span"),d(40,"ACOS"),o(),r(41,"strong"),d(42),R(43,"percent"),o()()()}if(l&2){let e=c();s(),S("active",e.recommendationFilter()==="ALL"),s(4),C(K(6,18,e.harvestSummary().totalRows)),s(2),S("active",e.recommendationFilter()==="ADD_EXACT"||e.recommendationFilter()==="FAST_HARVEST"),s(4),C(K(12,20,e.harvestSummary().addExact)),s(2),S("active",e.recommendationFilter()==="NEGATIVE_EXACT"),s(4),C(K(18,22,e.harvestSummary().negatives)),s(2),S("active",e.recommendationFilter()==="AUDIT_EXACT"),s(4),C(K(24,24,e.harvestSummary().auditExact)),s(2),S("active",e.recommendationFilter()==="ALREADY_COVERED"),s(4),C(K(30,26,e.harvestSummary().covered)),s(2),M(e.harvestSummary().newTerms>0?31:-1),s(5),P("$",B(37,28,e.harvestSummary().totalSpend,"1.2-2")),s(6),C(e.harvestSummary().acos==null?"-":B(43,31,e.harvestSummary().acos,"1.1-1"))}}function bt(l,t){if(l&1&&(r(0,"div",29),d(1),o()),l&2){let e=c();s(),C(e.error())}}function vt(l,t){if(l&1&&(r(0,"strong"),d(1),o()),l&2){let e=c(2);s(),P(" ",e.backfillResult().failedDates," date(s) failed.")}}function Tt(l,t){if(l&1&&(r(0,"div",30),d(1),w(2,vt,2,1,"strong"),o()),l&2){let e,n=c();s(),P(" ",n.backfillMessage()," "),s(),M((e=n.backfillResult())!=null&&e.failedDates?2:-1)}}function St(l,t){if(l&1&&(r(0,"div",31),d(1),o()),l&2){let e=c();s(),C(e.dataSourceMessage())}}function yt(l,t){if(l&1&&(r(0,"div",30),d(1),o()),l&2){let e=c();s(),C(e.actionMessage())}}function At(l,t){if(l&1){let e=I();r(0,"div",32)(1,"div")(2,"strong"),d(3,"Decision modules stay separate"),o(),r(4,"span"),d(5,"Use Search Intelligence for evidence and notes, then continue in the module that owns the decision."),o()(),r(6,"div",54)(7,"button",55),x("click",function(){p(e);let i=c();return g(i.reviewInIsolation())}),d(8,"Open Isolation Intelligence"),o(),r(9,"button",56),x("click",function(){p(e);let i=c();return g(i.reviewInNegativeIntelligence())}),d(10,"Open Negative Intelligence"),o()()()}}function wt(l,t){l&1&&(r(0,"div",33)(1,"div",57)(2,"p",58),d(3,"Loading search-term data..."),o(),r(4,"p",59),d(5,"Saved warehouse rows load first. If none exist, the app pulls live Amazon SP/SB search-term reports for this range."),o()()())}function Mt(l,t){l&1&&(r(0,"div",33)(1,"div",57)(2,"p",60),d(3,'Click "Load Search Terms" to load saved search-term data and generate read-only recommendations.'),o()()())}function kt(l,t){if(l&1){let e=I();r(0,"button",84),x("click",function(){p(e);let i=c(2);return g(i.setRecommendationFilter("ALL"))}),d(1,"Clear recommendation filter"),o()}}function zt(l,t){l&1&&(r(0,"div",80),d(1,"No loaded rows match the active column filters."),o())}function Et(l,t){if(l&1&&(r(0,"span",88),d(1),o()),l&2){let e=t;f("title",e.note),s(),C(e.note)}}function Pt(l,t){l&1&&(r(0,"span",91),d(1,"\u2728 New"),o())}function Rt(l,t){if(l&1&&(r(0,"span"),d(1),o()),l&2){let e=t.$implicit;s(),C(e)}}function Ot(l,t){if(l&1){let e=I();r(0,"button",115),x("click",function(){p(e);let i=c(2).$implicit,a=c(2);return g(a.openAsinList(i))}),d(1),o()}if(l&2){let e=c(2).$implicit;s(),P(" View all ",(e.associatedAsins||ee(1,oe)).length," ASINs ")}}function Dt(l,t){if(l&1&&(r(0,"div",113),j(1,Rt,2,1,"span",null,le),o(),w(3,Ot,2,2,"button",114),r(4,"span",96),d(5),o()),l&2){let e=c().$implicit,n=c(2);s(),Y(n.getAsinPreview(e)),s(2),M((e.associatedAsins||ee(2,oe)).length>4?3:-1),s(2),C(e.associatedAsinSource)}}function It(l,t){if(l&1&&(r(0,"strong",99),d(1,"No targeted ASINs"),o(),r(2,"span",96
1),d(3),o()),l&2){let e=c().$implicit;s(3),C(e.associatedProductNote)}}function Vt(l,t){if(l&1&&(r(0,"span",96),d(1),o()),l&2){let e=c().$implicit;s(),P("SKU ",e.associatedSku)}}function Nt(l,t){if(l&1&&(r(0,"span",116),d(1),o(),r(2,"span",96),d(3),o()),l&2){let e=c().$implicit;be(Se("neg-scope-badge neg-scope-badge--",e.negativeScope)),f("title",e.negativeScopeNote),s(),P(" ",e.negativeScope==="campaign"?"\u{1F3D5} Campaign-level":e.negativeScope==="both"?"\u2195 Campaign + Ad Group":"\u{1F3AF} Ad Group-level"," "),s(2),C(e.negativeScopeNote)}}function Gt(l,t){if(l&1){let e=I();r(0,"div",85)(1,"div",86)(2,"button",87),x("click",function(){let i=p(e).$implicit,a=c(2);return g(a.openAnnotation(i))}),d(3),o(),w(4,Et,2,2,"span",88),o(),r(5,"div",89)(6,"span",90),d(7),o(),w(8,Pt,2,0,"span",91),r(9,"span",92),d(10),o()(),r(11,"div",93)(12,"span",94),d(13),o(),r(14,"span",95),d(15),o(),r(16,"span",96),d(17),o()(),r(18,"div",97),w(19,Dt,6,3)(20,It,4,1),w(21,Vt,2,1,"span",96),o(),r(22,"div",98)(23,"strong",99),d(24),o(),r(25,"span",100),d(26),o(),w(27,Nt,4,6),r(28,"div",101)(29,"button",102),x("click",function(){let i=p(e).$implicit,a=c(2);return g(a.reviewInIsolation(i))}),d(30,"Isolation"),o(),r(31,"button",102),x("click",function(){let i=p(e).$implicit,a=c(2);return g(a.reviewInNegativeIntelligence(i))}),d(32,"Negative"),o()()(),r(33,"div",103)(34,"span",104),d(35),o(),r(36,"span",96),d(37),o(),r(38,"span",96),d(39),o()(),r(40,"div",105),d(41),R(42,"number"),o(),r(43,"div",106),d(44),R(45,"number"),o(),r(46,"div",107),d(47),R(48,"number"),o(),r(49,"div",108),d(50),R(51,"number"),o(),r(52,"div",109),d(53),R(54,"percent"),o(),r(55,"div",110),d(56),R(57,"number"),o(),r(58,"div",111),d(59),R(60,"number"),o(),r(61,"div",112),d(62),R(63,"number"),o()()}if(l&2){let e,n=t.$implicit,i=c(2);ce("grid-template-columns",i.searchTermGrid.template())("min-width",i.searchTermGrid.totalWidth(),"px"),S("grid-density-compact",i.searchTermGrid.density()==="compact")("grid-density-comfortable",i.searchTermGrid.density()==="comfortable"),s(),S("column-hidden",!i.searchTermGrid.isVisible("notes")),s(2),P(" ",i.annotationFor(n)?"Edit":"Add"," "),s(),M((e=i.annotationFor(n))?4:-1,e),s(),S("column-hidden",!i.searchTermGrid.isVisible("recommendation")),s(),f("ngClass",i.getRecommendationClass(n.recommendation)),s(),C(n.recommendationLabel),s(),M(n.isNewTerm?8:-1),s(2),P("",n.confidence," confidence"),s(3),C(n.searchTerm||"-"),s(),f("ngStyle",ye(80,ot,n._adType==="SP"?"#e0e7ff":"#dcfce7",n._adType==="SP"?"#3730a3":"#166534")),s(),C(n._adType),s(2),C(n.matchType||"AUTO"),s(),S("column-hidden",!i.searchTermGrid.isVisible("asins")),s(),M((n.associatedAsins||ee(83,oe)).length?19:20),s(2),M(n.associatedSku?21:-1),s(3),C(n.manualAction),s(2),C(n.reason),s(),M(n.negativeScope?27:-1),s(6),S("column-hidden",!i.searchTermGrid.isVisible("campaign")),s(2),C(n.campaignName||"-"),s(2),C(n.adGroupName||"-"),s(2),C(n.keyword||n.targeting||"-"),s(),S("column-hidden",!i.searchTermGrid.isVisible("clicks")),s(),C(K(42,58,n.clicks||0)),s(2),S("column-hidden",!i.searchTermGrid.isVisible("spend")),s(),P("$",B(45,60,n.cost||0,"1.2-2")),s(2),S("column-hidden",!i.searchTermGrid.isVisible("sales")),s(),P("$",B(48,63,n.sales14d||0,"1.2-2")),s(2),S("column-hidden",!i.searchTermGrid.isVisible("orders")),s(),C(K(51,66,n.purchases14d||0)),s(2),S("column-hidden",!i.searchTermGrid.isVisible("acos")),s(),C(n.acos==null?"-":B(54,68,n.acos,"1.1-1")),s(2),S("column-hidden",!i.searchTermGrid.isVisible("avgCpc")),s(),P("$",B(57,71,n.costPerClick||0,"1.2-2")),s(2),S("column-hidden",!i.searchTermGrid.isVisible("currentBid")),s(),C(n.currentBid==null?"-":"$"+B(60,74,n.currentBid,"1.2-2")),s(2),S("column-hidden",!i.searchTermGrid.isVisible("exportBid")),s(),C(i.getExportBid(n)==null?"-":"$"+B(63,77,i.getExportBid(n),"1.2-2"))}}function Wt(l,t){if(l&1){let e=I();r(0,"button",35),x("click",function(){p(e);let i=c(3);return g(i.loadMoreTerms())}),d(1),o()}if(l&2){let e=c(3);f("disabled",e.loadingMoreTerms()),s(),P(" ",e.loadingMoreTerms()?"Loading...":"Load more search terms"," ")}}function Ft(l,t){if(l&1){let e=I();r(0,"button",117),x("click",function(){p(e);let i=c(3);return g(i.loadMoreSavedNotes())}),d(1," Load more saved notes "),o()}}function Kt(l,t){if(l&1&&(r(0,"div",83),w(1,Wt,2,2,"button",9),w(2,Ft,2,0,"button",6),o()),l&2){let e=c(2);s(),M(e.termHasMore()?1:-1),s(),M(e.annotationHasMore()?2:-1)}}function Lt(l,t){if(l&1){let e=I();r(0,"app-ads-manager-grid-toolbar",61),x("clearFilters",function(){p(e);let i=c();return g(i.searchTermGrid.clearFilters())})("removeFilter",function(i){p(e);let a=c();return g(a.searchTermGrid.setFilter(i,null))})("sortKeyChange",function(i){p(e);let a=c();return g(a.selectSearchTermSort(i))})("sortDirectionChange",function(i){p(e);let a=c();return g(a.setSearchTermSortDirection(i))})("columnVisibilityChange",function(i){p(e);let a=c();return g(a.searchTermGrid.setColumnVisibility(i))})("densityChange",function(i){p(e);let a=c();return g(a.searchTermGrid.setDensity(i))})("autoFit",function(){p(e);let i=c();return g(i.autoFitVisibleSearchTermColumns())})("resetLayout",function(){p(e);let i=c();return g(i.searchTermGrid.reset())}),o(),r(1,"div",62)(2,"span"),d(3),R(4,"number"),o(),w(5,kt,2,0,"button",63),o(),r(6,"div",64)(7,"div",65)(8,"app-ads-manager-grid-header-cell",66),x("resizeWidth",function(i){p(e);let a=c();return g(a.searchTermGrid.setWidth("notes",i))})("resizeCommit",function(i){p(e);let a=c();return g(a.searchTermGrid.commitWidth("notes",i))})("resizeAutoFit",function(){p(e);let i=c();return g(i.autoFitSearchTermColumn("notes"))}),o(),r(9,"app-ads-manager-grid-header-cell",67),x("sortRequested",function(){p(e);let i=c();
1return g(i.setSortKey("recommendation"))})("resizeWidth",function(i){p(e);let a=c();return g(a.searchTermGrid.setWidth("recommendation",i))})("resizeCommit",function(i){p(e);let a=c();return g(a.searchTermGrid.commitWidth("recommendation",i))})("resizeAutoFit",function(){p(e);let i=c();return g(i.autoFitSearchTermColumn("recommendation"))}),o(),r(10,"app-ads-manager-grid-header-cell",68),x("sortRequested",function(){p(e);let i=c();return g(i.setSortKey("searchTerm"))})("resizeWidth",function(i){p(e);let a=c();return g(a.searchTermGrid.setWidth("searchTerm",i))})("resizeCommit",function(i){p(e);let a=c();return g(a.searchTermGrid.commitWidth("searchTerm",i))})("resizeAutoFit",function(){p(e);let i=c();return g(i.autoFitSearchTermColumn("searchTerm"))}),o(),r(11,"app-ads-manager-grid-header-cell",69),x("sortRequested",function(){p(e);let i=c();return g(i.setSortKey("associationSortValue"))})("resizeWidth",function(i){p(e);let a=c();return g(a.searchTermGrid.setWidth("asins",i))})("resizeCommit",function(i){p(e);let a=c();return g(a.searchTermGrid.commitWidth("asins",i))})("resizeAutoFit",function(){p(e);let i=c();return g(i.autoFitSearchTermColumn("asins"))}),o(),r(12,"app-ads-manager-grid-header-cell",70),x("sortRequested",function(){p(e);let i=c();return g(i.setSortKey("manualAction"))})("resizeWidth",function(i){p(e);let a=c();return g(a.searchTermGrid.setWidth("manualAction",i))})("resizeCommit",function(i){p(e);let a=c();return g(a.searchTermGrid.commitWidth("manualAction",i))})("resizeAutoFit",function(){p(e);let i=c();return g(i.autoFitSearchTermColumn("manualAction"))}),o(),r(13,"app-ads-manager-grid-header-cell",71),x("sortRequested",function(){p(e);let i=c();return g(i.setSortKey("campaignName"))})("resizeWidth",function(i){p(e);let a=c();return g(a.searchTermGrid.setWidth("campaign",i))})("resizeCommit",function(i){p(e);let a=c();return g(a.searchTermGrid.commitWidth("campaign",i))})("resizeAutoFit",function(){p(e);let i=c();return g(i.autoFitSearchTermColumn("campaign"))}),o(),r(14,"app-ads-manager-grid-header-cell",72),x("sortRequested",function(){p(e);let i=c();return g(i.setSortKey("clicks"))})("resizeWidth",function(i){p(e);let a=c();return g(a.searchTermGrid.setWidth("clicks",i))})("resizeCommit",function(i){p(e);let a=c();return g(a.searchTermGrid.commitWidth("clicks",i))})("resizeAutoFit",function(){p(e);let i=c();return g(i.autoFitSearchTermColumn("clicks"))}),o(),r(15,"app-ads-manager-grid-header-cell",73),x("sortRequested",function(){p(e);let i=c();return g(i.setSortKey("cost"))})("resizeWidth",function(i){p(e);let a=c();return g(a.searchTermGrid.setWidth("spend",i))})("resizeCommit",function(i){p(e);let a=c();return g(a.searchTermGrid.commitWidth("spend",i))})("resizeAutoFit",function(){p(e);let i=c();return g(i.autoFitSearchTermColumn("spend"))}),o(),r(16,"app-ads-manager-grid-header-cell",74),x("sortRequested",function(){p(e);let i=c();return g(i.setSortKey("sales14d"))})("resizeWidth",function(i){p(e);let a=c();return g(a.searchTermGrid.setWidth("sales",i))})("resizeCommit",function(i){p(e);let a=c();return g(a.searchTermGrid.commitWidth("sales",i))})("resizeAutoFit",function(){p(e);let i=c();return g(i.autoFitSearchTermColumn("sales"))}),o(),r(17,"app-ads-manager-grid-header-cell",75),x("sortRequested",function(){p(e);let i=c();return g(i.setSortKey("purchases14d"))})("resizeWidth",function(i){p(e);let a=c();return g(a.searchTermGrid.setWidth("orders",i))})("resizeCommit",function(i){p(e);let a=c();return g(a.searchTermGrid.commitWidth("orders",i))})("resizeAutoFit",function(){p(e);let i=c();return g(i.autoFitSearchTermColumn("orders"))}),o(),r(18,"app-ads-manager-grid-header-cell",76),x("sortRequested",function(){p(e);let i=c();return g(i.setSortKey("acos"))})("resizeWidth",function(i){p(e);let a=c();return g(a.searchTermGrid.setWidth("acos",i))})("resizeCommit",function(i){p(e);let a=c();return g(a.searchTermGrid.commitWidth("acos",i))})("resizeAutoFit",function(){p(e);let i=c();return g(i.autoFitSearchTermColumn("acos"))}),o(),r(19,"app-ads-manager-grid-header-cell",77),x("sortRequested",function(){p(e);let i=c();
1return g(i.setSortKey("costPerClick"))})("resizeWidth",function(i){p(e);let a=c();return g(a.searchTermGrid.setWidth("avgCpc",i))})("resizeCommit",function(i){p(e);let a=c();return g(a.searchTermGrid.commitWidth("avgCpc",i))})("resizeAutoFit",function(){p(e);let i=c();return g(i.autoFitSearchTermColumn("avgCpc"))}),o(),r(20,"app-ads-manager-grid-header-cell",78),x("sortRequested",function(){p(e);let i=c();return g(i.setSortKey("currentBid"))})("resizeWidth",function(i){p(e);let a=c();return g(a.searchTermGrid.setWidth("currentBid",i))})("resizeCommit",function(i){p(e);let a=c();return g(a.searchTermGrid.commitWidth("currentBid",i))})("resizeAutoFit",function(){p(e);let i=c();return g(i.autoFitSearchTermColumn("currentBid"))}),o(),r(21,"app-ads-manager-grid-header-cell",79),x("sortRequested",function(){p(e);let i=c();return g(i.setSortKey("exportBid"))})("resizeWidth",function(i){p(e);let a=c();return g(a.searchTermGrid.setWidth("exportBid",i))})("resizeCommit",function(i){p(e);let a=c();return g(a.searchTermGrid.commitWidth("exportBid",i))})("resizeAutoFit",function(){p(e);let i=c();return g(i.autoFitSearchTermColumn("exportBid"))}),o()(),w(22,zt,2,0,"div",80),r(23,"div",81),j(24,Gt,64,84,"div",82,lt),o()(),w(26,Kt,3,2,"div",83)}if(l&2){let e=c();f("showSearch",!1)("resultCount",e.filteredRows().length)("totalCount",e.rows().length)("filterCount",e.searchTermGrid.activeFilterCount())("filterChips",e.searchTermGrid.activeFilterChips())("sortOptions",e.searchTermSortOptions)("sortKey",e.sortKey())("sortDirection",e.sortDir())("columns",e.searchTermGrid.columnOptions())("density",e.searchTermGrid.density()),s(3),P("",K(4,156,e.termTotalRows())," rows available for the selected range."),s(2),M(e.recommendationFilter()!=="ALL"?5:-1),s(2),ce("grid-template-columns",e.searchTermGrid.template())("min-width",e.searchTermGrid.totalWidth(),"px"),s(),S("column-hidden",!e.searchTermGrid.isVisible("notes")),f("grid",e.searchTermGrid)("sortable",!1)("align","start")("width",e.searchTermGrid.columnWidth("notes"))("minWidth",88)("maxWidth",260),s(),S("column-hidden",!e.searchTermGrid.isVisible("recommendation")),f("grid",e.searchTermGrid)("sortable",!0)("active",e.sortKey()==="recommendation")("direction",e.sortDir())("align","start")("width",e.searchTermGrid.columnWidth("recommendation"))("minWidth",132)("maxWidth",300),s(),S("column-hidden",!e.searchTermGrid.isVisible("searchTerm")),f("grid",e.searchTermGrid)("sortable",!0)("active",e.sortKey()==="searchTerm")("direction",e.sortDir())("align","start")("width",e.searchTermGrid.columnWidth("searchTerm"))("minWidth",170)("maxWidth",520),s(),S("column-hidden",!e.searchTermGrid.isVisible("asins")),f("grid",e.searchTermGrid)("sortable",!0)("active",e.sortKey()==="associationSortValue")("direction",e.sortDir())("align","start")("width",e.searchTermGrid.columnWidth("asins"))("minWidth",160)("maxWidth",520),s(),S("column-hidden",!e.searchTermGrid.isVisible("manualAction")),f("grid",e.searchTermGrid)("sortable",!0)("active",e.sortKey()==="manualAction")("direction",e.sortDir())("align","start")("width",e.searchTermGrid.columnWidth("manualAction"))("minWidth",220)("maxWidth",640),s(),S("column-hidden",!e.searchTermGrid.isVisible("campaign")),f("grid",e.searchTermGrid)("sortable",!0)("active",e.sortKey()==="campaignName")("direction",e.sortDir())("align","start")("width",e.searchTermGrid.columnWidth("campaign"))("minWidth",170)("maxWidth",520),s(),S("column-hidden",!e.searchTermGrid.isVisible("clicks")),f("grid",e.searchTermGrid)("sortable",!0)("active",e.sortKey()==="clicks")("direction",e.sortDir())("align","end")("width",e.searchTermGrid.columnWidth("clicks"))("minWidth",72)("maxWidth",170),s(),S("column-hidden",!e.searchTermGrid.isVisible("spend")),f("grid",e.searchTermGrid)("sortable",!0)("active",e.sortKey()==="cost")("direction",e.sortDir())("align","end")("width",e.searchTermGrid.columnWidth("spend"))("minWidth",80)("maxWidth",190),s(),S("column-hidden",!e.searchTermGrid.isVisible("sales")),f("grid",e.searchTermGrid)("sortable",!0)("active",e.sortKey()==="sales14d")("direction",e.sortDir())("align","end")("width",e.searchTermGrid.columnWidth("sales"))("minWidth",80)("maxWidth",190),s(),S("column-hidden",!e.searchTermGrid.isVisible("orders")),f("grid",e.searchTermGrid)("sortable",!0)("active",e.sortKey()==="purchases14d")("direction",e.sortDir())("align","end")("width",e.searchTermGrid.columnWidth("orders"))("minWidth",72)("maxWidth",170),s(),S("column-hidden",!e.searchTermGrid.isVisible("acos")),f("grid",e.searchTermGrid)("sortable",!0)("active",e.sortKey()==="acos")("direction",e.sortDir())("align","end")("width",e.searchTermGrid.columnWidth("acos"))("minWidth",74)("maxWidth",170),s(),S("column-hidden",!e.searchTermGrid.isVisible("avgCpc")),f("grid",e.searchTermGrid)("sortable",!0)("active",e.sortKey()==="costPerClick")("direction",e.sortDir())("align","end")("width",e.searchTermGrid.columnWidth("avgCpc"))("minWidth",76)("maxWidth",180),s(),S("column-hidden",!e.searchTermGrid.isVisible("currentBid")),f("grid",e.searchTermGrid)("sortable",!0)("active",e.sortKey()==="currentBid")("direction",e.sortDir())("align","end")("width",e.searchTermGrid.columnWidth("currentBid"))("minWidth",82)("maxWidth",190),s(),S("column-hidden",!e.searchTermGrid.isVisible("exportBid")),f("grid",e.searchTermGrid)("sortable",!0)("active",e.sortKey()==="exportBid")("direction",e.sortDir())("align","end")("width",e.searchTermGrid.columnWidth("exportBid"))("minWidth",82)("maxWidth",190),s(),M(e.filteredRows().length===0?22:-1),s(2),Y(e.filteredRows()),s(2),M(e.termHasMore()||e.annotationHasMore()?26:-1)}}function Bt(l,t){l&1&&(r(0,"div",33)(1,"div",57)(2,"p",60),d(3,"No search terms matched your filter criteria."),o()()())}function qt(l,t){l&1&&(r(0,"div",120),d(1,"Loading saved note..."),o())}function $t(l,t){if(l&1){let e=I();r(0,"label",121)(1,"span"),d(2,"Internal note"),o(),r(3,"textarea",123),x("ngModelChange",function(i){p(e);let a=c(2);return g(a.annotationText.set(i))}),d(4,"                            "),o(),r(5,"small"),d(6),R(7,"number"),o()()}if(l&2){let e=c(2);s(3),f("ngModel",e.annotationText()),s(3),P("",K(7,2,e.annotationText().length)," / 4,000 characters. Clearing the text removes the sparse note document.")}}function Ht(l,t){if(l&1){let e=I();r(0,"div",34)(1,"div",118)(2,"div",119)(3,"div")(4,"h3"),d(5,"Search Term Note"),o(),r(6,"p"),d(7),o()(),r(8,"button",55),x("click",function(){p(e);let i=c();return g(i.closeAnnotation())}),d(9,"Close"),o()(),w(10,qt,2,0,"div",120)(11,$t,8,4,"label",121),r(12,"div",122)(13,"button",55),x("click",function(){p(e);let i=c();return g(i.closeAnnotation())}),d(14,"Cancel"),o(),r(15,"button",4),x("click",function(){p(e);let i=c();return g(i.saveAnnotation())}),d(16),o()()()()}if(l&2){let e=c();s(7),C(t.searchTerm),s(3),M(e.annotationLoading()?10:11),s(5),f("disabled",e.annotationLoading()||e.annotationSaving()),s(),P(" ",e.annotationSaving()?"Saving...":"Save Note"," ")}}function Xt(l,t){if(l&1&&(r(0,"span"),d(1),o()),l&2){let e=t.$implicit;s(),C(e)}}function Ut(l,t){if(l&1){let e=I();r(0,"div",34)(1,"div",124)(2,"div",119)(3,"div")(4,"h3"),d(5,"Targeted ASINs"),o(),r(6,"p"),d(7),o()(),r(8,"button",55),x("click",function(){p(e);let i=c();return g(i.closeAsinList())}),d(9,"Close"),o()(),r(10,"div",125),j(11,Xt,2,1,"span",null,le),o(),r(13,"div",122)(14,"button",56),x("click",function(){p(e);let i=c();return g(i.closeAsinList())}),d(15,"Done"),o()()()()}if(l&2){let e=t;s(7),ve("",e.campaignName||e.campaignId," / ",e.adGroupName||e.adGroupId),s(4),Y(e.associatedAsins||ee(2,oe))}}var re=500,Je=class l{api=U($e);bulkExport=U(Ye);debugMode=U(He);router=U(Oe);elementRef=U(fe);gridLayout=U(je);searchTermGridColumns=[{key:"notes",label:"Notes",defaultWidth:112,minWidth:88,maxWidth:260,hideable:!0,filter:{kind:"text",placeholder:"Filter notes"}},{key:"recommendation",label:"Recommendation",defaultWidth:165,minWidth:132,maxWidth:300,hideable:!0,filter:{kind:"select",options:[{value:"ADD_EXACT",label:"Add exact"},{value:"FAST_HARVEST",label:"Fast harvest"},{value:"NEGATIVE_EXACT",label:"Negative exact"},{value:"NEGATIVE_PHRASE",label:"Negative phrase review"},{value:"AUDIT_EXACT",label:"Audit existing exact"},{value:"ALREADY_COVERED",label:"Already covered"},{value:"WATCH",label:"Watch"}]}},{key:"searchTerm",label:"Search term",defaultWidth:230,minWidth:170,maxWidth:520,hideable:!1,filter:{kind:"text",placeholder:"Type a search term",suggestions:{label:"Search terms on this page",placeholder:"Choose a search term",limit:100}}},{key:"asins",label:"Targeted ASINs",defaultWidth:220,minWidth:160,maxWidth:520,hideable:!0,filter:{kind:"text",placeholder:"Type an ASIN or SKU",suggestions:{label:"Targeted ASINs on this page",placeholder:"Choose an ASIN",limit:100}}},{key:"manualAction",label:"Manual action",defaultWidth:290,minWidth:220,maxWidth:640,hideable:!1,filter:{kind:"text",placeholder:"Filter actions or reasons"}},{key:"campaign",label:"Campaign",defaultWidth:230,minWidth:170,maxWidth:520,hideable:!0,filter:{kind:"text",placeholder:"Type a campaign or ad group name",suggestions:{label:"Campaigns on this page",placeholder:"Choose a campaign",limit:100}}},{key:"clicks",label:"Clicks",defaultWidth:86,minWidth:72,maxWidth:170,hideable:!0,filter:{kind:"number",step:1}},{key:"spend",label:"Spend",defaultWidth:98,minWidth:80,maxWidth:190,hideable:!0,filter:{kind:"number",step:.01}},{key:"sales",label:"Sales",defaultWidth:98,minWidth:80,maxWidth:190,hideable:!0,filter:{kind:"number",step:.01}},{key:"orders",label:"Orders",defaultWidth:88,minWidth:72,maxWidth:170,hideable:!0,filter:{kind:"number",step:1}},{key:"acos",label:"ACOS",defaultWidth:88,minWidth:74,maxWidth:170,hideable:!0,filter:{kind:"number",step:.1}},{key:"avgCpc",label:"Avg CPC",defaultWidth:92,minWidth:76,maxWidth:180,hideable:!0,filter:{kind:"number",step:.01}},{key:"currentBid",label:"Current bid",defaultWidth:100,minWidth:82,maxWidth:190,hideable:!0,filter:{kind:"number",step:.01}},{key:"exportBid",label:"Export bid",defaultWidth:100,minWidth:82,maxWidth:190,hideable:!0,filter:{kind:"number",step:.01}}];searchTermSortOptions=[{key:"priorityScore",label:"Priority",defaultDirection:"desc"},{key:"recommendation",label:"Recommendation",defaultDirection:"asc"},{key:"searchTerm",label:"Search term",defaultDirection:"asc"},{key:"associationSortValue",label:"Targeted ASINs",defaultDirection:"asc"},{key:"manualAction",label:"Manual action",defaultDirection:"asc"},{key:"campaignName",label:"Campaign",defaultDirection:"asc"},{key:"clicks",label:"Clicks",defaultDirection:"desc"},{key:"cost",label:"Spend",defaultDirection:"desc"},{key:"sales14d",label:"Sales",defaultDirection:"desc"},{key:"purchases14d",label:"Orders",defaultDirection:"desc"},{key:"acos",label:"ACOS",defaultDirection:"desc"},{key:"costPerClick",label:"Avg CPC",defaultDirection:"desc"},{key:"currentBid",label:"Current bid",defaultDirection:"desc"},{key:"exportBid",label:"Export bid",defaultDirection:"desc"}];searchTermGrid=new Ue(this.gridLayout,"search-terms",this.searchTermGridColumns,{defaultSortKey:"priorityScore",defaultSortDirection:"desc",sortKeys:this.searchTermSortOptions.map(t=>t.key),gap:12,horizontalPadding:32,autoFitPadding:30});sortKey=this.searchTermGrid.sortKey;sortDir=this.searchTermGrid.sortDirection;lastAccountKey="";loadedRowsContextKey="";loadedCoverageContextKey="";loadedAnnotationProfileKey="";rowsRequestGeneration=0;coverageRequestGeneration=0;annotationListRequestGeneration=0;annotationDetailRequestGeneration=0;moreTermsRequestGeneration=0;vm=we();loading=v(!1);backfillLoading=v(!1);coverageLoading=v(!1);error=v(null);backfillMessage=v(null);backfillResult=v(null);coverage=v(null);rows=v([]);
1dataSourceMessage=v(null);termNextCursor=v(null);termHasMore=v(!1);termTotalRows=v(0);loadingMoreTerms=v(!1);annotationRows=v({});annotationNextCursor=v(null);annotationHasMore=v(!1);annotationRow=v(null);annotationsLoaded=v(!1);annotationText=v("");annotationLoading=v(!1);annotationSaving=v(!1);actionMessage=v(null);search=v("");suggestionTab=v("open");adTypeFilter=v("ALL");recommendationFilter=v("ALL");targetAcos=v(25);noSaleClickThreshold=v(20);noSaleSpendThreshold=v(25);startDate=v(this.dateDaysAgo(16));endDate=v(this.dateDaysAgo(2));selectedKeys=v({});archivedRows=v([]);bulkModalOpen=v(!1);asinListRow=v(null);destinationAssignments=v({});recommendationOptions=[{value:"ALL",label:"All recommendations"},{value:"ADD_EXACT",label:"Add exact"},{value:"FAST_HARVEST",label:"Fast harvest"},{value:"NEGATIVE_EXACT",label:"Negative exact"},{value:"NEGATIVE_PHRASE",label:"Negative phrase review"},{value:"AUDIT_EXACT",label:"Audit existing exact"},{value:"ALREADY_COVERED",label:"Already covered"},{value:"WATCH",label:"Watch"}];harvestRows=N(()=>{let t=this.rows();if(!t.length)return[];let e=this.entityContext(),n=new Map,i=new Map;for(let a of t){let u=String(a.searchTerm||a.customerSearchTerm||"").trim().toLowerCase();if(!u)continue;let h=String(a.campaignName||a.campaignId||"").trim(),m=String(a.adGroupName||a.adGroupId||"").trim();n.has(u)||n.set(u,new Set),i.has(u)||i.set(u,new Set),h&&n.get(u).add(h),m&&i.get(u).add(m)}return t.map(a=>this.buildHarvestRow(a,n,i,e)).sort((a,u)=>u.priorityScore-a.priorityScore||u.cost-a.cost)});entityContext=N(()=>this.buildEntityContext());openRows=N(()=>{let t=new Set(this.archivedRows().map(e=>e.rowKey));return this.harvestRows().filter(e=>!t.has(e.rowKey))});activeTabRows=N(()=>this.harvestRows());filteredRows=N(()=>{let t=this.activeTabRows(),e=this.adTypeFilter();e!=="ALL"&&(t=t.filter(h=>h._adType===e));let n=this.recommendationFilter();n!=="ALL"&&(t=t.filter(h=>h.recommendation===n));let i=this.search().toLowerCase().trim();i&&(t=t.filter(h=>(h.searchTerm||"").toLowerCase().includes(i)||(h.keyword||"").toLowerCase().includes(i)||(h.campaignName||"").toLowerCase().includes(i)||(h.reason||"").toLowerCase().includes(i))),t=this.searchTermGrid.filterRows(t,(h,m)=>this.searchTermFilterValue(h,m),(h,m)=>this.searchTermFilterSuggestionValue(h,m));let a=this.sortKey(),u=this.sortDir()==="asc"?1:-1;return[...t].sort((h,m)=>{let y=this.getSortValue(h,a),z=this.getSortValue(m,a);return typeof y=="number"&&typeof z=="number"?(y-z)*u:String(y).localeCompare(String(z))*u})});harvestSummary=N(()=>{let t=this.harvestRows(),e=u=>t.filter(h=>h.recommendation===u).length,n=t.reduce((u,h)=>u+h.cost,0),i=t.reduce((u,h)=>u+h.sales14d,0),a=t.filter(u=>u.isNewTerm).length;return{totalRows:t.length,addExact:e("ADD_EXACT")+e("FAST_HARVEST"),negatives:e("NEGATIVE_EXACT")+e("NEGATIVE_PHRASE"),auditExact:e("AUDIT_EXACT"),covered:e("ALREADY_COVERED"),watch:e("WATCH"),newTerms:a,totalSpend:n,totalSales:i,acos:i>0?n/i:null}});selectedAccountMeta=N(()=>this.vm()?.selectedAccountMeta?.()||{accountName:"Selected account",connectionLabel:"Selected login",amazonEmail:"",profileId:this.vm()?.activeProfileId?.()||""});coverageDays=N(()=>this.coverage()?.coverage||[]);missingCoverageDays=N(()=>this.coverageDays().filter(t=>t.status==="missing"));backupOnlyCoverageDays=N(()=>this.coverageDays().filter(t=>t.status==="backup_only"));selectableRows=N(()=>this.filteredRows().filter(t=>this.isUploadableSuggestion(t)));selectedRows=N(()=>this.filteredRows().filter(t=>this.selectedKeys()[t.rowKey]&&this.isUploadableSuggestion(t)));selectedCount=N(()=>this.selectedRows().length);destinationOptions=N(()=>this.buildDestinationOptions());constructor(){xe(()=>{let t=this.vm(),e=`${t?.selectedAccountMeta?.().connectionId||t?.getActiveConnection?.()?.connectionId||""}::${t?.activeProfileId?.()||""}`;!e||e==="::"||e===this.lastAccountKey||(this.lastAccountKey=e,this.resetAccountScopedState(),this.loadArchivedSuggestions())})}ngOnInit(){this.applyAvailableDataDateDefaults(!0),this.loadArchivedSuggestions()}ngOnDestroy(){this.invalidateReadRequests()}dateDaysAgo(t){return new Date(Date.now()-t*864e5).toISOString().slice(0,10)}applyAvailableDataDateDefaults(t=!1){let n=this.vm()?.getDefaultAvailableDataRange?.(16);!n?.startDate||!n?.endDate||((t||!this.startDate()||this.startDate()>this.endDate())&&this.startDate.set(n.startDate),(t||!this.endDate()||this.startDate()>this.endDate())&&this.endDate.set(n.endDate))}setStartDate(t){this.clearSearchQueryState(),this.startDate.set(t)}setEndDate(t){this.clearSearchQueryState(),this.endDate.set(t)}setAdTypeFilter(t){this.clearSearchQueryState(),this.adTypeFilter.set(t)}setRecommendationFilter(t){this.recommendationFilter.set(t)}setSortKey(t){let e=this.searchTermSortOptions.find(n=>n.key===t);this.searchTermGrid.toggleSort(t,e?.defaultDirection||"desc")}selectSearchTermSort(t){let e=this.searchTermSortOptions.find(n=>n.key===t);this.searchTermGrid.selectSort(t,e?.defaultDirection||"desc")}setSearchTermSortDirection(t){this.searchTermGrid.setSortDirection(t)}autoFitSearchTermColumn(t){this.searchTermGrid.autoFit(this.elementRef,t)}autoFitVisibleSearchTermColumns(){this.searchTermGrid.autoFitVisible(this.elementRef)}getSortIndicator(t){return this.sortKey()!==t?"":this.sortDir()==="asc"?" \u2191":" \u2193"}roundCurrency(t){return Math.round((t+Number.EPSILON)*100)/100}normalized(t){return String(t||"").toLowerCase().replace(/[^a-z0-9]+/g," ").trim().replace(/\s+/g," ")}getSortValue(t,e){if(e==="recommendation")return t.recommendationLabel||"";if(e==="campaignName")return`${t.campaignName||""} ${t.adGroupName||""}`.trim();if(e==="associationSortValue")return t.associationSortValue||"";if(e==="exportBid")return this.getExportBid(t)??-1;let n=t[e];return typeof n=="number"?Number.isFinite(n)?n:-1:String(n??"")}searchTermFilterSuggestionValue(t,e){switch(e){case"searchTerm":return t.searchTerm;case"asins":return t.associatedAsins||[];case"campaign":return t.campaignName;default:return""}}searchTermFilterValue(t,e){switch(e){case"notes":return this.annotationFor(t)?.note||"";case"recommendation":return t.recommendation;case"searchTerm":return[t.searchTerm,t.keyword,t.matchType,t._adType];case"asins":return[...t.associatedAsins||[],t.associatedSku,t.associatedProductNote];case"manualAction":return[t.manualAction,t.reason,t.negativeScope,t.negativeScopeNote];case"campaign":return[t.campaignName,t.adGroupName,t.keyword,t.targeting];case"clicks":return t.clicks;case"spend":return t.cost;case"sales":return t.sales14d;case"orders":return t.purchases14d;case"acos":return t.acos==null?null:t.acos*100;case"avgCpc":return t.costPerClick;case"currentBid":return t.currentBid;case"exportBid":return this.getExportBid(t);default:return""}}hasBadIntentToken(t){let e=` ${this.normalized(t)} `;return[" free "," used "," second hand "," manual "," instructions "," replacement "," parts "," repair "," diy "," template "," pdf "," cheap "," coupon "," wholesale "," bulk "," craigslist "," ebay "," temu "].some(n=>e.includes(n))}buildHarvestRow(t,e,n,i=this.entityContext()){let a=String(t.searchTerm||t.customerSearchTerm||"").trim(),u=String(t.keyword||t.keywordText||"").trim(),h=String(t.targeting||t.targetingText||"").trim(),m=String(t.matchType||"").trim(),y=this.buildRowKey(t,a),z=Number(t.impressions)||0,A=Number(t.clicks)||0,_=Number(t.cost)||0,T=Number(t.sales14d??t.sales7d??t.sales??t.attributedSales14d??t.attributedSales7d)||0,b=Number(t.purchases14d??t.purchases7d??t.purchases??t.attributedConversions14d??t.attributedConversions7d)||0,O=Number(t.costPerClick)||(A>0?_/A:0),k=Number(t.clickThroughRate)||(z>0?A/z:0),E=T>0?_/T:null,D=A>0?b/A:0,G=Math.max(.01,Number(this.targetAcos())/100),Q=A>0?T/A:0,L=Q>0?Q*G:0,Ze=this.findCurrentBid(t,i),te=this.isAsinLike(a)?"productTarget":"keyword",et=L>0&&O>0?this.roundCurrency(Math.max(.02,Math.min(L,O*1.15))):L>0?this.roundCurrency(Math.max(.02,L)):null,me=this.firstString(t.purchasedAsin,t.purchasedASIN,t.advertisedAsin,t.advertisedASIN,t.asin,t.ASIN),pe=this.findAdGroupTargetedAsins(t,i),ne=this.uniqueAsins([me,...pe]),tt=ne[0]||"",nt=this.firstString(t.purchasedSku,t.purchasedSKU,t.advertisedSku,t.advertisedSKU,t.sku,t.SKU),ge=pe.length?"Ad group targeted ASINs":me?"Source report field":"",it=ne.length?`${ge}; this is targeting context, not purchased-product attribution.`:"No targeted ASINs were found for this ad group in the current campaign snapshot.",ue=!!a&&this.normalized(a)===this.normalized(u)&&m.toLowerCase().includes("exact"),se=b<=0&&(A>=Number(this.noSaleClickThreshold())||_>=Number(this.noSaleSpendThreshold())),at=this.hasBadIntentToken(a),he=t.firstSeenDate||null,rt=!!he&&Date.now()-new Date(he).getTime()<14*864e5,W="WATCH",q="low",$="Keep collecting data before changing targeting.",H="Not enough conversion or waste signal yet.",X=Math.min(30,_);ue&&se?(W="AUDIT_EXACT",q=A>=30||_>=Number(this.noSaleSpendThreshold())*1.5?"high":"medium",$="Review the existing exact keyword. Consider lowering bid, pausing, or moving budget before adding negatives.",H=`This query is already exact but has ${A} clicks and $${_.toFixed(2)} spend without orders.`,X=82+Math.min(18,_/2)):ue?(W="ALREADY_COVERED",q=b>
10?"high":"medium",$="No harvest needed. Use this row to judge whether the existing exact keyword deserves a bid or budget change.",H="The customer query already exists as an exact keyword in this source.",X=b>0?55+Math.min(20,T/20):35):at&&se?(W="NEGATIVE_PHRASE",q=A>=20||_>=Number(this.noSaleSpendThreshold())?"high":"medium",$=`Review adding "${a}" or its bad-intent root as a negative phrase at the safest campaign/ad group level.`,H="The query has waste and contains a modifier that often indicates mismatched buying intent.",X=88+Math.min(12,_/3)):b>=2&&E!=null&&E<=G?(W="ADD_EXACT",q=A>=20?"high":"medium",$=te==="productTarget"?`Add "${a}" as an ASIN product target. Start near the suggested bid, then watch ACOS and traffic quality.`:`Add "${a}" as an exact keyword. Start near the suggested bid, then watch ACOS and rank movement.`,H=`${b} orders at ${(E*100).toFixed(1)}% ACOS, at or below the ${this.targetAcos()}% target.`,X=90+Math.min(10,T/50)):b>=1&&E!=null&&E<=G*.7&&(D>=.08||A<=15)?(W="FAST_HARVEST",q=A>=8?"medium":"low",$=te==="productTarget"?`Add "${a}" as an ASIN product target now, but watch it closely because the sample is still early.`:`Add "${a}" as exact now, but watch it closely because the sample is still early.`,H=`Early winner: ${b} order with ACOS at ${(E*100).toFixed(1)}%, well below target.`,X=84+Math.min(10,T/50)):se?(W="NEGATIVE_EXACT",q=A>=30||_>=Number(this.noSaleSpendThreshold())*1.5?"high":"medium",$=`Review adding "${a}" as a negative exact in this campaign/ad group.`,H=`${A} clicks and $${_.toFixed(2)} spend without attributed orders.`,X=80+Math.min(18,_/2)):b>0&&E!=null&&E>G*1.25&&(W="WATCH",q="medium",$="Do not harvest yet. If strategically important, improve bid/control first and revisit after more mature data.",H=`It converts, but ACOS is ${(E*100).toFixed(1)}%, above the ${this.targetAcos()}% target.`,X=48+Math.min(15,_/4));let J=null,Z;if(W==="NEGATIVE_EXACT"||W==="NEGATIVE_PHRASE"){let _e=a.toLowerCase(),ie=e?.get(_e)?.size??1,de=n?.get(_e)?.size??1;ie>=3?(J="campaign",Z=`Appears in ${ie} campaigns \u2014 add as a campaign-level negative for broad structural protection.`):ie===2?(J="both",Z=`Appears in ${ie} campaigns, ${de} ad groups \u2014 add at campaign level in each, or ad-group level for surgical control.`):de>=2?(J="adGroup",Z=`Single campaign, ${de} ad groups \u2014 add as an ad-group-level negative to avoid blocking other ad groups.`):(J="adGroup",Z="Single campaign and ad group \u2014 ad-group-level negative gives the most precise control.")}return F(V({},t),{rowKey:y,searchTerm:a,keyword:u,targeting:h,matchType:m,impressions:z,clicks:A,cost:_,sales14d:T,purchases14d:b,costPerClick:O,currentBid:Ze,clickThroughRate:k,acos:E,conversionRate:D,isNewTerm:rt,recommendation:W,recommendationLabel:this.getRecommendationLabel(W,te),confidence:q,suggestedBid:et,targetEntityType:te,associatedAsin:tt,associatedAsins:ne,associationSortValue:ne.join(" "),associatedSku:nt,associatedAsinSource:ge,associatedProductNote:it,manualAction:$,reason:H,priorityScore:X,negativeScope:J,negativeScopeNote:Z})}getRecommendationLabel(t,e="keyword"){switch(t){case"ADD_EXACT":return e==="productTarget"?"Add Product Target":"Add Exact";case"FAST_HARVEST":return e==="productTarget"?"Fast Product Target":"Fast Harvest";case"NEGATIVE_EXACT":return"Negative Exact";case"NEGATIVE_PHRASE":return"Neg Phrase Review";case"AUDIT_EXACT":return"Audit Exact";case"ALREADY_COVERED":return"Already Covered";default:return"Watch"}}getRecommendationClass(t){return t==="ADD_EXACT"||t==="FAST_HARVEST"?"rec-good":t==="NEGATIVE_EXACT"||t==="NEGATIVE_PHRASE"||t==="AUDIT_EXACT"?"rec-risk":t==="ALREADY_COVERED"?"rec-covered":"rec-watch"}getCoverageClass(t){return t?.status==="queryable"?"coverage-queryable":t?.status==="backup_only"?"coverage-backup":"coverage-missing"}getCoverageLabel(t){return t?.status==="queryable"?"Queryable":t?.status==="backup_only"?"Saved":"Missing"}getCoverageTooltip(t){let e=Number(t?.warehouse?.rowCount)||0,n=Number(t?.warehouse?.spRows)||0,i=Number(t?.warehouse?.sbRows)||0;return t?.status==="queryable"?`${e} BigQuery rows (${n} SP, ${i}
1 SB)`:t?.status==="backup_only"?"Backup file exists; BigQuery ingestion has not produced queryable rows yet.":"No search-term backup file or warehouse rows found for this date."}async loadCoverage(t=!0){this.applyAvailableDataDateDefaults();let e=this.vm(),n=e?.getActiveConnection?.()||e?.selectedConnection(),i=e?.activeProfileId(),a=e?.currentOrgId();if(!n||!i||!a){this.error.set("Please select a profile first.");return}if(this.startDate()>this.endDate()){this.error.set("Start date must be on or before end date.");return}let u=this.requestContextKey(n.connectionId,i,a);if(!t&&this.coverage()&&this.loadedCoverageContextKey===u)return;let h=++this.coverageRequestGeneration;this.coverageLoading.set(!0),this.error.set(null);try{let m=await this.api.getSearchTermCoverage(n.connectionId,i,a,this.startDate(),this.endDate());if(h!==this.coverageRequestGeneration||!this.isRequestContextCurrent(u))return;this.coverage.set(m),this.loadedCoverageContextKey=u}catch(m){if(h!==this.coverageRequestGeneration||!this.isRequestContextCurrent(u))return;this.error.set(m?.message||"Failed to load search term coverage.")}finally{h===this.coverageRequestGeneration&&this.coverageLoading.set(!1)}}exportRecommendations(){let t=this.filteredRows();if(!t.length)return;let e=["recommendation","confidence","searchTerm","manualAction","reason","suggestedBid","campaignName","adGroupName","keyword","targeting","matchType","adType","impressions","clicks","spend","sales14d","orders14d","acos","cvr","cpc","firstSeenDate","lastSeenDate","daysObserved"],n=m=>`"${String(m??"").replace(/"/g,'""')}"`,i=[e.join(","),...t.map(m=>[m.recommendationLabel,m.confidence,m.searchTerm,m.manualAction,m.reason,m.suggestedBid??"",m.campaignName||"",m.adGroupName||"",m.keyword||"",m.targeting||"",m.matchType||"",m._adType||"",m.impressions,m.clicks,m.cost,m.sales14d,m.purchases14d,m.acos==null?"":m.acos,m.conversionRate,m.costPerClick,m.firstSeenDate||"",m.lastSeenDate||"",m.daysObserved||0].map(n).join(","))].join(`
2`),a=new Blob([i],{type:"text/csv;charset=utf-8;"}),u=URL.createObjectURL(a),h=document.createElement("a");h.href=u,h.download=`search-term-harvesting-${this.startDate()}-${this.endDate()}.csv`,h.click(),URL.revokeObjectURL(u)}async fetchSearchTerms(t=!0){this.applyAvailableDataDateDefaults();let e=this.vm(),n=e?.getActiveConnection?.()||e?.selectedConnection(),i=e?.activeProfileId(),a=e?.currentOrgId();if(!n||!i||!a){this.error.set("Please select a profile first.");return}let u=this.requestContextKey(n.connectionId,i,a),h=`${a}::${i}`,m=this.loadedAnnotationProfileKey!==h;if(!t&&this.rows().length&&this.loadedRowsContextKey===u){this.loadCoverage(!1);return}let y=++this.rowsRequestGeneration;++this.moreTermsRequestGeneration,this.loadingMoreTerms.set(!1),this.loading.set(!0),this.error.set(null),this.dataSourceMessage.set(null),this.rows.set([]),this.termNextCursor.set(null),this.termHasMore.set(!1),this.termTotalRows.set(0),this.annotationRow.set(null),m&&(this.annotationRows.set({}),this.annotationNextCursor.set(null),this.annotationHasMore.set(!1),this.annotationsLoaded.set(!1));try{this.loadCoverage(!1);let z=this.adTypeFilter()==="SP"?"SPONSORED_PRODUCTS":this.adTypeFilter()==="SB"?"SPONSORED_BRANDS":void 0,A;try{A=await this.api.getSearchIntelligenceTerms(a,String(i),this.startDate(),this.endDate(),z,re,null)}catch(T){if(!this.isMissingSearchIntelligenceCallable(T))throw T;let b=await this.api.getHistoricalSearchTerms(a,i,this.startDate(),this.endDate(),z);A={rows:(b?.rows||[]).slice(0,re),hasMore:!1,nextCursor:null,totalRowCount:Math.min((b?.rows||[]).length,re),compatibility:!0}}if(y!==this.rowsRequestGeneration||!this.isRequestContextCurrent(u))return;let _=A?.rows||[];if(this.rows.set(_),this.termNextCursor.set(A?.nextCursor||null),this.termHasMore.set(A?.hasMore===!0),this.termTotalRows.set(Number(A?.totalRowCount)||_.length),this.loadedRowsContextKey=u,m&&this.loadAnnotationPage(a,String(i),!1),_.length){this.dataSourceMessage.set(A.compatibility?`Loaded ${_.length.toLocaleString()} compatibility rows. Deploy the Search Intelligence callables to enable bounded paging and sparse notes.`:`Loaded ${_.length.toLocaleStr
2ing()} of ${this.termTotalRows().toLocaleString()} warehouse rows${A.hasMore?"; more are available.":"."} Saved notes are sparse Firestore records.`);return}this.dataSourceMessage.set("No saved warehouse search-term rows were available for this range. Use Backfill Range to queue Amazon reports; completed reports will load here after BigQuery ingestion.")}catch(z){if(y!==this.rowsRequestGeneration||!this.isRequestContextCurrent(u))return;this.error.set(z?.message||"Failed to load search terms.")}finally{y===this.rowsRequestGeneration&&this.loading.set(!1)}}requestContextKey(t,e,n){return[n,t,e,this.startDate(),this.endDate(),this.adTypeFilter()].map(i=>String(i||"")).join("::")}isRequestContextCurrent(t){let e=this.searchIntelligenceScope();return!!e&&this.requestContextKey(e.connectionId,e.profileId,e.orgId)===t}isAnnotationScopeCurrent(t,e){let n=this.searchIntelligenceScope();return!!n&&n.orgId===t&&n.profileId===e}async loadMoreTerms(){let t=this.searchIntelligenceScope(),e=this.termNextCursor();if(!t||!e||this.loadingMoreTerms())return;let n=this.requestContextKey(t.connectionId,t.profileId,t.orgId),i=++this.moreTermsRequestGeneration;this.loadingMoreTerms.set(!0),this.error.set(null);try{let a=this.adTypeFilter()==="SP"?"SPONSORED_PRODUCTS":this.adTypeFilter()==="SB"?"SPONSORED_BRANDS":void 0,u=await this.api.getSearchIntelligenceTerms(t.orgId,t.profileId,this.startDate(),this.endDate(),a,re,e);if(i!==this.moreTermsRequestGeneration||!this.isRequestContextCurrent(n)||this.loadedRowsContextKey!==n)return;let h=this.rows(),m=new Set(h.map(z=>this.warehouseRowIdentity(z))),y=(u.rows||[]).filter(z=>!m.has(this.warehouseRowIdentity(z)));this.rows.set([...h,...y]),this.termNextCursor.set(u.nextCursor||null),this.termHasMore.set(u.hasMore===!0),this.termTotalRows.set(Number(u.totalRowCount)||this.termTotalRows()||this.rows().length),this.actionMessage.set(`Loaded ${y.length.toLocaleString()} more term row(s). ${this.rows().length.toLocaleString()} are now available for local filtering${u.hasMore?"; more remain.":"."}`)}catch(a){if(i!==this.moreTermsRequestGeneration||!this.isRequestContextCurrent(n))return;this.error.set(a?.message||"More search-term rows could not be loaded.")}finally{i===this.moreTermsRequestGeneration&&this.loadingMoreTerms.set(!1)}}async loadMoreSavedNotes(){let t=this.searchIntelligenceScope();!t||!this.annotationHasMore()||!this.annotationNextCursor()||await this.loadAnnotationPage(t.orgId,t.profileId,!0)}annotationFor(t){return this.annotationRows()[this.normalizeAnnotationKey(t.searchTerm)]||null}async openAnnotation(t){let e=this.searchIntelligenceScope();if(!e)return;let n=++this.annotationDetailRequestGeneration;this.annotationRow.set(t);let i=this.annotationFor(t);if(this.annotationText.set(i?.note||""),!(i||this.annotationsLoaded()&&!this.annotationHasMore())){this.annotationLoading.set(!0),this.error.set(null);try{let a=await this.api.getSearchIntelligenceAnnotation(e.orgId,e.profileId,t.searchTerm);if(n!==this.annotationDetailRequestGeneration||!this.isAnnotationScopeCurrent(e.orgId,e.profileId)||this.annotationRow()?.rowKey!==t.rowKey)return;a.annotation&&(this.annotationRows.update(u=>F(V({},u),{[a.normalizedText]:a.annotation})),this.annotationText.set(a.annotation.note||""))}catch(a){if(n!==this.annotationDetailRequestGeneration||!this.isAnnotationScopeCurrent(e.orgId,e.profileId))return;this.error.set(a?.message||"The saved note could not be loaded.")}finally{n===this.annotationDetailRequestGeneration&&this.annotationLoading.set(!1)}}}closeAnnotation(){++this.annotationDetailRequestGeneration,this.annotationRow.set(null),this.annotationText.set(""),this.annotationLoading.set(!1)}async saveAnnotation(){let t=this.annotationRow(),e=this.searchIntelligenceScope();if(!(!t||!e||this.annotationSaving())){this.annotationSaving.set(!0),this.error.set(null);try{let n=await this.api.saveSearchIntelligenceAnnotation(e.orgId,e.profileId,t.searchTerm,this.annotationText());this.annotationRows.update(i=>{let a=V({},i);return n.annotation?a[n.normalizedText]=n.annotation:delete a[n.normalizedText],a}),this.actionMessage.set(n.deleted?`Removed the note for "${t.searchTerm}".`:`Saved the note for "${t.searchTerm}".`),this.closeAnnotation()}catch(n){this.error.set(n?.message||"The note could not be saved.")}finally{this.annotationSaving.set(!1)}}}reviewInIsolation(t){this.router.navigate(["/adsmanager/isolation"],{queryParams:this.buildSearchIntelligenceHandoff(t)})}reviewInNegativeIntelligence(t){this.router.navigate(["/adsmanager/efficiency"],{queryParams:this.buildSearchIntelligenceHandoff(t)})}async loadAnnotationPage(t,e,n){let i=++this.annotationListRequestGeneration;try{let a=await this.api.listSearchIntelligenceAnnotations(t,e,500,n?this.annotationNextCursor(
2):null);if(i!==this.annotationListRequestGeneration||!this.isAnnotationScopeCurrent(t,e))return;let u=n?V({},this.annotationRows()):{};for(let h of a.rows||[])h.normalizedText&&(u[h.normalizedText]=h);this.annotationRows.set(u),this.annotationNextCursor.set(a.nextCursor||null),this.annotationsLoaded.set(!0),this.annotationHasMore.set(a.hasMore===!0),this.loadedAnnotationProfileKey=`${t}::${e}`}catch(a){if(i!==this.annotationListRequestGeneration||!this.isAnnotationScopeCurrent(t,e))return;this.isMissingSearchIntelligenceCallable(a)||this.actionMessage.set("Search terms loaded, but saved notes could not be loaded.")}}searchIntelligenceScope(){let t=this.vm(),e=t?.getActiveConnection?.()||t?.selectedConnection(),n=t?.activeProfileId(),i=t?.currentOrgId();return!e||!n||!i?null:{orgId:String(i),profileId:String(n),connectionId:String(e.connectionId||"")}}buildSearchIntelligenceHandoff(t){let e=this.searchIntelligenceScope(),n={from:"search-intelligence",startDate:this.startDate(),endDate:this.endDate()};return e?.profileId&&(n.profileId=e.profileId),e?.connectionId&&(n.connectionId=e.connectionId),t&&(n.searchTerm=t.searchTerm,n.recommendation=t.recommendation),n}normalizeAnnotationKey(t){return String(t||"").normalize("NFKC").toLocaleLowerCase("en-US").trim().replace(/\s+/g," ")}warehouseRowIdentity(t){return String(t?.id||[t?.searchTerm,t?.adProduct,t?.campaignId,t?.adGroupId,t?.keywordId,t?.targetId,t?.targeting].map(e=>String(e||"")).join("|"))}isMissingSearchIntelligenceCallable(t){let e=String(t?.code||"").toLowerCase(),n=String(t?.message||"").toLowerCase();return e.includes("not-found")||e.includes("unimplemented")||n.includes("not found")}async backfillSearchTerms(){this.applyAvailableDataDateDefaults();let t=this.vm(),e=t?.getActiveConnection?.()||t?.selectedConnection(),n=t?.activeProfileId(),i=t?.currentOrgId();if(!e||!n||!i){this.error.set("Please select a profile first.");return}if(this.startDate()>this.endDate()){this.error.set("Start date must be on or before end date.");return}this.backfillLoading.set(!0),this.error.set(null),this.backfillMessage.set(null),this.backfillResult.set(null);try{let a=await this.api.backfillSearchTerms(e.connectionId,n,i,this.startDate(),this.endDate());this.backfillResult.set(a),this.backfillMessage.set(`Backfill saved ${a.savedDates||0} of ${a.requestedDates||0} dates (${a.totalSpRows||0} SP rows, ${a.totalSbRows||0} SB rows). BigQuery ingestion runs in the background; refresh the table shortly.`),await this.loadCoverage(!0)}catch(a){this.error.set(a?.message||"Failed to backfill search terms.")}finally{this.backfillLoading.set(!1)}}buildRowKey(t,e){return[t._adType||"",t.date||t.reportDate||t.startDate||t.endDate||this.startDate(),t.campaignId||t.campaignName||"",t.adGroupId||t.adGroupName||"",t.keywordId||t.targetId||t.keyword||t.targeting||"",e].map(n=>String(n||"").trim().toLowerCase()).join("::")}firstString(...t){for(let e of t){let n=String(e??"").trim();if(n)return n}return""}isAsinLike(t){return/^b0[a-z0-9]{8}$/i.test(String(t||"").trim())}uniqueAsins(t){let e=new Set,n=[];for(let i of t)for(let a of this.extractAsins(i)){let u=a.toUpperCase();e.has(u)||(e.add(u),n.push(u))}return n}extractAsins(t){let e=[],n=i=>{if(i!=null){if(typeof i=="string"||typeof i=="number"){let u=String(i).match(/B0[A-Z0-9]{8}/gi)||[];e.push(...u.map(h=>h.toUpperCase()));return}if(Array.isArray(i)){i.forEach(n);return}typeof i=="object"&&Object.values(i).forEach(n)}};return n(t),e}buildEntityContext(){let t=new Map,e=new Map,n=new Map,i=new Map,a=new Set,u=(_,T,b)=>{T&&(!_.has(T)||_.get(T)==null&&b!=null)&&_.set(T,b)},h=(_,T,b)=>{if(!_||!T)return;let O=this.uniqueAsins([b?.resolvedExpression,b?.expression,b?.displayLabel,b?.matchLabel,b?.targeting,b?.targetingText]);if(!O.length)return;let k=this.adGroupEntityKey(_,T);n.set(k,this.uniqueAsins([...n.get(k)||[],...O]))},m=(_,T="",b="")=>{let O=this.firstString(_?.campaignId,T),k=this.firstString(_?.adGroupId,b),E=this.firstString(_?.keywordId,_?.targetId,_?.entityId),D=[_?.keywordText,_?.nativeLanguageKeyword,_?.displayLabel,_?.matchLabel,_?.resolvedExpression,_?.targeting,_?.targetingText].map(L=>
2this.normalized(L)).filter(Boolean),G=this.asFiniteBid(_?.bid),Q=[O,k,E,D[0]||"",this.normalized(_?.matchType)].join("::");if(!a.has(Q)){a.add(Q),E&&u(t,E,G);for(let L of D)u(e,this.compositeEntityKey(O,k,L,this.normalized(_?.matchType)),G),u(e,this.compositeEntityKey(O,k,L,""),G);h(O,k,_)}},y=(_,T,b,O)=>{let k=this.firstString(_?.campaignId,T?.campaignId),E=this.firstString(T?.adGroupId);if(!k||!E)return;let D=`${b}::${k}::${E}`;i.has(D)||i.set(D,{key:D,campaignId:k,campaignName:this.firstString(_?.name,_?.campaignName,T?.campaignName,k),adGroupId:E,adGroupName:this.firstString(T?.name,T?.adGroupName,E),kind:b,note:O})},z=_=>{let T=new Set;for(let b of _||[]){let O=this.firstString(b?.campaignId);if(!T.has(O||b?.campaignName||"")){T.add(O||b?.campaignName||"");for(let k of b?.adGroups||[]){let E=this.firstString(k?.adGroupId),D=this.vm()?.getAdGroupPrimaryEntity?.(k)||this.inferAdGroupKind(b,k);if((D==="keywords"||D==="keyword"||D==="mixed")&&y(b,k,"keyword","Existing keyword ad group"),(D==="targets"||D==="productTarget"||D==="mixed")&&y(b,k,"productTarget","Existing product-target ad group"),D==="empty"){let G=this.inferAdGroupKind(b,k);y(b,k,G,"Empty ad group; inferred from campaign/ad group name")}for(let G of k?.keywords||[])m(G,O,E);for(let G of k?.targets||[])m(G,O,E)}}}},A=this.vm();z(A?.campaignManagerTree?.()||[]),z(A?.campaignManagerSource?.()?.campaignManager||[]);for(let _ of A?.monitorCache?.()?.keywords||[])m(_);for(let _ of A?.monitorCache?.()?.targets||[])m(_);return{bidByEntityId:t,bidByCompositeKey:e,targetedAsinsByAdGroup:n,destinationOptions:[...i.values()].sort((_,T)=>`${_.kind} ${_.campaignName} ${_.adGroupName}`.localeCompare(`${T.kind} ${T.campaignName} ${T.adGroupName}`))}}findAdGroupTargetedAsins(t,e){let n=this.firstString(t.campaignId),i=this.firstString(t.adGroupId);return!n||!i?[]:e.targetedAsinsByAdGroup.get(this.adGroupEntityKey(n,i))||[]}getAsinPreview(t){return(t.associatedAsins||[]).slice(0,4)}openAsinList(t){(t.associatedAsins||[]).length>4&&this.asinListRow.set(t)}closeAsinList(){this.asinListRow.set(null)}findCurrentBid(t,e){let n=this.firstString(t.keywordId,t.targetId),i=this.firstString(t.campaignId),a=this.firstString(t.adGroupId),u=this.normalized(t.keyword||t.keywordText||t.searchTerm),h=this.normalized(t.targeting||t.targetingText||t.searchTerm),m=this.normalized(t.matchType);if(n&&e.bidByEntityId.has(n))return e.bidByEntityId.get(n)??null;if(u){let y=e.bidByCompositeKey.get(this.compositeEntityKey(i,a,u,m));if(y!=null)return y;if(e.bidByCompositeKey.has(this.compositeEntityKey(i,a,u,"")))return e.bidByCompositeKey.get(this.compositeEntityKey(i,a,u,""))??null}return h&&e.bidByCompositeKey.has(this.compositeEntityKey(i,a,h,""))?e.bidByCompositeKey.get(this.compositeEntityKey(i,a,h,""))??null:null}adGroupEntityKey(t,e){return`${t}::${e}`}compositeEntityKey(t,e,n,i){return`${t}::${e}::${n}::${i}`}asFiniteBid(t){let e=Number(t);return Number.isFinite(e)&&e>0?this.roundCurrency(e):null}resetAccountScopedState(){this.invalidateReadRequests(),this.rows.set([]),this.termNextCursor.set(null),this.termHasMore.set(!1),this.termTotalRows.set(0),this.coverage.set(null),this.loadedRowsContextKey="",this.loadedCoverageContextKey="",this.loadedAnnotationProfileKey="",this.annotationRows.set({}),this.annotationNextCursor.set(null),this.annotationHasMore.set(!1),this.annotationsLoaded.set(!1),this.annotationRow.set(null),this.error.set(null),this.backfillMessage.set(null),this.backfillResult.set(null),this.dataSourceMessage.set(null),this.actionMessage.set(null),this.selectedKeys.set({}),this.bulkModalOpen.set(!1),this.asinListRow.set(null),this.destinationAssignments.set({}),this.suggestionTab.set("open")}invalidateReadRequests(){++this.rowsRequestGeneration,++this.coverageRequestGeneration,++this.annotationListRequestGeneration,++this.annotationDetailRequestGeneration,++this.moreTermsRequestGeneration,this.loading.set(!1),this.coverageLoading.set(!1),this.loadingMoreTerms.set(!1),this.annotationLoading.set(!1)}clearSearchQueryState(){this.invalidateReadRequests(),this.rows.set([]),this.termNextCursor.set(null),this.termHasMore.set(!1),this.termTotalRows.set(0),this.loadedRowsContextKey="",this.coverage.set(null),this.loadedCoverageContextKey="",this.dataSourceMe
2ssage.set(null),this.selectedKeys.set({})}getArchiveKey(){let t=this.vm(),e=this.selectedAccountMeta(),n=t?.currentOrgId?.()||"org",i=e.connectionId||t?.getActiveConnection?.()?.connectionId||"connection",a=e.profileId||t?.activeProfileId?.()||"profile";return`amazon_search_term_archived_suggestions_${n}_${i}_${a}`}loadArchivedSuggestions(){try{let t=localStorage.getItem(this.getArchiveKey()),e=t?JSON.parse(t):[];this.archivedRows.set(Array.isArray(e)?e:[])}catch{this.archivedRows.set([])}}saveArchivedSuggestions(t=this.archivedRows()){try{localStorage.setItem(this.getArchiveKey(),JSON.stringify(t.slice(0,2e3)))}catch{this.actionMessage.set("Suggestions were exported, but this browser could not save the archived tab.")}}setSuggestionTab(t){this.suggestionTab.set(t),this.clearSelection(),this.bulkModalOpen.set(!1)}isUploadableSuggestion(t){return this.suggestionTab()!=="open"?!1:["ADD_EXACT","FAST_HARVEST","NEGATIVE_EXACT","NEGATIVE_PHRASE"].includes(t.recommendation)}isSelected(t){return!!this.selectedKeys()[t.rowKey]}toggleSelection(t,e){this.isUploadableSuggestion(t)&&this.selectedKeys.update(n=>F(V({},n),{[t.rowKey]:e}))}toggleAllFiltered(t){let e=V({},this.selectedKeys());for(let n of this.selectableRows())e[n.rowKey]=t;this.selectedKeys.set(e)}clearSelection(){this.selectedKeys.set({}),this.destinationAssignments.set({})}openBulkExportModal(){let t=this.selectedRows();if(!t.length)return;let e=V({},this.destinationAssignments());for(let n of t){let i=e[n.rowKey];e[n.rowKey]={destinationKey:i?.destinationKey||this.getDefaultDestinationKey(n),bidMode:i?.bidMode||"avgCpc",customBid:i?.customBid??null}}this.destinationAssignments.set(e),this.actionMessage.set(null),this.bulkModalOpen.set(!0)}closeBulkExportModal(){this.bulkModalOpen.set(!1)}getBulkExportOrderNote(){return"Grid sorting is only for review. The downloaded bulk file is ordered by Amazon entity type, campaign, ad group, and search term."}getDestinationOptionsForRow(t){return this.destinationOptions().filter(e=>e.kind===t.targetEntityType)}updateDestination(t,e){this.destinationAssignments.update(n=>F(V({},n),{[t]:F(V({},n[t]||{bidMode:"avgCpc",customBid:null}),{destinationKey:e})}))}updateBidMode(t,e){this.destinationAssignments.update(n=>F(V({},n),{[t]:F(V({},n[t]||{destinationKey:"",customBid:null}),{bidMode:e})}))}updateCustomBid(t,e){let n=Number(e);this.destinationAssignments.update(i=>F(V({},i),{[t]:F(V({},i[t]||{destinationKey:"",bidMode:"custom"}),{customBid:Number.isFinite(n)&&n>0?this.roundCurrency(n):null})}))}getAssignment(t){return this.destinationAssignments()[t.rowKey]||{destinationKey:this.getDefaultDestinationKey(t),bidMode:"avgCpc",customBid:null}}getExportBid(t){if(t.recommendation==="NEGATIVE_EXACT"||t.recommendation==="NEGATIVE_PHRASE")return null;let e=this.getAssignment(t);return e.bidMode==="currentBid"?t.currentBid:e.bidMode==="custom"?e.customBid:this.roundCurrency(t.costPerClick||t.suggestedBid||t.currentBid||0)||null}async exportBulkUpload(){let t=this.getRowsForBulkExport(this.selectedRows());if(!t.length)return;let e=[],n=[];for(let m of t){let y=this.resolveDestination(m);if(!y){n.push(m.searchTerm);continue}let z=m.recommendation==="NEGATIVE_EXACT"||m.recommendation==="NEGATIVE_PHRASE";e.push({recommendation:m.recommendation,searchTerm:m.searchTerm,targetEntityType:m.targetEntityType,campaignId:y.campaignId,adGroupId:y.adGroupId,campaignName:y.campaignName,adGroupName:y.adGroupName,bid:this.getExportBid(m),operation:"create",entity:z?"Negative Keyword":m.targetEntityType==="productTarget"?"Product Targeting":"Keyword",matchType:z?m.recommendation==="NEGATIVE_PHRASE"?"Negative Phrase":"Negative Exact":"Exact",impressions:m.impressions,clicks:m.clicks,spend:m.cost,sales:m.sales14d,orders:m.purchases14d,cpc:m.costPerClick,acos:m.acos})}if(n.length){this.actionMessage.set(`Choose destination campaigns/ad groups for ${n.length} selected harvest suggestion(s) before exporting.`);return}let i={startDate:this.startDate(),endDate:this.endDate()};try{await this.vm().recordAmazonBulkExportRequest({exportType:"search_terms_bulk_harvest",rowCount:e.length,accountName:this.selectedAccountMeta().accountName,dateRange:`${i.startDate} to ${i.endDate}
2`,startDate:i.startDate,endDate:i.endDate,sampleActions:e.slice(0,10).map(m=>({recommendation:m.recommendation,entity:m.entity,matchType:m.matchType,campaignId:m.campaignId,adGroupId:m.adGroupId,searchTerm:m.searchTerm,bid:m.bid}))})}catch(m){this.actionMessage.set(m?.message||"Could not record the bulk export request in the audit log.");return}this.bulkExport.exportSearchTermHarvestXlsx(e,this.selectedAccountMeta().accountName);let a=new Date().toISOString(),u=new Map(this.archivedRows().map(m=>[m.rowKey,m]));for(let m of t)u.set(m.rowKey,F(V({},m),{archivedAt:a}));let h=[...u.values()].sort((m,y)=>String(y.archivedAt||"").localeCompare(String(m.archivedAt||"")));this.archivedRows.set(h),this.saveArchivedSuggestions(h),this.clearSelection(),this.bulkModalOpen.set(!1),this.actionMessage.set(`Exported ${e.length} suggestion(s) and moved them to Archived Suggestions for this account.`)}getRowsForBulkExport(t){let e=n=>n.recommendation==="NEGATIVE_EXACT"||n.recommendation==="NEGATIVE_PHRASE"?3:n.targetEntityType==="keyword"?1:2;return[...t].sort((n,i)=>{let a=this.resolveDestination(n),u=this.resolveDestination(i);return e(n)-e(i)||String(a?.campaignName||n.campaignName||"").localeCompare(String(u?.campaignName||i.campaignName||""))||String(a?.adGroupName||n.adGroupName||"").localeCompare(String(u?.adGroupName||i.adGroupName||""))||String(n.searchTerm||"").localeCompare(String(i.searchTerm||""))})}buildDestinationOptions(){let t=new Map;for(let n of this.entityContext().destinationOptions)t.set(n.key,n);let e=(n,i,a,u)=>{let h=this.firstString(n?.campaignId,i?.campaignId),m=this.firstString(i?.adGroupId);if(!h||!m)return;let y=`${a}::${h}::${m}`;t.has(y)||t.set(y,{key:y,campaignId:h,campaignName:this.firstString(n?.name,n?.campaignName,i?.campaignName,h),adGroupId:m,adGroupName:this.firstString(i?.name,i?.adGroupName,m),kind:a,note:u})};for(let n of this.harvestRows())!n.campaignId||!n.adGroupId||e({campaignId:n.campaignId,name:n.campaignName},{campaignId:n.campaignId,adGroupId:n.adGroupId,name:n.adGroupName},n.targetEntityType,"Source ad group from this search-term row");return[...t.values()].sort((n,i)=>`${n.kind} ${n.campaignName} ${n.adGroupName}`.localeCompare(`${i.kind} ${i.campaignName} ${i.adGroupName}`))}inferAdGroupKind(t,e){let n=`${t?.name||t?.campaignName||""} ${e?.name||e?.adGroupName||""}`.toLowerCase();return n.includes("asin")||n.includes("product")||n.includes("target")?"productTarget":"keyword"}getDefaultDestinationKey(t){return t.recommendation==="NEGATIVE_EXACT"||t.recommendation==="NEGATIVE_PHRASE"?`source::${t.campaignId||""}::${t.adGroupId||""}`:this.getDestinationOptionsForRow(t)[0]?.key||""}resolveDestination(t){if(t.recommendation==="NEGATIVE_EXACT"||t.recommendation==="NEGATIVE_PHRASE"){let i=this.firstString(t.campaignId),a=this.firstString(t.adGroupId);return!i||!a?null:{key:`source::${i}::${a}`,campaignId:i,campaignName:t.campaignName||i,adGroupId:a,adGroupName:t.adGroupName||a,kind:t.targetEntityType,note:"Source campaign/ad group for negative keyword"}}let n=this.getAssignment(t);return this.destinationOptions().find(i=>i.key===n.destinationKey)||null}static \u0275fac=function(e){return new(e||l)};static \u0275cmp=Ce({type:l,selectors:[["app-amazon-search-terms"]],inputs:{vm:[1,"vm"]},decls:74,vars:32,consts:[[1,"amz-card","amz-section-gap"],[1,"amz-card-header"],[1,"amz-card-subtitle"],[1,"amz-header-actions"],[1,"amz-btn","amz-btn--primary",3,"click","disabled"],[1,"amz-actions-menu"],[1,"amz-btn","amz-btn--outline"],[1,"amz-actions-menu__panel"],[1,"amz-btn","amz-btn--ghost","amz-btn--sm",3,"click","disabled"],[1,"amz-btn","amz-btn--secondary",3,"disabled"],[1,"amz-card-body"],[1,"amz-bid-meta","amz-bid-meta--debug","amz-section-gap"],[1,"amz-grid-filters"],[1,"amz-form-group",2,"width","160px"],["type","date",1,"amz-input",3,"ngModelChange","ngModel","disabled"],[1,"amz-form-group",2,"width","180px"],[1,"amz-input",3,"ngModelChange","ngModel","disabled"],["value","ALL"],["value","SP"],["value","SB"],[1,"amz-form-group",2,"width","210px"],[3,"value"],[1,"amz-form-group","metric-input"],["type","number","min","1","max","200",1,"amz-input",3,"ngModelChange","ngModel","disabled"],["type","number","min","1","max","1000",1,"amz-input",3,"ngModelChange","ngModel","disabled"],[1,"amz-form-group",2,"flex","1","min-width","250px"],["type","text","placeholder","Search term, keyword, campaign, or reason...",1,"amz-input",3,"ngModelChange","ngModel","disabled"],[1,"coverage-panel","amz-section-gap"],[1,"harvest-kpis","amz-section-gap"],[1,"amz-alert","amz-alert--error","amz-section-gap"],[1,"amz-alert","amz-alert--info","amz-section-gap"],[1,"amz-alert","amz-alert--teal","amz-section-gap"],[1,"bulk-action-bar","amz-section-gap"],[1,"amz-card","amz-card--soft","amz-section-gap"],[1,"bulk-modal-backdrop"],[1,"amz-btn","amz-btn--secondary",3,"click","disabled"],[1,"amz-label"],[1,"amz-mono"],[1,"coverage-header"],[1,"coverage-legend"],[1,"dot","dot-queryable"],[1,"dot","dot-backup"],[1,"dot","dot-missing"],[1,"coverage-calendar"],[1,"coverage-day",3,"ngClass","title"],[1,"coverage-resolution"],[1,"coverage-actions"],["title","Show all terms",1,"harvest-kpi","harvest-kpi--btn",3,"click"],["title","Filter to harvest candidates",1,"harvest-kpi","harvest-kpi--btn","rec-good",3,"click"],["title","Filter to negative candidates",1,"harvest-kpi","harvest-kpi--btn","rec-risk",3,"click"],["title","Filter to existing exact keywords that need review",1,"harvest-kpi","harvest-kpi--btn","rec-risk",3,"click"],["title","Filter to already-covered terms",1,"harvest-kpi","harvest-kpi--btn","rec-covered",3,"click"],["title","Search terms first seen within the last 14 days \u2014 click to filter",1,"harvest-kpi","harvest-kpi--btn","harvest-kpi--new"],[1,"harvest-kpi"],[1,"bulk-action-controls"],[1,"amz-btn","amz-btn--secondary",3,"click"],[1,"amz-btn","amz-btn--primary",3,"click"],[1,"amz-card-body",2,"text-align","center","padding","40px","color","#64748b"],[2,"font-weight","600","margin-bottom","8px","font-size","16px"],[2,"font-size","13px","margin","0"],[2,"font-size","14px","margin","0"],[1,"search-term-grid-toolbar",3,"clearFilters","removeFilter","sortKeyChange","sortDirectionChange","columnVisibilityChange","densityChange","autoFit","resetLayout","showSearch","resultCount","totalCount","filterCount","filterChips","sortOptions","sortKey","sortDirection","columns","density"],[1,"search-term-grid-context"],[1,"amz-btn","amz-btn--xs","amz-btn--outline"],[1,"amz-table-wrap"],[1,"amz-table-head","harvest-grid"],["data-am-grid-column","notes","columnKey","notes","label","Notes",1,"note-col",3,"resizeWidth","resizeCommit","resizeAutoFit","grid","sortable","align","width","minWidth","maxWidth"],["data-am-grid-column","re
2commendation","columnKey","recommendation","label","Recommendation",3,"sortRequested","resizeWidth","resizeCommit","resizeAutoFit","grid","sortable","active","direction","align","width","minWidth","maxWidth"],["data-am-grid-column","searchTerm","columnKey","searchTerm","label","Search term",3,"sortRequested","resizeWidth","resizeCommit","resizeAutoFit","grid","sortable","active","direction","align","width","minWidth","maxWidth"],["data-am-grid-column","asins","columnKey","asins","label","Targeted ASINs",3,"sortRequested","resizeWidth","resizeCommit","resizeAutoFit","grid","sortable","active","direction","align","width","minWidth","maxWidth"],["data-am-grid-column","manualAction","columnKey","manualAction","label","Manual action",3,"sortRequested","resizeWidth","resizeCommit","resizeAutoFit","grid","sortable","active","direction","align","width","minWidth","maxWidth"],["data-am-grid-column","campaign","columnKey","campaign","label","Campaign",3,"sortRequested","resizeWidth","resizeCommit","resizeAutoFit","grid","sortable","active","direction","align","width","minWidth","maxWidth"],["data-am-grid-column","clicks","columnKey","clicks","label","Clicks",3,"sortRequested","resizeWidth","resizeCommit","resizeAutoFit","grid","sortable","active","direction","align","width","minWidth","maxWidth"],["data-am-grid-column","spend","columnKey","spend","label","Spend",3,"sortRequested","resizeWidth","resizeCommit","resizeAutoFit","grid","sortable","active","direction","align","width","minWidth","maxWidth"],["data-am-grid-column","sales","columnKey","sales","label","Sales",3,"sortRequested","resizeWidth","resizeCommit","resizeAutoFit","grid","sortable","active","direction","align","width","minWidth","maxWidth"],["data-am-grid-column","orders","columnKey","orders","label","Orders",3,"sortRequested","resizeWidth","resizeCommit","resizeAutoFit","grid","sortable","active","direction","align","width","minWidth","maxWidth"],["data-am-grid-column","acos","columnKey","acos","label","ACOS",3,"sortRequested","resizeWidth","resizeCommit","resizeAutoFit","grid","sortable","active","direction","align","width","minWidth","maxWidth"],["data-am-grid-column","avgCpc","columnKey","avgCpc","label","Avg CPC",3,"sortRequested","resizeWidth","resizeCommit","resizeAutoFit","grid","sortable","active","direction","align","width","minWidth","maxWidth"],["data-am-grid-column","currentBid","columnKey","currentBid","label","Current bid",3,"sortRequested","resizeWidth","resizeCommit","resizeAutoFit","grid","sortable","active","direction","align","width","minWidth","maxWidth"],["data-am-grid-column","exportBid","columnKey","exportBid","label","Export bid",3,"sortRequested","resizeWidth","resizeCommit","resizeAutoFit","grid","sortable","active","direction","align","width","minWidth","maxWidth"],[2,"padding","28px","text-align","center","color","#64748b"],[2,"max-height","calc(100vh - 420px)","min-height","300px","overflow-y","auto"],[1,"amz-table-row","harvest-grid",3,"grid-density-compact","grid-density-comfortable","grid-template-columns","min-width"],[1,"term-page-actions"],[1,"amz-btn","amz-btn--xs","amz-btn--outline",3,"click"],[1,"amz-table-row","harvest-grid"],["data-am-grid-column","notes",1,"note-col"],["type","button",1,"term-note-button",3,"click"],[1,"term-note-preview",3,"title"],["data-am-grid-column","recommendation"],[1,"rec-badge",3,"ngClass"],["title","First seen within the last 14 days",1,"harvest-new-badge"],[1,"confidence"],["data-am-grid-column","searchTerm"],[2,"font-weight","700","color","#0f172a","font-size","13px","display","block","margin-bottom","4px"],[1,"amz-badge",3,"ngStyle"],[1,"source-meta"],["data-am-grid-column","asins"],["data-am-grid-column","manualAction"],[1,"manual-action"],[1,"reason"],[1,"term-row-handoffs"],["type","button",3,"click"],["data-am-grid-column","campaign"],[2,"color","#334155","font-size","12px","font-weight","600","display","block"],["data-am-grid-column","clicks",2,"text-align","right","color","#334155"],["data-am-grid-column","spend",2,"text-align","right","color","#d97706","font-weight","600"],["data-am-grid-column","sales",2,"text-align","right","color","#16a34a","font-weight","600"],["data-am-grid-column","orders",2,"text-align","right","color","#334155"],["data-am-grid-column","acos",2,"text-align","right","color","#334155"],["data-am-grid-column","avgCpc",2,"text-align","right","color","#334155"],["data-am-grid-column","currentBid",2,"text-align","right","color","#334155"],["data-am-grid-column","exportBid",2,"text-align","right","color","#0f766e","font-weight","700"],[1,"asin-preview"],["type","button",1,"asin-list-link"],["type","button",1,"asin-list-link",3,"click"],[3,"title"],[1,"amz-btn","amz-btn--outline",3,"click"],[1,"annotation-modal"],[1,"bulk-modal-header"],[1,"annotation-loading"],[1,"annotation-field"],[1,"bulk-modal-footer"],["rows","8","maxlength","4000","placeholder","Record context, a hypothesis, follow-up, or why this term matters.",1,"amz-input",3,"ngModelChange","ngModel"],[1,"asin-modal"],[1,"asin-list"]],template:function(e,n){if(e&1&&(r(0,"div",0)(1,"div",1)(2,"div")(3,"h2"),d(4,"Search Terms"),o(),r(5,"p",2),d(6,"Term-level evidence, sparse notes, and read-only handoffs to the specialist decision modules."),o()(),r(7,"div",3)(8,"button",4),x("click",function(){return n.fetchSearchTerms()}),d(9),o(),r(10,"details",5)(11,"summary",6),d(12,"Export"),o(),r(13,"div",7)(14,"button",8),x("click",function(){return n.exportRecommendations()}),d(15," CSV "),o()()(),w(16,ct,2,2,"button",9),o()(),r(17,"div",10),w(18,mt,20,4,"div",11),r(19,"div",12)(20,"div",13)(21,"label"),d(22,"From"),o(),r(23,"input",14),x("ngModelChange",function(a){return n.setStartDate(a)}),o()(),r(24,"div",13)(25,"label"),d(26,"To"),o(),r(27,"input",14),x("ngModelChange",function(a){return n.setEndDate(a)}),o()(),r(28,"div",15)(29,"label"),d(30,"Ad Product"),o(),r(31,"select",16),x("ngModelChange",function(a){return n.setAdTypeFilter(a)}),r(32,"option",17),d(33,"All Products"),o(),r(34,"option",18),d(35,"Sponsored Products"),o(),r(36,"option",19),d(37,"Sponsored Brands"),o()()(),r(38,"div",20)(39,"label"),d(40,"Recommendation"),o(),r(41,"select",16),x("ngModelChange",function(a){return n.recommendationFilter.set(a)}),j(42,pt,2,2,"option",21,st),o()(),r(44,"div",22)(45,"label"),d(46,"Target ACoS"),o(),r(47,"input",23),x("ngModelChange",function(a){return n.targetAcos.set(+a||25)}),o()(),r(48,"div",22)(49,"label"),d(50,"Min Clicks (No Sale)"),o(),r(51,"input",23),x("ngModelChange",function(a){return n.noSaleClickThreshold.set(+a||20)}),o()(),r(52,"div",22)(53,"label"),d(54,"Min Spend (No Sale)"),o(),r(55,"input",24),x("ngModelChange",function(a){return n.noSaleSpendThreshold.set(+a||25)}),o()(),r(56,"div",25)(57,"label"),d(58,"Search Filter"),o(),r(59,"input",26),x("ngModelChange",function(a){return n.search.set(a)}),o()(),w(60,gt,2,2,"button",9),o(),w(61,xt,21,5,"div",27),w(62,Ct,44,34,"div",28),w(63,bt,2,1,"div",29),w(64,Tt,3,2,"div",30),w(65,St,2,1,"div",31),w(66,yt,2,1,"div",30),w(67,At,11,0,"div",32),w(68,wt,6,0,"div",33)(69,Mt,4,0,"div",33)(70,Lt,27,158)(71,Bt,4,0,"div",33),w(72,Ht,17,4,"div",34),w(73,Ut,16,3,"div",34),o()()),e&2){let i,a,u,h,m;s(8),f("disabled",n.loading()||!((i=n.vm())!=null&&i.hasSelectedProfile())),s(),P(" ",n.loading()?"Loading...":"Load Search Terms"," "),s(5),f("disabled",!n.filteredRows().length),s(2),M(n.debugMode.enabled()?16:-1),s(2),M((a=n.vm())!=null&&a.hasSelectedProfile()&&n.debugMode.enabled()?18:-1),s(5),f("ngModel",n.startDate())("disabled",n.loading()),s(4),f("ngModel",n.endDate())("disabled",n.loading()),s(4),f("ngModel",n.adTypeFilter())("disabled",n.loading()),s(10),f("ngModel",n.recommendationFilter())("disabled",n.loading()||!n.rows().length),s(),Y(n.recommendationOptions),s(5),f("ngModel",n.targetAcos())("disabled",n.loading()),s(4),f("ngModel",n.noSaleClickThreshold())("disabled",n.loading()),s(4),f("ngModel",n.noSaleSpendThreshold())("disabled",n.loading()),s(4),f("ngModel",n.search())("disabled",n.loading()||!n.rows().length),s(),M(n.debugMode.enabled()?60:-1),s(),M((u=n.debugMode.enabled()&&n.coverage())?61:-1,u),s(),M(n.rows().length>0?62:-1),s(),M(n.error()?63:-1),s(),M(n.backfillMessage()?64:-1),s(),M(n.dataSourceMe
2ssage()?65:-1),s(),M(n.actionMessage()?66:-1),s(),M(n.rows().length>0?67:-1),s(),M(n.loading()?68:n.rows().length===0&&!n.error()?69:n.rows().length>0?70:71),s(4),M((h=n.annotationRow())?72:-1,h),s(),M((m=n.asinListRow())?73:-1,m)}},dependencies:[Re,Me,ke,qe,We,Fe,De,Ne,Ge,Ie,Be,Le,Ke,Ve,Qe,Xe,Ee,Pe,ze],styles:['@charset "UTF-8";.search-term-grid-toolbar[_ngcontent-%COMP%]{margin-bottom:10px}.search-term-grid-context[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;color:var(--text-muted);font-size:.76rem}.harvest-grid[_ngcontent-%COMP%] > .column-hidden[_ngcontent-%COMP%]{display:none}.amz-table-row.grid-density-compact[_ngcontent-%COMP%]{padding-block:7px}.amz-table-row.grid-density-comfortable[_ngcontent-%COMP%]{padding-block:17px}.amz-table-head[_ngcontent-%COMP%]   app-ads-manager-grid-header-cell[_ngcontent-%COMP%]{min-width:0}@media(max-width:720px){.search-term-grid-context[_ngcontent-%COMP%]{align-items:flex-start;flex-direction:column}}[_nghost-%COMP%]{display:block;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;--primary: #0ea5e9;--primary-dark: #0284c7;--bg-soft: #f8fafc;--border: #e2e8f0;--text-main: #0f172a;--text-muted: #64748b}.amz-card[_ngcontent-%COMP%]{background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;overflow:hidden}.amz-card-header[_ngcontent-%COMP%]{padding:24px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;background:linear-gradient(to right,#fff,#f8fafc)}.amz-card-header[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{margin:0;font-size:20px;font-weight:700;color:var(--text-main)}.amz-card-header[_ngcontent-%COMP%]   .amz-card-subtitle[_ngcontent-%COMP%]{margin:4px 0 0;font-size:14px;color:var(--text-muted)}.amz-card-body[_ngcontent-%COMP%]{padding:24px}.amz-header-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.amz-grid-filters[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;margin-bottom:24px}.metric-input[_ngcontent-%COMP%]{width:132px}.amz-form-group[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px}.amz-form-group[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.025em}.amz-input[_ngcontent-%COMP%]{height:40px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;color:var(--text-main);background:#fff;transition:all .2s;outline:none}.amz-input[_ngcontent-%COMP%]:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0ea5e91a}.amz-input[_ngcontent-%COMP%]:disabled{background:#f1f5f9;cursor:not-allowed}.amz-btn[_ngcontent-%COMP%]{height:40px;padding:0 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;border:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}.amz-btn--primary[_ngcontent-%COMP%]{background:var(--primary);color:#fff}.amz-btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px)}.amz-btn--primary[_ngcontent-%COMP%]:active:not(:disabled){transform:translateY(0)}.amz-btn--secondary[_ngcontent-%COMP%]{background:#f8fafc;border:1px solid var(--border);color:#334155}.amz-btn--secondary[_ngcontent-%COMP%]:hover:not(:disabled){background:#eef2f7}.amz-btn--outline[_ngcontent-%COMP%], .amz-btn--ghost[_ngcontent-%COMP%]{background:#fff;border:1px solid var(--border);color:#334155}.amz-btn--outline[_ngcontent-%COMP%]:hover:not(:disabled), .amz-btn--ghost[_ngcontent-%COMP%]:hover:not(:disabled){background:#f8fafc}.amz-btn--ghost[_ngcontent-%COMP%]{background:#f1f5f9}.amz-btn--sm[_ngcontent-%COMP%]{height:32px;padding:0 12px;font-size:12px}.amz-btn[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed}.amz-actions-menu[_ngcontent-%COMP%]{position:relative;display:inline-flex}.amz-actions-menu[_ngcontent-%COMP%]   summary[_ngcontent-%COMP%]{list-style:none}.amz-actions-menu[_ngcontent-%COMP%]   summary[_ngcontent-%COMP%]::-webkit-details-marker{display:none}.amz-actions-menu__panel[_ngcontent-%COMP%]{position:absolute;top:calc(100% + 8px);right:0;z-index:20;min-width:170px;display:grid;gap:6px;padding:8px;border:1px solid var(--border);border-radius:8px;background:#fff;box-shadow:0 16px 30px #0f172a24}.amz-actions-menu__panel[_ngcontent-%COMP%]   .amz-btn[_ngcontent-%COMP%]{justify-content:flex-start;width:100%}.amz-bid-meta[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;padding:12px;border:1px solid var(--border);border-radius:8px;background:#f8fafc}.amz-bid-meta--debug[_ngcontent-%COMP%]{background:#f5f3ff;border-color:#ddd6fe}.amz-label[_ngcontent-%COMP%]{display:block;color:#94a3b8;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.amz-table-wrap[_ngcontent-%COMP%]{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#fff}.harvest-kpis[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px}.coverage-panel[_ngcontent-%COMP%]{border:1px solid #dbeafe;border-radius:8px;background:#f8fbff;padding:14px}.coverage-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.coverage-header[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{display:block;color:#0f172a;font-size:14px}.coverage-header[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{display:block;margin-top:3px;color:#64748b;font-size:12px}.coverage-legend[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px}.coverage-legend[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;margin:0;color:#475569;font-size:11px;font-weight:700;text-transform:uppercase}.dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:999px}.dot-queryable[_ngcontent-%COMP%]{background:#10b981}.dot-backup[_ngcontent-%COMP%]{background:#f59e0b}.dot-missing[_ngcontent-%COMP%]{background:#cbd5e1}.coverage-calendar[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}
2.coverage-resolution[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;padding-top:14px;border-top:1px solid #dbeafe}.coverage-resolution[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{display:block;color:#0f172a;font-size:13px}.coverage-resolution[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{display:block;margin-top:3px;color:#64748b;font-size:12px}.coverage-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.coverage-day[_ngcontent-%COMP%]{border:1px solid #e2e8f0;border-radius:8px;padding:8px;background:#fff;min-height:68px}.coverage-day[_ngcontent-%COMP%]   span[_ngcontent-%COMP%], .coverage-day[_ngcontent-%COMP%]   em[_ngcontent-%COMP%]{display:block;color:#64748b;font-size:11px;font-style:normal}.coverage-day[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{display:block;margin:4px 0;color:#334155;font-size:12px}.coverage-queryable[_ngcontent-%COMP%]{border-color:#86efac;background:#f0fdf4}.coverage-queryable[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{color:#047857}.coverage-backup[_ngcontent-%COMP%]{border-color:#fcd34d;background:#fffbeb}.coverage-backup[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{color:#b45309}.coverage-missing[_ngcontent-%COMP%]{background:#f8fafc}.coverage-missing[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{color:#64748b}.harvest-kpi[_ngcontent-%COMP%]{border:1px solid var(--border);border-radius:8px;padding:12px 14px;background:#fff;text-align:left}.harvest-kpi[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{display:block;color:#64748b;font-size:11px;font-weight:800;text-transform:uppercase}.harvest-kpi[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{display:block;margin-top:4px;color:#0f172a;font-size:22px;line-height:1.1}.harvest-kpi--btn[_ngcontent-%COMP%]{cursor:pointer;border:1.5px solid var(--border);transition:all .15s;font-family:inherit}.harvest-kpi--btn[_ngcontent-%COMP%]:hover{border-color:#94a3b8;background:#f8fafc;transform:translateY(-1px);box-shadow:0 2px 8px #00000012}.harvest-kpi--btn.active[_ngcontent-%COMP%]{border-color:#27a4a4;background:#f0f9f9;box-shadow:0 0 0 2px #27a4a426}.harvest-kpi--btn.active[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%], .harvest-kpi--btn.active[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{color:#0f766e}.harvest-kpi--btn.rec-good.active[_ngcontent-%COMP%]{border-color:#16a34a;background:#f0fdf4}.harvest-kpi--btn.rec-good.active[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%], .harvest-kpi--btn.rec-good.active[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{color:#065f46}.harvest-kpi--btn.rec-risk.active[_ngcontent-%COMP%]{border-color:#dc2626;background:#fef2f2}.harvest-kpi--btn.rec-risk.active[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%], .harvest-kpi--btn.rec-risk.active[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{color:#991b1b}.harvest-kpi--btn.rec-covered.active[_ngcontent-%COMP%]{border-color:#4f46e5;background:#eef2ff}.harvest-kpi--btn.rec-covered.active[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%], .harvest-kpi--btn.rec-covered.active[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{color:#3730a3}.harvest-kpi--new[_ngcontent-%COMP%]{border-color:#fcd34d;background:linear-gradient(135deg,#fffbeb,#fef9c3)}.harvest-kpi--new[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{color:#92400e}.harvest-kpi--new[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{color:#b45309}.harvest-kpi--new[_ngcontent-%COMP%]:hover{border-color:#f59e0b;background:linear-gradient(135deg,#fef9c3,#fde68a)}.harvest-new-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:3px;margin-left:5px;padding:2px 6px;border-radius:999px;font-size:10px;font-weight:800;background:#fef9c3;color:#92400e;border:1px solid #fcd34d;vertical-align:middle}.amz-sort-head[_ngcontent-%COMP%]{appearance:none;border:0;background:transparent;padding:0;color:inherit;font:inherit;font-weight:700;text-align:left;cursor:pointer;font-size:inherit;text-transform:uppercase;letter-spacing:inherit;white-space:nowrap}.amz-sort-head[_ngcontent-%COMP%]:hover{color:#0f766e;text-decoration:underline;text-underline-offset:3px}.suggestion-tabs[_ngcontent-%COMP%]{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--border);border-radius:8px;background:#f8fafc}.suggestion-tabs[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]{border:0;border-radius:6px;background:transparent;color:#475569;cursor:pointer;font:inherit;font-size:13px;font-weight:800;padding:9px 12px}.suggestion-tabs[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{margin-left:6px;color:#0f172a}.suggestion-tabs[_ngcontent-%COMP%]   button.active[_ngcontent-%COMP%]{background:#fff;color:#0f766e;box-shadow:0 1px 2px #0f172a14}
2.bulk-action-bar[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid #ccfbf1;border-radius:8px;background:#f0fdfa}.bulk-action-bar[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{display:block;color:#0f172a;font-size:13px}.bulk-action-bar[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{display:block;margin-top:3px;color:#475569;font-size:12px}.bulk-action-controls[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.note-col[_ngcontent-%COMP%]{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:5px}.term-note-button[_ngcontent-%COMP%], .term-row-handoffs[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]{appearance:none;border:1px solid #99f6e4;border-radius:6px;background:#f0fdfa;color:#0f766e;cursor:pointer;padding:4px 7px;font:inherit;font-size:10px;font-weight:800}.term-note-preview[_ngcontent-%COMP%]{display:-webkit-box;overflow:hidden;color:#475569;font-size:10px;line-height:1.25;-webkit-box-orient:vertical;-webkit-line-clamp:3}.term-row-handoffs[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.term-page-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;padding:14px}.annotation-field[_ngcontent-%COMP%]{display:grid;gap:8px;padding:20px}.annotation-field[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{color:#334155;font-size:12px;font-weight:800}.annotation-field[_ngcontent-%COMP%]   textarea[_ngcontent-%COMP%]{min-height:180px;resize:vertical}.annotation-field[_ngcontent-%COMP%]   small[_ngcontent-%COMP%]{color:#64748b}.annotation-loading[_ngcontent-%COMP%]{padding:40px 20px;color:#64748b;text-align:center}.asin-preview[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:4px}.asin-preview[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{display:inline-flex;align-items:center;min-height:20px;padding:2px 6px;border:1px solid #bfdbfe;border-radius:6px;background:#eff6ff;color:#1e3a8a;font-size:11px;font-weight:800}.asin-list-link[_ngcontent-%COMP%]{appearance:none;border:0;background:transparent;color:#0f766e;cursor:pointer;display:inline-flex;margin-top:5px;padding:0;font:inherit;font-size:11px;font-weight:800;text-decoration:underline;text-underline-offset:3px}.harvest-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:160px minmax(130px,.8fr) minmax(180px,1.1fr) minmax(170px,1fr) minmax(260px,1.8fr) minmax(190px,1.2fr) 70px 86px 86px 70px 76px 76px 92px 76px;gap:12px;align-items:center;min-width:1788px}.amz-table-head[_ngcontent-%COMP%]{display:grid;background:var(--bg-soft);border-bottom:1px solid var(--border);padding:12px 16px;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;position:sticky;top:0;z-index:10}.amz-table-row[_ngcontent-%COMP%]{border-bottom:1px solid #f1f5f9;padding:12px 16px;transition:background .1s}.amz-table-row[_ngcontent-%COMP%]:hover{background:#f8fafc}.amz-table-row[_ngcontent-%COMP%]:last-child{border-bottom:none}.rec-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:800;white-space:nowrap}.rec-good[_ngcontent-%COMP%]{color:#065f46;background:#d1fae5}.rec-risk[_ngcontent-%COMP%]{color:#991b1b;background:#fee2e2}.rec-covered[_ngcontent-%COMP%]{color:#3730a3;background:#e0e7ff}.rec-watch[_ngcontent-%COMP%]{color:#475569;background:#e2e8f0}.confidence[_ngcontent-%COMP%], .source-meta[_ngcontent-%COMP%], .reason[_ngcontent-%COMP%]{display:block;margin-top:5px;color:#64748b;font-size:11px;line-height:1.25}.neg-scope-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;margin-top:5px;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:800;white-space:nowrap;cursor:help}.neg-scope-badge--campaign[_ngcontent-%COMP%]{background:#f3e8ff;color:#7c3aed;border:1px solid #d8b4fe}.neg-scope-badge--adGroup[_ngcontent-%COMP%]{background:#f0fdf4;color:#0f766e;border:1px solid #86efac}.neg-scope-badge--both[_ngcontent-%COMP%]{background:#fffbeb;color:#b45309;border:1px solid #fcd34d}.manual-action[_ngcontent-%COMP%]{display:block;color:#0f172a;font-size:12px;line-height:1.35}.amz-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:2px 8px;border-radius:9999px;font-size:11px;font-weight:600;text-transform:uppercase}.amz-alert[_ngcontent-%COMP%]{padding:12px 16px;border-radius:8px;font-size:14px}.amz-alert--error[_ngcontent-%COMP%]{background:#fef2f2;border:1px solid #fee2e2;color:#991b1b}.amz-alert--info[_ngcontent-%COMP%]{background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a8a}.amz-alert--teal[_ngcontent-%COMP%]{background:#f0fdfa;border:1px solid #99f6e4;
2color:#115e59}.amz-section-gap[_ngcontent-%COMP%]{margin-bottom:24px}.amz-flex-row[_ngcontent-%COMP%]{display:flex;align-items:center}.amz-muted[_ngcontent-%COMP%]{color:var(--text-muted)}.bulk-modal-backdrop[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:#0f172a6b}.bulk-modal[_ngcontent-%COMP%]{width:min(1120px,100%);max-height:min(760px,100vh - 48px);overflow:hidden;display:flex;flex-direction:column;border-radius:8px;border:1px solid var(--border);background:#fff;box-shadow:0 24px 70px #0f172a47}.asin-modal[_ngcontent-%COMP%], .annotation-modal[_ngcontent-%COMP%]{width:min(620px,100%);max-height:min(620px,100vh - 48px);overflow:hidden;display:flex;flex-direction:column;border-radius:8px;border:1px solid var(--border);background:#fff;box-shadow:0 24px 70px #0f172a47}.bulk-modal-header[_ngcontent-%COMP%], .bulk-modal-footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--border)}.bulk-modal-header[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .bulk-modal-footer[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{margin:0;color:#0f172a;font-size:18px}.bulk-modal-header[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .bulk-modal-footer[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:4px 0 0;color:#64748b;font-size:13px}.bulk-modal-footer[_ngcontent-%COMP%]{border-top:1px solid var(--border);border-bottom:0;justify-content:flex-end}.bulk-help[_ngcontent-%COMP%]{margin:14px 20px 0;padding:12px 14px;border:1px solid #fde68a;border-radius:8px;background:#fffbeb}.bulk-help[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%], .bulk-help[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{display:block;font-size:12px}.bulk-help[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{color:#92400e}.bulk-help[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{margin-top:3px;color:#713f12}.bulk-destination-list[_ngcontent-%COMP%]{overflow:auto;padding:14px 20px 20px}.bulk-destination-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(280px,1.4fr) minmax(150px,.7fr) minmax(110px,.5fr);gap:12px;align-items:end;padding:12px 0;border-bottom:1px solid #f1f5f9}.bulk-destination-row[_ngcontent-%COMP%] > div[_ngcontent-%COMP%] > strong[_ngcontent-%COMP%], .bulk-destination-row[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{display:block;color:#0f172a;font-size:12px;font-weight:800}.bulk-destination-row[_ngcontent-%COMP%] > div[_ngcontent-%COMP%] > span[_ngcontent-%COMP%], .bulk-destination-row[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{display:block;margin-top:4px;color:#64748b;font-size:12px}.bulk-destination-row[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px}.bulk-source-destination[_ngcontent-%COMP%]{grid-column:span 3;padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc}.asin-list[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;overflow:auto;padding:18px 20px}.asin-list[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{padding:8px 10px;border:1px solid #dbeafe;border-radius:8px;background:#eff6ff;color:#1e3a8a;font-size:12px;font-weight:800;text-align:center}@media(max-width:1100px){.harvest-kpis[_ngcontent-%COMP%]{grid-template-columns:repeat(3,minmax(0,1fr))}.harvest-grid[_ngcontent-%COMP%]{grid-template-columns:160px minmax(120px,.8fr) minmax(170px,1.2fr) minmax(160px,1fr) minmax(240px,1.8fr) minmax(170px,1.2fr) 68px 82px 82px 68px 74px 74px 90px 74px;min-width:1728px}.amz-table-wrap[_ngcontent-%COMP%]{overflow-x:auto}.coverage-resolution[_ngcontent-%COMP%], .bulk-action-bar[_ngcontent-%COMP%], .bulk-modal-header[_ngcontent-%COMP%]{align-items:stretch;flex-direction:column}.bulk-destination-row[_ngcontent-%COMP%]{grid-template-columns:1fr}.bulk-source-destination[_ngcontent-%COMP%]{grid-column:auto}}']})};export{Je as AmazonSearchTermsComponent};

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.