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
47
dashboard-ui/bower_components/prism/plugins/line-highlight/prism-line-highlight.css
vendored
Normal file
47
dashboard-ui/bower_components/prism/plugins/line-highlight/prism-line-highlight.css
vendored
Normal file
|
@ -0,0 +1,47 @@
|
|||
pre[data-line] {
|
||||
position: relative;
|
||||
padding: 1em 0 1em 3em;
|
||||
}
|
||||
|
||||
.line-highlight {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
padding: inherit 0;
|
||||
margin-top: 1em; /* Same as .prism’s padding-top */
|
||||
|
||||
background: hsla(24, 20%, 50%,.08);
|
||||
background: -moz-linear-gradient(left, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
|
||||
background: -webkit-linear-gradient(left, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
|
||||
background: -o-linear-gradient(left, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
|
||||
background: linear-gradient(left, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
|
||||
|
||||
pointer-events: none;
|
||||
|
||||
line-height: inherit;
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
.line-highlight:before,
|
||||
.line-highlight[data-end]:after {
|
||||
content: attr(data-start);
|
||||
position: absolute;
|
||||
top: .4em;
|
||||
left: .6em;
|
||||
min-width: 1em;
|
||||
padding: 0 .5em;
|
||||
background-color: hsla(24, 20%, 50%,.4);
|
||||
color: hsl(24, 20%, 95%);
|
||||
font: bold 65%/1.5 sans-serif;
|
||||
text-align: center;
|
||||
vertical-align: .3em;
|
||||
border-radius: 999px;
|
||||
text-shadow: none;
|
||||
box-shadow: 0 1px white;
|
||||
}
|
||||
|
||||
.line-highlight[data-end]:after {
|
||||
content: attr(data-end);
|
||||
top: auto;
|
||||
bottom: .4em;
|
||||
}
|
132
dashboard-ui/bower_components/prism/plugins/line-highlight/prism-line-highlight.js
vendored
Normal file
132
dashboard-ui/bower_components/prism/plugins/line-highlight/prism-line-highlight.js
vendored
Normal file
|
@ -0,0 +1,132 @@
|
|||
(function(){
|
||||
|
||||
if (typeof self === 'undefined' || !self.Prism || !self.document || !document.querySelector) {
|
||||
return;
|
||||
}
|
||||
|
||||
function $$(expr, con) {
|
||||
return Array.prototype.slice.call((con || document).querySelectorAll(expr));
|
||||
}
|
||||
|
||||
function hasClass(element, className) {
|
||||
className = " " + className + " ";
|
||||
return (" " + element.className + " ").replace(/[\n\t]/g, " ").indexOf(className) > -1
|
||||
}
|
||||
|
||||
// Some browsers round the line-height, others don't.
|
||||
// We need to test for it to position the elements properly.
|
||||
var isLineHeightRounded = (function() {
|
||||
var res;
|
||||
return function() {
|
||||
if(typeof res === 'undefined') {
|
||||
var d = document.createElement('div');
|
||||
d.style.fontSize = '13px';
|
||||
d.style.lineHeight = '1.5';
|
||||
d.style.padding = 0;
|
||||
d.style.border = 0;
|
||||
d.innerHTML = ' <br /> ';
|
||||
document.body.appendChild(d);
|
||||
// Browsers that round the line-height should have offsetHeight === 38
|
||||
// The others should have 39.
|
||||
res = d.offsetHeight === 38;
|
||||
document.body.removeChild(d);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}());
|
||||
|
||||
function highlightLines(pre, lines, classes) {
|
||||
var ranges = lines.replace(/\s+/g, '').split(','),
|
||||
offset = +pre.getAttribute('data-line-offset') || 0;
|
||||
|
||||
var parseMethod = isLineHeightRounded() ? parseInt : parseFloat;
|
||||
var lineHeight = parseMethod(getComputedStyle(pre).lineHeight);
|
||||
|
||||
for (var i=0, range; range = ranges[i++];) {
|
||||
range = range.split('-');
|
||||
|
||||
var start = +range[0],
|
||||
end = +range[1] || start;
|
||||
|
||||
var line = document.createElement('div');
|
||||
|
||||
line.textContent = Array(end - start + 2).join(' \n');
|
||||
line.className = (classes || '') + ' line-highlight';
|
||||
|
||||
//if the line-numbers plugin is enabled, then there is no reason for this plugin to display the line numbers
|
||||
if(!hasClass(pre, 'line-numbers')) {
|
||||
line.setAttribute('data-start', start);
|
||||
|
||||
if(end > start) {
|
||||
line.setAttribute('data-end', end);
|
||||
}
|
||||
}
|
||||
|
||||
line.style.top = (start - offset - 1) * lineHeight + 'px';
|
||||
|
||||
//allow this to play nicely with the line-numbers plugin
|
||||
if(hasClass(pre, 'line-numbers')) {
|
||||
//need to attack to pre as when line-numbers is enabled, the code tag is relatively which screws up the positioning
|
||||
pre.appendChild(line);
|
||||
} else {
|
||||
(pre.querySelector('code') || pre).appendChild(line);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function applyHash() {
|
||||
var hash = location.hash.slice(1);
|
||||
|
||||
// Remove pre-existing temporary lines
|
||||
$$('.temporary.line-highlight').forEach(function (line) {
|
||||
line.parentNode.removeChild(line);
|
||||
});
|
||||
|
||||
var range = (hash.match(/\.([\d,-]+)$/) || [,''])[1];
|
||||
|
||||
if (!range || document.getElementById(hash)) {
|
||||
return;
|
||||
}
|
||||
|
||||
var id = hash.slice(0, hash.lastIndexOf('.')),
|
||||
pre = document.getElementById(id);
|
||||
|
||||
if (!pre) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!pre.hasAttribute('data-line')) {
|
||||
pre.setAttribute('data-line', '');
|
||||
}
|
||||
|
||||
highlightLines(pre, range, 'temporary ');
|
||||
|
||||
document.querySelector('.temporary.line-highlight').scrollIntoView();
|
||||
}
|
||||
|
||||
var fakeTimer = 0; // Hack to limit the number of times applyHash() runs
|
||||
|
||||
Prism.hooks.add('complete', function(env) {
|
||||
var pre = env.element.parentNode;
|
||||
var lines = pre && pre.getAttribute('data-line');
|
||||
|
||||
if (!pre || !lines || !/pre/i.test(pre.nodeName)) {
|
||||
return;
|
||||
}
|
||||
|
||||
clearTimeout(fakeTimer);
|
||||
|
||||
$$('.line-highlight', pre).forEach(function (line) {
|
||||
line.parentNode.removeChild(line);
|
||||
});
|
||||
|
||||
highlightLines(pre, lines);
|
||||
|
||||
fakeTimer = setTimeout(applyHash, 1);
|
||||
});
|
||||
|
||||
if(window.addEventListener) {
|
||||
window.addEventListener('hashchange', applyHash);
|
||||
}
|
||||
|
||||
})();
|
1
dashboard-ui/bower_components/prism/plugins/line-highlight/prism-line-highlight.min.js
vendored
Normal file
1
dashboard-ui/bower_components/prism/plugins/line-highlight/prism-line-highlight.min.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
!function(){function e(e,t){return Array.prototype.slice.call((t||document).querySelectorAll(e))}function t(e,t){return t=" "+t+" ",(" "+e.className+" ").replace(/[\n\t]/g," ").indexOf(t)>-1}function n(e,n,i){for(var o,a=n.replace(/\s+/g,"").split(","),l=+e.getAttribute("data-line-offset")||0,d=r()?parseInt:parseFloat,c=d(getComputedStyle(e).lineHeight),s=0;o=a[s++];){o=o.split("-");var u=+o[0],m=+o[1]||u,h=document.createElement("div");h.textContent=Array(m-u+2).join(" \n"),h.className=(i||"")+" line-highlight",t(e,"line-numbers")||(h.setAttribute("data-start",u),m>u&&h.setAttribute("data-end",m)),h.style.top=(u-l-1)*c+"px",t(e,"line-numbers")?e.appendChild(h):(e.querySelector("code")||e).appendChild(h)}}function i(){var t=location.hash.slice(1);e(".temporary.line-highlight").forEach(function(e){e.parentNode.removeChild(e)});var i=(t.match(/\.([\d,-]+)$/)||[,""])[1];if(i&&!document.getElementById(t)){var r=t.slice(0,t.lastIndexOf(".")),o=document.getElementById(r);o&&(o.hasAttribute("data-line")||o.setAttribute("data-line",""),n(o,i,"temporary "),document.querySelector(".temporary.line-highlight").scrollIntoView())}}if("undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector){var r=function(){var e;return function(){if("undefined"==typeof e){var t=document.createElement("div");t.style.fontSize="13px",t.style.lineHeight="1.5",t.style.padding=0,t.style.border=0,t.innerHTML=" <br /> ",document.body.appendChild(t),e=38===t.offsetHeight,document.body.removeChild(t)}return e}}(),o=0;Prism.hooks.add("complete",function(t){var r=t.element.parentNode,a=r&&r.getAttribute("data-line");r&&a&&/pre/i.test(r.nodeName)&&(clearTimeout(o),e(".line-highlight",r).forEach(function(e){e.parentNode.removeChild(e)}),n(r,a),o=setTimeout(i,1))}),window.addEventListener&&window.addEventListener("hashchange",i)}}();
|
Loading…
Add table
Add a link
Reference in a new issue