update sliders

This commit is contained in:
Luke Pulverenti 2016-06-13 15:02:48 -04:00
parent 7f6b2415fb
commit acefeed732
26 changed files with 524 additions and 91 deletions

View file

@ -15,12 +15,12 @@
},
"devDependencies": {},
"ignore": [],
"version": "1.4.45",
"_release": "1.4.45",
"version": "1.4.46",
"_release": "1.4.46",
"_resolution": {
"type": "version",
"tag": "1.4.45",
"commit": "4cefbfaedea068552e25c904340e675e66de4964"
"tag": "1.4.46",
"commit": "3dcd07a1386cef6bbb6267851b90f950ca18f5ad"
},
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
"_target": "^1.2.0",

View file

@ -9,10 +9,12 @@
var descriptor = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value');
if (descriptor.configurable) {
// descriptor returning null in webos
if (descriptor && descriptor.configurable) {
var baseSetMethod = descriptor.set;
descriptor.set = function (value) {
baseSetMethod.call(this, value);
this.dispatchEvent(new CustomEvent('valueset', {
bubbles: false,
cancelable: false

View file

@ -0,0 +1,323 @@
_:-ms-input-placeholder, :root .mdl-slider.mdl-slider {
-ms-appearance: none;
height: 32px;
margin: 0;
}
.mdl-slider {
width: 100%;
}
.mdl-slider {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
height: 2px;
background: transparent;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
outline: 0;
padding: 0;
color: #52B54B;
-webkit-align-self: center;
-ms-flex-item-align: center;
align-self: center;
z-index: 1;
cursor: pointer;
/**************************** Tracks ****************************/
/**************************** Thumbs ****************************/
/**************************** 0-value ****************************/
/**************************** Disabled ****************************/
}
.layout-tv .mdl-slider {
height: .56vh;
}
.mdl-slider::-moz-focus-outer {
border: 0;
}
.mdl-slider::-ms-tooltip {
display: none;
}
.mdl-slider::-webkit-slider-runnable-track {
background: transparent;
}
.mdl-slider::-moz-range-track {
background: #666;
border: none;
}
.mdl-slider::-moz-range-progress {
background: #52B54B;
}
.mdl-slider::-ms-track {
background: none;
color: transparent;
height: 2px;
width: 100%;
border: none;
}
.layout-tv .mdl-slider::-ms-track {
height: .56vh;
}
.mdl-slider::-ms-fill-lower {
padding: 0;
background: linear-gradient(to right, transparent, transparent 16px, #52B54B 16px, #52B54B 0);
}
.mdl-slider::-ms-fill-upper {
padding: 0;
background: linear-gradient(to left, transparent, transparent 16px, #666 16px, #666 0);
}
.mdl-slider::-webkit-slider-thumb {
-webkit-appearance: none;
width: 16px;
height: 16px;
box-sizing: border-box;
border-radius: 50%;
background: #52B54B;
border: none;
transition: border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.18s cubic-bezier(0.4, 0, 0.2, 1);
transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1);
transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.18s cubic-bezier(0.4, 0, 0.2, 1);
}
.layout-tv .mdl-slider::-webkit-slider-thumb {
width: 2vh;
height: 2vh;
}
.mdl-slider::-moz-range-thumb {
-moz-appearance: none;
width: 16px;
height: 16px;
box-sizing: border-box;
border-radius: 50%;
background-image: none;
background: #52B54B;
border: none;
}
.layout-tv .mdl-slider::-moz-range-thumb {
width: 2vh;
height: 2vh;
}
.mdl-slider:focus:not(:active)::-webkit-slider-thumb {
box-shadow: 0 0 0 10px rgba(82, 181, 75, 0.26);
}
.mdl-slider:focus:not(:active)::-moz-range-thumb {
box-shadow: 0 0 0 10px rgba(82, 181, 75, 0.26);
}
.mdl-slider:active::-webkit-slider-thumb {
background-image: none;
background: #52B54B;
-webkit-transform: scale(1.5);
transform: scale(1.5);
}
.mdl-slider:active::-moz-range-thumb {
background-image: none;
background: #52B54B;
transform: scale(1.5);
}
.mdl-slider::-ms-thumb {
width: 16px;
height: 16px;
border: none;
border-radius: 50%;
background: #52B54B;
}
.mdl-slider[disabled]::-ms-thumb {
background: gray;
}
.layout-tv .mdl-slider::-ms-thumb {
width: 2vh;
height: 2vh;
}
.layout-tv .mdl-slider::-webkit-slider-thumb {
display: none;
}
.layout-tv .mdl-slider:hover::-webkit-slider-thumb {
display: block;
}
.mdl-slider.is-lowest-value::-webkit-slider-thumb {
/*border: 2px solid #52B54B;
background: transparent;*/
}
.mdl-slider.is-lowest-value::-moz-range-thumb {
/*border: 2px solid #52B54B;
background: transparent;*/
}
.mdl-slider.is-lowest-value + .mdl-slider__background-flex > .mdl-slider__background-upper {
left: 6px;
}
.mdl-slider.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {
/*box-shadow: 0 0 0 10px rgba(0,0,0, 0.12);
background: rgba(0,0,0, 0.12);*/
}
.mdl-slider.is-lowest-value:focus:not(:active)::-moz-range-thumb {
/*box-shadow: 0 0 0 10px rgba(0,0,0, 0.12);
background: rgba(0,0,0, 0.12);*/
}
.mdl-slider.is-lowest-value:active::-webkit-slider-thumb {
border: 1.6px solid #52B54B;
-webkit-transform: scale(1.5);
transform: scale(1.5);
}
.mdl-slider.is-lowest-value:active + .mdl-slider__background-flex > .mdl-slider__background-upper {
left: 9px;
}
.mdl-slider.is-lowest-value:active::-moz-range-thumb {
border: 1.5px solid #52B54B;
transform: scale(1.5);
}
.mdl-slider.is-lowest-value::-ms-fill-lower {
background: transparent;
}
.mdl-slider.is-lowest-value::-ms-fill-upper {
margin-left: 6px;
}
.mdl-slider.is-lowest-value:active::-ms-fill-upper {
margin-left: 9px;
}
.mdl-slider:disabled:focus::-webkit-slider-thumb, .mdl-slider:disabled:active::-webkit-slider-thumb, .mdl-slider:disabled::-webkit-slider-thumb {
-webkit-transform: scale(0.667);
transform: scale(0.667);
background: rgba(0,0,0, 0.26);
}
.mdl-slider:disabled:focus::-moz-range-thumb, .mdl-slider:disabled:active::-moz-range-thumb, .mdl-slider:disabled::-moz-range-thumb {
transform: scale(0.667);
background: rgba(0,0,0, 0.26);
}
.mdl-slider:disabled + .mdl-slider__background-flex > .mdl-slider__background-lower {
background-color: #666;
left: -6px;
}
.mdl-slider:disabled + .mdl-slider__background-flex > .mdl-slider__background-upper {
left: 6px;
}
.mdl-slider.is-lowest-value:disabled:focus::-webkit-slider-thumb, .mdl-slider.is-lowest-value:disabled:active::-webkit-slider-thumb, .mdl-slider.is-lowest-value:disabled::-webkit-slider-thumb {
border: 3px solid rgba(0,0,0, 0.26);
background: transparent;
-webkit-transform: scale(0.667);
transform: scale(0.667);
}
.mdl-slider.is-lowest-value:disabled:focus::-moz-range-thumb, .mdl-slider.is-lowest-value:disabled:active::-moz-range-thumb, .mdl-slider.is-lowest-value:disabled::-moz-range-thumb {
border: 3px solid rgba(0,0,0, 0.26);
background: transparent;
transform: scale(0.667);
}
.mdl-slider.is-lowest-value:disabled:active + .mdl-slider__background-flex > .mdl-slider__background-upper {
left: 6px;
}
.mdl-slider:disabled::-ms-fill-lower {
margin-right: 6px;
background: linear-gradient(to right, transparent, transparent 25px, rgba(30,30,30, 0.7) 25px, rgba(30,30,30, 0.7) 0);
}
.mdl-slider:disabled::-ms-fill-upper {
margin-left: 6px;
}
.mdl-slider.is-lowest-value:disabled:active::-ms-fill-upper {
margin-left: 6px;
}
.mdl-slider__ie-container {
height: 18px;
overflow: visible;
border: none;
margin: none;
padding: none;
}
.mdl-slider__container {
height: 18px;
position: relative;
background: none;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-direction: row;
-ms-flex-direction: row;
flex-direction: row;
}
.mdl-slider__background-flex {
background: transparent;
position: absolute;
height: 2px;
width: 100%;
top: 50%;
left: 0;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
overflow: hidden;
border: 0;
padding: 0;
-webkit-transform: translate(0, -1px);
transform: translate(0, -1px);
}
.layout-tv .mdl-slider__background-flex {
height: .56vh;
}
.mdl-slider__background-lower {
background: #52B54B;
-webkit-flex: 0;
-ms-flex: 0;
flex: 0;
position: relative;
border: 0;
padding: 0;
}
.mdl-slider__background-upper {
background: #666;
-webkit-flex: 0;
-ms-flex: 0;
flex: 0;
position: relative;
border: 0;
padding: 0;
transition: left 0.18s cubic-bezier(0.4, 0, 0.2, 1);
}

View file

@ -0,0 +1,99 @@
define(['browser', 'css!./emby-slider', 'registerElement', 'emby-input'], function (browser) {
var EmbySliderPrototype = Object.create(HTMLInputElement.prototype);
var supportsNativeProgressStyle = browser.firefox || browser.edge || browser.msie;
var supportsValueSetOverride = false;
if (Object.getOwnPropertyDescriptor && Object.defineProperty) {
var descriptor = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value');
// descriptor returning null in webos
if (descriptor && descriptor.configurable) {
supportsValueSetOverride = true;
}
}
function updateValues(range, backgroundLower, backgroundUpper) {
//if (fraction === 0) {
// range.classList.add('is-lowest-value');
//} else {
// range.classList.remove('is-lowest-value');
//}
if (backgroundLower) {
var fraction = (range.value - range.min) / (range.max - range.min);
backgroundLower.style.flex = fraction;
backgroundLower.style.webkitFlex = fraction;
backgroundUpper.style.flex = 1 - fraction;
backgroundUpper.style.webkitFlex = 1 - fraction;
}
}
EmbySliderPrototype.attachedCallback = function () {
if (this.getAttribute('data-embycheckbox') == 'true') {
return;
}
this.setAttribute('data-embycheckbox', 'true');
this.classList.add('mdl-slider');
this.classList.add('mdl-js-slider');
var containerElement = this.parentNode;
containerElement.classList.add('mdl-slider__container');
if (!supportsNativeProgressStyle) {
containerElement.insertAdjacentHTML('beforeend', '<div class="mdl-slider__background-flex"><div class="mdl-slider__background-lower"></div><div class="mdl-slider__background-upper"></div></div>');
}
var backgroundLower = containerElement.querySelector('.mdl-slider__background-lower');
var backgroundUpper = containerElement.querySelector('.mdl-slider__background-upper');
this.addEventListener('input', function () {
this.dragging = true;
});
this.addEventListener('change', function () {
this.dragging = false;
updateValues(this, backgroundLower, backgroundUpper);
});
if (!supportsNativeProgressStyle) {
if (supportsValueSetOverride) {
this.addEventListener('valueset', function () {
updateValues(this, backgroundLower, backgroundUpper);
});
} else {
startInterval(this, backgroundLower, backgroundUpper);
}
}
};
function startInterval(range, backgroundLower, backgroundUpper) {
var interval = range.interval;
if (interval) {
clearInterval(interval);
}
range.interval = setInterval(function () {
updateValues(range, backgroundLower, backgroundUpper);
}, 100);
}
EmbySliderPrototype.detachedCallback = function () {
var interval = this.interval;
if (interval) {
clearInterval(interval);
}
this.interval = null;
};
document.registerElement('emby-slider', {
prototype: EmbySliderPrototype,
extends: 'input'
});
});

View file

@ -15,7 +15,7 @@
<div id="eligibleForSeriesFields" class="hide">
<br />
<label class="checkboxContainer">
<input type="checkbox" is="emby-checkbox" id="chkRecordSeries"/>
<input type="checkbox" is="emby-checkbox" id="chkRecordSeries" />
<span>${RecordSeries}</span>
</label>
@ -34,8 +34,8 @@
<span>${RecordOnAllChannels}</span>
</label>
</div>
<br />
</div>
<br />
</div>
<div class="convertRecordingsContainer hide checkboxContainer">
<label>
@ -48,7 +48,6 @@
</div>
</div>
<div class="advanced hide">
<br />
<br />
<emby-collapsible title="${Advanced}">
<div class="seriesDays hide">

View file

@ -23,12 +23,12 @@
"spec"
],
"homepage": "https://github.com/Valve/fingerprintjs2",
"version": "1.3.0",
"_release": "1.3.0",
"version": "1.4.0",
"_release": "1.4.0",
"_resolution": {
"type": "version",
"tag": "1.3.0",
"commit": "727e536d5ffce50b47fd233ea32f022a7bbcdb0f"
"tag": "1.4.0",
"commit": "75cbd474158f8ecce43e00f198c76e486b896937"
},
"_source": "https://github.com/Valve/fingerprintjs2.git",
"_target": "^1.1.3",

File diff suppressed because one or more lines are too long

View file

@ -1,5 +1,5 @@
/*
* Fingerprintjs2 1.3.0 - Modern & flexible browser fingerprint library v2
* Fingerprintjs2 1.4.0 - Modern & flexible browser fingerprint library v2
* https://github.com/Valve/fingerprintjs2
* Copyright (c) 2015 Valentin Vasilyev (valentin.vasilyev@outlook.com)
* Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
@ -84,6 +84,7 @@
keys = this.userAgentKey(keys);
keys = this.languageKey(keys);
keys = this.colorDepthKey(keys);
keys = this.pixelRatioKey(keys);
keys = this.screenResolutionKey(keys);
keys = this.availableScreenResolutionKey(keys);
keys = this.timezoneOffsetKey(keys);
@ -141,6 +142,15 @@
}
return keys;
},
pixelRatioKey: function(keys) {
if(!this.options.excludePixelRatio) {
keys.push({key: "pixel_ratio", value: this.getPixelRatio()});
}
return keys;
},
getPixelRatio: function() {
return window.devicePixelRatio || "";
},
screenResolutionKey: function(keys) {
if(!this.options.excludeScreenResolution) {
return this.getScreenResolution(keys);
@ -679,7 +689,7 @@
ctx.font = "11pt no-real-font-123";
}
ctx.fillText("Cwm fjordbank glyphs vext quiz, \ud83d\ude03", 2, 15);
ctx.fillStyle = "rgba(102, 204, 0, 0.7)";
ctx.fillStyle = "rgba(102, 204, 0, 0.2)";
ctx.font = "18pt Arial";
ctx.fillText("Cwm fjordbank glyphs vext quiz, \ud83d\ude03", 4, 45);
@ -835,13 +845,16 @@
var ads = document.createElement("div");
ads.innerHTML = "&nbsp;";
ads.className = "adsbox";
var result = false;
try {
// body may not exist, that's why we need try/catch
document.body.appendChild(ads);
return document.getElementsByClassName("adsbox")[0].offsetHeight === 0;
result = document.getElementsByClassName("adsbox")[0].offsetHeight === 0;
document.body.removeChild(ads);
} catch (e) {
return false;
result = false;
}
return result;
},
getHasLiedLanguages: function(){
//We check if navigator.language is equal to the first language of navigator.languages
@ -1270,6 +1283,6 @@
return ("00000000" + (h1[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (h1[1] >>> 0).toString(16)).slice(-8) + ("00000000" + (h2[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (h2[1] >>> 0).toString(16)).slice(-8);
}
};
Fingerprint2.VERSION = "1.3.0";
Fingerprint2.VERSION = "1.4.0";
return Fingerprint2;
});

View file

@ -1,6 +1,6 @@
{
"name": "fingerprintjs2",
"version": "1.3.0",
"version": "1.4.0",
"description": "Modern & flexible browser fingerprinting library",
"main": "dist/fingerprint2.min.js",
"devDependencies": {

View file

@ -71,6 +71,15 @@ describe("Fingerprint2", function () {
});
});
it("does not use pixelRatio when excluded", function (done) {
var fp2 = new Fingerprint2({excludePixelRatio: true});
spyOn(fp2, "getPixelRatio");
fp2.get(function(result) {
expect(fp2.getPixelRatio).not.toHaveBeenCalled();
done();
});
});
it("does not use screen resolution when excluded", function (done) {
var fp2 = new Fingerprint2({excludeScreenResolution: true});
spyOn(fp2, "getScreenResolution");