{"version":3,"file":"injectBits.mjs","sources":["../../../../../src/rendering/high-shader/compiler/utils/injectBits.ts"],"sourcesContent":["/**\n * takes a shader src and replaces any hooks with the HighFragment code.\n * @param templateSrc - the program src template\n * @param fragmentParts - the fragments to inject\n * @internal\n */\nexport function injectBits(templateSrc: string, fragmentParts: Record<string, string[]>): string\n{\n    let out = templateSrc;\n\n    for (const i in fragmentParts)\n    {\n        const parts = fragmentParts[i];\n\n        const toInject = parts.join('\\n');\n\n        if (toInject.length)\n        {\n            out = out.replace(`{{${i}}}`, `//-----${i} START-----//\\n${parts.join('\\n')}\\n//----${i} FINISH----//`);\n        }\n\n        else\n        {\n            out = out.replace(`{{${i}}}`, '');\n        }\n    }\n\n    return out;\n}\n"],"names":[],"mappings":";AAMO,SAAS,UAAA,CAAW,aAAqB,aAAA,EAChD;AACI,EAAA,IAAI,GAAA,GAAM,WAAA;AAEV,EAAA,KAAA,MAAW,KAAK,aAAA,EAChB;AACI,IAAA,MAAM,KAAA,GAAQ,cAAc,CAAC,CAAA;AAE7B,IAAA,MAAM,QAAA,GAAW,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AAEhC,IAAA,IAAI,SAAS,MAAA,EACb;AACI,MAAA,GAAA,GAAM,IAAI,OAAA,CAAQ,CAAA,EAAA,EAAK,CAAC,CAAA,EAAA,CAAA,EAAM,UAAU,CAAC,CAAA;AAAA,EAAkB,KAAA,CAAM,IAAA,CAAK,IAAI,CAAC;AAAA,MAAA,EAAW,CAAC,CAAA,aAAA,CAAe,CAAA;AAAA,IAC1G,CAAA,MAGA;AACI,MAAA,GAAA,GAAM,GAAA,CAAI,OAAA,CAAQ,CAAA,EAAA,EAAK,CAAC,MAAM,EAAE,CAAA;AAAA,IACpC;AAAA,EACJ;AAEA,EAAA,OAAO,GAAA;AACX;;;;"}