mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update polymer
This commit is contained in:
parent
d131f21626
commit
891f7bd872
9 changed files with 557 additions and 208 deletions
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "polymer",
|
||||
"version": "1.0.8",
|
||||
"version": "1.0.9",
|
||||
"main": [
|
||||
"polymer.html"
|
||||
],
|
||||
|
@ -24,11 +24,11 @@
|
|||
},
|
||||
"private": true,
|
||||
"homepage": "https://github.com/Polymer/polymer",
|
||||
"_release": "1.0.8",
|
||||
"_release": "1.0.9",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "v1.0.8",
|
||||
"commit": "61968bc4e5db93e76306a13517014d4d3b787021"
|
||||
"tag": "v1.0.9",
|
||||
"commit": "8e894841ae36be85bade4b42f858ccb99b770e5d"
|
||||
},
|
||||
"_source": "git://github.com/Polymer/polymer.git",
|
||||
"_target": "^1.0.0",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "polymer",
|
||||
"version": "1.0.8",
|
||||
"version": "1.0.9",
|
||||
"main": [
|
||||
"polymer.html"
|
||||
],
|
||||
|
|
|
@ -95,6 +95,38 @@ get: function () {
|
|||
return (document._currentScript || document.currentScript).ownerDocument;
|
||||
}
|
||||
});
|
||||
Polymer.RenderStatus = {
|
||||
_ready: false,
|
||||
_callbacks: [],
|
||||
whenReady: function (cb) {
|
||||
if (this._ready) {
|
||||
cb();
|
||||
} else {
|
||||
this._callbacks.push(cb);
|
||||
}
|
||||
},
|
||||
_makeReady: function () {
|
||||
this._ready = true;
|
||||
this._callbacks.forEach(function (cb) {
|
||||
cb();
|
||||
});
|
||||
this._callbacks = [];
|
||||
},
|
||||
_catchFirstRender: function () {
|
||||
requestAnimationFrame(function () {
|
||||
Polymer.RenderStatus._makeReady();
|
||||
});
|
||||
}
|
||||
};
|
||||
if (window.HTMLImports) {
|
||||
HTMLImports.whenReady(function () {
|
||||
Polymer.RenderStatus._catchFirstRender();
|
||||
});
|
||||
} else {
|
||||
Polymer.RenderStatus._catchFirstRender();
|
||||
}
|
||||
Polymer.ImportStatus = Polymer.RenderStatus;
|
||||
Polymer.ImportStatus.whenLoaded = Polymer.ImportStatus.whenReady;
|
||||
Polymer.Base = {
|
||||
__isPolymerInstance__: true,
|
||||
_addFeature: function (feature) {
|
||||
|
@ -111,17 +143,22 @@ this._doBehavior('created');
|
|||
this._initFeatures();
|
||||
},
|
||||
attachedCallback: function () {
|
||||
Polymer.RenderStatus.whenReady(function () {
|
||||
this.isAttached = true;
|
||||
this._doBehavior('attached');
|
||||
}.bind(this));
|
||||
},
|
||||
detachedCallback: function () {
|
||||
this.isAttached = false;
|
||||
this._doBehavior('detached');
|
||||
},
|
||||
attributeChangedCallback: function (name) {
|
||||
this._setAttributeToProperty(this, name);
|
||||
this._attributeChangedImpl(name);
|
||||
this._doBehavior('attributeChanged', arguments);
|
||||
},
|
||||
_attributeChangedImpl: function (name) {
|
||||
this._setAttributeToProperty(this, name);
|
||||
},
|
||||
extend: function (prototype, api) {
|
||||
if (prototype && api) {
|
||||
Object.getOwnPropertyNames(api).forEach(function (n) {
|
||||
|
@ -179,6 +216,7 @@ return Boolean(obj && obj.__isPolymerInstance__);
|
|||
Polymer.telemetry.instanceCount = 0;
|
||||
(function () {
|
||||
var modules = {};
|
||||
var lcModules = {};
|
||||
var DomModule = function () {
|
||||
return document.createElement('dom-module');
|
||||
};
|
||||
|
@ -193,10 +231,11 @@ var id = id || this.id || this.getAttribute('name') || this.getAttribute('is');
|
|||
if (id) {
|
||||
this.id = id;
|
||||
modules[id] = this;
|
||||
lcModules[id.toLowerCase()] = this;
|
||||
}
|
||||
},
|
||||
import: function (id, selector) {
|
||||
var m = modules[id];
|
||||
var m = modules[id] || lcModules[id.toLowerCase()];
|
||||
if (!m) {
|
||||
forceDocumentUpgrade();
|
||||
m = modules[id];
|
||||
|
@ -234,6 +273,9 @@ var id = module.id || module.getAttribute('name') || module.getAttribute('is');
|
|||
this.is = id;
|
||||
}
|
||||
}
|
||||
if (this.is) {
|
||||
this.is = this.is.toLowerCase();
|
||||
}
|
||||
}
|
||||
});
|
||||
Polymer.Base._addFeature({
|
||||
|
@ -521,7 +563,7 @@ debouncer.stop();
|
|||
}
|
||||
}
|
||||
});
|
||||
Polymer.version = '1.0.8';
|
||||
Polymer.version = '1.0.9';
|
||||
Polymer.Base._addFeature({
|
||||
_registerFeatures: function () {
|
||||
this._prepIs();
|
||||
|
|
|
@ -14,6 +14,10 @@ this._template = this._template || Polymer.DomModule.import(this.is, 'template')
|
|||
if (this._template && this._template.hasAttribute('is')) {
|
||||
this._warn(this._logf('_prepTemplate', 'top-level Polymer template ' + 'must not be a type-extension, found', this._template, 'Move inside simple <template>.'));
|
||||
}
|
||||
if (this._template && !this._template.content && HTMLTemplateElement.bootstrap) {
|
||||
HTMLTemplateElement.decorate(this._template);
|
||||
HTMLTemplateElement.bootstrap(this._template.content);
|
||||
}
|
||||
},
|
||||
_stampTemplate: function () {
|
||||
if (this._template) {
|
||||
|
@ -434,6 +438,14 @@ if (this.patch) {
|
|||
this.patch();
|
||||
}
|
||||
};
|
||||
if (window.wrap && Settings.useShadow && !Settings.useNativeShadow) {
|
||||
DomApi = function (node) {
|
||||
this.node = wrap(node);
|
||||
if (this.patch) {
|
||||
this.patch();
|
||||
}
|
||||
};
|
||||
}
|
||||
DomApi.prototype = {
|
||||
flush: function () {
|
||||
Polymer.dom.flush();
|
||||
|
@ -507,6 +519,9 @@ this.insertBefore(node, ref_node);
|
|||
this.removeChild(ref_node);
|
||||
return node;
|
||||
},
|
||||
_hasCachedOwnerRoot: function (node) {
|
||||
return Boolean(node._ownerShadyRoot !== undefined);
|
||||
},
|
||||
getOwnerRoot: function () {
|
||||
return this._ownerShadyRootForNode(this.node);
|
||||
},
|
||||
|
@ -645,8 +660,7 @@ children.splice(index, 1);
|
|||
node._lightParent = null;
|
||||
},
|
||||
_removeOwnerShadyRoot: function (node) {
|
||||
var hasCachedRoot = factory(node).getOwnerRoot() !== undefined;
|
||||
if (hasCachedRoot) {
|
||||
if (this._hasCachedOwnerRoot(node)) {
|
||||
var c$ = factory(node).childNodes;
|
||||
for (var i = 0, l = c$.length, n; i < l && (n = c$[i]); i++) {
|
||||
this._removeOwnerShadyRoot(n);
|
||||
|
|
308
dashboard-ui/bower_components/polymer/polymer.html
vendored
308
dashboard-ui/bower_components/polymer/polymer.html
vendored
|
@ -424,6 +424,19 @@ var MOUSE_EVENTS = [
|
|||
'mouseup',
|
||||
'click'
|
||||
];
|
||||
var MOUSE_WHICH_TO_BUTTONS = [
|
||||
0,
|
||||
1,
|
||||
4,
|
||||
2
|
||||
];
|
||||
var MOUSE_HAS_BUTTONS = function () {
|
||||
try {
|
||||
return new MouseEvent('test', { buttons: 1 }).buttons === 1;
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
}();
|
||||
var IS_TOUCH_ONLY = navigator.userAgent.match(/iP(?:[oa]d|hone)|Android/);
|
||||
var mouseCanceller = function (mouseEvent) {
|
||||
mouseEvent[HANDLED_OBJ] = { skip: true };
|
||||
|
@ -462,6 +475,34 @@ POINTERSTATE.mouse.mouseIgnoreJob = null;
|
|||
};
|
||||
POINTERSTATE.mouse.mouseIgnoreJob = Polymer.Debounce(POINTERSTATE.mouse.mouseIgnoreJob, unset, MOUSE_TIMEOUT);
|
||||
}
|
||||
function hasLeftMouseButton(ev) {
|
||||
var type = ev.type;
|
||||
if (MOUSE_EVENTS.indexOf(type) === -1) {
|
||||
return false;
|
||||
}
|
||||
if (type === 'mousemove') {
|
||||
var buttons = ev.buttons === undefined ? 1 : ev.buttons;
|
||||
if (ev instanceof window.MouseEvent && !MOUSE_HAS_BUTTONS) {
|
||||
buttons = MOUSE_WHICH_TO_BUTTONS[ev.which] || 0;
|
||||
}
|
||||
return Boolean(buttons & 1);
|
||||
} else {
|
||||
var button = ev.button === undefined ? 0 : ev.button;
|
||||
return button === 0;
|
||||
}
|
||||
}
|
||||
function isSyntheticClick(ev) {
|
||||
if (ev.type === 'click') {
|
||||
if (ev.detail === 0) {
|
||||
return true;
|
||||
}
|
||||
var t = Gestures.findOriginalTarget(ev);
|
||||
var bcr = t.getBoundingClientRect();
|
||||
var x = ev.pageX, y = ev.pageY;
|
||||
return !(x >= bcr.left && x <= bcr.right && (y >= bcr.top && y <= bcr.bottom));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
var POINTERSTATE = {
|
||||
mouse: {
|
||||
target: null,
|
||||
|
@ -486,6 +527,16 @@ break;
|
|||
}
|
||||
return ta;
|
||||
}
|
||||
function trackDocument(stateObj, movefn, upfn) {
|
||||
stateObj.movefn = movefn;
|
||||
stateObj.upfn = upfn;
|
||||
document.addEventListener('mousemove', movefn);
|
||||
document.addEventListener('mouseup', upfn);
|
||||
}
|
||||
function untrackDocument(stateObj) {
|
||||
document.removeEventListener('mousemove', stateObj.movefn);
|
||||
document.removeEventListener('mouseup', stateObj.upfn);
|
||||
}
|
||||
var Gestures = {
|
||||
gestures: {},
|
||||
recognizers: [],
|
||||
|
@ -586,8 +637,7 @@ prevent = dy > dx;
|
|||
prevent = dx > dy;
|
||||
}
|
||||
if (prevent) {
|
||||
// This prevents side scrolling in safari
|
||||
//ev.preventDefault();
|
||||
ev.preventDefault();
|
||||
} else {
|
||||
Gestures.prevent('track');
|
||||
}
|
||||
|
@ -692,18 +742,48 @@ deps: [
|
|||
'touchstart',
|
||||
'touchend'
|
||||
],
|
||||
flow: {
|
||||
start: [
|
||||
'mousedown',
|
||||
'touchstart'
|
||||
],
|
||||
end: [
|
||||
'mouseup',
|
||||
'touchend'
|
||||
]
|
||||
},
|
||||
emits: [
|
||||
'down',
|
||||
'up'
|
||||
],
|
||||
info: {
|
||||
movefn: function () {
|
||||
},
|
||||
upfn: function () {
|
||||
}
|
||||
},
|
||||
reset: function () {
|
||||
untrackDocument(this.info);
|
||||
},
|
||||
mousedown: function (e) {
|
||||
if (!hasLeftMouseButton(e)) {
|
||||
return;
|
||||
}
|
||||
var t = Gestures.findOriginalTarget(e);
|
||||
var self = this;
|
||||
var upfn = function upfn(e) {
|
||||
var movefn = function movefn(e) {
|
||||
if (!hasLeftMouseButton(e)) {
|
||||
self.fire('up', t, e);
|
||||
document.removeEventListener('mouseup', upfn);
|
||||
untrackDocument(self.info);
|
||||
}
|
||||
};
|
||||
document.addEventListener('mouseup', upfn);
|
||||
var upfn = function upfn(e) {
|
||||
if (hasLeftMouseButton(e)) {
|
||||
self.fire('up', t, e);
|
||||
}
|
||||
untrackDocument(self.info);
|
||||
};
|
||||
trackDocument(this.info, movefn, upfn);
|
||||
this.fire('down', t, e);
|
||||
},
|
||||
touchstart: function (e) {
|
||||
|
@ -754,6 +834,10 @@ this.moves.shift();
|
|||
}
|
||||
this.moves.push(move);
|
||||
},
|
||||
movefn: function () {
|
||||
},
|
||||
upfn: function () {
|
||||
},
|
||||
prevent: false
|
||||
},
|
||||
reset: function () {
|
||||
|
@ -763,6 +847,7 @@ this.info.moves = [];
|
|||
this.info.x = 0;
|
||||
this.info.y = 0;
|
||||
this.info.prevent = false;
|
||||
untrackDocument(this.info);
|
||||
},
|
||||
hasMovedEnough: function (x, y) {
|
||||
if (this.info.prevent) {
|
||||
|
@ -776,6 +861,9 @@ var dy = Math.abs(this.info.y - y);
|
|||
return dx >= TRACK_DISTANCE || dy >= TRACK_DISTANCE;
|
||||
},
|
||||
mousedown: function (e) {
|
||||
if (!hasLeftMouseButton(e)) {
|
||||
return;
|
||||
}
|
||||
var t = Gestures.findOriginalTarget(e);
|
||||
var self = this;
|
||||
var movefn = function movefn(e) {
|
||||
|
@ -786,6 +874,10 @@ self.info.addMove({
|
|||
x: x,
|
||||
y: y
|
||||
});
|
||||
if (!hasLeftMouseButton(e)) {
|
||||
self.info.state = 'end';
|
||||
untrackDocument(self.info);
|
||||
}
|
||||
self.fire(t, e);
|
||||
self.info.started = true;
|
||||
}
|
||||
|
@ -795,11 +887,9 @@ if (self.info.started) {
|
|||
Gestures.prevent('tap');
|
||||
movefn(e);
|
||||
}
|
||||
document.removeEventListener('mousemove', movefn);
|
||||
document.removeEventListener('mouseup', upfn);
|
||||
untrackDocument(self.info);
|
||||
};
|
||||
document.addEventListener('mousemove', movefn);
|
||||
document.addEventListener('mouseup', upfn);
|
||||
trackDocument(this.info, movefn, upfn);
|
||||
this.info.x = e.clientX;
|
||||
this.info.y = e.clientY;
|
||||
},
|
||||
|
@ -894,10 +984,14 @@ this.info.x = e.clientX;
|
|||
this.info.y = e.clientY;
|
||||
},
|
||||
mousedown: function (e) {
|
||||
if (hasLeftMouseButton(e)) {
|
||||
this.save(e);
|
||||
}
|
||||
},
|
||||
click: function (e) {
|
||||
if (hasLeftMouseButton(e)) {
|
||||
this.forward(e);
|
||||
}
|
||||
},
|
||||
touchstart: function (e) {
|
||||
this.save(e.changedTouches[0]);
|
||||
|
@ -909,7 +1003,7 @@ forward: function (e) {
|
|||
var dx = Math.abs(e.clientX - this.info.x);
|
||||
var dy = Math.abs(e.clientY - this.info.y);
|
||||
var t = Gestures.findOriginalTarget(e);
|
||||
if (isNaN(dx) || isNaN(dy) || dx <= TAP_DISTANCE && dy <= TAP_DISTANCE) {
|
||||
if (isNaN(dx) || isNaN(dy) || dx <= TAP_DISTANCE && dy <= TAP_DISTANCE || isSyntheticClick(e)) {
|
||||
if (!this.info.prevent) {
|
||||
Gestures.fire(t, 'tap', {
|
||||
x: e.clientX,
|
||||
|
@ -1530,7 +1624,7 @@ trigger: trigger
|
|||
});
|
||||
},
|
||||
_parseMethod: function (expression) {
|
||||
var m = expression.match(/(\w*)\((.*)\)/);
|
||||
var m = expression.match(/([^\s]+)\((.*)\)/);
|
||||
if (m) {
|
||||
var sig = {
|
||||
method: m[1],
|
||||
|
@ -1625,6 +1719,10 @@ this._handlers = [];
|
|||
_marshalAttributes: function () {
|
||||
this._takeAttributesToModel(this._config);
|
||||
},
|
||||
_attributeChangedImpl: function (name) {
|
||||
var model = this._clientsReadied ? this : this._config;
|
||||
this._setAttributeToProperty(model, name);
|
||||
},
|
||||
_configValue: function (name, value) {
|
||||
this._config[name] = value;
|
||||
},
|
||||
|
@ -1904,36 +2002,56 @@ var array = this.get(path);
|
|||
var args = Array.prototype.slice.call(arguments, 1);
|
||||
var len = array.length;
|
||||
var ret = array.push.apply(array, args);
|
||||
if (args.length) {
|
||||
this._notifySplice(array, path, len, args.length, []);
|
||||
}
|
||||
return ret;
|
||||
},
|
||||
pop: function (path) {
|
||||
var array = this.get(path);
|
||||
var hadLength = Boolean(array.length);
|
||||
var args = Array.prototype.slice.call(arguments, 1);
|
||||
var rem = array.slice(-1);
|
||||
var ret = array.pop.apply(array, args);
|
||||
this._notifySplice(array, path, array.length, 0, rem);
|
||||
if (hadLength) {
|
||||
this._notifySplice(array, path, array.length, 0, [ret]);
|
||||
}
|
||||
return ret;
|
||||
},
|
||||
splice: function (path, start, deleteCount) {
|
||||
var array = this.get(path);
|
||||
if (start < 0) {
|
||||
start = array.length - Math.floor(-start);
|
||||
} else {
|
||||
start = Math.floor(start);
|
||||
}
|
||||
if (!start) {
|
||||
start = 0;
|
||||
}
|
||||
var args = Array.prototype.slice.call(arguments, 1);
|
||||
var ret = array.splice.apply(array, args);
|
||||
this._notifySplice(array, path, start, args.length - 2, ret);
|
||||
var addedCount = Math.max(args.length - 2, 0);
|
||||
if (addedCount || ret.length) {
|
||||
this._notifySplice(array, path, start, addedCount, ret);
|
||||
}
|
||||
return ret;
|
||||
},
|
||||
shift: function (path) {
|
||||
var array = this.get(path);
|
||||
var hadLength = Boolean(array.length);
|
||||
var args = Array.prototype.slice.call(arguments, 1);
|
||||
var ret = array.shift.apply(array, args);
|
||||
if (hadLength) {
|
||||
this._notifySplice(array, path, 0, 0, [ret]);
|
||||
}
|
||||
return ret;
|
||||
},
|
||||
unshift: function (path) {
|
||||
var array = this.get(path);
|
||||
var args = Array.prototype.slice.call(arguments, 1);
|
||||
var ret = array.unshift.apply(array, args);
|
||||
if (args.length) {
|
||||
this._notifySplice(array, path, 0, args.length, []);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
});
|
||||
|
@ -1956,7 +2074,7 @@ text = this._clean(text);
|
|||
return this._parseCss(this._lex(text), text);
|
||||
},
|
||||
_clean: function (cssText) {
|
||||
return cssText.replace(rx.comments, '').replace(rx.port, '');
|
||||
return cssText.replace(this._rx.comments, '').replace(this._rx.port, '');
|
||||
},
|
||||
_lex: function (text) {
|
||||
var root = {
|
||||
|
@ -1995,15 +2113,15 @@ var ss = node.previous ? node.previous.end : node.parent.start;
|
|||
t = text.substring(ss, node.start - 1);
|
||||
t = t.substring(t.lastIndexOf(';') + 1);
|
||||
var s = node.parsedSelector = node.selector = t.trim();
|
||||
node.atRule = s.indexOf(AT_START) === 0;
|
||||
node.atRule = s.indexOf(this.AT_START) === 0;
|
||||
if (node.atRule) {
|
||||
if (s.indexOf(MEDIA_START) === 0) {
|
||||
if (s.indexOf(this.MEDIA_START) === 0) {
|
||||
node.type = this.types.MEDIA_RULE;
|
||||
} else if (s.match(rx.keyframesRule)) {
|
||||
} else if (s.match(this._rx.keyframesRule)) {
|
||||
node.type = this.types.KEYFRAMES_RULE;
|
||||
}
|
||||
} else {
|
||||
if (s.indexOf(VAR_START) === 0) {
|
||||
if (s.indexOf(this.VAR_START) === 0) {
|
||||
node.type = this.types.MIXIN_RULE;
|
||||
} else {
|
||||
node.type = this.types.STYLE_RULE;
|
||||
|
@ -2023,12 +2141,12 @@ text = text || '';
|
|||
var cssText = '';
|
||||
if (node.cssText || node.rules) {
|
||||
var r$ = node.rules;
|
||||
if (r$ && (preserveProperties || !hasMixinRules(r$))) {
|
||||
if (r$ && (preserveProperties || !this._hasMixinRules(r$))) {
|
||||
for (var i = 0, l = r$.length, r; i < l && (r = r$[i]); i++) {
|
||||
cssText = this.stringify(r, preserveProperties, cssText);
|
||||
}
|
||||
} else {
|
||||
cssText = preserveProperties ? node.cssText : removeCustomProps(node.cssText);
|
||||
cssText = preserveProperties ? node.cssText : this.removeCustomProps(node.cssText);
|
||||
cssText = cssText.trim();
|
||||
if (cssText) {
|
||||
cssText = ' ' + cssText + '\n';
|
||||
|
@ -2046,6 +2164,19 @@ text += this.CLOSE_BRACE + '\n\n';
|
|||
}
|
||||
return text;
|
||||
},
|
||||
_hasMixinRules: function (rules) {
|
||||
return rules[0].selector.indexOf(this.VAR_START) >= 0;
|
||||
},
|
||||
removeCustomProps: function (cssText) {
|
||||
cssText = this.removeCustomPropAssignment(cssText);
|
||||
return this.removeCustomPropApply(cssText);
|
||||
},
|
||||
removeCustomPropAssignment: function (cssText) {
|
||||
return cssText.replace(this._rx.customProp, '').replace(this._rx.mixinProp, '');
|
||||
},
|
||||
removeCustomPropApply: function (cssText) {
|
||||
return cssText.replace(this._rx.mixinApply, '').replace(this._rx.varApply, '');
|
||||
},
|
||||
types: {
|
||||
STYLE_RULE: 1,
|
||||
KEYFRAMES_RULE: 7,
|
||||
|
@ -2053,18 +2184,8 @@ MEDIA_RULE: 4,
|
|||
MIXIN_RULE: 1000
|
||||
},
|
||||
OPEN_BRACE: '{',
|
||||
CLOSE_BRACE: '}'
|
||||
};
|
||||
function hasMixinRules(rules) {
|
||||
return rules[0].selector.indexOf(VAR_START) >= 0;
|
||||
}
|
||||
function removeCustomProps(cssText) {
|
||||
return cssText.replace(rx.customProp, '').replace(rx.mixinProp, '').replace(rx.mixinApply, '').replace(rx.varApply, '');
|
||||
}
|
||||
var VAR_START = '--';
|
||||
var MEDIA_START = '@media';
|
||||
var AT_START = '@';
|
||||
var rx = {
|
||||
CLOSE_BRACE: '}',
|
||||
_rx: {
|
||||
comments: /\/\*[^*]*\*+([^\/*][^*]*\*+)*\//gim,
|
||||
port: /@import[^;]*;/gim,
|
||||
customProp: /(?:^|[\s;])--[^;{]*?:[^{};]*?(?:[;\n]|$)/gim,
|
||||
|
@ -2072,6 +2193,10 @@ mixinProp: /(?:^|[\s;])--[^;{]*?:[^{;]*?{[^}]*?}(?:[;\n]|$)?/gim,
|
|||
mixinApply: /@apply[\s]*\([^)]*?\)[\s]*(?:[;\n]|$)?/gim,
|
||||
varApply: /[^;:]*?:[^;]*var[^;]*(?:[;\n]|$)?/gim,
|
||||
keyframesRule: /^@[^\s]*keyframes/
|
||||
},
|
||||
VAR_START: '--',
|
||||
MEDIA_START: '@media',
|
||||
AT_START: '@'
|
||||
};
|
||||
return api;
|
||||
}();
|
||||
|
@ -2104,7 +2229,7 @@ clearStyleRules: function (style) {
|
|||
style.__cssRules = null;
|
||||
},
|
||||
forEachStyleRule: function (node, callback) {
|
||||
var s = node.selector;
|
||||
var s = node.parsedSelector;
|
||||
var skipRules = false;
|
||||
if (node.type === this.ruleTypes.STYLE_RULE) {
|
||||
callback(node);
|
||||
|
@ -2244,7 +2369,7 @@ var p$ = rule.selector.split(COMPLEX_SELECTOR_SEP);
|
|||
for (var i = 0, l = p$.length, p; i < l && (p = p$[i]); i++) {
|
||||
p$[i] = transformer.call(this, p, scope, hostScope);
|
||||
}
|
||||
rule.selector = p$.join(COMPLEX_SELECTOR_SEP);
|
||||
rule.selector = rule.transformedSelector = p$.join(COMPLEX_SELECTOR_SEP);
|
||||
},
|
||||
_transformComplexSelector: function (selector, scope, hostScope) {
|
||||
var stop = false;
|
||||
|
@ -2599,7 +2724,8 @@ return property && property.trim() || '';
|
|||
},
|
||||
valueForProperties: function (property, props) {
|
||||
var parts = property.split(';');
|
||||
for (var i = 0, p, m; i < parts.length && (p = parts[i]); i++) {
|
||||
for (var i = 0, p, m; i < parts.length; i++) {
|
||||
if (p = parts[i]) {
|
||||
m = p.match(this.rx.MIXIN_MATCH);
|
||||
if (m) {
|
||||
p = this.valueForProperty(props[m[1]], props);
|
||||
|
@ -2613,6 +2739,7 @@ p = pp.join(':');
|
|||
}
|
||||
parts[i] = p && p.lastIndexOf(';') === p.length - 1 ? p.slice(0, -1) : p || '';
|
||||
}
|
||||
}
|
||||
return parts.join(';');
|
||||
},
|
||||
applyProperties: function (rule, props) {
|
||||
|
@ -2632,7 +2759,7 @@ styleUtil.forRulesInStyles(styles, function (rule) {
|
|||
if (!rule.propertyInfo) {
|
||||
self.decorateRule(rule);
|
||||
}
|
||||
if (element && rule.propertyInfo.properties && matchesSelector.call(element, rule.selector)) {
|
||||
if (element && rule.propertyInfo.properties && matchesSelector.call(element, rule.transformedSelector || rule.parsedSelector)) {
|
||||
self.collectProperties(rule, props);
|
||||
addToBitMask(i, o);
|
||||
}
|
||||
|
@ -3030,9 +3157,9 @@ this._pushHost();
|
|||
this._stampTemplate();
|
||||
this._popHost();
|
||||
this._marshalAnnotationReferences();
|
||||
this._marshalHostAttributes();
|
||||
this._setupDebouncers();
|
||||
this._marshalInstanceEffects();
|
||||
this._marshalHostAttributes();
|
||||
this._marshalBehaviors();
|
||||
this._marshalAttributes();
|
||||
this._tryReady();
|
||||
|
@ -3045,6 +3172,7 @@ this._listenListeners(b.listeners);
|
|||
var nativeShadow = Polymer.Settings.useNativeShadow;
|
||||
var propertyUtils = Polymer.StyleProperties;
|
||||
var styleUtil = Polymer.StyleUtil;
|
||||
var cssParse = Polymer.CssParse;
|
||||
var styleDefaults = Polymer.StyleDefaults;
|
||||
var styleTransformer = Polymer.StyleTransformer;
|
||||
Polymer({
|
||||
|
@ -3082,7 +3210,7 @@ var self = this;
|
|||
e.textContent = styleUtil.toCssText(styleUtil.rulesForStyle(e), function (rule) {
|
||||
var css = rule.cssText = rule.parsedCssText;
|
||||
if (rule.propertyInfo && rule.propertyInfo.cssText) {
|
||||
css = css.replace(propertyUtils.rx.VAR_ASSIGN, '');
|
||||
css = cssParse.removeCustomPropAssignment(css);
|
||||
rule.cssText = propertyUtils.valueForProperties(css, props);
|
||||
}
|
||||
styleTransformer.documentRule(rule);
|
||||
|
@ -3130,10 +3258,24 @@ _showHideChildrenImpl: function (hide) {
|
|||
var c = this._children;
|
||||
for (var i = 0; i < c.length; i++) {
|
||||
var n = c[i];
|
||||
if (n.style) {
|
||||
n.style.display = hide ? 'none' : '';
|
||||
n.__hideTemplateChildren__ = hide;
|
||||
if (Boolean(hide) != Boolean(n.__hideTemplateChildren__)) {
|
||||
if (n.nodeType === Node.TEXT_NODE) {
|
||||
if (hide) {
|
||||
n.__polymerTextContent__ = n.textContent;
|
||||
n.textContent = '';
|
||||
} else {
|
||||
n.textContent = n.__polymerTextContent__;
|
||||
}
|
||||
} else if (n.style) {
|
||||
if (hide) {
|
||||
n.__polymerDisplay__ = n.style.display;
|
||||
n.style.display = 'none';
|
||||
} else {
|
||||
n.style.display = n.__polymerDisplay__;
|
||||
}
|
||||
}
|
||||
}
|
||||
n.__hideTemplateChildren__ = hide;
|
||||
}
|
||||
},
|
||||
_debounceTemplate: function (fn) {
|
||||
|
@ -3816,16 +3958,23 @@ is: 'array-selector',
|
|||
properties: {
|
||||
items: {
|
||||
type: Array,
|
||||
observer: '_itemsChanged'
|
||||
observer: '_resetSelection'
|
||||
},
|
||||
multi: {
|
||||
type: Boolean,
|
||||
value: false,
|
||||
observer: '_resetSelection'
|
||||
},
|
||||
selected: {
|
||||
type: Object,
|
||||
notify: true
|
||||
},
|
||||
toggle: Boolean,
|
||||
multi: Boolean
|
||||
toggle: {
|
||||
type: Boolean,
|
||||
value: false
|
||||
}
|
||||
},
|
||||
_itemsChanged: function () {
|
||||
_resetSelection: function () {
|
||||
if (Array.isArray(this.selected)) {
|
||||
for (var i = 0; i < this.selected.length; i++) {
|
||||
this.unlinkPaths('selected.' + i);
|
||||
|
@ -3834,20 +3983,28 @@ this.unlinkPaths('selected.' + i);
|
|||
this.unlinkPaths('selected');
|
||||
}
|
||||
if (this.multi) {
|
||||
if (!this.selected || this.selected.length) {
|
||||
this.selected = [];
|
||||
this._selectedColl = Polymer.Collection.get(this.selected);
|
||||
}
|
||||
} else {
|
||||
this.selected = null;
|
||||
this._selectedColl = null;
|
||||
}
|
||||
},
|
||||
isSelected: function (item) {
|
||||
if (this.multi) {
|
||||
return this._selectedColl.getKey(item) !== undefined;
|
||||
} else {
|
||||
return this.selected == item;
|
||||
}
|
||||
},
|
||||
deselect: function (item) {
|
||||
if (this.multi) {
|
||||
var scol = Polymer.Collection.get(this.selected);
|
||||
var sidx = this.selected.indexOf(item);
|
||||
if (sidx >= 0) {
|
||||
var skey = scol.getKey(item);
|
||||
this.splice('selected', sidx, 1);
|
||||
if (this.isSelected(item)) {
|
||||
var skey = this._selectedColl.getKey(item);
|
||||
this.arrayDelete('selected', item);
|
||||
this.unlinkPaths('selected.' + skey);
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
this.selected = null;
|
||||
|
@ -3858,18 +4015,14 @@ select: function (item) {
|
|||
var icol = Polymer.Collection.get(this.items);
|
||||
var key = icol.getKey(item);
|
||||
if (this.multi) {
|
||||
var scol = Polymer.Collection.get(this.selected);
|
||||
var skey = scol.getKey(item);
|
||||
if (skey >= 0) {
|
||||
if (this.isSelected(item)) {
|
||||
if (this.toggle) {
|
||||
this.deselect(item);
|
||||
}
|
||||
} else {
|
||||
this.push('selected', item);
|
||||
this.async(function () {
|
||||
skey = scol.getKey(item);
|
||||
skey = this._selectedColl.getKey(item);
|
||||
this.linkPaths('selected.' + skey, 'items.' + key);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
if (this.toggle && item == this.selected) {
|
||||
|
@ -3914,7 +4067,6 @@ this._flushTemplates();
|
|||
_render: function () {
|
||||
if (this.if) {
|
||||
if (!this.ctor) {
|
||||
this._wrapTextNodes(this._content || this.content);
|
||||
this.templatize(this);
|
||||
}
|
||||
this._ensureInstance();
|
||||
|
@ -3950,16 +4102,6 @@ parent.removeChild(n);
|
|||
this._instance = null;
|
||||
}
|
||||
},
|
||||
_wrapTextNodes: function (root) {
|
||||
for (var n = root.firstChild; n; n = n.nextSibling) {
|
||||
if (n.nodeType === Node.TEXT_NODE && n.textContent.trim()) {
|
||||
var s = document.createElement('span');
|
||||
root.insertBefore(s, n);
|
||||
s.appendChild(n);
|
||||
n = s;
|
||||
}
|
||||
}
|
||||
},
|
||||
_showHideChildren: function () {
|
||||
var hidden = this.__hideTemplateChildren__ || !this.if;
|
||||
if (this._instance) {
|
||||
|
@ -3977,37 +4119,11 @@ this._instance.notifyPath(path, value, true);
|
|||
}
|
||||
}
|
||||
});
|
||||
Polymer.ImportStatus = {
|
||||
_ready: false,
|
||||
_callbacks: [],
|
||||
whenLoaded: function (cb) {
|
||||
if (this._ready) {
|
||||
cb();
|
||||
} else {
|
||||
this._callbacks.push(cb);
|
||||
}
|
||||
},
|
||||
_importsLoaded: function () {
|
||||
this._ready = true;
|
||||
this._callbacks.forEach(function (cb) {
|
||||
cb();
|
||||
});
|
||||
this._callbacks = [];
|
||||
}
|
||||
};
|
||||
window.addEventListener('load', function () {
|
||||
Polymer.ImportStatus._importsLoaded();
|
||||
});
|
||||
if (window.HTMLImports) {
|
||||
HTMLImports.whenReady(function () {
|
||||
Polymer.ImportStatus._importsLoaded();
|
||||
});
|
||||
}
|
||||
Polymer({
|
||||
is: 'dom-bind',
|
||||
extends: 'template',
|
||||
created: function () {
|
||||
Polymer.ImportStatus.whenLoaded(this._markImportsReady.bind(this));
|
||||
Polymer.RenderStatus.whenReady(this._markImportsReady.bind(this));
|
||||
},
|
||||
_ensureReady: function () {
|
||||
if (!this._readied) {
|
||||
|
|
|
@ -7,6 +7,10 @@
|
|||
max-width: 100%;
|
||||
}
|
||||
|
||||
.neon-animating .tvGuideHeader {
|
||||
position: static;
|
||||
}
|
||||
|
||||
.bottomSecondaryNav .tvGuideHeader {
|
||||
top: 48px;
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
var page = this;
|
||||
|
||||
$('form').off('submit', onSubmit).on('submit', onSubmit);
|
||||
$('form', page).off('submit', onSubmit).on('submit', onSubmit);
|
||||
|
||||
$('.btnSelectSyncPath', page).on('click', function () {
|
||||
|
||||
|
|
|
@ -1699,6 +1699,7 @@ var AppInfo = {};
|
|||
AppInfo.enableMovieTrailersTab = true;
|
||||
}
|
||||
|
||||
AppInfo.enableAppLayouts = true;
|
||||
if (isCordova) {
|
||||
AppInfo.enableAppLayouts = true;
|
||||
AppInfo.hasKnownExternalPlayerSupport = true;
|
||||
|
|
|
@ -119,6 +119,38 @@ get: function () {
|
|||
return (document._currentScript || document.currentScript).ownerDocument;
|
||||
}
|
||||
});
|
||||
Polymer.RenderStatus = {
|
||||
_ready: false,
|
||||
_callbacks: [],
|
||||
whenReady: function (cb) {
|
||||
if (this._ready) {
|
||||
cb();
|
||||
} else {
|
||||
this._callbacks.push(cb);
|
||||
}
|
||||
},
|
||||
_makeReady: function () {
|
||||
this._ready = true;
|
||||
this._callbacks.forEach(function (cb) {
|
||||
cb();
|
||||
});
|
||||
this._callbacks = [];
|
||||
},
|
||||
_catchFirstRender: function () {
|
||||
requestAnimationFrame(function () {
|
||||
Polymer.RenderStatus._makeReady();
|
||||
});
|
||||
}
|
||||
};
|
||||
if (window.HTMLImports) {
|
||||
HTMLImports.whenReady(function () {
|
||||
Polymer.RenderStatus._catchFirstRender();
|
||||
});
|
||||
} else {
|
||||
Polymer.RenderStatus._catchFirstRender();
|
||||
}
|
||||
Polymer.ImportStatus = Polymer.RenderStatus;
|
||||
Polymer.ImportStatus.whenLoaded = Polymer.ImportStatus.whenReady;
|
||||
Polymer.Base = {
|
||||
__isPolymerInstance__: true,
|
||||
_addFeature: function (feature) {
|
||||
|
@ -135,17 +167,22 @@ this._doBehavior('created');
|
|||
this._initFeatures();
|
||||
},
|
||||
attachedCallback: function () {
|
||||
Polymer.RenderStatus.whenReady(function () {
|
||||
this.isAttached = true;
|
||||
this._doBehavior('attached');
|
||||
}.bind(this));
|
||||
},
|
||||
detachedCallback: function () {
|
||||
this.isAttached = false;
|
||||
this._doBehavior('detached');
|
||||
},
|
||||
attributeChangedCallback: function (name) {
|
||||
this._setAttributeToProperty(this, name);
|
||||
this._attributeChangedImpl(name);
|
||||
this._doBehavior('attributeChanged', arguments);
|
||||
},
|
||||
_attributeChangedImpl: function (name) {
|
||||
this._setAttributeToProperty(this, name);
|
||||
},
|
||||
extend: function (prototype, api) {
|
||||
if (prototype && api) {
|
||||
Object.getOwnPropertyNames(api).forEach(function (n) {
|
||||
|
@ -203,6 +240,7 @@ return Boolean(obj && obj.__isPolymerInstance__);
|
|||
Polymer.telemetry.instanceCount = 0;
|
||||
(function () {
|
||||
var modules = {};
|
||||
var lcModules = {};
|
||||
var DomModule = function () {
|
||||
return document.createElement('dom-module');
|
||||
};
|
||||
|
@ -217,10 +255,11 @@ var id = id || this.id || this.getAttribute('name') || this.getAttribute('is');
|
|||
if (id) {
|
||||
this.id = id;
|
||||
modules[id] = this;
|
||||
lcModules[id.toLowerCase()] = this;
|
||||
}
|
||||
},
|
||||
import: function (id, selector) {
|
||||
var m = modules[id];
|
||||
var m = modules[id] || lcModules[id.toLowerCase()];
|
||||
if (!m) {
|
||||
forceDocumentUpgrade();
|
||||
m = modules[id];
|
||||
|
@ -258,6 +297,9 @@ var id = module.id || module.getAttribute('name') || module.getAttribute('is');
|
|||
this.is = id;
|
||||
}
|
||||
}
|
||||
if (this.is) {
|
||||
this.is = this.is.toLowerCase();
|
||||
}
|
||||
}
|
||||
});
|
||||
Polymer.Base._addFeature({
|
||||
|
@ -545,7 +587,7 @@ debouncer.stop();
|
|||
}
|
||||
}
|
||||
});
|
||||
Polymer.version = '1.0.8';
|
||||
Polymer.version = '1.0.9';
|
||||
Polymer.Base._addFeature({
|
||||
_registerFeatures: function () {
|
||||
this._prepIs();
|
||||
|
@ -571,6 +613,10 @@ this._template = this._template || Polymer.DomModule.import(this.is, 'template')
|
|||
if (this._template && this._template.hasAttribute('is')) {
|
||||
this._warn(this._logf('_prepTemplate', 'top-level Polymer template ' + 'must not be a type-extension, found', this._template, 'Move inside simple <template>.'));
|
||||
}
|
||||
if (this._template && !this._template.content && HTMLTemplateElement.bootstrap) {
|
||||
HTMLTemplateElement.decorate(this._template);
|
||||
HTMLTemplateElement.bootstrap(this._template.content);
|
||||
}
|
||||
},
|
||||
_stampTemplate: function () {
|
||||
if (this._template) {
|
||||
|
@ -991,6 +1037,14 @@ if (this.patch) {
|
|||
this.patch();
|
||||
}
|
||||
};
|
||||
if (window.wrap && Settings.useShadow && !Settings.useNativeShadow) {
|
||||
DomApi = function (node) {
|
||||
this.node = wrap(node);
|
||||
if (this.patch) {
|
||||
this.patch();
|
||||
}
|
||||
};
|
||||
}
|
||||
DomApi.prototype = {
|
||||
flush: function () {
|
||||
Polymer.dom.flush();
|
||||
|
@ -1064,6 +1118,9 @@ this.insertBefore(node, ref_node);
|
|||
this.removeChild(ref_node);
|
||||
return node;
|
||||
},
|
||||
_hasCachedOwnerRoot: function (node) {
|
||||
return Boolean(node._ownerShadyRoot !== undefined);
|
||||
},
|
||||
getOwnerRoot: function () {
|
||||
return this._ownerShadyRootForNode(this.node);
|
||||
},
|
||||
|
@ -1202,8 +1259,7 @@ children.splice(index, 1);
|
|||
node._lightParent = null;
|
||||
},
|
||||
_removeOwnerShadyRoot: function (node) {
|
||||
var hasCachedRoot = factory(node).getOwnerRoot() !== undefined;
|
||||
if (hasCachedRoot) {
|
||||
if (this._hasCachedOwnerRoot(node)) {
|
||||
var c$ = factory(node).childNodes;
|
||||
for (var i = 0, l = c$.length, n; i < l && (n = c$[i]); i++) {
|
||||
this._removeOwnerShadyRoot(n);
|
||||
|
@ -2435,6 +2491,19 @@ var MOUSE_EVENTS = [
|
|||
'mouseup',
|
||||
'click'
|
||||
];
|
||||
var MOUSE_WHICH_TO_BUTTONS = [
|
||||
0,
|
||||
1,
|
||||
4,
|
||||
2
|
||||
];
|
||||
var MOUSE_HAS_BUTTONS = function () {
|
||||
try {
|
||||
return new MouseEvent('test', { buttons: 1 }).buttons === 1;
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
}();
|
||||
var IS_TOUCH_ONLY = navigator.userAgent.match(/iP(?:[oa]d|hone)|Android/);
|
||||
var mouseCanceller = function (mouseEvent) {
|
||||
mouseEvent[HANDLED_OBJ] = { skip: true };
|
||||
|
@ -2473,6 +2542,34 @@ POINTERSTATE.mouse.mouseIgnoreJob = null;
|
|||
};
|
||||
POINTERSTATE.mouse.mouseIgnoreJob = Polymer.Debounce(POINTERSTATE.mouse.mouseIgnoreJob, unset, MOUSE_TIMEOUT);
|
||||
}
|
||||
function hasLeftMouseButton(ev) {
|
||||
var type = ev.type;
|
||||
if (MOUSE_EVENTS.indexOf(type) === -1) {
|
||||
return false;
|
||||
}
|
||||
if (type === 'mousemove') {
|
||||
var buttons = ev.buttons === undefined ? 1 : ev.buttons;
|
||||
if (ev instanceof window.MouseEvent && !MOUSE_HAS_BUTTONS) {
|
||||
buttons = MOUSE_WHICH_TO_BUTTONS[ev.which] || 0;
|
||||
}
|
||||
return Boolean(buttons & 1);
|
||||
} else {
|
||||
var button = ev.button === undefined ? 0 : ev.button;
|
||||
return button === 0;
|
||||
}
|
||||
}
|
||||
function isSyntheticClick(ev) {
|
||||
if (ev.type === 'click') {
|
||||
if (ev.detail === 0) {
|
||||
return true;
|
||||
}
|
||||
var t = Gestures.findOriginalTarget(ev);
|
||||
var bcr = t.getBoundingClientRect();
|
||||
var x = ev.pageX, y = ev.pageY;
|
||||
return !(x >= bcr.left && x <= bcr.right && (y >= bcr.top && y <= bcr.bottom));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
var POINTERSTATE = {
|
||||
mouse: {
|
||||
target: null,
|
||||
|
@ -2497,6 +2594,16 @@ break;
|
|||
}
|
||||
return ta;
|
||||
}
|
||||
function trackDocument(stateObj, movefn, upfn) {
|
||||
stateObj.movefn = movefn;
|
||||
stateObj.upfn = upfn;
|
||||
document.addEventListener('mousemove', movefn);
|
||||
document.addEventListener('mouseup', upfn);
|
||||
}
|
||||
function untrackDocument(stateObj) {
|
||||
document.removeEventListener('mousemove', stateObj.movefn);
|
||||
document.removeEventListener('mouseup', stateObj.upfn);
|
||||
}
|
||||
var Gestures = {
|
||||
gestures: {},
|
||||
recognizers: [],
|
||||
|
@ -2597,8 +2704,7 @@ prevent = dy > dx;
|
|||
prevent = dx > dy;
|
||||
}
|
||||
if (prevent) {
|
||||
// This prevents side scrolling in safari
|
||||
//ev.preventDefault();
|
||||
ev.preventDefault();
|
||||
} else {
|
||||
Gestures.prevent('track');
|
||||
}
|
||||
|
@ -2703,18 +2809,48 @@ deps: [
|
|||
'touchstart',
|
||||
'touchend'
|
||||
],
|
||||
flow: {
|
||||
start: [
|
||||
'mousedown',
|
||||
'touchstart'
|
||||
],
|
||||
end: [
|
||||
'mouseup',
|
||||
'touchend'
|
||||
]
|
||||
},
|
||||
emits: [
|
||||
'down',
|
||||
'up'
|
||||
],
|
||||
info: {
|
||||
movefn: function () {
|
||||
},
|
||||
upfn: function () {
|
||||
}
|
||||
},
|
||||
reset: function () {
|
||||
untrackDocument(this.info);
|
||||
},
|
||||
mousedown: function (e) {
|
||||
if (!hasLeftMouseButton(e)) {
|
||||
return;
|
||||
}
|
||||
var t = Gestures.findOriginalTarget(e);
|
||||
var self = this;
|
||||
var upfn = function upfn(e) {
|
||||
var movefn = function movefn(e) {
|
||||
if (!hasLeftMouseButton(e)) {
|
||||
self.fire('up', t, e);
|
||||
document.removeEventListener('mouseup', upfn);
|
||||
untrackDocument(self.info);
|
||||
}
|
||||
};
|
||||
document.addEventListener('mouseup', upfn);
|
||||
var upfn = function upfn(e) {
|
||||
if (hasLeftMouseButton(e)) {
|
||||
self.fire('up', t, e);
|
||||
}
|
||||
untrackDocument(self.info);
|
||||
};
|
||||
trackDocument(this.info, movefn, upfn);
|
||||
this.fire('down', t, e);
|
||||
},
|
||||
touchstart: function (e) {
|
||||
|
@ -2765,6 +2901,10 @@ this.moves.shift();
|
|||
}
|
||||
this.moves.push(move);
|
||||
},
|
||||
movefn: function () {
|
||||
},
|
||||
upfn: function () {
|
||||
},
|
||||
prevent: false
|
||||
},
|
||||
reset: function () {
|
||||
|
@ -2774,6 +2914,7 @@ this.info.moves = [];
|
|||
this.info.x = 0;
|
||||
this.info.y = 0;
|
||||
this.info.prevent = false;
|
||||
untrackDocument(this.info);
|
||||
},
|
||||
hasMovedEnough: function (x, y) {
|
||||
if (this.info.prevent) {
|
||||
|
@ -2787,6 +2928,9 @@ var dy = Math.abs(this.info.y - y);
|
|||
return dx >= TRACK_DISTANCE || dy >= TRACK_DISTANCE;
|
||||
},
|
||||
mousedown: function (e) {
|
||||
if (!hasLeftMouseButton(e)) {
|
||||
return;
|
||||
}
|
||||
var t = Gestures.findOriginalTarget(e);
|
||||
var self = this;
|
||||
var movefn = function movefn(e) {
|
||||
|
@ -2797,6 +2941,10 @@ self.info.addMove({
|
|||
x: x,
|
||||
y: y
|
||||
});
|
||||
if (!hasLeftMouseButton(e)) {
|
||||
self.info.state = 'end';
|
||||
untrackDocument(self.info);
|
||||
}
|
||||
self.fire(t, e);
|
||||
self.info.started = true;
|
||||
}
|
||||
|
@ -2806,11 +2954,9 @@ if (self.info.started) {
|
|||
Gestures.prevent('tap');
|
||||
movefn(e);
|
||||
}
|
||||
document.removeEventListener('mousemove', movefn);
|
||||
document.removeEventListener('mouseup', upfn);
|
||||
untrackDocument(self.info);
|
||||
};
|
||||
document.addEventListener('mousemove', movefn);
|
||||
document.addEventListener('mouseup', upfn);
|
||||
trackDocument(this.info, movefn, upfn);
|
||||
this.info.x = e.clientX;
|
||||
this.info.y = e.clientY;
|
||||
},
|
||||
|
@ -2905,10 +3051,14 @@ this.info.x = e.clientX;
|
|||
this.info.y = e.clientY;
|
||||
},
|
||||
mousedown: function (e) {
|
||||
if (hasLeftMouseButton(e)) {
|
||||
this.save(e);
|
||||
}
|
||||
},
|
||||
click: function (e) {
|
||||
if (hasLeftMouseButton(e)) {
|
||||
this.forward(e);
|
||||
}
|
||||
},
|
||||
touchstart: function (e) {
|
||||
this.save(e.changedTouches[0]);
|
||||
|
@ -2920,7 +3070,7 @@ forward: function (e) {
|
|||
var dx = Math.abs(e.clientX - this.info.x);
|
||||
var dy = Math.abs(e.clientY - this.info.y);
|
||||
var t = Gestures.findOriginalTarget(e);
|
||||
if (isNaN(dx) || isNaN(dy) || dx <= TAP_DISTANCE && dy <= TAP_DISTANCE) {
|
||||
if (isNaN(dx) || isNaN(dy) || dx <= TAP_DISTANCE && dy <= TAP_DISTANCE || isSyntheticClick(e)) {
|
||||
if (!this.info.prevent) {
|
||||
Gestures.fire(t, 'tap', {
|
||||
x: e.clientX,
|
||||
|
@ -3541,7 +3691,7 @@ trigger: trigger
|
|||
});
|
||||
},
|
||||
_parseMethod: function (expression) {
|
||||
var m = expression.match(/(\w*)\((.*)\)/);
|
||||
var m = expression.match(/([^\s]+)\((.*)\)/);
|
||||
if (m) {
|
||||
var sig = {
|
||||
method: m[1],
|
||||
|
@ -3636,6 +3786,10 @@ this._handlers = [];
|
|||
_marshalAttributes: function () {
|
||||
this._takeAttributesToModel(this._config);
|
||||
},
|
||||
_attributeChangedImpl: function (name) {
|
||||
var model = this._clientsReadied ? this : this._config;
|
||||
this._setAttributeToProperty(model, name);
|
||||
},
|
||||
_configValue: function (name, value) {
|
||||
this._config[name] = value;
|
||||
},
|
||||
|
@ -3915,36 +4069,56 @@ var array = this.get(path);
|
|||
var args = Array.prototype.slice.call(arguments, 1);
|
||||
var len = array.length;
|
||||
var ret = array.push.apply(array, args);
|
||||
if (args.length) {
|
||||
this._notifySplice(array, path, len, args.length, []);
|
||||
}
|
||||
return ret;
|
||||
},
|
||||
pop: function (path) {
|
||||
var array = this.get(path);
|
||||
var hadLength = Boolean(array.length);
|
||||
var args = Array.prototype.slice.call(arguments, 1);
|
||||
var rem = array.slice(-1);
|
||||
var ret = array.pop.apply(array, args);
|
||||
this._notifySplice(array, path, array.length, 0, rem);
|
||||
if (hadLength) {
|
||||
this._notifySplice(array, path, array.length, 0, [ret]);
|
||||
}
|
||||
return ret;
|
||||
},
|
||||
splice: function (path, start, deleteCount) {
|
||||
var array = this.get(path);
|
||||
if (start < 0) {
|
||||
start = array.length - Math.floor(-start);
|
||||
} else {
|
||||
start = Math.floor(start);
|
||||
}
|
||||
if (!start) {
|
||||
start = 0;
|
||||
}
|
||||
var args = Array.prototype.slice.call(arguments, 1);
|
||||
var ret = array.splice.apply(array, args);
|
||||
this._notifySplice(array, path, start, args.length - 2, ret);
|
||||
var addedCount = Math.max(args.length - 2, 0);
|
||||
if (addedCount || ret.length) {
|
||||
this._notifySplice(array, path, start, addedCount, ret);
|
||||
}
|
||||
return ret;
|
||||
},
|
||||
shift: function (path) {
|
||||
var array = this.get(path);
|
||||
var hadLength = Boolean(array.length);
|
||||
var args = Array.prototype.slice.call(arguments, 1);
|
||||
var ret = array.shift.apply(array, args);
|
||||
if (hadLength) {
|
||||
this._notifySplice(array, path, 0, 0, [ret]);
|
||||
}
|
||||
return ret;
|
||||
},
|
||||
unshift: function (path) {
|
||||
var array = this.get(path);
|
||||
var args = Array.prototype.slice.call(arguments, 1);
|
||||
var ret = array.unshift.apply(array, args);
|
||||
if (args.length) {
|
||||
this._notifySplice(array, path, 0, args.length, []);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
});
|
||||
|
@ -3967,7 +4141,7 @@ text = this._clean(text);
|
|||
return this._parseCss(this._lex(text), text);
|
||||
},
|
||||
_clean: function (cssText) {
|
||||
return cssText.replace(rx.comments, '').replace(rx.port, '');
|
||||
return cssText.replace(this._rx.comments, '').replace(this._rx.port, '');
|
||||
},
|
||||
_lex: function (text) {
|
||||
var root = {
|
||||
|
@ -4006,15 +4180,15 @@ var ss = node.previous ? node.previous.end : node.parent.start;
|
|||
t = text.substring(ss, node.start - 1);
|
||||
t = t.substring(t.lastIndexOf(';') + 1);
|
||||
var s = node.parsedSelector = node.selector = t.trim();
|
||||
node.atRule = s.indexOf(AT_START) === 0;
|
||||
node.atRule = s.indexOf(this.AT_START) === 0;
|
||||
if (node.atRule) {
|
||||
if (s.indexOf(MEDIA_START) === 0) {
|
||||
if (s.indexOf(this.MEDIA_START) === 0) {
|
||||
node.type = this.types.MEDIA_RULE;
|
||||
} else if (s.match(rx.keyframesRule)) {
|
||||
} else if (s.match(this._rx.keyframesRule)) {
|
||||
node.type = this.types.KEYFRAMES_RULE;
|
||||
}
|
||||
} else {
|
||||
if (s.indexOf(VAR_START) === 0) {
|
||||
if (s.indexOf(this.VAR_START) === 0) {
|
||||
node.type = this.types.MIXIN_RULE;
|
||||
} else {
|
||||
node.type = this.types.STYLE_RULE;
|
||||
|
@ -4034,12 +4208,12 @@ text = text || '';
|
|||
var cssText = '';
|
||||
if (node.cssText || node.rules) {
|
||||
var r$ = node.rules;
|
||||
if (r$ && (preserveProperties || !hasMixinRules(r$))) {
|
||||
if (r$ && (preserveProperties || !this._hasMixinRules(r$))) {
|
||||
for (var i = 0, l = r$.length, r; i < l && (r = r$[i]); i++) {
|
||||
cssText = this.stringify(r, preserveProperties, cssText);
|
||||
}
|
||||
} else {
|
||||
cssText = preserveProperties ? node.cssText : removeCustomProps(node.cssText);
|
||||
cssText = preserveProperties ? node.cssText : this.removeCustomProps(node.cssText);
|
||||
cssText = cssText.trim();
|
||||
if (cssText) {
|
||||
cssText = ' ' + cssText + '\n';
|
||||
|
@ -4057,6 +4231,19 @@ text += this.CLOSE_BRACE + '\n\n';
|
|||
}
|
||||
return text;
|
||||
},
|
||||
_hasMixinRules: function (rules) {
|
||||
return rules[0].selector.indexOf(this.VAR_START) >= 0;
|
||||
},
|
||||
removeCustomProps: function (cssText) {
|
||||
cssText = this.removeCustomPropAssignment(cssText);
|
||||
return this.removeCustomPropApply(cssText);
|
||||
},
|
||||
removeCustomPropAssignment: function (cssText) {
|
||||
return cssText.replace(this._rx.customProp, '').replace(this._rx.mixinProp, '');
|
||||
},
|
||||
removeCustomPropApply: function (cssText) {
|
||||
return cssText.replace(this._rx.mixinApply, '').replace(this._rx.varApply, '');
|
||||
},
|
||||
types: {
|
||||
STYLE_RULE: 1,
|
||||
KEYFRAMES_RULE: 7,
|
||||
|
@ -4064,18 +4251,8 @@ MEDIA_RULE: 4,
|
|||
MIXIN_RULE: 1000
|
||||
},
|
||||
OPEN_BRACE: '{',
|
||||
CLOSE_BRACE: '}'
|
||||
};
|
||||
function hasMixinRules(rules) {
|
||||
return rules[0].selector.indexOf(VAR_START) >= 0;
|
||||
}
|
||||
function removeCustomProps(cssText) {
|
||||
return cssText.replace(rx.customProp, '').replace(rx.mixinProp, '').replace(rx.mixinApply, '').replace(rx.varApply, '');
|
||||
}
|
||||
var VAR_START = '--';
|
||||
var MEDIA_START = '@media';
|
||||
var AT_START = '@';
|
||||
var rx = {
|
||||
CLOSE_BRACE: '}',
|
||||
_rx: {
|
||||
comments: /\/\*[^*]*\*+([^\/*][^*]*\*+)*\//gim,
|
||||
port: /@import[^;]*;/gim,
|
||||
customProp: /(?:^|[\s;])--[^;{]*?:[^{};]*?(?:[;\n]|$)/gim,
|
||||
|
@ -4083,6 +4260,10 @@ mixinProp: /(?:^|[\s;])--[^;{]*?:[^{;]*?{[^}]*?}(?:[;\n]|$)?/gim,
|
|||
mixinApply: /@apply[\s]*\([^)]*?\)[\s]*(?:[;\n]|$)?/gim,
|
||||
varApply: /[^;:]*?:[^;]*var[^;]*(?:[;\n]|$)?/gim,
|
||||
keyframesRule: /^@[^\s]*keyframes/
|
||||
},
|
||||
VAR_START: '--',
|
||||
MEDIA_START: '@media',
|
||||
AT_START: '@'
|
||||
};
|
||||
return api;
|
||||
}();
|
||||
|
@ -4115,7 +4296,7 @@ clearStyleRules: function (style) {
|
|||
style.__cssRules = null;
|
||||
},
|
||||
forEachStyleRule: function (node, callback) {
|
||||
var s = node.selector;
|
||||
var s = node.parsedSelector;
|
||||
var skipRules = false;
|
||||
if (node.type === this.ruleTypes.STYLE_RULE) {
|
||||
callback(node);
|
||||
|
@ -4255,7 +4436,7 @@ var p$ = rule.selector.split(COMPLEX_SELECTOR_SEP);
|
|||
for (var i = 0, l = p$.length, p; i < l && (p = p$[i]); i++) {
|
||||
p$[i] = transformer.call(this, p, scope, hostScope);
|
||||
}
|
||||
rule.selector = p$.join(COMPLEX_SELECTOR_SEP);
|
||||
rule.selector = rule.transformedSelector = p$.join(COMPLEX_SELECTOR_SEP);
|
||||
},
|
||||
_transformComplexSelector: function (selector, scope, hostScope) {
|
||||
var stop = false;
|
||||
|
@ -4610,7 +4791,8 @@ return property && property.trim() || '';
|
|||
},
|
||||
valueForProperties: function (property, props) {
|
||||
var parts = property.split(';');
|
||||
for (var i = 0, p, m; i < parts.length && (p = parts[i]); i++) {
|
||||
for (var i = 0, p, m; i < parts.length; i++) {
|
||||
if (p = parts[i]) {
|
||||
m = p.match(this.rx.MIXIN_MATCH);
|
||||
if (m) {
|
||||
p = this.valueForProperty(props[m[1]], props);
|
||||
|
@ -4624,6 +4806,7 @@ p = pp.join(':');
|
|||
}
|
||||
parts[i] = p && p.lastIndexOf(';') === p.length - 1 ? p.slice(0, -1) : p || '';
|
||||
}
|
||||
}
|
||||
return parts.join(';');
|
||||
},
|
||||
applyProperties: function (rule, props) {
|
||||
|
@ -4643,7 +4826,7 @@ styleUtil.forRulesInStyles(styles, function (rule) {
|
|||
if (!rule.propertyInfo) {
|
||||
self.decorateRule(rule);
|
||||
}
|
||||
if (element && rule.propertyInfo.properties && matchesSelector.call(element, rule.selector)) {
|
||||
if (element && rule.propertyInfo.properties && matchesSelector.call(element, rule.transformedSelector || rule.parsedSelector)) {
|
||||
self.collectProperties(rule, props);
|
||||
addToBitMask(i, o);
|
||||
}
|
||||
|
@ -5041,9 +5224,9 @@ this._pushHost();
|
|||
this._stampTemplate();
|
||||
this._popHost();
|
||||
this._marshalAnnotationReferences();
|
||||
this._marshalHostAttributes();
|
||||
this._setupDebouncers();
|
||||
this._marshalInstanceEffects();
|
||||
this._marshalHostAttributes();
|
||||
this._marshalBehaviors();
|
||||
this._marshalAttributes();
|
||||
this._tryReady();
|
||||
|
@ -5056,6 +5239,7 @@ this._listenListeners(b.listeners);
|
|||
var nativeShadow = Polymer.Settings.useNativeShadow;
|
||||
var propertyUtils = Polymer.StyleProperties;
|
||||
var styleUtil = Polymer.StyleUtil;
|
||||
var cssParse = Polymer.CssParse;
|
||||
var styleDefaults = Polymer.StyleDefaults;
|
||||
var styleTransformer = Polymer.StyleTransformer;
|
||||
Polymer({
|
||||
|
@ -5093,7 +5277,7 @@ var self = this;
|
|||
e.textContent = styleUtil.toCssText(styleUtil.rulesForStyle(e), function (rule) {
|
||||
var css = rule.cssText = rule.parsedCssText;
|
||||
if (rule.propertyInfo && rule.propertyInfo.cssText) {
|
||||
css = css.replace(propertyUtils.rx.VAR_ASSIGN, '');
|
||||
css = cssParse.removeCustomPropAssignment(css);
|
||||
rule.cssText = propertyUtils.valueForProperties(css, props);
|
||||
}
|
||||
styleTransformer.documentRule(rule);
|
||||
|
@ -5141,10 +5325,24 @@ _showHideChildrenImpl: function (hide) {
|
|||
var c = this._children;
|
||||
for (var i = 0; i < c.length; i++) {
|
||||
var n = c[i];
|
||||
if (n.style) {
|
||||
n.style.display = hide ? 'none' : '';
|
||||
n.__hideTemplateChildren__ = hide;
|
||||
if (Boolean(hide) != Boolean(n.__hideTemplateChildren__)) {
|
||||
if (n.nodeType === Node.TEXT_NODE) {
|
||||
if (hide) {
|
||||
n.__polymerTextContent__ = n.textContent;
|
||||
n.textContent = '';
|
||||
} else {
|
||||
n.textContent = n.__polymerTextContent__;
|
||||
}
|
||||
} else if (n.style) {
|
||||
if (hide) {
|
||||
n.__polymerDisplay__ = n.style.display;
|
||||
n.style.display = 'none';
|
||||
} else {
|
||||
n.style.display = n.__polymerDisplay__;
|
||||
}
|
||||
}
|
||||
}
|
||||
n.__hideTemplateChildren__ = hide;
|
||||
}
|
||||
},
|
||||
_debounceTemplate: function (fn) {
|
||||
|
@ -5827,16 +6025,23 @@ is: 'array-selector',
|
|||
properties: {
|
||||
items: {
|
||||
type: Array,
|
||||
observer: '_itemsChanged'
|
||||
observer: '_resetSelection'
|
||||
},
|
||||
multi: {
|
||||
type: Boolean,
|
||||
value: false,
|
||||
observer: '_resetSelection'
|
||||
},
|
||||
selected: {
|
||||
type: Object,
|
||||
notify: true
|
||||
},
|
||||
toggle: Boolean,
|
||||
multi: Boolean
|
||||
toggle: {
|
||||
type: Boolean,
|
||||
value: false
|
||||
}
|
||||
},
|
||||
_itemsChanged: function () {
|
||||
_resetSelection: function () {
|
||||
if (Array.isArray(this.selected)) {
|
||||
for (var i = 0; i < this.selected.length; i++) {
|
||||
this.unlinkPaths('selected.' + i);
|
||||
|
@ -5845,20 +6050,28 @@ this.unlinkPaths('selected.' + i);
|
|||
this.unlinkPaths('selected');
|
||||
}
|
||||
if (this.multi) {
|
||||
if (!this.selected || this.selected.length) {
|
||||
this.selected = [];
|
||||
this._selectedColl = Polymer.Collection.get(this.selected);
|
||||
}
|
||||
} else {
|
||||
this.selected = null;
|
||||
this._selectedColl = null;
|
||||
}
|
||||
},
|
||||
isSelected: function (item) {
|
||||
if (this.multi) {
|
||||
return this._selectedColl.getKey(item) !== undefined;
|
||||
} else {
|
||||
return this.selected == item;
|
||||
}
|
||||
},
|
||||
deselect: function (item) {
|
||||
if (this.multi) {
|
||||
var scol = Polymer.Collection.get(this.selected);
|
||||
var sidx = this.selected.indexOf(item);
|
||||
if (sidx >= 0) {
|
||||
var skey = scol.getKey(item);
|
||||
this.splice('selected', sidx, 1);
|
||||
if (this.isSelected(item)) {
|
||||
var skey = this._selectedColl.getKey(item);
|
||||
this.arrayDelete('selected', item);
|
||||
this.unlinkPaths('selected.' + skey);
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
this.selected = null;
|
||||
|
@ -5869,18 +6082,14 @@ select: function (item) {
|
|||
var icol = Polymer.Collection.get(this.items);
|
||||
var key = icol.getKey(item);
|
||||
if (this.multi) {
|
||||
var scol = Polymer.Collection.get(this.selected);
|
||||
var skey = scol.getKey(item);
|
||||
if (skey >= 0) {
|
||||
if (this.isSelected(item)) {
|
||||
if (this.toggle) {
|
||||
this.deselect(item);
|
||||
}
|
||||
} else {
|
||||
this.push('selected', item);
|
||||
this.async(function () {
|
||||
skey = scol.getKey(item);
|
||||
skey = this._selectedColl.getKey(item);
|
||||
this.linkPaths('selected.' + skey, 'items.' + key);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
if (this.toggle && item == this.selected) {
|
||||
|
@ -5925,7 +6134,6 @@ this._flushTemplates();
|
|||
_render: function () {
|
||||
if (this.if) {
|
||||
if (!this.ctor) {
|
||||
this._wrapTextNodes(this._content || this.content);
|
||||
this.templatize(this);
|
||||
}
|
||||
this._ensureInstance();
|
||||
|
@ -5961,16 +6169,6 @@ parent.removeChild(n);
|
|||
this._instance = null;
|
||||
}
|
||||
},
|
||||
_wrapTextNodes: function (root) {
|
||||
for (var n = root.firstChild; n; n = n.nextSibling) {
|
||||
if (n.nodeType === Node.TEXT_NODE && n.textContent.trim()) {
|
||||
var s = document.createElement('span');
|
||||
root.insertBefore(s, n);
|
||||
s.appendChild(n);
|
||||
n = s;
|
||||
}
|
||||
}
|
||||
},
|
||||
_showHideChildren: function () {
|
||||
var hidden = this.__hideTemplateChildren__ || !this.if;
|
||||
if (this._instance) {
|
||||
|
@ -5988,37 +6186,11 @@ this._instance.notifyPath(path, value, true);
|
|||
}
|
||||
}
|
||||
});
|
||||
Polymer.ImportStatus = {
|
||||
_ready: false,
|
||||
_callbacks: [],
|
||||
whenLoaded: function (cb) {
|
||||
if (this._ready) {
|
||||
cb();
|
||||
} else {
|
||||
this._callbacks.push(cb);
|
||||
}
|
||||
},
|
||||
_importsLoaded: function () {
|
||||
this._ready = true;
|
||||
this._callbacks.forEach(function (cb) {
|
||||
cb();
|
||||
});
|
||||
this._callbacks = [];
|
||||
}
|
||||
};
|
||||
window.addEventListener('load', function () {
|
||||
Polymer.ImportStatus._importsLoaded();
|
||||
});
|
||||
if (window.HTMLImports) {
|
||||
HTMLImports.whenReady(function () {
|
||||
Polymer.ImportStatus._importsLoaded();
|
||||
});
|
||||
}
|
||||
Polymer({
|
||||
is: 'dom-bind',
|
||||
extends: 'template',
|
||||
created: function () {
|
||||
Polymer.ImportStatus.whenLoaded(this._markImportsReady.bind(this));
|
||||
Polymer.RenderStatus.whenReady(this._markImportsReady.bind(this));
|
||||
},
|
||||
_ensureReady: function () {
|
||||
if (!this._readied) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue