{"version":3,"file":"components/Charts/common.mjs","sources":["../../../src/components/Charts/common.tsx"],"sourcesContent":["import { SDK } from '@rsdoctor/types';\nimport { Alert, Typography } from 'antd';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useTheme } from '../../utils';\nimport { TimelineCom } from './TimelineCharts';\n\nimport './loader.scss';\nimport './tooltips.scss';\nimport { DurationMetric, ITraceEventData, Metric } from './types';\nimport { formatterForPlugins, processTrans } from './utils';\nimport { ChartTypes } from './constants';\n\nexport interface CommonChartProps {\n  summary: SDK.SummaryData;\n}\n\nexport const CommonExecutionsChart: React.FC<{\n  plugins: SDK.ServerAPI.InferResponseType<SDK.ServerAPI.API.GetPluginData>;\n  defaultDatas?: Metric[];\n  type?: ChartTypes;\n}> = ({ plugins, defaultDatas = [], type }) => {\n  const { isDark } = useTheme();\n  const ref = useRef(null);\n  const [data, setData] = useState([] as ITraceEventData[]);\n\n  useEffect(() => {\n    const arr: Metric[] = [];\n\n    plugins.forEach((item) => {\n      item.data.forEach((el) => {\n        arr.push({\n          p: item.hook,\n          n: `${item.tapName}`,\n          s: el.startAt,\n          e: el.endAt,\n        });\n      });\n    });\n\n    setData([\n      ...processTrans(defaultDatas as DurationMetric[]),\n      ...processTrans(arr as DurationMetric[]),\n    ]);\n  }, []);\n\n  return (\n    <div\n      className={[\n        'loader-chart-container',\n        isDark ? 'loader-chart-container_dark' : '',\n      ]\n        .join(' ')\n        .trim()}\n      ref={ref}\n      style={{ width: '100%' }}\n    >\n      <TimelineCom\n        pluginsData={data}\n        formatterFn={formatterForPlugins}\n        chartType={type}\n      />\n    </div>\n  );\n};\n\nexport const CommonExecutionEmptyTips: React.FC = () => {\n  return (\n    <Alert\n      message={\n        <Typography.Text>\n          <Typography.Text>make sure that you have turn on </Typography.Text>\n          {/* <Typography.Text code> TODO::\n            <a\n              href={`http://${host}/api/webpack-plugin.html#features`}\n              target=\"_blank\"\n              rel=\"noreferrer\"\n            >\n              features.plugins\n            </a>\n          </Typography.Text> */}\n          <Typography.Text>\n            {' '}\n            in configuration for the Rsdoctor plugin.\n          </Typography.Text>\n        </Typography.Text>\n      }\n      type=\"info\"\n      showIcon\n    />\n  );\n};\n"],"names":["CommonExecutionsChart","plugins","defaultDatas","type","isDark","useTheme","ref","useRef","data","setData","useState","useEffect","arr","item","el","processTrans","TimelineCom","formatterForPlugins","CommonExecutionEmptyTips","Alert","Typography"],"mappings":";;;;;;;;AAgBO,MAAMA,wBAIR,CAAC,EAAEC,OAAO,EAAEC,eAAe,EAAE,EAAEC,IAAI,EAAE;IACxC,MAAM,EAAEC,MAAM,EAAE,GAAGC;IACnB,MAAMC,MAAMC,OAAO;IACnB,MAAM,CAACC,MAAMC,QAAQ,GAAGC,SAAS,EAAE;IAEnCC,UAAU;QACR,MAAMC,MAAgB,EAAE;QAExBX,QAAQ,OAAO,CAAC,CAACY;YACfA,KAAK,IAAI,CAAC,OAAO,CAAC,CAACC;gBACjBF,IAAI,IAAI,CAAC;oBACP,GAAGC,KAAK,IAAI;oBACZ,GAAG,GAAGA,KAAK,OAAO,EAAE;oBACpB,GAAGC,GAAG,OAAO;oBACb,GAAGA,GAAG,KAAK;gBACb;YACF;QACF;QAEAL,QAAQ;eACHM,aAAab;eACba,aAAaH;SACjB;IACH,GAAG,EAAE;IAEL,OAAO,WAAP,GACE,IAAC;QACC,WAAW;YACT;YACAR,SAAS,gCAAgC;SAC1C,CACE,IAAI,CAAC,KACL,IAAI;QACP,KAAKE;QACL,OAAO;YAAE,OAAO;QAAO;kBAEvB,kBAACU,aAAWA;YACV,aAAaR;YACb,aAAaS;YACb,WAAWd;;;AAInB;AAEO,MAAMe,2BAAqC,IACzC,WAAP,GACE,IAACC,OAAKA;QACJ,uBACE,KAACC,WAAW,IAAI;;8BACd,IAACA,WAAW,IAAI;8BAAC;;8BAUjB,KAACA,WAAW,IAAI;;wBACb;wBAAI;;;;;QAKX,MAAK;QACL,UAAQ"}