1{"version":3,"sources":["../../node_modules/codemirror/mode/solr/solr.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","defineMode","isStringChar","isOperatorChar","isOperatorString","isNumber","word","parseFloat","toString","tokenString","quote","stream","state","escaped","next","tokenize","tokenBase","tokenOperator","operator","style","eat","tokenWord","ch","peek","match","test","startState","token","eatSpace","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,YAEAA,GAAWC,WAAW,OAAQ,WAC5B,YAEA,IAAIC,GAAe,2CACnB,IAAIC,GAAiB,sBACrB,IAAIC,GAAmB,oBAEvB,SAASC,GAASC,GAChB,MAAOC,YAAWD,GAAME,aAAeF,EAGzC,QAASG,GAAYC,GACnB,MAAO,UAASC,EAAQC,GACtB,GAAIC,GAAU,MAAOC,CACrB,QAAQA,EAAOH,EAAOG,SAAW,KAAM,CACrC,GAAIA,GAAQJ,IAAUG,EAAS,KAC/BA,IAAWA,GAAWC,GAAQ,KAGhC,IAAKD,EAASD,EAAMG,SAAWC,CAC/B,OAAO,UAIX,QAASC,GAAcC,GACrB,MAAO,UAASP,EAAQC,GACtB,GAAIO,GAAQ,UACZ,IAAID,GAAY,IACdC,GAAS,gBACN,IAAID,GAAY,IACnBC,GAAS,gBACN,IAAID,GAAY,IACnBP,EAAOS,IAAI,UACR,IAAIF,GAAY,IACnBP,EAAOS,IAAI,UACR,IAAIF,GAAY,IACnBC,GAAS,QAEXP,GAAMG,SAAWC,CACjB,OAAOG,IAIX,QAASE,GAAUC,GACjB,MAAO,UAASX,EAAQC,GACtB,GAAIN,GAAOgB,CACX,QAAQA,EAAKX,EAAOY,SAAWD,EAAGE,MAAMtB,IAAiB,KAAM,CAC7DI,GAAQK,EAAOG,OAGjBF,EAAMG,SAAWC,CACjB,IAAIZ,EAAiBqB,KAAKnB,GACxB,MAAO,eACJ,IAAID,EAASC,GAChB,MAAO,aACJ,IAAIK,EAAOY,QAAU,IACxB,MAAO,YAEP,OAAO,UAIb,QAASP,GAAUL,EAAQC,GACzB,GAAIU,GAAKX,EAAOG,MAChB,IAAIQ,GAAM,IACRV,EAAMG,SAAWN,EAAYa,OAC1B,IAAInB,EAAesB,KAAKH,GAC3BV,EAAMG,SAAWE,EAAcK,OAC5B,IAAIpB,EAAauB,KAAKH,GACzBV,EAAMG,SAAWM,EAAUC,EAE7B,OAAQV,GAAMG,UAAYC,EAAaJ,EAAMG,SAASJ,EAAQC,GAAS,KAGzE,OACEc,WAAY,WACV,OACEX,SAAUC,IAIdW,MAAO,SAAShB,EAAQC,GACtB,GAAID,EAAOiB,WAAY,MAAO,KAC9B,OAAOhB,GAAMG,SAASJ,EAAQC,MAKpCZ,GAAW6B,WAAW,cAAe","file":"solr.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\nCodeMirror.defineMode(\"solr\", function() {\n  \"use strict\";\n\n  var isStringChar = /[^\\s\\|\\!\\+\\-\\*\\?\\~\\^\\&\\:\\(\\)\\[\\]\\{\\}\\\"\\\\]/;\n  var isOperatorChar = /[\\|\\!\\+\\-\\*\\?\\~\\^\\&]/;\n  var isOperatorString = /^(OR|AND|NOT|TO)$/i;\n\n  function isNumber(word) {\n    return parseFloat(word).toString() === word;\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) break;\n        escaped = !escaped && next == \"\\\\\";\n      }\n\n      if (!escaped) state.tokenize = tokenBase;\n      return \"string\";\n    };\n  }\n\n  function tokenOperator(operator) {\n    return function(stream, state) {\n      var style = \"operator\";\n      if (operator == \"+\")\n        style += \" positive\";\n      else if (operator == \"-\")\n        style += \" negative\";\n      else if (operator == \"|\")\n        stream.eat(/\\|/);\n      else if (operator == \"&\")\n        stream.eat(/\\&/);\n      else if (operator == \"^\")\n        style += \" boost\";\n\n      state.tokenize = tokenBase;\n      return style;\n    };\n  }\n\n  function tokenWord(ch) {\n    return function(stream, state) {\n      var word = ch;\n      while ((ch = stream.peek()) && ch.match(isStringChar) != null) {\n        word += stream.next();\n      }\n\n      state.tokenize = tokenBase;\n      if (isOperatorString.test(word))\n        return \"operator\";\n      else if (isNumber(word))\n        return \"number\";\n      else if (stream.peek() == \":\")\n        return \"field\";\n      else\n        return \"string\";\n    };\n  }\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == '\"')\n      state.tokenize = tokenString(ch);\n    else if (isOperatorChar.test(ch))\n      state.tokenize = tokenOperator(ch);\n    else if (isStringChar.test(ch))\n      state.tokenize = tokenWord(ch);\n\n    return (state.tokenize != tokenBase) ? state.tokenize(stream, state) : null;\n  }\n\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase\n      };\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      return state.tokenize(stream, state);\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-solr\", \"solr\");\n\n});\n"]}