{"version":3,"file":"analogjs-content-prism-highlighter.mjs","sources":["../../../../packages/content/prism-highlighter/src/lib/prism-highlighter.ts","../../../../packages/content/prism-highlighter/src/lib/prism/angular.js","../../../../packages/content/prism-highlighter/src/index.ts","../../../../packages/content/prism-highlighter/src/analogjs-content-prism-highlighter.ts"],"sourcesContent":["import { MarkedContentHighlighter } from '@analogjs/content';\nimport { Injectable } from '@angular/core';\nimport { markedHighlight } from 'marked-highlight';\n\ndeclare const Prism: typeof import('prismjs');\n\ntype HighlightExtension = ReturnType<\n  MarkedContentHighlighter['getHighlightExtension']\n>;\n\n@Injectable()\nexport class PrismHighlighter extends MarkedContentHighlighter {\n  override augmentCodeBlock(code: string, lang: string): string {\n    const classes =\n      lang.startsWith('diff') && Prism.languages['diff']\n        ? `language-${lang} diff-highlight`\n        : `language-${lang.replace('diff-', '')}`;\n    return `<pre class=\"${classes}\"><code class=\"${classes}\">${code}</code></pre>`;\n  }\n\n  override getHighlightExtension(): HighlightExtension {\n    return markedHighlight({\n      async: true,\n      highlight: (code: string, lang: string) => {\n        let diff = lang?.startsWith('diff-');\n        lang = diff ? lang.replace('diff-', '') : lang || 'typescript';\n\n        if (diff && !Prism.languages['diff']) {\n          diff = false;\n          console.warn(`Notice:\n    ---------------------------------------------------------------------------------------\n    The \\`diff\\` language and plugin are not available in the provided setup.\n    To enable it, add the following imports your \\`app.config.ts\\`:\n      import 'prismjs/components/prism-diff';\n      import 'prismjs/plugins/diff-highlight/prism-diff-highlight';\n    ---------------------------------------------------------------------------------------\n            `);\n        }\n\n        if (!Prism.languages[lang]) {\n          if (lang !== 'mermaid') {\n            console.warn(`Notice:\n    ---------------------------------------------------------------------------------------\n    The requested language '${lang}' is not available in the provided setup.\n    To enable it, add the following import your \\`app.config.ts\\`:\n      import 'prismjs/components/prism-${lang}';\n    ---------------------------------------------------------------------------------------\n              `);\n          }\n          return code;\n        }\n        return Prism.highlight(\n          code,\n          diff ? Prism.languages['diff'] : Prism.languages[lang],\n          lang,\n        );\n      },\n    }) as HighlightExtension;\n  }\n}\n","(function () {\n  if (typeof Prism === 'undefined') {\n    return;\n  }\n\n  Prism.languages.angular = Prism.languages.extend('markup', {\n    keyword:\n      /(?:@if|@for|@switch|@defer|@loading|@error|@placeholder|prefetch)\\b/,\n    operator: /\\b(?:on|when)\\b/,\n    number: {\n      pattern: /\\b(minimum|after)\\s+\\d+(?:s|ms|)/gi,\n      lookbehind: true,\n    },\n    builtin: {\n      pattern:\n        /\\b(?:viewport|timer|minimum|after|hover|idle|immediate|interaction)/,\n    },\n    function:\n      /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n  });\n\n  Prism.languages.ng = Prism.languages.angular;\n})();\n","import { ContentRenderer, NoopContentRenderer } from '@analogjs/content';\nimport { Provider } from '@angular/core';\nimport { PrismHighlighter } from './lib/prism-highlighter';\n\nimport 'prismjs';\nimport 'prismjs/plugins/toolbar/prism-toolbar';\nimport 'prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard';\nimport './lib/prism/angular';\n\nexport { PrismHighlighter };\n\nexport function withPrismHighlighter(): Provider[] {\n  return [{ provide: ContentRenderer, useClass: NoopContentRenderer }];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAWM,MAAO,gBAAiB,SAAQ,wBAAwB,CAAA;IACnD,gBAAgB,CAAC,IAAY,EAAE,IAAY,EAAA;AAClD,QAAA,MAAM,OAAO,GACX,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM;cAC7C,CAAA,SAAA,EAAY,IAAI,CAAA,eAAA;cAChB,CAAA,SAAA,EAAY,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA,CAAE;AAC7C,QAAA,OAAO,eAAe,OAAO,CAAA,eAAA,EAAkB,OAAO,CAAA,EAAA,EAAK,IAAI,eAAe;IAChF;IAES,qBAAqB,GAAA;AAC5B,QAAA,OAAO,eAAe,CAAC;AACrB,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,SAAS,EAAE,CAAC,IAAY,EAAE,IAAY,KAAI;gBACxC,IAAI,IAAI,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC;AACpC,gBAAA,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,YAAY;gBAE9D,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBACpC,IAAI,GAAG,KAAK;oBACZ,OAAO,CAAC,IAAI,CAAC,CAAA;;;;;;;AAOV,YAAA,CAAA,CAAC;gBACN;gBAEA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AAC1B,oBAAA,IAAI,IAAI,KAAK,SAAS,EAAE;wBACtB,OAAO,CAAC,IAAI,CAAC,CAAA;;8BAEK,IAAI,CAAA;;yCAEO,IAAI,CAAA;;AAE9B,cAAA,CAAA,CAAC;oBACN;AACA,oBAAA,OAAO,IAAI;gBACb;AACA,gBAAA,OAAO,KAAK,CAAC,SAAS,CACpB,IAAI,EACJ,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EACtD,IAAI,CACL;YACH,CAAC;AACF,SAAA,CAAuB;IAC1B;8GA/CW,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAhB,gBAAgB,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B;;;;ACVD,CAAC,YAAA;AACC,IAAA,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;QAChC;IACF;AAEA,IAAA,KAAK,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE;AACzD,QAAA,OAAO,EACL,qEAAqE;AACvE,QAAA,QAAQ,EAAE,iBAAiB;AAC3B,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,oCAAoC;AAC7C,YAAA,UAAU,EAAE,IAAI;AACjB,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EACL,qEAAqE;AACxE,SAAA;AACD,QAAA,QAAQ,EACN,mGAAmG;AACtG,KAAA,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO;AAC9C,CAAC,GAAG;;SCXY,oBAAoB,GAAA;IAClC,OAAO,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;AACtE;;ACbA;;AAEG;;;;"}