{"version":3,"file":"components/Alerts/collapse-cjs-require.mjs","sources":["../../../src/components/Alerts/collapse-cjs-require.tsx"],"sourcesContent":["import { Collapse, Space, Tag } 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 { LabelComponent, IdeIcons } from './collapse-shared';\n\nimport type { Rule } from '@rsdoctor/types';\nimport type { AlertProps } from '../Alert/types';\n\nconst { innerWidth } = window;\n\nexport const CjsRequireAlertCollapse = (props: {\n  data: Array<Rule.RuleStoreDataItem>;\n  extraData: Omit<AlertProps, 'data'>;\n}) => {\n  const { data, extraData } = props;\n  const { cwd } = extraData;\n\n  // Group by required module path\n  const groupMap = new Map<\n    string,\n    {\n      requiredPath: string;\n      issuers: Array<{ issuerPath: string; request: string }>;\n    }\n  >();\n\n  for (const d of data) {\n    const item = d as Rule.CjsRequireRuleStoreData;\n    const key = item.requiredModule.path;\n    if (!groupMap.has(key)) {\n      groupMap.set(key, { requiredPath: key, issuers: [] });\n    }\n    groupMap.get(key)!.issuers.push({\n      issuerPath: item.issuerModule.path,\n      request: item.request,\n    });\n  }\n\n  const groups = Array.from(groupMap.values());\n\n  const items = groups.map((group) => {\n    const requiredDisplayPath = beautifyPath(group.requiredPath, cwd);\n    const issuerCount = group.issuers.length;\n\n    const ChildComponent = () => (\n      <div className={styles.collapseContainer}>\n        <Overview\n          title={\n            <Space align=\"center\">\n              <span\n                style={{\n                  fontSize: 13,\n                  fontWeight: 500,\n                }}\n              >\n                Required Module:\n              </span>\n              <span\n                style={{\n                  fontSize: 12,\n                  color: 'var(--text-color-secondary)',\n                  fontWeight: 300,\n                  maxWidth: innerWidth > 1500 ? 900 : 700,\n                  overflow: 'hidden',\n                  textOverflow: 'ellipsis',\n                  whiteSpace: 'nowrap',\n                  display: 'inline-block',\n                }}\n              >\n                {requiredDisplayPath}\n              </span>\n            </Space>\n          }\n          description={\n            <div className={styles.collapseChild}>\n              <div\n                style={{\n                  marginBottom: 8,\n                  fontWeight: 500,\n                }}\n              >\n                CJS Require Callers:\n              </div>\n              {group.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}>require</div>\n                  <div className={styles.iconContainer}>\n                    <span className={styles.data}>\n                      {beautifyPath(issuer.issuerPath, cwd)}\n                    </span>\n                    <Tag\n                      className={utilStyles.tag}\n                      style={{\n                        marginLeft: 8,\n                        fontSize: 11,\n                        fontFamily: 'Menlo',\n                      }}\n                    >\n                      {`require('${issuer.request}')`}\n                    </Tag>\n                    <IdeIcons file={issuer.issuerPath} />\n                  </div>\n                </div>\n              ))}\n            </div>\n          }\n        />\n      </div>\n    );\n\n    return {\n      key: requiredDisplayPath,\n      label: (\n        <LabelComponent\n          title={\n            <Space size={4} align=\"center\">\n              <Tag className={utilStyles.tag}>\n                <span className={styles.pkgName}>{requiredDisplayPath}</span>\n              </Tag>\n            </Space>\n          }\n          description={`cannot be tree-shaken — required via CJS \\`require()\\` by ${issuerCount} caller(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":["innerWidth","window","CjsRequireAlertCollapse","props","data","extraData","cwd","groupMap","Map","d","item","key","groups","Array","items","group","requiredDisplayPath","beautifyPath","issuerCount","ChildComponent","styles","Overview","Space","issuer","idx","Tag","utilStyles","IdeIcons","LabelComponent","Collapse"],"mappings":";;;;;;;AAWA,MAAM,EAAEA,YAAAA,+BAAU,EAAE,GAAGC;AAEhB,MAAMC,0BAA0B,CAACC;IAItC,MAAM,EAAEC,IAAI,EAAEC,SAAS,EAAE,GAAGF;IAC5B,MAAM,EAAEG,GAAG,EAAE,GAAGD;IAGhB,MAAME,WAAW,IAAIC;IAQrB,KAAK,MAAMC,KAAKL,KAAM;QACpB,MAAMM,OAAOD;QACb,MAAME,MAAMD,KAAK,cAAc,CAAC,IAAI;QACpC,IAAI,CAACH,SAAS,GAAG,CAACI,MAChBJ,SAAS,GAAG,CAACI,KAAK;YAAE,cAAcA;YAAK,SAAS,EAAE;QAAC;QAErDJ,SAAS,GAAG,CAACI,KAAM,OAAO,CAAC,IAAI,CAAC;YAC9B,YAAYD,KAAK,YAAY,CAAC,IAAI;YAClC,SAASA,KAAK,OAAO;QACvB;IACF;IAEA,MAAME,SAASC,MAAM,IAAI,CAACN,SAAS,MAAM;IAEzC,MAAMO,QAAQF,OAAO,GAAG,CAAC,CAACG;QACxB,MAAMC,sBAAsBC,aAAaF,MAAM,YAAY,EAAET;QAC7D,MAAMY,cAAcH,MAAM,OAAO,CAAC,MAAM;QAExC,MAAMI,iBAAiB,kBACrB,IAAC;gBAAI,WAAWC,gBAAAA,iBAAwB;0BACtC,kBAACC,UAAQA;oBACP,qBACE,KAACC,OAAKA;wBAAC,OAAM;;0CACX,IAAC;gCACC,OAAO;oCACL,UAAU;oCACV,YAAY;gCACd;0CACD;;0CAGD,IAAC;gCACC,OAAO;oCACL,UAAU;oCACV,OAAO;oCACP,YAAY;oCACZ,UAAUtB,kCAAa,OAAO,MAAM;oCACpC,UAAU;oCACV,cAAc;oCACd,YAAY;oCACZ,SAAS;gCACX;0CAECgB;;;;oBAIP,2BACE,KAAC;wBAAI,WAAWI,gBAAAA,aAAoB;;0CAClC,IAAC;gCACC,OAAO;oCACL,cAAc;oCACd,YAAY;gCACd;0CACD;;4BAGAL,MAAM,OAAO,CAAC,GAAG,CAAC,CAACQ,QAAQC,MAAAA,WAAAA,GAC1B,KAAC;oCAEC,OAAO;wCACL,SAAS;wCACT,cAAc;wCACd,YAAY;oCACd;;sDAEA,IAAC;4CAAI,WAAWJ,gBAAAA,SAAgB;sDAAE;;sDAClC,KAAC;4CAAI,WAAWA,gBAAAA,aAAoB;;8DAClC,IAAC;oDAAK,WAAWA,gBAAAA,IAAW;8DACzBH,aAAaM,OAAO,UAAU,EAAEjB;;8DAEnC,IAACmB,KAAGA;oDACF,WAAWC,aAAAA,GAAc;oDACzB,OAAO;wDACL,YAAY;wDACZ,UAAU;wDACV,YAAY;oDACd;8DAEC,CAAC,SAAS,EAAEH,OAAO,OAAO,CAAC,EAAE,CAAC;;8DAEjC,IAACI,UAAQA;oDAAC,MAAMJ,OAAO,UAAU;;;;;mCAtB9BC;;;;;QAgCnB,OAAO;YACL,KAAKR;YACL,OAAO,WAAP,GACE,IAACY,gBAAcA;gBACb,qBACE,IAACN,OAAKA;oBAAC,MAAM;oBAAG,OAAM;8BACpB,kBAACG,KAAGA;wBAAC,WAAWC,aAAAA,GAAc;kCAC5B,kBAAC;4BAAK,WAAWN,gBAAAA,OAAc;sCAAGJ;;;;gBAIxC,aAAa,CAAC,0DAA0D,EAAEE,YAAY,WAAW,CAAC;;YAGtG,UAAU,WAAV,GAAU,IAACC,gBAAAA,CAAAA;QACb;IACF;IAEA,OAAO,WAAP,GACE,IAACU,UAAQA;QACP,OAAO;YAAE,OAAO;QAAO;QACvB,kBAAkBf,MAAM,GAAG,CAAC,CAACJ,OAASA,KAAK,GAAG;QAC9C,OAAOI;;AAGb"}