| 
									
										
										
										
											2018-01-22 23:07:04 -05:00
										 |  |  | // CodeMirror, copyright (c) by Marijn Haverbeke and others
 | 
					
						
							| 
									
										
										
										
											2022-10-15 12:22:09 +02:00
										 |  |  | // Distributed under an MIT license: https://codemirror.net/5/LICENSE
 | 
					
						
							| 
									
										
										
										
											2018-01-22 23:07:04 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | (function(mod) { | 
					
						
							|  |  |  |   if (typeof exports == "object" && typeof module == "object") // CommonJS
 | 
					
						
							|  |  |  |     mod(require("../../lib/codemirror"), "cjs"); | 
					
						
							|  |  |  |   else if (typeof define == "function" && define.amd) // AMD
 | 
					
						
							|  |  |  |     define(["../../lib/codemirror"], function(CM) { mod(CM, "amd"); }); | 
					
						
							|  |  |  |   else // Plain browser env
 | 
					
						
							|  |  |  |     mod(CodeMirror, "plain"); | 
					
						
							|  |  |  | })(function(CodeMirror, env) { | 
					
						
							|  |  |  |   if (!CodeMirror.modeURL) CodeMirror.modeURL = "../mode/%N/%N.js"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   var loading = {}; | 
					
						
							|  |  |  |   function splitCallback(cont, n) { | 
					
						
							|  |  |  |     var countDown = n; | 
					
						
							|  |  |  |     return function() { if (--countDown == 0) cont(); }; | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2020-09-20 21:41:40 +02:00
										 |  |  |   function ensureDeps(mode, cont, options) { | 
					
						
							|  |  |  |     var modeObj = CodeMirror.modes[mode], deps = modeObj && modeObj.dependencies; | 
					
						
							| 
									
										
										
										
											2018-01-22 23:07:04 -05:00
										 |  |  |     if (!deps) return cont(); | 
					
						
							|  |  |  |     var missing = []; | 
					
						
							|  |  |  |     for (var i = 0; i < deps.length; ++i) { | 
					
						
							|  |  |  |       if (!CodeMirror.modes.hasOwnProperty(deps[i])) | 
					
						
							|  |  |  |         missing.push(deps[i]); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     if (!missing.length) return cont(); | 
					
						
							|  |  |  |     var split = splitCallback(cont, missing.length); | 
					
						
							|  |  |  |     for (var i = 0; i < missing.length; ++i) | 
					
						
							| 
									
										
										
										
											2020-09-20 21:41:40 +02:00
										 |  |  |       CodeMirror.requireMode(missing[i], split, options); | 
					
						
							| 
									
										
										
										
											2018-01-22 23:07:04 -05:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-20 21:41:40 +02:00
										 |  |  |   CodeMirror.requireMode = function(mode, cont, options) { | 
					
						
							| 
									
										
										
										
											2018-01-22 23:07:04 -05:00
										 |  |  |     if (typeof mode != "string") mode = mode.name; | 
					
						
							| 
									
										
										
										
											2020-09-20 21:41:40 +02:00
										 |  |  |     if (CodeMirror.modes.hasOwnProperty(mode)) return ensureDeps(mode, cont, options); | 
					
						
							| 
									
										
										
										
											2018-01-22 23:07:04 -05:00
										 |  |  |     if (loading.hasOwnProperty(mode)) return loading[mode].push(cont); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-20 21:41:40 +02:00
										 |  |  |     var file = options && options.path ? options.path(mode) : CodeMirror.modeURL.replace(/%N/g, mode); | 
					
						
							|  |  |  |     if (options && options.loadMode) { | 
					
						
							|  |  |  |       options.loadMode(file, function() { ensureDeps(mode, cont, options) }) | 
					
						
							|  |  |  |     } else if (env == "plain") { | 
					
						
							| 
									
										
										
										
											2018-01-22 23:07:04 -05:00
										 |  |  |       var script = document.createElement("script"); | 
					
						
							|  |  |  |       script.src = file; | 
					
						
							|  |  |  |       var others = document.getElementsByTagName("script")[0]; | 
					
						
							|  |  |  |       var list = loading[mode] = [cont]; | 
					
						
							|  |  |  |       CodeMirror.on(script, "load", function() { | 
					
						
							|  |  |  |         ensureDeps(mode, function() { | 
					
						
							|  |  |  |           for (var i = 0; i < list.length; ++i) list[i](); | 
					
						
							| 
									
										
										
										
											2020-09-20 21:41:40 +02:00
										 |  |  |         }, options); | 
					
						
							| 
									
										
										
										
											2018-01-22 23:07:04 -05:00
										 |  |  |       }); | 
					
						
							|  |  |  |       others.parentNode.insertBefore(script, others); | 
					
						
							|  |  |  |     } else if (env == "cjs") { | 
					
						
							|  |  |  |       require(file); | 
					
						
							|  |  |  |       cont(); | 
					
						
							|  |  |  |     } else if (env == "amd") { | 
					
						
							|  |  |  |       requirejs([file], cont); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-20 21:41:40 +02:00
										 |  |  |   CodeMirror.autoLoadMode = function(instance, mode, options) { | 
					
						
							| 
									
										
										
										
											2018-01-22 23:07:04 -05:00
										 |  |  |     if (!CodeMirror.modes.hasOwnProperty(mode)) | 
					
						
							|  |  |  |       CodeMirror.requireMode(mode, function() { | 
					
						
							|  |  |  |         instance.setOption("mode", instance.getOption("mode")); | 
					
						
							| 
									
										
										
										
											2020-09-20 21:41:40 +02:00
										 |  |  |       }, options); | 
					
						
							| 
									
										
										
										
											2018-01-22 23:07:04 -05:00
										 |  |  |   }; | 
					
						
							|  |  |  | }); |