1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[32161],{49134:function(e,s,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/etfs/screener",function(){return t(16084)}])},4032:function(e,s,t){"use strict";var a=t(83454);t(91479);var i=t(67294),r=i&&"object"==typeof i&&"default"in i?i:{default:i},n=void 0!==a&&a.env&&!0,l=function(e){return"[object String]"===Object.prototype.toString.call(e)},o=function(){function e(e){var s=void 0===e?{}:e,t=s.name,a=void 0===t?"stylesheet":t,i=s.optimizeForSpeed,r=void 0===i?n:i;c(l(a),"`name` must be a string"),this._name=a,this._deletedRulePlaceholder="#"+a+"-deleted-rule____{}",c("boolean"==typeof r,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=r,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0;var o=document.querySelector('meta[property="csp-nonce"]');this._nonce=o?o.getAttribute("content"):null}var s=e.prototype;return s.setOptimizeForSpeed=function(e){c("boolean"==typeof e,"`setOptimizeForSpeed` accepts a boolean"),c(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=e,this.inject()},s.isOptimizeForSpeed=function(){return this._optimizeForSpeed},s.inject=function(){var e=this;if(c(!this._injected,"sheet already injected"),this._injected=!0,this._optimizeForSpeed){this._tags[0]=this.makeStyleTag(this._name),this._optimizeForSpeed="insertRule"in this.getSheet(),this._optimizeForSpeed||(n||console.warn("StyleSheet: optimizeForSpeed mode not supported falling back to standard mode."),this.flush(),this._injected=!0);return}this._serverSheet={cssRules:[],insertRule:function(s,t){return"number"==typeof t?e._serverSheet.cssRules[t]={cssText:s}:e._serverSheet.cssRules.push({cssText:s}),t},deleteRule:function(s){e._serverSheet.cssRules[s]=null}}},s.getSheetForTag=function(e){if(e.sheet)return e.sheet;for(var s=0;s<document.styleSheets.length;s++)if(document.styleSheets[s].ownerNode===e)return document.styleSheets[s]},s.getSheet=function(){return this.getSheetForTag(this._tags[this._tags.length-1])},s.insertRule=function(e,s){if(c(l(e),"`insertRule` accepts only strings"),this._optimizeForSpeed){var t=this.getSheet();"number"!=typeof s&&(s=t.cssRules.length);try{t.insertRule(e,s)}catch(s){return n||console.warn("StyleSheet: illegal rule: \n\n"+e+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),-1}}else{var a=this._tags[s];this._tags.push(this.makeStyleTag(this._name,e,a))}return this._rulesCount++},s.replaceRule=function(e,s){if(this._optimizeForSpeed){var t=this.getSheet();if(s.trim()||(s=this._deletedRulePlaceholder),!t.cssRules[e])return e;t.deleteRule(e);try{t.insertRule(s,e)}catch(a){n||console.warn("StyleSheet: illegal rule: \n\n"+s+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),t.insertRule(this._deletedRulePlaceholder,e)}}else{var a=this._tags[e];c(a,"old rule at index `"+e+"` not found"),a.textContent=s}return e},s.deleteRule=function(e){if(this._optimizeForSpeed)this.replaceRule(e,"");else{var s=this._tags[e];c(s,"rule at index `"+e+"` not found"),s.parentNode.removeChild(s),this._tags[e]=null}},s.flush=function(){this._injected=!1,this._rulesCount=0,this._tags.forEac
1h(function(e){return e&&e.parentNode.removeChild(e)}),this._tags=[]},s.cssRules=function(){var e=this;return this._tags.reduce(function(s,t){return t?s=s.concat(Array.prototype.map.call(e.getSheetForTag(t).cssRules,function(s){return s.cssText===e._deletedRulePlaceholder?null:s})):s.push(null),s},[])},s.makeStyleTag=function(e,s,t){s&&c(l(s),"makeStyleTag accepts only strings as second parameter");var a=document.createElement("style");this._nonce&&a.setAttribute("nonce",this._nonce),a.type="text/css",a.setAttribute("data-"+e,""),s&&a.appendChild(document.createTextNode(s));var i=document.head||document.getElementsByTagName("head")[0];return t?i.insertBefore(a,t):i.appendChild(a),a},function(e,s){for(var t=0;t<s.length;t++){var a=s[t];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}(e.prototype,[{key:"length",get:function(){return this._rulesCount}}]),e}();function c(e,s){if(!e)throw Error("StyleSheet: "+s+".")}var d=function(e){for(var s=5381,t=e.length;t;)s=33*s^e.charCodeAt(--t);return s>>>0},u={};function x(e,s){if(!s)return"jsx-"+e;var t=String(s),a=e+t;return u[a]||(u[a]="jsx-"+d(e+"-"+t)),u[a]}function f(e,s){var t=e+s;return u[t]||(u[t]=s.replace(/__jsx-style-dynamic-selector/g,e)),u[t]}var m=function(){function e(e){var s=void 0===e?{}:e,t=s.styleSheet,a=void 0===t?null:t,i=s.optimizeForSpeed,r=void 0!==i&&i;this._sheet=a||new o({name:"styled-jsx",optimizeForSpeed:r}),this._sheet.inject(),a&&"boolean"==typeof r&&(this._sheet.setOptimizeForSpeed(r),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer=void 0,this._indices={},this._instancesCounts={}}var s=e.prototype;return s.add=function(e){var s=this;void 0===this._optimizeForSpeed&&(this._optimizeForSpeed=Array.isArray(e.children),this._sheet.setOptimizeForSpeed(this._optimizeForSpeed),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer||(this._fromServer=this.selectFromServer(),this._instancesCounts=Object.keys(this._fromServer).reduce(function(e,s){return e[s]=0,e},{}));var t=this.getIdAndRules(e),a=t.styleId,i=t.rules;if(a in this._instancesCounts){this._instancesCounts[a]+=1;return}var r=i.map(function(e){return s._sheet.insertRule(e)}).filter(function(e){return -1!==e});this._indices[a]=r,this._instancesCounts[a]=1},s.remove=function(e){var s=this,t=this.getIdAndRules(e).styleId;if(function(e,s){if(!e)throw Error("StyleSheetRegistry: "+s+".")}(t in this._instancesCounts,"styleId: `"+t+"` not found"),this._instancesCounts[t]-=1,this._instancesCounts[t]<1){var a=this._fromServer&&this._fromServer[t];a?(a.parentNode.removeChild(a),delete this._fromServer[t]):(this._indices[t].forEach(function(e){return s._sheet.deleteRule(e)}),delete this._indices[t]),delete this._instancesCounts[t]}},s.update=function(e,s){this.add(s),this.remove(e)},s.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},s.cssRules=function(){var e=this,s=this._fromServer?Object.keys(this._fromServer).map(function(s){return[s,e._fromServer[s]]}):[],t=this._sheet.cssRules();return s.concat(Object.keys(this._indices).map(function(s){return[s,e._indices[s].map(function(e){return t[e].cssText}).join(e._optimizeForSpeed?"":"\n")]}).filter(function(e){return!!e[1]}))},s.styles=function(e){var s,t;return s=this.cssRules(),void 0===(t=e)&&(t={}),s.map(function(e){var s=e[0],a=e[1];return r.default.createElement("style",{id:"__"+s,key:"__"+s,nonce:t.nonce?t.nonce:void 0,dangerouslySetInnerHTML:{__html:a}})})},s.getIdAndRules=function(e){var s=e.children,t=e.dynamic,a=e.id;if(t){var i=x(a,t);return{styleId:i,rules:Array.isArray(s)?s.map(function(e){return f(i,e)}):[f(i,s)]}}return{styleId:x(a),rules:Array.isArray(s)?s:[s]}},s.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(e,s){return e[s.id.slice(2)]=s,e},{})},e}(),p=i.createContext(null);p.displayName="StyleSheetContext";var b=r.default.useInsertionEffect||r.default.useLayoutEffect,h=new m;function g(e){var s=h||i.useContext(p);return s&&b(function(){return s.add(e),function(){s.remove(e)}},[e.id,String(e.dynamic)]),null}g.dynamic=function(e){return e.map(function(e){return x(e[0],e[1])}).join(" ")},s.style=g},20726:function(e,s,t){"use strict";e.exports=t(4032).style},16084:function(e,s,t){"use strict";t.r(s),t.d(s,{default:function(){return j}});var a=t(85893),i=t(20726),r=t.n(i),n=t(83239),l=t(67294),o=t(16515),c=t(38420),d=t(11163),u=t(41664),x=t.n(u),f=t(17334),m=t(69006),p=t(67196);let b=e=>null===e?"-":e>=1e12?"$".concat((e/1e12).toFixed(1),"T"):e>=1e9?"$".concat((e/1e9).toFixed(1),"B"):e>=1e6?"$".concat((e/1e6).toFixed(0),"M"):"$".concat(e.toLocaleStr
1ing()),h=function(e){let s=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return null===e?"-":"".concat(s&&e>0?"+":"").concat(e.toFixed(2),"%")},g=e=>null===e?"#6b7280":e>0?"#059669":e<0?"#dc2626":"#6b7280";function j(){var e,s,t,i,u,j,y,v,w,k,_,N,S,z,C;let[M,R]=(0,l.useState)([]),[F,T]=(0,l.useState)(null),[E,A]=(0,l.useState)(!0),[Y,P]=(0,l.useState)(""),[L,O]=(0,l.useState)(!1),{isEntitled:B}=(0,o.p)(),[H,I]=(0,l.useState)(!1),[D,q]=(0,l.useState)(""),X=(0,l.useCallback)(e=>{(0,n.vQ)()},[]),[W,U]=(0,l.useState)({symbol:80,name:200,family:150,style:130,asset_class:100,expense:80,aum:90,yield:70,buy:85,momentum:90,value:70}),[V,$]=(0,l.useState)(null),[G,J]=(0,l.useState)(0),[K,Z]=(0,l.useState)(0),Q=(e,s)=>{s.preventDefault(),s.stopPropagation(),$(e),J(s.clientX),Z(W[e]||100),document.body.style.cursor="col-resize",document.body.style.userSelect="none"};(0,l.useEffect)(()=>{let e=e=>{if(!V)return;let s=Math.max(50,K+(e.clientX-G));U(e=>({...e,[V]:s}))},s=()=>{V&&($(null),document.body.style.cursor="",document.body.style.userSelect="")};if(V)return document.addEventListener("mousemove",e),document.addEventListener("mouseup",s),()=>{document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",s)}},[V,G,K]);let ee=(0,d.useRouter)(),[es,et]=(0,l.useState)({search:"",sector:"",fundFamily:"",assetClass:"",investmentStyle:"",region:"",country:"",expenseRatioMax:null,dividendYieldMin:null,oneYearReturnMin:null,threeYearReturnMin:null,fiveYearReturnMin:null,volatilityMax:null,buyScoreMin:null,momentumScoreMin:null,valueScoreMin:null,holdsTickers:[],concentratedOn:"",topHolder:"",pureEquity:!1,pureBond:!1,balanced:!1,diversifiedSector:!1,near52wHigh:!1,near52wLow:!1,sortBy:"net_assets",sortOrder:"desc"});(0,l.useEffect)(()=>{if(!ee.isReady)return;let e=ee.query.search;"string"==typeof e&&e.trim()&&et(s=>s.search===e?s:{...s,search:e})},[ee.isReady,ee.query.search]);let[ea,ei]=(0,l.useState)(""),[er,en]=(0,l.useState)(null),[el,eo]=(0,l.useState)(!1),[ec,ed]=(0,l.useState)(!1),[eu,ex]=(0,l.useState)(0),ef=window.location.hostname.includes("localhost")?"/api/com":"/api",em=async()=>{if(Y.trim()){O(!0);try{let d=await fetch("".concat(ef,"/etf-screener-ai"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:Y,filterOptions:F})});if(!d.ok)throw Error("AI request failed");let u=await d.json();if(u.filters){var e,s,t,a,i,r,n,l,o,c;et({search:u.filters.search||"",sector:u.filters.sector||"",fundFamily:u.filters.fundFamily||"",assetClass:u.filters.assetClass||"",investmentStyle:u.filters.investmentStyle||"",region:u.filters.region||"",country:u.filters.country||"",expenseRatioMax:null!==(s=u.filters.expenseRatioMax)&&void 0!==s?s:null,dividendYieldMin:null!==(t=u.filters.dividendYieldMin)&&void 0!==t?t:null,oneYearReturnMin:null!==(a=u.filters.oneYearReturnMin)&&void 0!==a?a:null,threeYearReturnMin:null!==(i=u.filters.threeYearReturnMin)&&void 0!==i?i:null,fiveYearReturnMin:null!==(r=u.filters.fiveYearReturnMin)&&void 0!==r?r:null,volatilityMax:null!==(n=u.filters.volatilityMax)&&void 0!==n?n:null,buyScoreMin:null!==(l=u.filters.buyScoreMin)&&void 0!==l?l:null,momentumScoreMin:null!==(o=u.filters.momentumScoreMin)&&void 0!==o?o:null,valueScoreMin:null!==(c=u.filters.valueScoreMin)&&void 0!==c?c:null,holdsTickers:u.filters.holdsTickers||[],concentratedOn:u.filters.concentratedOn||"",topHolder:u.filters.topHolder||"",pureEquity:u.filters.pureEquity||!1,pureBond:u.filters.pureBond||!1,balanced:u.filters.balanced||!1,diversifiedSector:u.filters.diversifiedSector||!1,near52wHigh:u.filters.near52wHigh||!1,near52wLow:u.filters.near52wLow||!1,sortBy:"net_assets",sortOrder:"desc"}),(u.filters.sector||u.filters.region||u.filters.country||(null===(e=u.filters.holdsTickers)||void 0===e?void 0:e.length)>0||u.filters.pureEquity||u.filters.pureBond||u.filters.balanced||u.filters.diversifiedSector||u.filters.concentratedOn||u.filters.topHolder)&&ed(!0),ex(0)}}catch(e){console.error("AI search error:",e),alert("AI search failed. Please try again.")}finally{O(!1)}}},ep=async()=>{if(!(es.sector||es.region||es.country||es.holdsTickers.length>0||es.concentratedOn||es.topHolder||es.pureEquity||es.pureBond||es.balanced||es.diversifiedSector||es.near52wHigh||es.near52wLow)){en(null),ed(!1);return}eo(!0);try{let e={limit:5e3,fundType:"etf"};es.sector&&(e.sectors=[es.sector]),es.region&&(e.regions=[es.region]),es.country&&(e.countries=[es.country]),es.holdsTickers.length>0&&(e.holdsTickers=es.holdsTickers),es.concentratedOn&&(e.concentratedOn=es.concentratedOn),es.topHolder&&(e.topHolder=es.topHolder),es.pureEquity&&(e.pureEquity=!0),es.pureBond&&(e.pureBond=!0),es.balanced&&(e.balanced=!0),es.diversifiedSector&&(e.diversifiedSector=!0),es.near52wHigh&&(e.near52wHigh=!0),es.near52wLow&&(e.near52wLow=!0);let s=await fetch("".concat(ef,"/etf-screener"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),t=await s.json();
1t.success&&t.etfs&&(en(new Set(t.etfs.map(e=>e.symbol))),ed(!1),ex(0))}catch(e){console.error("Failed to fetch server filters:",e)}finally{eo(!1)}},eb=()=>{let e=ea.trim().toUpperCase();if(e&&!es.holdsTickers.includes(e)){let s=[...es.holdsTickers,e];et(e=>({...e,holdsTickers:s})),ed(!0)}ei("")},eh=e=>{let s=es.holdsTickers.filter(s=>s!==e);et(e=>({...e,holdsTickers:s})),ed(!0)},eg=e=>{et(s=>({...s,sector:e})),ed(!0)},ej=e=>{et(s=>({...s,region:e})),ed(!0)},ey=e=>{et(s=>({...s,country:e})),ed(!0)},ev=e=>{et(s=>({...s,[e]:!s[e]})),ed(!0)},ew=e=>{et(s=>({...s,concentratedOn:e})),ed(!0)},ek=e=>{et(s=>({...s,topHolder:e})),ed(!0)};(0,l.useEffect)(()=>{A(!0),fetch("".concat(ef,"/etf-screener-all?fund_type=etf")).then(e=>e.json()).then(e=>{e.success&&(R(e.etfs),T(e.filterOptions))}).catch(console.error).finally(()=>A(!1))},[ef]);let e_=(0,l.useMemo)(()=>{let e=[...M];if(es.search){let s=es.search.toLowerCase();e=e.filter(e=>e.symbol.toLowerCase().includes(s)||e.name.toLowerCase().includes(s)||e.short_name.toLowerCase().includes(s))}return es.investmentStyle&&(e=e.filter(e=>e.investment_style===es.investmentStyle)),es.fundFamily&&(e=e.filter(e=>e.fund_family===es.fundFamily)),es.assetClass&&(e=e.filter(e=>e.asset_class===es.assetClass)),null!==es.expenseRatioMax&&(e=e.filter(e=>null!==e.expense_ratio&&e.expense_ratio<=es.expenseRatioMax)),null!==es.dividendYieldMin&&(e=e.filter(e=>null!==e.dividend_yield&&e.dividend_yield>=es.dividendYieldMin)),null!==es.oneYearReturnMin&&(e=e.filter(e=>null!==e.one_year_return&&e.one_year_return>=es.oneYearReturnMin)),null!==es.threeYearReturnMin&&(e=e.filter(e=>null!==e.three_year_return&&e.three_year_return>=es.threeYearReturnMin)),null!==es.fiveYearReturnMin&&(e=e.filter(e=>null!==e.five_year_return&&e.five_year_return>=es.fiveYearReturnMin)),null!==es.volatilityMax&&(e=e.filter(e=>null!==e.volatility_30d&&e.volatility_30d<=es.volatilityMax)),null!==es.buyScoreMin&&(e=e.filter(e=>null!==e.buy_score&&e.buy_score>=es.buyScoreMin)),null!==es.momentumScoreMin&&(e=e.filter(e=>null!==e.momentum_score&&e.momentum_score>=es.momentumScoreMin)),null!==es.valueScoreMin&&(e=e.filter(e=>null!==e.value_score&&e.value_score>=es.valueScoreMin)),null!==er&&(e=e.filter(e=>er.has(e.symbol))),e.sort((e,s)=>{let t=e[es.sortBy],a=s[es.sortBy];return null===t&&null===a?0:null===t?1:null===a?-1:"string"==typeof t&&"string"==typeof a?"asc"===es.sortOrder?t.localeCompare(a):a.localeCompare(t):"asc"===es.sortOrder?t-a:a-t}),e},[M,es,er]),eN=(0,l.useMemo)(()=>{let e=50*eu;if(!B&&eu>0)return[];let s=e_.slice(e,e+50);return B?s:s.slice(0,10)},[e_,eu,B]),eS=Math.ceil(e_.length/50),ez=e=>{et(s=>({...s,sortBy:e,sortOrder:s.sortBy===e&&"desc"===s.sortOrder?"asc":"desc"}))},eC=(e,s)=>{et(t=>({...t,[e]:s})),ex(0)},eM=(0,l.useMemo)(()=>{let e=0;return es.search&&e++,es.sector&&e++,es.fundFamily&&e++,es.assetClass&&e++,es.investmentStyle&&e++,es.region&&e++,es.country&&e++,null!==es.expenseRatioMax&&e++,null!==es.dividendYieldMin&&e++,null!==es.oneYearReturnMin&&e++,null!==es.threeYearReturnMin&&e++,null!==es.fiveYearReturnMin&&e++,null!==es.volatilityMax&&e++,null!==es.buyScoreMin&&e++,null!==es.momentumScoreMin&&e++,null!==es.valueScoreMin&&e++,es.holdsTickers.length>0&&e++,es.concentratedOn&&e++,es.topHolder&&e++,es.pureEquity&&e++,es.pureBond&&e++,es.balanced&&e++,es.diversifiedSector&&e++,es.near52wHigh&&e++,es.near52wLow&&e++,e},[es]),eR=e=>{let{column:s}=e;return es.sortBy!==s?(0,a.jsx)("span",{className:"sort-icon",children:"â"}):(0,a.jsx)("span",{className:"sort-icon active",children:"desc"===es.sortOrder?"â":"â"})};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(f.Z,{title:"ETF Screener - Filter & Compare 5,700+ ETFs by Returns, Volatility, Geography | FundXLS",description:"Advanced ETF screener with 20+ filters: expense ratio, dividend yield, 1M/3M/6M returns, volatility, region, country, purity filters and more. Instant filtering with no page reloads.",canonical:"/etfs/screener"}),(0,a.jsx)(r(),{id:"9ea407bc6f2d5055",children:'@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");.screener-page{font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background:#f8f9fa;min-height:100vh;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.screener-header{background:#fff;border-bottom:1px solid#e2e8f0;padding:20px 24px}.screener-header h1{color:#0167b8;font-size:1.75rem;font-weight:700;margin:0;letter-spacing:-.3px}.screener-header .subtitle{color:#64748b;font-size:13px;margin-top:6px}.screener-layout{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-ms-flex:1;flex:1;overflow:hidden}.screener-sidebar{width:320px;background:#fff;border-right:1px solid#e2e8f0;overflow-y:auto;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.sidebar-section{padding:16px 20px;border-bottom:1px solid#f1f5f9}.sidebar-section-title{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.screener-main{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:hidden}.screener-toolbar{background:#fff;border-bottom:1px solid#e2e8f0;padding:12px 20px;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;
1-webkit-justify-content:space-between;-moz-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:12px}.search-input{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-ms-flex:1;flex:1;max-width:400px;padding:8px 12px;font-size:13px;border:1px solid#e2e8f0;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;background:#f8fafc}.search-input:focus{outline:none;border-color:#0167b8;background:#fff}.filter-group{margin-bottom:16px}.filter-group label{display:block;font-size:11px;font-weight:600;color:#475569;margin-bottom:6px}.filter-group select,.filter-group input[type="number"],.filter-group input[type="text"]{width:100%;padding:8px 10px;font-size:12px;border:1px solid#e2e8f0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;background:#fff}.filter-group select:focus,.filter-group input:focus{outline:none;border-color:#0167b8;-webkit-box-shadow:0 0 0 2px rgba(1,103,184,.1);-moz-box-shadow:0 0 0 2px rgba(1,103,184,.1);box-shadow:0 0 0 2px rgba(1,103,184,.1)}.toggle-group{dis
1play:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-moz-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:10px 0;border-bottom:1px solid#f1f5f9}.toggle-group:last-child{border-bottom:none}.toggle-label{font-size:12px;font-weight:500;color:#1f2937}.toggle-switch{position:relative;width:44px;height:24px;background:#e2e8f0;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px;cursor:pointer;-webkit-transition:background.2s;-moz-transition:background.2s;-o-transition:background.2s;transition:background.2s}.toggle-switch.active{background:#0167b8}.toggle-switch::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;-webkit-transition:-webkit-transform.2s;-moz-transition:-moz-transform.2s;-o-transition:-o-transform.2s;transition:-webkit-transform.2s;transition:-moz-transform.2s;transition:-o-transform.2s;transition:transform.2s}.toggle-switch.active::after{-webkit-transform:translatex(20px);-moz-transform:translatex(20px);-ms-transform:translatex(20px);-o-transform:translatex(20px);transform:translatex(20px)}.stats-bar{background:#f1f5f9;padding:6px 16px;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;gap:16px;font-size:11px;color:#64748b;border-bottom:1px solid#e2e8f0}
1.stats-bar strong{color:#1a1a2e;font-weight:600}.screener-table-wrapper{overflow-x:auto;background:#fff;position:relative}.table-loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.9);display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;z-index:20;gap:12px;font-size:13px;color:#64748b}.screener-table{width:100%;border-collapse:collapse;font-size:12px}.screener-table th{background:#f8fafc;padding:8px 10px;text-align:left;font-weight:600;color:#475569;font-size:10px;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid#e2e8f0;white-space:nowrap;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:-webkit-sticky;position:sticky;top:0;z-index:10}.screener-table th:hover{background:#f1f5f9}.screener-table th.sortable{padding-right:20px;position:relative}.sort-icon{position:absolute;right:6px;top:50%;-webkit-transform:translatey(-50%);-moz-transform:translatey(-50%);-ms-transform:translatey(-50%);-o-transform:translatey(-50%);transform:translatey(-50%);font-size:10px;color:#94a3b8}.sort-icon.active{color:#1a1a2e}.screener-table td{padding:6px 10px;border-bottom:1px solid#f1f5f9;white-space:nowrap}.screener-table tr:hover td{background:#f8fafc}.screener-table .symbol-cell{font-family:"Inter",-apple-system,BlinkMacSystemFont,sans-serif;font-variant-numeric:tabular-nums;font-weight:600;color:#1d4ed8}.screener-table .symbol-cell a{color:inherit;text-decoration:none}.screener-table .symbol-cell a:hover{text-decoration:underline}.screener-table .name-cell{max-width:200px;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;color:#374151}.screener-table .number-cell{text-align:right;font-family:"Inter",-apple-system,BlinkMacSystemFont,sans-serif;font-variant-numeric:tabular-nums;font-size:11px}.screener-table .family-cell{color:#6b7280;font-size:11px;max-width:100px;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.pagination{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;gap:8px;padding:12px 16px;background:#fff;border-top:1px solid#e2e8f0}.pagination button{padding:6px 12px;font-size:12px;font-weight:500;background:#f1f5f9;border:1px solid#e2e8f0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer}.pagination button:hover:not(:disabled){background:#e2e8f0}.pagination button:disabled{opacity:.5;cursor:not-allowed}.pagination .page-info{font-size:12px;color:#64748b}.loading-screen{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:80px 20px;color:#64748b}.spinner{width:32px;height:32px;border:3px solid#e2e8f0;border-top-color:#1a1a2e;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;-webkit-animation:spin.8s linear infinite;-moz-animation:spin.8s linear infinite;-o-animation:spin.8s linear infinite;animation:spin.8s linear infinite;margin-bottom:16px}@-webkit-keyframes spin{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes spin{to{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes spin{to{-o-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin{to{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}.clear-btn{font-size:13px;font-weight:500;color:#ef4444;background:#fff;border:1px solid#e2e8f0;padding:8px 16px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;cursor:pointer;-webkit-transition:all.15s;-moz-transition:all.15s;-o-transition:all.15s;transition:all.15s}.clear-btn:hover{background:#fef2f2;border-color:#fecaca}.apply-filters-btn{width:100%;padding:10px 16px;font-size:14px;font-weight:500;background:#e2e8f0;color:#64748b;border:1px solid#cbd5e1;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;cursor:pointer;-webkit-transition:all.2s;-moz-transition:all.2s;-o-transition:all.2s;transition:all.2s;margin-top:8px}.apply-filters-btn.dirty{background:#0167b8;color:#fff;border-color:#0167b8}.apply-filters-btn:hover:not(:disabled){background:#0150a0;color:#fff;border-color:#0150a0}.apply-filters-btn:disabled{opacity:.7;cursor:wait}.ticker-input-row{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;gap:4px}.ticker-input-row input{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-ms-flex:1;flex:1}.add-ticker-btn{padding:6px 12px;font-size:14px;font-weight:600;background:#1a1a2e;color:#fff;border:none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer}.add-ticker-btn:hover{background:#2a2a4e}
1.ticker-chips{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:4px;margin-top:6px}.ticker-chip{display:-webkit-inline-box;display:-webkit-inline-flex;display:-moz-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;gap:4px;padding:2px 6px 2px 8px;font-size:11px;font-weight:600;font-family:"Inter",-apple-system,BlinkMacSystemFont,sans-serif;font-variant-numeric:tabular-nums;background:#dbeafe;color:#1d4ed8;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.ticker-chip button{background:none;border:none;color:#1d4ed8;font-size:14px;line-height:1;cursor:pointer;padding:0 2px;opacity:.7}.ticker-chip button:hover{opacity:1}.loading-indicator{color:#0167b8;font-weight:normal;font-size:10px}th{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;overflow:visible}.resize-handle{position:absolute;right:-4px;top:0;bottom:0;width:12px;cursor:col-resize;background:transparent;z-index:100;pointer-events:all}.resize-handle:hover{background:rgba(203,213,225,.5)}.resize-handle.resizing{background:rgba(0,103,184,.3)}.resize-handle::after{content:"";position:absolute;right:3px;top:0;bottom:0;width:2px;background:currentColor;opacity:0;-webkit-transition:opacity.2s;-moz-transition:opacity.2s;-o-transition:opacity.2s;transition:opacity.2s}.resize-handle:hover::after,.resize-handle.resizing::after{opacity:.3}@media(max-width:1024px){.screener-layout{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.screener-sidebar{width:100%;max-height:400px;border-right:none;border-bottom:1px solid#e2e8f0}}'}),(0,a.jsxs)("div",{style:{minHeight:"100vh",display:"flex",flexDirection:"column"},className:"jsx-9ea407bc6f2d5055 screener-page",children:[(0,a.jsx)(m.h$,{title:"ETF Screener",subtitle:E?"Loading ETFs...":"".concat(M.length.toLocaleString()," ETFs ⢠20+ filters ⢠Instant results"),showSearch:!1,variableContent:(0,a.jsx)("div",{className:"jsx-9ea407bc6f2d5055 flex-1 min-w-[450px] max-w-[700px]",children:(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 flex gap-2",children:[(0,a.jsx)("input",{type:"text",value:Y,onChange:e=>P(e.target.value),onKeyDown:e=>"Enter"===e.key&&em(),placeholder:"\uD83E\uDD16 AI Screening (e.g., 'low cost tech ETFs with high dividend')...",style:{minWidth:"380px"},className:"jsx-9ea407bc6f2d5055 flex-1 py-2.5 px-4 text-sm bg-white border-2 border-[#0067B8] rounded-lg focus:outline-none focus:border-[#0067B8] focus:shadow-md placeholder:text-gray-500 transition-all"}),(0,a.jsx)("button",{onClick:em,disabled:L||!Y.trim(),style:{backgroundColor:L||!Y.trim()?"#9CA3AF":"#0067B8"},className:"jsx-9ea407bc6f2d5055 px-3 py-2.5 text-xs font-semibold text-white rounded-lg transition-all disabled:opacity-50 disabled:cursor-not-allowed hover:scale-105 shadow-sm flex-shrink-0 whitespace-nowrap",children:L?"Searching...":"\uD83D\uDD0D Search"})]})}),showCTA:!0}),E?(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 loading-screen",children:[(0,a.jsx)("div",{className:"jsx-9ea407bc6f2d5055 spinner"}),(0,a.jsx)("div",{className:"jsx-9ea407bc6f2d5055",children:"Loading 5,700+ ETFs..."}),(0,a.jsx)("div",{style:{fontSize:11,marginTop:4},className:"jsx-9ea407bc6f2d5055",children:"This only happens once"})]}):(0,a.jsxs)("div",{style:{flex:1,display:"flex",gap:"20px",minHeight:0},className:"jsx-9ea407bc6f2d5055 screener-layout",children:[(0,a.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",width:"280px",flexShrink:0},className:"jsx-9ea407bc6f2d5055 screener-sidebar",children:[(0,a.jsxs)("div",{style:{padding:"16px",background:"#fff",border:"1px solid #e5e7eb",borderRadius:"8px",marginBottom:"12px",flexShrink:0},className:"jsx-9ea407bc6f2d5055",children:[(0,a.jsx)("button",{onClick:ep,disabled:el,style:{width:"100%",marginBottom:eM>0?"8px":"0"},className:"jsx-9ea407bc6f2d5055 "+"apply-filters-btn ".concat(ec?"dirty":""),children:el?"Applying Filters...":ec?"Apply Filters":"Filters Applied"}),eM>0&&(0,a.jsx)("button",{onClick:()=>{et({search:"",sector:"",fundFamily:"",assetClass:"",investmentStyle:"",region:"",country:"",expenseRatioMax:null,dividendYieldMin:null,oneYearReturnMin:null,threeYearReturnMin:null,fiveYearReturnMin:null,volatilityMax:null,buyScoreMin:null,momentumScoreMin:null,valueScoreMin:null,holdsTickers:[],concentratedOn:"",topHolder:"",pureEquity:!1,pureBond:!1,balanced:!1,diversifiedSector:!1,near52wHigh:!1,near52wLow:!1,sortBy:"net_assets",sortOrder:"desc"}),en(null),ed(!1),ei(""),ex(0)},style:{width:"100%"},className:"jsx-9ea407bc6f2d5055 clear-btn",children:"Clear All Filters"})]}),ec&&(0,a.jsxs)("div",{style:{padding:"12px",background:"#fef3c7",border:"1px solid #fbbf24",borderRadius:"6px",marginBottom:"12px",flexShrink:0},className:"jsx-9ea407bc6f2d5055",children:[(0,a.jsx)("div",{style:{fontSize:"12px",fontWeight:600,color:"#92400e",marginBottom:"4px"},className:"jsx-9ea407bc6f2d5055",children:"Action Required"}),(0,a.jsx)("div",{style:{fontSize:"11px",color:"#78350f"},className:"jsx-9ea407bc6f2d5055",children:'Click "Apply Filters" to update results'})]}),(0,a.jsxs)("div",{style:{flex:1,overflowY:"auto",overflowX:"hidden",paddingRight:"8px"},className:"jsx-9ea407bc6f2d5055",children:[(0,a.jsx)("div",{className:"jsx-9ea407bc6f2d5055 sidebar-section",children:(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 filter-group",children:[(0,a.jsx)("label",{className:"jsx-9ea407bc6f2d5055",children:"Search"}),(0,a.jsx)("input",{type:"text",placeholder:"Symbol or name...",value:es.search,onChange:e=>eC("search",e.target.value),style:{maxWidth:"100%"},className:"jsx-9ea407bc6f2d5055 search-input"})]})}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 sidebar-section",children:[(0,a.jsx)("div",{className:"jsx-9ea407bc6f2d5055 sidebar-section-title",children:"Category"}
1),(0,a.jsxs)("div",{style:{position:"relative",cursor:B?"default":"pointer"},onClick:()=>!B&&X("Asset Class Filter"),className:"jsx-9ea407bc6f2d5055 filter-group",children:[(0,a.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:"4px"},className:"jsx-9ea407bc6f2d5055",children:["Asset Class",!B&&(0,a.jsx)(c.o2,{what:"This feature"})]}),(0,a.jsxs)("select",{value:es.assetClass,onChange:e=>eC("assetClass",e.target.value),disabled:!B,style:{cursor:"pointer",opacity:B?1:.7},title:B?void 0:"Premium feature - Click to upgrade",className:"jsx-9ea407bc6f2d5055",children:[(0,a.jsx)("option",{value:"",className:"jsx-9ea407bc6f2d5055",children:"All"}),null==F?void 0:null===(e=F.asset_classes)||void 0===e?void 0:e.map(e=>(0,a.jsx)("option",{value:e,className:"jsx-9ea407bc6f2d5055",children:e},e))]})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 filter-group",children:[(0,a.jsxs)("label",{className:"jsx-9ea407bc6f2d5055",children:["Sector ",el&&es.sector&&(0,a.jsx)("span",{className:"jsx-9ea407bc6f2d5055 loading-indicator",children:"..."})]}),(0,a.jsxs)("select",{value:es.sector,onChange:e=>eg(e.target.value),className:"jsx-9ea407bc6f2d5055",children:[(0,a.jsx)("option",{value:"",className:"jsx-9ea407bc6f2d5055",children:"All"}),null==F?void 0:null===(s=F.sectors)||void 0===s?void 0:s.map(e=>(0,a.jsx)("option",{value:e,className:"jsx-9ea407bc6f2d5055",children:e},e))]})]}),(0,a.jsxs)("div",{style:{position:"relative",cursor:B?"default":"pointer"},onClick:()=>!B&&X("Investment Style Filter"),className:"jsx-9ea407bc6f2d5055 filter-group",children:[(0,a.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:"4px"},className:"jsx-9ea407bc6f2d5055",children:["Investment Style",!B&&(0,a.jsx)(c.o2,{what:"This feature"})]}),(0,a.jsxs)("select",{value:es.investmentStyle,onChange:e=>eC("investmentStyle",e.target.value),disabled:!B,style:{cursor:"pointer",opacity:B?1:.7},title:B?void 0:"Premium feature - Click to upgrade",className:"jsx-9ea407bc6f2d5055",children:[(0,a.jsx)("option",{value:"",className:"jsx-9ea407bc6f2d5055",children:"All"}),null==F?void 0:null===(t=F.investment_styles)||void 0===t?void 0:t.map(e=>(0,a.jsx)("option",{value:e,className:"jsx-9ea407bc6f2d5055",children:e},e))]})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 filter-group",children:[(0,a.jsx)("label",{className:"jsx-9ea407bc6f2d5055",children:"Fund Family"}),(0,a.jsxs)("select",{value:es.fundFamily,onChange:e=>eC("fundFamily",e.target.value),className:"jsx-9ea407bc6f2d5055",children:[(0,a.jsx)("option",{value:"",className:"jsx-9ea407bc6f2d5055",children:"All"}),null==F?void 0:null===(i=F.fund_families)||void 0===i?void 0:i.map(e=>(0,a.jsx)("option",{value:e,className:"jsx-9ea407bc6f2d5055",children:e},e))]})]})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 sidebar-section",children:[(0,a.jsx)("div",{className:"jsx-9ea407bc6f2d5055 sidebar-section-title",children:"Geography"}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 filter-group",children:[(0,a.jsxs)("label",{className:"jsx-9ea407bc6f2d5055",children:["Region ",el&&es.region&&(0,a.jsx)("span",{className:"jsx-9ea407bc6f2d5055 loading-indicator",children:"..."})]}),(0,a.jsxs)("select",{value:es.region,onChange:e=>ej(e.target.value),className:"jsx-9ea407bc6f2d5055",children:[(0,a.jsx)("option",{value:"",className:"jsx-9ea407bc6f2d5055",children:"All"}),null==F?void 0:null===(u=F.regions)||void 0===u?void 0:u.map(e=>(0,a.jsx)("option",{value:e,className:"jsx-9ea407bc6f2d5055",children:e},e))]})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 filter-group",children:[(0,a.jsxs)("label",{className:"jsx-9ea407bc6f2d5055",children:["Country ",el&&es.country&&(0,a.jsx)("span",{className:"jsx-9ea407bc6f2d5055 loading-indicator",children:"..."})]}),(0,a.jsxs)("select",{value:es.country,onChange:e=>ey(e.target.value),className:"jsx-9ea407bc6f2d5055",children:[(0,a.jsx)("option",{value:"",className:"jsx-9ea407bc6f2d5055",children:"All"}),null==F?void 0:null===(j=F.countries)||void 0===j?void 0:j.map(e=>(0,a.jsx)("option",{value:e,className:"jsx-9ea407bc6f2d5055",children:e},e))]})]})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 sidebar-section",children:[(0,a.jsx)("div",{className:"jsx-9ea407bc6f2d5055 sidebar-section-title",children:"Cost & Risk"}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 filter-group",children:[(0,a.jsx)("label",{className:"jsx-9ea407bc6f2d5055",children:"Expense Ratio Max (%)"}),(0,a.jsx)("input",{type:"number",step:"0.01",min:"0",max:"5",placeholder:"e.g. 0.5",value:null!==(y=es.expenseRatioMax)&&void 0!==y?y:"",onCh
1ange:e=>eC("expenseRatioMax",e.target.value?parseFloat(e.target.value):null),className:"jsx-9ea407bc6f2d5055"})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 filter-group",children:[(0,a.jsx)("label",{className:"jsx-9ea407bc6f2d5055",children:"Volatility Max (%)"}),(0,a.jsx)("input",{type:"number",step:"1",min:"0",max:"100",placeholder:"e.g. 15",value:null!==(v=es.volatilityMax)&&void 0!==v?v:"",onChange:e=>eC("volatilityMax",e.target.value?parseFloat(e.target.value):null),className:"jsx-9ea407bc6f2d5055"})]})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 sidebar-section",children:[(0,a.jsx)("div",{className:"jsx-9ea407bc6f2d5055 sidebar-section-title",children:"Minimum Returns"}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 filter-group",children:[(0,a.jsx)("label",{className:"jsx-9ea407bc6f2d5055",children:"Dividend Yield Min (%)"}),(0,a.jsx)("input",{type:"number",step:"0.1",min:"0",max:"20",placeholder:"e.g. 2",value:null!==(w=es.dividendYieldMin)&&void 0!==w?w:"",onChange:e=>eC("dividendYieldMin",e.target.value?parseFloat(e.target.value):null),className:"jsx-9ea407bc6f2d5055"})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 filter-group",children:[(0,a.jsx)("label",{className:"jsx-9ea407bc6f2d5055",children:"1Y Return Min (%)"}),(0,a.jsx)("input",{type:"number",step:"1",placeholder:"e.g. 10",value:null!==(k=es.oneYearReturnMin)&&void 0!==k?k:"",onChange:e=>eC("oneYearReturnMin",e.target.value?parseFloat(e.target.value):null),className:"jsx-9ea407bc6f2d5055"})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 filter-group",children:[(0,a.jsx)("label",{className:"jsx-9ea407bc6f2d5055",children:"3Y Return Min (%)"}),(0,a.jsx)("input",{type:"number",step:"1",placeholder:"e.g. 20",value:null!==(_=es.threeYearReturnMin)&&void 0!==_?_:"",onChange:e=>eC("threeYearReturnMin",e.target.value?parseFloat(e.target.value):null),className:"jsx-9ea407bc6f2d5055"})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 filter-group",children:[(0,a.jsx)("label",{className:"jsx-9ea407bc6f2d5055",children:"5Y Return Min (%)"}),(0,a.jsx)("input",{type:"number",step:"1",placeholder:"e.g. 30",value:null!==(N=es.fiveYearReturnMin)&&void 0!==N?N:"",onChange:e=>eC("fiveYearReturnMin",e.target.value?parseFloat(e.target.value):null),className:"jsx-9ea407bc6f2d5055"})]})]}),(0,a.jsxs)("div",{style:{position:"relative",cursor:B?"default":"pointer"},onClick:()=>!B&&X("FundXLS Scores"),className:"jsx-9ea407bc6f2d5055 sidebar-section",children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"6px"},className:"jsx-9ea407bc6f2d5055 sidebar-section-title",children:["FundXLS Scores",!B&&(0,a.jsx)(c.o2,{what:"This feature"})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 filter-group",children:[(0,a.jsx)("label",{className:"jsx-9ea407bc6f2d5055",children:"Buy Score Min"}),(0,a.jsx)("input",{type:"number",step:"5",min:"0",max:"100",placeholder:"e.g. 70",value:null!==(S=es.buyScoreMin)&&void 0!==S?S:"",onChange:e=>eC("buyScoreMin",e.target.value?parseFloat(e.target.value):null),disabled:!B,className:"jsx-9ea407bc6f2d5055"})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 filter-group",children:[(0,a.jsx)("label",{className:"jsx-9ea407bc6f2d5055",children:"Momentum Score Min"}),(0,a.jsx)("input",{type:"number",step:"5",min:"0",max:"100",placeholder:"e.g. 70",value:null!==(z=es.momentumScoreMin)&&void 0!==z?z:"",onChange:e=>eC("momentumScoreMin",e.target.value?parseFloat(e.target.value):null),disabled:!B,className:"jsx-9ea407bc6f2d5055"})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 filter-group",children:[(0,a.jsx)("label",{className:"jsx-9ea407bc6f2d5055",children:"Value Score Min"}),(0,a.jsx)("input",{type:"number",step:"5",min:"0",max:"100",placeholder:"e.g. 70",value:null!==(C=es.valueScoreMin)&&void 0!==C?C:"",onChange:e=>eC("valueScoreMin",e.target.value?parseFloat(e.target.value):null),disabled:!B,className:"jsx-9ea407bc6f2d5055"})]})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 sidebar-section",children:[(0,a.jsx)("div",{className:"jsx-9ea407bc6f2d5055 sidebar-section-title",children:"Holdings"}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 filter-group",children:[(0,a.jsxs)("label",{className:"jsx-9ea407bc6f2d5055",children:["Holds Ticker"," ",el&&es.holdsTickers.length>0&&(0,a.jsx)("span",{className:"jsx-9ea407bc6f2d5055 loading-indicator",children:"..."})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 ticker-input-row",children:[(0,a.jsx)("input",{type:"text",placeholder:"e.g. AAPL",value:ea,onChange:e=>ei(e.target.value.toUpperCase()),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),eb())},className:"jsx-9ea407bc6f2d5055"}),(0,a.jsx)("button",{type:"button",onClick:eb,className:"jsx-9ea407bc6f2d5055 add-ticker-btn",children:"+"})]}),es.holdsTickers.length>0&&(0,a.jsx)("div",{className:"jsx-9ea407bc6f2d5055 ticker-chips",children:es.holdsTickers.map(e=>(0,a.jsxs)("span",{className:"jsx-9ea407bc6f2d5055 ticker-chip",children:[e,(0,a.jsx)("button",{onClick:()=>eh(e),className:"jsx-9ea407bc6f2d5055",children:"\xd7"})]},e))})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 filter-group",children:[(0,a.jsxs)("label",{className:"jsx-9ea407bc6f2d5055",children:["Concentrated On ",el&&es.concentratedOn&&(0,a.jsx)("span",{className:"jsx-9ea407bc6f2d5055 loading-indicator",children:"..."})]}),(0,a.jsx)("input",{type:"text",placeholder:"e.g. NVDA (>5% weight)",value:es.concentratedOn,onChange:e=>ew(e.target.value.toUpperCase()),className:"jsx-9ea407bc6f2d5055"})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 filter-group",children:[(0,a.jsxs)("label",{className:"jsx-9ea407bc6f2d5055",children:["Top Holder ",el&&es.topHolder&&(0,a.jsx)("span",{className:"jsx-9ea407bc6f2d5055 loading-indicator",children:"..."})]}),(0,a.jsx)("input",{type:"text",placeholder:"e.g. AAPL (#1 holding)",value:es.topHolder,onChange:e=>ek(e.target.value.toUpperCase()),className:"jsx-9ea407bc6f2d5055"})]})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 sidebar-section",children:[(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 sidebar-section-title",children:["Portfolio Type"," ",el&&(es.pureEquity||es.pureBond||es.balanced||es.diversifiedSector)&&(0,a.jsx)("span",{className:"jsx-9ea407bc6f2d5055 loading-indicator",children:"..."})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 toggle-group",children:[(0,a.jsxs)("span",{className:"jsx-9ea407bc6f2d5055 toggle-label",children:["Pure Equity (",">","95% stocks)"]}),(0,a.jsx)("div",{onClick:()=>ev("pureEquity"),className:"jsx-9ea407bc6f2d5055 "+"toggle-switch ".concat(es.pureEquity?"active":"")})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 toggle-group",children:[(0,a.jsxs)("span",{className:"jsx-9ea407bc6f2d5055 toggle-label",children:["Pure Bond (",">","90% bonds)"]}),(0,a.jsx)("div",{onClick:()=>ev("pureBond"),className:"jsx-9ea407bc6f2d5055 "+"toggle-switch ".concat(es.pureBond?"active":"")})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 toggle-group",children:[(0,a.jsx)("span",{className:"jsx-9ea407bc6f2d5055 toggle-label",children:"Balanced (40-60% stocks)"}),(0,a.jsx)("div",{onClick:()=>ev("balanced"),className:"jsx-9ea407bc6f2d5055 "+"toggle-switch ".concat(es.balanced?"active":"")})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 toggle-group",children:[(0,a.jsxs)("span",{className:"jsx-9ea407bc6f2d5055 toggle-label",children:["Diversified (no sector ",">","30%)"]}),(0,a.jsx)("div",{onClick:()=>ev("diversifiedSector"),className:"jsx-9ea407bc6f2d5055 "+"toggle-switch ".concat(es.diversifiedSector?"active":"")})]})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 sidebar-section",children:[(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 sidebar-section-title",children:["Price Momentum"," ",el&&(es.near52wHigh||es.near52wLow)&&(0,a.jsx)("span",{className:"jsx-9ea407bc6f2d5055 loading-indicator",children:"..."})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 toggle-group",children:[(0,a.jsx)("span",{className:"jsx-9ea407bc6f2d5055 toggle-label",children:"Near 52-Week High"}),(0,a.jsx)("div",{onClick:()=>ev("near52wHigh"),className:"jsx-9ea407bc6f2d5055 "+"toggle-switch ".concat(es.near52wHigh?"active":"")})]}),(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 toggle-group",children:[(0,a.jsx)("span",{className:"jsx-9ea407bc6f2d5055 toggle-label",children:"Near 52-Week Low"}),(0,a.jsx)("div",{onClick:()=>
1ev("near52wLow"),className:"jsx-9ea407bc6f2d5055 "+"toggle-switch ".concat(es.near52wLow?"active":"")})]})]})]})]}),(0,a.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",flex:1,minWidth:0},className:"jsx-9ea407bc6f2d5055 screener-main",children:[(0,a.jsxs)("div",{style:{flexShrink:0,display:"flex",justifyContent:"space-between",alignItems:"center"},className:"jsx-9ea407bc6f2d5055 stats-bar",children:[(0,a.jsxs)("div",{style:{display:"flex",gap:"16px"},className:"jsx-9ea407bc6f2d5055",children:[(0,a.jsxs)("span",{className:"jsx-9ea407bc6f2d5055",children:[(0,a.jsx)("strong",{className:"jsx-9ea407bc6f2d5055",children:e_.length.toLocaleString()})," ETFs match"]}),(0,a.jsxs)("span",{className:"jsx-9ea407bc6f2d5055",children:["Sorted by ",(0,a.jsx)("strong",{className:"jsx-9ea407bc6f2d5055",children:String(es.sortBy).replace("_"," ")})]}),(0,a.jsxs)("span",{className:"jsx-9ea407bc6f2d5055",children:["Page ",(0,a.jsx)("strong",{className:"jsx-9ea407bc6f2d5055",children:eu+1})," of ",(0,a.jsx)("strong",{className:"jsx-9ea407bc6f2d5055",children:B?eS:1})]})]}),(0,a.jsxs)("button",{onClick:()=>{if(!B){X("Export to CSV");return}let e=new Blob([[["Symbol","Name","Family","Style","Asset Class","Expense Ratio","AUM","Dividend Yield","Buy Score","Momentum","Value","YTD","1Y","3Y"],...e_.map(e=>[e.symbol,e.name,e.fund_family,e.investment_style,e.asset_class,e.expense_ratio,e.net_assets,e.dividend_yield,e.buy_score,e.momentum_score,e.value_score,e.ytd_return,e.one_year_return,e.three_year_return])].map(e=>e.join(",")).join("\n")],{type:"text/csv"}),s=window.URL.createObjectURL(e),t=document.createElement("a");t.href=s,t.download="etf-screener-results.csv",document.body.appendChild(t),t.click(),document.body.removeChild(t),window.URL.revokeObjectURL(s)},style:{padding:"6px 12px",fontSize:"12px",fontWeight:600,background:B?"#f8fafc":"#f1f5f9",color:B?"#475569":"#94a3b8",border:"1px solid #e2e8f0",borderRadius:"4px",cursor:B?"pointer":"not-allowed",opacity:B?1:.7,display:"flex",alignItems:"center",gap:"4px"},title:B?"Export results to CSV":"Premium feature - Click to upgrade",className:"jsx-9ea407bc6f2d5055",children:["Export CSV",!B&&(0,a.jsx)(c.o2,{what:"This feature"})]})]}),(0,a.jsxs)("div",{style:{flex:1,overflowY:"auto",overflowX:"auto"},className:"jsx-9ea407bc6f2d5055 screener-table-wrapper",children:[el&&(0,a.jsxs)("div",{className:"jsx-9ea407bc6f2d5055 table-loading-overlay",children:[(0,a.jsx)("div",{className:"jsx-9ea407bc6f2d5055 spinner"}),(0,a.jsx)("span",{className:"jsx-9ea407bc6f2d5055",children:"Applying filters..."})]}),(0,a.jsxs)("table",{style:{tableLayout:"fixed",width:"max-content"},className:"jsx-9ea407bc6f2d5055 screener-table",children:[(0,a.jsx)("thead",{className:"jsx-9ea407bc6f2d5055",children:(0,a.jsxs)("tr",{className:"jsx-9ea407bc6f2d5055",children:[(0,a.jsxs)("th",{style:{width:W.symbol,position:"relative"},className:"jsx-9ea407bc6f2d5055 sortable",children:[(0,a.jsxs)("span",{onClick:()=>ez("symbol"),className:"jsx-9ea407bc6f2d5055",children:["Symbol ",(0,a.jsx)(eR,{column:"symbol",className:"jsx-9ea407bc6f2d5055"})]}),(0,a.jsx)("div",{onMouseDown:e=>Q("symbol",e),onClick:e=>e.stopPropagation(),className:"jsx-9ea407bc6f2d5055 "+"resize-handle ".concat("symbol"===V?"resizing":"")})]}),(0,a.jsxs)("th",{style:{width:W.name,position:"relative"},className:"jsx-9ea407bc6f2d5055",children:["Name",(0,a.jsx)("div",{onMouseDown:e=>Q("name",e),onClick:e=>e.stopPropagation(),className:"jsx-9ea407bc6f2d5055 "+"resize-handle ".concat("name"===V?"resizing":"")})]}),(0,a.jsxs)("th",{style:{width:W.family,position:"relative"},className:"jsx-9ea407bc6f2d5055 family-cell",children:["Family",(0,a.jsx)("div",{onMouseDown:e=>Q("family",e),onClick:e=>e.stopPropagation(),className:"jsx-9ea407bc6f2d5055 "+"resize-handle ".concat("family"===V?"resizing":"")})]}),(0,a.jsxs)("th",{style:{width:W.style,position:"relative"},className:"jsx-9ea407bc6f2d5055 sortable",children:[(0,a.jsxs)("span",{onClick:()=>ez("investment_style"),className:"jsx-9ea407bc6f2d5055",children:["Style ",(0,a.jsx)(eR,{column:"investment_style",className:"jsx-9ea407bc6f2d5055"}),!B&&(0,a.jsx)(c.o2,{what:"This column"})]}),(0,a.jsx)("div",{onMouseDown:e=>Q("style",e),onClick:e=>e.stopPropagation(),className:"jsx-9ea407bc6f2d5055 "+"resize-handle ".concat("style"===V?"resizing":"")})]}),(0,a.jsxs)("th",{style:{width:W.asset_class,position:"relative",curs
1or:"pointer"},className:"jsx-9ea407bc6f2d5055 sortable",children:[(0,a.jsxs)("span",{onClick:()=>B?ez("asset_class"):X("FundXLS Scores"),className:"jsx-9ea407bc6f2d5055",children:["Asset Class ",(0,a.jsx)(eR,{column:"asset_class",className:"jsx-9ea407bc6f2d5055"}),!B&&(0,a.jsx)(c.o2,{what:"This column"})]}),(0,a.jsx)("div",{onMouseDown:e=>Q("asset_class",e),onClick:e=>e.stopPropagation(),className:"jsx-9ea407bc6f2d5055 "+"resize-handle ".concat("asset_class"===V?"resizing":"")})]}),(0,a.jsxs)("th",{style:{width:W.expense,position:"relative"},className:"jsx-9ea407bc6f2d5055 sortable",children:[(0,a.jsxs)("span",{onClick:()=>ez("expense_ratio"),className:"jsx-9ea407bc6f2d5055",children:["Exp. Ratio ",(0,a.jsx)(eR,{column:"expense_ratio",className:"jsx-9ea407bc6f2d5055"})]}),(0,a.jsx)("div",{onMouseDown:e=>Q("expense",e),onClick:e=>e.stopPropagation(),className:"jsx-9ea407bc6f2d5055 "+"resize-handle ".concat("expense"===V?"resizing":"")})]}),(0,a.jsxs)("th",{onClick:()=>ez("net_assets"),className:"jsx-9ea407bc6f2d5055 sortable",children:["AUM ",(0,a.jsx)(eR,{column:"net_assets",className:"jsx-9ea407bc6f2d5055"})]}),(0,a.jsxs)("th",{onClick:()=>ez("dividend_yield"),className:"jsx-9ea407bc6f2d5055 sortable",children:["Yield ",(0,a.jsx)(eR,{column:"dividend_yield",className:"jsx-9ea407bc6f2d5055"})]}),(0,a.jsxs)("th",{onClick:()=>B?ez("buy_score"):X("FundXLS Scores"),style:{cursor:"pointer"},className:"jsx-9ea407bc6f2d5055 sortable",children:["Buy Score ",(0,a.jsx)(eR,{column:"buy_score",className:"jsx-9ea407bc6f2d5055"}),!B&&(0,a.jsx)(c.o2,{what:"This column"})]}),(0,a.jsxs)("th",{onClick:()=>B?ez("momentum_score"):X("FundXLS Scores"),style:{cursor:"pointer"},className:"jsx-9ea407bc6f2d5055 sortable",children:["Momentum ",(0,a.jsx)(eR,{column:"momentum_score",className:"jsx-9ea407bc6f2d5055"}),!B&&(0,a.jsx)(c.o2,{what:"This column"})]}),(0,a.jsxs)("th",{onClick:()=>B?ez("value_score"):X("FundXLS Scores"),style:{cursor:"pointer"},className:"jsx-9ea407bc6f2d5055 sortable",children:["Value ",(0,a.jsx)(eR,{column:"value_score",className:"jsx-9ea407bc6f2d5055"}),!B&&(0,a.jsx)(c.o2,{what:"This column"})]}),(0,a.jsxs)("th",{onClick:()=>ez("one_month_return"),className:"jsx-9ea407bc6f2d5055 sortable",children:["1M ",(0,a.jsx)(eR,{column:"one_month_return",className:"jsx-9ea407bc6f2d5055"})]}),(0,a.jsxs)("th",{onClick:()=>ez("three_month_return"),className:"jsx-9ea407bc6f2d5055 sortable",children:["3M ",(0,a.jsx)(eR,{column:"three_month_return",className:"jsx-9ea407bc6f2d5055"})]}),(0,a.jsxs)("th",{onClick:()=>ez("six_month_return"),className:"jsx-9ea407bc6f2d5055 sortable",children:["6M ",(0,a.jsx)(eR,{column:"six_month_return",className:"jsx-9ea407bc6f2d5055"})]}),(0,a.jsxs)("th",{onClick:()=>ez("ytd_return"),className:"jsx-9ea407bc6f2d5055 sortable",children:["YTD ",(0,a.jsx)(eR,{column:"ytd_return",className:"jsx-9ea407bc6f2d5055"})]}),(0,a.jsxs)("th",{onClick:()=>ez("one_year_return"),className:"jsx-9ea407bc6f2d5055 sortable",children:["1Y ",(0,a.jsx)(eR,{column:"one_year_return",className:"jsx-9ea407bc6f2d5055"})]}),(0,a.jsxs)("th",{onClick:()=>ez("three_year_return"),className:"jsx-9ea407bc6f2d5055 sortable",children:["3Y ",(0,a.jsx)(eR,{column:"three_year_return",className:"jsx-9ea407bc6f2d5055"})]}),(0,a.jsxs)("th",{onClick:()=>ez("volatility_30d"),className:"jsx-9ea407bc6f2d5055 sortable",children:["Vol ",(0,a.jsx)(eR,{column:"volatility_30d",className:"jsx-9ea407bc6f2d5055"})]}),(0,a.jsxs)("th",{onClick:()=>B?ez("category_rank"):X("FundXLS Scores"),style:{cursor:"pointer"},className:"jsx-9ea407bc6f2d5055 sortable",children:["Rank ",(0,a.jsx)(eR,{column:"category_rank",className:"jsx-9ea407bc6f2d5055"}),!B&&(0,a.jsx)(c.o2,{what:"This column"})]}),(0,a.jsxs)("th",{onClick:()=>ez("holdings_count"),className:"jsx-9ea407bc6f2d5055 sortable",children:["Holdings ",(0,a.jsx)(eR,{column:"holdings_count",className:"jsx-9ea407bc6f2d5055"})]})]})}),(0,a.jsxs)("tbody",{className:"jsx-9ea407bc6f2d5055",children:[eN.map(e=>{var s;return(0,a.jsxs)("tr",{className:"jsx-9ea407bc6f2d5055",children:[(0,a.jsx)("td",{style:{width:W.symbol},className:"jsx-9ea407bc6f2d5055 symbol-cell",children:(0,a.jsx)(x(),{href:"/etfs/".concat(e.symbol.toLowerCase()),children:e.symbol})}),(0,a.jsx)("td",{title:e.name,style:{width:W.name},className:"jsx-9ea407bc6f2d5055 name-cell",children:e.short_name||e.name}),(0,a.jsx)("td",{title:e.fund_family,style:{width:W.family},className:"jsx-9ea407bc6f2d5055 family-cell",children:e.fund_family}),(0,a.jsx)("td",{style:{width:W.style,cursor:B?"default":"pointer"},onClick:()=>!B&&X("Premium Scores"),title:B?void 0:"Premium feature - Click to upgrade",className:"jsx-9ea407bc6f2d5055 text-xs text-gray-700 px-3 py-2",children:B?e.investment_style||"-":(0,a.jsx)(c.Xe,{what:"Pro data"})}),(0,a.jsx)("td",{style:{width:W.asset_class,cursor:B?"default":"pointer"},onClick:()=>!B&&X("Premium Scores"),title:B?void 0:"Premium feature - Click to upgrade",className:"jsx-9ea407bc6f2d5055 text-xs text-gray-700 px-3 py-2",children:B?e.asset_class||"-":(0,a.jsx)(c.Xe,{what:"Pro data"})}),(0,a.jsx)("td",{style:{width:W.expense},className:"jsx-9ea407bc6f2d5055 number-cell",children:h(e.expense_ratio)}),(0,a.jsx)("td",{className:"jsx-9ea407bc6f2d5055 number-cell",children:b(e.net_assets)}),(0,a.jsx)("td",{className:"jsx-9ea407bc6f2d5055 number-cell",children:h(e.divi
1dend_yield)}),(0,a.jsx)("td",{style:{cursor:B?"default":"pointer"},onClick:()=>!B&&X("Premium Scores"),title:B?void 0:"Premium feature - Click to upgrade",className:"jsx-9ea407bc6f2d5055 number-cell",children:B?null!==e.buy_score?(0,a.jsx)("span",{style:{background:e.buy_score>=80?"#0167B8":e.buy_score>=60?"rgba(1, 103, 184, 0.2)":"#f1f5f9",color:e.buy_score>=80?"#fff":e.buy_score>=60?"#0167B8":"#64748b",padding:"3px 8px",borderRadius:"4px",fontSize:"11px",fontWeight:700,display:"inline-block",minWidth:"32px",textAlign:"center"},className:"jsx-9ea407bc6f2d5055",children:Math.round(e.buy_score)}):"-":(0,a.jsx)(c.Xe,{what:"Pro data"})}),(0,a.jsx)("td",{style:{cursor:B?"default":"pointer"},onClick:()=>!B&&X("Premium Scores"),title:B?void 0:"Premium feature - Click to upgrade",className:"jsx-9ea407bc6f2d5055 number-cell",children:B?null!==e.momentum_score?(0,a.jsx)("span",{style:{background:e.momentum_score>=80?"#16a34a":e.momentum_score>=60?"rgba(22, 163, 74, 0.15)":"#f1f5f9",color:e.momentum_score>=80?"#fff":e.momentum_score>=60?"#16a34a":"#64748b",padding:"3px 8px",borderRadius:"4px",fontSize:"11px",fontWeight:600,display:"inline-block",minWidth:"32px",textAlign:"center"},className:"jsx-9ea407bc6f2d5055",children:Math.round(e.momentum_score)}):"-":(0,a.jsx)(c.Xe,{what:"Pro data"})}),(0,a.jsx)("td",{style:{cursor:B?"default":"pointer"},onClick:()=>!B&&X("Premium Scores"),title:B?void 0:"Premium feature - Click to upgrade",className:"jsx-9ea407bc6f2d5055 number-cell",children:B?null!==e.value_score?(0,a.jsx)("span",{style:{background:e.value_score>=80?"#d97706":e.value_score>=60?"rgba(217, 119, 6, 0.15)":"#f1f5f9",color:e.value_score>=80?"#fff":e.value_score>=60?"#d97706":"#64748b",padding:"3px 8px",borderRadius:"4px",fontSize:"11px",fontWeight:600,display:"inline-block",minWidth:"32px",textAlign:"center"},className:"jsx-9ea407bc6f2d5055",children:Math.round(e.value_score)}):"-":(0,a.jsx)(c.Xe,{what:"Pro data"})}),(0,a.jsx)("td",{style:{color:g(e.one_month_return)},className:"jsx-9ea407bc6f2d5055 number-cell",children:h(e.one_month_return,!0)}),(0,a.jsx)("td",{style:{color:g(e.three_month_return)},className:"jsx-9ea407bc6f2d5055 number-cell",children:h(e.three_month_return,!0)}),(0,a.jsx)("td",{style:{color:g(e.six_month_return)},className:"jsx-9ea407bc6f2d5055 number-cell",children:h(e.six_month_return,!0)}),(0,a.jsx)("td",{style:{color:g(e.ytd_return)},className:"jsx-9ea407bc6f2d5055 number-cell",children:h(e.ytd_return,!0)}),(0,a.jsx)("td",{style:{color:g(e.one_year_return)},className:"jsx-9ea407bc6f2d5055 number-cell",children:h(e.one_year_return,!0)}),(0,a.jsx)("td",{style:{color:g(e.three_year_return)},className:"jsx-9ea407bc6f2d5055 number-cell",children:h(e.three_year_return,!0)}),(0,a.jsx)("td",{className:"jsx-9ea407bc6f2d5055 number-cell",children:e.volatility_30d?"".concat(e.volatility_30d.toFixed(1),"%"):"-"}),(0,a.jsx)("td",{style:{cursor:B?"default":"pointer"},onClick:()=>!B&&X("Premium Scores"),title:B?void 0:"Premium feature - Click to upgrade",className:"jsx-9ea407bc6f2d5055 number-cell",children:B?e.category_rank&&e.category_size?(0,a.jsxs)("span",{style:{background:25>=Math.round(e.category_rank/e.category_size*100)?"#d1fae5":50>=Math.round(e.category_rank/e.category_size*100)?"#fef3c7":"#fee2e2",color:25>=Math.round(e.category_rank/e.category_size*100)?"#059669":50>=Math.round(e.category_rank/e.category_size*100)?"#d97706":"#dc2626",padding:"2px 6px",borderRadius:"4px",fontSize:"10px",fontWeight:600},className:"jsx-9ea407bc6f2d5055",children:["Top ",Math.round(e.category_rank/e.category_size*100),"%"]}):"-":(0,a.jsx)(c.Xe,{what:"Pro data"})}),(0,a.jsx)("td",{className:"jsx-9ea407bc6f2d5055 number-cell",children:null!==(s=e.holdings_count)&&void 0!==s?s:"-"})]},e.symbol)}),0===eN.length&&(0,a.jsx)("tr",{className:"jsx-9ea407bc6f2d5055",children:(0,a.jsx)("td",{colSpan:18,style:{textAlign:"center",padding:40,color:"#6b7280"},className:"jsx-9ea407bc6f2d5055",children:"No ETFs match your criteria. Try adjusting your filters."})})]})]}),!B&&e_.length>10&&(0,a.jsx)("div",{style:{padding:"16px",borderTop:"1px solid #e2e8f0"},className:"jsx-9ea407bc6f2d5055",children:(0,a.jsx)(c.Gl,{ctx:{gateId:"screener_band",count:e_.length-10,noun:"ETFs"}
1,headline:"See the other ".concat((e_.length-10).toLocaleString()," ETFs matching your criteria"),sub:"Full screener results with every score, advanced filters and CSV export.",onClick:()=>X("Full Screener Results")})})]}),(0,a.jsxs)("div",{style:{flexShrink:0,marginTop:"16px"},className:"jsx-9ea407bc6f2d5055 pagination",children:[(0,a.jsx)("button",{disabled:0===eu,onClick:()=>ex(0),className:"jsx-9ea407bc6f2d5055",children:"⪠First"}),(0,a.jsx)("button",{disabled:0===eu,onClick:()=>ex(e=>Math.max(0,e-1)),className:"jsx-9ea407bc6f2d5055",children:"â Prev"}),(0,a.jsxs)("span",{className:"jsx-9ea407bc6f2d5055 page-info",children:[50*eu+1," - ",Math.min((eu+1)*50,e_.length)," of"," ",e_.length.toLocaleString()]}),(0,a.jsx)("button",{disabled:B&&eu>=eS-1,onClick:()=>B?ex(e=>e+1):X("View More Results"),title:B?void 0:"Premium feature - Upgrade to view more pages",className:"jsx-9ea407bc6f2d5055",children:"Next â"}),(0,a.jsx)("button",{disabled:B&&eu>=eS-1,onClick:()=>B?ex(eS-1):X("View More Results"),title:B?void 0:"Premium feature - Upgrade to view more pages",className:"jsx-9ea407bc6f2d5055",children:"Last â«"})]})]})]})]}),(0,a.jsx)(p.Z,{show:H,onClose:()=>I(!1),featureName:D})]})}},91479:function(){}},function(e){e.O(0,[10451,38420,3402,75803,67196,92888,49774,40179],function(){return e(e.s=49134)}),_N_E=e.O()}]);
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.