{"version":3,"file":"MathBlock-Bf07R9Ni.mjs","names":[],"sources":["../src/components/templates/MathBlock.vue"],"sourcesContent":["<template>\n  <div class=\"katex-block\">\n    <div v-for=\"(formula, index) in formulas\" :key=\"'math_' + index\">\n      <katex-element :expression=\"formula\"></katex-element>\n    </div>\n  </div>\n</template>\n\n<script setup>\nimport { computed, toRefs } from 'vue'\n// Unsupported delimiters/formatting.\nconst removeList = ['\\\\begin{equation}', '\\\\end{equation}']\n\nconst renameMap = new Map([\n  ['\\\\begin{align}', '\\\\begin{aligned}'],\n  ['\\\\begin{eqnarray}', '\\\\begin{aligned}'],\n  ['\\\\end{align}', '\\\\end{aligned}'],\n  ['\\\\end{eqnarray}', '\\\\end{aligned}'],\n])\n\nconst props = defineProps({\n  node: {\n    type: undefined,\n    default: null,\n  },\n  componentName: {\n    type: String,\n  },\n  properties: {\n    type: Object,\n  },\n})\n\nconst { node } = toRefs(props)\n\nconst formulas = computed(() => {\n  let formulas = []\n  const multiEquations = node.value.innerHTML.split(/\\r?\\n\\r?\\n/)\n  for (const equation of multiEquations) {\n    if (equation) {\n      let stripped = equation.replaceAll('&amp;', '&')\n      for (const item of removeList) {\n        stripped = stripped.replaceAll(item, '')\n      }\n      for (let [key, value] of renameMap) {\n        stripped = stripped.replaceAll(key, value)\n      }\n      if (requiresSplitEnvironment(stripped) && !hasEnvironment(stripped)) {\n        // Create an environment that looks like a split environment\n        stripped = `\\\\begin{array}{cc}${stripped}\\\\end{array}`\n      }\n      formulas.push(stripped)\n    }\n  }\n  return formulas\n})\n\nfunction requiresSplitEnvironment(formula) {\n  const ampersandIndex = formula.search('&')\n  const newLineIndex = formula.search('\\\\\\\\')\n  if (ampersandIndex !== -1 && newLineIndex !== -1) {\n    return true\n  }\n  return false\n}\n\nfunction hasEnvironment(formula) {\n  // For some reason search doesn't return 0 if looking for \\ at the start of a string.\n  // So we don't look for it.\n  const beginEnvironmentIndex = formula.search('begin{aligned}')\n  const endEnvironmentIndex = formula.search('end{aligned}')\n  if (beginEnvironmentIndex !== -1 && endEnvironmentIndex !== -1) {\n    return true\n  }\n  return false\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;EAWA,IAAM,IAAa,CAAC,qBAAqB,iBAAiB,GAEpD,oBAAY,IAAI,IAAI;GACxB,CAAC,kBAAkB,kBAAkB;GACrC,CAAC,qBAAqB,kBAAkB;GACxC,CAAC,gBAAgB,gBAAgB;GACjC,CAAC,mBAAmB,gBAAgB;EACtC,CAAC,GAeK,EAAE,YAAS,EAAO,CAAK,GAEvB,IAAW,QAAe;GAC9B,IAAI,IAAW,CAAC,GACV,IAAiB,EAAK,MAAM,UAAU,MAAM,YAAY;GAC9D,KAAK,IAAM,KAAY,GACrB,IAAI,GAAU;IACZ,IAAI,IAAW,EAAS,WAAW,SAAS,GAAG;IAC/C,KAAK,IAAM,KAAQ,GACjB,IAAW,EAAS,WAAW,GAAM,EAAE;IAEzC,KAAK,IAAI,CAAC,GAAK,MAAU,GACvB,IAAW,EAAS,WAAW,GAAK,CAAK;IAM3C,AAJI,EAAyB,CAAQ,KAAK,CAAC,EAAe,CAAQ,MAEhE,IAAW,qBAAqB,EAAS,gBAE3C,EAAS,KAAK,CAAQ;GACxB;GAEF,OAAO;EACT,CAAC;EAED,SAAS,EAAyB,GAAS;GACzC,IAAM,IAAiB,EAAQ,OAAO,GAAG,GACnC,IAAe,EAAQ,OAAO,MAAM;GAI1C,OAHI,MAAmB,MAAM,MAAiB;EAIhD;EAEA,SAAS,EAAe,GAAS;GAG/B,IAAM,IAAwB,EAAQ,OAAO,gBAAgB,GACvD,IAAsB,EAAQ,OAAO,cAAc;GAIzD,OAHI,MAA0B,MAAM,MAAwB;EAI9D;;;GA1EE,OAAA,EAAA,GAAA,EAIM,OAJN,GAIM,EAHJ,EAAA,EAAA,GAAA,EAEM,GAAA,MAAA,EAF0B,EAAA,QAAnB,GAAS,OAAtB,EAAA,GAAA,EAEM,OAAA,EAFqC,KAAG,UAAY,EAAA,GAAA,CACxD,EAAqD,GAAA,EAArC,YAAY,EAAO,GAAA,MAAA,GAAA,CAAA,YAAA,CAAA,CAAA,CAAA"}