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

Side by Side Diff: third_party/polymer/v1_0/components/polymer/polymer-micro.html

Issue 1269803005: Remove third_party/polymer from .gitignore (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 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 @license
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://polymer.g ithub.io/LICENSE.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/CONTRI BUTORS.txt
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/PATEN TS.txt
9 --><script>(function () {
10 function resolve() {
11 document.body.removeAttribute('unresolved');
12 }
13 if (window.WebComponents) {
14 addEventListener('WebComponentsReady', resolve);
15 } else {
16 if (document.readyState === 'interactive' || document.readyState === 'complete') {
17 resolve();
18 } else {
19 addEventListener('DOMContentLoaded', resolve);
20 }
21 }
22 }());
23 Polymer = {
24 Settings: function () {
25 var user = window.Polymer || {};
26 location.search.slice(1).split('&').forEach(function (o) {
27 o = o.split('=');
28 o[0] && (user[o[0]] = o[1] || true);
29 });
30 var wantShadow = user.dom === 'shadow';
31 var hasShadow = Boolean(Element.prototype.createShadowRoot);
32 var nativeShadow = hasShadow && !window.ShadowDOMPolyfill;
33 var useShadow = wantShadow && hasShadow;
34 var hasNativeImports = Boolean('import' in document.createElement('link'));
35 var useNativeImports = hasNativeImports;
36 var useNativeCustomElements = !window.CustomElements || window.CustomElements.us eNative;
37 return {
38 wantShadow: wantShadow,
39 hasShadow: hasShadow,
40 nativeShadow: nativeShadow,
41 useShadow: useShadow,
42 useNativeShadow: useShadow && nativeShadow,
43 useNativeImports: useNativeImports,
44 useNativeCustomElements: useNativeCustomElements
45 };
46 }()
47 };
48 (function () {
49 var userPolymer = window.Polymer;
50 window.Polymer = function (prototype) {
51 var ctor = desugar(prototype);
52 prototype = ctor.prototype;
53 var options = { prototype: prototype };
54 if (prototype.extends) {
55 options.extends = prototype.extends;
56 }
57 Polymer.telemetry._registrate(prototype);
58 document.registerElement(prototype.is, options);
59 return ctor;
60 };
61 var desugar = function (prototype) {
62 var base = Polymer.Base;
63 if (prototype.extends) {
64 base = Polymer.Base._getExtendedPrototype(prototype.extends);
65 }
66 prototype = Polymer.Base.chainObject(prototype, base);
67 prototype.registerCallback();
68 return prototype.constructor;
69 };
70 window.Polymer = Polymer;
71 if (userPolymer) {
72 for (var i in userPolymer) {
73 Polymer[i] = userPolymer[i];
74 }
75 }
76 Polymer.Class = desugar;
77 }());
78 Polymer.telemetry = {
79 registrations: [],
80 _regLog: function (prototype) {
81 console.log('[' + prototype.is + ']: registered');
82 },
83 _registrate: function (prototype) {
84 this.registrations.push(prototype);
85 Polymer.log && this._regLog(prototype);
86 },
87 dumpRegistrations: function () {
88 this.registrations.forEach(this._regLog);
89 }
90 };
91 Object.defineProperty(window, 'currentImport', {
92 enumerable: true,
93 configurable: true,
94 get: function () {
95 return (document._currentScript || document.currentScript).ownerDocument;
96 }
97 });
98 Polymer.Base = {
99 __isPolymerInstance__: true,
100 _addFeature: function (feature) {
101 this.extend(this, feature);
102 },
103 registerCallback: function () {
104 this._registerFeatures();
105 this._doBehavior('registered');
106 },
107 createdCallback: function () {
108 Polymer.telemetry.instanceCount++;
109 this.root = this;
110 this._doBehavior('created');
111 this._initFeatures();
112 },
113 attachedCallback: function () {
114 this.isAttached = true;
115 this._doBehavior('attached');
116 },
117 detachedCallback: function () {
118 this.isAttached = false;
119 this._doBehavior('detached');
120 },
121 attributeChangedCallback: function (name) {
122 this._setAttributeToProperty(this, name);
123 this._doBehavior('attributeChanged', arguments);
124 },
125 extend: function (prototype, api) {
126 if (prototype && api) {
127 Object.getOwnPropertyNames(api).forEach(function (n) {
128 this.copyOwnProperty(n, api, prototype);
129 }, this);
130 }
131 return prototype || api;
132 },
133 mixin: function (target, source) {
134 for (var i in source) {
135 target[i] = source[i];
136 }
137 return target;
138 },
139 copyOwnProperty: function (name, source, target) {
140 var pd = Object.getOwnPropertyDescriptor(source, name);
141 if (pd) {
142 Object.defineProperty(target, name, pd);
143 }
144 },
145 _log: console.log.apply.bind(console.log, console),
146 _warn: console.warn.apply.bind(console.warn, console),
147 _error: console.error.apply.bind(console.error, console),
148 _logf: function () {
149 return this._logPrefix.concat([this.is]).concat(Array.prototype.slice.call(argum ents, 0));
150 }
151 };
152 Polymer.Base._logPrefix = function () {
153 var color = window.chrome || /firefox/i.test(navigator.userAgent);
154 return color ? [
155 '%c[%s::%s]:',
156 'font-weight: bold; background-color:#EEEE00;'
157 ] : ['[%s::%s]:'];
158 }();
159 Polymer.Base.chainObject = function (object, inherited) {
160 if (object && inherited && object !== inherited) {
161 if (!Object.__proto__) {
162 object = Polymer.Base.extend(Object.create(inherited), object);
163 }
164 object.__proto__ = inherited;
165 }
166 return object;
167 };
168 Polymer.Base = Polymer.Base.chainObject(Polymer.Base, HTMLElement.prototype);
169 if (window.CustomElements) {
170 Polymer.instanceof = CustomElements.instanceof;
171 } else {
172 Polymer.instanceof = function (obj, ctor) {
173 return obj instanceof ctor;
174 };
175 }
176 Polymer.isInstance = function (obj) {
177 return Boolean(obj && obj.__isPolymerInstance__);
178 };
179 Polymer.telemetry.instanceCount = 0;
180 (function () {
181 var modules = {};
182 var DomModule = function () {
183 return document.createElement('dom-module');
184 };
185 DomModule.prototype = Object.create(HTMLElement.prototype);
186 DomModule.prototype.constructor = DomModule;
187 DomModule.prototype.createdCallback = function () {
188 var id = this.id || this.getAttribute('name') || this.getAttribute('is');
189 if (id) {
190 this.id = id;
191 modules[id] = this;
192 }
193 };
194 DomModule.prototype.import = function (id, slctr) {
195 var m = modules[id];
196 if (!m) {
197 forceDocumentUpgrade();
198 m = modules[id];
199 }
200 if (m && slctr) {
201 m = m.querySelector(slctr);
202 }
203 return m;
204 };
205 var cePolyfill = window.CustomElements && !CustomElements.useNative;
206 if (cePolyfill) {
207 var ready = CustomElements.ready;
208 CustomElements.ready = true;
209 }
210 document.registerElement('dom-module', DomModule);
211 if (cePolyfill) {
212 CustomElements.ready = ready;
213 }
214 function forceDocumentUpgrade() {
215 if (cePolyfill) {
216 var script = document._currentScript || document.currentScript;
217 if (script) {
218 CustomElements.upgradeAll(script.ownerDocument);
219 }
220 }
221 }
222 }());
223 Polymer.Base._addFeature({
224 _prepIs: function () {
225 if (!this.is) {
226 var module = (document._currentScript || document.currentScript).parentNode;
227 if (module.localName === 'dom-module') {
228 var id = module.id || module.getAttribute('name') || module.getAttribute('is');
229 this.is = id;
230 }
231 }
232 }
233 });
234 Polymer.Base._addFeature({
235 behaviors: [],
236 _prepBehaviors: function () {
237 if (this.behaviors.length) {
238 this.behaviors = this._flattenBehaviorsList(this.behaviors);
239 }
240 this._prepAllBehaviors(this.behaviors);
241 },
242 _flattenBehaviorsList: function (behaviors) {
243 var flat = [];
244 behaviors.forEach(function (b) {
245 if (b instanceof Array) {
246 flat = flat.concat(this._flattenBehaviorsList(b));
247 } else if (b) {
248 flat.push(b);
249 } else {
250 this._warn(this._logf('_flattenBehaviorsList', 'behavior is null, check for miss ing or 404 import'));
251 }
252 }, this);
253 return flat;
254 },
255 _prepAllBehaviors: function (behaviors) {
256 for (var i = behaviors.length - 1; i >= 0; i--) {
257 this._mixinBehavior(behaviors[i]);
258 }
259 for (var i = 0, l = behaviors.length; i < l; i++) {
260 this._prepBehavior(behaviors[i]);
261 }
262 this._prepBehavior(this);
263 },
264 _mixinBehavior: function (b) {
265 Object.getOwnPropertyNames(b).forEach(function (n) {
266 switch (n) {
267 case 'hostAttributes':
268 case 'registered':
269 case 'properties':
270 case 'observers':
271 case 'listeners':
272 case 'created':
273 case 'attached':
274 case 'detached':
275 case 'attributeChanged':
276 case 'configure':
277 case 'ready':
278 break;
279 default:
280 if (!this.hasOwnProperty(n)) {
281 this.copyOwnProperty(n, b, this);
282 }
283 break;
284 }
285 }, this);
286 },
287 _doBehavior: function (name, args) {
288 this.behaviors.forEach(function (b) {
289 this._invokeBehavior(b, name, args);
290 }, this);
291 this._invokeBehavior(this, name, args);
292 },
293 _invokeBehavior: function (b, name, args) {
294 var fn = b[name];
295 if (fn) {
296 fn.apply(this, args || Polymer.nar);
297 }
298 },
299 _marshalBehaviors: function () {
300 this.behaviors.forEach(function (b) {
301 this._marshalBehavior(b);
302 }, this);
303 this._marshalBehavior(this);
304 }
305 });
306 Polymer.Base._addFeature({
307 _getExtendedPrototype: function (tag) {
308 return this._getExtendedNativePrototype(tag);
309 },
310 _nativePrototypes: {},
311 _getExtendedNativePrototype: function (tag) {
312 var p = this._nativePrototypes[tag];
313 if (!p) {
314 var np = this.getNativePrototype(tag);
315 p = this.extend(Object.create(np), Polymer.Base);
316 this._nativePrototypes[tag] = p;
317 }
318 return p;
319 },
320 getNativePrototype: function (tag) {
321 return Object.getPrototypeOf(document.createElement(tag));
322 }
323 });
324 Polymer.Base._addFeature({
325 _prepConstructor: function () {
326 this._factoryArgs = this.extends ? [
327 this.extends,
328 this.is
329 ] : [this.is];
330 var ctor = function () {
331 return this._factory(arguments);
332 };
333 if (this.hasOwnProperty('extends')) {
334 ctor.extends = this.extends;
335 }
336 Object.defineProperty(this, 'constructor', {
337 value: ctor,
338 writable: true,
339 configurable: true
340 });
341 ctor.prototype = this;
342 },
343 _factory: function (args) {
344 var elt = document.createElement.apply(document, this._factoryArgs);
345 if (this.factoryImpl) {
346 this.factoryImpl.apply(elt, args);
347 }
348 return elt;
349 }
350 });
351 Polymer.nob = Object.create(null);
352 Polymer.Base._addFeature({
353 properties: {},
354 getPropertyInfo: function (property) {
355 var info = this._getPropertyInfo(property, this.properties);
356 if (!info) {
357 this.behaviors.some(function (b) {
358 return info = this._getPropertyInfo(property, b.properties);
359 }, this);
360 }
361 return info || Polymer.nob;
362 },
363 _getPropertyInfo: function (property, properties) {
364 var p = properties && properties[property];
365 if (typeof p === 'function') {
366 p = properties[property] = { type: p };
367 }
368 if (p) {
369 p.defined = true;
370 }
371 return p;
372 }
373 });
374 Polymer.CaseMap = {
375 _caseMap: {},
376 dashToCamelCase: function (dash) {
377 var mapped = Polymer.CaseMap._caseMap[dash];
378 if (mapped) {
379 return mapped;
380 }
381 if (dash.indexOf('-') < 0) {
382 return Polymer.CaseMap._caseMap[dash] = dash;
383 }
384 return Polymer.CaseMap._caseMap[dash] = dash.replace(/-([a-z])/g, function (m) {
385 return m[1].toUpperCase();
386 });
387 },
388 camelToDashCase: function (camel) {
389 var mapped = Polymer.CaseMap._caseMap[camel];
390 if (mapped) {
391 return mapped;
392 }
393 return Polymer.CaseMap._caseMap[camel] = camel.replace(/([a-z][A-Z])/g, function (g) {
394 return g[0] + '-' + g[1].toLowerCase();
395 });
396 }
397 };
398 Polymer.Base._addFeature({
399 _prepAttributes: function () {
400 this._aggregatedAttributes = {};
401 },
402 _addHostAttributes: function (attributes) {
403 if (attributes) {
404 this.mixin(this._aggregatedAttributes, attributes);
405 }
406 },
407 _marshalHostAttributes: function () {
408 this._applyAttributes(this, this._aggregatedAttributes);
409 },
410 _applyAttributes: function (node, attr$) {
411 for (var n in attr$) {
412 if (!this.hasAttribute(n) && n !== 'class') {
413 this.serializeValueToAttribute(attr$[n], n, this);
414 }
415 }
416 },
417 _marshalAttributes: function () {
418 this._takeAttributesToModel(this);
419 },
420 _takeAttributesToModel: function (model) {
421 for (var i = 0, l = this.attributes.length; i < l; i++) {
422 this._setAttributeToProperty(model, this.attributes[i].name);
423 }
424 },
425 _setAttributeToProperty: function (model, attrName) {
426 if (!this._serializing) {
427 var propName = Polymer.CaseMap.dashToCamelCase(attrName);
428 var info = this.getPropertyInfo(propName);
429 if (info.defined || this._propertyEffects && this._propertyEffects[propName]) {
430 var val = this.getAttribute(attrName);
431 model[propName] = this.deserialize(val, info.type);
432 }
433 }
434 },
435 _serializing: false,
436 reflectPropertyToAttribute: function (name) {
437 this._serializing = true;
438 this.serializeValueToAttribute(this[name], Polymer.CaseMap.camelToDashCase(name) );
439 this._serializing = false;
440 },
441 serializeValueToAttribute: function (value, attribute, node) {
442 var str = this.serialize(value);
443 (node || this)[str === undefined ? 'removeAttribute' : 'setAttribute'](attribute , str);
444 },
445 deserialize: function (value, type) {
446 switch (type) {
447 case Number:
448 value = Number(value);
449 break;
450 case Boolean:
451 value = value !== null;
452 break;
453 case Object:
454 try {
455 value = JSON.parse(value);
456 } catch (x) {
457 }
458 break;
459 case Array:
460 try {
461 value = JSON.parse(value);
462 } catch (x) {
463 value = null;
464 console.warn('Polymer::Attributes: couldn`t decode Array as JSON');
465 }
466 break;
467 case Date:
468 value = new Date(value);
469 break;
470 case String:
471 default:
472 break;
473 }
474 return value;
475 },
476 serialize: function (value) {
477 switch (typeof value) {
478 case 'boolean':
479 return value ? '' : undefined;
480 case 'object':
481 if (value instanceof Date) {
482 return value;
483 } else if (value) {
484 try {
485 return JSON.stringify(value);
486 } catch (x) {
487 return '';
488 }
489 }
490 default:
491 return value != null ? value : undefined;
492 }
493 }
494 });
495 Polymer.Base._addFeature({
496 _setupDebouncers: function () {
497 this._debouncers = {};
498 },
499 debounce: function (jobName, callback, wait) {
500 this._debouncers[jobName] = Polymer.Debounce.call(this, this._debouncers[jobName ], callback, wait);
501 },
502 isDebouncerActive: function (jobName) {
503 var debouncer = this._debouncers[jobName];
504 return debouncer && debouncer.finish;
505 },
506 flushDebouncer: function (jobName) {
507 var debouncer = this._debouncers[jobName];
508 if (debouncer) {
509 debouncer.complete();
510 }
511 },
512 cancelDebouncer: function (jobName) {
513 var debouncer = this._debouncers[jobName];
514 if (debouncer) {
515 debouncer.stop();
516 }
517 }
518 });
519 Polymer.version = '1.0.7';
520 Polymer.Base._addFeature({
521 _registerFeatures: function () {
522 this._prepIs();
523 this._prepAttributes();
524 this._prepBehaviors();
525 this._prepConstructor();
526 },
527 _prepBehavior: function (b) {
528 this._addHostAttributes(b.hostAttributes);
529 },
530 _marshalBehavior: function (b) {
531 },
532 _initFeatures: function () {
533 this._marshalHostAttributes();
534 this._setupDebouncers();
535 this._marshalBehaviors();
536 }
537 });</script>
538
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698