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
59ea1c2f7d
commit
cf577ba8eb
1136 changed files with 59263 additions and 576 deletions
76
dashboard-ui/bower_components/prism/plugins/previewer-base/prism-previewer-base.css
vendored
Normal file
76
dashboard-ui/bower_components/prism/plugins/previewer-base/prism-previewer-base.css
vendored
Normal file
|
@ -0,0 +1,76 @@
|
|||
.prism-previewer,
|
||||
.prism-previewer:before,
|
||||
.prism-previewer:after {
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
}
|
||||
.prism-previewer,
|
||||
.prism-previewer:after {
|
||||
left: 50%;
|
||||
}
|
||||
.prism-previewer {
|
||||
margin-top: -48px;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
margin-left: -16px;
|
||||
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=$opacity)";
|
||||
filter: alpha(opacity=0);
|
||||
-khtml-opacity: 0;
|
||||
-moz-opacity: 0;
|
||||
opacity: 0;
|
||||
-webkit-transition: opacity .25s;
|
||||
-moz-transition: opacity .25s;
|
||||
-o-transition: opacity .25s;
|
||||
transition: opacity .25s;
|
||||
}
|
||||
.prism-previewer.flipped {
|
||||
margin-top: 0;
|
||||
margin-bottom: -48px;
|
||||
}
|
||||
.prism-previewer:before,
|
||||
.prism-previewer:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
}
|
||||
.prism-previewer:before {
|
||||
top: -5px;
|
||||
right: -5px;
|
||||
left: -5px;
|
||||
bottom: -5px;
|
||||
-webkit-border-radius: 10px;
|
||||
-moz-border-radius: 10px;
|
||||
border-radius: 10px;
|
||||
border: 5px solid #fff;
|
||||
-webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.5) inset, 0 0 10px rgba(0, 0, 0, 0.75);
|
||||
-moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.5) inset, 0 0 10px rgba(0, 0, 0, 0.75);
|
||||
-ms-box-shadow: 0 0 3px rgba(0, 0, 0, 0.5) inset, 0 0 10px rgba(0, 0, 0, 0.75);
|
||||
-o-box-shadow: 0 0 3px rgba(0, 0, 0, 0.5) inset, 0 0 10px rgba(0, 0, 0, 0.75);
|
||||
box-shadow: 0 0 3px rgba(0, 0, 0, 0.5) inset, 0 0 10px rgba(0, 0, 0, 0.75);
|
||||
}
|
||||
|
||||
.prism-previewer:after {
|
||||
top: 100%;
|
||||
width: 0;
|
||||
height: 0;
|
||||
margin: 5px 0 0 -7px;
|
||||
border: 7px solid transparent;
|
||||
border-color: rgba(255, 0, 0, 0);
|
||||
border-top-color: #fff;
|
||||
}
|
||||
.prism-previewer.flipped:after {
|
||||
top: auto;
|
||||
bottom: 100%;
|
||||
margin-top: 0;
|
||||
margin-bottom: 5px;
|
||||
border-top-color: rgba(255, 0, 0, 0);
|
||||
border-bottom-color: #fff;
|
||||
}
|
||||
.prism-previewer.active {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=$opacity)";
|
||||
filter: alpha(opacity=1);
|
||||
-khtml-opacity: 1;
|
||||
-moz-opacity: 1;
|
||||
opacity: 1;
|
||||
}
|
201
dashboard-ui/bower_components/prism/plugins/previewer-base/prism-previewer-base.js
vendored
Normal file
201
dashboard-ui/bower_components/prism/plugins/previewer-base/prism-previewer-base.js
vendored
Normal file
|
@ -0,0 +1,201 @@
|
|||
(function() {
|
||||
|
||||
if (typeof self === 'undefined' || !self.Prism || !self.document || !Function.prototype.bind) {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the absolute X, Y offsets for an element
|
||||
* @param {HTMLElement} element
|
||||
* @returns {{top: number, right: number, bottom: number, left: number}}
|
||||
*/
|
||||
var getOffset = function (element) {
|
||||
var left = 0, top = 0, el = element;
|
||||
|
||||
if (el.parentNode) {
|
||||
do {
|
||||
left += el.offsetLeft;
|
||||
top += el.offsetTop;
|
||||
} while ((el = el.offsetParent) && el.nodeType < 9);
|
||||
|
||||
el = element;
|
||||
|
||||
do {
|
||||
left -= el.scrollLeft;
|
||||
top -= el.scrollTop;
|
||||
} while ((el = el.parentNode) && !/body/i.test(el.nodeName));
|
||||
}
|
||||
|
||||
return {
|
||||
top: top,
|
||||
right: innerWidth - left - element.offsetWidth,
|
||||
bottom: innerHeight - top - element.offsetHeight,
|
||||
left: left
|
||||
};
|
||||
};
|
||||
|
||||
var tokenRegexp = /(?:^|\s)token(?=$|\s)/;
|
||||
var activeRegexp = /(?:^|\s)active(?=$|\s)/g;
|
||||
var flippedRegexp = /(?:^|\s)flipped(?=$|\s)/g;
|
||||
|
||||
/**
|
||||
* Previewer constructor
|
||||
* @param {string} type Unique previewer type
|
||||
* @param {function} updater Function that will be called on mouseover.
|
||||
* @param {string[]|string=} supportedLanguages Aliases of the languages this previewer must be enabled for. Defaults to "*", all languages.
|
||||
* @constructor
|
||||
*/
|
||||
var Previewer = function (type, updater, supportedLanguages, initializer) {
|
||||
this._elt = null;
|
||||
this._type = type;
|
||||
this._clsRegexp = RegExp('(?:^|\\s)' + type + '(?=$|\\s)');
|
||||
this._token = null;
|
||||
this.updater = updater;
|
||||
this._mouseout = this.mouseout.bind(this);
|
||||
this.initializer = initializer;
|
||||
|
||||
var self = this;
|
||||
|
||||
if (!supportedLanguages) {
|
||||
supportedLanguages = ['*'];
|
||||
}
|
||||
if (Prism.util.type(supportedLanguages) !== 'Array') {
|
||||
supportedLanguages = [supportedLanguages];
|
||||
}
|
||||
supportedLanguages.forEach(function (lang) {
|
||||
if (typeof lang !== 'string') {
|
||||
lang = lang.lang;
|
||||
}
|
||||
if (!Previewer.byLanguages[lang]) {
|
||||
Previewer.byLanguages[lang] = [];
|
||||
}
|
||||
if (Previewer.byLanguages[lang].indexOf(self) < 0) {
|
||||
Previewer.byLanguages[lang].push(self);
|
||||
}
|
||||
});
|
||||
Previewer.byType[type] = this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Creates the HTML element for the previewer.
|
||||
*/
|
||||
Previewer.prototype.init = function () {
|
||||
if (this._elt) {
|
||||
return;
|
||||
}
|
||||
this._elt = document.createElement('div');
|
||||
this._elt.className = 'prism-previewer prism-previewer-' + this._type;
|
||||
document.body.appendChild(this._elt);
|
||||
if(this.initializer) {
|
||||
this.initializer();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Checks the class name of each hovered element
|
||||
* @param token
|
||||
*/
|
||||
Previewer.prototype.check = function (token) {
|
||||
do {
|
||||
if (tokenRegexp.test(token.className) && this._clsRegexp.test(token.className)) {
|
||||
break;
|
||||
}
|
||||
} while(token = token.parentNode);
|
||||
|
||||
if (token && token !== this._token) {
|
||||
this._token = token;
|
||||
this.show();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Called on mouseout
|
||||
*/
|
||||
Previewer.prototype.mouseout = function() {
|
||||
this._token.removeEventListener('mouseout', this._mouseout, false);
|
||||
this._token = null;
|
||||
this.hide();
|
||||
};
|
||||
|
||||
/**
|
||||
* Shows the previewer positioned properly for the current token.
|
||||
*/
|
||||
Previewer.prototype.show = function () {
|
||||
if (!this._elt) {
|
||||
this.init();
|
||||
}
|
||||
if (!this._token) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.updater.call(this._elt, this._token.textContent)) {
|
||||
this._token.addEventListener('mouseout', this._mouseout, false);
|
||||
|
||||
var offset = getOffset(this._token);
|
||||
this._elt.className += ' active';
|
||||
|
||||
if (offset.top - this._elt.offsetHeight > 0) {
|
||||
this._elt.className = this._elt.className.replace(flippedRegexp, '');
|
||||
this._elt.style.top = offset.top + 'px';
|
||||
this._elt.style.bottom = '';
|
||||
} else {
|
||||
this._elt.className += ' flipped';
|
||||
this._elt.style.bottom = offset.bottom + 'px';
|
||||
this._elt.style.top = '';
|
||||
}
|
||||
|
||||
this._elt.style.left = offset.left + Math.min(200, this._token.offsetWidth / 2) + 'px';
|
||||
} else {
|
||||
this.hide();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Hides the previewer.
|
||||
*/
|
||||
Previewer.prototype.hide = function () {
|
||||
this._elt.className = this._elt.className.replace(activeRegexp, '');
|
||||
};
|
||||
|
||||
/**
|
||||
* Map of all registered previewers by language
|
||||
* @type {{}}
|
||||
*/
|
||||
Previewer.byLanguages = {};
|
||||
|
||||
/**
|
||||
* Map of all registered previewers by type
|
||||
* @type {{}}
|
||||
*/
|
||||
Previewer.byType = {};
|
||||
|
||||
/**
|
||||
* Initializes the mouseover event on the code block.
|
||||
* @param {HTMLElement} elt The code block (env.element)
|
||||
* @param {string} lang The language (env.language)
|
||||
*/
|
||||
Previewer.initEvents = function (elt, lang) {
|
||||
var previewers = [];
|
||||
if (Previewer.byLanguages[lang]) {
|
||||
previewers = previewers.concat(Previewer.byLanguages[lang]);
|
||||
}
|
||||
if (Previewer.byLanguages['*']) {
|
||||
previewers = previewers.concat(Previewer.byLanguages['*']);
|
||||
}
|
||||
elt.addEventListener('mouseover', function (e) {
|
||||
var target = e.target;
|
||||
previewers.forEach(function (previewer) {
|
||||
previewer.check(target);
|
||||
});
|
||||
}, false);
|
||||
};
|
||||
Prism.plugins.Previewer = Previewer;
|
||||
|
||||
// Initialize the previewers only when needed
|
||||
Prism.hooks.add('after-highlight', function (env) {
|
||||
if(Previewer.byLanguages['*'] || Previewer.byLanguages[env.language]) {
|
||||
Previewer.initEvents(env.element, env.language);
|
||||
}
|
||||
});
|
||||
|
||||
}());
|
1
dashboard-ui/bower_components/prism/plugins/previewer-base/prism-previewer-base.min.js
vendored
Normal file
1
dashboard-ui/bower_components/prism/plugins/previewer-base/prism-previewer-base.min.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
!function(){if("undefined"!=typeof self&&self.Prism&&self.document&&Function.prototype.bind){var t=function(t){var e=0,s=0,i=t;if(i.parentNode){do e+=i.offsetLeft,s+=i.offsetTop;while((i=i.offsetParent)&&i.nodeType<9);i=t;do e-=i.scrollLeft,s-=i.scrollTop;while((i=i.parentNode)&&!/body/i.test(i.nodeName))}return{top:s,right:innerWidth-e-t.offsetWidth,bottom:innerHeight-s-t.offsetHeight,left:e}},e=/(?:^|\s)token(?=$|\s)/,s=/(?:^|\s)active(?=$|\s)/g,i=/(?:^|\s)flipped(?=$|\s)/g,o=function(t,e,s,i){this._elt=null,this._type=t,this._clsRegexp=RegExp("(?:^|\\s)"+t+"(?=$|\\s)"),this._token=null,this.updater=e,this._mouseout=this.mouseout.bind(this),this.initializer=i;var n=this;s||(s=["*"]),"Array"!==Prism.util.type(s)&&(s=[s]),s.forEach(function(t){"string"!=typeof t&&(t=t.lang),o.byLanguages[t]||(o.byLanguages[t]=[]),o.byLanguages[t].indexOf(n)<0&&o.byLanguages[t].push(n)}),o.byType[t]=this};o.prototype.init=function(){this._elt||(this._elt=document.createElement("div"),this._elt.className="prism-previewer prism-previewer-"+this._type,document.body.appendChild(this._elt),this.initializer&&this.initializer())},o.prototype.check=function(t){do if(e.test(t.className)&&this._clsRegexp.test(t.className))break;while(t=t.parentNode);t&&t!==this._token&&(this._token=t,this.show())},o.prototype.mouseout=function(){this._token.removeEventListener("mouseout",this._mouseout,!1),this._token=null,this.hide()},o.prototype.show=function(){if(this._elt||this.init(),this._token)if(this.updater.call(this._elt,this._token.textContent)){this._token.addEventListener("mouseout",this._mouseout,!1);var e=t(this._token);this._elt.className+=" active",e.top-this._elt.offsetHeight>0?(this._elt.className=this._elt.className.replace(i,""),this._elt.style.top=e.top+"px",this._elt.style.bottom=""):(this._elt.className+=" flipped",this._elt.style.bottom=e.bottom+"px",this._elt.style.top=""),this._elt.style.left=e.left+Math.min(200,this._token.offsetWidth/2)+"px"}else this.hide()},o.prototype.hide=function(){this._elt.className=this._elt.className.replace(s,"")},o.byLanguages={},o.byType={},o.initEvents=function(t,e){var s=[];o.byLanguages[e]&&(s=s.concat(o.byLanguages[e])),o.byLanguages["*"]&&(s=s.concat(o.byLanguages["*"])),t.addEventListener("mouseover",function(t){var e=t.target;s.forEach(function(t){t.check(e)})},!1)},Prism.plugins.Previewer=o,Prism.hooks.add("after-highlight",function(t){(o.byLanguages["*"]||o.byLanguages[t.language])&&o.initEvents(t.element,t.language)})}}();
|
Loading…
Add table
Add a link
Reference in a new issue