{"version":3,"file":"fragments_join.mjs","sources":["../../../../../../node_modules/markdown-it/lib/rules_inline/fragments_join.mjs"],"sourcesContent":["// Clean up tokens after emphasis and strikethrough postprocessing:\n// merge adjacent text nodes into one and re-calculate all token levels\n//\n// This is necessary because initially emphasis delimiter markers (*, _, ~)\n// are treated as their own separate text tokens. Then emphasis rule either\n// leaves them as text (needed to merge with adjacent text) or turns them\n// into opening/closing tags (which messes up levels inside).\n//\n\nexport default function fragments_join (state) {\n  let curr, last\n  let level = 0\n  const tokens = state.tokens\n  const max = state.tokens.length\n\n  for (curr = last = 0; curr < max; curr++) {\n    // re-calculate levels after emphasis/strikethrough turns some text nodes\n    // into opening/closing tags\n    if (tokens[curr].nesting < 0) level-- // closing tag\n    tokens[curr].level = level\n    if (tokens[curr].nesting > 0) level++ // opening tag\n\n    if (tokens[curr].type === 'text' &&\n        curr + 1 < max &&\n        tokens[curr + 1].type === 'text') {\n      // collapse two adjacent text nodes\n      tokens[curr + 1].content = tokens[curr].content + tokens[curr + 1].content\n    } else {\n      if (curr !== last) { tokens[last] = tokens[curr] }\n\n      last++\n    }\n  }\n\n  if (curr !== last) {\n    tokens.length = last\n  }\n}\n"],"names":["fragments_join","state","curr","last","level","tokens","max"],"mappings":"AASe,SAASA,EAAgBC,GAAO;AAC7C,MAAIC,GAAMC,GACNC,IAAQ;AACZ,QAAMC,IAASJ,EAAM,QACfK,IAAML,EAAM,OAAO;AAEzB,OAAKC,IAAOC,IAAO,GAAGD,IAAOI,GAAKJ;AAGhC,IAAIG,EAAOH,CAAI,EAAE,UAAU,KAAGE,KAC9BC,EAAOH,CAAI,EAAE,QAAQE,GACjBC,EAAOH,CAAI,EAAE,UAAU,KAAGE,KAE1BC,EAAOH,CAAI,EAAE,SAAS,UACtBA,IAAO,IAAII,KACXD,EAAOH,IAAO,CAAC,EAAE,SAAS,SAE5BG,EAAOH,IAAO,CAAC,EAAE,UAAUG,EAAOH,CAAI,EAAE,UAAUG,EAAOH,IAAO,CAAC,EAAE,WAE/DA,MAASC,MAAQE,EAAOF,CAAI,IAAIE,EAAOH,CAAI,IAE/CC;AAIJ,EAAID,MAASC,MACXE,EAAO,SAASF;AAEpB;","x_google_ignoreList":[0]}