| 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>
|
|
|