mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update sync process
This commit is contained in:
parent
cc428aac1d
commit
504384e83d
109 changed files with 553 additions and 289 deletions
|
@ -16368,7 +16368,7 @@ iron-selector:not(.narrow-layout) #main ::content [paper-drawer-toggle] {
|
|||
|
||||
<paper-icon-button icon="paper-tabs:chevron-left" class$="[[_computeScrollButtonClass(_leftHidden, scrollable, hideScrollButtons)]]" on-up="_onScrollButtonUp" on-down="_onLeftScrollButtonDown"></paper-icon-button>
|
||||
|
||||
<div id="tabsContainer" class="flex" on-scroll="_scroll">
|
||||
<div id="tabsContainer" class="flex" on-track="_scroll" on-down="_down">
|
||||
|
||||
<div id="tabsContent" class$="[[_computeTabsContentClass(scrollable)]]">
|
||||
|
||||
|
@ -16503,6 +16503,10 @@ iron-selector:not(.narrow-layout) #main ::content [paper-drawer-toggle] {
|
|||
'iron-deselect': '_onIronDeselect'
|
||||
},
|
||||
|
||||
ready: function() {
|
||||
this.setScrollDirection('y', this.$.tabsContainer);
|
||||
},
|
||||
|
||||
_computeScrollButtonClass: function(hideThisButton, scrollable, hideScrollButtons) {
|
||||
if (!scrollable || hideScrollButtons) {
|
||||
return 'hidden';
|
||||
|
@ -16557,24 +16561,43 @@ iron-selector:not(.narrow-layout) #main ::content [paper-drawer-toggle] {
|
|||
);
|
||||
},
|
||||
|
||||
_scroll: function() {
|
||||
var scrollLeft;
|
||||
|
||||
_scroll: function(e, detail) {
|
||||
if (!this.scrollable) {
|
||||
return;
|
||||
}
|
||||
|
||||
scrollLeft = this.$.tabsContainer.scrollLeft;
|
||||
var ddx = (detail && -detail.ddx) || 0;
|
||||
this._affectScroll(ddx);
|
||||
},
|
||||
|
||||
_down: function(e) {
|
||||
// go one beat async to defeat IronMenuBehavior
|
||||
// autorefocus-on-no-selection timeout
|
||||
this.async(function() {
|
||||
if (this._defaultFocusAsync) {
|
||||
this.cancelAsync(this._defaultFocusAsync);
|
||||
this._defaultFocusAsync = null;
|
||||
}
|
||||
}, 1);
|
||||
},
|
||||
|
||||
_affectScroll: function(dx) {
|
||||
this.$.tabsContainer.scrollLeft += dx;
|
||||
|
||||
var scrollLeft = this.$.tabsContainer.scrollLeft;
|
||||
|
||||
this._leftHidden = scrollLeft === 0;
|
||||
this._rightHidden = scrollLeft === this._tabContainerScrollSize;
|
||||
},
|
||||
|
||||
_onLeftScrollButtonDown: function() {
|
||||
this._scrollToLeft();
|
||||
this._holdJob = setInterval(this._scrollToLeft.bind(this), this._holdDelay);
|
||||
},
|
||||
|
||||
_onRightScrollButtonDown: function() {
|
||||
this._scrollToRight();
|
||||
this._holdJob = setInterval(this._scrollToRight.bind(this), this._holdDelay);
|
||||
},
|
||||
|
||||
|
@ -16584,11 +16607,11 @@ iron-selector:not(.narrow-layout) #main ::content [paper-drawer-toggle] {
|
|||
},
|
||||
|
||||
_scrollToLeft: function() {
|
||||
this.$.tabsContainer.scrollLeft -= this._step;
|
||||
this._affectScroll(-this._step);
|
||||
},
|
||||
|
||||
_scrollToRight: function() {
|
||||
this.$.tabsContainer.scrollLeft += this._step;
|
||||
this._affectScroll(this._step);
|
||||
},
|
||||
|
||||
_tabChanged: function(tab, old) {
|
||||
|
@ -16930,7 +16953,7 @@ iron-selector:not(.narrow-layout) #main ::content [paper-drawer-toggle] {
|
|||
},
|
||||
|
||||
_disabledChanged: function(disabled) {
|
||||
this.$.progressContainer.setAttribute('aria-disabled', disabled ? 'true' : 'false');
|
||||
this.setAttribute('aria-disabled', disabled ? 'true' : 'false');
|
||||
},
|
||||
|
||||
_hideSecondaryProgress: function(secondaryRatio) {
|
||||
|
@ -18496,6 +18519,36 @@ paper-ripple {
|
|||
return this.$.textarea;
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns textarea's selection start.
|
||||
* @type Number
|
||||
*/
|
||||
get selectionStart() {
|
||||
return this.$.textarea.selectionStart;
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns textarea's selection end.
|
||||
* @type Number
|
||||
*/
|
||||
get selectionEnd() {
|
||||
return this.$.textarea.selectionEnd;
|
||||
},
|
||||
|
||||
/**
|
||||
* Sets the textarea's selection start.
|
||||
*/
|
||||
set selectionStart(value) {
|
||||
this.$.textarea.selectionStart = value;
|
||||
},
|
||||
|
||||
/**
|
||||
* Sets the textarea's selection end.
|
||||
*/
|
||||
set selectionEnd(value) {
|
||||
this.$.textarea.selectionEnd = value;
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns true if `value` is valid. The validator provided in `validator`
|
||||
* will be used first, if it exists; otherwise, the `textarea`'s validity
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue