| OLD | NEW |
| 1 (function () { | 1 (function () { |
| 2 Polymer.nar = []; | 2 Polymer.nar = []; |
| 3 var disableUpgradeEnabled = Polymer.Settings.disableUpgradeEnabled; | 3 var disableUpgradeEnabled = Polymer.Settings.disableUpgradeEnabled; |
| 4 Polymer.Annotations = { | 4 Polymer.Annotations = { |
| 5 parseAnnotations: function (template, stripWhiteSpace) { | 5 parseAnnotations: function (template, stripWhiteSpace) { |
| 6 var list = []; | 6 var list = []; |
| 7 var content = template._content || template.content; | 7 var content = template._content || template.content; |
| 8 this._parseNodeAnnotations(content, list, stripWhiteSpace || template.hasAttribu
te('strip-whitespace')); | 8 this._parseNodeAnnotations(content, list, stripWhiteSpace || template.hasAttribu
te('strip-whitespace')); |
| 9 return list; | 9 return list; |
| 10 }, | 10 }, |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 234 for (var n = parent.firstChild, i = 0; n; n = n.nextSibling) { | 234 for (var n = parent.firstChild, i = 0; n; n = n.nextSibling) { |
| 235 if (annote.index === i++) { | 235 if (annote.index === i++) { |
| 236 return n; | 236 return n; |
| 237 } | 237 } |
| 238 } | 238 } |
| 239 } else { | 239 } else { |
| 240 return root; | 240 return root; |
| 241 } | 241 } |
| 242 } | 242 } |
| 243 }; | 243 }; |
| 244 }());(function () { | |
| 245 function resolveCss(cssText, ownerDocument) { | |
| 246 return cssText.replace(CSS_URL_RX, function (m, pre, url, post) { | |
| 247 return pre + '\'' + resolve(url.replace(/["']/g, ''), ownerDocument) + '\'' + po
st; | |
| 248 }); | |
| 249 } | |
| 250 function resolveAttrs(element, ownerDocument) { | |
| 251 for (var name in URL_ATTRS) { | |
| 252 var a$ = URL_ATTRS[name]; | |
| 253 for (var i = 0, l = a$.length, a, at, v; i < l && (a = a$[i]); i++) { | |
| 254 if (name === '*' || element.localName === name) { | |
| 255 at = element.attributes[a]; | |
| 256 v = at && at.value; | |
| 257 if (v && v.search(BINDING_RX) < 0) { | |
| 258 at.value = a === 'style' ? resolveCss(v, ownerDocument) : resolve(v, ownerDocume
nt); | |
| 259 } | |
| 260 } | |
| 261 } | |
| 262 } | |
| 263 } | |
| 264 function resolve(url, ownerDocument) { | |
| 265 if (url && ABS_URL.test(url)) { | |
| 266 return url; | |
| 267 } | |
| 268 var resolver = getUrlResolver(ownerDocument); | |
| 269 resolver.href = url; | |
| 270 return resolver.href || url; | |
| 271 } | |
| 272 var tempDoc; | |
| 273 var tempDocBase; | |
| 274 function resolveUrl(url, baseUri) { | |
| 275 if (!tempDoc) { | |
| 276 tempDoc = document.implementation.createHTMLDocument('temp'); | |
| 277 tempDocBase = tempDoc.createElement('base'); | |
| 278 tempDoc.head.appendChild(tempDocBase); | |
| 279 } | |
| 280 tempDocBase.href = baseUri; | |
| 281 return resolve(url, tempDoc); | |
| 282 } | |
| 283 function getUrlResolver(ownerDocument) { | |
| 284 return ownerDocument.body.__urlResolver || (ownerDocument.body.__urlResolver = o
wnerDocument.createElement('a')); | |
| 285 } | |
| 286 var CSS_URL_RX = /(url\()([^)]*)(\))/g; | |
| 287 var URL_ATTRS = { | |
| 288 '*': [ | |
| 289 'href', | |
| 290 'src', | |
| 291 'style', | |
| 292 'url' | |
| 293 ], | |
| 294 form: ['action'] | |
| 295 }; | |
| 296 var ABS_URL = /(^\/)|(^#)|(^[\w-\d]*:)/; | |
| 297 var BINDING_RX = /\{\{|\[\[/; | |
| 298 Polymer.ResolveUrl = { | |
| 299 resolveCss: resolveCss, | |
| 300 resolveAttrs: resolveAttrs, | |
| 301 resolveUrl: resolveUrl | |
| 302 }; | |
| 303 }());Polymer.Path = { | 244 }());Polymer.Path = { |
| 304 root: function (path) { | 245 root: function (path) { |
| 305 var dotIndex = path.indexOf('.'); | 246 var dotIndex = path.indexOf('.'); |
| 306 if (dotIndex === -1) { | 247 if (dotIndex === -1) { |
| 307 return path; | 248 return path; |
| 308 } | 249 } |
| 309 return path.slice(0, dotIndex); | 250 return path.slice(0, dotIndex); |
| 310 }, | 251 }, |
| 311 isDeep: function (path) { | 252 isDeep: function (path) { |
| 312 return path.indexOf('.') !== -1; | 253 return path.indexOf('.') !== -1; |
| (...skipping 1765 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2078 } | 2019 } |
| 2079 node._configValue(name, value); | 2020 node._configValue(name, value); |
| 2080 } | 2021 } |
| 2081 } | 2022 } |
| 2082 } | 2023 } |
| 2083 } | 2024 } |
| 2084 } | 2025 } |
| 2085 } | 2026 } |
| 2086 }, | 2027 }, |
| 2087 _afterClientsReady: function () { | 2028 _afterClientsReady: function () { |
| 2029 this.importPath = this._importPath; |
| 2030 this.rootPath = Polymer.rootPath; |
| 2088 this._executeStaticEffects(); | 2031 this._executeStaticEffects(); |
| 2089 this._applyConfig(this._config, this._aboveConfig); | 2032 this._applyConfig(this._config, this._aboveConfig); |
| 2090 this._flushHandlers(); | 2033 this._flushHandlers(); |
| 2091 }, | 2034 }, |
| 2092 _applyConfig: function (config, aboveConfig) { | 2035 _applyConfig: function (config, aboveConfig) { |
| 2093 for (var n in config) { | 2036 for (var n in config) { |
| 2094 if (this[n] === undefined) { | 2037 if (this[n] === undefined) { |
| 2095 this.__setProperty(n, config[n], n in aboveConfig); | 2038 this.__setProperty(n, config[n], n in aboveConfig); |
| 2096 } | 2039 } |
| 2097 } | 2040 } |
| (...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2416 _complexObserverPathEffect: Polymer.Base._complexObserverPathEffect, | 2359 _complexObserverPathEffect: Polymer.Base._complexObserverPathEffect, |
| 2417 _annotatedComputationPathEffect: Polymer.Base._annotatedComputationPathEffect, | 2360 _annotatedComputationPathEffect: Polymer.Base._annotatedComputationPathEffect, |
| 2418 _computePathEffect: Polymer.Base._computePathEffect, | 2361 _computePathEffect: Polymer.Base._computePathEffect, |
| 2419 _notifyBoundPaths: Polymer.Base._notifyBoundPaths, | 2362 _notifyBoundPaths: Polymer.Base._notifyBoundPaths, |
| 2420 _getPathParts: Polymer.Base._getPathParts | 2363 _getPathParts: Polymer.Base._getPathParts |
| 2421 }); | 2364 }); |
| 2422 } | 2365 } |
| 2423 }); | 2366 }); |
| 2424 }());Polymer.Base._addFeature({ | 2367 }());Polymer.Base._addFeature({ |
| 2425 resolveUrl: function (url) { | 2368 resolveUrl: function (url) { |
| 2426 var module = Polymer.DomModule.import(this.is); | 2369 return Polymer.ResolveUrl.resolveUrl(url, this._importPath); |
| 2427 var root = ''; | |
| 2428 if (module) { | |
| 2429 var assetPath = module.getAttribute('assetpath') || ''; | |
| 2430 root = Polymer.ResolveUrl.resolveUrl(assetPath, module.ownerDocument.baseURI); | |
| 2431 } | |
| 2432 return Polymer.ResolveUrl.resolveUrl(url, root); | |
| 2433 } | 2370 } |
| 2434 });Polymer.CssParse = function () { | 2371 });Polymer.CssParse = function () { |
| 2435 return { | 2372 return { |
| 2436 parse: function (text) { | 2373 parse: function (text) { |
| 2437 text = this._clean(text); | 2374 text = this._clean(text); |
| 2438 return this._parseCss(this._lex(text), text); | 2375 return this._parseCss(this._lex(text), text); |
| 2439 }, | 2376 }, |
| 2440 _clean: function (cssText) { | 2377 _clean: function (cssText) { |
| 2441 return cssText.replace(this._rx.comments, '').replace(this._rx.port, ''); | 2378 return cssText.replace(this._rx.comments, '').replace(this._rx.port, ''); |
| 2442 }, | 2379 }, |
| (...skipping 2304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4747 }, | 4684 }, |
| 4748 detached: function () { | 4685 detached: function () { |
| 4749 this.__isDetached = true; | 4686 this.__isDetached = true; |
| 4750 for (var i = 0; i < this._instances.length; i++) { | 4687 for (var i = 0; i < this._instances.length; i++) { |
| 4751 this._detachInstance(i); | 4688 this._detachInstance(i); |
| 4752 } | 4689 } |
| 4753 }, | 4690 }, |
| 4754 attached: function () { | 4691 attached: function () { |
| 4755 if (this.__isDetached) { | 4692 if (this.__isDetached) { |
| 4756 this.__isDetached = false; | 4693 this.__isDetached = false; |
| 4757 var parent = Polymer.dom(Polymer.dom(this).parentNode); | 4694 var refNode; |
| 4695 var parentNode = Polymer.dom(this).parentNode; |
| 4696 if (parentNode.localName == this.is) { |
| 4697 refNode = parentNode; |
| 4698 parentNode = Polymer.dom(parentNode).parentNode; |
| 4699 } else { |
| 4700 refNode = this; |
| 4701 } |
| 4702 var parent = Polymer.dom(parentNode); |
| 4758 for (var i = 0; i < this._instances.length; i++) { | 4703 for (var i = 0; i < this._instances.length; i++) { |
| 4759 this._attachInstance(i, parent); | 4704 this._attachInstance(i, parent, refNode); |
| 4760 } | 4705 } |
| 4761 } | 4706 } |
| 4762 }, | 4707 }, |
| 4763 ready: function () { | 4708 ready: function () { |
| 4764 this._instanceProps = { __key__: true }; | 4709 this._instanceProps = { __key__: true }; |
| 4765 this._instanceProps[this.as] = true; | 4710 this._instanceProps[this.as] = true; |
| 4766 this._instanceProps[this.indexAs] = true; | 4711 this._instanceProps[this.indexAs] = true; |
| 4767 if (!this.ctor) { | 4712 if (!this.ctor) { |
| 4768 this.templatize(this); | 4713 this.templatize(this); |
| 4769 } | 4714 } |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5033 _detachInstance: function (idx) { | 4978 _detachInstance: function (idx) { |
| 5034 var inst = this._instances[idx]; | 4979 var inst = this._instances[idx]; |
| 5035 if (!inst.isPlaceholder) { | 4980 if (!inst.isPlaceholder) { |
| 5036 for (var i = 0; i < inst._children.length; i++) { | 4981 for (var i = 0; i < inst._children.length; i++) { |
| 5037 var el = inst._children[i]; | 4982 var el = inst._children[i]; |
| 5038 Polymer.dom(inst.root).appendChild(el); | 4983 Polymer.dom(inst.root).appendChild(el); |
| 5039 } | 4984 } |
| 5040 return inst; | 4985 return inst; |
| 5041 } | 4986 } |
| 5042 }, | 4987 }, |
| 5043 _attachInstance: function (idx, parent) { | 4988 _attachInstance: function (idx, parent, refNode) { |
| 5044 var inst = this._instances[idx]; | 4989 var inst = this._instances[idx]; |
| 5045 if (!inst.isPlaceholder) { | 4990 if (!inst.isPlaceholder) { |
| 5046 parent.insertBefore(inst.root, this); | 4991 parent.insertBefore(inst.root, refNode); |
| 5047 } | 4992 } |
| 5048 }, | 4993 }, |
| 5049 _detachAndRemoveInstance: function (idx) { | 4994 _detachAndRemoveInstance: function (idx) { |
| 5050 var inst = this._detachInstance(idx); | 4995 var inst = this._detachInstance(idx); |
| 5051 if (inst) { | 4996 if (inst) { |
| 5052 this._pool.push(inst); | 4997 this._pool.push(inst); |
| 5053 } | 4998 } |
| 5054 this._instances.splice(idx, 1); | 4999 this._instances.splice(idx, 1); |
| 5055 }, | 5000 }, |
| 5056 _insertPlaceholder: function (idx, key) { | 5001 _insertPlaceholder: function (idx, key) { |
| (...skipping 12 matching lines...) Expand all Loading... |
| 5069 var inst = this._pool.pop(); | 5014 var inst = this._pool.pop(); |
| 5070 if (inst) { | 5015 if (inst) { |
| 5071 inst.__setProperty(this.as, this.collection.getItem(key), true); | 5016 inst.__setProperty(this.as, this.collection.getItem(key), true); |
| 5072 inst.__setProperty('__key__', key, true); | 5017 inst.__setProperty('__key__', key, true); |
| 5073 } else { | 5018 } else { |
| 5074 inst = this._stampInstance(idx, key); | 5019 inst = this._stampInstance(idx, key); |
| 5075 } | 5020 } |
| 5076 var beforeRow = this._instances[idx + 1]; | 5021 var beforeRow = this._instances[idx + 1]; |
| 5077 var beforeNode = beforeRow && !beforeRow.isPlaceholder ? beforeRow._children[0]
: this; | 5022 var beforeNode = beforeRow && !beforeRow.isPlaceholder ? beforeRow._children[0]
: this; |
| 5078 var parentNode = Polymer.dom(this).parentNode; | 5023 var parentNode = Polymer.dom(this).parentNode; |
| 5024 if (parentNode.localName == this.is) { |
| 5025 if (beforeNode == this) { |
| 5026 beforeNode = parentNode; |
| 5027 } |
| 5028 parentNode = Polymer.dom(parentNode).parentNode; |
| 5029 } |
| 5079 Polymer.dom(parentNode).insertBefore(inst.root, beforeNode); | 5030 Polymer.dom(parentNode).insertBefore(inst.root, beforeNode); |
| 5080 this._instances[idx] = inst; | 5031 this._instances[idx] = inst; |
| 5081 return inst; | 5032 return inst; |
| 5082 }, | 5033 }, |
| 5083 _downgradeInstance: function (idx, key) { | 5034 _downgradeInstance: function (idx, key) { |
| 5084 var inst = this._detachInstance(idx); | 5035 var inst = this._detachInstance(idx); |
| 5085 if (inst) { | 5036 if (inst) { |
| 5086 this._pool.push(inst); | 5037 this._pool.push(inst); |
| 5087 } | 5038 } |
| 5088 inst = { | 5039 inst = { |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5264 value: false, | 5215 value: false, |
| 5265 observer: '_queueRender' | 5216 observer: '_queueRender' |
| 5266 }, | 5217 }, |
| 5267 notifyDomChange: { type: Boolean } | 5218 notifyDomChange: { type: Boolean } |
| 5268 }, | 5219 }, |
| 5269 behaviors: [Polymer.Templatizer], | 5220 behaviors: [Polymer.Templatizer], |
| 5270 _queueRender: function () { | 5221 _queueRender: function () { |
| 5271 this._debounceTemplate(this._render); | 5222 this._debounceTemplate(this._render); |
| 5272 }, | 5223 }, |
| 5273 detached: function () { | 5224 detached: function () { |
| 5274 if (!this.parentNode || this.parentNode.nodeType == Node.DOCUMENT_FRAGMENT_NODE
&& (!Polymer.Settings.hasShadow || !(this.parentNode instanceof ShadowRoot))) { | 5225 var parentNode = this.parentNode; |
| 5226 if (parentNode && parentNode.localName == this.is) { |
| 5227 parentNode = Polymer.dom(parentNode).parentNode; |
| 5228 } |
| 5229 if (!parentNode || parentNode.nodeType == Node.DOCUMENT_FRAGMENT_NODE && (!Polym
er.Settings.hasShadow || !(parentNode instanceof ShadowRoot))) { |
| 5275 this._teardownInstance(); | 5230 this._teardownInstance(); |
| 5276 } | 5231 } |
| 5277 }, | 5232 }, |
| 5278 attached: function () { | 5233 attached: function () { |
| 5279 if (this.if && this.ctor) { | 5234 if (this.if && this.ctor) { |
| 5280 this.async(this._ensureInstance); | 5235 this.async(this._ensureInstance); |
| 5281 } | 5236 } |
| 5282 }, | 5237 }, |
| 5283 render: function () { | 5238 render: function () { |
| 5284 this._flushTemplates(); | 5239 this._flushTemplates(); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 5297 this._showHideChildren(); | 5252 this._showHideChildren(); |
| 5298 } | 5253 } |
| 5299 if (this.if != this._lastIf) { | 5254 if (this.if != this._lastIf) { |
| 5300 if (!Polymer.Settings.suppressTemplateNotifications || this.notifyDomChange) { | 5255 if (!Polymer.Settings.suppressTemplateNotifications || this.notifyDomChange) { |
| 5301 this.fire('dom-change'); | 5256 this.fire('dom-change'); |
| 5302 } | 5257 } |
| 5303 this._lastIf = this.if; | 5258 this._lastIf = this.if; |
| 5304 } | 5259 } |
| 5305 }, | 5260 }, |
| 5306 _ensureInstance: function () { | 5261 _ensureInstance: function () { |
| 5262 var refNode; |
| 5307 var parentNode = Polymer.dom(this).parentNode; | 5263 var parentNode = Polymer.dom(this).parentNode; |
| 5264 if (parentNode && parentNode.localName == this.is) { |
| 5265 refNode = parentNode; |
| 5266 parentNode = Polymer.dom(parentNode).parentNode; |
| 5267 } else { |
| 5268 refNode = this; |
| 5269 } |
| 5308 if (parentNode) { | 5270 if (parentNode) { |
| 5309 var parent = Polymer.dom(parentNode); | |
| 5310 if (!this._instance) { | 5271 if (!this._instance) { |
| 5311 this._instance = this.stamp(); | 5272 this._instance = this.stamp(); |
| 5312 var root = this._instance.root; | 5273 var root = this._instance.root; |
| 5313 parent.insertBefore(root, this); | 5274 Polymer.dom(parentNode).insertBefore(root, refNode); |
| 5314 } else { | 5275 } else { |
| 5315 var c$ = this._instance._children; | 5276 var c$ = this._instance._children; |
| 5316 if (c$ && c$.length) { | 5277 if (c$ && c$.length) { |
| 5317 var lastChild = Polymer.dom(this).previousSibling; | 5278 var lastChild = Polymer.dom(refNode).previousSibling; |
| 5318 if (lastChild !== c$[c$.length - 1]) { | 5279 if (lastChild !== c$[c$.length - 1]) { |
| 5319 for (var i = 0, n; i < c$.length && (n = c$[i]); i++) { | 5280 for (var i = 0, n; i < c$.length && (n = c$[i]); i++) { |
| 5320 parent.insertBefore(n, this); | 5281 Polymer.dom(parentNode).insertBefore(n, refNode); |
| 5321 } | 5282 } |
| 5322 } | 5283 } |
| 5323 } | 5284 } |
| 5324 } | 5285 } |
| 5325 } | 5286 } |
| 5326 }, | 5287 }, |
| 5327 _teardownInstance: function () { | 5288 _teardownInstance: function () { |
| 5328 if (this._instance) { | 5289 if (this._instance) { |
| 5329 var c$ = this._instance._children; | 5290 var c$ = this._instance._children; |
| 5330 if (c$ && c$.length) { | 5291 if (c$ && c$.length) { |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5375 } | 5336 } |
| 5376 }, | 5337 }, |
| 5377 _markImportsReady: function () { | 5338 _markImportsReady: function () { |
| 5378 this._importsReady = true; | 5339 this._importsReady = true; |
| 5379 this._ensureReady(); | 5340 this._ensureReady(); |
| 5380 }, | 5341 }, |
| 5381 _registerFeatures: function () { | 5342 _registerFeatures: function () { |
| 5382 this._prepConstructor(); | 5343 this._prepConstructor(); |
| 5383 }, | 5344 }, |
| 5384 _insertChildren: function () { | 5345 _insertChildren: function () { |
| 5385 var parentDom = Polymer.dom(Polymer.dom(this).parentNode); | 5346 var refNode; |
| 5386 parentDom.insertBefore(this.root, this); | 5347 var parentNode = Polymer.dom(this).parentNode; |
| 5348 if (parentNode.localName == this.is) { |
| 5349 refNode = parentNode; |
| 5350 parentNode = Polymer.dom(parentNode).parentNode; |
| 5351 } else { |
| 5352 refNode = this; |
| 5353 } |
| 5354 Polymer.dom(parentNode).insertBefore(this.root, refNode); |
| 5387 }, | 5355 }, |
| 5388 _removeChildren: function () { | 5356 _removeChildren: function () { |
| 5389 if (this._children) { | 5357 if (this._children) { |
| 5390 for (var i = 0; i < this._children.length; i++) { | 5358 for (var i = 0; i < this._children.length; i++) { |
| 5391 this.root.appendChild(this._children[i]); | 5359 this.root.appendChild(this._children[i]); |
| 5392 } | 5360 } |
| 5393 } | 5361 } |
| 5394 }, | 5362 }, |
| 5395 _initFeatures: function () { | 5363 _initFeatures: function () { |
| 5396 }, | 5364 }, |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5433 this._prepPropertyInfo(); | 5401 this._prepPropertyInfo(); |
| 5434 Polymer.Base._initFeatures.call(this); | 5402 Polymer.Base._initFeatures.call(this); |
| 5435 this._children = Polymer.TreeApi.arrayCopyChildNodes(this.root); | 5403 this._children = Polymer.TreeApi.arrayCopyChildNodes(this.root); |
| 5436 } | 5404 } |
| 5437 this._insertChildren(); | 5405 this._insertChildren(); |
| 5438 if (!Polymer.Settings.suppressTemplateNotifications || this.notifyDomChange) { | 5406 if (!Polymer.Settings.suppressTemplateNotifications || this.notifyDomChange) { |
| 5439 this.fire('dom-change'); | 5407 this.fire('dom-change'); |
| 5440 } | 5408 } |
| 5441 } | 5409 } |
| 5442 }); | 5410 }); |
| OLD | NEW |