{"version":3,"file":"components/Layout/builder-select.mjs","sources":["../../../src/components/Layout/builder-select.tsx"],"sourcesContent":["import { Select, Divider, Typography, Space } from 'antd';\nimport React, { useState, useEffect } from 'react';\nimport { Manifest } from '@rsdoctor/types';\nimport TotalSizeSvg from '../../common/svg/total-size.svg';\nimport {\n  fetchManifest,\n  changeOrigin,\n  getSafeReportUrl,\n  getSharingUrl,\n} from '../../utils';\nimport Icon from '@ant-design/icons';\n\nexport const BuilderSelect: React.FC = () => {\n  const [buildName, setBuildName] = useState('');\n  const [series, setSeries] = useState<Manifest.RsdoctorManifestSeriesData[]>(\n    [],\n  );\n\n  useEffect(() => {\n    fetchManifest().then(({ name, series }) => {\n      if (name) {\n        setBuildName(name);\n      }\n\n      if (series && series.length > 0) {\n        setSeries(series);\n      }\n    });\n  }, []);\n\n  if (buildName.length <= 0 || series.length <= 0) {\n    return <></>;\n  }\n\n  return (\n    <>\n      <Divider type=\"vertical\" style={{ margin: '0 24px' }} />\n      <Space>\n        <Icon style={{ fontSize: '18px' }} component={TotalSizeSvg} />\n        <Typography>Compiler</Typography>\n        <Select\n          className=\"builder-selector\"\n          defaultValue={buildName}\n          bordered={false}\n          style={{ minWidth: 100 }}\n          onChange={(val) => {\n            const item = series.find((item) => item.name === val);\n\n            if (item) {\n              if (item.origin) {\n                const href = changeOrigin(item.origin);\n                if (href) {\n                  location.href = href;\n                } else {\n                  console.error('Invalid Rsdoctor compiler report origin');\n                }\n              } else if (item.path) {\n                const href = getSafeReportUrl(\n                  item.path.endsWith('.html')\n                    ? item.path\n                    : getSharingUrl(item.path),\n                  location.href,\n                );\n\n                if (href) {\n                  location.href = href;\n                } else {\n                  console.error('Invalid Rsdoctor compiler report location');\n                }\n              } else {\n                console.error('No Rsdoctor compiler report location');\n              }\n            }\n          }}\n        >\n          {series.map((item, i) => (\n            <Select.Option\n              key={i}\n              value={item.name}\n              className=\"builder-selector-option-item\"\n            >\n              {item.name}\n            </Select.Option>\n          ))}\n        </Select>\n      </Space>\n    </>\n  );\n};\n"],"names":["BuilderSelect","buildName","setBuildName","useState","series","setSeries","useEffect","fetchManifest","name","Divider","Space","Icon","TotalSizeSvg","Typography","Select","val","item","href","changeOrigin","location","console","getSafeReportUrl","getSharingUrl","i"],"mappings":";;;;;;AAYO,MAAMA,gBAA0B;IACrC,MAAM,CAACC,WAAWC,aAAa,GAAGC,SAAS;IAC3C,MAAM,CAACC,QAAQC,UAAU,GAAGF,SAC1B,EAAE;IAGJG,UAAU;QACRC,gBAAgB,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAEJ,MAAM,EAAE;YACpC,IAAII,MACFN,aAAaM;YAGf,IAAIJ,UAAUA,OAAO,MAAM,GAAG,GAC5BC,UAAUD;QAEd;IACF,GAAG,EAAE;IAEL,IAAIH,UAAU,MAAM,IAAI,KAAKG,OAAO,MAAM,IAAI,GAC5C,OAAO,WAAP,GAAO;IAGT,OAAO,WAAP,GACE;;0BACE,IAACK,SAAOA;gBAAC,MAAK;gBAAW,OAAO;oBAAE,QAAQ;gBAAS;;0BACnD,KAACC,OAAKA;;kCACJ,IAACC,OAAIA;wBAAC,OAAO;4BAAE,UAAU;wBAAO;wBAAG,WAAWC;;kCAC9C,IAACC,YAAUA;kCAAC;;kCACZ,IAACC,QAAMA;wBACL,WAAU;wBACV,cAAcb;wBACd,UAAU;wBACV,OAAO;4BAAE,UAAU;wBAAI;wBACvB,UAAU,CAACc;4BACT,MAAMC,OAAOZ,OAAO,IAAI,CAAC,CAACY,OAASA,KAAK,IAAI,KAAKD;4BAEjD,IAAIC,MACF,IAAIA,KAAK,MAAM,EAAE;gCACf,MAAMC,OAAOC,aAAaF,KAAK,MAAM;gCACrC,IAAIC,MACFE,SAAS,IAAI,GAAGF;qCAEhBG,QAAQ,KAAK,CAAC;4BAElB,OAAO,IAAIJ,KAAK,IAAI,EAAE;gCACpB,MAAMC,OAAOI,iBACXL,KAAK,IAAI,CAAC,QAAQ,CAAC,WACfA,KAAK,IAAI,GACTM,cAAcN,KAAK,IAAI,GAC3BG,SAAS,IAAI;gCAGf,IAAIF,MACFE,SAAS,IAAI,GAAGF;qCAEhBG,QAAQ,KAAK,CAAC;4BAElB,OACEA,QAAQ,KAAK,CAAC;wBAGpB;kCAEChB,OAAO,GAAG,CAAC,CAACY,MAAMO,IAAAA,WAAAA,GACjB,IAACT,OAAO,MAAM;gCAEZ,OAAOE,KAAK,IAAI;gCAChB,WAAU;0CAETA,KAAK,IAAI;+BAJLO;;;;;;AAWnB"}