1{"version":3,"sources":["../../node_modules/codemirror/mode/mbox/mbox.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","rfc2822","rfc2822NoEmail","registerHelper","concat","whitespace","separator","rfc2822Header","RegExp","join","rfc2822HeaderNoEmail","header","email","untilEmail","bracketedEmail","untilBracketedEmail","styleForHeader","readToken","stream","state","sol","inSeparator","inHeader","match","inHeaders","emailPermitted","skipToEnd","style","defineMode","startState","token","blankLine","defineMIME"],"mappings":"CAGA,SAAUA,GACR,SAAWC,UAAW,gBAAmBC,SAAU,SACjDF,EAAIG,QAAQ,6BACT,UAAWC,SAAU,YAAcA,OAAOC,IAC7CD,QAAQ,wBAAyBJ,OAEjCA,GAAIM,cACL,SAASA,GACZ,YAEA,IAAIC,IACF,OAAQ,SAAU,WAAY,KAAM,KAAM,MAAO,aACjD,cAAe,aAAc,cAAe,gBAAiB,YAC7D,YAAa,aAAc,oBAAqB,cAAe,WAEjE,IAAIC,IACF,OAAQ,UAAW,WAAY,WAAY,cAG7CF,GAAWG,eAAe,YAAa,OAAQF,EAAQG,OAAOF,GAE9D,IAAIG,GAAa,QACjB,IAAIC,GAAY,QAChB,IAAIC,GAAgB,GAAIC,QAAO,KAAOP,EAAQQ,KAAK,KAAO,MAC1D,IAAIC,GAAuB,GAAIF,QAAO,KAAON,EAAeO,KAAK,KAAO,MACxE,IAAIE,GAAS,SACb,IAAIC,GAAQ,cACZ,IAAIC,GAAa,sBACjB,IAAIC,GAAiB,QACrB,IAAIC,GAAsB,cAE1B,SAASC,GAAeL,GACtB,GAAIA,IAAW,UAAW,MAAO,QACjC,OAAO,SAGT,QAASM,GAAUC,EAAQC,GACzB,GAAID,EAAOE,MAAO,CAEhBD,EAAME,YAAc,KACpB,IAAIF,EAAMG,UAAYJ,EAAOK,MAAMlB,GAAa,CAE9C,MAAO,UACF,CACLc,EAAMG,SAAW,KACjBH,GAAMR,OAAS,KAGjB,GAAIO,EAAOK,MAAMjB,GAAY,CAC3Ba,EAAMK,UAAY,IAClBL,GAAME,YAAc,IACpB,OAAO,OAGT,GAAIE,EACJ,IAAIE,GAAiB,KACrB,KAAKF,EAAQL,EAAOK,MAAMb,MACrBe,EAAiB,QAAUF,EAAQL,EAAOK,MAAMhB,IAAiB,CACpEY,EAAMK,UAAY,IAClBL,GAAMG,SAAW,IACjBH,GAAMM,eAAiBA,CACvBN,GAAMR,OAASY,EAAM,EACrB,OAAO,OAKT,GAAIJ,EAAMK,YAAcD,EAAQL,EAAOK,MAAMZ,IAAU,CACrDQ,EAAMG,SAAW,IACjBH,GAAMM,eAAiB,IACvBN,GAAMR,OAASY,EAAM,EACrB,OAAO,OAGTJ,EAAMK,UAAY,KAClBN,GAAOQ,WACP,OAAO,MAGT,GAAIP,EAAME,YAAa,CACrB,GAAIH,EAAOK,MAAMX,GAAQ,MAAO,MAChC,IAAIM,EAAOK,MAAMV,GAAa,MAAO,MACrCK,GAAOQ,WACP,OAAO,OAGT,GAAIP,EAAMG,SAAU,CAClB,GAAIK,GAAQX,EAAeG,EAAMR,OAEjC,IAAIQ,EAAMM,eAAgB,CACxB,GAAIP,EAAOK,MAAMT,GAAiB,MAAOa,GAAQ,OACjD,IAAIT,EAAOK,MAAMR,GAAsB,MAAOY,GAEhDT,EAAOQ,WACP,OAAOC,GAGTT,EAAOQ,WACP,OAAO,MAGT1B,EAAW4B,WAAW,OAAQ,WAC5B,OACEC,WAAY,WACV,OAEER,YAAa,MAEbC,SAAU,MAEVG,eAAgB,MAEhBd,OAAQ,KAERa,UAAW,QAGfM,MAAOb,EACPc,UAAW,SAASZ,GAClBA,EAAMK,UAAYL,EAAME,YAAcF,EAAMG,SAAW,SAK7DtB,GAAWgC,WAAW,mBAAoB","file":"mbox.min.js","sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nvar rfc2822 = [\n  \"From\", \"Sender\", \"Reply-To\", \"To\", \"Cc\", \"Bcc\", \"Message-ID\",\n  \"In-Reply-To\", \"References\", \"Resent-From\", \"Resent-Sender\", \"Resent-To\",\n  \"Resent-Cc\", \"Resent-Bcc\", \"Resent-Message-ID\", \"Return-Path\", \"Received\"\n];\nvar rfc2822NoEmail = [\n  \"Date\", \"Subject\", \"Comments\", \"Keywords\", \"Resent-Date\"\n];\n\nCodeMirror.registerHelper(\"hintWords\", \"mbox\", rfc2822.concat(rfc2822NoEmail));\n\nvar whitespace = /^[ \\t]/;\nvar separator = /^From /; // See RFC 4155\nvar rfc2822Header = new RegExp(\"^(\" + rfc2822.join(\"|\") + \"): \");\nvar rfc2822HeaderNoEmail = new RegExp(\"^(\" + rfc2822NoEmail.join(\"|\") + \"): \");\nvar header = /^[^:]+:/; // Optional fields defined in RFC 2822\nvar email = /^[^ ]+@[^ ]+/;\nvar untilEmail = /^.*?(?=[^ ]+?@[^ ]+)/;\nvar bracketedEmail = /^<.*?>/;\nvar untilBracketedEmail = /^.*?(?=<.*>)/;\n\nfunction styleForHeader(header) {\n  if (header === \"Subject\") return \"header\";\n  return \"string\";\n}\n\nfunction readToken(stream, state) {\n  if (stream.sol()) {\n    // From last line\n    state.inSeparator = false;\n    if (state.inHeader && stream.match(whitespace)) {\n      // Header folding\n      return null;\n    } else {\n      state.inHeader = false;\n      state.header = null;\n    }\n\n    if (stream.match(separator)) {\n      state.inHeaders = true;\n      state.inSeparator = true;\n      return \"atom\";\n    }\n\n    var match;\n    var emailPermitted = false;\n    if ((match = stream.match(rfc2822HeaderNoEmail)) ||\n        (emailPermitted = true) && (match = stream.match(rfc2822Header))) {\n      state.inHeaders = true;\n      state.inHeader = true;\n      state.emailPermitted = emailPermitted;\n      state.header = match[1];\n      return \"atom\";\n    }\n\n    // Use vim's heuristics: recognize custom headers only if the line is in a\n    // block of legitimate headers.\n    if (state.inHeaders && (match = stream.match(header))) {\n      state.inHeader = true;\n      state.emailPermitted = true;\n      state.header = match[1];\n      return \"atom\";\n    }\n\n    state.inHeaders = false;\n    stream.skipToEnd();\n    return null;\n  }\n\n  if (state.inSeparator) {\n    if (stream.match(email)) return \"link\";\n    if (stream.match(untilEmail)) return \"atom\";\n    stream.skipToEnd();\n    return \"atom\";\n  }\n\n  if (state.inHeader) {\n    var style = styleForHeader(state.header);\n\n    if (state.emailPermitted) {\n      if (stream.match(bracketedEmail)) return style + \" link\";\n      if (stream.match(untilBracketedEmail)) return style;\n    }\n    stream.skipToEnd();\n    return style;\n  }\n\n  stream.skipToEnd();\n  return null;\n};\n\nCodeMirror.defineMode(\"mbox\", function() {\n  return {\n    startState: function() {\n      return {\n        // Is in a mbox separator\n        inSeparator: false,\n        // Is in a mail header\n        inHeader: false,\n        // If bracketed email is permitted. Only applicable when inHeader\n        emailPermitted: false,\n        // Name of current header\n        header: null,\n        // Is in a region of mail headers\n        inHeaders: false\n      };\n    },\n    token: readToken,\n    blankLine: function(state) {\n      state.inHeaders = state.inSeparator = state.inHeader = false;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"application/mbox\", \"mbox\");\n});\n"]}