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"]}