{"version":3,"file":"insider-managers.08817b24.js","mappings":"q0CAmFA,SAAeA,EAAAA,EAAAA,KAnEf,WAAoB,IAAAC,EAAAC,EAAAC,EAClB,MAAMC,GAAcC,EAAAA,EAAAA,MACdC,GAAuBC,EAAAA,EAAAA,MACrBC,KAAMC,EAAW,OAAEC,EAAM,KAAEC,GAASL,EAAqBM,WAC3DC,ECLD,SAA4BC,GAAgE,IAA/D,KAAEN,EAAI,OAAEE,EAAM,KAAEC,EAAI,YAAEP,EAAW,kBAAEW,GAA0BD,EAkB/F,OAjB0BE,EAAAA,EAAAA,GAAS,CACjCC,SAAU,CAAC,eAAgBT,EAAME,EAAQC,GACzCO,QAASC,UACPC,EAAAA,EAAAA,IACE,uBAAsBC,EAAAA,EAAAA,GAAkB,CAAEb,OAAME,SAAQC,YAE5DP,YAAaA,QAAAA,OAAekB,EAC5BC,UAAWA,KACLR,GACFS,OAAOC,SAAS,CAAEC,IAAK,GACzB,EAEFC,kBAAkB,EAClBC,UAAWC,EAAAA,GACXC,UAAWD,EAAAA,IAIf,CDd2BE,CAAoB,CAC3CvB,KAAMC,EACNL,cACAM,SACAC,OACAI,mBAAmB,KAGf,WAAEiB,EAAa,GAA2B,QAAxB/B,EAAGY,EAAiBoB,YAAI,IAAAhC,EAAAA,EAAI,CAAC,EAC/CiC,EAAiBC,EAAAA,SACrB,KAAMC,EAAAA,EAAAA,IAAkB,CAAEC,MAAOL,EAAYvB,cAAa6B,oBAAqB,KAC/E,CAACN,EAAYvB,IAET8B,EAAoC,QAA/BrC,EAAwB,QAAxBC,EAAGU,EAAiBoB,YAAI,IAAA9B,OAAA,EAArBA,EAAuBoC,aAAK,IAAArC,EAAAA,EAAI,GAE9C,OACEsC,EAAAA,EAAAA,KAACC,EAAAA,EAAM,CACLC,eAAeF,EAAAA,EAAAA,KAACG,EAAAA,EAAsB,CAACC,SAAS,aAChDC,cAAcL,EAAAA,EAAAA,KAACM,EAAAA,EAAuB,CAACC,KAAMC,EAAAA,GAAYC,SAAUtC,KAAMA,IAASuC,SAEhE,IAAjBX,EAAMY,QACLX,EAAAA,EAAAA,KAACY,EAAAA,EAAa,CAAAF,SAAC,kEAEfG,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAJ,SAAA,EACEV,EAAAA,EAAAA,KAAA,OAAKe,UAAU,wCAAuCL,SACnDX,EAAMiB,KAAKC,IACVjB,EAAAA,EAAAA,KAACkB,EAAAA,GAAQ,CAEPC,MAAOF,EAAYE,MACnBC,gBAAiBH,EAAYG,gBAC7BC,qBAAsBnD,QAAAA,OAAUY,EAChCwC,KAAMxD,EAAqByD,sBAAsB,CAC/ChB,KAAMC,EAAAA,GAAYgB,eAClBC,OAAQ,CAAEC,WAAYT,EAAYE,MAAMO,cAE1CC,eAAe3B,EAAAA,EAAAA,KAAC4B,EAAAA,GAAsB,CAACC,eAAgBZ,EAAYY,kBAR9DZ,EAAYE,MAAMO,iBAa7B1B,EAAAA,EAAAA,KAAA,OAAKe,UAAU,0DAAyDL,UACtEV,EAAAA,EAAAA,KAAC8B,EAAAA,EAAU,CACTC,UAAW9D,EAAc,EACzB+D,aAAc/D,EAAcuB,EAC5ByC,YAAcjE,GAASA,GAAQwB,EAC/B0C,aAAcxC,EACdzB,YAAaA,EACbkE,UAAW9D,EAAiB+D,WAC5BC,uBAAyBrE,IAAI,CAC3BsE,GAAIC,EAAAA,GACJC,GAAI1E,EAAqByD,sBAAsB,CAC7ChB,KAAMC,EAAAA,GAAYC,SAClBgB,OAAQ,IAAK3D,EAAqBM,WAAYJ,oBAShE,G","sources":["webpack://@finviz/website/./js/main/modules/insider-trading/routes/Managers.tsx","webpack://@finviz/website/./js/main/modules/insider-trading/hooks/useManagersListData.ts"],"sourcesContent":["import * as React from 'react'\r\nimport { Link, useLoaderData } from 'react-router-dom'\r\n\r\nimport { withQueryClientContext } from '../../../../app/shared/components/QueryClientContext'\r\nimport { Pagination } from '../../../components/pagination'\r\nimport { getStepPagination } from '../../../hooks/use-table-pagination'\r\nimport type { ApiPaginatedResponse } from '../../../types'\r\nimport { CenteredAlert } from '../components/CenteredAlert'\r\nimport Layout from '../components/Layout'\r\nimport { ListCard, ManagerHoldingsSection } from '../components/ListCard'\r\nimport { ManagersAndFundsSearch } from '../components/ManagersAndFundsSearch'\r\nimport { ManagersFundsSortSelect } from '../components/ManagersFundsSortSelect'\r\nimport { InsiderView, ManagerFundItemData } from '../constants'\r\nimport { useInsiderTradingRouter } from '../hooks/useInsiderTradingRouter'\r\nimport { useManagersListData } from '../hooks/useManagersListData'\r\n\r\nfunction Managers() {\r\n const initialData = useLoaderData() as ApiPaginatedResponse | null\r\n const insiderTradingRouter = useInsiderTradingRouter()\r\n const { page: currentPage, search, sort } = insiderTradingRouter.viewParams\r\n const managersListData = useManagersListData({\r\n page: currentPage,\r\n initialData,\r\n search,\r\n sort,\r\n shouldResetScroll: true,\r\n })\r\n\r\n const { totalPages = 0 } = managersListData.data ?? {}\r\n const stepNavigation = React.useMemo(\r\n () => getStepPagination({ pages: totalPages, currentPage, maxSidePreviewPages: 3 }),\r\n [totalPages, currentPage]\r\n )\r\n const items = managersListData.data?.items ?? []\r\n\r\n return (\r\n }\r\n rightContent={}\r\n >\r\n {items.length === 0 ? (\r\n No managers match your search. Try using different keywords.\r\n ) : (\r\n <>\r\n
\r\n {items.map((managerItem) => (\r\n }\r\n />\r\n ))}\r\n
\r\n\r\n
\r\n 1}\r\n canGoForward={currentPage < totalPages}\r\n canGoToPage={(page) => page <= totalPages}\r\n visiblePages={stepNavigation}\r\n currentPage={currentPage}\r\n isLoading={managersListData.isFetching}\r\n getPageItemButtonProps={(page) => ({\r\n as: Link,\r\n to: insiderTradingRouter.getInsiderTradingLink({\r\n view: InsiderView.Managers,\r\n params: { ...insiderTradingRouter.viewParams, page },\r\n }),\r\n })}\r\n />\r\n
\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default withQueryClientContext(Managers)\r\n","import { useQuery } from '@tanstack/react-query'\r\n\r\nimport { encodeQueryString } from '../../../../app/queryString'\r\nimport { apiRequest } from '../../../services/api'\r\nimport { ApiPaginatedResponse } from '../../../types'\r\nimport { DEFAULT_QUERY_CACHE_TIME_IN_MS, ManagerFundItemData } from '../constants'\r\n\r\ninterface Props {\r\n page: number\r\n search?: string\r\n sort?: string\r\n initialData?: ApiPaginatedResponse | null\r\n shouldResetScroll?: boolean\r\n}\r\n\r\nexport function useManagersListData({ page, search, sort, initialData, shouldResetScroll }: Props) {\r\n const managersListQuery = useQuery({\r\n queryKey: ['managersList', page, search, sort],\r\n queryFn: async () =>\r\n apiRequest>(\r\n `/api/managers/list?${encodeQueryString({ page, search, sort })}`\r\n ),\r\n initialData: initialData ?? undefined,\r\n onSuccess: () => {\r\n if (shouldResetScroll) {\r\n window.scrollTo({ top: 0 })\r\n }\r\n },\r\n keepPreviousData: true,\r\n staleTime: DEFAULT_QUERY_CACHE_TIME_IN_MS,\r\n cacheTime: DEFAULT_QUERY_CACHE_TIME_IN_MS,\r\n })\r\n\r\n return managersListQuery\r\n}\r\n"],"names":["withQueryClientContext","_managersListData$dat","_managersListData$dat2","_managersListData$dat3","initialData","useLoaderData","insiderTradingRouter","useInsiderTradingRouter","page","currentPage","search","sort","viewParams","managersListData","_ref","shouldResetScroll","useQuery","queryKey","queryFn","async","apiRequest","encodeQueryString","undefined","onSuccess","window","scrollTo","top","keepPreviousData","staleTime","DEFAULT_QUERY_CACHE_TIME_IN_MS","cacheTime","useManagersListData","totalPages","data","stepNavigation","React","getStepPagination","pages","maxSidePreviewPages","items","_jsx","Layout","middleContent","ManagersAndFundsSearch","searchIn","rightContent","ManagersFundsSortSelect","view","InsiderView","Managers","children","length","CenteredAlert","_jsxs","_Fragment","className","map","managerItem","ListCard","filer","latestSummaries","highlightHeaderLabel","href","getInsiderTradingLink","ManagerDetails","params","investorId","bottomSection","ManagerHoldingsSection","topInvestments","Pagination","canGoBack","canGoForward","canGoToPage","visiblePages","isLoading","isFetching","getPageItemButtonProps","as","Link","to"],"sourceRoot":""}