@stepzen/graphiql-proxy 0.20.1 → 0.21.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/package.json +4 -4
  2. package/src/server/api/details.js +2 -2
  3. package/src/server/api/proxy.js +14 -7
  4. package/src/server/index.js +39 -20
  5. package/src/ui/build/asset-manifest.json +6 -6
  6. package/src/ui/build/index.html +1 -1
  7. package/src/ui/build/static/css/main.4fb42d49.css +2 -0
  8. package/src/ui/build/static/css/main.4fb42d49.css.map +1 -0
  9. package/src/ui/build/static/js/0.a1da3266.chunk.js.map +1 -1
  10. package/src/ui/build/static/js/136.7849911c.chunk.js.map +1 -1
  11. package/src/ui/build/static/js/170.27296619.chunk.js.map +1 -1
  12. package/src/ui/build/static/js/190.e088a175.chunk.js.map +1 -1
  13. package/src/ui/build/static/js/267.962ef6a4.chunk.js.map +1 -1
  14. package/src/ui/build/static/js/306.cb66dc99.chunk.js.map +1 -1
  15. package/src/ui/build/static/js/316.7c2be1f0.chunk.js.map +1 -1
  16. package/src/ui/build/static/js/322.5ada89eb.chunk.js.map +1 -1
  17. package/src/ui/build/static/js/344.e6b10333.chunk.js.map +1 -1
  18. package/src/ui/build/static/js/39.dd9b3202.chunk.js.map +1 -1
  19. package/src/ui/build/static/js/430.de05cf2b.chunk.js.map +1 -1
  20. package/src/ui/build/static/js/503.a3ba392a.chunk.js.map +1 -1
  21. package/src/ui/build/static/js/580.b48b02d9.chunk.js.map +1 -1
  22. package/src/ui/build/static/js/587.f2cbe2fb.chunk.js.map +1 -1
  23. package/src/ui/build/static/js/619.cd709ae5.chunk.js.map +1 -1
  24. package/src/ui/build/static/js/658.916c9abf.chunk.js.map +1 -1
  25. package/src/ui/build/static/js/756.a915a97e.chunk.js.map +1 -1
  26. package/src/ui/build/static/js/76.0a014434.chunk.js.map +1 -1
  27. package/src/ui/build/static/js/804.118a9243.chunk.js.map +1 -1
  28. package/src/ui/build/static/js/849.f850f73b.chunk.js.map +1 -1
  29. package/src/ui/build/static/js/88.b5b4cd91.chunk.js.map +1 -1
  30. package/src/ui/build/static/js/983.df163755.chunk.js.map +1 -1
  31. package/src/ui/build/static/js/{main.20771770.js → main.6e3668a7.js} +3 -3
  32. package/src/ui/build/static/js/{main.20771770.js.LICENSE.txt → main.6e3668a7.js.LICENSE.txt} +0 -0
  33. package/src/ui/build/static/js/{main.20771770.js.map → main.6e3668a7.js.map} +1 -1
  34. package/src/ui/build/static/css/main.f9030c32.css +0 -2
  35. package/src/ui/build/static/css/main.f9030c32.css.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"static/js/322.5ada89eb.chunk.js","mappings":"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","sources":["../node_modules/codemirror/addon/hint/show-hint.js"],"sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// declare global: DOMRect\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\n var HINT_ELEMENT_CLASS = \"CodeMirror-hint\";\n var ACTIVE_HINT_ELEMENT_CLASS = \"CodeMirror-hint-active\";\n\n // This is the old interface, kept around for now to stay\n // backwards-compatible.\n CodeMirror.showHint = function(cm, getHints, options) {\n if (!getHints) return cm.showHint(options);\n if (options && options.async) getHints.async = true;\n var newOpts = {hint: getHints};\n if (options) for (var prop in options) newOpts[prop] = options[prop];\n return cm.showHint(newOpts);\n };\n\n CodeMirror.defineExtension(\"showHint\", function(options) {\n options = parseOptions(this, this.getCursor(\"start\"), options);\n var selections = this.listSelections()\n if (selections.length > 1) return;\n // By default, don't allow completion when something is selected.\n // A hint function can have a `supportsSelection` property to\n // indicate that it can handle selections.\n if (this.somethingSelected()) {\n if (!options.hint.supportsSelection) return;\n // Don't try with cross-line selections\n for (var i = 0; i < selections.length; i++)\n if (selections[i].head.line != selections[i].anchor.line) return;\n }\n\n if (this.state.completionActive) this.state.completionActive.close();\n var completion = this.state.completionActive = new Completion(this, options);\n if (!completion.options.hint) return;\n\n CodeMirror.signal(this, \"startCompletion\", this);\n completion.update(true);\n });\n\n CodeMirror.defineExtension(\"closeHint\", function() {\n if (this.state.completionActive) this.state.completionActive.close()\n })\n\n function Completion(cm, options) {\n this.cm = cm;\n this.options = options;\n this.widget = null;\n this.debounce = 0;\n this.tick = 0;\n this.startPos = this.cm.getCursor(\"start\");\n this.startLen = this.cm.getLine(this.startPos.line).length - this.cm.getSelection().length;\n\n if (this.options.updateOnCursorActivity) {\n var self = this;\n cm.on(\"cursorActivity\", this.activityFunc = function() { self.cursorActivity(); });\n }\n }\n\n var requestAnimationFrame = window.requestAnimationFrame || function(fn) {\n return setTimeout(fn, 1000/60);\n };\n var cancelAnimationFrame = window.cancelAnimationFrame || clearTimeout;\n\n Completion.prototype = {\n close: function() {\n if (!this.active()) return;\n this.cm.state.completionActive = null;\n this.tick = null;\n if (this.options.updateOnCursorActivity) {\n this.cm.off(\"cursorActivity\", this.activityFunc);\n }\n\n if (this.widget && this.data) CodeMirror.signal(this.data, \"close\");\n if (this.widget) this.widget.close();\n CodeMirror.signal(this.cm, \"endCompletion\", this.cm);\n },\n\n active: function() {\n return this.cm.state.completionActive == this;\n },\n\n pick: function(data, i) {\n var completion = data.list[i], self = this;\n this.cm.operation(function() {\n if (completion.hint)\n completion.hint(self.cm, data, completion);\n else\n self.cm.replaceRange(getText(completion), completion.from || data.from,\n completion.to || data.to, \"complete\");\n CodeMirror.signal(data, \"pick\", completion);\n self.cm.scrollIntoView();\n });\n if (this.options.closeOnPick) {\n this.close();\n }\n },\n\n cursorActivity: function() {\n if (this.debounce) {\n cancelAnimationFrame(this.debounce);\n this.debounce = 0;\n }\n\n var identStart = this.startPos;\n if(this.data) {\n identStart = this.data.from;\n }\n\n var pos = this.cm.getCursor(), line = this.cm.getLine(pos.line);\n if (pos.line != this.startPos.line || line.length - pos.ch != this.startLen - this.startPos.ch ||\n pos.ch < identStart.ch || this.cm.somethingSelected() ||\n (!pos.ch || this.options.closeCharacters.test(line.charAt(pos.ch - 1)))) {\n this.close();\n } else {\n var self = this;\n this.debounce = requestAnimationFrame(function() {self.update();});\n if (this.widget) this.widget.disable();\n }\n },\n\n update: function(first) {\n if (this.tick == null) return\n var self = this, myTick = ++this.tick\n fetchHints(this.options.hint, this.cm, this.options, function(data) {\n if (self.tick == myTick) self.finishUpdate(data, first)\n })\n },\n\n finishUpdate: function(data, first) {\n if (this.data) CodeMirror.signal(this.data, \"update\");\n\n var picked = (this.widget && this.widget.picked) || (first && this.options.completeSingle);\n if (this.widget) this.widget.close();\n\n this.data = data;\n\n if (data && data.list.length) {\n if (picked && data.list.length == 1) {\n this.pick(data, 0);\n } else {\n this.widget = new Widget(this, data);\n CodeMirror.signal(data, \"shown\");\n }\n }\n }\n };\n\n function parseOptions(cm, pos, options) {\n var editor = cm.options.hintOptions;\n var out = {};\n for (var prop in defaultOptions) out[prop] = defaultOptions[prop];\n if (editor) for (var prop in editor)\n if (editor[prop] !== undefined) out[prop] = editor[prop];\n if (options) for (var prop in options)\n if (options[prop] !== undefined) out[prop] = options[prop];\n if (out.hint.resolve) out.hint = out.hint.resolve(cm, pos)\n return out;\n }\n\n function getText(completion) {\n if (typeof completion == \"string\") return completion;\n else return completion.text;\n }\n\n function buildKeyMap(completion, handle) {\n var baseMap = {\n Up: function() {handle.moveFocus(-1);},\n Down: function() {handle.moveFocus(1);},\n PageUp: function() {handle.moveFocus(-handle.menuSize() + 1, true);},\n PageDown: function() {handle.moveFocus(handle.menuSize() - 1, true);},\n Home: function() {handle.setFocus(0);},\n End: function() {handle.setFocus(handle.length - 1);},\n Enter: handle.pick,\n Tab: handle.pick,\n Esc: handle.close\n };\n\n var mac = /Mac/.test(navigator.platform);\n\n if (mac) {\n baseMap[\"Ctrl-P\"] = function() {handle.moveFocus(-1);};\n baseMap[\"Ctrl-N\"] = function() {handle.moveFocus(1);};\n }\n\n var custom = completion.options.customKeys;\n var ourMap = custom ? {} : baseMap;\n function addBinding(key, val) {\n var bound;\n if (typeof val != \"string\")\n bound = function(cm) { return val(cm, handle); };\n // This mechanism is deprecated\n else if (baseMap.hasOwnProperty(val))\n bound = baseMap[val];\n else\n bound = val;\n ourMap[key] = bound;\n }\n if (custom)\n for (var key in custom) if (custom.hasOwnProperty(key))\n addBinding(key, custom[key]);\n var extra = completion.options.extraKeys;\n if (extra)\n for (var key in extra) if (extra.hasOwnProperty(key))\n addBinding(key, extra[key]);\n return ourMap;\n }\n\n function getHintElement(hintsElement, el) {\n while (el && el != hintsElement) {\n if (el.nodeName.toUpperCase() === \"LI\" && el.parentNode == hintsElement) return el;\n el = el.parentNode;\n }\n }\n\n function Widget(completion, data) {\n this.id = \"cm-complete-\" + Math.floor(Math.random(1e6))\n this.completion = completion;\n this.data = data;\n this.picked = false;\n var widget = this, cm = completion.cm;\n var ownerDocument = cm.getInputField().ownerDocument;\n var parentWindow = ownerDocument.defaultView || ownerDocument.parentWindow;\n\n var hints = this.hints = ownerDocument.createElement(\"ul\");\n hints.setAttribute(\"role\", \"listbox\")\n hints.setAttribute(\"aria-expanded\", \"true\")\n hints.id = this.id\n var theme = completion.cm.options.theme;\n hints.className = \"CodeMirror-hints \" + theme;\n this.selectedHint = data.selectedHint || 0;\n\n var completions = data.list;\n for (var i = 0; i < completions.length; ++i) {\n var elt = hints.appendChild(ownerDocument.createElement(\"li\")), cur = completions[i];\n var className = HINT_ELEMENT_CLASS + (i != this.selectedHint ? \"\" : \" \" + ACTIVE_HINT_ELEMENT_CLASS);\n if (cur.className != null) className = cur.className + \" \" + className;\n elt.className = className;\n if (i == this.selectedHint) elt.setAttribute(\"aria-selected\", \"true\")\n elt.id = this.id + \"-\" + i\n elt.setAttribute(\"role\", \"option\")\n if (cur.render) cur.render(elt, data, cur);\n else elt.appendChild(ownerDocument.createTextNode(cur.displayText || getText(cur)));\n elt.hintId = i;\n }\n\n var container = completion.options.container || ownerDocument.body;\n var pos = cm.cursorCoords(completion.options.alignWithWord ? data.from : null);\n var left = pos.left, top = pos.bottom, below = true;\n var offsetLeft = 0, offsetTop = 0;\n if (container !== ownerDocument.body) {\n // We offset the cursor position because left and top are relative to the offsetParent's top left corner.\n var isContainerPositioned = ['absolute', 'relative', 'fixed'].indexOf(parentWindow.getComputedStyle(container).position) !== -1;\n var offsetParent = isContainerPositioned ? container : container.offsetParent;\n var offsetParentPosition = offsetParent.getBoundingClientRect();\n var bodyPosition = ownerDocument.body.getBoundingClientRect();\n offsetLeft = (offsetParentPosition.left - bodyPosition.left - offsetParent.scrollLeft);\n offsetTop = (offsetParentPosition.top - bodyPosition.top - offsetParent.scrollTop);\n }\n hints.style.left = (left - offsetLeft) + \"px\";\n hints.style.top = (top - offsetTop) + \"px\";\n\n // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor.\n var winW = parentWindow.innerWidth || Math.max(ownerDocument.body.offsetWidth, ownerDocument.documentElement.offsetWidth);\n var winH = parentWindow.innerHeight || Math.max(ownerDocument.body.offsetHeight, ownerDocument.documentElement.offsetHeight);\n container.appendChild(hints);\n cm.getInputField().setAttribute(\"aria-autocomplete\", \"list\")\n cm.getInputField().setAttribute(\"aria-owns\", this.id)\n cm.getInputField().setAttribute(\"aria-activedescendant\", this.id + \"-\" + this.selectedHint)\n\n var box = completion.options.moveOnOverlap ? hints.getBoundingClientRect() : new DOMRect();\n var scrolls = completion.options.paddingForScrollbar ? hints.scrollHeight > hints.clientHeight + 1 : false;\n\n // Compute in the timeout to avoid reflow on init\n var startScroll;\n setTimeout(function() { startScroll = cm.getScrollInfo(); });\n\n var overlapY = box.bottom - winH;\n if (overlapY > 0) {\n var height = box.bottom - box.top, curTop = pos.top - (pos.bottom - box.top);\n if (curTop - height > 0) { // Fits above cursor\n hints.style.top = (top = pos.top - height - offsetTop) + \"px\";\n below = false;\n } else if (height > winH) {\n hints.style.height = (winH - 5) + \"px\";\n hints.style.top = (top = pos.bottom - box.top - offsetTop) + \"px\";\n var cursor = cm.getCursor();\n if (data.from.ch != cursor.ch) {\n pos = cm.cursorCoords(cursor);\n hints.style.left = (left = pos.left - offsetLeft) + \"px\";\n box = hints.getBoundingClientRect();\n }\n }\n }\n var overlapX = box.right - winW;\n if (scrolls) overlapX += cm.display.nativeBarWidth;\n if (overlapX > 0) {\n if (box.right - box.left > winW) {\n hints.style.width = (winW - 5) + \"px\";\n overlapX -= (box.right - box.left) - winW;\n }\n hints.style.left = (left = pos.left - overlapX - offsetLeft) + \"px\";\n }\n if (scrolls) for (var node = hints.firstChild; node; node = node.nextSibling)\n node.style.paddingRight = cm.display.nativeBarWidth + \"px\"\n\n cm.addKeyMap(this.keyMap = buildKeyMap(completion, {\n moveFocus: function(n, avoidWrap) { widget.changeActive(widget.selectedHint + n, avoidWrap); },\n setFocus: function(n) { widget.changeActive(n); },\n menuSize: function() { return widget.screenAmount(); },\n length: completions.length,\n close: function() { completion.close(); },\n pick: function() { widget.pick(); },\n data: data\n }));\n\n if (completion.options.closeOnUnfocus) {\n var closingOnBlur;\n cm.on(\"blur\", this.onBlur = function() { closingOnBlur = setTimeout(function() { completion.close(); }, 100); });\n cm.on(\"focus\", this.onFocus = function() { clearTimeout(closingOnBlur); });\n }\n\n cm.on(\"scroll\", this.onScroll = function() {\n var curScroll = cm.getScrollInfo(), editor = cm.getWrapperElement().getBoundingClientRect();\n if (!startScroll) startScroll = cm.getScrollInfo();\n var newTop = top + startScroll.top - curScroll.top;\n var point = newTop - (parentWindow.pageYOffset || (ownerDocument.documentElement || ownerDocument.body).scrollTop);\n if (!below) point += hints.offsetHeight;\n if (point <= editor.top || point >= editor.bottom) return completion.close();\n hints.style.top = newTop + \"px\";\n hints.style.left = (left + startScroll.left - curScroll.left) + \"px\";\n });\n\n CodeMirror.on(hints, \"dblclick\", function(e) {\n var t = getHintElement(hints, e.target || e.srcElement);\n if (t && t.hintId != null) {widget.changeActive(t.hintId); widget.pick();}\n });\n\n CodeMirror.on(hints, \"click\", function(e) {\n var t = getHintElement(hints, e.target || e.srcElement);\n if (t && t.hintId != null) {\n widget.changeActive(t.hintId);\n if (completion.options.completeOnSingleClick) widget.pick();\n }\n });\n\n CodeMirror.on(hints, \"mousedown\", function() {\n setTimeout(function(){cm.focus();}, 20);\n });\n\n // The first hint doesn't need to be scrolled to on init\n var selectedHintRange = this.getSelectedHintRange();\n if (selectedHintRange.from !== 0 || selectedHintRange.to !== 0) {\n this.scrollToActive();\n }\n\n CodeMirror.signal(data, \"select\", completions[this.selectedHint], hints.childNodes[this.selectedHint]);\n return true;\n }\n\n Widget.prototype = {\n close: function() {\n if (this.completion.widget != this) return;\n this.completion.widget = null;\n if (this.hints.parentNode) this.hints.parentNode.removeChild(this.hints);\n this.completion.cm.removeKeyMap(this.keyMap);\n var input = this.completion.cm.getInputField()\n input.removeAttribute(\"aria-activedescendant\")\n input.removeAttribute(\"aria-owns\")\n\n var cm = this.completion.cm;\n if (this.completion.options.closeOnUnfocus) {\n cm.off(\"blur\", this.onBlur);\n cm.off(\"focus\", this.onFocus);\n }\n cm.off(\"scroll\", this.onScroll);\n },\n\n disable: function() {\n this.completion.cm.removeKeyMap(this.keyMap);\n var widget = this;\n this.keyMap = {Enter: function() { widget.picked = true; }};\n this.completion.cm.addKeyMap(this.keyMap);\n },\n\n pick: function() {\n this.completion.pick(this.data, this.selectedHint);\n },\n\n changeActive: function(i, avoidWrap) {\n if (i >= this.data.list.length)\n i = avoidWrap ? this.data.list.length - 1 : 0;\n else if (i < 0)\n i = avoidWrap ? 0 : this.data.list.length - 1;\n if (this.selectedHint == i) return;\n var node = this.hints.childNodes[this.selectedHint];\n if (node) {\n node.className = node.className.replace(\" \" + ACTIVE_HINT_ELEMENT_CLASS, \"\");\n node.removeAttribute(\"aria-selected\")\n }\n node = this.hints.childNodes[this.selectedHint = i];\n node.className += \" \" + ACTIVE_HINT_ELEMENT_CLASS;\n node.setAttribute(\"aria-selected\", \"true\")\n this.completion.cm.getInputField().setAttribute(\"aria-activedescendant\", node.id)\n this.scrollToActive()\n CodeMirror.signal(this.data, \"select\", this.data.list[this.selectedHint], node);\n },\n\n scrollToActive: function() {\n var selectedHintRange = this.getSelectedHintRange();\n var node1 = this.hints.childNodes[selectedHintRange.from];\n var node2 = this.hints.childNodes[selectedHintRange.to];\n var firstNode = this.hints.firstChild;\n if (node1.offsetTop < this.hints.scrollTop)\n this.hints.scrollTop = node1.offsetTop - firstNode.offsetTop;\n else if (node2.offsetTop + node2.offsetHeight > this.hints.scrollTop + this.hints.clientHeight)\n this.hints.scrollTop = node2.offsetTop + node2.offsetHeight - this.hints.clientHeight + firstNode.offsetTop;\n },\n\n screenAmount: function() {\n return Math.floor(this.hints.clientHeight / this.hints.firstChild.offsetHeight) || 1;\n },\n\n getSelectedHintRange: function() {\n var margin = this.completion.options.scrollMargin || 0;\n return {\n from: Math.max(0, this.selectedHint - margin),\n to: Math.min(this.data.list.length - 1, this.selectedHint + margin),\n };\n }\n };\n\n function applicableHelpers(cm, helpers) {\n if (!cm.somethingSelected()) return helpers\n var result = []\n for (var i = 0; i < helpers.length; i++)\n if (helpers[i].supportsSelection) result.push(helpers[i])\n return result\n }\n\n function fetchHints(hint, cm, options, callback) {\n if (hint.async) {\n hint(cm, callback, options)\n } else {\n var result = hint(cm, options)\n if (result && result.then) result.then(callback)\n else callback(result)\n }\n }\n\n function resolveAutoHints(cm, pos) {\n var helpers = cm.getHelpers(pos, \"hint\"), words\n if (helpers.length) {\n var resolved = function(cm, callback, options) {\n var app = applicableHelpers(cm, helpers);\n function run(i) {\n if (i == app.length) return callback(null)\n fetchHints(app[i], cm, options, function(result) {\n if (result && result.list.length > 0) callback(result)\n else run(i + 1)\n })\n }\n run(0)\n }\n resolved.async = true\n resolved.supportsSelection = true\n return resolved\n } else if (words = cm.getHelper(cm.getCursor(), \"hintWords\")) {\n return function(cm) { return CodeMirror.hint.fromList(cm, {words: words}) }\n } else if (CodeMirror.hint.anyword) {\n return function(cm, options) { return CodeMirror.hint.anyword(cm, options) }\n } else {\n return function() {}\n }\n }\n\n CodeMirror.registerHelper(\"hint\", \"auto\", {\n resolve: resolveAutoHints\n });\n\n CodeMirror.registerHelper(\"hint\", \"fromList\", function(cm, options) {\n var cur = cm.getCursor(), token = cm.getTokenAt(cur)\n var term, from = CodeMirror.Pos(cur.line, token.start), to = cur\n if (token.start < cur.ch && /\\w/.test(token.string.charAt(cur.ch - token.start - 1))) {\n term = token.string.substr(0, cur.ch - token.start)\n } else {\n term = \"\"\n from = cur\n }\n var found = [];\n for (var i = 0; i < options.words.length; i++) {\n var word = options.words[i];\n if (word.slice(0, term.length) == term)\n found.push(word);\n }\n\n if (found.length) return {list: found, from: from, to: to};\n });\n\n CodeMirror.commands.autocomplete = CodeMirror.showHint;\n\n var defaultOptions = {\n hint: CodeMirror.hint.auto,\n completeSingle: true,\n alignWithWord: true,\n closeCharacters: /[\\s()\\[\\]{};:>,]/,\n closeOnPick: true,\n closeOnUnfocus: true,\n updateOnCursorActivity: true,\n completeOnSingleClick: true,\n container: null,\n customKeys: null,\n extraKeys: null,\n paddingForScrollbar: true,\n moveOnOverlap: true,\n };\n\n CodeMirror.defineOption(\"hintOptions\", null);\n});\n"],"names":["CodeMirror","HINT_ELEMENT_CLASS","ACTIVE_HINT_ELEMENT_CLASS","Completion","cm","options","this","widget","debounce","tick","startPos","getCursor","startLen","getLine","line","length","getSelection","updateOnCursorActivity","self","on","activityFunc","cursorActivity","showHint","getHints","async","newOpts","hint","prop","defineExtension","parseOptions","selections","listSelections","somethingSelected","supportsSelection","i","head","anchor","state","completionActive","close","completion","signal","update","requestAnimationFrame","window","fn","setTimeout","cancelAnimationFrame","clearTimeout","pos","editor","hintOptions","out","defaultOptions","undefined","resolve","getText","text","buildKeyMap","handle","baseMap","Up","moveFocus","Down","PageUp","menuSize","PageDown","Home","setFocus","End","Enter","pick","Tab","Esc","test","navigator","platform","custom","customKeys","ourMap","addBinding","key","val","bound","hasOwnProperty","extra","extraKeys","getHintElement","hintsElement","el","nodeName","toUpperCase","parentNode","Widget","data","id","Math","floor","random","picked","ownerDocument","getInputField","parentWindow","defaultView","hints","createElement","setAttribute","theme","className","selectedHint","completions","list","elt","appendChild","cur","render","createTextNode","displayText","hintId","container","body","cursorCoords","alignWithWord","from","left","top","bottom","below","offsetLeft","offsetTop","offsetParent","indexOf","getComputedStyle","position","offsetParentPosition","getBoundingClientRect","bodyPosition","scrollLeft","scrollTop","style","winW","innerWidth","max","offsetWidth","documentElement","winH","innerHeight","offsetHeight","startScroll","box","moveOnOverlap","DOMRect","scrolls","paddingForScrollbar","scrollHeight","clientHeight","getScrollInfo","height","cursor","ch","closingOnBlur","overlapX","right","display","nativeBarWidth","width","node","firstChild","nextSibling","paddingRight","addKeyMap","keyMap","n","avoidWrap","changeActive","screenAmount","closeOnUnfocus","onBlur","onFocus","onScroll","curScroll","getWrapperElement","newTop","point","pageYOffset","e","t","target","srcElement","completeOnSingleClick","focus","selectedHintRange","getSelectedHintRange","to","scrollToActive","childNodes","applicableHelpers","helpers","result","push","fetchHints","callback","then","resolveAutoHints","words","getHelpers","resolved","app","run","getHelper","fromList","anyword","prototype","active","off","operation","replaceRange","scrollIntoView","closeOnPick","identStart","closeCharacters","charAt","disable","first","myTick","finishUpdate","completeSingle","removeChild","removeKeyMap","input","removeAttribute","replace","node1","node2","firstNode","margin","scrollMargin","min","registerHelper","term","token","getTokenAt","Pos","start","string","substr","found","word","slice","commands","autocomplete","auto","defineOption","mod","require"],"sourceRoot":""}
1
+ {"version":3,"file":"static/js/322.5ada89eb.chunk.js","mappings":"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","sources":["../node_modules/codemirror/addon/hint/show-hint.js"],"sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// declare global: DOMRect\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\n var HINT_ELEMENT_CLASS = \"CodeMirror-hint\";\n var ACTIVE_HINT_ELEMENT_CLASS = \"CodeMirror-hint-active\";\n\n // This is the old interface, kept around for now to stay\n // backwards-compatible.\n CodeMirror.showHint = function(cm, getHints, options) {\n if (!getHints) return cm.showHint(options);\n if (options && options.async) getHints.async = true;\n var newOpts = {hint: getHints};\n if (options) for (var prop in options) newOpts[prop] = options[prop];\n return cm.showHint(newOpts);\n };\n\n CodeMirror.defineExtension(\"showHint\", function(options) {\n options = parseOptions(this, this.getCursor(\"start\"), options);\n var selections = this.listSelections()\n if (selections.length > 1) return;\n // By default, don't allow completion when something is selected.\n // A hint function can have a `supportsSelection` property to\n // indicate that it can handle selections.\n if (this.somethingSelected()) {\n if (!options.hint.supportsSelection) return;\n // Don't try with cross-line selections\n for (var i = 0; i < selections.length; i++)\n if (selections[i].head.line != selections[i].anchor.line) return;\n }\n\n if (this.state.completionActive) this.state.completionActive.close();\n var completion = this.state.completionActive = new Completion(this, options);\n if (!completion.options.hint) return;\n\n CodeMirror.signal(this, \"startCompletion\", this);\n completion.update(true);\n });\n\n CodeMirror.defineExtension(\"closeHint\", function() {\n if (this.state.completionActive) this.state.completionActive.close()\n })\n\n function Completion(cm, options) {\n this.cm = cm;\n this.options = options;\n this.widget = null;\n this.debounce = 0;\n this.tick = 0;\n this.startPos = this.cm.getCursor(\"start\");\n this.startLen = this.cm.getLine(this.startPos.line).length - this.cm.getSelection().length;\n\n if (this.options.updateOnCursorActivity) {\n var self = this;\n cm.on(\"cursorActivity\", this.activityFunc = function() { self.cursorActivity(); });\n }\n }\n\n var requestAnimationFrame = window.requestAnimationFrame || function(fn) {\n return setTimeout(fn, 1000/60);\n };\n var cancelAnimationFrame = window.cancelAnimationFrame || clearTimeout;\n\n Completion.prototype = {\n close: function() {\n if (!this.active()) return;\n this.cm.state.completionActive = null;\n this.tick = null;\n if (this.options.updateOnCursorActivity) {\n this.cm.off(\"cursorActivity\", this.activityFunc);\n }\n\n if (this.widget && this.data) CodeMirror.signal(this.data, \"close\");\n if (this.widget) this.widget.close();\n CodeMirror.signal(this.cm, \"endCompletion\", this.cm);\n },\n\n active: function() {\n return this.cm.state.completionActive == this;\n },\n\n pick: function(data, i) {\n var completion = data.list[i], self = this;\n this.cm.operation(function() {\n if (completion.hint)\n completion.hint(self.cm, data, completion);\n else\n self.cm.replaceRange(getText(completion), completion.from || data.from,\n completion.to || data.to, \"complete\");\n CodeMirror.signal(data, \"pick\", completion);\n self.cm.scrollIntoView();\n });\n if (this.options.closeOnPick) {\n this.close();\n }\n },\n\n cursorActivity: function() {\n if (this.debounce) {\n cancelAnimationFrame(this.debounce);\n this.debounce = 0;\n }\n\n var identStart = this.startPos;\n if(this.data) {\n identStart = this.data.from;\n }\n\n var pos = this.cm.getCursor(), line = this.cm.getLine(pos.line);\n if (pos.line != this.startPos.line || line.length - pos.ch != this.startLen - this.startPos.ch ||\n pos.ch < identStart.ch || this.cm.somethingSelected() ||\n (!pos.ch || this.options.closeCharacters.test(line.charAt(pos.ch - 1)))) {\n this.close();\n } else {\n var self = this;\n this.debounce = requestAnimationFrame(function() {self.update();});\n if (this.widget) this.widget.disable();\n }\n },\n\n update: function(first) {\n if (this.tick == null) return\n var self = this, myTick = ++this.tick\n fetchHints(this.options.hint, this.cm, this.options, function(data) {\n if (self.tick == myTick) self.finishUpdate(data, first)\n })\n },\n\n finishUpdate: function(data, first) {\n if (this.data) CodeMirror.signal(this.data, \"update\");\n\n var picked = (this.widget && this.widget.picked) || (first && this.options.completeSingle);\n if (this.widget) this.widget.close();\n\n this.data = data;\n\n if (data && data.list.length) {\n if (picked && data.list.length == 1) {\n this.pick(data, 0);\n } else {\n this.widget = new Widget(this, data);\n CodeMirror.signal(data, \"shown\");\n }\n }\n }\n };\n\n function parseOptions(cm, pos, options) {\n var editor = cm.options.hintOptions;\n var out = {};\n for (var prop in defaultOptions) out[prop] = defaultOptions[prop];\n if (editor) for (var prop in editor)\n if (editor[prop] !== undefined) out[prop] = editor[prop];\n if (options) for (var prop in options)\n if (options[prop] !== undefined) out[prop] = options[prop];\n if (out.hint.resolve) out.hint = out.hint.resolve(cm, pos)\n return out;\n }\n\n function getText(completion) {\n if (typeof completion == \"string\") return completion;\n else return completion.text;\n }\n\n function buildKeyMap(completion, handle) {\n var baseMap = {\n Up: function() {handle.moveFocus(-1);},\n Down: function() {handle.moveFocus(1);},\n PageUp: function() {handle.moveFocus(-handle.menuSize() + 1, true);},\n PageDown: function() {handle.moveFocus(handle.menuSize() - 1, true);},\n Home: function() {handle.setFocus(0);},\n End: function() {handle.setFocus(handle.length - 1);},\n Enter: handle.pick,\n Tab: handle.pick,\n Esc: handle.close\n };\n\n var mac = /Mac/.test(navigator.platform);\n\n if (mac) {\n baseMap[\"Ctrl-P\"] = function() {handle.moveFocus(-1);};\n baseMap[\"Ctrl-N\"] = function() {handle.moveFocus(1);};\n }\n\n var custom = completion.options.customKeys;\n var ourMap = custom ? {} : baseMap;\n function addBinding(key, val) {\n var bound;\n if (typeof val != \"string\")\n bound = function(cm) { return val(cm, handle); };\n // This mechanism is deprecated\n else if (baseMap.hasOwnProperty(val))\n bound = baseMap[val];\n else\n bound = val;\n ourMap[key] = bound;\n }\n if (custom)\n for (var key in custom) if (custom.hasOwnProperty(key))\n addBinding(key, custom[key]);\n var extra = completion.options.extraKeys;\n if (extra)\n for (var key in extra) if (extra.hasOwnProperty(key))\n addBinding(key, extra[key]);\n return ourMap;\n }\n\n function getHintElement(hintsElement, el) {\n while (el && el != hintsElement) {\n if (el.nodeName.toUpperCase() === \"LI\" && el.parentNode == hintsElement) return el;\n el = el.parentNode;\n }\n }\n\n function Widget(completion, data) {\n this.id = \"cm-complete-\" + Math.floor(Math.random(1e6))\n this.completion = completion;\n this.data = data;\n this.picked = false;\n var widget = this, cm = completion.cm;\n var ownerDocument = cm.getInputField().ownerDocument;\n var parentWindow = ownerDocument.defaultView || ownerDocument.parentWindow;\n\n var hints = this.hints = ownerDocument.createElement(\"ul\");\n hints.setAttribute(\"role\", \"listbox\")\n hints.setAttribute(\"aria-expanded\", \"true\")\n hints.id = this.id\n var theme = completion.cm.options.theme;\n hints.className = \"CodeMirror-hints \" + theme;\n this.selectedHint = data.selectedHint || 0;\n\n var completions = data.list;\n for (var i = 0; i < completions.length; ++i) {\n var elt = hints.appendChild(ownerDocument.createElement(\"li\")), cur = completions[i];\n var className = HINT_ELEMENT_CLASS + (i != this.selectedHint ? \"\" : \" \" + ACTIVE_HINT_ELEMENT_CLASS);\n if (cur.className != null) className = cur.className + \" \" + className;\n elt.className = className;\n if (i == this.selectedHint) elt.setAttribute(\"aria-selected\", \"true\")\n elt.id = this.id + \"-\" + i\n elt.setAttribute(\"role\", \"option\")\n if (cur.render) cur.render(elt, data, cur);\n else elt.appendChild(ownerDocument.createTextNode(cur.displayText || getText(cur)));\n elt.hintId = i;\n }\n\n var container = completion.options.container || ownerDocument.body;\n var pos = cm.cursorCoords(completion.options.alignWithWord ? data.from : null);\n var left = pos.left, top = pos.bottom, below = true;\n var offsetLeft = 0, offsetTop = 0;\n if (container !== ownerDocument.body) {\n // We offset the cursor position because left and top are relative to the offsetParent's top left corner.\n var isContainerPositioned = ['absolute', 'relative', 'fixed'].indexOf(parentWindow.getComputedStyle(container).position) !== -1;\n var offsetParent = isContainerPositioned ? container : container.offsetParent;\n var offsetParentPosition = offsetParent.getBoundingClientRect();\n var bodyPosition = ownerDocument.body.getBoundingClientRect();\n offsetLeft = (offsetParentPosition.left - bodyPosition.left - offsetParent.scrollLeft);\n offsetTop = (offsetParentPosition.top - bodyPosition.top - offsetParent.scrollTop);\n }\n hints.style.left = (left - offsetLeft) + \"px\";\n hints.style.top = (top - offsetTop) + \"px\";\n\n // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor.\n var winW = parentWindow.innerWidth || Math.max(ownerDocument.body.offsetWidth, ownerDocument.documentElement.offsetWidth);\n var winH = parentWindow.innerHeight || Math.max(ownerDocument.body.offsetHeight, ownerDocument.documentElement.offsetHeight);\n container.appendChild(hints);\n cm.getInputField().setAttribute(\"aria-autocomplete\", \"list\")\n cm.getInputField().setAttribute(\"aria-owns\", this.id)\n cm.getInputField().setAttribute(\"aria-activedescendant\", this.id + \"-\" + this.selectedHint)\n\n var box = completion.options.moveOnOverlap ? hints.getBoundingClientRect() : new DOMRect();\n var scrolls = completion.options.paddingForScrollbar ? hints.scrollHeight > hints.clientHeight + 1 : false;\n\n // Compute in the timeout to avoid reflow on init\n var startScroll;\n setTimeout(function() { startScroll = cm.getScrollInfo(); });\n\n var overlapY = box.bottom - winH;\n if (overlapY > 0) {\n var height = box.bottom - box.top, curTop = pos.top - (pos.bottom - box.top);\n if (curTop - height > 0) { // Fits above cursor\n hints.style.top = (top = pos.top - height - offsetTop) + \"px\";\n below = false;\n } else if (height > winH) {\n hints.style.height = (winH - 5) + \"px\";\n hints.style.top = (top = pos.bottom - box.top - offsetTop) + \"px\";\n var cursor = cm.getCursor();\n if (data.from.ch != cursor.ch) {\n pos = cm.cursorCoords(cursor);\n hints.style.left = (left = pos.left - offsetLeft) + \"px\";\n box = hints.getBoundingClientRect();\n }\n }\n }\n var overlapX = box.right - winW;\n if (scrolls) overlapX += cm.display.nativeBarWidth;\n if (overlapX > 0) {\n if (box.right - box.left > winW) {\n hints.style.width = (winW - 5) + \"px\";\n overlapX -= (box.right - box.left) - winW;\n }\n hints.style.left = (left = pos.left - overlapX - offsetLeft) + \"px\";\n }\n if (scrolls) for (var node = hints.firstChild; node; node = node.nextSibling)\n node.style.paddingRight = cm.display.nativeBarWidth + \"px\"\n\n cm.addKeyMap(this.keyMap = buildKeyMap(completion, {\n moveFocus: function(n, avoidWrap) { widget.changeActive(widget.selectedHint + n, avoidWrap); },\n setFocus: function(n) { widget.changeActive(n); },\n menuSize: function() { return widget.screenAmount(); },\n length: completions.length,\n close: function() { completion.close(); },\n pick: function() { widget.pick(); },\n data: data\n }));\n\n if (completion.options.closeOnUnfocus) {\n var closingOnBlur;\n cm.on(\"blur\", this.onBlur = function() { closingOnBlur = setTimeout(function() { completion.close(); }, 100); });\n cm.on(\"focus\", this.onFocus = function() { clearTimeout(closingOnBlur); });\n }\n\n cm.on(\"scroll\", this.onScroll = function() {\n var curScroll = cm.getScrollInfo(), editor = cm.getWrapperElement().getBoundingClientRect();\n if (!startScroll) startScroll = cm.getScrollInfo();\n var newTop = top + startScroll.top - curScroll.top;\n var point = newTop - (parentWindow.pageYOffset || (ownerDocument.documentElement || ownerDocument.body).scrollTop);\n if (!below) point += hints.offsetHeight;\n if (point <= editor.top || point >= editor.bottom) return completion.close();\n hints.style.top = newTop + \"px\";\n hints.style.left = (left + startScroll.left - curScroll.left) + \"px\";\n });\n\n CodeMirror.on(hints, \"dblclick\", function(e) {\n var t = getHintElement(hints, e.target || e.srcElement);\n if (t && t.hintId != null) {widget.changeActive(t.hintId); widget.pick();}\n });\n\n CodeMirror.on(hints, \"click\", function(e) {\n var t = getHintElement(hints, e.target || e.srcElement);\n if (t && t.hintId != null) {\n widget.changeActive(t.hintId);\n if (completion.options.completeOnSingleClick) widget.pick();\n }\n });\n\n CodeMirror.on(hints, \"mousedown\", function() {\n setTimeout(function(){cm.focus();}, 20);\n });\n\n // The first hint doesn't need to be scrolled to on init\n var selectedHintRange = this.getSelectedHintRange();\n if (selectedHintRange.from !== 0 || selectedHintRange.to !== 0) {\n this.scrollToActive();\n }\n\n CodeMirror.signal(data, \"select\", completions[this.selectedHint], hints.childNodes[this.selectedHint]);\n return true;\n }\n\n Widget.prototype = {\n close: function() {\n if (this.completion.widget != this) return;\n this.completion.widget = null;\n if (this.hints.parentNode) this.hints.parentNode.removeChild(this.hints);\n this.completion.cm.removeKeyMap(this.keyMap);\n var input = this.completion.cm.getInputField()\n input.removeAttribute(\"aria-activedescendant\")\n input.removeAttribute(\"aria-owns\")\n\n var cm = this.completion.cm;\n if (this.completion.options.closeOnUnfocus) {\n cm.off(\"blur\", this.onBlur);\n cm.off(\"focus\", this.onFocus);\n }\n cm.off(\"scroll\", this.onScroll);\n },\n\n disable: function() {\n this.completion.cm.removeKeyMap(this.keyMap);\n var widget = this;\n this.keyMap = {Enter: function() { widget.picked = true; }};\n this.completion.cm.addKeyMap(this.keyMap);\n },\n\n pick: function() {\n this.completion.pick(this.data, this.selectedHint);\n },\n\n changeActive: function(i, avoidWrap) {\n if (i >= this.data.list.length)\n i = avoidWrap ? this.data.list.length - 1 : 0;\n else if (i < 0)\n i = avoidWrap ? 0 : this.data.list.length - 1;\n if (this.selectedHint == i) return;\n var node = this.hints.childNodes[this.selectedHint];\n if (node) {\n node.className = node.className.replace(\" \" + ACTIVE_HINT_ELEMENT_CLASS, \"\");\n node.removeAttribute(\"aria-selected\")\n }\n node = this.hints.childNodes[this.selectedHint = i];\n node.className += \" \" + ACTIVE_HINT_ELEMENT_CLASS;\n node.setAttribute(\"aria-selected\", \"true\")\n this.completion.cm.getInputField().setAttribute(\"aria-activedescendant\", node.id)\n this.scrollToActive()\n CodeMirror.signal(this.data, \"select\", this.data.list[this.selectedHint], node);\n },\n\n scrollToActive: function() {\n var selectedHintRange = this.getSelectedHintRange();\n var node1 = this.hints.childNodes[selectedHintRange.from];\n var node2 = this.hints.childNodes[selectedHintRange.to];\n var firstNode = this.hints.firstChild;\n if (node1.offsetTop < this.hints.scrollTop)\n this.hints.scrollTop = node1.offsetTop - firstNode.offsetTop;\n else if (node2.offsetTop + node2.offsetHeight > this.hints.scrollTop + this.hints.clientHeight)\n this.hints.scrollTop = node2.offsetTop + node2.offsetHeight - this.hints.clientHeight + firstNode.offsetTop;\n },\n\n screenAmount: function() {\n return Math.floor(this.hints.clientHeight / this.hints.firstChild.offsetHeight) || 1;\n },\n\n getSelectedHintRange: function() {\n var margin = this.completion.options.scrollMargin || 0;\n return {\n from: Math.max(0, this.selectedHint - margin),\n to: Math.min(this.data.list.length - 1, this.selectedHint + margin),\n };\n }\n };\n\n function applicableHelpers(cm, helpers) {\n if (!cm.somethingSelected()) return helpers\n var result = []\n for (var i = 0; i < helpers.length; i++)\n if (helpers[i].supportsSelection) result.push(helpers[i])\n return result\n }\n\n function fetchHints(hint, cm, options, callback) {\n if (hint.async) {\n hint(cm, callback, options)\n } else {\n var result = hint(cm, options)\n if (result && result.then) result.then(callback)\n else callback(result)\n }\n }\n\n function resolveAutoHints(cm, pos) {\n var helpers = cm.getHelpers(pos, \"hint\"), words\n if (helpers.length) {\n var resolved = function(cm, callback, options) {\n var app = applicableHelpers(cm, helpers);\n function run(i) {\n if (i == app.length) return callback(null)\n fetchHints(app[i], cm, options, function(result) {\n if (result && result.list.length > 0) callback(result)\n else run(i + 1)\n })\n }\n run(0)\n }\n resolved.async = true\n resolved.supportsSelection = true\n return resolved\n } else if (words = cm.getHelper(cm.getCursor(), \"hintWords\")) {\n return function(cm) { return CodeMirror.hint.fromList(cm, {words: words}) }\n } else if (CodeMirror.hint.anyword) {\n return function(cm, options) { return CodeMirror.hint.anyword(cm, options) }\n } else {\n return function() {}\n }\n }\n\n CodeMirror.registerHelper(\"hint\", \"auto\", {\n resolve: resolveAutoHints\n });\n\n CodeMirror.registerHelper(\"hint\", \"fromList\", function(cm, options) {\n var cur = cm.getCursor(), token = cm.getTokenAt(cur)\n var term, from = CodeMirror.Pos(cur.line, token.start), to = cur\n if (token.start < cur.ch && /\\w/.test(token.string.charAt(cur.ch - token.start - 1))) {\n term = token.string.substr(0, cur.ch - token.start)\n } else {\n term = \"\"\n from = cur\n }\n var found = [];\n for (var i = 0; i < options.words.length; i++) {\n var word = options.words[i];\n if (word.slice(0, term.length) == term)\n found.push(word);\n }\n\n if (found.length) return {list: found, from: from, to: to};\n });\n\n CodeMirror.commands.autocomplete = CodeMirror.showHint;\n\n var defaultOptions = {\n hint: CodeMirror.hint.auto,\n completeSingle: true,\n alignWithWord: true,\n closeCharacters: /[\\s()\\[\\]{};:>,]/,\n closeOnPick: true,\n closeOnUnfocus: true,\n updateOnCursorActivity: true,\n completeOnSingleClick: true,\n container: null,\n customKeys: null,\n extraKeys: null,\n paddingForScrollbar: true,\n moveOnOverlap: true,\n };\n\n CodeMirror.defineOption(\"hintOptions\", null);\n});\n"],"names":["CodeMirror","HINT_ELEMENT_CLASS","ACTIVE_HINT_ELEMENT_CLASS","Completion","cm","options","this","widget","debounce","tick","startPos","getCursor","startLen","getLine","line","length","getSelection","updateOnCursorActivity","self","on","activityFunc","cursorActivity","showHint","getHints","async","newOpts","hint","prop","defineExtension","parseOptions","selections","listSelections","somethingSelected","supportsSelection","i","head","anchor","state","completionActive","close","completion","signal","update","requestAnimationFrame","window","fn","setTimeout","cancelAnimationFrame","clearTimeout","pos","editor","hintOptions","out","defaultOptions","undefined","resolve","getText","text","buildKeyMap","handle","baseMap","Up","moveFocus","Down","PageUp","menuSize","PageDown","Home","setFocus","End","Enter","pick","Tab","Esc","test","navigator","platform","custom","customKeys","ourMap","addBinding","key","val","bound","hasOwnProperty","extra","extraKeys","getHintElement","hintsElement","el","nodeName","toUpperCase","parentNode","Widget","data","id","Math","floor","random","picked","ownerDocument","getInputField","parentWindow","defaultView","hints","createElement","setAttribute","theme","className","selectedHint","completions","list","elt","appendChild","cur","render","createTextNode","displayText","hintId","container","body","cursorCoords","alignWithWord","from","left","top","bottom","below","offsetLeft","offsetTop","offsetParent","indexOf","getComputedStyle","position","offsetParentPosition","getBoundingClientRect","bodyPosition","scrollLeft","scrollTop","style","winW","innerWidth","max","offsetWidth","documentElement","winH","innerHeight","offsetHeight","startScroll","box","moveOnOverlap","DOMRect","scrolls","paddingForScrollbar","scrollHeight","clientHeight","getScrollInfo","height","cursor","ch","closingOnBlur","overlapX","right","display","nativeBarWidth","width","node","firstChild","nextSibling","paddingRight","addKeyMap","keyMap","n","avoidWrap","changeActive","screenAmount","closeOnUnfocus","onBlur","onFocus","onScroll","curScroll","getWrapperElement","newTop","point","pageYOffset","e","t","target","srcElement","completeOnSingleClick","focus","selectedHintRange","getSelectedHintRange","to","scrollToActive","childNodes","applicableHelpers","helpers","result","push","fetchHints","callback","then","resolveAutoHints","words","getHelpers","resolved","app","run","getHelper","fromList","anyword","prototype","active","off","operation","replaceRange","scrollIntoView","closeOnPick","identStart","closeCharacters","charAt","disable","first","myTick","finishUpdate","completeSingle","removeChild","removeKeyMap","input","removeAttribute","replace","node1","node2","firstNode","margin","scrollMargin","min","registerHelper","term","token","getTokenAt","Pos","start","string","substr","found","word","slice","commands","autocomplete","auto","defineOption","mod","require"],"sourceRoot":""}
@@ -1 +1 @@
1
- {"version":3,"file":"static/js/344.e6b10333.chunk.js","mappings":"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","sources":["../node_modules/codemirror-graphql/src/utils/jsonParse.ts","../node_modules/codemirror-graphql/src/variables/lint.ts"],"sourcesContent":["/**\n * Copyright (c) 2021 GraphQL Contributors\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n/**\n * This JSON parser simply walks the input, generating an AST. Use this in lieu\n * of JSON.parse if you need character offset parse errors and an AST parse tree\n * with location information.\n *\n * If an error is encountered, a SyntaxError will be thrown, with properties:\n *\n * - message: string\n * - start: int - the start inclusive offset of the syntax error\n * - end: int - the end exclusive offset of the syntax error\n *\n */\nexport default function jsonParse(str: string) {\n string = str;\n strLen = str.length;\n start = end = lastEnd = -1;\n ch();\n lex();\n const ast = parseObj();\n expect('EOF');\n return ast;\n}\n\nlet string: string;\nlet strLen: number;\nlet start: number;\nlet end: number;\nlet lastEnd: number;\nlet code: number;\nlet kind: string;\n\ninterface BaseParseOutput {\n kind: string;\n start: number;\n end: number;\n}\nexport interface ParseTokenOutput extends BaseParseOutput {\n value: any;\n}\nexport interface ParseObjectOutput extends BaseParseOutput {\n kind: 'Object';\n members: ParseMemberOutput[];\n}\nexport interface ParseArrayOutput extends BaseParseOutput {\n kind: 'Array';\n values?: ParseValueOutput[];\n}\nexport interface ParseMemberOutput extends BaseParseOutput {\n key: ParseTokenOutput | null;\n value?: ParseValueOutput;\n}\nexport type ParseValueOutput =\n | ParseTokenOutput\n | ParseObjectOutput\n | ParseArrayOutput\n | undefined;\n\nfunction parseObj(): ParseObjectOutput {\n const nodeStart = start;\n const members = [];\n expect('{');\n if (!skip('}')) {\n do {\n members.push(parseMember());\n } while (skip(','));\n expect('}');\n }\n return {\n kind: 'Object',\n start: nodeStart,\n end: lastEnd,\n members,\n };\n}\n\nfunction parseMember(): ParseMemberOutput {\n const nodeStart = start;\n const key = kind === 'String' ? curToken() : null;\n expect('String');\n expect(':');\n const value = parseVal();\n return {\n kind: 'Member',\n start: nodeStart,\n end: lastEnd,\n key,\n value,\n };\n}\n\nfunction parseArr(): ParseArrayOutput {\n const nodeStart = start;\n const values = [];\n expect('[');\n if (!skip(']')) {\n do {\n values.push(parseVal());\n } while (skip(','));\n expect(']');\n }\n return {\n kind: 'Array',\n start: nodeStart,\n end: lastEnd,\n values,\n };\n}\n\nfunction parseVal(): ParseValueOutput | undefined {\n switch (kind) {\n case '[':\n return parseArr();\n case '{':\n return parseObj();\n case 'String':\n case 'Number':\n case 'Boolean':\n case 'Null':\n const token = curToken();\n lex();\n return token;\n }\n expect('Value');\n}\n\nfunction curToken(): ParseTokenOutput {\n return { kind, start, end, value: JSON.parse(string.slice(start, end)) };\n}\n\nfunction expect(str: string) {\n if (kind === str) {\n lex();\n return;\n }\n\n let found;\n if (kind === 'EOF') {\n found = '[end of file]';\n } else if (end - start > 1) {\n found = '`' + string.slice(start, end) + '`';\n } else {\n const match = string.slice(start).match(/^.+?\\b/);\n found = '`' + (match ? match[0] : string[start]) + '`';\n }\n\n throw syntaxError(`Expected ${str} but found ${found}.`);\n}\n\nfunction syntaxError(message: string) {\n return { message, start, end };\n}\n\nfunction skip(k: string) {\n if (kind === k) {\n lex();\n return true;\n }\n}\n\nfunction ch() {\n if (end < strLen) {\n end++;\n code = end === strLen ? 0 : string.charCodeAt(end);\n }\n return code;\n}\n\nfunction lex() {\n lastEnd = end;\n\n while (code === 9 || code === 10 || code === 13 || code === 32) {\n ch();\n }\n\n if (code === 0) {\n kind = 'EOF';\n return;\n }\n\n start = end;\n\n switch (code) {\n // \"\n case 34:\n kind = 'String';\n return readString();\n // -, 0-9\n case 45:\n case 48:\n case 49:\n case 50:\n case 51:\n case 52:\n case 53:\n case 54:\n case 55:\n case 56:\n case 57:\n kind = 'Number';\n return readNumber();\n // f\n case 102:\n if (string.slice(start, start + 5) !== 'false') {\n break;\n }\n end += 4;\n ch();\n\n kind = 'Boolean';\n return;\n // n\n case 110:\n if (string.slice(start, start + 4) !== 'null') {\n break;\n }\n end += 3;\n ch();\n\n kind = 'Null';\n return;\n // t\n case 116:\n if (string.slice(start, start + 4) !== 'true') {\n break;\n }\n end += 3;\n ch();\n\n kind = 'Boolean';\n return;\n }\n\n kind = string[start];\n ch();\n}\n\nfunction readString() {\n ch();\n while (code !== 34 && code > 31) {\n if (code === 92) {\n // \\\n code = ch();\n switch (code) {\n case 34: // \"\n case 47: // /\n case 92: // \\\n case 98: // b\n case 102: // f\n case 110: // n\n case 114: // r\n case 116: // t\n ch();\n break;\n case 117: // u\n ch();\n readHex();\n readHex();\n readHex();\n readHex();\n break;\n default:\n throw syntaxError('Bad character escape sequence.');\n }\n } else if (end === strLen) {\n throw syntaxError('Unterminated string.');\n } else {\n ch();\n }\n }\n\n if (code === 34) {\n ch();\n return;\n }\n\n throw syntaxError('Unterminated string.');\n}\n\nfunction readHex() {\n if (\n (code >= 48 && code <= 57) || // 0-9\n (code >= 65 && code <= 70) || // A-F\n (code >= 97 && code <= 102) // a-f\n ) {\n return ch();\n }\n throw syntaxError('Expected hexadecimal digit.');\n}\n\nfunction readNumber() {\n if (code === 45) {\n // -\n ch();\n }\n\n if (code === 48) {\n // 0\n ch();\n } else {\n readDigits();\n }\n\n if (code === 46) {\n // .\n ch();\n readDigits();\n }\n\n if (code === 69 || code === 101) {\n // E e\n code = ch();\n if (code === 43 || code === 45) {\n // + -\n ch();\n }\n readDigits();\n }\n}\n\nfunction readDigits() {\n if (code < 48 || code > 57) {\n // 0 - 9\n throw syntaxError('Expected decimal digit.');\n }\n do {\n ch();\n } while (code >= 48 && code <= 57); // 0 - 9\n}\n","/**\n * Copyright (c) 2021 GraphQL Contributors\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nimport CodeMirror from 'codemirror';\nimport {\n GraphQLEnumType,\n GraphQLInputObjectType,\n GraphQLList,\n GraphQLNonNull,\n GraphQLScalarType,\n GraphQLType,\n} from 'graphql';\n\nimport jsonParse, {\n ParseArrayOutput,\n ParseObjectOutput,\n ParseValueOutput,\n} from '../utils/jsonParse';\nimport { VariableToType } from './hint';\n\ninterface GraphQLVariableLintOptions {\n variableToType: VariableToType;\n}\n\n/**\n * Registers a \"lint\" helper for CodeMirror.\n *\n * Using CodeMirror's \"lint\" addon: https://codemirror.net/demo/lint.html\n * Given the text within an editor, this helper will take that text and return\n * a list of linter issues ensuring that correct variables were provided.\n *\n * Options:\n *\n * - variableToType: { [variable: string]: GraphQLInputType }\n *\n */\nCodeMirror.registerHelper(\n 'lint',\n 'graphql-variables',\n (\n text: string,\n options: GraphQLVariableLintOptions,\n editor: CodeMirror.Editor,\n ) => {\n // If there's no text, do nothing.\n if (!text) {\n return [];\n }\n\n // First, linter needs to determine if there are any parsing errors.\n let ast;\n try {\n ast = jsonParse(text);\n } catch (syntaxError) {\n if (syntaxError.stack) {\n throw syntaxError;\n }\n return [lintError(editor, syntaxError, syntaxError.message)];\n }\n\n // If there are not yet known variables, do nothing.\n const variableToType = options.variableToType;\n if (!variableToType) {\n return [];\n }\n\n // Then highlight any issues with the provided variables.\n return validateVariables(editor, variableToType, ast);\n },\n);\n\n// Given a variableToType object, a source text, and a JSON AST, produces a\n// list of CodeMirror annotations for any variable validation errors.\nfunction validateVariables(\n editor: CodeMirror.Editor,\n variableToType: VariableToType,\n variablesAST: ParseObjectOutput,\n) {\n const errors: CodeMirror.Annotation[] = [];\n\n variablesAST.members.forEach(member => {\n if (member) {\n const variableName = member.key?.value;\n const type = variableToType[variableName];\n if (!type) {\n errors.push(\n lintError(\n editor,\n member.key!,\n `Variable \"$${variableName}\" does not appear in any GraphQL query.`,\n ),\n );\n } else {\n validateValue(type, member.value).forEach(([node, message]) => {\n errors.push(lintError(editor, node, message));\n });\n }\n }\n });\n\n return errors;\n}\n\n// Returns a list of validation errors in the form Array<[Node, String]>.\nfunction validateValue(\n type?: GraphQLType,\n valueAST?: ParseValueOutput,\n): any[][] {\n // TODO: Can't figure out the right type.\n if (!type || !valueAST) {\n return [];\n }\n\n // Validate non-nullable values.\n if (type instanceof GraphQLNonNull) {\n if (valueAST.kind === 'Null') {\n return [[valueAST, `Type \"${type}\" is non-nullable and cannot be null.`]];\n }\n return validateValue(type.ofType, valueAST);\n }\n\n if (valueAST.kind === 'Null') {\n return [];\n }\n\n // Validate lists of values, accepting a non-list as a list of one.\n if (type instanceof GraphQLList) {\n const itemType = type.ofType;\n if (valueAST.kind === 'Array') {\n const values = (valueAST as ParseArrayOutput).values || [];\n return mapCat(values, item => validateValue(itemType, item));\n }\n return validateValue(itemType, valueAST);\n }\n\n // Validate input objects.\n if (type instanceof GraphQLInputObjectType) {\n if (valueAST.kind !== 'Object') {\n return [[valueAST, `Type \"${type}\" must be an Object.`]];\n }\n\n // Validate each field in the input object.\n const providedFields = Object.create(null);\n const fieldErrors: any[][] = mapCat(\n (valueAST as ParseObjectOutput).members,\n member => {\n // TODO: Can't figure out the right type here\n const fieldName = member?.key?.value;\n providedFields[fieldName] = true;\n const inputField = type.getFields()[fieldName];\n if (!inputField) {\n return [\n [\n member.key,\n `Type \"${type}\" does not have a field \"${fieldName}\".`,\n ],\n ];\n }\n const fieldType = inputField ? inputField.type : undefined;\n return validateValue(fieldType, member.value);\n },\n );\n\n // Look for missing non-nullable fields.\n Object.keys(type.getFields()).forEach(fieldName => {\n if (!providedFields[fieldName]) {\n const fieldType = type.getFields()[fieldName].type;\n if (fieldType instanceof GraphQLNonNull) {\n fieldErrors.push([\n valueAST,\n `Object of type \"${type}\" is missing required field \"${fieldName}\".`,\n ]);\n }\n }\n });\n\n return fieldErrors;\n }\n\n // Validate common scalars.\n if (\n (type.name === 'Boolean' && valueAST.kind !== 'Boolean') ||\n (type.name === 'String' && valueAST.kind !== 'String') ||\n (type.name === 'ID' &&\n valueAST.kind !== 'Number' &&\n valueAST.kind !== 'String') ||\n (type.name === 'Float' && valueAST.kind !== 'Number') ||\n (type.name === 'Int' &&\n // eslint-disable-next-line no-bitwise\n (valueAST.kind !== 'Number' || (valueAST.value | 0) !== valueAST.value))\n ) {\n return [[valueAST, `Expected value of type \"${type}\".`]];\n }\n\n // Validate enums and custom scalars.\n if (type instanceof GraphQLEnumType || type instanceof GraphQLScalarType) {\n if (\n (valueAST.kind !== 'String' &&\n valueAST.kind !== 'Number' &&\n valueAST.kind !== 'Boolean' &&\n valueAST.kind !== 'Null') ||\n isNullish(type.parseValue(valueAST.value))\n ) {\n return [[valueAST, `Expected value of type \"${type}\".`]];\n }\n }\n\n return [];\n}\n\n// Give a parent text, an AST node with location, and a message, produces a\n// CodeMirror annotation object.\nfunction lintError(\n editor: CodeMirror.Editor,\n node: { start: number; end: number },\n message: string,\n): CodeMirror.Annotation & { type: string } {\n return {\n message,\n severity: 'error',\n type: 'validation',\n from: editor.posFromIndex(node.start),\n to: editor.posFromIndex(node.end),\n };\n}\n\nfunction isNullish(value: any): boolean {\n // eslint-disable-next-line no-self-compare\n return value === null || value === undefined || value !== value;\n}\n\nfunction mapCat<T, R>(array: T[], mapper: (item: T) => R[]): R[] {\n return Array.prototype.concat.apply([], array.map(mapper));\n}\n"],"names":["string","strLen","start","end","lastEnd","code","kind","parseObj","nodeStart","members","expect","skip","push","parseMember","key","curToken","value","parseVal","values","parseArr","token","lex","JSON","parse","slice","str","found","match","syntaxError","message","k","ch","charCodeAt","readHex","readString","readDigits","readNumber","exports","length","ast","validateValue","type","valueAST","graphql_1","ofType","itemType_1","mapCat","item","providedFields_1","Object","create","fieldErrors_1","member","fieldName","_a","inputField","getFields","undefined","keys","forEach","name","parseValue","lintError","editor","node","severity","from","posFromIndex","to","array","mapper","Array","prototype","concat","apply","map","codemirror_1","registerHelper","text","options","jsonParse_1","stack","variableToType","variablesAST","errors","variableName","_b","validateVariables"],"sourceRoot":""}
1
+ {"version":3,"file":"static/js/344.e6b10333.chunk.js","mappings":"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","sources":["../node_modules/codemirror-graphql/src/utils/jsonParse.ts","../node_modules/codemirror-graphql/src/variables/lint.ts"],"sourcesContent":["/**\n * Copyright (c) 2021 GraphQL Contributors\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n/**\n * This JSON parser simply walks the input, generating an AST. Use this in lieu\n * of JSON.parse if you need character offset parse errors and an AST parse tree\n * with location information.\n *\n * If an error is encountered, a SyntaxError will be thrown, with properties:\n *\n * - message: string\n * - start: int - the start inclusive offset of the syntax error\n * - end: int - the end exclusive offset of the syntax error\n *\n */\nexport default function jsonParse(str: string) {\n string = str;\n strLen = str.length;\n start = end = lastEnd = -1;\n ch();\n lex();\n const ast = parseObj();\n expect('EOF');\n return ast;\n}\n\nlet string: string;\nlet strLen: number;\nlet start: number;\nlet end: number;\nlet lastEnd: number;\nlet code: number;\nlet kind: string;\n\ninterface BaseParseOutput {\n kind: string;\n start: number;\n end: number;\n}\nexport interface ParseTokenOutput extends BaseParseOutput {\n value: any;\n}\nexport interface ParseObjectOutput extends BaseParseOutput {\n kind: 'Object';\n members: ParseMemberOutput[];\n}\nexport interface ParseArrayOutput extends BaseParseOutput {\n kind: 'Array';\n values?: ParseValueOutput[];\n}\nexport interface ParseMemberOutput extends BaseParseOutput {\n key: ParseTokenOutput | null;\n value?: ParseValueOutput;\n}\nexport type ParseValueOutput =\n | ParseTokenOutput\n | ParseObjectOutput\n | ParseArrayOutput\n | undefined;\n\nfunction parseObj(): ParseObjectOutput {\n const nodeStart = start;\n const members = [];\n expect('{');\n if (!skip('}')) {\n do {\n members.push(parseMember());\n } while (skip(','));\n expect('}');\n }\n return {\n kind: 'Object',\n start: nodeStart,\n end: lastEnd,\n members,\n };\n}\n\nfunction parseMember(): ParseMemberOutput {\n const nodeStart = start;\n const key = kind === 'String' ? curToken() : null;\n expect('String');\n expect(':');\n const value = parseVal();\n return {\n kind: 'Member',\n start: nodeStart,\n end: lastEnd,\n key,\n value,\n };\n}\n\nfunction parseArr(): ParseArrayOutput {\n const nodeStart = start;\n const values = [];\n expect('[');\n if (!skip(']')) {\n do {\n values.push(parseVal());\n } while (skip(','));\n expect(']');\n }\n return {\n kind: 'Array',\n start: nodeStart,\n end: lastEnd,\n values,\n };\n}\n\nfunction parseVal(): ParseValueOutput | undefined {\n switch (kind) {\n case '[':\n return parseArr();\n case '{':\n return parseObj();\n case 'String':\n case 'Number':\n case 'Boolean':\n case 'Null':\n const token = curToken();\n lex();\n return token;\n }\n expect('Value');\n}\n\nfunction curToken(): ParseTokenOutput {\n return { kind, start, end, value: JSON.parse(string.slice(start, end)) };\n}\n\nfunction expect(str: string) {\n if (kind === str) {\n lex();\n return;\n }\n\n let found;\n if (kind === 'EOF') {\n found = '[end of file]';\n } else if (end - start > 1) {\n found = '`' + string.slice(start, end) + '`';\n } else {\n const match = string.slice(start).match(/^.+?\\b/);\n found = '`' + (match ? match[0] : string[start]) + '`';\n }\n\n throw syntaxError(`Expected ${str} but found ${found}.`);\n}\n\nfunction syntaxError(message: string) {\n return { message, start, end };\n}\n\nfunction skip(k: string) {\n if (kind === k) {\n lex();\n return true;\n }\n}\n\nfunction ch() {\n if (end < strLen) {\n end++;\n code = end === strLen ? 0 : string.charCodeAt(end);\n }\n return code;\n}\n\nfunction lex() {\n lastEnd = end;\n\n while (code === 9 || code === 10 || code === 13 || code === 32) {\n ch();\n }\n\n if (code === 0) {\n kind = 'EOF';\n return;\n }\n\n start = end;\n\n switch (code) {\n // \"\n case 34:\n kind = 'String';\n return readString();\n // -, 0-9\n case 45:\n case 48:\n case 49:\n case 50:\n case 51:\n case 52:\n case 53:\n case 54:\n case 55:\n case 56:\n case 57:\n kind = 'Number';\n return readNumber();\n // f\n case 102:\n if (string.slice(start, start + 5) !== 'false') {\n break;\n }\n end += 4;\n ch();\n\n kind = 'Boolean';\n return;\n // n\n case 110:\n if (string.slice(start, start + 4) !== 'null') {\n break;\n }\n end += 3;\n ch();\n\n kind = 'Null';\n return;\n // t\n case 116:\n if (string.slice(start, start + 4) !== 'true') {\n break;\n }\n end += 3;\n ch();\n\n kind = 'Boolean';\n return;\n }\n\n kind = string[start];\n ch();\n}\n\nfunction readString() {\n ch();\n while (code !== 34 && code > 31) {\n if (code === 92) {\n // \\\n code = ch();\n switch (code) {\n case 34: // \"\n case 47: // /\n case 92: // \\\n case 98: // b\n case 102: // f\n case 110: // n\n case 114: // r\n case 116: // t\n ch();\n break;\n case 117: // u\n ch();\n readHex();\n readHex();\n readHex();\n readHex();\n break;\n default:\n throw syntaxError('Bad character escape sequence.');\n }\n } else if (end === strLen) {\n throw syntaxError('Unterminated string.');\n } else {\n ch();\n }\n }\n\n if (code === 34) {\n ch();\n return;\n }\n\n throw syntaxError('Unterminated string.');\n}\n\nfunction readHex() {\n if (\n (code >= 48 && code <= 57) || // 0-9\n (code >= 65 && code <= 70) || // A-F\n (code >= 97 && code <= 102) // a-f\n ) {\n return ch();\n }\n throw syntaxError('Expected hexadecimal digit.');\n}\n\nfunction readNumber() {\n if (code === 45) {\n // -\n ch();\n }\n\n if (code === 48) {\n // 0\n ch();\n } else {\n readDigits();\n }\n\n if (code === 46) {\n // .\n ch();\n readDigits();\n }\n\n if (code === 69 || code === 101) {\n // E e\n code = ch();\n if (code === 43 || code === 45) {\n // + -\n ch();\n }\n readDigits();\n }\n}\n\nfunction readDigits() {\n if (code < 48 || code > 57) {\n // 0 - 9\n throw syntaxError('Expected decimal digit.');\n }\n do {\n ch();\n } while (code >= 48 && code <= 57); // 0 - 9\n}\n","/**\n * Copyright (c) 2021 GraphQL Contributors\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nimport CodeMirror from 'codemirror';\nimport {\n GraphQLEnumType,\n GraphQLInputObjectType,\n GraphQLList,\n GraphQLNonNull,\n GraphQLScalarType,\n GraphQLType,\n} from 'graphql';\n\nimport jsonParse, {\n ParseArrayOutput,\n ParseObjectOutput,\n ParseValueOutput,\n} from '../utils/jsonParse';\nimport { VariableToType } from './hint';\n\ninterface GraphQLVariableLintOptions {\n variableToType: VariableToType;\n}\n\n/**\n * Registers a \"lint\" helper for CodeMirror.\n *\n * Using CodeMirror's \"lint\" addon: https://codemirror.net/demo/lint.html\n * Given the text within an editor, this helper will take that text and return\n * a list of linter issues ensuring that correct variables were provided.\n *\n * Options:\n *\n * - variableToType: { [variable: string]: GraphQLInputType }\n *\n */\nCodeMirror.registerHelper(\n 'lint',\n 'graphql-variables',\n (\n text: string,\n options: GraphQLVariableLintOptions,\n editor: CodeMirror.Editor,\n ) => {\n // If there's no text, do nothing.\n if (!text) {\n return [];\n }\n\n // First, linter needs to determine if there are any parsing errors.\n let ast;\n try {\n ast = jsonParse(text);\n } catch (syntaxError) {\n if (syntaxError.stack) {\n throw syntaxError;\n }\n return [lintError(editor, syntaxError, syntaxError.message)];\n }\n\n // If there are not yet known variables, do nothing.\n const variableToType = options.variableToType;\n if (!variableToType) {\n return [];\n }\n\n // Then highlight any issues with the provided variables.\n return validateVariables(editor, variableToType, ast);\n },\n);\n\n// Given a variableToType object, a source text, and a JSON AST, produces a\n// list of CodeMirror annotations for any variable validation errors.\nfunction validateVariables(\n editor: CodeMirror.Editor,\n variableToType: VariableToType,\n variablesAST: ParseObjectOutput,\n) {\n const errors: CodeMirror.Annotation[] = [];\n\n variablesAST.members.forEach(member => {\n if (member) {\n const variableName = member.key?.value;\n const type = variableToType[variableName];\n if (!type) {\n errors.push(\n lintError(\n editor,\n member.key!,\n `Variable \"$${variableName}\" does not appear in any GraphQL query.`,\n ),\n );\n } else {\n validateValue(type, member.value).forEach(([node, message]) => {\n errors.push(lintError(editor, node, message));\n });\n }\n }\n });\n\n return errors;\n}\n\n// Returns a list of validation errors in the form Array<[Node, String]>.\nfunction validateValue(\n type?: GraphQLType,\n valueAST?: ParseValueOutput,\n): any[][] {\n // TODO: Can't figure out the right type.\n if (!type || !valueAST) {\n return [];\n }\n\n // Validate non-nullable values.\n if (type instanceof GraphQLNonNull) {\n if (valueAST.kind === 'Null') {\n return [[valueAST, `Type \"${type}\" is non-nullable and cannot be null.`]];\n }\n return validateValue(type.ofType, valueAST);\n }\n\n if (valueAST.kind === 'Null') {\n return [];\n }\n\n // Validate lists of values, accepting a non-list as a list of one.\n if (type instanceof GraphQLList) {\n const itemType = type.ofType;\n if (valueAST.kind === 'Array') {\n const values = (valueAST as ParseArrayOutput).values || [];\n return mapCat(values, item => validateValue(itemType, item));\n }\n return validateValue(itemType, valueAST);\n }\n\n // Validate input objects.\n if (type instanceof GraphQLInputObjectType) {\n if (valueAST.kind !== 'Object') {\n return [[valueAST, `Type \"${type}\" must be an Object.`]];\n }\n\n // Validate each field in the input object.\n const providedFields = Object.create(null);\n const fieldErrors: any[][] = mapCat(\n (valueAST as ParseObjectOutput).members,\n member => {\n // TODO: Can't figure out the right type here\n const fieldName = member?.key?.value;\n providedFields[fieldName] = true;\n const inputField = type.getFields()[fieldName];\n if (!inputField) {\n return [\n [\n member.key,\n `Type \"${type}\" does not have a field \"${fieldName}\".`,\n ],\n ];\n }\n const fieldType = inputField ? inputField.type : undefined;\n return validateValue(fieldType, member.value);\n },\n );\n\n // Look for missing non-nullable fields.\n Object.keys(type.getFields()).forEach(fieldName => {\n if (!providedFields[fieldName]) {\n const fieldType = type.getFields()[fieldName].type;\n if (fieldType instanceof GraphQLNonNull) {\n fieldErrors.push([\n valueAST,\n `Object of type \"${type}\" is missing required field \"${fieldName}\".`,\n ]);\n }\n }\n });\n\n return fieldErrors;\n }\n\n // Validate common scalars.\n if (\n (type.name === 'Boolean' && valueAST.kind !== 'Boolean') ||\n (type.name === 'String' && valueAST.kind !== 'String') ||\n (type.name === 'ID' &&\n valueAST.kind !== 'Number' &&\n valueAST.kind !== 'String') ||\n (type.name === 'Float' && valueAST.kind !== 'Number') ||\n (type.name === 'Int' &&\n // eslint-disable-next-line no-bitwise\n (valueAST.kind !== 'Number' || (valueAST.value | 0) !== valueAST.value))\n ) {\n return [[valueAST, `Expected value of type \"${type}\".`]];\n }\n\n // Validate enums and custom scalars.\n if (type instanceof GraphQLEnumType || type instanceof GraphQLScalarType) {\n if (\n (valueAST.kind !== 'String' &&\n valueAST.kind !== 'Number' &&\n valueAST.kind !== 'Boolean' &&\n valueAST.kind !== 'Null') ||\n isNullish(type.parseValue(valueAST.value))\n ) {\n return [[valueAST, `Expected value of type \"${type}\".`]];\n }\n }\n\n return [];\n}\n\n// Give a parent text, an AST node with location, and a message, produces a\n// CodeMirror annotation object.\nfunction lintError(\n editor: CodeMirror.Editor,\n node: { start: number; end: number },\n message: string,\n): CodeMirror.Annotation & { type: string } {\n return {\n message,\n severity: 'error',\n type: 'validation',\n from: editor.posFromIndex(node.start),\n to: editor.posFromIndex(node.end),\n };\n}\n\nfunction isNullish(value: any): boolean {\n // eslint-disable-next-line no-self-compare\n return value === null || value === undefined || value !== value;\n}\n\nfunction mapCat<T, R>(array: T[], mapper: (item: T) => R[]): R[] {\n return Array.prototype.concat.apply([], array.map(mapper));\n}\n"],"names":["string","strLen","start","end","lastEnd","code","kind","parseObj","nodeStart","members","expect","skip","push","parseMember","key","curToken","value","parseVal","values","parseArr","token","lex","JSON","parse","slice","str","found","match","syntaxError","message","k","ch","charCodeAt","readHex","readString","readDigits","readNumber","exports","length","ast","validateValue","type","valueAST","graphql_1","ofType","itemType_1","mapCat","item","providedFields_1","Object","create","fieldErrors_1","member","fieldName","_a","inputField","getFields","undefined","keys","forEach","name","parseValue","lintError","editor","node","severity","from","posFromIndex","to","array","mapper","Array","prototype","concat","apply","map","codemirror_1","registerHelper","text","options","jsonParse_1","stack","variableToType","variablesAST","errors","variableName","_b","validateVariables"],"sourceRoot":""}
@@ -1 +1 @@
1
- {"version":3,"file":"static/js/39.dd9b3202.chunk.js","mappings":"+OASA,iBACA,aAEAA,EAAAA,QAAWC,WAAW,UAAWC,EAAAA,U,0JCFjC,cAMA,aA+CAC,EAAAA,QAzBwD,SAAAC,GACtD,IAAMC,EAASC,EAAAA,aAAa,CAC1BC,cAAe,SAAAC,GAAU,OAAAA,EAAOC,SAASH,EAAAA,YACzCI,SAAUJ,EAAAA,SACVK,WAAYL,EAAAA,WACZM,aAAc,CAAEC,QAAST,EAAOS,WAGlC,MAAO,CACLT,OAAM,EACNU,WAAYT,EAAOS,WACnBC,MAAQV,EAAOU,MAGfC,OAAM,UACNC,cAAe,aACfC,KAAM,QACNC,YAAa,IACbC,cAAe,CACbC,MAAO,WACPC,QAAS,a,oEC7CfnB,EAAAA,QAAA,SAKEoB,EACAC,G,QAEMC,EAASF,EAAME,OAQrB,QAJGA,GAA4B,IAAlBA,EAAOC,OAEdD,EAAOA,EAAOC,OAAS,KACJ,QAAlB,EAAAC,KAAKV,qBAAaW,IAAAA,OAAA,EAAAA,EAAEC,KAAKL,IAAa,EAAI,GAF3CD,EAAMO,cAGK,KAAiB,QAAX,EAAAH,KAAKvB,cAAM2B,IAAAA,OAAA,EAAAA,EAAEC,aAAc","sources":["../node_modules/codemirror-graphql/src/mode.ts","../node_modules/codemirror-graphql/src/utils/mode-factory.ts","../node_modules/codemirror-graphql/src/utils/mode-indent.ts"],"sourcesContent":["/**\n * Copyright (c) 2021 GraphQL Contributors\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nimport CodeMirror from 'codemirror';\nimport modeFactory from './utils/mode-factory';\n\nCodeMirror.defineMode('graphql', modeFactory);\n","/**\n * Copyright (c) 2021 GraphQL Contributors\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nimport CodeMirror from 'codemirror';\nimport {\n LexRules,\n ParseRules,\n isIgnored,\n onlineParser,\n} from 'graphql-language-service';\nimport indent from './mode-indent';\n\n/**\n * The GraphQL mode is defined as a tokenizer along with a list of rules, each\n * of which is either a function or an array.\n *\n * * Function: Provided a token and the stream, returns an expected next step.\n * * Array: A list of steps to take in order.\n *\n * A step is either another rule, or a terminal description of a token. If it\n * is a rule, that rule is pushed onto the stack and the parsing continues from\n * that point.\n *\n * If it is a terminal description, the token is checked against it using a\n * `match` function. If the match is successful, the token is colored and the\n * rule is stepped forward. If the match is unsuccessful, the remainder of the\n * rule is skipped and the previous rule is advanced.\n *\n * This parsing algorithm allows for incremental online parsing within various\n * levels of the syntax tree and results in a structured `state` linked-list\n * which contains the relevant information to produce valuable typeaheads.\n */\nconst graphqlModeFactory: CodeMirror.ModeFactory<any> = config => {\n const parser = onlineParser({\n eatWhitespace: stream => stream.eatWhile(isIgnored),\n lexRules: LexRules,\n parseRules: ParseRules,\n editorConfig: { tabSize: config.tabSize },\n });\n\n return {\n config,\n startState: parser.startState,\n token: (parser.token as unknown) as NonNullable<\n CodeMirror.Mode<any>['token']\n >, // TODO: Check if the types are indeed compatible\n indent,\n electricInput: /^\\s*[})\\]]/,\n fold: 'brace',\n lineComment: '#',\n closeBrackets: {\n pairs: '()[]{}\"\"',\n explode: '()[]{}',\n },\n };\n};\n\nexport default graphqlModeFactory;\n","/**\n * Copyright (c) 2021 GraphQL Contributors\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nimport CodeMirror from 'codemirror';\nimport { State } from 'graphql-language-service';\n\n// Seems the electricInput type in @types/codemirror is wrong (i.e it is written as electricinput instead of electricInput)\nexport default function indent(\n this: CodeMirror.Mode<any> & {\n electricInput?: RegExp;\n config?: CodeMirror.EditorConfiguration;\n },\n state: State,\n textAfter: string,\n) {\n const levels = state.levels;\n // If there is no stack of levels, use the current level.\n // Otherwise, use the top level, pre-emptively dedenting for close braces.\n const level =\n !levels || levels.length === 0\n ? state.indentLevel\n : levels[levels.length - 1] -\n (this.electricInput?.test(textAfter) ? 1 : 0);\n return (level || 0) * (this.config?.indentUnit || 0);\n}\n"],"names":["codemirror_1","defineMode","mode_factory_1","exports","config","parser","graphql_language_service_1","eatWhitespace","stream","eatWhile","lexRules","parseRules","editorConfig","tabSize","startState","token","indent","electricInput","fold","lineComment","closeBrackets","pairs","explode","state","textAfter","levels","length","this","_a","test","indentLevel","_b","indentUnit"],"sourceRoot":""}
1
+ {"version":3,"file":"static/js/39.dd9b3202.chunk.js","mappings":"+OASA,iBACA,aAEAA,EAAAA,QAAWC,WAAW,UAAWC,EAAAA,Q,4JCFjC,cAMA,aA+CAC,EAAAA,QAzBwD,SAAAC,GACtD,IAAMC,EAASC,EAAAA,aAAa,CAC1BC,cAAe,SAAAC,GAAU,OAAAA,EAAOC,SAASH,EAAAA,UAAU,EACnDI,SAAUJ,EAAAA,SACVK,WAAYL,EAAAA,WACZM,aAAc,CAAEC,QAAST,EAAOS,WAGlC,MAAO,CACLT,OAAM,EACNU,WAAYT,EAAOS,WACnBC,MAAQV,EAAOU,MAGfC,OAAM,UACNC,cAAe,aACfC,KAAM,QACNC,YAAa,IACbC,cAAe,CACbC,MAAO,WACPC,QAAS,UAGd,C,sEChDDnB,EAAAA,QAAA,SAKEoB,EACAC,G,QAEMC,EAASF,EAAME,OAQrB,QAJGA,GAA4B,IAAlBA,EAAOC,OAEdD,EAAOA,EAAOC,OAAS,KACJ,QAAlB,EAAAC,KAAKV,qBAAaW,IAAAA,OAAA,EAAAA,EAAEC,KAAKL,IAAa,EAAI,GAF3CD,EAAMO,cAGK,KAAiB,QAAX,EAAAH,KAAKvB,cAAM2B,IAAAA,OAAA,EAAAA,EAAEC,aAAc,EACnD,C","sources":["../node_modules/codemirror-graphql/src/mode.ts","../node_modules/codemirror-graphql/src/utils/mode-factory.ts","../node_modules/codemirror-graphql/src/utils/mode-indent.ts"],"sourcesContent":["/**\n * Copyright (c) 2021 GraphQL Contributors\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nimport CodeMirror from 'codemirror';\nimport modeFactory from './utils/mode-factory';\n\nCodeMirror.defineMode('graphql', modeFactory);\n","/**\n * Copyright (c) 2021 GraphQL Contributors\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nimport CodeMirror from 'codemirror';\nimport {\n LexRules,\n ParseRules,\n isIgnored,\n onlineParser,\n} from 'graphql-language-service';\nimport indent from './mode-indent';\n\n/**\n * The GraphQL mode is defined as a tokenizer along with a list of rules, each\n * of which is either a function or an array.\n *\n * * Function: Provided a token and the stream, returns an expected next step.\n * * Array: A list of steps to take in order.\n *\n * A step is either another rule, or a terminal description of a token. If it\n * is a rule, that rule is pushed onto the stack and the parsing continues from\n * that point.\n *\n * If it is a terminal description, the token is checked against it using a\n * `match` function. If the match is successful, the token is colored and the\n * rule is stepped forward. If the match is unsuccessful, the remainder of the\n * rule is skipped and the previous rule is advanced.\n *\n * This parsing algorithm allows for incremental online parsing within various\n * levels of the syntax tree and results in a structured `state` linked-list\n * which contains the relevant information to produce valuable typeaheads.\n */\nconst graphqlModeFactory: CodeMirror.ModeFactory<any> = config => {\n const parser = onlineParser({\n eatWhitespace: stream => stream.eatWhile(isIgnored),\n lexRules: LexRules,\n parseRules: ParseRules,\n editorConfig: { tabSize: config.tabSize },\n });\n\n return {\n config,\n startState: parser.startState,\n token: (parser.token as unknown) as NonNullable<\n CodeMirror.Mode<any>['token']\n >, // TODO: Check if the types are indeed compatible\n indent,\n electricInput: /^\\s*[})\\]]/,\n fold: 'brace',\n lineComment: '#',\n closeBrackets: {\n pairs: '()[]{}\"\"',\n explode: '()[]{}',\n },\n };\n};\n\nexport default graphqlModeFactory;\n","/**\n * Copyright (c) 2021 GraphQL Contributors\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nimport CodeMirror from 'codemirror';\nimport { State } from 'graphql-language-service';\n\n// Seems the electricInput type in @types/codemirror is wrong (i.e it is written as electricinput instead of electricInput)\nexport default function indent(\n this: CodeMirror.Mode<any> & {\n electricInput?: RegExp;\n config?: CodeMirror.EditorConfiguration;\n },\n state: State,\n textAfter: string,\n) {\n const levels = state.levels;\n // If there is no stack of levels, use the current level.\n // Otherwise, use the top level, pre-emptively dedenting for close braces.\n const level =\n !levels || levels.length === 0\n ? state.indentLevel\n : levels[levels.length - 1] -\n (this.electricInput?.test(textAfter) ? 1 : 0);\n return (level || 0) * (this.config?.indentUnit || 0);\n}\n"],"names":["codemirror_1","defineMode","mode_factory_1","exports","config","parser","graphql_language_service_1","eatWhitespace","stream","eatWhile","lexRules","parseRules","editorConfig","tabSize","startState","token","indent","electricInput","fold","lineComment","closeBrackets","pairs","explode","state","textAfter","levels","length","this","_a","test","indentLevel","_b","indentUnit"],"sourceRoot":""}
@@ -1 +1 @@
1
- {"version":3,"file":"static/js/430.de05cf2b.chunk.js","mappings":"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","sources":["../node_modules/codemirror/addon/fold/foldcode.js","../node_modules/codemirror/addon/fold/foldgutter.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\n function doFold(cm, pos, options, force) {\n if (options && options.call) {\n var finder = options;\n options = null;\n } else {\n var finder = getOption(cm, options, \"rangeFinder\");\n }\n if (typeof pos == \"number\") pos = CodeMirror.Pos(pos, 0);\n var minSize = getOption(cm, options, \"minFoldSize\");\n\n function getRange(allowFolded) {\n var range = finder(cm, pos);\n if (!range || range.to.line - range.from.line < minSize) return null;\n if (force === \"fold\") return range;\n\n var marks = cm.findMarksAt(range.from);\n for (var i = 0; i < marks.length; ++i) {\n if (marks[i].__isFold) {\n if (!allowFolded) return null;\n range.cleared = true;\n marks[i].clear();\n }\n }\n return range;\n }\n\n var range = getRange(true);\n if (getOption(cm, options, \"scanUp\")) while (!range && pos.line > cm.firstLine()) {\n pos = CodeMirror.Pos(pos.line - 1, 0);\n range = getRange(false);\n }\n if (!range || range.cleared || force === \"unfold\") return;\n\n var myWidget = makeWidget(cm, options, range);\n CodeMirror.on(myWidget, \"mousedown\", function(e) {\n myRange.clear();\n CodeMirror.e_preventDefault(e);\n });\n var myRange = cm.markText(range.from, range.to, {\n replacedWith: myWidget,\n clearOnEnter: getOption(cm, options, \"clearOnEnter\"),\n __isFold: true\n });\n myRange.on(\"clear\", function(from, to) {\n CodeMirror.signal(cm, \"unfold\", cm, from, to);\n });\n CodeMirror.signal(cm, \"fold\", cm, range.from, range.to);\n }\n\n function makeWidget(cm, options, range) {\n var widget = getOption(cm, options, \"widget\");\n\n if (typeof widget == \"function\") {\n widget = widget(range.from, range.to);\n }\n\n if (typeof widget == \"string\") {\n var text = document.createTextNode(widget);\n widget = document.createElement(\"span\");\n widget.appendChild(text);\n widget.className = \"CodeMirror-foldmarker\";\n } else if (widget) {\n widget = widget.cloneNode(true)\n }\n return widget;\n }\n\n // Clumsy backwards-compatible interface\n CodeMirror.newFoldFunction = function(rangeFinder, widget) {\n return function(cm, pos) { doFold(cm, pos, {rangeFinder: rangeFinder, widget: widget}); };\n };\n\n // New-style interface\n CodeMirror.defineExtension(\"foldCode\", function(pos, options, force) {\n doFold(this, pos, options, force);\n });\n\n CodeMirror.defineExtension(\"isFolded\", function(pos) {\n var marks = this.findMarksAt(pos);\n for (var i = 0; i < marks.length; ++i)\n if (marks[i].__isFold) return true;\n });\n\n CodeMirror.commands.toggleFold = function(cm) {\n cm.foldCode(cm.getCursor());\n };\n CodeMirror.commands.fold = function(cm) {\n cm.foldCode(cm.getCursor(), null, \"fold\");\n };\n CodeMirror.commands.unfold = function(cm) {\n cm.foldCode(cm.getCursor(), { scanUp: false }, \"unfold\");\n };\n CodeMirror.commands.foldAll = function(cm) {\n cm.operation(function() {\n for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)\n cm.foldCode(CodeMirror.Pos(i, 0), { scanUp: false }, \"fold\");\n });\n };\n CodeMirror.commands.unfoldAll = function(cm) {\n cm.operation(function() {\n for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)\n cm.foldCode(CodeMirror.Pos(i, 0), { scanUp: false }, \"unfold\");\n });\n };\n\n CodeMirror.registerHelper(\"fold\", \"combine\", function() {\n var funcs = Array.prototype.slice.call(arguments, 0);\n return function(cm, start) {\n for (var i = 0; i < funcs.length; ++i) {\n var found = funcs[i](cm, start);\n if (found) return found;\n }\n };\n });\n\n CodeMirror.registerHelper(\"fold\", \"auto\", function(cm, start) {\n var helpers = cm.getHelpers(start, \"fold\");\n for (var i = 0; i < helpers.length; i++) {\n var cur = helpers[i](cm, start);\n if (cur) return cur;\n }\n });\n\n var defaultOptions = {\n rangeFinder: CodeMirror.fold.auto,\n widget: \"\\u2194\",\n minFoldSize: 0,\n scanUp: false,\n clearOnEnter: true\n };\n\n CodeMirror.defineOption(\"foldOptions\", null);\n\n function getOption(cm, options, name) {\n if (options && options[name] !== undefined)\n return options[name];\n var editorOptions = cm.options.foldOptions;\n if (editorOptions && editorOptions[name] !== undefined)\n return editorOptions[name];\n return defaultOptions[name];\n }\n\n CodeMirror.defineExtension(\"foldOption\", function(options, name) {\n return getOption(this, options, name);\n });\n});\n","// 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\"), require(\"./foldcode\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"./foldcode\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineOption(\"foldGutter\", false, function(cm, val, old) {\n if (old && old != CodeMirror.Init) {\n cm.clearGutter(cm.state.foldGutter.options.gutter);\n cm.state.foldGutter = null;\n cm.off(\"gutterClick\", onGutterClick);\n cm.off(\"changes\", onChange);\n cm.off(\"viewportChange\", onViewportChange);\n cm.off(\"fold\", onFold);\n cm.off(\"unfold\", onFold);\n cm.off(\"swapDoc\", onChange);\n }\n if (val) {\n cm.state.foldGutter = new State(parseOptions(val));\n updateInViewport(cm);\n cm.on(\"gutterClick\", onGutterClick);\n cm.on(\"changes\", onChange);\n cm.on(\"viewportChange\", onViewportChange);\n cm.on(\"fold\", onFold);\n cm.on(\"unfold\", onFold);\n cm.on(\"swapDoc\", onChange);\n }\n });\n\n var Pos = CodeMirror.Pos;\n\n function State(options) {\n this.options = options;\n this.from = this.to = 0;\n }\n\n function parseOptions(opts) {\n if (opts === true) opts = {};\n if (opts.gutter == null) opts.gutter = \"CodeMirror-foldgutter\";\n if (opts.indicatorOpen == null) opts.indicatorOpen = \"CodeMirror-foldgutter-open\";\n if (opts.indicatorFolded == null) opts.indicatorFolded = \"CodeMirror-foldgutter-folded\";\n return opts;\n }\n\n function isFolded(cm, line) {\n var marks = cm.findMarks(Pos(line, 0), Pos(line + 1, 0));\n for (var i = 0; i < marks.length; ++i) {\n if (marks[i].__isFold) {\n var fromPos = marks[i].find(-1);\n if (fromPos && fromPos.line === line)\n return marks[i];\n }\n }\n }\n\n function marker(spec) {\n if (typeof spec == \"string\") {\n var elt = document.createElement(\"div\");\n elt.className = spec + \" CodeMirror-guttermarker-subtle\";\n return elt;\n } else {\n return spec.cloneNode(true);\n }\n }\n\n function updateFoldInfo(cm, from, to) {\n var opts = cm.state.foldGutter.options, cur = from - 1;\n var minSize = cm.foldOption(opts, \"minFoldSize\");\n var func = cm.foldOption(opts, \"rangeFinder\");\n // we can reuse the built-in indicator element if its className matches the new state\n var clsFolded = typeof opts.indicatorFolded == \"string\" && classTest(opts.indicatorFolded);\n var clsOpen = typeof opts.indicatorOpen == \"string\" && classTest(opts.indicatorOpen);\n cm.eachLine(from, to, function(line) {\n ++cur;\n var mark = null;\n var old = line.gutterMarkers;\n if (old) old = old[opts.gutter];\n if (isFolded(cm, cur)) {\n if (clsFolded && old && clsFolded.test(old.className)) return;\n mark = marker(opts.indicatorFolded);\n } else {\n var pos = Pos(cur, 0);\n var range = func && func(cm, pos);\n if (range && range.to.line - range.from.line >= minSize) {\n if (clsOpen && old && clsOpen.test(old.className)) return;\n mark = marker(opts.indicatorOpen);\n }\n }\n if (!mark && !old) return;\n cm.setGutterMarker(line, opts.gutter, mark);\n });\n }\n\n // copied from CodeMirror/src/util/dom.js\n function classTest(cls) { return new RegExp(\"(^|\\\\s)\" + cls + \"(?:$|\\\\s)\\\\s*\") }\n\n function updateInViewport(cm) {\n var vp = cm.getViewport(), state = cm.state.foldGutter;\n if (!state) return;\n cm.operation(function() {\n updateFoldInfo(cm, vp.from, vp.to);\n });\n state.from = vp.from; state.to = vp.to;\n }\n\n function onGutterClick(cm, line, gutter) {\n var state = cm.state.foldGutter;\n if (!state) return;\n var opts = state.options;\n if (gutter != opts.gutter) return;\n var folded = isFolded(cm, line);\n if (folded) folded.clear();\n else cm.foldCode(Pos(line, 0), opts);\n }\n\n function onChange(cm) {\n var state = cm.state.foldGutter;\n if (!state) return;\n var opts = state.options;\n state.from = state.to = 0;\n clearTimeout(state.changeUpdate);\n state.changeUpdate = setTimeout(function() { updateInViewport(cm); }, opts.foldOnChangeTimeSpan || 600);\n }\n\n function onViewportChange(cm) {\n var state = cm.state.foldGutter;\n if (!state) return;\n var opts = state.options;\n clearTimeout(state.changeUpdate);\n state.changeUpdate = setTimeout(function() {\n var vp = cm.getViewport();\n if (state.from == state.to || vp.from - state.to > 20 || state.from - vp.to > 20) {\n updateInViewport(cm);\n } else {\n cm.operation(function() {\n if (vp.from < state.from) {\n updateFoldInfo(cm, vp.from, state.from);\n state.from = vp.from;\n }\n if (vp.to > state.to) {\n updateFoldInfo(cm, state.to, vp.to);\n state.to = vp.to;\n }\n });\n }\n }, opts.updateViewportTimeSpan || 400);\n }\n\n function onFold(cm, from) {\n var state = cm.state.foldGutter;\n if (!state) return;\n var line = from.line;\n if (line >= state.from && line < state.to)\n updateFoldInfo(cm, line, line + 1);\n }\n});\n"],"names":["CodeMirror","doFold","cm","pos","options","force","call","finder","getOption","Pos","minSize","getRange","allowFolded","range","to","line","from","marks","findMarksAt","i","length","__isFold","cleared","clear","firstLine","myWidget","makeWidget","on","e","myRange","e_preventDefault","markText","replacedWith","clearOnEnter","signal","widget","text","document","createTextNode","createElement","appendChild","className","cloneNode","newFoldFunction","rangeFinder","defineExtension","this","commands","toggleFold","foldCode","getCursor","fold","unfold","scanUp","foldAll","operation","lastLine","unfoldAll","registerHelper","funcs","Array","prototype","slice","arguments","start","found","helpers","getHelpers","cur","defaultOptions","auto","minFoldSize","name","undefined","editorOptions","foldOptions","defineOption","mod","require","val","old","Init","clearGutter","state","foldGutter","gutter","off","onGutterClick","onChange","onViewportChange","onFold","State","parseOptions","updateInViewport","opts","indicatorOpen","indicatorFolded","isFolded","findMarks","fromPos","find","marker","spec","elt","updateFoldInfo","foldOption","func","clsFolded","classTest","clsOpen","eachLine","mark","gutterMarkers","test","setGutterMarker","cls","RegExp","vp","getViewport","folded","clearTimeout","changeUpdate","setTimeout","foldOnChangeTimeSpan","updateViewportTimeSpan"],"sourceRoot":""}
1
+ {"version":3,"file":"static/js/430.de05cf2b.chunk.js","mappings":"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","sources":["../node_modules/codemirror/addon/fold/foldcode.js","../node_modules/codemirror/addon/fold/foldgutter.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\n function doFold(cm, pos, options, force) {\n if (options && options.call) {\n var finder = options;\n options = null;\n } else {\n var finder = getOption(cm, options, \"rangeFinder\");\n }\n if (typeof pos == \"number\") pos = CodeMirror.Pos(pos, 0);\n var minSize = getOption(cm, options, \"minFoldSize\");\n\n function getRange(allowFolded) {\n var range = finder(cm, pos);\n if (!range || range.to.line - range.from.line < minSize) return null;\n if (force === \"fold\") return range;\n\n var marks = cm.findMarksAt(range.from);\n for (var i = 0; i < marks.length; ++i) {\n if (marks[i].__isFold) {\n if (!allowFolded) return null;\n range.cleared = true;\n marks[i].clear();\n }\n }\n return range;\n }\n\n var range = getRange(true);\n if (getOption(cm, options, \"scanUp\")) while (!range && pos.line > cm.firstLine()) {\n pos = CodeMirror.Pos(pos.line - 1, 0);\n range = getRange(false);\n }\n if (!range || range.cleared || force === \"unfold\") return;\n\n var myWidget = makeWidget(cm, options, range);\n CodeMirror.on(myWidget, \"mousedown\", function(e) {\n myRange.clear();\n CodeMirror.e_preventDefault(e);\n });\n var myRange = cm.markText(range.from, range.to, {\n replacedWith: myWidget,\n clearOnEnter: getOption(cm, options, \"clearOnEnter\"),\n __isFold: true\n });\n myRange.on(\"clear\", function(from, to) {\n CodeMirror.signal(cm, \"unfold\", cm, from, to);\n });\n CodeMirror.signal(cm, \"fold\", cm, range.from, range.to);\n }\n\n function makeWidget(cm, options, range) {\n var widget = getOption(cm, options, \"widget\");\n\n if (typeof widget == \"function\") {\n widget = widget(range.from, range.to);\n }\n\n if (typeof widget == \"string\") {\n var text = document.createTextNode(widget);\n widget = document.createElement(\"span\");\n widget.appendChild(text);\n widget.className = \"CodeMirror-foldmarker\";\n } else if (widget) {\n widget = widget.cloneNode(true)\n }\n return widget;\n }\n\n // Clumsy backwards-compatible interface\n CodeMirror.newFoldFunction = function(rangeFinder, widget) {\n return function(cm, pos) { doFold(cm, pos, {rangeFinder: rangeFinder, widget: widget}); };\n };\n\n // New-style interface\n CodeMirror.defineExtension(\"foldCode\", function(pos, options, force) {\n doFold(this, pos, options, force);\n });\n\n CodeMirror.defineExtension(\"isFolded\", function(pos) {\n var marks = this.findMarksAt(pos);\n for (var i = 0; i < marks.length; ++i)\n if (marks[i].__isFold) return true;\n });\n\n CodeMirror.commands.toggleFold = function(cm) {\n cm.foldCode(cm.getCursor());\n };\n CodeMirror.commands.fold = function(cm) {\n cm.foldCode(cm.getCursor(), null, \"fold\");\n };\n CodeMirror.commands.unfold = function(cm) {\n cm.foldCode(cm.getCursor(), { scanUp: false }, \"unfold\");\n };\n CodeMirror.commands.foldAll = function(cm) {\n cm.operation(function() {\n for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)\n cm.foldCode(CodeMirror.Pos(i, 0), { scanUp: false }, \"fold\");\n });\n };\n CodeMirror.commands.unfoldAll = function(cm) {\n cm.operation(function() {\n for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)\n cm.foldCode(CodeMirror.Pos(i, 0), { scanUp: false }, \"unfold\");\n });\n };\n\n CodeMirror.registerHelper(\"fold\", \"combine\", function() {\n var funcs = Array.prototype.slice.call(arguments, 0);\n return function(cm, start) {\n for (var i = 0; i < funcs.length; ++i) {\n var found = funcs[i](cm, start);\n if (found) return found;\n }\n };\n });\n\n CodeMirror.registerHelper(\"fold\", \"auto\", function(cm, start) {\n var helpers = cm.getHelpers(start, \"fold\");\n for (var i = 0; i < helpers.length; i++) {\n var cur = helpers[i](cm, start);\n if (cur) return cur;\n }\n });\n\n var defaultOptions = {\n rangeFinder: CodeMirror.fold.auto,\n widget: \"\\u2194\",\n minFoldSize: 0,\n scanUp: false,\n clearOnEnter: true\n };\n\n CodeMirror.defineOption(\"foldOptions\", null);\n\n function getOption(cm, options, name) {\n if (options && options[name] !== undefined)\n return options[name];\n var editorOptions = cm.options.foldOptions;\n if (editorOptions && editorOptions[name] !== undefined)\n return editorOptions[name];\n return defaultOptions[name];\n }\n\n CodeMirror.defineExtension(\"foldOption\", function(options, name) {\n return getOption(this, options, name);\n });\n});\n","// 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\"), require(\"./foldcode\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"./foldcode\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineOption(\"foldGutter\", false, function(cm, val, old) {\n if (old && old != CodeMirror.Init) {\n cm.clearGutter(cm.state.foldGutter.options.gutter);\n cm.state.foldGutter = null;\n cm.off(\"gutterClick\", onGutterClick);\n cm.off(\"changes\", onChange);\n cm.off(\"viewportChange\", onViewportChange);\n cm.off(\"fold\", onFold);\n cm.off(\"unfold\", onFold);\n cm.off(\"swapDoc\", onChange);\n }\n if (val) {\n cm.state.foldGutter = new State(parseOptions(val));\n updateInViewport(cm);\n cm.on(\"gutterClick\", onGutterClick);\n cm.on(\"changes\", onChange);\n cm.on(\"viewportChange\", onViewportChange);\n cm.on(\"fold\", onFold);\n cm.on(\"unfold\", onFold);\n cm.on(\"swapDoc\", onChange);\n }\n });\n\n var Pos = CodeMirror.Pos;\n\n function State(options) {\n this.options = options;\n this.from = this.to = 0;\n }\n\n function parseOptions(opts) {\n if (opts === true) opts = {};\n if (opts.gutter == null) opts.gutter = \"CodeMirror-foldgutter\";\n if (opts.indicatorOpen == null) opts.indicatorOpen = \"CodeMirror-foldgutter-open\";\n if (opts.indicatorFolded == null) opts.indicatorFolded = \"CodeMirror-foldgutter-folded\";\n return opts;\n }\n\n function isFolded(cm, line) {\n var marks = cm.findMarks(Pos(line, 0), Pos(line + 1, 0));\n for (var i = 0; i < marks.length; ++i) {\n if (marks[i].__isFold) {\n var fromPos = marks[i].find(-1);\n if (fromPos && fromPos.line === line)\n return marks[i];\n }\n }\n }\n\n function marker(spec) {\n if (typeof spec == \"string\") {\n var elt = document.createElement(\"div\");\n elt.className = spec + \" CodeMirror-guttermarker-subtle\";\n return elt;\n } else {\n return spec.cloneNode(true);\n }\n }\n\n function updateFoldInfo(cm, from, to) {\n var opts = cm.state.foldGutter.options, cur = from - 1;\n var minSize = cm.foldOption(opts, \"minFoldSize\");\n var func = cm.foldOption(opts, \"rangeFinder\");\n // we can reuse the built-in indicator element if its className matches the new state\n var clsFolded = typeof opts.indicatorFolded == \"string\" && classTest(opts.indicatorFolded);\n var clsOpen = typeof opts.indicatorOpen == \"string\" && classTest(opts.indicatorOpen);\n cm.eachLine(from, to, function(line) {\n ++cur;\n var mark = null;\n var old = line.gutterMarkers;\n if (old) old = old[opts.gutter];\n if (isFolded(cm, cur)) {\n if (clsFolded && old && clsFolded.test(old.className)) return;\n mark = marker(opts.indicatorFolded);\n } else {\n var pos = Pos(cur, 0);\n var range = func && func(cm, pos);\n if (range && range.to.line - range.from.line >= minSize) {\n if (clsOpen && old && clsOpen.test(old.className)) return;\n mark = marker(opts.indicatorOpen);\n }\n }\n if (!mark && !old) return;\n cm.setGutterMarker(line, opts.gutter, mark);\n });\n }\n\n // copied from CodeMirror/src/util/dom.js\n function classTest(cls) { return new RegExp(\"(^|\\\\s)\" + cls + \"(?:$|\\\\s)\\\\s*\") }\n\n function updateInViewport(cm) {\n var vp = cm.getViewport(), state = cm.state.foldGutter;\n if (!state) return;\n cm.operation(function() {\n updateFoldInfo(cm, vp.from, vp.to);\n });\n state.from = vp.from; state.to = vp.to;\n }\n\n function onGutterClick(cm, line, gutter) {\n var state = cm.state.foldGutter;\n if (!state) return;\n var opts = state.options;\n if (gutter != opts.gutter) return;\n var folded = isFolded(cm, line);\n if (folded) folded.clear();\n else cm.foldCode(Pos(line, 0), opts);\n }\n\n function onChange(cm) {\n var state = cm.state.foldGutter;\n if (!state) return;\n var opts = state.options;\n state.from = state.to = 0;\n clearTimeout(state.changeUpdate);\n state.changeUpdate = setTimeout(function() { updateInViewport(cm); }, opts.foldOnChangeTimeSpan || 600);\n }\n\n function onViewportChange(cm) {\n var state = cm.state.foldGutter;\n if (!state) return;\n var opts = state.options;\n clearTimeout(state.changeUpdate);\n state.changeUpdate = setTimeout(function() {\n var vp = cm.getViewport();\n if (state.from == state.to || vp.from - state.to > 20 || state.from - vp.to > 20) {\n updateInViewport(cm);\n } else {\n cm.operation(function() {\n if (vp.from < state.from) {\n updateFoldInfo(cm, vp.from, state.from);\n state.from = vp.from;\n }\n if (vp.to > state.to) {\n updateFoldInfo(cm, state.to, vp.to);\n state.to = vp.to;\n }\n });\n }\n }, opts.updateViewportTimeSpan || 400);\n }\n\n function onFold(cm, from) {\n var state = cm.state.foldGutter;\n if (!state) return;\n var line = from.line;\n if (line >= state.from && line < state.to)\n updateFoldInfo(cm, line, line + 1);\n }\n});\n"],"names":["CodeMirror","doFold","cm","pos","options","force","call","finder","getOption","Pos","minSize","getRange","allowFolded","range","to","line","from","marks","findMarksAt","i","length","__isFold","cleared","clear","firstLine","myWidget","makeWidget","on","e","myRange","e_preventDefault","markText","replacedWith","clearOnEnter","signal","widget","text","document","createTextNode","createElement","appendChild","className","cloneNode","newFoldFunction","rangeFinder","defineExtension","this","commands","toggleFold","foldCode","getCursor","fold","unfold","scanUp","foldAll","operation","lastLine","unfoldAll","registerHelper","funcs","Array","prototype","slice","arguments","start","found","helpers","getHelpers","cur","defaultOptions","auto","minFoldSize","name","undefined","editorOptions","foldOptions","defineOption","mod","require","val","old","Init","clearGutter","state","foldGutter","gutter","off","onGutterClick","onChange","onViewportChange","onFold","State","parseOptions","updateInViewport","opts","indicatorOpen","indicatorFolded","isFolded","findMarks","fromPos","find","marker","spec","elt","updateFoldInfo","foldOption","func","clsFolded","classTest","clsOpen","eachLine","mark","gutterMarkers","test","setGutterMarker","cls","RegExp","vp","getViewport","folded","clearTimeout","changeUpdate","setTimeout","foldOnChangeTimeSpan","updateViewportTimeSpan"],"sourceRoot":""}
@@ -1 +1 @@
1
- {"version":3,"file":"static/js/503.a3ba392a.chunk.js","mappings":"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","sources":["../node_modules/codemirror/addon/comment/comment.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\n var noOptions = {};\n var nonWS = /[^\\s\\u00a0]/;\n var Pos = CodeMirror.Pos, cmp = CodeMirror.cmpPos;\n\n function firstNonWS(str) {\n var found = str.search(nonWS);\n return found == -1 ? 0 : found;\n }\n\n CodeMirror.commands.toggleComment = function(cm) {\n cm.toggleComment();\n };\n\n CodeMirror.defineExtension(\"toggleComment\", function(options) {\n if (!options) options = noOptions;\n var cm = this;\n var minLine = Infinity, ranges = this.listSelections(), mode = null;\n for (var i = ranges.length - 1; i >= 0; i--) {\n var from = ranges[i].from(), to = ranges[i].to();\n if (from.line >= minLine) continue;\n if (to.line >= minLine) to = Pos(minLine, 0);\n minLine = from.line;\n if (mode == null) {\n if (cm.uncomment(from, to, options)) mode = \"un\";\n else { cm.lineComment(from, to, options); mode = \"line\"; }\n } else if (mode == \"un\") {\n cm.uncomment(from, to, options);\n } else {\n cm.lineComment(from, to, options);\n }\n }\n });\n\n // Rough heuristic to try and detect lines that are part of multi-line string\n function probablyInsideString(cm, pos, line) {\n return /\\bstring\\b/.test(cm.getTokenTypeAt(Pos(pos.line, 0))) && !/^[\\'\\\"\\`]/.test(line)\n }\n\n function getMode(cm, pos) {\n var mode = cm.getMode()\n return mode.useInnerComments === false || !mode.innerMode ? mode : cm.getModeAt(pos)\n }\n\n CodeMirror.defineExtension(\"lineComment\", function(from, to, options) {\n if (!options) options = noOptions;\n var self = this, mode = getMode(self, from);\n var firstLine = self.getLine(from.line);\n if (firstLine == null || probablyInsideString(self, from, firstLine)) return;\n\n var commentString = options.lineComment || mode.lineComment;\n if (!commentString) {\n if (options.blockCommentStart || mode.blockCommentStart) {\n options.fullLines = true;\n self.blockComment(from, to, options);\n }\n return;\n }\n\n var end = Math.min(to.ch != 0 || to.line == from.line ? to.line + 1 : to.line, self.lastLine() + 1);\n var pad = options.padding == null ? \" \" : options.padding;\n var blankLines = options.commentBlankLines || from.line == to.line;\n\n self.operation(function() {\n if (options.indent) {\n var baseString = null;\n for (var i = from.line; i < end; ++i) {\n var line = self.getLine(i);\n var whitespace = line.slice(0, firstNonWS(line));\n if (baseString == null || baseString.length > whitespace.length) {\n baseString = whitespace;\n }\n }\n for (var i = from.line; i < end; ++i) {\n var line = self.getLine(i), cut = baseString.length;\n if (!blankLines && !nonWS.test(line)) continue;\n if (line.slice(0, cut) != baseString) cut = firstNonWS(line);\n self.replaceRange(baseString + commentString + pad, Pos(i, 0), Pos(i, cut));\n }\n } else {\n for (var i = from.line; i < end; ++i) {\n if (blankLines || nonWS.test(self.getLine(i)))\n self.replaceRange(commentString + pad, Pos(i, 0));\n }\n }\n });\n });\n\n CodeMirror.defineExtension(\"blockComment\", function(from, to, options) {\n if (!options) options = noOptions;\n var self = this, mode = getMode(self, from);\n var startString = options.blockCommentStart || mode.blockCommentStart;\n var endString = options.blockCommentEnd || mode.blockCommentEnd;\n if (!startString || !endString) {\n if ((options.lineComment || mode.lineComment) && options.fullLines != false)\n self.lineComment(from, to, options);\n return;\n }\n if (/\\bcomment\\b/.test(self.getTokenTypeAt(Pos(from.line, 0)))) return\n\n var end = Math.min(to.line, self.lastLine());\n if (end != from.line && to.ch == 0 && nonWS.test(self.getLine(end))) --end;\n\n var pad = options.padding == null ? \" \" : options.padding;\n if (from.line > end) return;\n\n self.operation(function() {\n if (options.fullLines != false) {\n var lastLineHasText = nonWS.test(self.getLine(end));\n self.replaceRange(pad + endString, Pos(end));\n self.replaceRange(startString + pad, Pos(from.line, 0));\n var lead = options.blockCommentLead || mode.blockCommentLead;\n if (lead != null) for (var i = from.line + 1; i <= end; ++i)\n if (i != end || lastLineHasText)\n self.replaceRange(lead + pad, Pos(i, 0));\n } else {\n var atCursor = cmp(self.getCursor(\"to\"), to) == 0, empty = !self.somethingSelected()\n self.replaceRange(endString, to);\n if (atCursor) self.setSelection(empty ? to : self.getCursor(\"from\"), to)\n self.replaceRange(startString, from);\n }\n });\n });\n\n CodeMirror.defineExtension(\"uncomment\", function(from, to, options) {\n if (!options) options = noOptions;\n var self = this, mode = getMode(self, from);\n var end = Math.min(to.ch != 0 || to.line == from.line ? to.line : to.line - 1, self.lastLine()), start = Math.min(from.line, end);\n\n // Try finding line comments\n var lineString = options.lineComment || mode.lineComment, lines = [];\n var pad = options.padding == null ? \" \" : options.padding, didSomething;\n lineComment: {\n if (!lineString) break lineComment;\n for (var i = start; i <= end; ++i) {\n var line = self.getLine(i);\n var found = line.indexOf(lineString);\n if (found > -1 && !/comment/.test(self.getTokenTypeAt(Pos(i, found + 1)))) found = -1;\n if (found == -1 && nonWS.test(line)) break lineComment;\n if (found > -1 && nonWS.test(line.slice(0, found))) break lineComment;\n lines.push(line);\n }\n self.operation(function() {\n for (var i = start; i <= end; ++i) {\n var line = lines[i - start];\n var pos = line.indexOf(lineString), endPos = pos + lineString.length;\n if (pos < 0) continue;\n if (line.slice(endPos, endPos + pad.length) == pad) endPos += pad.length;\n didSomething = true;\n self.replaceRange(\"\", Pos(i, pos), Pos(i, endPos));\n }\n });\n if (didSomething) return true;\n }\n\n // Try block comments\n var startString = options.blockCommentStart || mode.blockCommentStart;\n var endString = options.blockCommentEnd || mode.blockCommentEnd;\n if (!startString || !endString) return false;\n var lead = options.blockCommentLead || mode.blockCommentLead;\n var startLine = self.getLine(start), open = startLine.indexOf(startString)\n if (open == -1) return false\n var endLine = end == start ? startLine : self.getLine(end)\n var close = endLine.indexOf(endString, end == start ? open + startString.length : 0);\n var insideStart = Pos(start, open + 1), insideEnd = Pos(end, close + 1)\n if (close == -1 ||\n !/comment/.test(self.getTokenTypeAt(insideStart)) ||\n !/comment/.test(self.getTokenTypeAt(insideEnd)) ||\n self.getRange(insideStart, insideEnd, \"\\n\").indexOf(endString) > -1)\n return false;\n\n // Avoid killing block comments completely outside the selection.\n // Positions of the last startString before the start of the selection, and the first endString after it.\n var lastStart = startLine.lastIndexOf(startString, from.ch);\n var firstEnd = lastStart == -1 ? -1 : startLine.slice(0, from.ch).indexOf(endString, lastStart + startString.length);\n if (lastStart != -1 && firstEnd != -1 && firstEnd + endString.length != from.ch) return false;\n // Positions of the first endString after the end of the selection, and the last startString before it.\n firstEnd = endLine.indexOf(endString, to.ch);\n var almostLastStart = endLine.slice(to.ch).lastIndexOf(startString, firstEnd - to.ch);\n lastStart = (firstEnd == -1 || almostLastStart == -1) ? -1 : to.ch + almostLastStart;\n if (firstEnd != -1 && lastStart != -1 && lastStart != to.ch) return false;\n\n self.operation(function() {\n self.replaceRange(\"\", Pos(end, close - (pad && endLine.slice(close - pad.length, close) == pad ? pad.length : 0)),\n Pos(end, close + endString.length));\n var openEnd = open + startString.length;\n if (pad && startLine.slice(openEnd, openEnd + pad.length) == pad) openEnd += pad.length;\n self.replaceRange(\"\", Pos(start, open), Pos(start, openEnd));\n if (lead) for (var i = start + 1; i <= end; ++i) {\n var line = self.getLine(i), found = line.indexOf(lead);\n if (found == -1 || nonWS.test(line.slice(0, found))) continue;\n var foundEnd = found + lead.length;\n if (pad && line.slice(foundEnd, foundEnd + pad.length) == pad) foundEnd += pad.length;\n self.replaceRange(\"\", Pos(i, found), Pos(i, foundEnd));\n }\n });\n return true;\n });\n});\n"],"names":["CodeMirror","noOptions","nonWS","Pos","cmp","cmpPos","firstNonWS","str","found","search","probablyInsideString","cm","pos","line","test","getTokenTypeAt","getMode","mode","useInnerComments","innerMode","getModeAt","commands","toggleComment","defineExtension","options","this","minLine","Infinity","ranges","listSelections","i","length","from","to","uncomment","lineComment","self","firstLine","getLine","commentString","end","Math","min","ch","lastLine","pad","padding","blankLines","commentBlankLines","operation","indent","baseString","whitespace","slice","cut","replaceRange","blockCommentStart","fullLines","blockComment","startString","endString","blockCommentEnd","lastLineHasText","lead","blockCommentLead","atCursor","getCursor","empty","somethingSelected","setSelection","didSomething","start","lineString","lines","indexOf","push","endPos","startLine","open","endLine","close","insideStart","insideEnd","getRange","lastStart","lastIndexOf","firstEnd","almostLastStart","openEnd","foundEnd","mod","require"],"sourceRoot":""}
1
+ {"version":3,"file":"static/js/503.a3ba392a.chunk.js","mappings":"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","sources":["../node_modules/codemirror/addon/comment/comment.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\n var noOptions = {};\n var nonWS = /[^\\s\\u00a0]/;\n var Pos = CodeMirror.Pos, cmp = CodeMirror.cmpPos;\n\n function firstNonWS(str) {\n var found = str.search(nonWS);\n return found == -1 ? 0 : found;\n }\n\n CodeMirror.commands.toggleComment = function(cm) {\n cm.toggleComment();\n };\n\n CodeMirror.defineExtension(\"toggleComment\", function(options) {\n if (!options) options = noOptions;\n var cm = this;\n var minLine = Infinity, ranges = this.listSelections(), mode = null;\n for (var i = ranges.length - 1; i >= 0; i--) {\n var from = ranges[i].from(), to = ranges[i].to();\n if (from.line >= minLine) continue;\n if (to.line >= minLine) to = Pos(minLine, 0);\n minLine = from.line;\n if (mode == null) {\n if (cm.uncomment(from, to, options)) mode = \"un\";\n else { cm.lineComment(from, to, options); mode = \"line\"; }\n } else if (mode == \"un\") {\n cm.uncomment(from, to, options);\n } else {\n cm.lineComment(from, to, options);\n }\n }\n });\n\n // Rough heuristic to try and detect lines that are part of multi-line string\n function probablyInsideString(cm, pos, line) {\n return /\\bstring\\b/.test(cm.getTokenTypeAt(Pos(pos.line, 0))) && !/^[\\'\\\"\\`]/.test(line)\n }\n\n function getMode(cm, pos) {\n var mode = cm.getMode()\n return mode.useInnerComments === false || !mode.innerMode ? mode : cm.getModeAt(pos)\n }\n\n CodeMirror.defineExtension(\"lineComment\", function(from, to, options) {\n if (!options) options = noOptions;\n var self = this, mode = getMode(self, from);\n var firstLine = self.getLine(from.line);\n if (firstLine == null || probablyInsideString(self, from, firstLine)) return;\n\n var commentString = options.lineComment || mode.lineComment;\n if (!commentString) {\n if (options.blockCommentStart || mode.blockCommentStart) {\n options.fullLines = true;\n self.blockComment(from, to, options);\n }\n return;\n }\n\n var end = Math.min(to.ch != 0 || to.line == from.line ? to.line + 1 : to.line, self.lastLine() + 1);\n var pad = options.padding == null ? \" \" : options.padding;\n var blankLines = options.commentBlankLines || from.line == to.line;\n\n self.operation(function() {\n if (options.indent) {\n var baseString = null;\n for (var i = from.line; i < end; ++i) {\n var line = self.getLine(i);\n var whitespace = line.slice(0, firstNonWS(line));\n if (baseString == null || baseString.length > whitespace.length) {\n baseString = whitespace;\n }\n }\n for (var i = from.line; i < end; ++i) {\n var line = self.getLine(i), cut = baseString.length;\n if (!blankLines && !nonWS.test(line)) continue;\n if (line.slice(0, cut) != baseString) cut = firstNonWS(line);\n self.replaceRange(baseString + commentString + pad, Pos(i, 0), Pos(i, cut));\n }\n } else {\n for (var i = from.line; i < end; ++i) {\n if (blankLines || nonWS.test(self.getLine(i)))\n self.replaceRange(commentString + pad, Pos(i, 0));\n }\n }\n });\n });\n\n CodeMirror.defineExtension(\"blockComment\", function(from, to, options) {\n if (!options) options = noOptions;\n var self = this, mode = getMode(self, from);\n var startString = options.blockCommentStart || mode.blockCommentStart;\n var endString = options.blockCommentEnd || mode.blockCommentEnd;\n if (!startString || !endString) {\n if ((options.lineComment || mode.lineComment) && options.fullLines != false)\n self.lineComment(from, to, options);\n return;\n }\n if (/\\bcomment\\b/.test(self.getTokenTypeAt(Pos(from.line, 0)))) return\n\n var end = Math.min(to.line, self.lastLine());\n if (end != from.line && to.ch == 0 && nonWS.test(self.getLine(end))) --end;\n\n var pad = options.padding == null ? \" \" : options.padding;\n if (from.line > end) return;\n\n self.operation(function() {\n if (options.fullLines != false) {\n var lastLineHasText = nonWS.test(self.getLine(end));\n self.replaceRange(pad + endString, Pos(end));\n self.replaceRange(startString + pad, Pos(from.line, 0));\n var lead = options.blockCommentLead || mode.blockCommentLead;\n if (lead != null) for (var i = from.line + 1; i <= end; ++i)\n if (i != end || lastLineHasText)\n self.replaceRange(lead + pad, Pos(i, 0));\n } else {\n var atCursor = cmp(self.getCursor(\"to\"), to) == 0, empty = !self.somethingSelected()\n self.replaceRange(endString, to);\n if (atCursor) self.setSelection(empty ? to : self.getCursor(\"from\"), to)\n self.replaceRange(startString, from);\n }\n });\n });\n\n CodeMirror.defineExtension(\"uncomment\", function(from, to, options) {\n if (!options) options = noOptions;\n var self = this, mode = getMode(self, from);\n var end = Math.min(to.ch != 0 || to.line == from.line ? to.line : to.line - 1, self.lastLine()), start = Math.min(from.line, end);\n\n // Try finding line comments\n var lineString = options.lineComment || mode.lineComment, lines = [];\n var pad = options.padding == null ? \" \" : options.padding, didSomething;\n lineComment: {\n if (!lineString) break lineComment;\n for (var i = start; i <= end; ++i) {\n var line = self.getLine(i);\n var found = line.indexOf(lineString);\n if (found > -1 && !/comment/.test(self.getTokenTypeAt(Pos(i, found + 1)))) found = -1;\n if (found == -1 && nonWS.test(line)) break lineComment;\n if (found > -1 && nonWS.test(line.slice(0, found))) break lineComment;\n lines.push(line);\n }\n self.operation(function() {\n for (var i = start; i <= end; ++i) {\n var line = lines[i - start];\n var pos = line.indexOf(lineString), endPos = pos + lineString.length;\n if (pos < 0) continue;\n if (line.slice(endPos, endPos + pad.length) == pad) endPos += pad.length;\n didSomething = true;\n self.replaceRange(\"\", Pos(i, pos), Pos(i, endPos));\n }\n });\n if (didSomething) return true;\n }\n\n // Try block comments\n var startString = options.blockCommentStart || mode.blockCommentStart;\n var endString = options.blockCommentEnd || mode.blockCommentEnd;\n if (!startString || !endString) return false;\n var lead = options.blockCommentLead || mode.blockCommentLead;\n var startLine = self.getLine(start), open = startLine.indexOf(startString)\n if (open == -1) return false\n var endLine = end == start ? startLine : self.getLine(end)\n var close = endLine.indexOf(endString, end == start ? open + startString.length : 0);\n var insideStart = Pos(start, open + 1), insideEnd = Pos(end, close + 1)\n if (close == -1 ||\n !/comment/.test(self.getTokenTypeAt(insideStart)) ||\n !/comment/.test(self.getTokenTypeAt(insideEnd)) ||\n self.getRange(insideStart, insideEnd, \"\\n\").indexOf(endString) > -1)\n return false;\n\n // Avoid killing block comments completely outside the selection.\n // Positions of the last startString before the start of the selection, and the first endString after it.\n var lastStart = startLine.lastIndexOf(startString, from.ch);\n var firstEnd = lastStart == -1 ? -1 : startLine.slice(0, from.ch).indexOf(endString, lastStart + startString.length);\n if (lastStart != -1 && firstEnd != -1 && firstEnd + endString.length != from.ch) return false;\n // Positions of the first endString after the end of the selection, and the last startString before it.\n firstEnd = endLine.indexOf(endString, to.ch);\n var almostLastStart = endLine.slice(to.ch).lastIndexOf(startString, firstEnd - to.ch);\n lastStart = (firstEnd == -1 || almostLastStart == -1) ? -1 : to.ch + almostLastStart;\n if (firstEnd != -1 && lastStart != -1 && lastStart != to.ch) return false;\n\n self.operation(function() {\n self.replaceRange(\"\", Pos(end, close - (pad && endLine.slice(close - pad.length, close) == pad ? pad.length : 0)),\n Pos(end, close + endString.length));\n var openEnd = open + startString.length;\n if (pad && startLine.slice(openEnd, openEnd + pad.length) == pad) openEnd += pad.length;\n self.replaceRange(\"\", Pos(start, open), Pos(start, openEnd));\n if (lead) for (var i = start + 1; i <= end; ++i) {\n var line = self.getLine(i), found = line.indexOf(lead);\n if (found == -1 || nonWS.test(line.slice(0, found))) continue;\n var foundEnd = found + lead.length;\n if (pad && line.slice(foundEnd, foundEnd + pad.length) == pad) foundEnd += pad.length;\n self.replaceRange(\"\", Pos(i, found), Pos(i, foundEnd));\n }\n });\n return true;\n });\n});\n"],"names":["CodeMirror","noOptions","nonWS","Pos","cmp","cmpPos","firstNonWS","str","found","search","probablyInsideString","cm","pos","line","test","getTokenTypeAt","getMode","mode","useInnerComments","innerMode","getModeAt","commands","toggleComment","defineExtension","options","this","minLine","Infinity","ranges","listSelections","i","length","from","to","uncomment","lineComment","self","firstLine","getLine","commentString","end","Math","min","ch","lastLine","pad","padding","blankLines","commentBlankLines","operation","indent","baseString","whitespace","slice","cut","replaceRange","blockCommentStart","fullLines","blockComment","startString","endString","blockCommentEnd","lastLineHasText","lead","blockCommentLead","atCursor","getCursor","empty","somethingSelected","setSelection","didSomething","start","lineString","lines","indexOf","push","endPos","startLine","open","endLine","close","insideStart","insideEnd","getRange","lastStart","lastIndexOf","firstEnd","almostLastStart","openEnd","foundEnd","mod","require"],"sourceRoot":""}
@@ -1 +1 @@
1
- {"version":3,"file":"static/js/580.b48b02d9.chunk.js","mappings":"gPASA,iBAEA,UAmCA,SAASA,EAKPC,EACAC,G,QAEMC,EAASF,EAAME,OAQrB,QAJGA,GAA4B,IAAlBA,EAAOC,OAEdD,EAAOA,EAAOC,OAAS,KACJ,QAAlB,EAAAC,KAAKC,qBAAaC,IAAAA,OAAA,EAAAA,EAAEC,KAAKN,IAAa,EAAI,GAF3CD,EAAMQ,cAGK,KAAiB,QAAX,EAAAJ,KAAKK,cAAMC,IAAAA,OAAA,EAAAA,EAAEC,aAAc,GAtCpDC,EAAAA,QAAWC,WAAW,mBAAmB,SAAAJ,GACvC,IAAMK,EAASC,EAAAA,aAAa,CAC1BC,cAAe,SAAAC,GAAU,OAAAA,EAAOC,YAChCC,SAAUC,EACVC,WAAYC,EACZC,aAAc,CAAEC,QAASf,EAAOe,WAGlC,MAAO,CACLf,OAAM,EACNgB,WAAYX,EAAOW,WACnBC,MAAQZ,EAAOY,MACf3B,OAAM,EACNM,cAAe,YACfsB,KAAM,QACNC,cAAe,CACbC,MAAO,SACPC,QAAS,YA2Bf,IAAMV,EAAW,CAEfW,YAAa,kBAGbC,OAAQ,4DAGRC,OAAQ,0DAGRC,QAAS,oBAMLZ,EAAa,CACjBa,SAAU,CAACpB,EAAAA,EAAE,KAAMA,EAAAA,KAAK,QAASA,EAAAA,EAAE,MAAOA,EAAAA,EAAE,MAC5CqB,MAAO,CAACrB,EAAAA,EAAE,SAAU,OAAQA,EAAAA,EAAE,KAAM,SACpCsB,MAAA,SAAMX,GACJ,OAAQA,EAAMY,MACZ,IAAK,SACH,MAAO,cACT,IAAK,SACH,MAAO,cACT,IAAK,cACH,OAAQZ,EAAMa,OACZ,IAAK,IACH,MAAO,YACT,IAAK,IACH,MAAO,cAEX,OAAO,KACT,IAAK,UACH,OAAQb,EAAMa,OACZ,IAAK,OACL,IAAK,QACH,MAAO,eACT,IAAK,OACH,MAAO,YAEX,OAAO,OAGbC,YAAa,CAACzB,EAAAA,EAAE,SAAU,WAC1B0B,YAAa,CAAC1B,EAAAA,EAAE,SAAU,WAC1B2B,aAAc,CAAC3B,EAAAA,EAAE,UAAW,YAC5B4B,UAAW,CAAC5B,EAAAA,EAAE,UAAW,YACzB6B,UAAW,CAAC7B,EAAAA,EAAE,KAAMA,EAAAA,KAAK,QAASA,EAAAA,EAAE,MAAOA,EAAAA,EAAE,MAC7C8B,YAAa,CAAC9B,EAAAA,EAAE,KAAMA,EAAAA,KAAK,cAAeA,EAAAA,EAAE,MAAOA,EAAAA,EAAE,MACrD+B,YAAa,CAAC/B,EAAAA,EAAE,SAAU,YAAaA,EAAAA,EAAE,KAAM","sources":["../node_modules/codemirror-graphql/src/results/mode.ts"],"sourcesContent":["/**\n * Copyright (c) 2021 GraphQL Contributors\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nimport CodeMirror from 'codemirror';\n\nimport {\n list,\n t,\n onlineParser,\n p,\n State,\n Token,\n} from 'graphql-language-service';\n\n/**\n * This mode defines JSON, but provides a data-laden parser state to enable\n * better code intelligence.\n */\nCodeMirror.defineMode('graphql-results', config => {\n const parser = onlineParser({\n eatWhitespace: stream => stream.eatSpace(),\n lexRules: LexRules,\n parseRules: ParseRules,\n editorConfig: { tabSize: config.tabSize },\n });\n\n return {\n config,\n startState: parser.startState,\n token: (parser.token as unknown) as CodeMirror.Mode<any>['token'], // TODO: Check if the types are indeed compatible\n indent,\n electricInput: /^\\s*[}\\]]/,\n fold: 'brace',\n closeBrackets: {\n pairs: '[]{}\"\"',\n explode: '[]{}',\n },\n };\n});\n\nfunction indent(\n this: CodeMirror.Mode<any> & {\n electricInput?: RegExp;\n config?: CodeMirror.EditorConfiguration;\n },\n state: State,\n textAfter: string,\n) {\n const levels = state.levels;\n // If there is no stack of levels, use the current level.\n // Otherwise, use the top level, pre-emptively dedenting for close braces.\n const level =\n !levels || levels.length === 0\n ? state.indentLevel\n : levels[levels.length - 1] -\n (this.electricInput?.test(textAfter) ? 1 : 0);\n return (level || 0) * (this.config?.indentUnit || 0);\n}\n\n/**\n * The lexer rules. These are exactly as described by the spec.\n */\nconst LexRules = {\n // All Punctuation used in JSON.\n Punctuation: /^\\[|]|\\{|\\}|:|,/,\n\n // JSON Number.\n Number: /^-?(?:0|(?:[1-9][0-9]*))(?:\\.[0-9]*)?(?:[eE][+-]?[0-9]+)?/,\n\n // JSON String.\n String: /^\"(?:[^\"\\\\]|\\\\(?:\"|\\/|\\\\|b|f|n|r|t|u[0-9a-fA-F]{4}))*\"?/,\n\n // JSON literal keywords.\n Keyword: /^true|false|null/,\n};\n\n/**\n * The parser rules for JSON.\n */\nconst ParseRules = {\n Document: [p('{'), list('Entry', p(',')), p('}')],\n Entry: [t('String', 'def'), p(':'), 'Value'],\n Value(token: Token) {\n switch (token.kind) {\n case 'Number':\n return 'NumberValue';\n case 'String':\n return 'StringValue';\n case 'Punctuation':\n switch (token.value) {\n case '[':\n return 'ListValue';\n case '{':\n return 'ObjectValue';\n }\n return null;\n case 'Keyword':\n switch (token.value) {\n case 'true':\n case 'false':\n return 'BooleanValue';\n case 'null':\n return 'NullValue';\n }\n return null;\n }\n },\n NumberValue: [t('Number', 'number')],\n StringValue: [t('String', 'string')],\n BooleanValue: [t('Keyword', 'builtin')],\n NullValue: [t('Keyword', 'keyword')],\n ListValue: [p('['), list('Value', p(',')), p(']')],\n ObjectValue: [p('{'), list('ObjectField', p(',')), p('}')],\n ObjectField: [t('String', 'property'), p(':'), 'Value'],\n};\n"],"names":["indent","state","textAfter","levels","length","this","electricInput","_a","test","indentLevel","config","_b","indentUnit","codemirror_1","defineMode","parser","graphql_language_service_1","eatWhitespace","stream","eatSpace","lexRules","LexRules","parseRules","ParseRules","editorConfig","tabSize","startState","token","fold","closeBrackets","pairs","explode","Punctuation","Number","String","Keyword","Document","Entry","Value","kind","value","NumberValue","StringValue","BooleanValue","NullValue","ListValue","ObjectValue","ObjectField"],"sourceRoot":""}
1
+ {"version":3,"file":"static/js/580.b48b02d9.chunk.js","mappings":"gPASA,iBAEA,UAmCA,SAASA,EAKPC,EACAC,G,QAEMC,EAASF,EAAME,OAQrB,QAJGA,GAA4B,IAAlBA,EAAOC,OAEdD,EAAOA,EAAOC,OAAS,KACJ,QAAlB,EAAAC,KAAKC,qBAAaC,IAAAA,OAAA,EAAAA,EAAEC,KAAKN,IAAa,EAAI,GAF3CD,EAAMQ,cAGK,KAAiB,QAAX,EAAAJ,KAAKK,cAAMC,IAAAA,OAAA,EAAAA,EAAEC,aAAc,EACnD,CAvCDC,EAAAA,QAAWC,WAAW,mBAAmB,SAAAJ,GACvC,IAAMK,EAASC,EAAAA,aAAa,CAC1BC,cAAe,SAAAC,GAAU,OAAAA,EAAOC,UAAU,EAC1CC,SAAUC,EACVC,WAAYC,EACZC,aAAc,CAAEC,QAASf,EAAOe,WAGlC,MAAO,CACLf,OAAM,EACNgB,WAAYX,EAAOW,WACnBC,MAAQZ,EAAOY,MACf3B,OAAM,EACNM,cAAe,YACfsB,KAAM,QACNC,cAAe,CACbC,MAAO,SACPC,QAAS,QAGd,IAwBD,IAAMV,EAAW,CAEfW,YAAa,kBAGbC,OAAQ,4DAGRC,OAAQ,0DAGRC,QAAS,oBAMLZ,EAAa,CACjBa,SAAU,CAACpB,EAAAA,EAAE,KAAMA,EAAAA,KAAK,QAASA,EAAAA,EAAE,MAAOA,EAAAA,EAAE,MAC5CqB,MAAO,CAACrB,EAAAA,EAAE,SAAU,OAAQA,EAAAA,EAAE,KAAM,SACpCsB,MAAA,SAAMX,GACJ,OAAQA,EAAMY,MACZ,IAAK,SACH,MAAO,cACT,IAAK,SACH,MAAO,cACT,IAAK,cACH,OAAQZ,EAAMa,OACZ,IAAK,IACH,MAAO,YACT,IAAK,IACH,MAAO,cAEX,OAAO,KACT,IAAK,UACH,OAAQb,EAAMa,OACZ,IAAK,OACL,IAAK,QACH,MAAO,eACT,IAAK,OACH,MAAO,YAEX,OAAO,KAEZ,EACDC,YAAa,CAACzB,EAAAA,EAAE,SAAU,WAC1B0B,YAAa,CAAC1B,EAAAA,EAAE,SAAU,WAC1B2B,aAAc,CAAC3B,EAAAA,EAAE,UAAW,YAC5B4B,UAAW,CAAC5B,EAAAA,EAAE,UAAW,YACzB6B,UAAW,CAAC7B,EAAAA,EAAE,KAAMA,EAAAA,KAAK,QAASA,EAAAA,EAAE,MAAOA,EAAAA,EAAE,MAC7C8B,YAAa,CAAC9B,EAAAA,EAAE,KAAMA,EAAAA,KAAK,cAAeA,EAAAA,EAAE,MAAOA,EAAAA,EAAE,MACrD+B,YAAa,CAAC/B,EAAAA,EAAE,SAAU,YAAaA,EAAAA,EAAE,KAAM,S","sources":["../node_modules/codemirror-graphql/src/results/mode.ts"],"sourcesContent":["/**\n * Copyright (c) 2021 GraphQL Contributors\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nimport CodeMirror from 'codemirror';\n\nimport {\n list,\n t,\n onlineParser,\n p,\n State,\n Token,\n} from 'graphql-language-service';\n\n/**\n * This mode defines JSON, but provides a data-laden parser state to enable\n * better code intelligence.\n */\nCodeMirror.defineMode('graphql-results', config => {\n const parser = onlineParser({\n eatWhitespace: stream => stream.eatSpace(),\n lexRules: LexRules,\n parseRules: ParseRules,\n editorConfig: { tabSize: config.tabSize },\n });\n\n return {\n config,\n startState: parser.startState,\n token: (parser.token as unknown) as CodeMirror.Mode<any>['token'], // TODO: Check if the types are indeed compatible\n indent,\n electricInput: /^\\s*[}\\]]/,\n fold: 'brace',\n closeBrackets: {\n pairs: '[]{}\"\"',\n explode: '[]{}',\n },\n };\n});\n\nfunction indent(\n this: CodeMirror.Mode<any> & {\n electricInput?: RegExp;\n config?: CodeMirror.EditorConfiguration;\n },\n state: State,\n textAfter: string,\n) {\n const levels = state.levels;\n // If there is no stack of levels, use the current level.\n // Otherwise, use the top level, pre-emptively dedenting for close braces.\n const level =\n !levels || levels.length === 0\n ? state.indentLevel\n : levels[levels.length - 1] -\n (this.electricInput?.test(textAfter) ? 1 : 0);\n return (level || 0) * (this.config?.indentUnit || 0);\n}\n\n/**\n * The lexer rules. These are exactly as described by the spec.\n */\nconst LexRules = {\n // All Punctuation used in JSON.\n Punctuation: /^\\[|]|\\{|\\}|:|,/,\n\n // JSON Number.\n Number: /^-?(?:0|(?:[1-9][0-9]*))(?:\\.[0-9]*)?(?:[eE][+-]?[0-9]+)?/,\n\n // JSON String.\n String: /^\"(?:[^\"\\\\]|\\\\(?:\"|\\/|\\\\|b|f|n|r|t|u[0-9a-fA-F]{4}))*\"?/,\n\n // JSON literal keywords.\n Keyword: /^true|false|null/,\n};\n\n/**\n * The parser rules for JSON.\n */\nconst ParseRules = {\n Document: [p('{'), list('Entry', p(',')), p('}')],\n Entry: [t('String', 'def'), p(':'), 'Value'],\n Value(token: Token) {\n switch (token.kind) {\n case 'Number':\n return 'NumberValue';\n case 'String':\n return 'StringValue';\n case 'Punctuation':\n switch (token.value) {\n case '[':\n return 'ListValue';\n case '{':\n return 'ObjectValue';\n }\n return null;\n case 'Keyword':\n switch (token.value) {\n case 'true':\n case 'false':\n return 'BooleanValue';\n case 'null':\n return 'NullValue';\n }\n return null;\n }\n },\n NumberValue: [t('Number', 'number')],\n StringValue: [t('String', 'string')],\n BooleanValue: [t('Keyword', 'builtin')],\n NullValue: [t('Keyword', 'keyword')],\n ListValue: [p('['), list('Value', p(',')), p(']')],\n ObjectValue: [p('{'), list('ObjectField', p(',')), p('}')],\n ObjectField: [t('String', 'property'), p(':'), 'Value'],\n};\n"],"names":["indent","state","textAfter","levels","length","this","electricInput","_a","test","indentLevel","config","_b","indentUnit","codemirror_1","defineMode","parser","graphql_language_service_1","eatWhitespace","stream","eatSpace","lexRules","LexRules","parseRules","ParseRules","editorConfig","tabSize","startState","token","fold","closeBrackets","pairs","explode","Punctuation","Number","String","Keyword","Document","Entry","Value","kind","value","NumberValue","StringValue","BooleanValue","NullValue","ListValue","ObjectValue","ObjectField"],"sourceRoot":""}