diff --git a/bower.json b/bower.json index 8b28d98f26..0f0ad0362a 100644 --- a/bower.json +++ b/bower.json @@ -1,13 +1,14 @@ { "name": "polymer", - "version": "1.1.0", + "version": "1.1.1", "main": [ "polymer.html" ], "license": "http://polymer.github.io/LICENSE.txt", "ignore": [ "/.*", - "/test/" + "/test/", + "gen-changelog.sh" ], "authors": [ "The Polymer Authors (http://polymer.github.io/AUTHORS.txt)" diff --git a/build.log b/build.log index 477ce5b9a4..db5d1a4802 100644 --- a/build.log +++ b/build.log @@ -1,6 +1,6 @@ BUILD LOG --------- -Build Time: 2015-08-13T16:56:33-0700 +Build Time: 2015-08-20T15:31:36-0700 NODEJS INFORMATION ================== @@ -17,10 +17,10 @@ run-sequence: 1.1.1 REPO REVISIONS ============== -polymer: a42ca09c3b99749b1407d5fa68cd957c2eaf5ca6 +polymer: 26e8250d18f1c17fc31c77ea9475609c1477d57c BUILD HASHES ============ -polymer-mini.html: b40016f458e85bb815c898378b7bcd5c8abe5661 -polymer-micro.html: ef8ebb2dc40697c845c2b8ec64ee69838d0d7bfc -polymer.html: 2f874995a3a3ada9e87da48a01d10c6d3ee297bb \ No newline at end of file +polymer-mini.html: f9f87e6a0bea7c6eb183fbfaef720982d205ffdd +polymer-micro.html: 25529ff94754f6e8320f4dce1592ac7d3677965a +polymer.html: a7b56fb065f09e230e3f55235b419d095284c4f1 \ No newline at end of file diff --git a/polymer-micro.html b/polymer-micro.html index 51c3dd3f93..235770d4d8 100644 --- a/polymer-micro.html +++ b/polymer-micro.html @@ -217,6 +217,9 @@ (function () { var modules = {}; var lcModules = {}; +var findModule = function (id) { +return modules[id] || lcModules[id.toLowerCase()]; +}; var DomModule = function () { return document.createElement('dom-module'); }; @@ -235,10 +238,10 @@ } }, import: function (id, selector) { -var m = modules[id] || lcModules[id.toLowerCase()]; +var m = findModule(id); if (!m) { forceDocumentUpgrade(); -m = modules[id]; +m = findModule(id); } if (m && selector) { m = m.querySelector(selector); @@ -558,7 +561,7 @@ } } }); -Polymer.version = '1.1.0'; +Polymer.version = '1.1.1'; Polymer.Base._addFeature({ _registerFeatures: function () { this._prepIs(); diff --git a/polymer-mini.html b/polymer-mini.html index 0c88bf4402..26f3ac69fb 100644 --- a/polymer-mini.html +++ b/polymer-mini.html @@ -457,47 +457,43 @@ } }, appendChild: function (node) { -var handled; -this._ensureContentLogicalInfo(node); -this._removeNodeFromHost(node, true); -if (this._nodeIsInLogicalTree(this.node)) { -this._addLogicalInfo(node, this.node); -this._addNodeToHost(node); -handled = this._maybeDistribute(node, this.node); -} else { -this._addNodeToHost(node); -} -if (!handled && !this._tryRemoveUndistributedNode(node)) { -var container = this.node._isShadyRoot ? this.node.host : this.node; -addToComposedParent(container, node); -nativeAppendChild.call(container, node); -} -return node; +return this._addNode(node); }, insertBefore: function (node, ref_node) { -if (!ref_node) { -return this.appendChild(node); -} -var handled; -this._ensureContentLogicalInfo(node); +return this._addNode(node, ref_node); +}, +_addNode: function (node, ref_node) { this._removeNodeFromHost(node, true); -if (this._nodeIsInLogicalTree(this.node)) { +var addedInsertionPoint; +var root = this.getOwnerRoot(); +if (root) { +addedInsertionPoint = this._maybeAddInsertionPoint(node, this.node); +} +if (this._nodeHasLogicalChildren(this.node)) { +if (ref_node) { var children = this.childNodes; var index = children.indexOf(ref_node); if (index < 0) { throw Error('The ref_node to be inserted before is not a child ' + 'of this node'); } +} this._addLogicalInfo(node, this.node, index); -this._addNodeToHost(node); -handled = this._maybeDistribute(node, this.node); -} else { -this._addNodeToHost(node); } -if (!handled && !this._tryRemoveUndistributedNode(node)) { +this._addNodeToHost(node); +if (!this._maybeDistribute(node, this.node) && !this._tryRemoveUndistributedNode(node)) { +if (ref_node) { ref_node = ref_node.localName === CONTENT ? this._firstComposedNode(ref_node) : ref_node; +} var container = this.node._isShadyRoot ? this.node.host : this.node; addToComposedParent(container, node, ref_node); +if (ref_node) { nativeInsertBefore.call(container, node, ref_node); +} else { +nativeAppendChild.call(container, node); +} +} +if (addedInsertionPoint) { +this._updateInsertionPoints(root.host); } return node; }, @@ -505,14 +501,8 @@ if (factory(node).parentNode !== this.node) { console.warn('The node to be removed is not a child of this node', node); } -var handled; -if (this._nodeIsInLogicalTree(this.node)) { -this._removeNodeFromHost(node); -handled = this._maybeDistribute(node, this.node); -} else { this._removeNodeFromHost(node); -} -if (!handled) { +if (!this._maybeDistribute(node, this.node)) { var container = this.node._isShadyRoot ? this.node.host : this.node; if (container === node.parentNode) { removeFromComposedParent(container, node); @@ -560,7 +550,6 @@ var root = this._ownerShadyRootForNode(parent); if (root) { var host = root.host; -this._updateInsertionPoints(host); this._lazyDistribute(host); } } @@ -570,6 +559,25 @@ } return parentNeedsDist || hasContent && !wrappedContent; }, +_maybeAddInsertionPoint: function (node, parent) { +var added; +if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE && !node.__noContent) { +var c$ = factory(node).querySelectorAll(CONTENT); +for (var i = 0, n, np, na; i < c$.length && (n = c$[i]); i++) { +np = factory(n).parentNode; +if (np === node) { +np = parent; +} +na = this._maybeAddInsertionPoint(n, np); +added = added || na; +} +} else if (node.localName === CONTENT) { +saveLightChildrenIfNeeded(parent); +saveLightChildrenIfNeeded(node); +added = true; +} +return added; +}, _tryRemoveUndistributedNode: function (node) { if (this.node.shadyRoot) { if (node._composedParent) { @@ -586,20 +594,8 @@ saveLightChildrenIfNeeded(factory(c).parentNode); } }, -_nodeIsInLogicalTree: function (node) { -return Boolean(node._lightParent !== undefined || node._isShadyRoot || node.shadyRoot); -}, -_ensureContentLogicalInfo: function (node) { -if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) { -saveLightChildrenIfNeeded(this.node); -var c$ = Array.prototype.slice.call(node.childNodes); -for (var i = 0, n; i < c$.length && (n = c$[i]); i++) { -this._ensureContentLogicalInfo(n); -} -} else if (node.localName === CONTENT) { -saveLightChildrenIfNeeded(this.node); -saveLightChildrenIfNeeded(node); -} +_nodeHasLogicalChildren: function (node) { +return Boolean(node._lightChildren !== undefined); }, _parentNeedsDistribution: function (parent) { return parent && parent.shadyRoot && hasInsertionPoint(parent.shadyRoot); @@ -609,6 +605,7 @@ var root; var parent = node._lightParent; if (parent) { +factory(node)._distributeParent(); root = this._ownerShadyRootForNode(node); if (root) { root.host._elementRemove(node); @@ -621,7 +618,7 @@ this._updateInsertionPoints(root.host); this._lazyDistribute(root.host); } else if (ensureComposedRemoval) { -removeFromComposedParent(parent || node.parentNode, node); +removeFromComposedParent(node._composedParent, node); } }, _removeDistributedChildren: function (root, container) { @@ -1147,7 +1144,7 @@ } } function hasInsertionPoint(root) { -return Boolean(root._insertionPoints.length); +return Boolean(root && root._insertionPoints.length); } var p = Element.prototype; var matchesSelector = p.matches || p.matchesSelector || p.mozMatchesSelector || p.msMatchesSelector || p.oMatchesSelector || p.webkitMatchesSelector; diff --git a/polymer.html b/polymer.html index 5b074795a1..42e2d2241d 100644 --- a/polymer.html +++ b/polymer.html @@ -1656,6 +1656,9 @@ model: this._modelForPath(arg) }; var fc = arg[0]; +if (fc === '-') { +fc = arg[1]; +} if (fc >= '0' && fc <= '9') { fc = '#'; } @@ -2276,30 +2279,24 @@ _cssFromElement: function (element) { var cssText = ''; var content = element.content || element; -var sourceDoc = element.ownerDocument; var e$ = Array.prototype.slice.call(content.querySelectorAll(this.MODULE_STYLES_SELECTOR)); -for (var i = 0, e, resolveDoc, addModule; i < e$.length; i++) { +for (var i = 0, e; i < e$.length; i++) { e = e$[i]; -resolveDoc = sourceDoc; -addModule = null; if (e.localName === 'template') { cssText += this._cssFromElement(e); } else { if (e.localName === 'style') { -addModule = e.getAttribute(this.INCLUDE_ATTR); +var include = e.getAttribute(this.INCLUDE_ATTR); e = e.__appliedElement || e; e.parentNode.removeChild(e); -} else { -e = e.import && e.import.body; -resolveDoc = e.ownerDocument; +cssText += this.resolveCss(e.textContent, element.ownerDocument); +if (include) { +cssText += this.cssFromModules(include); } -if (e) { -cssText += this.resolveCss(e.textContent, resolveDoc); +} else if (e.import && e.import.body) { +cssText += this.resolveCss(e.import.body.textContent, e.import); } } -if (addModule) { -cssText += this.cssFromModules(addModule); -} } return cssText; }, @@ -3234,16 +3231,18 @@ if (this.include) { e.textContent += styleUtil.cssFromModules(this.include); } +var rules = styleUtil.rulesForStyle(e); +styleUtil.forEachStyleRule(rules, function (rule) { +styleTransformer.documentRule(rule); +}); this._computeStyleProperties(); var props = this._styleProperties; -var self = this; -e.textContent = styleUtil.toCssText(styleUtil.rulesForStyle(e), function (rule) { +e.textContent = styleUtil.toCssText(rules, function (rule) { var css = rule.cssText = rule.parsedCssText; if (rule.propertyInfo && rule.propertyInfo.cssText) { css = cssParse.removeCustomPropAssignment(css); rule.cssText = propertyUtils.valueForProperties(css, props); } -styleTransformer.documentRule(rule); }); } }); @@ -3799,6 +3798,9 @@ _keySort: function (a, b) { return this.collection.getKey(a) - this.collection.getKey(b); }, +_numericSort: function (a, b) { +return a - b; +}, _applySplicesUserSort: function (splices) { var c = this.collection; var instances = this._instances; @@ -3826,7 +3828,7 @@ } } if (removedIdxs.length) { -removedIdxs.sort(); +removedIdxs.sort(this._numericSort); for (var i = removedIdxs.length - 1; i >= 0; i--) { var idx = removedIdxs[i]; if (idx !== undefined) { @@ -4009,6 +4011,10 @@ type: Object, notify: true }, +selectedItem: { +type: Object, +notify: true +}, toggle: { type: Boolean, value: false @@ -4031,6 +4037,7 @@ this.selected = null; this._selectedColl = null; } +this.selectedItem = null; }, isSelected: function (item) { if (this.multi) { @@ -4048,7 +4055,9 @@ } } else { this.selected = null; +this.selectedItem = null; this.unlinkPaths('selected'); +this.unlinkPaths('selectedItem'); } }, select: function (item) { @@ -4068,8 +4077,10 @@ if (this.toggle && item == this.selected) { this.deselect(); } else { -this.linkPaths('selected', 'items.' + key); this.selected = item; +this.selectedItem = item; +this.linkPaths('selected', 'items.' + key); +this.linkPaths('selectedItem', 'items.' + key); } } }