{"version":3,"file":"main.C7obp4.js","sources":["theme-18/virtual:theme","theme-18/discourse/api-initializers/theme-initializer.gjs","theme-18/virtual:entrypoint:main"],"sourcesContent":["import { getObjectForTheme } from \"discourse/lib/theme-settings-store\";\n\nexport const settings = getObjectForTheme(18);\n\nexport function themePrefix(key) {\n  return `theme_translations.18.${key}`;\n}\n","import { apiInitializer } from \"discourse/lib/api\";\n\nexport default apiInitializer((api) => {\n    const decorateLines = (post) => {\n      try {\n        const params = new URL(document.location.href).searchParams;\n        const preview = params.has('avbPreview');\n        if (!preview) {\n          return;\n        }\n        const classes = ['decorator'].concat(\n          (params.get('avbClasses') || 'number,scroll,shadow').split(',')).map(c => `lines-${c}`);\n        const debug = params.has('avbDebug');\n        const split = /^(.*)$/mg;\n        const elems = post.querySelectorAll('pre code:not(.lines-decorator)');\n        elems.forEach(elem => {\n          const count = elem.innerHTML.trim().match(split).length;\n          // Discourse uses `<aside>` for quotes of other forum posts\n          const quote = elem.closest('aside') ? ['lines-in-quote'] : []\n          elem.parentElement.classList.add(`lines-count-${count}`, ...classes, ...quote);\n          elem.classList.add(`lines-count-${count}`, ...classes, ...quote);\n          const lineClass = ['lines-line', ...quote].join(' ');\n    \n          if (debug) {\n            console.log('===== Rewriting; source\\n' + elem.innerHTML.trim());\n            console.log('===== Rewriting; result\\n' + elem.innerHTML.trim().replace(split, `<span class=\"${lineClass}\">$1</span>`));\n          }\n    \n          // Assume we don't have any event listeners on the line,\n          // and trim to hide trailing blank lines\n          elem.innerHTML = elem.innerHTML.trim().replace(/^(.*)$/mg, `<span class=\"${lineClass}\">$1</span>`);\n        });\n      } catch (e) {\n        console.error(e);\n      }\n    }\n    \n    api.decorateCookedElement(decorateLines, {id: 'decorate-pre-code-lines'});\n});\n","import * as Mod1 from \"./discourse/api-initializers/theme-initializer\";\nconst compatModules = {\n  \"discourse/api-initializers/theme-initializer\": Mod1,\n};\nexport { compatModules };\nexport default compatModules;\n"],"names":["getObjectForTheme","themeInitializer","apiInitializer","api","decorateCookedElement","post","params","URL","document","location","href","searchParams","has","classes","concat","get","split","map","c","debug","querySelectorAll","forEach","elem","count","innerHTML","trim","match","length","quote","closest","parentElement","classList","add","lineClass","join","console","log","replace","e","error","id","compatModules"],"mappings":";AAEwBA,EAAkB;;ACA1C,IAAAC;oCAAeC,CAAgBC,IAmC3BA,EAAIC,sBAlCmBC,IACrB,IACE,MAAMC,EAAS,IAAIC,IAAIC,SAASC,SAASC,MAAMC;AAE/C,IADgBL,EAAOM,IAAI,cAEzB;AAEF,MAAMC,EAAU,CAAC,aAAaC,QAC3BR,EAAOS,IAAI,eAAiB,wBAAwBC,MAAM,MAAMC,IAAIC,GAAK,SAASA,KAC/EC,EAAQb,EAAOM,IAAI,YACnBI,EAAQ;AACAX,EAAKe,iBAAiB,kCAC9BC,QAAQC,IACZ,MAAMC,EAAQD,EAAKE,UAAUC,OAAOC,MAAMV,GAAOW,OAE3CC,EAAQN,EAAKO,QAAQ,SAAW,CAAC,kBAAoB;AAC3DP,EAAKQ,cAAcC,UAAUC,IAAI,eAAeT,OAAYV,KAAYe,GACxEN,EAAKS,UAAUC,IAAI,eAAeT,OAAYV,KAAYe;AAC1D,MAAMK,EAAY,CAAC,gBAAiBL,GAAOM,KAAK;AAE5Cf,IACFgB,QAAQC,IAAI,4BAA8Bd,EAAKE,UAAUC,QACzDU,QAAQC,IAAI,4BAA8Bd,EAAKE,UAAUC,OAAOY,QAAQrB,EAAO,gBAAgBiB,kBAKjGX,EAAKE,UAAYF,EAAKE,UAAUC,OAAOY,QAAQ,WAAY,gBAAgBJ,iBAE/E,CAAE,MAAOK,GACPH,QAAQI,MAAMD,EAChB,GAGuC,CAACE,GAAI;ACpC7C,MAACC,EAAgB,CACpB;"}