PluginProbe ʕ •ᴥ•ʔ
Pods – Custom Content Types and Fields / trunk
Pods – Custom Content Types and Fields vtrunk
trunk 1.14.8 2.7.31.3 2.8.23.3 2.9.19.3 3.0.10.3 3.1.4.1 3.2.0 3.2.1 3.2.1.1 3.2.2 3.2.4 3.2.5 3.2.6 3.2.7 3.2.7.1 3.2.8 3.2.8.1 3.2.8.2 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9
pods / ui / js / codemirror / addon / mode / loadmode.js
pods / ui / js / codemirror / addon / mode Last commit date
loadmode.js 2 years ago overlay.js 2 years ago
loadmode.js
67 lines
1 // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 // Distributed under an MIT license: https://codemirror.net/5/LICENSE
3
4 (function(mod) {
5 if (typeof exports == "object" && typeof module == "object") // CommonJS
6 mod(require("../../lib/codemirror"), "cjs");
7 else if (typeof define == "function" && define.amd) // AMD
8 define(["../../lib/codemirror"], function(CM) { mod(CM, "amd"); });
9 else // Plain browser env
10 mod(CodeMirror, "plain");
11 })(function(CodeMirror, env) {
12 if (!CodeMirror.modeURL) CodeMirror.modeURL = "../mode/%N/%N.js";
13
14 var loading = {};
15 function splitCallback(cont, n) {
16 var countDown = n;
17 return function() { if (--countDown == 0) cont(); };
18 }
19 function ensureDeps(mode, cont, options) {
20 var modeObj = CodeMirror.modes[mode], deps = modeObj && modeObj.dependencies;
21 if (!deps) return cont();
22 var missing = [];
23 for (var i = 0; i < deps.length; ++i) {
24 if (!CodeMirror.modes.hasOwnProperty(deps[i]))
25 missing.push(deps[i]);
26 }
27 if (!missing.length) return cont();
28 var split = splitCallback(cont, missing.length);
29 for (var i = 0; i < missing.length; ++i)
30 CodeMirror.requireMode(missing[i], split, options);
31 }
32
33 CodeMirror.requireMode = function(mode, cont, options) {
34 if (typeof mode != "string") mode = mode.name;
35 if (CodeMirror.modes.hasOwnProperty(mode)) return ensureDeps(mode, cont, options);
36 if (loading.hasOwnProperty(mode)) return loading[mode].push(cont);
37
38 var file = options && options.path ? options.path(mode) : CodeMirror.modeURL.replace(/%N/g, mode);
39 if (options && options.loadMode) {
40 options.loadMode(file, function() { ensureDeps(mode, cont, options) })
41 } else if (env == "plain") {
42 var script = document.createElement("script");
43 script.src = file;
44 var others = document.getElementsByTagName("script")[0];
45 var list = loading[mode] = [cont];
46 CodeMirror.on(script, "load", function() {
47 ensureDeps(mode, function() {
48 for (var i = 0; i < list.length; ++i) list[i]();
49 }, options);
50 });
51 others.parentNode.insertBefore(script, others);
52 } else if (env == "cjs") {
53 require(file);
54 cont();
55 } else if (env == "amd") {
56 requirejs([file], cont);
57 }
58 };
59
60 CodeMirror.autoLoadMode = function(instance, mode, options) {
61 if (!CodeMirror.modes.hasOwnProperty(mode))
62 CodeMirror.requireMode(mode, function() {
63 instance.setOption("mode", instance.getOption("mode"));
64 }, options);
65 };
66 });
67