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

Unified Diff: third_party/polymer/v0_8/components-chromium/polymer/src/lib/event-api-extracted.js

Issue 1082403004: Import Polymer 0.8 and several key elements. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Also remove polymer/explainer Created 5 years, 8 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/v0_8/components-chromium/polymer/src/lib/event-api-extracted.js
diff --git a/third_party/polymer/v0_8/components-chromium/polymer/src/lib/event-api-extracted.js b/third_party/polymer/v0_8/components-chromium/polymer/src/lib/event-api-extracted.js
new file mode 100644
index 0000000000000000000000000000000000000000..9c46b795575ef27da15290b8205c4ed3e4eb0aa7
--- /dev/null
+++ b/third_party/polymer/v0_8/components-chromium/polymer/src/lib/event-api-extracted.js
@@ -0,0 +1,81 @@
+
+
+ Polymer.EventApi = (function() {
+
+ var Settings = Polymer.Settings;
+
+ var EventApi = function(event) {
+ this.event = event;
+ };
+
+ if (Settings.useShadow) {
+
+ EventApi.prototype = {
+
+ get rootTarget() {
+ return this.event.path[0];
+ },
+
+ get localTarget() {
+ return this.event.target;
+ },
+
+ get path() {
+ return this.event.path;
+ }
+
+ };
+
+ } else {
+
+ EventApi.prototype = {
+
+ get rootTarget() {
+ return this.event.target;
+ },
+
+ get localTarget() {
+ var current = this.event.currentTarget;
+ var currentRoot = current && Polymer.dom(current).getOwnerRoot();
+ var p$ = this.path;
+ for (var i=0; i < p$.length; i++) {
+ if (Polymer.dom(p$[i]).getOwnerRoot() === currentRoot) {
+ return p$[i];
+ }
+ }
+ },
+
+ // TODO(sorvell): simulate event.path. This probably incorrect for
+ // non-bubbling events.
+ get path() {
+ if (!this.event._path) {
+ var path = [];
+ var o = this.rootTarget;
+ while (o) {
+ path.push(o);
+ o = Polymer.dom(o).parentNode || o.host;
+ }
+ // event path includes window in most recent native implementations
+ path.push(window);
+ this.event._path = path;
+ }
+ return this.event._path;
+ }
+
+ };
+
+ }
+
+ var factory = function(event) {
+ if (!event.__eventApi) {
+ event.__eventApi = new EventApi(event);
+ }
+ return event.__eventApi;
+ };
+
+ return {
+ factory: factory
+ };
+
+ })();
+

Powered by Google App Engine
This is Rietveld 408576698