{"version":3,"file":"components/Configuration/builder.mjs","sources":["../../../src/components/Configuration/builder.tsx"],"sourcesContent":["import { SDK } from '@rsdoctor/types';\nimport { Divider, Row, Select, Space, Typography } from 'antd';\nimport { RightOutlined } from '@ant-design/icons';\nimport React, { useState } from 'react';\nimport ReactJson from 'react-json-view';\nimport { useWebpackConfigurationByConfigs } from '../../utils';\nimport { withServerAPI } from '../Manifest';\nimport { TextDrawer } from '../TextDrawer';\nimport { Title } from '../Title';\n\nimport styles from './builder.module.scss';\nimport { Lodash } from '@rsdoctor/utils/common';\n\ninterface WebpackConfigurationViewerBaseProps {\n  defaultKeys?: string[];\n  configs: SDK.ConfigData;\n}\n\nexport const WebpackConfigurationViewerBase: React.FC<\n  WebpackConfigurationViewerBaseProps\n> = ({ defaultKeys, configs }) => {\n  const builderConfigData = useWebpackConfigurationByConfigs(configs || []);\n\n  if (!builderConfigData) return null;\n\n  const { config, version, name } = builderConfigData;\n  const keys = Object.keys(config);\n  const [selectKeys, setSelectKeys] = useState<string[]>(defaultKeys || keys);\n\n  return (\n    <TextDrawer\n      text={\n        <div className={styles.title}>\n          <span style={{ marginRight: '8px', fontSize: '13px' }}>\n            View Bundler Config\n          </span>\n          <RightOutlined style={{ fontSize: '10px' }} />\n        </div>\n      }\n    >\n      <Row>\n        <Title text={`Bundler Config Viewer`} />\n        <Divider />\n        <Space>\n          <Typography.Text>Properties: </Typography.Text>\n          <Select\n            dropdownStyle={{ zIndex: 999 }}\n            mode=\"multiple\"\n            allowClear\n            value={selectKeys.length === keys.length ? [] : selectKeys}\n            style={{ width: 350 }}\n            popupMatchSelectWidth\n            placeholder={'Show Selected Properties Only.'}\n            onChange={(e) => {\n              setSelectKeys(e);\n            }}\n          >\n            {keys.map((e) => {\n              return (\n                <Select.Option key={e} label={e} value={e}>\n                  {e}\n                </Select.Option>\n              );\n            })}\n          </Select>\n        </Space>\n        <Divider />\n      </Row>\n      <ReactJson\n        name={\n          version && version !== 'unknown'\n            ? `${name}@${version}`\n            : `webpack.config`\n        }\n        theme=\"monokai\"\n        src={\n          selectKeys.length === 0\n            ? config\n            : Lodash.pick(config, selectKeys as (keyof typeof config)[])\n        }\n        displayDataTypes={false}\n        displayObjectSize={false}\n        style={{ overflowX: 'auto' }}\n      />\n    </TextDrawer>\n  );\n};\n\nexport const WebpackConfigurationViewer: React.FC<\n  Omit<WebpackConfigurationViewerBaseProps, 'configs'>\n> = withServerAPI({\n  Component: WebpackConfigurationViewerBase,\n  api: SDK.ServerAPI.API.LoadDataByKey,\n  responsePropName: 'configs',\n  body: {\n    key: 'configs',\n  },\n  showSkeleton: false,\n});\n"],"names":["WebpackConfigurationViewerBase","defaultKeys","configs","builderConfigData","useWebpackConfigurationByConfigs","config","version","name","keys","Object","selectKeys","setSelectKeys","useState","TextDrawer","styles","RightOutlined","Row","Title","Divider","Space","Typography","Select","e","ReactJson","Lodash","WebpackConfigurationViewer","withServerAPI","SDK"],"mappings":";;;;;;;;;;;;AAkBO,MAAMA,iCAET,CAAC,EAAEC,WAAW,EAAEC,OAAO,EAAE;IAC3B,MAAMC,oBAAoBC,iCAAiCF,WAAW,EAAE;IAExE,IAAI,CAACC,mBAAmB,OAAO;IAE/B,MAAM,EAAEE,MAAM,EAAEC,OAAO,EAAEC,IAAI,EAAE,GAAGJ;IAClC,MAAMK,OAAOC,OAAO,IAAI,CAACJ;IACzB,MAAM,CAACK,YAAYC,cAAc,GAAGC,SAAmBX,eAAeO;IAEtE,OAAO,WAAP,GACE,KAACK,YAAUA;QACT,oBACE,KAAC;YAAI,WAAWC,eAAAA,KAAY;;8BAC1B,IAAC;oBAAK,OAAO;wBAAE,aAAa;wBAAO,UAAU;oBAAO;8BAAG;;8BAGvD,IAACC,eAAaA;oBAAC,OAAO;wBAAE,UAAU;oBAAO;;;;;0BAI7C,KAACC,KAAGA;;kCACF,IAACC,OAAKA;wBAAC,MAAM;;kCACb,IAACC,SAAOA,CAAAA;kCACR,KAACC,OAAKA;;0CACJ,IAACC,WAAW,IAAI;0CAAC;;0CACjB,IAACC,QAAMA;gCACL,eAAe;oCAAE,QAAQ;gCAAI;gCAC7B,MAAK;gCACL,YAAU;gCACV,OAAOX,WAAW,MAAM,KAAKF,KAAK,MAAM,GAAG,EAAE,GAAGE;gCAChD,OAAO;oCAAE,OAAO;gCAAI;gCACpB,uBAAqB;gCACrB,aAAa;gCACb,UAAU,CAACY;oCACTX,cAAcW;gCAChB;0CAECd,KAAK,GAAG,CAAC,CAACc,IACF,WAAP,GACE,IAACD,OAAO,MAAM;wCAAS,OAAOC;wCAAG,OAAOA;kDACrCA;uCADiBA;;;;kCAO5B,IAACJ,SAAOA,CAAAA;;;0BAEV,IAACK,iBAASA;gBACR,MACEjB,WAAWA,AAAY,cAAZA,UACP,GAAGC,KAAK,CAAC,EAAED,SAAS,GACpB;gBAEN,OAAM;gBACN,KACEI,AAAsB,MAAtBA,WAAW,MAAM,GACbL,SACAmB,OAAO,IAAI,CAACnB,QAAQK;gBAE1B,kBAAkB;gBAClB,mBAAmB;gBACnB,OAAO;oBAAE,WAAW;gBAAO;;;;AAInC;AAEO,MAAMe,6BAETC,cAAc;IAChB,WAAW1B;IACX,KAAK2B,IAAI,SAAS,CAAC,GAAG,CAAC,aAAa;IACpC,kBAAkB;IAClB,MAAM;QACJ,KAAK;IACP;IACA,cAAc;AAChB"}