{"version":3,"file":"strikethrough.mjs","sources":["../../../../../../node_modules/markdown-it/lib/rules_inline/strikethrough.mjs"],"sourcesContent":["// ~~strike through~~\n//\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nfunction strikethrough_tokenize (state, silent) {\n  const start = state.pos\n  const marker = state.src.charCodeAt(start)\n\n  if (silent) { return false }\n\n  if (marker !== 0x7E/* ~ */) { return false }\n\n  const scanned = state.scanDelims(state.pos, true)\n  let len = scanned.length\n  const ch = String.fromCharCode(marker)\n\n  if (len < 2) { return false }\n\n  let token\n\n  if (len % 2) {\n    token         = state.push('text', '', 0)\n    token.content = ch\n    len--\n  }\n\n  for (let i = 0; i < len; i += 2) {\n    token         = state.push('text', '', 0)\n    token.content = ch + ch\n\n    state.delimiters.push({\n      marker,\n      length: 0,     // disable \"rule of 3\" length checks meant for emphasis\n      token: state.tokens.length - 1,\n      end: -1,\n      open: scanned.can_open,\n      close: scanned.can_close\n    })\n  }\n\n  state.pos += scanned.length\n\n  return true\n}\n\nfunction postProcess (state, delimiters) {\n  let token\n  const loneMarkers = []\n  const max = delimiters.length\n\n  for (let i = 0; i < max; i++) {\n    const startDelim = delimiters[i]\n\n    if (startDelim.marker !== 0x7E/* ~ */) {\n      continue\n    }\n\n    if (startDelim.end === -1) {\n      continue\n    }\n\n    const endDelim = delimiters[startDelim.end]\n\n    token         = state.tokens[startDelim.token]\n    token.type    = 's_open'\n    token.tag     = 's'\n    token.nesting = 1\n    token.markup  = '~~'\n    token.content = ''\n\n    token         = state.tokens[endDelim.token]\n    token.type    = 's_close'\n    token.tag     = 's'\n    token.nesting = -1\n    token.markup  = '~~'\n    token.content = ''\n\n    if (state.tokens[endDelim.token - 1].type === 'text' &&\n        state.tokens[endDelim.token - 1].content === '~') {\n      loneMarkers.push(endDelim.token - 1)\n    }\n  }\n\n  // If a marker sequence has an odd number of characters, it's splitted\n  // like this: `~~~~~` -> `~` + `~~` + `~~`, leaving one marker at the\n  // start of the sequence.\n  //\n  // So, we have to move all those markers after subsequent s_close tags.\n  //\n  while (loneMarkers.length) {\n    const i = loneMarkers.pop()\n    let j = i + 1\n\n    while (j < state.tokens.length && state.tokens[j].type === 's_close') {\n      j++\n    }\n\n    j--\n\n    if (i !== j) {\n      token = state.tokens[j]\n      state.tokens[j] = state.tokens[i]\n      state.tokens[i] = token\n    }\n  }\n}\n\n// Walk through delimiter list and replace text tokens with tags\n//\nfunction strikethrough_postProcess (state) {\n  const tokens_meta = state.tokens_meta\n  const max = state.tokens_meta.length\n\n  postProcess(state, state.delimiters)\n\n  for (let curr = 0; curr < max; curr++) {\n    if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n      postProcess(state, tokens_meta[curr].delimiters)\n    }\n  }\n}\n\nexport default {\n  tokenize: strikethrough_tokenize,\n  postProcess: strikethrough_postProcess\n}\n"],"names":["strikethrough_tokenize","state","silent","start","marker","scanned","len","ch","token","i","postProcess","delimiters","loneMarkers","max","startDelim","endDelim","j","strikethrough_postProcess","tokens_meta","curr","r_strikethrough"],"mappings":"AAKA,SAASA,EAAwBC,GAAOC,GAAQ;AAC9C,QAAMC,IAAQF,EAAM,KACdG,IAASH,EAAM,IAAI,WAAWE,CAAK;AAIzC,MAFID,KAEAE,MAAW;AAAe,WAAO;AAErC,QAAMC,IAAUJ,EAAM,WAAWA,EAAM,KAAK,EAAI;AAChD,MAAIK,IAAMD,EAAQ;AAClB,QAAME,IAAK,OAAO,aAAaH,CAAM;AAErC,MAAIE,IAAM;AAAK,WAAO;AAEtB,MAAIE;AAEJ,EAAIF,IAAM,MACRE,IAAgBP,EAAM,KAAK,QAAQ,IAAI,CAAC,GACxCO,EAAM,UAAUD,GAChBD;AAGF,WAASG,IAAI,GAAGA,IAAIH,GAAKG,KAAK;AAC5B,IAAAD,IAAgBP,EAAM,KAAK,QAAQ,IAAI,CAAC,GACxCO,EAAM,UAAUD,IAAKA,GAErBN,EAAM,WAAW,KAAK;AAAA,MACpB,QAAAG;AAAA,MACA,QAAQ;AAAA;AAAA,MACR,OAAOH,EAAM,OAAO,SAAS;AAAA,MAC7B,KAAK;AAAA,MACL,MAAMI,EAAQ;AAAA,MACd,OAAOA,EAAQ;AAAA,IACrB,CAAK;AAGH,SAAAJ,EAAM,OAAOI,EAAQ,QAEd;AACT;AAEA,SAASK,EAAaT,GAAOU,GAAY;AACvC,MAAIH;AACJ,QAAMI,IAAc,CAAA,GACdC,IAAMF,EAAW;AAEvB,WAASF,IAAI,GAAGA,IAAII,GAAKJ,KAAK;AAC5B,UAAMK,IAAaH,EAAWF,CAAC;AAM/B,QAJIK,EAAW,WAAW,OAItBA,EAAW,QAAQ;AACrB;AAGF,UAAMC,IAAWJ,EAAWG,EAAW,GAAG;AAE1C,IAAAN,IAAgBP,EAAM,OAAOa,EAAW,KAAK,GAC7CN,EAAM,OAAU,UAChBA,EAAM,MAAU,KAChBA,EAAM,UAAU,GAChBA,EAAM,SAAU,MAChBA,EAAM,UAAU,IAEhBA,IAAgBP,EAAM,OAAOc,EAAS,KAAK,GAC3CP,EAAM,OAAU,WAChBA,EAAM,MAAU,KAChBA,EAAM,UAAU,IAChBA,EAAM,SAAU,MAChBA,EAAM,UAAU,IAEZP,EAAM,OAAOc,EAAS,QAAQ,CAAC,EAAE,SAAS,UAC1Cd,EAAM,OAAOc,EAAS,QAAQ,CAAC,EAAE,YAAY,OAC/CH,EAAY,KAAKG,EAAS,QAAQ,CAAC;AAAA,EAEvC;AAQA,SAAOH,EAAY,UAAQ;AACzB,UAAMH,IAAIG,EAAY,IAAG;AACzB,QAAII,IAAIP,IAAI;AAEZ,WAAOO,IAAIf,EAAM,OAAO,UAAUA,EAAM,OAAOe,CAAC,EAAE,SAAS;AACzD,MAAAA;AAGF,IAAAA,KAEIP,MAAMO,MACRR,IAAQP,EAAM,OAAOe,CAAC,GACtBf,EAAM,OAAOe,CAAC,IAAIf,EAAM,OAAOQ,CAAC,GAChCR,EAAM,OAAOQ,CAAC,IAAID;AAAA,EAEtB;AACF;AAIA,SAASS,EAA2BhB,GAAO;AACzC,QAAMiB,IAAcjB,EAAM,aACpBY,IAAMZ,EAAM,YAAY;AAE9B,EAAAS,EAAYT,GAAOA,EAAM,UAAU;AAEnC,WAASkB,IAAO,GAAGA,IAAON,GAAKM;AAC7B,IAAID,EAAYC,CAAI,KAAKD,EAAYC,CAAI,EAAE,cACzCT,EAAYT,GAAOiB,EAAYC,CAAI,EAAE,UAAU;AAGrD;AAEA,MAAAC,IAAe;AAAA,EACb,UAAUpB;AAAA,EACV,aAAaiB;AACf;","x_google_ignoreList":[0]}