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

Side by Side Diff: ui/webui/resources/cr_elements/v1_0/cr_events/cr_events.js

Issue 1406023003: Elim cr_elements/v1_0 subdirectory (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 2 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 /**
6 * @fileoverview
7 * `cr-events` provides helpers for handling events in Chrome Polymer elements.
8 *
9 * Example:
10 *
11 * <cr-events id="events"></cr-events>
12 *
13 * Usage:
14 *
15 * this.$.events.forward(this.$.element, ['change']);
16 *
17 * @element cr-events
18 */
19 Polymer({
20 is: 'cr-events',
21
22 /**
23 * Sets up an element to forward events across the shadow boundary, for events
24 * which normally stop at the root node (see http://goo.gl/WGMO9x).
25 * @param {!HTMLElement} element The element to forward events from.
26 * @param {!Array<string>} events The events to forward.
27 */
28 forward: function(element, events) {
29 for (var i = 0; i < events.length; i++)
30 element.addEventListener(events[i], this.forwardEvent_);
31 },
32
33 /**
34 * Forwards events that don't automatically cross the shadow boundary
35 * if the event should bubble.
36 * @param {!Event} e The event to forward.
37 * @param {*} detail Data passed when initializing the event.
38 * @param {Node=} opt_sender Node that declared the handler.
39 * @private
40 */
41 forwardEvent_: function(e, detail, opt_sender) {
42 if (!e.bubbles)
43 return;
44
45 var node = e.path[e.path.length - 1];
46 if (node instanceof ShadowRoot) {
47 // Forward the event to the shadow host.
48 e.stopPropagation();
49 node.host.fire(e.type, detail, node.host, true, e.cancelable);
50 }
51 },
52 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698