{"version":3,"file":"components/Charts/index.mjs","sources":["../../../src/components/Charts/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { SDK } from '@rsdoctor/types';\nimport { ISelectLoaderProps, LoaderCommonSelect } from '../Select';\nimport { ServerAPIProvider, withServerAPI } from '../Manifest';\nimport { LoaderExecutionsChart } from './loader';\nimport { filterLoader } from 'src/utils/loader';\nimport { Space } from 'antd';\nimport { useTheme } from 'src/utils';\n\nenum ChartDimension {\n  Loader,\n  Process,\n}\n\nexport const LoaderChartBase: React.FC<{\n  project: SDK.ServerAPI.InferResponseType<SDK.ServerAPI.API.GetProjectInfo>;\n}> = ({ project }) => {\n  const { root: cwd } = project;\n  const [store, setStore] = useState({\n    filename: '',\n    loaders: [] as string[],\n    layer: '',\n  } as ISelectLoaderProps);\n  // @ts-ignore\n  const [dimension] = useState<ChartDimension>(ChartDimension.Loader);\n\n  const { theme } = useTheme();\n  return (\n    <Space direction=\"vertical\" style={{ width: '100%' }}>\n      <ServerAPIProvider api={SDK.ServerAPI.API.GetLoaderNames}>\n        {(loaderNames) => (\n          <LoaderCommonSelect onChange={setStore} loaderNames={loaderNames} />\n        )}\n      </ServerAPIProvider>\n      <ServerAPIProvider api={SDK.ServerAPI.API.GetLoaderChartData}>\n        {(res) => {\n          const loaders = res.filter((el) =>\n            filterLoader(\n              el.resource,\n              el.loader,\n              store.filename,\n              store.loaders,\n              el.layer,\n              store?.layer,\n            ),\n          );\n          return dimension === ChartDimension.Loader ? (\n            <LoaderExecutionsChart\n              // changing the theme breaks the chart. force rerender on every theme change.\n              key={theme}\n              loaders={loaders}\n              cwd={cwd}\n            />\n          ) : (\n            // <ProcessExecutionsChart loaders={loaders} cwd={cwd} pid={pid} />\n            <></>\n          );\n        }}\n      </ServerAPIProvider>\n    </Space>\n  );\n};\n\nexport const LoaderChart = withServerAPI({\n  api: SDK.ServerAPI.API.GetProjectInfo,\n  responsePropName: 'project',\n  Component: LoaderChartBase,\n});\n"],"names":["LoaderChartBase","project","cwd","store","setStore","useState","dimension","theme","useTheme","Space","ServerAPIProvider","SDK","loaderNames","LoaderCommonSelect","res","loaders","el","filterLoader","LoaderExecutionsChart","LoaderChart","withServerAPI"],"mappings":";;;;;;;;;AAcO,MAAMA,kBAER,CAAC,EAAEC,OAAO,EAAE;IACf,MAAM,EAAE,MAAMC,GAAG,EAAE,GAAGD;IACtB,MAAM,CAACE,OAAOC,SAAS,GAAGC,SAAS;QACjC,UAAU;QACV,SAAS,EAAE;QACX,OAAO;IACT;IAEA,MAAM,CAACC,UAAU,GAAGD,SAAQA;IAE5B,MAAM,EAAEE,KAAK,EAAE,GAAGC;IAClB,OAAO,WAAP,GACE,KAACC,OAAKA;QAAC,WAAU;QAAW,OAAO;YAAE,OAAO;QAAO;;0BACjD,IAACC,mBAAiBA;gBAAC,KAAKC,IAAI,SAAS,CAAC,GAAG,CAAC,cAAc;0BACrD,CAACC,cAAAA,WAAAA,GACA,IAACC,oBAAkBA;wBAAC,UAAUT;wBAAU,aAAaQ;;;0BAGzD,IAACF,mBAAiBA;gBAAC,KAAKC,IAAI,SAAS,CAAC,GAAG,CAAC,kBAAkB;0BACzD,CAACG;oBACA,MAAMC,UAAUD,IAAI,MAAM,CAAC,CAACE,KAC1BC,aACED,GAAG,QAAQ,EACXA,GAAG,MAAM,EACTb,MAAM,QAAQ,EACdA,MAAM,OAAO,EACba,GAAG,KAAK,EACRb,OAAO;oBAGX,OAAOG,AAAc,MAAdA,YAAAA,WAAAA,GACL,IAACY,uBAAqBA;wBAGpB,SAASH;wBACT,KAAKb;uBAFAK,S,cAMP;gBAEJ;;;;AAIR;AAEO,MAAMY,cAAcC,cAAc;IACvC,KAAKT,IAAI,SAAS,CAAC,GAAG,CAAC,cAAc;IACrC,kBAAkB;IAClB,WAAWX;AACb"}