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

Unified Diff: third_party/polymer/v0_8/components/polymer/src/lib/event-api.html

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/polymer/src/lib/event-api.html
diff --git a/third_party/polymer/v0_8/components/polymer/src/lib/event-api.html b/third_party/polymer/v0_8/components/polymer/src/lib/event-api.html
new file mode 100644
index 0000000000000000000000000000000000000000..1f66fb35177b8890b7cf82b774a584e1f49e1a60
--- /dev/null
+++ b/third_party/polymer/v0_8/components/polymer/src/lib/event-api.html
@@ -0,0 +1,92 @@
+<!--
+@license
+Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<link rel="import" href="settings.html">
+<script>
+
+ 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
+ };
+
+ })();
+
+</script>

Powered by Google App Engine
This is Rietveld 408576698