Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Unified Diff: third_party/polymer/v1_0/components-chromium/polymer/polymer-extracted.js

Issue 1261403002: Add paper-menu-button and its dependencies to third_party/polymer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: reproduce.sh Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/polymer/v1_0/components-chromium/polymer/polymer-extracted.js
diff --git a/third_party/polymer/v1_0/components-chromium/polymer/polymer-extracted.js b/third_party/polymer/v1_0/components-chromium/polymer/polymer-extracted.js
index ad5ce0a9ac00037d97bf8ed06ff6abfb6bbcb5b7..ce6d33d9c562b0ad164786cdb6b73f94a78ed401 100644
--- a/third_party/polymer/v1_0/components-chromium/polymer/polymer-extracted.js
+++ b/third_party/polymer/v1_0/components-chromium/polymer/polymer-extracted.js
@@ -528,6 +528,16 @@ var recognizers = Gestures.recognizers;
for (var i = 0, r; i < recognizers.length; i++) {
r = recognizers[i];
if (gs[r.name] && !handled[r.name]) {
+if (r.flow && r.flow.start.indexOf(ev.type) > -1) {
+if (r.reset) {
+r.reset();
+}
+}
+}
+}
+for (var i = 0, r; i < recognizers.length; i++) {
+r = recognizers[i];
+if (gs[r.name] && !handled[r.name]) {
handled[r.name] = true;
r[type](ev);
}
@@ -559,6 +569,8 @@ prevent = dx > dy;
}
if (prevent) {
ev.preventDefault();
+} else {
+Gestures.prevent('track');
}
}
},
@@ -700,6 +712,16 @@ deps: [
'touchmove',
'touchend'
],
+flow: {
+start: [
+'mousedown',
+'touchstart'
+],
+end: [
+'mouseup',
+'touchend'
+]
+},
emits: ['track'],
info: {
x: 0,
@@ -715,7 +737,7 @@ this.moves.push(move);
},
prevent: false
},
-clearInfo: function () {
+reset: function () {
this.info.state = 'start';
this.info.started = false;
this.info.moves = [];
@@ -754,7 +776,6 @@ if (self.info.started) {
Gestures.prevent('tap');
movefn(e);
}
-self.clearInfo();
document.removeEventListener('mousemove', movefn);
document.removeEventListener('mouseup', upfn);
};
@@ -794,7 +815,6 @@ y: ct.clientY
});
this.fire(t, ct);
}
-this.clearInfo();
},
fire: function (target, touch) {
var secondlast = this.info.moves[this.info.moves.length - 2];
@@ -829,6 +849,16 @@ deps: [
'touchstart',
'touchend'
],
+flow: {
+start: [
+'mousedown',
+'touchstart'
+],
+end: [
+'click',
+'touchend'
+]
+},
emits: ['tap'],
info: {
x: NaN,
@@ -869,7 +899,6 @@ sourceEvent: e
});
}
}
-this.reset();
}
});
var DIRECTION_MAP = {
@@ -1566,7 +1595,12 @@ this._effectEffects('__static__', null, this._propertyEffects.__static__);
});
Polymer.Base._addFeature({
_setupConfigure: function (initialConfig) {
-this._config = initialConfig || {};
+this._config = {};
+for (var i in initialConfig) {
+if (initialConfig[i] !== undefined) {
+this._config[i] = initialConfig[i];
+}
+}
this._handlers = [];
},
_marshalAttributes: function () {
@@ -1695,8 +1729,9 @@ var array;
var last = parts[parts.length - 1];
if (parts.length > 1) {
for (var i = 0; i < parts.length - 1; i++) {
-prop = prop[parts[i]];
-if (array) {
+var part = parts[i];
+prop = prop[part];
+if (array && parseInt(part) == part) {
parts[i] = Polymer.Collection.get(array).getKey(prop);
}
if (!prop) {
@@ -1704,15 +1739,13 @@ return;
}
array = Array.isArray(prop) ? prop : null;
}
-if (array) {
+if (array && parseInt(last) == last) {
var coll = Polymer.Collection.get(array);
var old = prop[last];
var key = coll.getKey(old);
-if (key) {
parts[i] = key;
coll.setItem(key, value);
}
-}
prop[last] = value;
if (!root) {
this.notifyPath(parts.join('.'), value);
@@ -2808,6 +2841,7 @@ Polymer.Base._addFeature({
_prepStyleProperties: function () {
this._ownStylePropertyNames = this._styles ? propertyUtils.decorateStyles(this._styles) : [];
},
+customStyle: {},
_setupStyleProperties: function () {
this.customStyle = {};
},
@@ -3039,15 +3073,8 @@ styleTransformer.documentRule(rule);
}());
Polymer.Templatizer = {
properties: { __hideTemplateChildren__: { observer: '_showHideChildren' } },
-_templatizerStatic: {
-count: 0,
-callbacks: {},
-debouncer: null
-},
_instanceProps: Polymer.nob,
-created: function () {
-this._templatizerId = this._templatizerStatic.count++;
-},
+_parentPropPrefix: '_parent_',
templatize: function (template) {
if (!template._content) {
template._content = template.content;
@@ -3091,20 +3118,10 @@ n.__hideTemplateChildren__ = hide;
}
},
_debounceTemplate: function (fn) {
-this._templatizerStatic.callbacks[this._templatizerId] = fn.bind(this);
-this._templatizerStatic.debouncer = Polymer.Debounce(this._templatizerStatic.debouncer, this._flushTemplates.bind(this, true));
+Polymer.dom.addDebouncer(this.debounce('_debounceTemplate', fn));
},
_flushTemplates: function (debouncerExpired) {
-var db = this._templatizerStatic.debouncer;
-while (debouncerExpired || db && db.finish) {
-db.stop();
-var cbs = this._templatizerStatic.callbacks;
-this._templatizerStatic.callbacks = {};
-for (var id in cbs) {
-cbs[id]();
-}
-debouncerExpired = false;
-}
+Polymer.dom.flush();
},
_customPrepEffects: function (archetype) {
var parentProps = archetype._parentProps;
@@ -3144,7 +3161,7 @@ if (template != this) {
Polymer.Bind.prepareModel(proto);
}
for (prop in parentProps) {
-var parentProp = '_parent_' + prop;
+var parentProp = this._parentPropPrefix + prop;
var effects = [
{
kind: 'function',
@@ -3168,8 +3185,9 @@ this._forwardParentProp(prop, value);
};
},
_createHostPropEffector: function (prop) {
+var prefix = this._parentPropPrefix;
return function (source, value) {
-this.dataHost['_parent_' + prop] = value;
+this.dataHost[prefix + prop] = value;
};
},
_createInstancePropEffector: function (prop) {
@@ -3201,12 +3219,12 @@ var dot = path.indexOf('.');
var root = dot < 0 ? path : path.slice(0, dot);
dataHost._forwardInstancePath.call(dataHost, this, path, value);
if (root in dataHost._parentProps) {
-dataHost.notifyPath('_parent_' + path, value);
+dataHost.notifyPath(dataHost._parentPropPrefix + path, value);
}
},
_pathEffector: function (path, value, fromAbove) {
if (this._forwardParentPath) {
-if (path.indexOf('_parent_') === 0) {
+if (path.indexOf(this._parentPropPrefix) === 0) {
this._forwardParentPath(path.substring(8), value);
}
}
@@ -3254,7 +3272,7 @@ stamp: function (model) {
model = model || {};
if (this._parentProps) {
for (var prop in this._parentProps) {
-model[prop] = this['_parent_' + prop];
+model[prop] = this[this._parentPropPrefix + prop];
}
}
return new this.ctor(model, this);
@@ -3970,7 +3988,16 @@ Polymer({
is: 'dom-bind',
extends: 'template',
created: function () {
-Polymer.ImportStatus.whenLoaded(this._readySelf.bind(this));
+Polymer.ImportStatus.whenLoaded(this._markImportsReady.bind(this));
+},
+_ensureReady: function () {
+if (!this._readied) {
+this._readySelf();
+}
+},
+_markImportsReady: function () {
+this._importsReady = true;
+this._ensureReady();
},
_registerFeatures: function () {
this._prepConstructor();
@@ -4003,6 +4030,15 @@ config[prop] = this[prop];
this._setupConfigure = this._setupConfigure.bind(this, config);
},
attached: function () {
+if (this._importsReady) {
+this.render();
+}
+},
+detached: function () {
+this._removeChildren();
+},
+render: function () {
+this._ensureReady();
if (!this._children) {
this._template = this;
this._prepAnnotations();
@@ -4015,8 +4051,5 @@ this._children = Array.prototype.slice.call(this.root.childNodes);
}
this._insertChildren();
this.fire('dom-change');
-},
-detached: function () {
-this._removeChildren();
}
});

Powered by Google App Engine
This is Rietveld 408576698