{"version":3,"file":"Scripts.cjs","names":["useRouter","getSsrBodyScriptParts","composeSsrBodyScripts","isServer","useSelector","deepEqual","_Fragment","Asset"],"sources":["../../src/Scripts.tsx"],"sourcesContent":["import { useSelector } from '@tanstack/react-store'\nimport {\n  composeSsrBodyScripts,\n  deepEqual,\n  getSsrBodyScriptParts,\n} from '@tanstack/router-core'\nimport { isServer } from '@tanstack/router-core/isServer'\nimport { Asset } from './Asset'\nimport { useRouter } from './useRouter'\nimport type { RouterManagedTag } from '@tanstack/router-core'\n\ntype ScriptRenderAsset = RouterManagedTag & {\n  preventScriptHoist?: boolean\n}\n\nconst routeScriptAttrs = { suppressHydrationWarning: true }\n\n/**\n * Render body script tags collected from route matches and SSR manifests.\n * During streaming SSR, `<Scripts>` marks where late hydration scripts may\n * begin to be inserted.\n */\nexport const Scripts = () => {\n  const router = useRouter()\n  const nonce = router.options.ssr?.nonce\n\n  const getParts = (matches: Array<any>) => {\n    const parts = getSsrBodyScriptParts(\n      matches,\n      router.ssr?.manifest,\n      nonce,\n      routeScriptAttrs,\n    )\n    for (const script of parts[1]) {\n      if (typeof script.attrs?.src === 'string') {\n        const scriptWithHoist = script as ScriptRenderAsset\n        scriptWithHoist.preventScriptHoist = true\n      }\n    }\n    return parts\n  }\n\n  const getScripts = (matches: Array<any>) => {\n    return composeSsrBodyScripts(getParts(matches))\n  }\n\n  if (isServer ?? router.isServer) {\n    const activeMatches = router.stores.matches.get()\n    return renderScripts(\n      composeSsrBodyScripts(\n        getParts(activeMatches),\n        router.serverSsr?.takeInitialHydrationScriptTags(),\n      ),\n    )\n  }\n\n  // eslint-disable-next-line react-hooks/rules-of-hooks -- condition is static\n  const scripts = useSelector(router.stores.matches, getScripts, {\n    compare: deepEqual,\n  })\n\n  return renderScripts(scripts)\n}\n\nfunction renderScripts(scripts: Array<ScriptRenderAsset>) {\n  return (\n    <>\n      {scripts.map((asset, i) => (\n        <Asset {...asset} key={`tsr-scripts-${asset.tag}-${i}`} />\n      ))}\n    </>\n  )\n}\n"],"mappings":";;;;;;;;AAeA,IAAM,mBAAmB,EAAE,0BAA0B,KAAK;;;;;;AAO1D,IAAa,gBAAgB;CAC3B,MAAM,SAASA,kBAAAA,UAAU;CACzB,MAAM,QAAQ,OAAO,QAAQ,KAAK;CAElC,MAAM,YAAY,YAAwB;EACxC,MAAM,SAAA,GAAQC,sBAAAA,sBAAAA,CACZ,SACA,OAAO,KAAK,UACZ,OACA,gBACF;EACA,KAAK,MAAM,UAAU,MAAM,IACzB,IAAI,OAAO,OAAO,OAAO,QAAQ,UAAU;GACzC,MAAM,kBAAkB;GACxB,gBAAgB,qBAAqB;EACvC;EAEF,OAAO;CACT;CAEA,MAAM,cAAc,YAAwB;EAC1C,QAAA,GAAOC,sBAAAA,sBAAAA,CAAsB,SAAS,OAAO,CAAC;CAChD;CAEA,IAAIC,+BAAAA,YAAY,OAAO,UAAU;EAC/B,MAAM,gBAAgB,OAAO,OAAO,QAAQ,IAAI;EAChD,OAAO,eAAA,GACLD,sBAAAA,sBAAAA,CACE,SAAS,aAAa,GACtB,OAAO,WAAW,+BAA+B,CACnD,CACF;CACF;CAOA,OAAO,eAAA,GAJSE,sBAAAA,YAAAA,CAAY,OAAO,OAAO,SAAS,YAAY,EAC7D,SAASC,sBAAAA,UACX,CAEqB,CAAO;AAC9B;AAEA,SAAS,cAAc,SAAmC;CACxD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAAC,kBAAAA,UAAA,EAAA,UACG,QAAQ,KAAK,OAAO,MACnB,iBAAA,GAAA,MAAA,cAAA,CAACC,cAAAA,OAAD;EAAO,GAAI;EAAO,KAAK,eAAe,MAAM,IAAI,GAAG;CAAM,CAAA,CAC1D,EACD,CAAA;AAEN"}