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

Side by Side Diff: polymer_0.5.4/bower_components/polymer/polymer.js

Issue 895523005: Added Polymer 0.5.4 (Closed) Base URL: https://chromium.googlesource.com/infra/third_party/npm_modules.git@master
Patch Set: Created 5 years, 10 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
1 /** 1 /**
2 * @license 2 * @license
3 * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. 3 * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
4 * This code may only be used under the BSD style license found at http://polyme r.github.io/LICENSE.txt 4 * This code may only be used under the BSD style license found at http://polyme r.github.io/LICENSE.txt
5 * The complete set of authors may be found at http://polymer.github.io/AUTHORS. txt 5 * The complete set of authors may be found at http://polymer.github.io/AUTHORS. txt
6 * The complete set of contributors may be found at http://polymer.github.io/CON TRIBUTORS.txt 6 * The complete set of contributors may be found at http://polymer.github.io/CON TRIBUTORS.txt
7 * Code distributed by Google as part of the polymer project is also 7 * Code distributed by Google as part of the polymer project is also
8 * subject to an additional IP rights grant found at http://polymer.github.io/PA TENTS.txt 8 * subject to an additional IP rights grant found at http://polymer.github.io/PA TENTS.txt
9 */ 9 */
10 // @version 0.5.1 10 // @version 0.5.4
11 window.PolymerGestures = {}; 11 window.PolymerGestures = {};
12 12
13 (function(scope) { 13 (function(scope) {
14 var HAS_FULL_PATH = false; 14 var hasFullPath = false;
15 15
16 // test for full event path support 16 // test for full event path support
17 var pathTest = document.createElement('meta'); 17 var pathTest = document.createElement('meta');
18 if (pathTest.createShadowRoot) { 18 if (pathTest.createShadowRoot) {
19 var sr = pathTest.createShadowRoot(); 19 var sr = pathTest.createShadowRoot();
20 var s = document.createElement('span'); 20 var s = document.createElement('span');
21 sr.appendChild(s); 21 sr.appendChild(s);
22 pathTest.addEventListener('testpath', function(ev) { 22 pathTest.addEventListener('testpath', function(ev) {
23 if (ev.path) { 23 if (ev.path) {
24 // if the span is in the event path, then path[0] is the real source for all events 24 // if the span is in the event path, then path[0] is the real source for all events
25 HAS_FULL_PATH = ev.path[0] === s; 25 hasFullPath = ev.path[0] === s;
26 } 26 }
27 ev.stopPropagation(); 27 ev.stopPropagation();
28 }); 28 });
29 var ev = new CustomEvent('testpath', {bubbles: true}); 29 var ev = new CustomEvent('testpath', {bubbles: true});
30 // must add node to DOM to trigger event listener 30 // must add node to DOM to trigger event listener
31 document.head.appendChild(pathTest); 31 document.head.appendChild(pathTest);
32 s.dispatchEvent(ev); 32 s.dispatchEvent(ev);
33 pathTest.parentNode.removeChild(pathTest); 33 pathTest.parentNode.removeChild(pathTest);
34 sr = s = null; 34 sr = s = null;
35 } 35 }
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 while (s.parentNode) { 92 while (s.parentNode) {
93 s = s.parentNode; 93 s = s.parentNode;
94 } 94 }
95 // the owner element is expected to be a Document or ShadowRoot 95 // the owner element is expected to be a Document or ShadowRoot
96 if (s.nodeType != Node.DOCUMENT_NODE && s.nodeType != Node.DOCUMENT_FRAGME NT_NODE) { 96 if (s.nodeType != Node.DOCUMENT_NODE && s.nodeType != Node.DOCUMENT_FRAGME NT_NODE) {
97 s = document; 97 s = document;
98 } 98 }
99 return s; 99 return s;
100 }, 100 },
101 findTarget: function(inEvent) { 101 findTarget: function(inEvent) {
102 if (HAS_FULL_PATH && inEvent.path && inEvent.path.length) { 102 if (hasFullPath && inEvent.path && inEvent.path.length) {
103 return inEvent.path[0]; 103 return inEvent.path[0];
104 } 104 }
105 var x = inEvent.clientX, y = inEvent.clientY; 105 var x = inEvent.clientX, y = inEvent.clientY;
106 // if the listener is in the shadow root, it is much faster to start there 106 // if the listener is in the shadow root, it is much faster to start there
107 var s = this.owner(inEvent.target); 107 var s = this.owner(inEvent.target);
108 // if x, y is not in this root, fall back to document search 108 // if x, y is not in this root, fall back to document search
109 if (!s.elementFromPoint(x, y)) { 109 if (!s.elementFromPoint(x, y)) {
110 s = document; 110 s = document;
111 } 111 }
112 return this.searchRoot(s, x, y); 112 return this.searchRoot(s, x, y);
113 }, 113 },
114 findTouchAction: function(inEvent) { 114 findTouchAction: function(inEvent) {
115 var n; 115 var n;
116 if (HAS_FULL_PATH && inEvent.path && inEvent.path.length) { 116 if (hasFullPath && inEvent.path && inEvent.path.length) {
117 var path = inEvent.path; 117 var path = inEvent.path;
118 for (var i = 0; i < path.length; i++) { 118 for (var i = 0; i < path.length; i++) {
119 n = path[i]; 119 n = path[i];
120 if (n.nodeType === Node.ELEMENT_NODE && n.hasAttribute('touch-action') ) { 120 if (n.nodeType === Node.ELEMENT_NODE && n.hasAttribute('touch-action') ) {
121 return n.getAttribute('touch-action'); 121 return n.getAttribute('touch-action');
122 } 122 }
123 } 123 }
124 } else { 124 } else {
125 n = inEvent.target; 125 n = inEvent.target;
126 while(n) { 126 while(n) {
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 var common = this.LCA(a, b); 185 var common = this.LCA(a, b);
186 // if a is the common ancestor, it must "deeply" contain b 186 // if a is the common ancestor, it must "deeply" contain b
187 return common === a; 187 return common === a;
188 }, 188 },
189 insideNode: function(node, x, y) { 189 insideNode: function(node, x, y) {
190 var rect = node.getBoundingClientRect(); 190 var rect = node.getBoundingClientRect();
191 return (rect.left <= x) && (x <= rect.right) && (rect.top <= y) && (y <= r ect.bottom); 191 return (rect.left <= x) && (x <= rect.right) && (rect.top <= y) && (y <= r ect.bottom);
192 }, 192 },
193 path: function(event) { 193 path: function(event) {
194 var p; 194 var p;
195 if (HAS_FULL_PATH && event.path && event.path.length) { 195 if (hasFullPath && event.path && event.path.length) {
196 p = event.path; 196 p = event.path;
197 } else { 197 } else {
198 p = []; 198 p = [];
199 var n = this.findTarget(event); 199 var n = this.findTarget(event);
200 while (n) { 200 while (n) {
201 p.push(n); 201 p.push(n);
202 n = n.parentNode || n.host; 202 n = n.parentNode || n.host;
203 } 203 }
204 } 204 }
205 return p; 205 return p;
(...skipping 734 matching lines...) Expand 10 before | Expand all | Expand 10 after
940 })(window.PolymerGestures); 940 })(window.PolymerGestures);
941 941
942 (function(scope) { 942 (function(scope) {
943 var dispatcher = scope.dispatcher; 943 var dispatcher = scope.dispatcher;
944 var pointermap = dispatcher.pointermap; 944 var pointermap = dispatcher.pointermap;
945 // radius around touchend that swallows mouse events 945 // radius around touchend that swallows mouse events
946 var DEDUP_DIST = 25; 946 var DEDUP_DIST = 25;
947 947
948 var WHICH_TO_BUTTONS = [0, 1, 4, 2]; 948 var WHICH_TO_BUTTONS = [0, 1, 4, 2];
949 949
950 var CURRENT_BUTTONS = 0; 950 var currentButtons = 0;
951 951
952 var FIREFOX_LINUX = /Linux.*Firefox\//i; 952 var FIREFOX_LINUX = /Linux.*Firefox\//i;
953 953
954 var HAS_BUTTONS = (function() { 954 var HAS_BUTTONS = (function() {
955 // firefox on linux returns spec-incorrect values for mouseup.buttons 955 // firefox on linux returns spec-incorrect values for mouseup.buttons
956 // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent.buttons#See_a lso 956 // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent.buttons#See_a lso
957 // https://codereview.chromium.org/727593003/#msg16 957 // https://codereview.chromium.org/727593003/#msg16
958 if (FIREFOX_LINUX.test(navigator.userAgent)) { 958 if (FIREFOX_LINUX.test(navigator.userAgent)) {
959 return false; 959 return false;
960 } 960 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1004 prepareEvent: function(inEvent) { 1004 prepareEvent: function(inEvent) {
1005 var e = dispatcher.cloneEvent(inEvent); 1005 var e = dispatcher.cloneEvent(inEvent);
1006 e.pointerId = this.POINTER_ID; 1006 e.pointerId = this.POINTER_ID;
1007 e.isPrimary = true; 1007 e.isPrimary = true;
1008 e.pointerType = this.POINTER_TYPE; 1008 e.pointerType = this.POINTER_TYPE;
1009 e._source = 'mouse'; 1009 e._source = 'mouse';
1010 if (!HAS_BUTTONS) { 1010 if (!HAS_BUTTONS) {
1011 var type = inEvent.type; 1011 var type = inEvent.type;
1012 var bit = WHICH_TO_BUTTONS[inEvent.which] || 0; 1012 var bit = WHICH_TO_BUTTONS[inEvent.which] || 0;
1013 if (type === 'mousedown') { 1013 if (type === 'mousedown') {
1014 CURRENT_BUTTONS |= bit; 1014 currentButtons |= bit;
1015 } else if (type === 'mouseup') { 1015 } else if (type === 'mouseup') {
1016 CURRENT_BUTTONS &= ~bit; 1016 currentButtons &= ~bit;
1017 } 1017 }
1018 e.buttons = CURRENT_BUTTONS; 1018 e.buttons = currentButtons;
1019 } 1019 }
1020 return e; 1020 return e;
1021 }, 1021 },
1022 mousedown: function(inEvent) { 1022 mousedown: function(inEvent) {
1023 if (!this.isEventSimulatedFromTouch(inEvent)) { 1023 if (!this.isEventSimulatedFromTouch(inEvent)) {
1024 var p = pointermap.has(this.POINTER_ID); 1024 var p = pointermap.has(this.POINTER_ID);
1025 var e = this.prepareEvent(inEvent); 1025 var e = this.prepareEvent(inEvent);
1026 e.target = scope.findTarget(inEvent); 1026 e.target = scope.findTarget(inEvent);
1027 pointermap.set(this.POINTER_ID, e.target); 1027 pointermap.set(this.POINTER_ID, e.target);
1028 dispatcher.down(e); 1028 dispatcher.down(e);
1029 } 1029 }
1030 }, 1030 },
1031 mousemove: function(inEvent) { 1031 mousemove: function(inEvent) {
1032 if (!this.isEventSimulatedFromTouch(inEvent)) { 1032 if (!this.isEventSimulatedFromTouch(inEvent)) {
1033 var target = pointermap.get(this.POINTER_ID); 1033 var target = pointermap.get(this.POINTER_ID);
1034 if (target) { 1034 if (target) {
1035 var e = this.prepareEvent(inEvent); 1035 var e = this.prepareEvent(inEvent);
1036 e.target = target; 1036 e.target = target;
1037 // handle case where we missed a mouseup 1037 // handle case where we missed a mouseup
1038 if ((HAS_BUTTONS ? e.buttons : e.which) === 0) { 1038 if ((HAS_BUTTONS ? e.buttons : e.which) === 0) {
1039 if (!HAS_BUTTONS) { 1039 if (!HAS_BUTTONS) {
1040 CURRENT_BUTTONS = e.buttons = 0; 1040 currentButtons = e.buttons = 0;
1041 } 1041 }
1042 dispatcher.cancel(e); 1042 dispatcher.cancel(e);
1043 this.cleanupMouse(e.buttons); 1043 this.cleanupMouse(e.buttons);
1044 } else { 1044 } else {
1045 dispatcher.move(e); 1045 dispatcher.move(e);
1046 } 1046 }
1047 } 1047 }
1048 } 1048 }
1049 }, 1049 },
1050 mouseup: function(inEvent) { 1050 mouseup: function(inEvent) {
(...skipping 2755 matching lines...) Expand 10 before | Expand all | Expand 10 after
3806 Object.defineProperty(scope, parentScopeName, 3806 Object.defineProperty(scope, parentScopeName,
3807 { value: parentScope, configurable: true, writable: true }); 3807 { value: parentScope, configurable: true, writable: true });
3808 return scope; 3808 return scope;
3809 }; 3809 };
3810 3810
3811 global.PolymerExpressions = PolymerExpressions; 3811 global.PolymerExpressions = PolymerExpressions;
3812 PolymerExpressions.getExpression = getExpression; 3812 PolymerExpressions.getExpression = getExpression;
3813 })(this); 3813 })(this);
3814 3814
3815 Polymer = { 3815 Polymer = {
3816 version: '0.5.1' 3816 version: '0.5.4'
3817 }; 3817 };
3818 3818
3819 // TODO(sorvell): this ensures Polymer is an object and not a function 3819 // TODO(sorvell): this ensures Polymer is an object and not a function
3820 // Platform is currently defining it as a function to allow for async loading 3820 // Platform is currently defining it as a function to allow for async loading
3821 // of polymer; once we refine the loading process this likely goes away. 3821 // of polymer; once we refine the loading process this likely goes away.
3822 if (typeof window.Polymer === 'function') { 3822 if (typeof window.Polymer === 'function') {
3823 Polymer = {}; 3823 Polymer = {};
3824 } 3824 }
3825 3825
3826 3826
(...skipping 2519 matching lines...) Expand 10 before | Expand all | Expand 10 after
6346 } 6346 }
6347 6347
6348 var BIND = 'bind'; 6348 var BIND = 'bind';
6349 var REPEAT = 'repeat'; 6349 var REPEAT = 'repeat';
6350 var IF = 'if'; 6350 var IF = 'if';
6351 6351
6352 var templateAttributeDirectives = { 6352 var templateAttributeDirectives = {
6353 'template': true, 6353 'template': true,
6354 'repeat': true, 6354 'repeat': true,
6355 'bind': true, 6355 'bind': true,
6356 'ref': true 6356 'ref': true,
6357 'if': true
6357 }; 6358 };
6358 6359
6359 var semanticTemplateElements = { 6360 var semanticTemplateElements = {
6360 'THEAD': true, 6361 'THEAD': true,
6361 'TBODY': true, 6362 'TBODY': true,
6362 'TFOOT': true, 6363 'TFOOT': true,
6363 'TH': true, 6364 'TH': true,
6364 'TR': true, 6365 'TR': true,
6365 'TD': true, 6366 'TD': true,
6366 'COLGROUP': true, 6367 'COLGROUP': true,
(...skipping 1137 matching lines...) Expand 10 before | Expand all | Expand 10 after
7504 })(this); 7505 })(this);
7505 7506
7506 (function(scope) { 7507 (function(scope) {
7507 'use strict'; 7508 'use strict';
7508 7509
7509 // feature detect for URL constructor 7510 // feature detect for URL constructor
7510 var hasWorkingUrl = false; 7511 var hasWorkingUrl = false;
7511 if (!scope.forceJURL) { 7512 if (!scope.forceJURL) {
7512 try { 7513 try {
7513 var u = new URL('b', 'http://a'); 7514 var u = new URL('b', 'http://a');
7514 hasWorkingUrl = u.href === 'http://a/b'; 7515 u.pathname = 'c%20d';
7516 hasWorkingUrl = u.href === 'http://a/c%20d';
7515 } catch(e) {} 7517 } catch(e) {}
7516 } 7518 }
7517 7519
7518 if (hasWorkingUrl) 7520 if (hasWorkingUrl)
7519 return; 7521 return;
7520 7522
7521 var relative = Object.create(null); 7523 var relative = Object.create(null);
7522 relative['ftp'] = 21; 7524 relative['ftp'] = 21;
7523 relative['file'] = 0; 7525 relative['file'] = 0;
7524 relative['gopher'] = 70; 7526 relative['gopher'] = 70;
(...skipping 782 matching lines...) Expand 10 before | Expand all | Expand 10 after
8307 urlPath = resolveRelativeUrl(baseUrl, urlPath, keepAbsolute); 8309 urlPath = resolveRelativeUrl(baseUrl, urlPath, keepAbsolute);
8308 return pre + '\'' + urlPath + '\'' + post; 8310 return pre + '\'' + urlPath + '\'' + post;
8309 }); 8311 });
8310 } 8312 }
8311 8313
8312 function resolveRelativeUrl(baseUrl, url, keepAbsolute) { 8314 function resolveRelativeUrl(baseUrl, url, keepAbsolute) {
8313 // do not resolve '/' absolute urls 8315 // do not resolve '/' absolute urls
8314 if (url && url[0] === '/') { 8316 if (url && url[0] === '/') {
8315 return url; 8317 return url;
8316 } 8318 }
8319 // do not resolve '#' links, they are used for routing
8320 if (url && url[0] === '#') {
8321 return url;
8322 }
8317 var u = new URL(url, baseUrl); 8323 var u = new URL(url, baseUrl);
8318 return keepAbsolute ? u.href : makeDocumentRelPath(u.href); 8324 return keepAbsolute ? u.href : makeDocumentRelPath(u.href);
8319 } 8325 }
8320 8326
8321 function makeDocumentRelPath(url) { 8327 function makeDocumentRelPath(url) {
8322 var root = baseUrl(document.documentElement); 8328 var root = baseUrl(document.documentElement);
8323 var u = new URL(url, root); 8329 var u = new URL(url, root);
8324 if (u.host === root.host && u.port === root.port && 8330 if (u.host === root.host && u.port === root.port &&
8325 u.protocol === root.protocol) { 8331 u.protocol === root.protocol) {
8326 return makeRelPath(root, u); 8332 return makeRelPath(root, u);
(...skipping 3515 matching lines...) Expand 10 before | Expand all | Expand 10 after
11842 syntax.prepareBinding = function(pathString, name, node) { 11848 syntax.prepareBinding = function(pathString, name, node) {
11843 return events.prepareEventBinding(pathString, name, node) || 11849 return events.prepareEventBinding(pathString, name, node) ||
11844 prepareBinding.call(syntax, pathString, name, node); 11850 prepareBinding.call(syntax, pathString, name, node);
11845 }; 11851 };
11846 return syntax; 11852 return syntax;
11847 } 11853 }
11848 11854
11849 }); 11855 });
11850 11856
11851 })(); 11857 })();
OLDNEW
« no previous file with comments | « polymer_0.5.4/bower_components/polymer/polymer.html ('k') | polymer_0.5.4/bower_components/polymer/polymer.min.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698