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

Side by Side Diff: third_party/polymer/components-chromium/core-overlay/core-overlay-layer-extracted.js

Issue 592593002: Inline scripts were extracted from Polymer elements. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: s/echo ""/echo/ Created 6 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
2 (function() {
3
4 Polymer('core-overlay-layer', {
5 publish: {
6 opened: false
7 },
8 openedChanged: function() {
9 this.classList.toggle('core-opened', this.opened);
10 },
11 /**
12 * Adds an element to the overlay layer
13 */
14 addElement: function(element) {
15 if (!this.parentNode) {
16 document.querySelector('body').appendChild(this);
17 }
18 if (element.parentNode !== this) {
19 element.__contents = [];
20 var ip$ = element.querySelectorAll('content');
21 for (var i=0, l=ip$.length, n; (i<l) && (n = ip$[i]); i++) {
22 this.moveInsertedElements(n);
23 this.cacheDomLocation(n);
24 n.parentNode.removeChild(n);
25 element.__contents.push(n);
26 }
27 this.cacheDomLocation(element);
28 this.updateEventController(element);
29 var h = this.makeHost();
30 h.shadowRoot.appendChild(element);
31 element.__host = h;
32 }
33 },
34 makeHost: function() {
35 var h = document.createElement('overlay-host');
36 h.createShadowRoot();
37 this.appendChild(h);
38 return h;
39 },
40 moveInsertedElements: function(insertionPoint) {
41 var n$ = insertionPoint.getDistributedNodes();
42 var parent = insertionPoint.parentNode;
43 insertionPoint.__contents = [];
44 for (var i=0, l=n$.length, n; (i<l) && (n=n$[i]); i++) {
45 this.cacheDomLocation(n);
46 this.updateEventController(n);
47 insertionPoint.__contents.push(n);
48 parent.appendChild(n);
49 }
50 },
51 updateEventController: function(element) {
52 element.eventController = this.element.findController(element);
53 },
54 /**
55 * Removes an element from the overlay layer
56 */
57 removeElement: function(element) {
58 element.eventController = null;
59 this.replaceElement(element);
60 var h = element.__host;
61 if (h) {
62 h.parentNode.removeChild(h);
63 }
64 },
65 replaceElement: function(element) {
66 if (element.__contents) {
67 for (var i=0, c$=element.__contents, c; (c=c$[i]); i++) {
68 this.replaceElement(c);
69 }
70 element.__contents = null;
71 }
72 if (element.__parentNode) {
73 var n = element.__nextElementSibling && element.__nextElementSibling
74 === element.__parentNode ? element.__nextElementSibling : null;
75 element.__parentNode.insertBefore(element, n);
76 }
77 },
78 cacheDomLocation: function(element) {
79 element.__nextElementSibling = element.nextElementSibling;
80 element.__parentNode = element.parentNode;
81 }
82 });
83
84 })();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698