{"version":3,"file":"insider-index.2485e4f3.js","mappings":"uqCAUO,SAASA,EAAOC,GAAgE,IAA/D,YAAEC,EAAW,cAAEC,EAAa,aAAEC,KAAiBC,GAAcJ,EACnF,OACEK,EAAAA,EAAAA,KAAA,UAASD,EAAOE,UAAWC,IAAW,2DAA4DH,EAAME,WAAWE,UACjHC,EAAAA,EAAAA,MAAA,OAAKH,UAAU,4EAA2EE,SAAA,EACxFH,EAAAA,EAAAA,KAAA,OACEC,UAAWC,IAAW,4BAA6B,CACjD,kBAAkBG,EAAAA,EAAAA,QACjBF,SAEFP,IAEFC,IAAiBG,EAAAA,EAAAA,KAAA,OAAKC,UAAU,oBAAmBE,SAAEN,KACtDG,EAAAA,EAAAA,KAAA,OAAKC,UAAU,oBAAmBE,SAAEL,QAI5C,C,uECjBO,SAASQ,EAAWX,GAAoC,IAAnC,MAAEY,EAAK,KAAEC,EAAO,UAAiBb,EAC3D,OACEK,EAAAA,EAAAA,KAAA,OAAKC,UAAU,kCAAiCE,SAC7CI,EAAME,KAAIC,IAAA,IAAC,MAAEC,EAAK,KAAEC,EAAI,SAAEC,EAAQ,eAAEC,GAAgBJ,EAAA,OACnDV,EAAAA,EAAAA,KAACe,EAAAA,GAAM,CAELC,GAAIC,EAAAA,GACJC,GAAIN,EACJE,eAAgBA,EAChBK,MAAM,MACNC,SAAS,OACTC,OAAQR,EACRL,KAAMA,EAAKL,SAEVQ,GATIC,EAUE,KAIjB,C,4FCtBA,MAAMU,EAAqD,CAACC,EAAAA,GAAYC,MAAOD,EAAAA,GAAYE,SAAUF,EAAAA,GAAYG,OAC3GC,EAAgB,CACpB,CAACJ,EAAAA,GAAYE,UAAWF,EAAAA,GAAYE,SACpC,CAACF,EAAAA,GAAYK,gBAAiBL,EAAAA,GAAYE,SAC1C,CAACF,EAAAA,GAAYM,iBAAkBN,EAAAA,GAAYE,SAC3C,CAACF,EAAAA,GAAYG,OAAQH,EAAAA,GAAYG,MACjC,CAACH,EAAAA,GAAYO,aAAcP,EAAAA,GAAYG,MACvC,CAACH,EAAAA,GAAYQ,cAAeR,EAAAA,GAAYG,OAGnC,SAASM,IACd,MAAMC,GAAuBC,EAAAA,EAAAA,KACvBC,EAAYC,EAAAA,SAAc,KAC9B,MAAMC,EACHJ,EAAqBK,WAAWC,MAAmDhB,EAAAA,GAAYC,MAElG,OAAOF,EAAUb,KAAK8B,IAAI,CACxB5B,MAAO6B,EAAAA,GAAoBD,GAC3B3B,KAAMqB,EAAqBQ,sBAAsB,CAAEF,SACnD1B,SAAUwB,IAAed,EAAAA,GAAYC,MAAQe,IAAShB,EAAAA,GAAYC,MAAQG,EAAcU,KAAgBE,EACxGzB,gBAAgB,KACf,GACF,CAACmB,IACJ,OAAOjC,EAAAA,EAAAA,KAACM,EAAAA,EAAW,CAACE,KAAK,SAASD,MAAO4B,GAC3C,C,oGChBA,SAASO,EAGPC,EAAoBJ,GACpB,OAAOK,OAAOC,KAAKF,GAAQG,QACzB,CAACC,EAAKC,KAAG,IAAAC,EAAA,OACmB,QAA1BA,EAAAC,EAAAA,GAAqBX,UAAK,IAAAU,GAA1BA,EAA4BE,SAASH,GACjC,IAAKD,EAAK,CAACC,GAAML,EAAOK,IACxBD,CAAG,GACT,CAAC,EAEL,CAEO,SAASb,IACd,MAAOS,IAAUS,EAAAA,EAAAA,MAEjB,OAAOhB,EAAAA,SAAc,KAAM,IAAAiB,EAAAC,EAAAC,EAAA5D,EAAAe,EAAA8C,EAAAC,EACzB,MAAMlB,EAAQI,EAAOe,IAAIC,EAAAA,GAAiBC,OAASrC,EAAAA,GAAYC,MAEzDqC,EAAsC,CAC1C,CAACF,EAAAA,GAAiBC,MAAOrB,EACzB,CAACoB,EAAAA,GAAiBG,MAAOC,OAAOpB,EAAOe,IAAIC,EAAAA,GAAiBG,OAAS,KACrE,CAACH,EAAAA,GAAiBK,QAA4C,QAAtCX,EAAGV,EAAOe,IAAIC,EAAAA,GAAiBK,eAAO,IAAAX,EAAAA,OAAIY,EAClE,CAACN,EAAAA,GAAiBO,YAAoD,QAA1CZ,EAAGX,EAAOe,IAAIC,EAAAA,GAAiBO,mBAAW,IAAAZ,EAAAA,EAAI,GAC1E,CAACK,EAAAA,GAAiBQ,eAA0D,QAA7CZ,EAAGZ,EAAOe,IAAIC,EAAAA,GAAiBQ,sBAAc,IAAAZ,EAAAA,OAAIU,EAChF,CAACN,EAAAA,GAAiBS,iBAC6B,QADdzE,EAC9BgD,EAAOe,IAAIC,EAAAA,GAAiBS,wBAAgB,IAAAzE,EAAAA,OAA+BsE,EAC9E,CAACN,EAAAA,GAAiBU,YAAqD,QAA3C3D,EAAIiC,EAAOe,IAAIC,EAAAA,GAAiBU,mBAAW,IAAA3D,EAAAA,OAA0BuD,EACjG,CAACN,EAAAA,GAAiBW,eAA0D,QAA7Cd,EAAGb,EAAOe,IAAIC,EAAAA,GAAiBW,sBAAc,IAAAd,EAAAA,OAAIS,EAChF,CAACN,EAAAA,GAAiBY,MAAwC,QAApCd,EAAGd,EAAOe,IAAIC,EAAAA,GAAiBY,aAAK,IAAAd,EAAAA,OAAIQ,EAC9D,CAACN,EAAAA,GAAiBa,cAAe7B,EAAOe,IAAIC,EAAAA,GAAiBa,eAG/D,MAAO,CACL7B,SACAL,WAAYI,EAA6BmB,EAActB,GACvDE,sBAAuBgC,IAAA,IAA2B,KAChDlC,EAAI,OACJI,EAAS,CAAC,EAAC,sBACX+B,GAKDD,EAAA,MACC,yBAAwBE,EAAAA,EAAAA,GAAkB,IACrCjC,EAA6B,IAAKC,EAAQJ,QAAQA,MAClDmC,KACD,EACP,GACA,CAAC/B,GACN,C,oFC9De,SAASnB,IACtB,OAAOxB,EAAAA,EAAAA,KAACN,EAAAA,EAAO,CAACE,aAAaI,EAAAA,EAAAA,KAACgC,EAAAA,EAAU,KAC1C,C","sources":["webpack://@finviz/website/./js/main/components/SubMenu/SubMenu.tsx","webpack://@finviz/website/./js/main/components/SubMenu/SubMenuTabs.tsx","webpack://@finviz/website/./js/main/modules/insider-trading/components/Navigation.tsx","webpack://@finviz/website/./js/main/modules/insider-trading/hooks/useInsiderTradingRouter.ts","webpack://@finviz/website/./js/main/modules/insider-trading/routes/Index.tsx"],"sourcesContent":["import classNames from 'classnames'\r\nimport { isRedesignEnabled } from 'finviz-charts/app/utils'\r\nimport * as React from 'react'\r\n\r\ninterface Props extends React.HTMLProps {\r\n leftContent?: React.ReactNode\r\n middleContent?: React.ReactNode\r\n rightContent?: React.ReactNode\r\n}\r\n\r\nexport function SubMenu({ leftContent, middleContent, rightContent, ...props }: Props) {\r\n return (\r\n
\r\n
\r\n \r\n {leftContent}\r\n
\r\n {middleContent &&
{middleContent}
}\r\n
{rightContent}
\r\n
\r\n \r\n )\r\n}\r\n","import { Link } from 'react-router-dom'\r\n\r\nimport { Button, ButtonSizeType } from '../button'\r\n\r\ninterface Props {\r\n items: Array<{ label: string; href: string; isActive: boolean; reloadDocument?: boolean }>\r\n size?: ButtonSizeType\r\n}\r\n\r\nexport function SubMenuTabs({ items, size = 'medium' }: Props) {\r\n return (\r\n
\r\n {items.map(({ label, href, isActive, reloadDocument }) => (\r\n \r\n {label}\r\n \r\n ))}\r\n
\r\n )\r\n}\r\n","import * as React from 'react'\r\n\r\nimport { SubMenuTabs } from '../../../components/SubMenu/SubMenuTabs'\r\nimport { INSIDER_VIEW_LABELS, InsiderView } from '../constants'\r\nimport { useInsiderTradingRouter } from '../hooks/useInsiderTradingRouter'\r\n\r\nconst MENU_TABS: Array = [InsiderView.Index, InsiderView.Managers, InsiderView.Funds]\r\nconst MENU_TABS_MAP = {\r\n [InsiderView.Managers]: InsiderView.Managers,\r\n [InsiderView.ManagerDetails]: InsiderView.Managers,\r\n [InsiderView.ManagerHoldings]: InsiderView.Managers,\r\n [InsiderView.Funds]: InsiderView.Funds,\r\n [InsiderView.FundDetails]: InsiderView.Funds,\r\n [InsiderView.FundHoldings]: InsiderView.Funds,\r\n}\r\n\r\nexport function Navigation() {\r\n const insiderTradingRouter = useInsiderTradingRouter()\r\n const menuItems = React.useMemo(() => {\r\n const activeView =\r\n (insiderTradingRouter.viewParams.view as keyof typeof MENU_TABS_MAP | undefined) || InsiderView.Index\r\n\r\n return MENU_TABS.map((view) => ({\r\n label: INSIDER_VIEW_LABELS[view],\r\n href: insiderTradingRouter.getInsiderTradingLink({ view }),\r\n isActive: activeView === InsiderView.Index ? view === InsiderView.Index : MENU_TABS_MAP[activeView] === view,\r\n reloadDocument: true,\r\n }))\r\n }, [insiderTradingRouter])\r\n return \r\n}\r\n","import * as React from 'react'\r\nimport { useSearchParams } from 'react-router-dom'\r\n\r\nimport { ObjectHash, encodeQueryString } from '../../../../app/queryString'\r\nimport {\r\n HoldingOptionType,\r\n HoldingTransactionType,\r\n InsiderView,\r\n InsiderViewHasParams,\r\n InsiderViewParam,\r\n InsiderViewsParams,\r\n InvestorType,\r\n} from '../constants'\r\n\r\nfunction getInsiderViewSpecificParams<\r\n T extends InsiderView,\r\n ParamsType extends Partial = Partial,\r\n>(params: ParamsType, view: T) {\r\n return Object.keys(params).reduce(\r\n (acc, key) =>\r\n InsiderViewHasParams[view]?.includes(key as InsiderViewParam)\r\n ? { ...acc, [key]: params[key as keyof ParamsType] }\r\n : acc,\r\n {} as ParamsType\r\n )\r\n}\r\n\r\nexport function useInsiderTradingRouter() {\r\n const [params] = useSearchParams()\r\n\r\n return React.useMemo(() => {\r\n const view = (params.get(InsiderViewParam.View) || InsiderView.Index) as T\r\n\r\n const parsedParams: InsiderViewsParams[T] = {\r\n [InsiderViewParam.View]: view,\r\n [InsiderViewParam.Page]: Number(params.get(InsiderViewParam.Page) || '1'),\r\n [InsiderViewParam.Search]: params.get(InsiderViewParam.Search) ?? undefined,\r\n [InsiderViewParam.InvestorId]: params.get(InsiderViewParam.InvestorId) ?? '',\r\n [InsiderViewParam.ReportEndDate]: params.get(InsiderViewParam.ReportEndDate) ?? undefined,\r\n [InsiderViewParam.TransactionType]:\r\n (params.get(InsiderViewParam.TransactionType) as HoldingTransactionType) ?? undefined,\r\n [InsiderViewParam.OptionType]: (params.get(InsiderViewParam.OptionType) as HoldingOptionType) ?? undefined,\r\n [InsiderViewParam.AssetCategory]: params.get(InsiderViewParam.AssetCategory) ?? undefined,\r\n [InsiderViewParam.Sort]: params.get(InsiderViewParam.Sort) ?? undefined,\r\n [InsiderViewParam.InvestorType]: params.get(InsiderViewParam.InvestorType) as InvestorType,\r\n }\r\n\r\n return {\r\n params,\r\n viewParams: getInsiderViewSpecificParams(parsedParams, view),\r\n getInsiderTradingLink: ({\r\n view,\r\n params = {},\r\n additionalQueryParams,\r\n }: {\r\n view: View\r\n params?: Partial\r\n additionalQueryParams?: ObjectHash\r\n }) =>\r\n `/insidertrading.ashx?${encodeQueryString({\r\n ...getInsiderViewSpecificParams({ ...params, view }, view),\r\n ...additionalQueryParams,\r\n })}`,\r\n }\r\n }, [params])\r\n}\r\n","import { SubMenu } from '../../../components/SubMenu/SubMenu'\r\nimport { Navigation } from '../components/Navigation'\r\n\r\nexport default function Index() {\r\n return } />\r\n}\r\n"],"names":["SubMenu","_ref","leftContent","middleContent","rightContent","props","_jsx","className","classNames","children","_jsxs","isRedesignEnabled","SubMenuTabs","items","size","map","_ref2","label","href","isActive","reloadDocument","Button","as","Link","to","theme","rounding","active","MENU_TABS","InsiderView","Index","Managers","Funds","MENU_TABS_MAP","ManagerDetails","ManagerHoldings","FundDetails","FundHoldings","Navigation","insiderTradingRouter","useInsiderTradingRouter","menuItems","React","activeView","viewParams","view","INSIDER_VIEW_LABELS","getInsiderTradingLink","getInsiderViewSpecificParams","params","Object","keys","reduce","acc","key","_InsiderViewHasParams","InsiderViewHasParams","includes","useSearchParams","_params$get","_params$get2","_params$get3","_params$get4","_params$get5","get","InsiderViewParam","View","parsedParams","Page","Number","Search","undefined","InvestorId","ReportEndDate","TransactionType","OptionType","AssetCategory","Sort","InvestorType","_ref3","additionalQueryParams","encodeQueryString"],"sourceRoot":""}