mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update components
This commit is contained in:
parent
2a4b879c21
commit
63664e6c1c
1155 changed files with 62261 additions and 84 deletions
194
dashboard-ui/bower_components/prism/plugins/autoloader/prism-autoloader.js
vendored
Normal file
194
dashboard-ui/bower_components/prism/plugins/autoloader/prism-autoloader.js
vendored
Normal file
|
@ -0,0 +1,194 @@
|
|||
(function () {
|
||||
if (typeof self === 'undefined' || !self.Prism || !self.document || !document.createElement) {
|
||||
return;
|
||||
}
|
||||
|
||||
// The dependencies map is built automatically with gulp
|
||||
var lang_dependencies = /*languages_placeholder[*/{"javascript":"clike","actionscript":"javascript","aspnet":"markup","bison":"c","c":"clike","csharp":"clike","cpp":"c","coffeescript":"javascript","crystal":"ruby","css-extras":"css","d":"clike","dart":"clike","fsharp":"clike","glsl":"clike","go":"clike","groovy":"clike","haml":"ruby","handlebars":"markup","haxe":"clike","jade":"javascript","java":"clike","kotlin":"clike","less":"css","markdown":"markup","nginx":"clike","objectivec":"c","parser":"markup","php":"clike","php-extras":"php","processing":"clike","qore":"clike","jsx":["markup","javascript"],"ruby":"clike","sass":"css","scss":"css","scala":"java","smarty":"markup","swift":"clike","textile":"markup","twig":"markup","typescript":"javascript","wiki":"markup"}/*]*/;
|
||||
|
||||
var lang_data = {};
|
||||
|
||||
var config = Prism.plugins.autoloader = {
|
||||
languages_path: 'components/',
|
||||
use_minified: true
|
||||
};
|
||||
|
||||
/**
|
||||
* Lazy loads an external script
|
||||
* @param {string} src
|
||||
* @param {function=} success
|
||||
* @param {function=} error
|
||||
*/
|
||||
var script = function (src, success, error) {
|
||||
var s = document.createElement('script');
|
||||
s.src = src;
|
||||
s.async = true;
|
||||
s.onload = function() {
|
||||
document.body.removeChild(s);
|
||||
success && success();
|
||||
};
|
||||
s.onerror = function() {
|
||||
document.body.removeChild(s);
|
||||
error && error();
|
||||
};
|
||||
document.body.appendChild(s);
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns the path to a grammar, using the language_path and use_minified config keys.
|
||||
* @param {string} lang
|
||||
* @returns {string}
|
||||
*/
|
||||
var getLanguagePath = function (lang) {
|
||||
return config.languages_path +
|
||||
'prism-' + lang
|
||||
+ (config.use_minified ? '.min' : '') + '.js'
|
||||
};
|
||||
|
||||
/**
|
||||
* Tries to load a grammar and
|
||||
* highlight again the given element once loaded.
|
||||
* @param {string} lang
|
||||
* @param {HTMLElement} elt
|
||||
*/
|
||||
var registerElement = function (lang, elt) {
|
||||
var data = lang_data[lang];
|
||||
if (!data) {
|
||||
data = lang_data[lang] = {};
|
||||
}
|
||||
|
||||
// Look for additional dependencies defined on the <code> or <pre> tags
|
||||
var deps = elt.getAttribute('data-dependencies');
|
||||
if (!deps && elt.parentNode && elt.parentNode.tagName.toLowerCase() === 'pre') {
|
||||
deps = elt.parentNode.getAttribute('data-dependencies');
|
||||
}
|
||||
|
||||
if (deps) {
|
||||
deps = deps.split(/\s*,\s*/g);
|
||||
} else {
|
||||
deps = [];
|
||||
}
|
||||
|
||||
loadLanguages(deps, function () {
|
||||
loadLanguage(lang, function () {
|
||||
Prism.highlightElement(elt);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Sequentially loads an array of grammars.
|
||||
* @param {string[]|string} langs
|
||||
* @param {function=} success
|
||||
* @param {function=} error
|
||||
*/
|
||||
var loadLanguages = function (langs, success, error) {
|
||||
if (typeof langs === 'string') {
|
||||
langs = [langs];
|
||||
}
|
||||
var i = 0;
|
||||
var l = langs.length;
|
||||
var f = function () {
|
||||
if (i < l) {
|
||||
loadLanguage(langs[i], function () {
|
||||
i++;
|
||||
f();
|
||||
}, function () {
|
||||
error && error(langs[i]);
|
||||
});
|
||||
} else if (i === l) {
|
||||
success && success(langs);
|
||||
}
|
||||
};
|
||||
f();
|
||||
};
|
||||
|
||||
/**
|
||||
* Load a grammar with its dependencies
|
||||
* @param {string} lang
|
||||
* @param {function=} success
|
||||
* @param {function=} error
|
||||
*/
|
||||
var loadLanguage = function (lang, success, error) {
|
||||
var load = function () {
|
||||
var force = false;
|
||||
// Do we want to force reload the grammar?
|
||||
if (lang.indexOf('!') >= 0) {
|
||||
force = true;
|
||||
lang = lang.replace('!', '');
|
||||
}
|
||||
|
||||
var data = lang_data[lang];
|
||||
if (!data) {
|
||||
data = lang_data[lang] = {};
|
||||
}
|
||||
if (success) {
|
||||
if (!data.success_callbacks) {
|
||||
data.success_callbacks = [];
|
||||
}
|
||||
data.success_callbacks.push(success);
|
||||
}
|
||||
if (error) {
|
||||
if (!data.error_callbacks) {
|
||||
data.error_callbacks = [];
|
||||
}
|
||||
data.error_callbacks.push(error);
|
||||
}
|
||||
|
||||
if (!force && Prism.languages[lang]) {
|
||||
languageSuccess(lang);
|
||||
} else if (!force && data.error) {
|
||||
languageError(lang);
|
||||
} else if (force || !data.loading) {
|
||||
data.loading = true;
|
||||
var src = getLanguagePath(lang);
|
||||
script(src, function () {
|
||||
data.loading = false;
|
||||
languageSuccess(lang);
|
||||
|
||||
}, function () {
|
||||
data.loading = false;
|
||||
data.error = true;
|
||||
languageError(lang);
|
||||
});
|
||||
}
|
||||
};
|
||||
var dependencies = lang_dependencies[lang];
|
||||
if(dependencies && dependencies.length) {
|
||||
loadLanguages(dependencies, load);
|
||||
} else {
|
||||
load();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Runs all success callbacks for this language.
|
||||
* @param {string} lang
|
||||
*/
|
||||
var languageSuccess = function (lang) {
|
||||
if (lang_data[lang] && lang_data[lang].success_callbacks && lang_data[lang].success_callbacks.length) {
|
||||
lang_data[lang].success_callbacks.forEach(function (f) {
|
||||
f(lang);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Runs all error callbacks for this language.
|
||||
* @param {string} lang
|
||||
*/
|
||||
var languageError = function (lang) {
|
||||
if (lang_data[lang] && lang_data[lang].error_callbacks && lang_data[lang].error_callbacks.length) {
|
||||
lang_data[lang].error_callbacks.forEach(function (f) {
|
||||
f(lang);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
Prism.hooks.add('complete', function (env) {
|
||||
if (env.element && env.language && !env.grammar) {
|
||||
registerElement(env.language, env.element);
|
||||
}
|
||||
});
|
||||
|
||||
}());
|
Loading…
Add table
Add a link
Reference in a new issue