1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{};e.SENTRY_RELEASE={id:"e9cc7b2420e5d76423b99ff4271bbeade7bff705"},e._sentryModuleMetadata=e._sentryModuleMetadata||{},e._sentryModuleMetadata[(new e.Error).stack]=function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];if(null!=n)for(var r in n)n.hasOwnProperty(r)&&(e[r]=n[r])}return e}({},e._sentryModuleMetadata[(new e.Error).stack],{"_sentryBundlerPluginAppKey:finviz":!0});var t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1711c875-f847-45e5-a9ce-8fd0113a084b",e._sentryDebugIdIdentifier="sentry-dbid-1711c875-f847-45e5-a9ce-8fd0113a084b")}catch(e){}}(),(self.webpackChunkFinvizModern=self.webpackChunkFinvizModern||[]).push([[4331],{51652(e,t,n){n.d(t,{IZ:()=>r,Ig:()=>i,Yp:()=>o,yI:()=>a});let r=function(e){return e.Sector="sec",e.Dow="sec_dji",e.Russell="sec_rut",e.Nasdaq="sec_ndx",e.NasdaqComposite="sec_comp",e.World="geo",e.SectorFull="sec_all",e.MarketCap="cap",e.ETF="etf",e.Screener="screener",e.Portfolio="portfolio",e.ETFHoldings="etf_holdings",e.ManagersAndFunds="managers_and_funds",e.CryptoUSD="crypto",e.CryptoUSDT="crypto_usdt",e.CryptoEUR="crypto_eur",e.CryptoBTC="crypto_btc",e.Futures="futures",e.Groups="groups",e.Themes="themes",e}({}),a=function(e){return e.IntradayPerf1m="i1",e.IntradayPerf2m="i2",e.IntradayPerf3m="i3",e.IntradayPerf5m="i5",e.IntradayPerf10m="i10",e.IntradayPerf15m="i15",e.IntradayPerf30m="i30",e.IntradayPerf1h="h",e.IntradayPerf2h="2h",e.IntradayPerf4h="4h",e.IntradayPerfAH="ah",e.DayPerf="d1",e.WeekPerf="w1",e.MonthPerf="w4",e.ThreeMonthPerf="w13",e.SixMonthPerf="w26",e.YearPerf="w52",e.MonthToDatePerf="mtd",e.YearToDatePerf="ytd",e.ThreeYearPerf="3y",e.FiveYearPerf="5y",e.TenYearPerf="10y",e.HighYearRelative="h52wrel",e.LowYearRelative="l52wrel",e.RelativeVolume="relvol",e.PriceToEarnings="pe",e.ForwardPriceToEearnings="fpe",e.PriceEarningsToGrowth="peg",e.PriceToSalesRatio="ps",e.PriceToBookRatio="pb",e.PriceToFreeCashFlow="pfcf",e.DividendYield="div",e.EPSGrowth5y="eps5y",e.EPSGrowth3y="eps3y",e.EPSThisYear="epsthisyear",e.EPSNextYear="epsnextyear",e.EPSQuarterOverQuarter="epsqoq",e.EPSNext5Years="epsnext5y",e.EPSTTM="epsttm",e.SalesQuarterOverQuarter="salesqoq",e.SalesTTM="salesttm",e.InsiderTransactions="insidertrans",e.ROA="roa",e.ROE="roe",e.ROIC="roic",e.QuickRatio="quickratio",e.CurrentRatio="currentratio",e.LTDebtEquity="ltdebteq",e.DebtEquity="debteq",e.GrossMargin="grossmargin",e.OperatingMargin="operatingmargin",e.NetMargin="netmargin",e.SalesGrowth3y="sales3y",e.SalesGrowth5y="sales5y",e.EPSSurprise="epssurprise",e.SalesSurprise="salessurprise",e.FloatShort="short",e.AnalystRecommendation="rec",e.EarningsPerf="earnperf",e.EarningsDate="earndate",e.DividendGrowth1y="div1y",e.DividendGrowth3y="div3y",e.DividendGrowth5y="div5y",e.EVEbitda="evebitda",e.EVSales="evsales",e.PortfolioGainPct="portfolioGainPct",e.PortfolioGainUsd="portfolioGainUsd",e.PortfolioChangePct="portfolioChangePct",e.PortfolioChangeUsd="portfolioChangeUsd",e.ManagersAndFunds="managersAndFunds",e}({}),o=function(e){return e.DayPerf="default",e.IntradayReduced="intradayReduced",e.PlusMinusSix="plusMinusSix",e.PlusMinusTen="plusMinusTen",e.PlusMinusTwenty="plusMinusTwenty",e.PlusMinusTwentyFive="plusMinusTwentyFive",e.PlusMinusThirty="plusMinusThirty",e.PlusMinusFifty="plusMinusFifty",e.PlusMinusHundred="plusMinusHundred",e.MinusFiftyToNinety="minusFiftyToNinety",e.MinusHundredToThreeHundred="minusHundredToThreeHundred",e.MinusHundredToFiveHundred="minusHundredToFiveHundred",e.MinusHundredToThousand="minusHundredToThousand",e.ZeroToTwo="zeroToTwo",e.ZeroToThree="zeroToThree",e.ZeroToFive="zeroToFive",e.ZeroToTen="zeroToTen",e.ZeroToTwentyFive="zeroToTwentyFive",e.ZeroToForty="zeroToForty",e.RelativeVolume="relativeVolume",e.DividendYield="dividendYield",e.QuickRatio="quickRatio",e.CurrentRatio="currentRatio",e.FloatShort="floatShort",e.InsiderTransactions="insiderTransactions",e.AnalystRecommendation="analystRecommendation",e.EarningsDate="earningsDate",e.PortfolioPct="portfolioPct",e.PortfolioUsd="portfolioUsd",e.BuySell="buySell",e}({}
1),i=function(e){return e[e.Root=0]="Root",e[e.Sector=1]="Sector",e[e.Industry=2]="Industry",e[e.Node=3]="Node",e}({})},57953(e,t,n){n.d(t,{OH:()=>m,kP:()=>d});n(14846),n(94364);var r=n(4452),a=n.n(r),o=n(63696),i=n(25288),s=n(96288),l=n(62540);function c(e,t){return Array.isArray(e)?e:t?[-1/0,e]:[e,1/0]}function u(e,t,n){let[r,a]=t;if(null==e)return!1;return("below"===n?e>=r:e>r)&&("above"===n?e<=a:e<a)}function d(e){let{value:t,children:n,className:r,textClass:o,rightContent:d,rightClass:m,renderArrow:h,min:f,max:p,direction:k="higher-is-better",scale:g="red-green",neutralTextClass:y="text-muted-2",neutralByDefault:w=!1}=e;const M=t&&Number.isFinite(t),T=void 0===d&&M&&0!==t,{isPositive:C,isNegative:v}=function(e,t,n,r){const a=Number.isFinite(e),o="lower-is-better"===r;if(!Array.isArray(t)&&!Array.isArray(n)){if(!e||!a)return{isPositive:!1,isNegative:!1};const r=e<t,i=e>n;return{isPositive:o?r:i,isNegative:o?i:r}}if(!a)return{isPositive:!1,isNegative:!1};const i=u(e,c(n,o),"below"),s=u(e,c(t,o),"above");return i?{isPositive:!o,isNegative:o}:s?{isPositive:!1,isNegative:!1}:{isPositive:o,isNegative:!o}}(t,f??0,p??0,k),P=w||Array.isArray(f)||Array.isArray(p),x=a()({"is-scale-red-blue":"red-blue"===g,"text-positive":C,"text-negative":v,[y]:"number"!=typeof t||P&&!C&&!v});return(0,l.jsxs)(i.Ss,{as:"span",className:a()("items-baseline justify-end whitespace-nowrap",x,r),children:[(0,l.jsx)(i.EY,{as:"span",className:a()(x,o),children:n}),(0,l.jsxs)(i.Ss,{as:"span",className:a()("text-center",{"w-0 pl-px":d||T},m),children:[T?h?.(t,x)??(0,l.jsx)(s.I,{width:12,name:t>0?"arrowUpShort":"arrowDownShort",className:a()(x,"block")}):null,d]})]})}function m(e){let{className:t,children:n,...r}=e;return(0,l.jsx)("div",{...r,className:a()(t,"table w-full"),children:o.Children.map(n,e=>o.isValidElement(e)&&e.type===d?o.cloneElement(e,{className:a()(e.props.className,"table-row w-full"),rightClass:"table-cell align-middle"}):e)})}},41033(e,t,n){n.d(t,{G5:()=>g,Xy:()=>k,p9:()=>p,u6:()=>f});var r=n(63696),a=n(21720),o=n(53993),i=n(95),s=n(25877),l=n(62540);
1const c={notePosition:0,companyColumnIndex:-1,noteColumnIndex:-1,transactionColumnIndex:-1},u={setShowAllNotes:()=>{},registerEditNoteCallback:()=>()=>{},requestEditNote:()=>{}},d=r.createContext(u),m=r.createContext(c),h=r.createContext(!1);function f(){return r.useContext(d)}function p(){return r.useContext(m)}function k(){return r.useContext(h)}function g(e){let{view:t,children:n}=e;const u=(0,i.b)(t===s.Oy.Ticker?s.VM.Group:s.VM.Trade),{saveSetting:f,state:p}=(0,o.h)(),[k,g]=r.useState(p.showNotes),y=r.useRef(new Map),w=r.useRef(null),M=(0,a.d)(()=>({setShowAllNotes:e=>{g(e),f("showNotes",e)},registerEditNoteCallback:(e,t)=>(y.current.set(e,t),()=>{y.current.delete(e),w.current===e&&(w.current=null)}),requestEditNote:(e,t,n)=>{const r=`${e}-${t}`;w.current&&w.current!==r&&y.current.get(w.current)?.(null),y.current.get(r)?.(n),w.current=r}})),T=r.useMemo(()=>{const e={...c},n=Math.floor(u.length/2);for(let t=0;t<u.length;t++){const n=u[t];if(n.id===s.mJ.Company&&e.companyColumnIndex<0&&(e.companyColumnIndex=t),n.id===s.mJ.Note&&e.noteColumnIndex<0&&(e.noteColumnIndex=t),n.id===s.mJ.Transaction&&e.transactionColumnIndex<0&&(e.transactionColumnIndex=t),e.companyColumnIndex>=0&&e.noteColumnIndex>=0&&e.transactionColumnIndex>=0)break}return t===s.Oy.Ticker&&(e.companyColumnIndex>u.length/2?e.notePosition=0:e.companyColumnIndex>1?e.notePosition=e.companyColumnIndex+1:e.notePosition=e.companyColumnIndex),t===s.Oy.Trade&&(-1===e.transactionColumnIndex||e.transactionColumnIndex>n&&u.length>5?e.notePosition=n-1:e.notePosition=e.transactionColumnIndex-1),{...e,notePosition:Math.max(e.n
1otePosition,0)}},[u,t]);return(0,l.jsx)(d.Provider,{value:M,children:(0,l.jsx)(m.Provider,{value:T,children:(0,l.jsx)(h.Provider,{value:k,children:n})})})}},71451(e,t,n){n.d(t,{d:()=>J,c:()=>V});var r=n(4452),a=n.n(r),o=n(19879),i=n(83971),s=n(57953),l=n(55422),c=n(21359),u=n(35721),d=(n(63696),n(53150)),m=n(25877),h=n(41033),f=n(62540);const p=[m.VM.Group,m.VM.Transaction],k=[m.mJ.Ticker,m.mJ.Company];function g(e){let{children:t,onClick:n,...r}=e;const o=(0,d.i8d)({placement:"right"});return t?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(d.$nd,{...r,theme:"transparent",appearance:"square",leftContent:"commentOutlined",as:d.k$k,state:o,size:"small",className:a()(r.className,"relative top-1 -mt-2.5 inline-flex cursor-pointer"),"data-boxover-ignore":!0,"data-testid":"note-tooltip-trigger",onClick:n?e=>{e.stopPropagation(),o.hide(),n()}:void 0}),(0,f.jsx)(d.m_M,{isPointerEventsEnabled:!1,state:o,className:"max-w-56 whitespace-pre-wrap","data-testid":"note-tooltip-content",children:t})]}):null}function y(e){const t=(0,h.Xy)(),{requestEditNote:n}=(0,h.u6)();return t||e.columnId===m.mJ.Company||e.columnId===m.mJ.Transaction?null:(0,f.jsx)(g,{className:e.className,onClick:()=>n(e.ticker,e.rowIndex,"ticker"),children:e.note})}function w(e){let{className:t,note:n,noteTicker:r,columnId:a,ticker:o,rowIndex:i}=e;const s=(0,h.Xy)(),l=(0,h.p9)(),{requestEditNote:c}=(0,h.u6)(),u=l.transactionColumnIndex>=0,p=!!n&&!!r&&!u||!u&&!!n,y=k.includes(a)&&r?"ticker":"tradeNote";return s||a===m.mJ.Transaction&&!n||a===m.mJ.Transaction&&(l.noteColumnIndex>=0||!u)||a===m.mJ.Company||u&&a===m.mJ.Ticker&&!r?null:(0,f.jsx)(g,{className:t,onClick:()=>c(o,i,y),children:p?(0,f.jsxs)("div",{className:"flex flex-col gap-1",children:[r&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(d.JU7,{className:"mb-1 font-medium",children:"Ticker Note"}),r]}),(0,f.jsx)(d.JU7,{className:"my-1 font-medium",children:"Transaction Note"}),n]}):k.includes(a)&&r?(0,f.jsx)(f.Fragment,{children:r}):(0,f.jsx)(f.Fragment,{children:n})})}function M(e){return e.note||e.noteTicker?p.includes(e.rowKind)?(0,f.jsx)(y,{...e}):(0,f.jsx)(w,{...e}):null}var T=n(92024);function C(e){const t=(0,c.YK)(e,"portfolio"),n=(0,c.rs)(t);return{id:e,urlSort:t?.urlSort??"",plainName:t?.plainName??"",name:t?.shortName?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("span",{className:"xl:hidden",children:t.shortName}),(0,f.jsx)("span",{className:"hidden xl:inline",children:t.plainName})]}):t?.plainName??"",...n?{align:n}:{}}}function v(e){let{company:t}=e;const n=(0,l.i8)({placement:"bottom"});return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(l.k$,{state:n,className:"truncate",children:t}),(0,f.jsx)(l.m_,{isPointerEventsEnabled:!1,state:n,className:"max-w-56",children:t})]})}function P(e){let{note:t}=e;const n=(0,l.i8)({placement:"bottom"});return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(l.k$,{state:n,className:"line-clamp-4 text-left",children:t}),(0,f.jsx)(l.m_,{isPointerEventsEnabled:!1,state:n,className:"max-w-56 whitespace-pre-wrap",children:t})]})}let x=null;function J(){return x||(x=Object.freeze({[m.mJ.Spacer]:{...C(m.mJ.Spacer),renderColumn:()=>null},[m.mJ.Ticker]:{...C(m.mJ.Ticker),renderColumn:e=>{switch(e.kind){case m.VM.Transaction:case m.VM.Summary:return null;case m.VM.Group:case m.VM.Trade:return e.row.type!==m.FJ.Stock||e.row.isDelisted?e.row.type===m.FJ.Stock?(0,f.jsxs)("span",{className:"flex w-full items-center gap-1",children:[(0,f.jsx)(i.gS,{ticker:e.row.ticker}),(0,f.jsx)("span",{children:e.row.ticker})]}):(0,f.jsx)("span",{children:e.row.ticker}):(0,f.jsxs)("span",{className:"flex w-full items-center gap-1",children:[(0,f.jsx)(i.gS,{ticker:e.row.ticker}),(0,f.jsx)("a",{href:`/stock?t=${e.row.ticker}`,className:"tab-link flex grow items-center",onClick:e=>e.stopPropagation(),children:e.row.ticker}),null!=e.rowIndex&&(e.row.note||e.kind===m.VM.Trade&&e.row.noteTicker)&&(0,f.jsx)(M,{ticker:e.row.ticker,rowKind:e.kind,rowIndex:e.rowIndex,note:e.row.note,noteTicker:e.kind===m.VM.Trade?e.row.noteTicker:void 0,columnId:m.mJ.Ticker})]});default:return(0,f.jsx)("span",{children:e.row.ticker})}}},[m.mJ.Company]:{...C(m.mJ.Company),renderColumn:e=>{switch(e.kind){case m.VM.Transaction:case m.VM.Summary:return null;default:return(0,f.jsxs)("div",{className:"flex max-w-60 items-start",children:[(0,f.jsx)(v,{c
1ompany:e.row.company}),null!=e.rowIndex&&(e.row.note||e.kind===m.VM.Trade&&e.row.noteTicker)&&(0,f.jsx)(M,{ticker:e.row.ticker,rowKind:e.kind,rowIndex:e.rowIndex,note:e.row.note,noteTicker:e.kind===m.VM.Trade?e.row.noteTicker:void 0,columnId:m.mJ.Company,className:"top-1.5"})]})}}},[m.mJ.LastClose]:{...C(m.mJ.LastClose),renderColumn:e=>{if(e.kind!==m.VM.Summary&&e.row.type===m.FJ.Cash)return null;switch(e.kind){case m.VM.Transaction:case m.VM.Summary:return null;default:return(0,u.ZV)(e.row.lastClose)}}},[m.mJ.LastChange]:{...C(m.mJ.LastChange),getValueForSort:e=>e.kind===m.VM.Group||e.kind===m.VM.Watchlist?e.row.lastClose-e.row.prevClose:null,renderColumn:e=>{switch(e.kind){case m.VM.Transaction:case m.VM.Summary:return null;default:if(e.row.isDelisted)return"-";const t=e.row.lastClose-e.row.prevClose;return(0,f.jsx)(s.kP,{value:t,rightContent:null,children:(0,u.ZV)(t,{showPlusSign:!0,fractions:e.row.lastClose<1?4:2})})}}},[m.mJ.LastChangePct]:{...C(m.mJ.LastChangePct),renderColumn:e=>e.kind!==m.VM.Summary&&e.row.type===m.FJ.Cash||e.kind===m.VM.Transaction?null:(0,f.jsx)(s.kP,{value:e.row.lastChangePct,rightContent:null!==e.row.lastChangePct?(0,f.jsx)("span",{children:"%"}):null,children:(0,u.ZV)(e.row.lastChangePct,{showPlusSign:!0})})},[m.mJ.LastVolume]:{...C(m.mJ.LastVolume),renderColumn:e=>{if(e.kind!==m.VM.Summary&&e.row.type===m.FJ.Cash)return null;switch(e.kind){case m.VM.Group:case m.VM.Trade:case m.VM.Watchlist:return(0,u.ZV)(e.row.lastVolume,{fractions:0});default:return null}}},[m.mJ.Transaction]:{...C(m.mJ.Transaction),renderColumn:e=>{switch(e.kind){case m.VM.Transaction:case m.VM.Trade:return(0,f.jsxs)(f.Fragment,{children:[T.G5[e.row.transaction],null!=e.rowIndex&&e.row.note&&(0,f.jsx)(M,{ticker:e.row.ticker,rowKind:e.kind,rowIndex:e.rowIndex,note:e.kind===m.VM.Trade&&e.row.transaction===m.rf.Watch?null:e.row.note,noteTicker:e.kind===m.VM.Trade&&e.row.transaction===m.rf.Watch?e.row.noteTicker:null,columnId:m.mJ.Transaction})]});default:return null}}},[m.mJ.Date]:{...C(m.mJ.Date),renderColumn:e=>{switch(e.kind){case m.VM.Transaction:case m.VM.Trade:case m.VM.Watchlist:return(0,f.jsx)("div",{className:a()("whitespace-nowrap",{"js-is-watch-date":"transaction"in e.row&&e.row.transaction===m.rf.Watch}),children:o.GP(new Date(e.row.date),T.Mu)});default:return null}}},[m.mJ.Shares]:{...C(m.mJ.Shares),renderColumn:e=>{if(e.kind!==m.VM.Summary&&e.row.type===m.FJ.Cash)return null;switch(e.kind){case m.VM.Summary:return null;case m.VM.Trade:return e.row.transaction===m.rf.Watch?null:(0,u.ZV)(e.row.shares,{minFractions:0,maxFractions:2});default:return(0,u.ZV)(e.row.shares,{minFractions:0,maxFractions:2})}}},[m.mJ.Price]:{...C(m.mJ.Price),getValueForSort:e=>e.kind===m.VM.Group||e.kind===m.VM.Watchlist?e.row.costAvg:e.row.price,name:e=>{switch(e){case m.VM.Group:case m.VM.Watchlist:return(0,f.jsx)("span",{children:"Avg. Cost"});default:return(0,f.jsxs)("span",{children:["Cost",(0,f.jsx)("span",{className:"hidden whitespace-pre xl:inline",children:" / Share"})]})}},renderColumn:e=>{if(e.kind!==m.VM.Summary&&e.row.type===m.FJ.Cash||e.kind===m.VM.Trade&&e.row.transaction===m.rf.Watch)return null;switch(e.kind){case m.VM.Group:return e.row.transactions.length?(0,u.ZV)(e.row.costAvg):null;case m.VM.Watchlist:return(0,u.ZV)(e.row.costAvg);case m.VM.Transaction:case m.VM.Trade:return(0,u.ZV)(e.row.price);default:return null}}},[m.mJ.ValuePaid]:{...C(m.mJ.ValuePaid),renderColumn:e=>e.kind!==m.VM.Summary&&e.row.type===m.FJ.Cash||e.kind===m.VM.Trade&&e.row.transaction===m.rf.Watch?null:e.kind!==m.VM.Group||e.row.transactions.length?(0,u.ZV)(e.row.valuePaid):null},[m.mJ.Amount]:{...C(m.mJ.Amount),getValueForSort:e=>e.row.valuePaid,renderColumn:e=>e.kind!==m.VM.Trade&&e.kind!==m.VM.Transaction?null:(0,u.ZV)(e.row.price)},[m.mJ.ValueMarket]:{...C(m.mJ.ValueMarket),renderColumn:e=>e.kind===m.VM.Trade&&e.row.transaction===m.rf.Watch?null:e.kind!==m.VM.Group||e.row.transactions.length?(0,u.ZV)(e.row.valueMarket):null},[m.mJ.GainMarketUsd]:{...C(m.mJ.GainMarketUsd),renderColumn:e=>e.kind!==m.VM.Summary&&e.row.type===m.FJ.Cash||e.kind===m.VM.Trade&&e.row.transaction===m.rf.Watch?null:e.kind!==m.VM.Group||e.row.transactions.length?(0,f.jsx)(s.kP,{value:e.row.gainMarketUsd,rightContent:null,children:(0,u.ZV)(e.row.gainMarketUsd)}):null},[m.mJ.GainMarketPct]:{...C(m.mJ.GainMarketPct),renderColumn:e=>
1e.kind!==m.VM.Summary&&e.row.type===m.FJ.Cash||e.kind===m.VM.Trade&&e.row.transaction===m.rf.Watch?null:e.kind!==m.VM.Group||e.row.transactions.length?(0,f.jsx)(s.kP,{value:e.row.gainMarketPct,rightContent:null!==e.row.gainMarketPct?(0,f.jsx)("span",{children:"%"}):null,children:(0,u.ZV)(e.row.gainMarketPct)}):null},[m.mJ.GainMarketCombined]:{...C(m.mJ.GainMarketCombined),getValueForSort:e=>e.row.gainMarketPct,renderColumn:e=>(0,f.jsxs)(s.OH,{children:[(0,f.jsx)(s.kP,{value:e.row.gainMarketUsd,children:(0,u.ZV)(e.row.gainMarketUsd)}),(0,f.jsx)(s.kP,{value:e.row.gainMarketPct,rightContent:null!==e.row.gainMarketPct?(0,f.jsx)("span",{children:"%"}):null,children:(0,u.ZV)(e.row.gainMarketPct)})]})},[m.mJ.GainTodayUsd]:{...C(m.mJ.GainTodayUsd),renderColumn:e=>e.kind!==m.VM.Summary&&e.row.type===m.FJ.Cash||e.kind===m.VM.Trade&&e.row.transaction===m.rf.Watch?null:e.kind!==m.VM.Group||e.row.transactions.length?(0,f.jsx)(s.kP,{value:e.row.gainTodayUsd,rightContent:null,children:(0,u.ZV)(e.row.gainTodayUsd)}):null},[m.mJ.GainTodayCombined]:{...C(m.mJ.GainTodayCombined),getValueForSort:e=>e.row.lastChangePct,renderColumn:e=>(0,f.jsxs)(s.OH,{children:[(0,f.jsx)(s.kP,{value:e.row.gainTodayUsd,children:(0,u.ZV)(e.row.gainTodayUsd)}),(0,f.jsx)(s.kP,{value:e.row.lastChangePct,rightContent:(0,f.jsx)("span",{children:"%"}),children:(0,u.ZV)(e.row.lastChangePct)})]})},[m.mJ.Order]:{...C(m.mJ.Order),renderColumn:e=>void 0===e.rowIndex||e.kind===m.VM.Summary?null:e.rowIndex+1+"."},[m.mJ.Note]:{...C(m.mJ.Note),renderColumn:e=>e.kind!==m.VM.Summary&&e.row.note?e.kind!==m.VM.Trade||e.row.transaction===m.rf.Watch?null:(0,f.jsx)(P,{note:e.row.note}):null}})),x}function V(){x=null}},92024(e,t,n){n.d(t,{$s:()=>g,B$:()=>l,C:()=>o,E$:()=>u,G5:()=>d,Gb:()=>f,Iu:()=>h,Mu:()=>s,PS:()=>m,Pi:()=>i,T7:()=>C,Zc:()=>p,aG:()=>y,c:()=>k,dc:()=>M,lB:()=>w,vM:()=>T,z7:()=>c});var r=n(19879),a=n(25877);const o="$CASH",i=[o],s="MM-dd-yyyy",l="yyyy-MM-dd'T'HH:mm:ss",c=2e4,u=6e4,d={[a.rf.Watch]:"Watch",[a.rf.Buy]:"Buy",[a.rf.Short]:"Short Sell",[a.rf.CashDeposit]:"Cash Deposit",[a.rf.CashWithdraw]:"Cash Withdraw",[a.rf.CashIncome]:"Income",[a.rf.CashFee]:"Fee"},m=[a.rf.Buy,a.rf.Short],h=[a.rf.CashDeposit,a.rf.CashWithdraw,a.rf.CashIncome,a.rf.CashFee],f={ticker:"",date:`${r.GP(new Date,l)}`,shares:void 0,price:void 0,transaction:a.rf.Buy,note:null},p={...f,shares:0,price:0,type:a.FJ.Stock,valuePaid:null,valueMarket:null,valueMarketPrev:null,gainMarket:null,gainMarketPct:null,gainMarketUsd:null,gainTodayUsd:null,lastChangePct:null,note:null},k="portfolio_name",g="Please enter portfolio name.",y="Portfolio with that name already exists.",w="tickers",M="Separate multiple tickers by a comma, e.g.: AAPL, MSFT, GOOG.";let T=function(e){return e.Default="default",e.Compact="compact",e}({});const C=2e3},73073(e,t,n){n.d(t,{BF:()=>u,az:()=>f,gT:()=>m,li:()=>h,oM:()=>d});var r=n(25877);const a=[r.mJ.Company,r.mJ.Shares,r.mJ.Price,r.mJ.ValuePaid,r.mJ.LastClose,r.mJ.LastChangePct,r.mJ.LastVolume,r.mJ.ValueMarket,r.mJ.GainMarketUsd,r.mJ.GainMarketPct,r.mJ.GainTodayUsd],o=[r.mJ.Company,r.mJ.LastClose,r.mJ.LastChangePct,r.mJ.LastVolume,r.mJ.Transaction,r.mJ.Date,r.mJ.Shares,r.mJ.Price,r.mJ.ValuePaid,r.mJ.ValueMarket,r.mJ.GainMarketUsd,r.mJ.GainMarketPct,r.mJ.GainTodayUsd],i=[r.mJ.LastClose,r.mJ.LastChange,r.mJ.LastChangePct],s=a,l=o,c=[r.mJ.Company,r.mJ.Shares,r.mJ.Price,r.mJ.ValuePaid,r.mJ.LastClose,r.mJ.LastChange,r.mJ.LastChangePct,r.mJ.LastVolume,r.mJ.ValueMarket,r.mJ.GainMarketUsd,r.mJ.GainMarketPct,r.mJ.GainTodayUsd,r.mJ.Date],u=[r.mJ.Ticker],d=[r.mJ.Order,r.mJ.Ticker],m=[r.mJ.Ticker];function h(e){return m.includes(e)}const f={[r.Z$.Tickers]:{tableName:`portfolio-${r.Z$.Tickers}`,availableColumns:s,defaultColumns:a},[r.Z$.Trades]:{tableName:`portfolio-${r.Z$.Trades}`,availableColumns:l,defaultColumns:o},[r.Z$.Watchlist]:{tableName:`portfolio-${r.Z$.Watchlist}`,availableColumns:c,defaultColumns:i}}},53993(e,t,n){n.d(t,{h:()=>o});var r=n(63696),a=n(64331);function o(){const[e,t]=r.useState((0,a.vT)());return{state:e,saveSetting:r.useRef((e,n)=>{(0,a.P0)(e,n),t(t=>({...t,[e]:n}))}).current}}},95(e,t,n){n.d(t,{b:()=>l});n(54999),n(14846),n(27458);var r=n(63696),a=n(25294),o=n(73073),i=n(25877),s=n(64331);function l(e){const{columns:t}=(0,a.X)(),n=t.values();return r.useMemo(()=>{const t=n.filter(e=>e.id!==i.mJ.Note),r=t.findIndex(e=>e.id===i.mJ.Company);if(t.unshift(...(0,s.DY)(e===i.VM.Trade?o.oM:o.BF)),e===i.VM.Group&&0!==r&&t.splice(1,0,...(0,s.DY)([i.mJ.Spacer])),e===i.VM.Transaction){const e=0===r?1:0;t.splice(1,e,...(0,s.DY)([i.mJ.Date,i.mJ.Transaction]))}return t},[n,e])}}
1,49575(e,t,n){n.d(t,{G:()=>l,G6:()=>h,Ik:()=>w,JU:()=>d,TH:()=>T,YU:()=>p,_i:()=>k,bG:()=>c,gf:()=>y,ng:()=>M,om:()=>u,pL:()=>f,rM:()=>g,y4:()=>m});n(15724),n(66184),n(14846),n(27458),n(6211),n(69655),n(94364),n(36241),n(85151),n(49122),n(75183),n(40520),n(32495),n(72371);var r=n(81761),a=n(5868),o=n(92024),i=n(25877),s=n(64331);const l={limit:0,selectedPortfolio:0,limitTransactions:0,transactions:0,portfolio:[],news:[],portfolios:[],tableSettings:{},note:null};function c(e){return(0,a.AT)("/api/portfolio_data",{query:{pid:e??""}})}function u(e){return(0,a.AT)("/request_portfolio_delete",{query:{pid:e},method:"DELETE"})}function d(e,t,n){return(0,a.AT)("/api/portfolio_entry",{query:e,method:t,body:JSON.stringify(n)},!0)}const m="_UNKNOWN",h="NA";function f(e){return(0,a.AT)("request_quote",{query:{t:e.filter(e=>e.length).join(",")},headers:{"Content-Type":a.cM.Html}})}async function p(e){const t=await(0,a.AT)("/portfolio_tickers",{query:{json:!0}},!0),n=t?.tickers.split("|")??[],r=Object.keys(t?.specialSymbols??[]);return e.map(e=>[...r,...n].includes(e))}async function k(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e5;const n=[],a=new Set;e.forEach(e=>{const t=(0,r.oi)(e.ticker.trim(),!1,[o.C]);(0,s.XE)(t)===i.FJ.Stock&&a.add(t),n.push(t.length?t:m)});const l=t/a.size,c=await f(n),u=c?.split(",");if(u?.length!==n.length)return window.Sentry?.captureMessage("Invalid recalculated data",{extra:{requestTickers:n,requestTickersLength:n.length,responseLength:u?.length}}),[];const d=Object.fromEntries(u.map((e,t)=>{const r=e===h?NaN:parseFloat(e);return[n[t],isNaN(r)?NaN:r]}));return e.map(e=>{const t=d[e.ticker],n=Math.round(l/t*1e4)/1e4,r=e.note??e.transactions.find(e=>e.transaction===i.rf.Watch)?.note;return{id:e.id,ticker:e.ticker,note:r,transactions:(0,s.XE)(e.ticker)!==i.FJ.Stock?[]:[{...(0,s.Hx)(e.ticker,i.rf.Watch),note:r},{...(0,s.Hx)(e.ticker,i.rf.Buy),price:isNaN(t)?0:t,shares:isNaN(n)?0:n}]}})}function g(e){return(0,a.AT)("/portfolio_submit",{method:"POST",body:e.toString(),headers:{"Content-Type":a.cM.FormUrlEncoded}})}let y=function(e){return e[e.Portfolio=0]="Portfolio",e[e.Tickers=1]="Tickers",e}({});function w(e){let{tickers:t,portfolioName:n,portfolioId:r}=e;const o=Object.assign({tickers:t},void 0!==n&&{portfolio_name:n},void 0!==r&&{pid:r});return(0,a.AT)("/api/portfolio_tickers",{method:"POST",query:o},!0)}function M(e){return(0,a.AT)("/portfolio_submit",{method:"POST",body:e.toString(),headers:{"Content-Type":a.cM.FormUrlEncoded}})}function T(e){return(0,a.AT)("/api/portfolio_settings",{method:"PUT",body:JSON.stringify(e)})}},64331(e,t,n){n.d(t,{$c:()=>Y,BE:()=>$,Be:()=>I,DY:()=>L,Hh:()=>q,Hx:()=>B,MA:()=>ee,MN:()=>D,Nw:()=>Z,P0:()=>N,P4:()=>J,PT:()=>z,Pq:()=>_,Vv:()=>E,WV:()=>x,XE:()=>X,XN:()=>y.XN,cL:()=>H,gq:()=>R,hB:()=>y.hB,jt:()=>K,lA:()=>V,nt:()=>te,pA:()=>U,rm:()=>A,vT:()=>b});n(15724),n(54999),n(14846),n(63333),n(27458),n(6211),n(49748),n(69655),n(94364),n(90458),n(75568),n(90769),n(36241),n(85151),n(49122),n(75183),n(40520),n(32495),n(72371),n(5673),n(30164),n(21279);var r=n(19879),a=n(268),o=n(51652),i=n(76399),s=n(81761),l=n(36630),c=n(38710),u=n(9979),d=n(21359),m=n(35721),h=n(5834),f=n(71451),p=n(92024),k=n(49575),g=n(25877),y=n(7437);let w=function(e){return e.Cash="cash",e.LongGainers="longGainers",e.LongLosers="longLosers",e.ShortGainers="shortGainers",e.ShortLosers="shortLosers",e}({});const M="Long",T="Short",C="Gainers",v="Losers",P="portfolio-map",x=999999999,J=999999999;function V(){return{tableView:g.Oy.Ticker,showMap:!0,showIndustries:!0,subtype:o.yI.PortfolioGainPct,tableOrder:(0,f.d)()[g.mJ.Order].urlSort,showNotes:!1}}function S(e){try{if(e)return Boolean(JSON.parse(e))}catch{return!1}}function b(){const e=V(),t=u.getValue(P,e);return{...e,...t}}function N(e,t){u.setValue(P,n=>{const r={...n,[e]:t};return"customTickersOrder"in r&&delete r.customTickersOrder,r},V())}const F={tickers:0,transactions:0,shares:0,lastChangePct:0,valuePaid:0,valueMarket:0,valueMarketStocks:0,valueMarketStocksPrev:0,gainMarketUsd:0,gainMarketPct:0,gainTodayUsd:0};function I(e){let t=0,n=0;return{...e.reduce((e,r)=>{if(t+=r.transactions.length||1,n+=r.transactions.length,r.isDelisted)return e;const a=e.valueMarket+r.valueMarket,o=e.valueMarketStocks+(r.type===g.FJ.Cash?0:r.valueMarket),i=e.valueMarketStocksPrev+(r.type===g.FJ.Cash?0:r.valueMarketPrev),s=e.valuePaid+r.valuePaid,l=i<=0?0:100*(o/i-1),c=s<=0?0:100*(o/s-1);return{...e,valueMarket:a,valueMarketStocks:o,valueMarketStocksPrev:i,lastChangePct:l,gainMarketPct:c,shares:e.shares+r.
1shares,valuePaid:e.valuePaid+r.valuePaid,gainMarketUsd:e.gainMarketUsd+r.gainMarketUsd,gainTodayUsd:e.gainTodayUsd+r.gainTodayUsd}},F),transactions:n,allTransactions:t,tickers:e.length}}function G(e){const t=[];return e.forEach(e=>{e.transactions.forEach(n=>{if(!function(e){return e.shares>0||e.type===g.FJ.Cash}(n))return;const r=t.findIndex(e=>e.ticker===n.ticker&&(n.type===g.FJ.Cash||e.transaction===n.transaction));if(r<0){const r={...e,...n,transactions:void 0};delete r.transactions,t.push(r)}else{const e=t[r],a=e.valueMarket+n.valueMarket,o=e.valuePaid+n.valuePaid;t[r]={...e,valuePaid:o,valueMarket:a,shares:e.shares+n.shares,valueMarketPrev:e.valueMarketPrev+n.valueMarketPrev,gainMarketUsd:e.gainMarketUsd+n.gainMarketUsd,gainMarketPct:100*(a/o-1),gainTodayUsd:e.gainTodayUsd+n.gainTodayUsd}}})}),Object.values(t)}function j(e,t,n){return Array.isArray(t)?t.find(t=>t.name===e&&t.data?.group===n)?.perf:t?.[e]}function E(e){let{data:t,perfData:n,size:r,subtype:a,groupByIndustry:i}=e;if(!t)return{hasData:!1};const s=G(t),l=a.startsWith("portfolio"),c=s.reduce((e,t)=>{const i=function(e,t,n){if(e===g.FJ.Cash)return w.Cash;switch(n){case g.rf.Short:return t>0?w.ShortGainers:w.ShortLosers;default:case g.rf.Buy:return t>=0?w.LongGainers:w.LongLosers}}(t.type,t.gainMarketPct/100,t.transaction);let s=Math.abs(r===g.JS.MarketValue?t.valueMarket:t.gainMarketUsd);Number.isFinite(s)||(s=0);const c=function(e,t){switch(t){case o.yI.PortfolioGainPct:return e.gainMarketPct;case o.yI.PortfolioGainUsd:return e.gainMarketUsd;case o.yI.PortfolioChangePct:return e.lastChangePct;case o.yI.PortfolioChangeUsd:return e.gainTodayUsd}}(t,a),u=l?c:j(t.ticker,n?.nodes,i),d={name:t.ticker,value:s,perf:t.type===g.FJ.Cash?null:u??c,additional:t.type===g.FJ.Cash?(0,m.ZV)(t.valueMarket):j(t.ticker,n?.additional,i),description:t.industry,data:{perfWeek:t.perfWeek,group:i}};return s>0?{...e,[i]:[...e[i],d]}:e},{[w.Cash]:[],[w.LongGainers]:[],[w.LongLosers]:[],[w.ShortGainers]:[],[w.ShortLosers]:[]});return{dataHash:(new Date).getTime().toString(),hasData:Object.values(c).some(e=>e.length>0),data:{name:"Portfolio",children:Object.keys(c).map(e=>function(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r="";if(e===w.Cash)r="Other";else{const n=[w.LongGainers,w.LongLosers].includes(e),a=[w.LongGainers,w.ShortGainers].includes(e),o=t.shortGainers.length||t.shortLosers.length?`${M}: `:"",i=t.longGainers.length||t.longLosers.length?`${T}: `:"";r=`${n?o:i}${a?C:v}`}if(n){let n=[];return n=e===w.Cash&&t[e].length?[{name:"Cash",children:t[e]}]:(0,m.Y9)((0,m.k5)(t[e],"description")),{name:r,children:n}}return{name:r,children:t[e]}}(e,c,i)).filter(e=>e.children.length)}}}function U(e,t){const n=Number.parseInt(e.get(g.$T.PortfolioId)??"");return Number.isFinite(n)&&0!==n?n:t}function D(e,t){return{portfolioId:U(e,t),params:Object.fromEntries(e.entries()),view:e.get(g.$T.View)??g.en.View,tableView:e.get(g.$T.TableView)??void 0,map:S(e.get(g.$T.Map))??b().showMap,size:e.get(g.$T.Size)??g.JS.MarketValue,subtype:e.get(g.$T.Subtype)??b().subtype,group:e.get(g.$T.Group)?.toUpperCase().split(",")??[],tickers:e.get(g.$T.Tickers)?.split(",")??[]}}function L(e){const t=(0,f.d)();return[...new Set(e)].map(e=>t[e]).filter(Boolean)}function A(e){return(0,f.d)()[e]}function W(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p.B$;return`${r.GP(new Date,e)}`}function $(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:p.B$,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];const r={};return void 0!==e.ticker&&0===e.ticker.trim().length&&(r.ticker=!0),e.transaction===g.rf.Watch||e.date&&a.f((0,c._u)({input:e.date,format:t,checkFormat:n}))||(r.date=!0),e.transaction!==g.rf.Watch&&(void 0===e.shares||isNaN(e.shares)||e.shares<0||e.shares>x)&&(r.shares=!0),e.transaction!==g.rf.Watch&&(void 0===e.price||isNaN(e.price)||e.price<=0||e.price>J)&&(r.price=!0),{isValid:0===Object.keys(r).length,errors:r}}const O=Object.keys(p.Gb);function _(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.reduce((e,n)=>{const r=(0,m.YJ)(),a=n.transactions.map(e=>({...e,uuid:e.id?`${e.id}`:(0,m.YJ)()}));return(0===n.transactions.length||t.resetCash&&X(n.ticker)===g.FJ.Cash||n.transactions.findIndex(e=>e.transaction===g.rf.Watch)<0)&&a.unshift({...B(n.ticker,g.rf.Watch),note:n.note}),{...e,[r]:{id:r,ticker:n.ticker,transactions:a}}},{})}function Z(e){return e.length>1&&e.find(e=>e.transaction===g.rf.Watch)?e.length-1:e.length}function R(e,t){const n=new URLSearchParams(e);return t.flatMap(e=>{const t=e.transactions;
1return null===e.note&&e.transactions&&0!==e.transactions?.length||t.push({...B(e.ticker,g.rf.Watch),note:e.note}),t}).forEach((e,t)=>{e.ticker.length&&function(e,t,n){O.forEach(r=>e.append(`${r}${n}`,`${t[r]??""}`))}(n,e,t)}),n}async function q(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(0===e.length)return{isValid:!0,errors:{}};let n=!0;const r={};try{const a=e.map(e=>{const t=(0,s.oi)(e.ticker.trim(),!1,[p.C]);return t.length?t:k.y4}),o=await k.YU(a);n=a.length===o.length,t&&e.forEach((e,t)=>{const a=e.transactions.map(e=>$(e,p.B$,!1)),i=a.some(e=>!e.isValid),s=!0!==o[t];(i||s)&&(n=!1);const l=a.every(e=>e.isValid);l&&!s||(r[e.id]=a.map((e,t)=>{const n=e.errors;return s&&0===t?{...n,ticker:!0}:e.isValid?void 0:n}))})}catch{return{isValid:!1,errors:{}}}return{isValid:n,errors:r}}function B(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g.rf.Buy;const n=X(e),r=K(n);return{...p.Gb,uuid:(0,m.YJ)(),ticker:e,type:X(e),date:W(p.B$),transaction:[g.rf.Watch,...r].includes(t)?t:r[0],shares:t===g.rf.Watch||n===g.FJ.Cash?0:void 0,price:t===g.rf.Watch?0:void 0}}function H(e){const t=Object.values(e.tableSettings??{}).find(e=>e?.columnDefinitions)?.columnDefinitions;t&&((0,d.pB)("portfolio",t),(0,f.c)())}
1function Y(){let e={isInitData:!1,initData:k.G};const t=document.getElementById("portfolio-init-data");if(t){const n=(0,l.Wh)("portfolio-init-data");t.remove(),n&&H(n),e={isInitData:!!n,initData:n??k.G}}return e}function z(e){return e.flatMap(e=>{const t=[...e.transactions];return e.transactions.length||t.unshift({...p.Zc,...e,...B(e.ticker,g.rf.Watch),note:e.note}),t.map(n=>{const r={...e};return delete r.transactions,{...r,...n,noteTicker:e.note,isLastTransaction:1===t.length}})}).sort((e,t)=>e.id-t.id)}function X(e){return e?.toUpperCase()===p.C?g.FJ.Cash:g.FJ.Stock}function K(e){const t=[];return e===g.FJ.Cash?[...t,...p.Iu]:[...t,...p.PS]}const Q=[g.mJ.Ticker,g.mJ.LastClose];function ee(e,t){return!Q.includes(e)||t.type===g.FJ.Cash||t.isDelisted?{}:{"data-boxover-ticker":t.ticker,"data-boxover-company":t.company,"data-boxover-industry":t.industry,"data-boxover-country":t.country,"data-boxover-value":(0,i.Q)(t)}}function te(){return(0,h.z)({base:p.z7,free:p.E$})}},21359(e,t,n){n.d(t,{YK:()=>s,pB:()=>i,rs:()=>l});n(14846),n(94364);var r=n(17984);const a=new Map,o={right:r.Gk.Right,center:r.Gk.Center};function i(e,t){const n=new Map(t.map(e=>[e.id,e]));a.set(e,n)}function s(e,t){return a.get(t)?.get(e)}function l(e){return e?.align?o[e.align]:void 0}},5834(e,t,n){n.d(t,{z:()=>i});var r=n(87641),a=n(88601),o=function(e){return e[e.Free=3e4]="Free",e[e.Elite=3e3]="Elite",e[e.Reduced=6e4]="Reduced",e}(o||{});function i(){let{base:e=o.Elite,reduced:t=o.Reduced,free:n=o.Free,isPremium:i=(0,a.mt)().hasUserPremium}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=e;return i||(s=n),(0,r.Dj)()||(s=t),s}}}]); 2//# sourceMappingURL=4331.v1.0cee160e.js.map
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.