{"version":3,"file":"textile-CCW3yDUP.cjs","sources":["../../../node_modules/@codemirror/legacy-modes/mode/textile.js"],"sourcesContent":["var TOKEN_STYLES = {\n  addition: \"inserted\",\n  attributes: \"propertyName\",\n  bold: \"strong\",\n  cite: \"keyword\",\n  code: \"monospace\",\n  definitionList: \"list\",\n  deletion: \"deleted\",\n  div: \"punctuation\",\n  em: \"emphasis\",\n  footnote: \"variable\",\n  footCite: \"qualifier\",\n  header: \"heading\",\n  html: \"comment\",\n  image: \"atom\",\n  italic: \"emphasis\",\n  link: \"link\",\n  linkDefinition: \"link\",\n  list1: \"list\",\n  list2: \"list.special\",\n  list3: \"list\",\n  notextile: \"string.special\",\n  pre: \"operator\",\n  p: \"content\",\n  quote: \"bracket\",\n  span: \"quote\",\n  specialChar: \"character\",\n  strong: \"strong\",\n  sub: \"content.special\",\n  sup: \"content.special\",\n  table: \"variableName.special\",\n  tableHeading: \"operator\"\n};\n\nfunction startNewLine(stream, state) {\n  state.mode = Modes.newLayout;\n  state.tableHeading = false;\n\n  if (state.layoutType === \"definitionList\" && state.spanningLayout &&\n      stream.match(RE(\"definitionListEnd\"), false))\n    state.spanningLayout = false;\n}\n\nfunction handlePhraseModifier(stream, state, ch) {\n  if (ch === \"_\") {\n    if (stream.eat(\"_\"))\n      return togglePhraseModifier(stream, state, \"italic\", /__/, 2);\n    else\n      return togglePhraseModifier(stream, state, \"em\", /_/, 1);\n  }\n\n  if (ch === \"*\") {\n    if (stream.eat(\"*\")) {\n      return togglePhraseModifier(stream, state, \"bold\", /\\*\\*/, 2);\n    }\n    return togglePhraseModifier(stream, state, \"strong\", /\\*/, 1);\n  }\n\n  if (ch === \"[\") {\n    if (stream.match(/\\d+\\]/)) state.footCite = true;\n    return tokenStyles(state);\n  }\n\n  if (ch === \"(\") {\n    var spec = stream.match(/^(r|tm|c)\\)/);\n    if (spec)\n      return TOKEN_STYLES.specialChar\n  }\n\n  if (ch === \"<\" && stream.match(/(\\w+)[^>]+>[^<]+<\\/\\1>/))\n    return TOKEN_STYLES.html\n\n  if (ch === \"?\" && stream.eat(\"?\"))\n    return togglePhraseModifier(stream, state, \"cite\", /\\?\\?/, 2);\n\n  if (ch === \"=\" && stream.eat(\"=\"))\n    return togglePhraseModifier(stream, state, \"notextile\", /==/, 2);\n\n  if (ch === \"-\" && !stream.eat(\"-\"))\n    return togglePhraseModifier(stream, state, \"deletion\", /-/, 1);\n\n  if (ch === \"+\")\n    return togglePhraseModifier(stream, state, \"addition\", /\\+/, 1);\n\n  if (ch === \"~\")\n    return togglePhraseModifier(stream, state, \"sub\", /~/, 1);\n\n  if (ch === \"^\")\n    return togglePhraseModifier(stream, state, \"sup\", /\\^/, 1);\n\n  if (ch === \"%\")\n    return togglePhraseModifier(stream, state, \"span\", /%/, 1);\n\n  if (ch === \"@\")\n    return togglePhraseModifier(stream, state, \"code\", /@/, 1);\n\n  if (ch === \"!\") {\n    var type = togglePhraseModifier(stream, state, \"image\", /(?:\\([^\\)]+\\))?!/, 1);\n    stream.match(/^:\\S+/); // optional Url portion\n    return type;\n  }\n  return tokenStyles(state);\n}\n\nfunction togglePhraseModifier(stream, state, phraseModifier, closeRE, openSize) {\n  var charBefore = stream.pos > openSize ? stream.string.charAt(stream.pos - openSize - 1) : null;\n  var charAfter = stream.peek();\n  if (state[phraseModifier]) {\n    if ((!charAfter || /\\W/.test(charAfter)) && charBefore && /\\S/.test(charBefore)) {\n      var type = tokenStyles(state);\n      state[phraseModifier] = false;\n      return type;\n    }\n  } else if ((!charBefore || /\\W/.test(charBefore)) && charAfter && /\\S/.test(charAfter) &&\n             stream.match(new RegExp(\"^.*\\\\S\" + closeRE.source + \"(?:\\\\W|$)\"), false)) {\n    state[phraseModifier] = true;\n    state.mode = Modes.attributes;\n  }\n  return tokenStyles(state);\n};\n\nfunction tokenStyles(state) {\n  var disabled = textileDisabled(state);\n  if (disabled) return disabled;\n\n  var styles = [];\n  if (state.layoutType) styles.push(TOKEN_STYLES[state.layoutType]);\n\n  styles = styles.concat(activeStyles(\n    state, \"addition\", \"bold\", \"cite\", \"code\", \"deletion\", \"em\", \"footCite\",\n    \"image\", \"italic\", \"link\", \"span\", \"strong\", \"sub\", \"sup\", \"table\", \"tableHeading\"));\n\n  if (state.layoutType === \"header\")\n    styles.push(TOKEN_STYLES.header + \"-\" + state.header);\n\n  return styles.length ? styles.join(\" \") : null;\n}\n\nfunction textileDisabled(state) {\n  var type = state.layoutType;\n\n  switch(type) {\n  case \"notextile\":\n  case \"code\":\n  case \"pre\":\n    return TOKEN_STYLES[type];\n  default:\n    if (state.notextile)\n      return TOKEN_STYLES.notextile + (type ? (\" \" + TOKEN_STYLES[type]) : \"\");\n    return null;\n  }\n}\n\nfunction activeStyles(state) {\n  var styles = [];\n  for (var i = 1; i < arguments.length; ++i) {\n    if (state[arguments[i]])\n      styles.push(TOKEN_STYLES[arguments[i]]);\n  }\n  return styles;\n}\n\nfunction blankLine(state) {\n  var spanningLayout = state.spanningLayout, type = state.layoutType;\n\n  for (var key in state) if (state.hasOwnProperty(key))\n    delete state[key];\n\n  state.mode = Modes.newLayout;\n  if (spanningLayout) {\n    state.layoutType = type;\n    state.spanningLayout = true;\n  }\n}\n\nvar REs = {\n  cache: {},\n  single: {\n    bc: \"bc\",\n    bq: \"bq\",\n    definitionList: /- .*?:=+/,\n    definitionListEnd: /.*=:\\s*$/,\n    div: \"div\",\n    drawTable: /\\|.*\\|/,\n    foot: /fn\\d+/,\n    header: /h[1-6]/,\n    html: /\\s*<(?:\\/)?(\\w+)(?:[^>]+)?>(?:[^<]+<\\/\\1>)?/,\n    link: /[^\"]+\":\\S/,\n    linkDefinition: /\\[[^\\s\\]]+\\]\\S+/,\n    list: /(?:#+|\\*+)/,\n    notextile: \"notextile\",\n    para: \"p\",\n    pre: \"pre\",\n    table: \"table\",\n    tableCellAttributes: /[\\/\\\\]\\d+/,\n    tableHeading: /\\|_\\./,\n    tableText: /[^\"_\\*\\[\\(\\?\\+~\\^%@|-]+/,\n    text: /[^!\"_=\\*\\[\\(<\\?\\+~\\^%@-]+/\n  },\n  attributes: {\n    align: /(?:<>|<|>|=)/,\n    selector: /\\([^\\(][^\\)]+\\)/,\n    lang: /\\[[^\\[\\]]+\\]/,\n    pad: /(?:\\(+|\\)+){1,2}/,\n    css: /\\{[^\\}]+\\}/\n  },\n  createRe: function(name) {\n    switch (name) {\n    case \"drawTable\":\n      return REs.makeRe(\"^\", REs.single.drawTable, \"$\");\n    case \"html\":\n      return REs.makeRe(\"^\", REs.single.html, \"(?:\", REs.single.html, \")*\", \"$\");\n    case \"linkDefinition\":\n      return REs.makeRe(\"^\", REs.single.linkDefinition, \"$\");\n    case \"listLayout\":\n      return REs.makeRe(\"^\", REs.single.list, RE(\"allAttributes\"), \"*\\\\s+\");\n    case \"tableCellAttributes\":\n      return REs.makeRe(\"^\", REs.choiceRe(REs.single.tableCellAttributes,\n                                          RE(\"allAttributes\")), \"+\\\\.\");\n    case \"type\":\n      return REs.makeRe(\"^\", RE(\"allTypes\"));\n    case \"typeLayout\":\n      return REs.makeRe(\"^\", RE(\"allTypes\"), RE(\"allAttributes\"),\n                        \"*\\\\.\\\\.?\", \"(\\\\s+|$)\");\n    case \"attributes\":\n      return REs.makeRe(\"^\", RE(\"allAttributes\"), \"+\");\n\n    case \"allTypes\":\n      return REs.choiceRe(REs.single.div, REs.single.foot,\n                          REs.single.header, REs.single.bc, REs.single.bq,\n                          REs.single.notextile, REs.single.pre, REs.single.table,\n                          REs.single.para);\n\n    case \"allAttributes\":\n      return REs.choiceRe(REs.attributes.selector, REs.attributes.css,\n                          REs.attributes.lang, REs.attributes.align, REs.attributes.pad);\n\n    default:\n      return REs.makeRe(\"^\", REs.single[name]);\n    }\n  },\n  makeRe: function() {\n    var pattern = \"\";\n    for (var i = 0; i < arguments.length; ++i) {\n      var arg = arguments[i];\n      pattern += (typeof arg === \"string\") ? arg : arg.source;\n    }\n    return new RegExp(pattern);\n  },\n  choiceRe: function() {\n    var parts = [arguments[0]];\n    for (var i = 1; i < arguments.length; ++i) {\n      parts[i * 2 - 1] = \"|\";\n      parts[i * 2] = arguments[i];\n    }\n\n    parts.unshift(\"(?:\");\n    parts.push(\")\");\n    return REs.makeRe.apply(null, parts);\n  }\n};\n\nfunction RE(name) {\n  return (REs.cache[name] || (REs.cache[name] = REs.createRe(name)));\n}\n\nvar Modes = {\n  newLayout: function(stream, state) {\n    if (stream.match(RE(\"typeLayout\"), false)) {\n      state.spanningLayout = false;\n      return (state.mode = Modes.blockType)(stream, state);\n    }\n    var newMode;\n    if (!textileDisabled(state)) {\n      if (stream.match(RE(\"listLayout\"), false))\n        newMode = Modes.list;\n      else if (stream.match(RE(\"drawTable\"), false))\n        newMode = Modes.table;\n      else if (stream.match(RE(\"linkDefinition\"), false))\n        newMode = Modes.linkDefinition;\n      else if (stream.match(RE(\"definitionList\")))\n        newMode = Modes.definitionList;\n      else if (stream.match(RE(\"html\"), false))\n        newMode = Modes.html;\n    }\n    return (state.mode = (newMode || Modes.text))(stream, state);\n  },\n\n  blockType: function(stream, state) {\n    var match, type;\n    state.layoutType = null;\n\n    if (match = stream.match(RE(\"type\")))\n      type = match[0];\n    else\n      return (state.mode = Modes.text)(stream, state);\n\n    if (match = type.match(RE(\"header\"))) {\n      state.layoutType = \"header\";\n      state.header = parseInt(match[0][1]);\n    } else if (type.match(RE(\"bq\"))) {\n      state.layoutType = \"quote\";\n    } else if (type.match(RE(\"bc\"))) {\n      state.layoutType = \"code\";\n    } else if (type.match(RE(\"foot\"))) {\n      state.layoutType = \"footnote\";\n    } else if (type.match(RE(\"notextile\"))) {\n      state.layoutType = \"notextile\";\n    } else if (type.match(RE(\"pre\"))) {\n      state.layoutType = \"pre\";\n    } else if (type.match(RE(\"div\"))) {\n      state.layoutType = \"div\";\n    } else if (type.match(RE(\"table\"))) {\n      state.layoutType = \"table\";\n    }\n\n    state.mode = Modes.attributes;\n    return tokenStyles(state);\n  },\n\n  text: function(stream, state) {\n    if (stream.match(RE(\"text\"))) return tokenStyles(state);\n\n    var ch = stream.next();\n    if (ch === '\"')\n      return (state.mode = Modes.link)(stream, state);\n    return handlePhraseModifier(stream, state, ch);\n  },\n\n  attributes: function(stream, state) {\n    state.mode = Modes.layoutLength;\n\n    if (stream.match(RE(\"attributes\")))\n      return TOKEN_STYLES.attributes\n    else\n      return tokenStyles(state);\n  },\n\n  layoutLength: function(stream, state) {\n    if (stream.eat(\".\") && stream.eat(\".\"))\n      state.spanningLayout = true;\n\n    state.mode = Modes.text;\n    return tokenStyles(state);\n  },\n\n  list: function(stream, state) {\n    var match = stream.match(RE(\"list\"));\n    state.listDepth = match[0].length;\n    var listMod = (state.listDepth - 1) % 3;\n    if (!listMod)\n      state.layoutType = \"list1\";\n    else if (listMod === 1)\n      state.layoutType = \"list2\";\n    else\n      state.layoutType = \"list3\";\n\n    state.mode = Modes.attributes;\n    return tokenStyles(state);\n  },\n\n  link: function(stream, state) {\n    state.mode = Modes.text;\n    if (stream.match(RE(\"link\"))) {\n      stream.match(/\\S+/);\n      return TOKEN_STYLES.link\n    }\n    return tokenStyles(state);\n  },\n\n  linkDefinition: function(stream) {\n    stream.skipToEnd();\n    return TOKEN_STYLES.linkDefinition\n  },\n\n  definitionList: function(stream, state) {\n    stream.match(RE(\"definitionList\"));\n\n    state.layoutType = \"definitionList\";\n\n    if (stream.match(/\\s*$/))\n      state.spanningLayout = true;\n    else\n      state.mode = Modes.attributes;\n\n    return tokenStyles(state);\n  },\n\n  html: function(stream) {\n    stream.skipToEnd();\n    return TOKEN_STYLES.html\n  },\n\n  table: function(stream, state) {\n    state.layoutType = \"table\";\n    return (state.mode = Modes.tableCell)(stream, state);\n  },\n\n  tableCell: function(stream, state) {\n    if (stream.match(RE(\"tableHeading\")))\n      state.tableHeading = true;\n    else\n      stream.eat(\"|\");\n\n    state.mode = Modes.tableCellAttributes;\n    return tokenStyles(state);\n  },\n\n  tableCellAttributes: function(stream, state) {\n    state.mode = Modes.tableText;\n\n    if (stream.match(RE(\"tableCellAttributes\")))\n      return TOKEN_STYLES.attributes\n    else\n      return tokenStyles(state);\n  },\n\n  tableText: function(stream, state) {\n    if (stream.match(RE(\"tableText\")))\n      return tokenStyles(state);\n\n    if (stream.peek() === \"|\") { // end of cell\n      state.mode = Modes.tableCell;\n      return tokenStyles(state);\n    }\n    return handlePhraseModifier(stream, state, stream.next());\n  }\n};\n\nexport const textile = {\n  name: \"textile\",\n  startState: function() {\n    return { mode: Modes.newLayout };\n  },\n  token: function(stream, state) {\n    if (stream.sol()) startNewLine(stream, state);\n    return state.mode(stream, state);\n  },\n  blankLine: blankLine\n};\n"],"names":["TOKEN_STYLES","addition","attributes","bold","cite","code","definitionList","deletion","div","em","footnote","footCite","header","html","image","italic","link","linkDefinition","list1","list2","list3","notextile","pre","p","quote","span","specialChar","strong","sub","sup","table","tableHeading","handlePhraseModifier","stream","state","ch","eat","togglePhraseModifier","match","tokenStyles","type","phraseModifier","closeRE","openSize","charBefore","pos","string","charAt","charAfter","peek","test","RegExp","source","mode","Modes","disabled","textileDisabled","styles","layoutType","push","concat","i","arguments","length","activeStyles","join","REs","cache","single","bc","bq","definitionListEnd","drawTable","foot","list","para","tableCellAttributes","tableText","text","align","selector","lang","pad","css","createRe","name","makeRe","RE","choiceRe","pattern","arg","parts","unshift","apply","newLayout","spanningLayout","blockType","newMode","parseInt","next","layoutLength","listDepth","listMod","skipToEnd","tableCell","textile","startState","token","sol","startNewLine","blankLine","key","hasOwnProperty"],"mappings":"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","x_google_ignoreList":[0]}