{"version":3,"file":"components/Alerts/collapse-esm-cjs.mjs","sources":["../../../src/components/Alerts/collapse-esm-cjs.tsx"],"sourcesContent":["import { Collapse, Space, Tag, Tooltip, Typography } from 'antd';\n\nimport Overview from '../Overall/overview';\nimport styles from './collapse.module.scss';\nimport utilStyles from './index.module.scss';\nimport { beautifyPath } from '../../utils/file';\nimport { truncateMiddle } from '../../utils/string';\nimport { LabelComponent } from './collapse-shared';\n\nimport type { Rule } from '@rsdoctor/types';\nimport type { AlertProps } from '../Alert/types';\n\nconst { Text } = Typography;\n\nexport const EsmResolvedToCjsAlertCollapse = (props: {\n  data: Array<Rule.RuleStoreDataItem>;\n  extraData: Omit<AlertProps, 'data'>;\n}) => {\n  const { data, extraData } = props;\n  const { cwd } = extraData;\n\n  const items = data.map((d) => {\n    const item = d as Rule.EsmResolvedToCjsRuleStoreData;\n    const { packageName, packageVersion, esmEntry, resolvedModule, issuers } =\n      item;\n\n    const resolvedDisplayPath = beautifyPath(resolvedModule.path, cwd);\n    const esmDisplayPath = beautifyPath(esmEntry, cwd);\n\n    const ChildComponent = () => (\n      <div className={styles.collapseContainer}>\n        <Overview\n          title={\n            <Space align=\"center\" wrap>\n              <Text strong style={{ fontSize: 13 }}>\n                Package:\n              </Text>\n              <Tag\n                className={utilStyles.tag}\n                style={{\n                  fontFamily: 'Menlo',\n                }}\n              >\n                {`${packageName}@${packageVersion}`}\n              </Tag>\n            </Space>\n          }\n          description={\n            <div\n              className={styles.collapseChild}\n              style={{ flexDirection: 'column', paddingTop: 16 }}\n            >\n              {/* ESM entry that should have been used */}\n              <div\n                style={{\n                  display: 'flex',\n                  marginBottom: 8,\n                  alignItems: 'center',\n                }}\n              >\n                <div\n                  className={styles.attribute}\n                  style={{ color: '#52c41a', minWidth: 100 }}\n                >\n                  <Tag\n                    style={{\n                      backgroundColor: '#f6ffed',\n                      borderColor: '#b7eb8f',\n                      color: '#389e0d',\n                      borderRadius: '2px',\n                    }}\n                  >\n                    ESM Entry\n                  </Tag>\n                </div>\n                <div className={styles.iconContainer}>\n                  <Tooltip title={esmDisplayPath}>\n                    <span className={styles.data}>\n                      {truncateMiddle(esmDisplayPath)}\n                    </span>\n                  </Tooltip>\n                  <Tag\n                    style={{\n                      marginLeft: 8,\n                      backgroundColor: '#f6ffed',\n                      borderColor: '#b7eb8f',\n                      color: '#389e0d',\n                      borderRadius: '2px',\n                      fontSize: 11,\n                    }}\n                  >\n                    declared in package.json\n                  </Tag>\n                </div>\n              </div>\n\n              {/* CJS file that was actually resolved */}\n              <div\n                style={{\n                  display: 'flex',\n                  marginBottom: 16,\n                  alignItems: 'center',\n                }}\n              >\n                <div\n                  className={styles.attribute}\n                  style={{ color: '#ff4d4f', minWidth: 100 }}\n                >\n                  <Tag\n                    style={{\n                      backgroundColor: '#fff7e6',\n                      borderColor: '#ffd591',\n                      color: '#d46b08',\n                      borderRadius: '2px',\n                    }}\n                  >\n                    CJS Resolved\n                  </Tag>\n                </div>\n                <div className={styles.iconContainer}>\n                  <Tooltip title={resolvedDisplayPath}>\n                    <span className={styles.data}>\n                      {truncateMiddle(resolvedDisplayPath)}\n                    </span>\n                  </Tooltip>\n                  <Tag\n                    style={{\n                      marginLeft: 8,\n                      backgroundColor: '#fff1f0',\n                      borderColor: '#ffa39e',\n                      color: '#cf1322',\n                      borderRadius: '2px',\n                      fontSize: 11,\n                    }}\n                  >\n                    actually bundled\n                  </Tag>\n                </div>\n              </div>\n\n              {/* Issuers */}\n              <Collapse\n                size=\"small\"\n                ghost\n                items={[\n                  {\n                    key: 'issuers',\n                    label: (\n                      <span style={{ fontWeight: 500 }}>\n                        {`ESM Importers (${issuers.length})`}\n                      </span>\n                    ),\n                    children: issuers.map((issuer, idx) => (\n                      <div\n                        key={idx}\n                        style={{\n                          display: 'flex',\n                          marginBottom: 4,\n                          alignItems: 'center',\n                        }}\n                      >\n                        <div className={styles.attribute}>import</div>\n                        <div className={styles.iconContainer}>\n                          <span className={styles.data}>\n                            {beautifyPath(issuer.path, cwd)}\n                          </span>\n                          <Tag\n                            className={utilStyles.tag}\n                            style={{\n                              marginLeft: 8,\n                              fontSize: 11,\n                              fontFamily: 'Menlo',\n                            }}\n                          >\n                            {`'${issuer.request}'`}\n                          </Tag>\n                        </div>\n                      </div>\n                    )),\n                  },\n                ]}\n              />\n            </div>\n          }\n        />\n      </div>\n    );\n\n    return {\n      key: `${packageName}::${resolvedModule.path}`,\n      label: (\n        <LabelComponent\n          title={\n            <Space size={4} align=\"center\">\n              <Tag\n                className={utilStyles.tag}\n                style={{ backgroundColor: '#EAEDF1', borderRadius: '2px' }}\n              >\n                <span\n                  className={styles.pkgName}\n                >{`${packageName}@${packageVersion}`}</span>\n              </Tag>\n            </Space>\n          }\n          description={`has an ESM entry but was resolved to CJS by ${issuers.length} importer(s).`}\n        />\n      ),\n      children: <ChildComponent />,\n    };\n  });\n\n  return (\n    <Collapse\n      style={{ width: '100%' }}\n      defaultActiveKey={items.map((item) => item.key)}\n      items={items}\n    />\n  );\n};\n"],"names":["Text","Typography","EsmResolvedToCjsAlertCollapse","props","data","extraData","cwd","items","d","item","packageName","packageVersion","esmEntry","resolvedModule","issuers","resolvedDisplayPath","beautifyPath","esmDisplayPath","ChildComponent","styles","Overview","Space","Tag","utilStyles","Tooltip","truncateMiddle","Collapse","issuer","idx","LabelComponent"],"mappings":"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"}