diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py
index 6e6aa282012..494e598e773 100644
--- a/homeassistant/components/frontend/version.py
+++ b/homeassistant/components/frontend/version.py
@@ -1,2 +1,2 @@
""" DO NOT MODIFY. Auto-generated by build_frontend script """
-VERSION = "b22e174ff27ead5c80f7d0efc055fbd9"
+VERSION = "1001fa37eccf171f7e364cf29a0d7fbb"
diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html
index 743229397ee..7371e2276eb 100644
--- a/homeassistant/components/frontend/www_static/frontend.html
+++ b/homeassistant/components/frontend/www_static/frontend.html
@@ -141,12 +141,6 @@ this.copyOwnProperty(n, api, prototype);
}
return prototype || api;
},
-mixin: function (target, source) {
-for (var i in source) {
-target[i] = source[i];
-}
-return target;
-},
copyOwnProperty: function (name, source, target) {
var pd = Object.getOwnPropertyDescriptor(source, name);
if (pd) {
@@ -522,7 +516,7 @@ debouncer.stop();
}
}
});
-Polymer.version = '1.0.5';
+Polymer.version = '1.0.4';
Polymer.Base._addFeature({
_registerFeatures: function () {
this._prepIs();
@@ -1070,8 +1064,8 @@ node._ownerShadyRoot = root;
return node._ownerShadyRoot;
},
_maybeDistribute: function (node, parent) {
-var fragContent = node.nodeType === Node.DOCUMENT_FRAGMENT_NODE && !node.__noContent && Polymer.dom(node).querySelector(CONTENT);
-var wrappedContent = fragContent && Polymer.dom(fragContent).parentNode.nodeType !== Node.DOCUMENT_FRAGMENT_NODE;
+var fragContent = node.nodeType === Node.DOCUMENT_FRAGMENT_NODE && node.querySelector(CONTENT);
+var wrappedContent = fragContent && fragContent.parentNode.nodeType !== Node.DOCUMENT_FRAGMENT_NODE;
var hasContent = fragContent || node.localName === CONTENT;
if (hasContent) {
var root = this._ownerShadyRootForNode(parent);
@@ -1133,7 +1127,7 @@ if (this._contains(container, content)) {
var dc$ = factory(content).getDistributedNodes();
for (var j = 0; j < dc$.length; j++) {
hostNeedsDist = true;
-var node = dc$[j];
+var node = dc$[i];
var parent = node.parentNode;
if (parent) {
removeFromComposedParent(parent, node);
@@ -1299,9 +1293,6 @@ this.domApi._distributeParent();
toggle: function () {
this.node.classList.toggle.apply(this.node.classList, arguments);
this.domApi._distributeParent();
-},
-contains: function () {
-return this.node.classList.contains.apply(this.node.classList, arguments);
}
};
if (!Settings.useShadow) {
@@ -1588,6 +1579,9 @@ factory: factory
Polymer.Base._addFeature({
_prepShady: function () {
this._useContent = this._useContent || Boolean(this._template);
+if (this._useContent) {
+this._template._hasInsertionPoint = this._template.content.querySelector('content');
+}
},
_poolContent: function () {
if (this._useContent) {
@@ -1607,7 +1601,7 @@ this.shadyRoot = this.root;
this.shadyRoot._distributionClean = false;
this.shadyRoot._isShadyRoot = true;
this.shadyRoot._dirtyRoots = [];
-this.shadyRoot._insertionPoints = !this._notes || this._notes._hasContent ? this.shadyRoot.querySelectorAll('content') : [];
+this.shadyRoot._insertionPoints = this._template._hasInsertionPoint ? this.shadyRoot.querySelectorAll('content') : [];
saveLightChildrenIfNeeded(this.shadyRoot);
this.shadyRoot.host = this;
},
@@ -1967,9 +1961,6 @@ var annote = {
bindings: [],
events: []
};
-if (element.localName === 'content') {
-list._hasContent = true;
-}
this._parseChildNodesAnnotations(element, annote, list);
if (element.attributes) {
this._parseNodeAttributeAnnotations(element, annote, list);
@@ -2805,55 +2796,50 @@ Gestures.setTouchAction(node, DIRECTION_MAP[direction] || 'auto');
});
Polymer.Gestures = Gestures;
}());
-Polymer.Async = {
-_currVal: 0,
-_lastVal: 0,
-_callbacks: [],
-_twiddleContent: 0,
-_twiddle: document.createTextNode(''),
-run: function (callback, waitTime) {
+Polymer.Async = function () {
+var currVal = 0;
+var lastVal = 0;
+var callbacks = [];
+var twiddle = document.createTextNode('');
+function runAsync(callback, waitTime) {
if (waitTime > 0) {
return ~setTimeout(callback, waitTime);
} else {
-this._twiddle.textContent = this._twiddleContent++;
-this._callbacks.push(callback);
-return this._currVal++;
+twiddle.textContent = currVal++;
+callbacks.push(callback);
+return currVal - 1;
}
-},
-cancel: function (handle) {
+}
+function cancelAsync(handle) {
if (handle < 0) {
clearTimeout(~handle);
} else {
-var idx = handle - this._lastVal;
+var idx = handle - lastVal;
if (idx >= 0) {
-if (!this._callbacks[idx]) {
+if (!callbacks[idx]) {
throw 'invalid async handle: ' + handle;
}
-this._callbacks[idx] = null;
+callbacks[idx] = null;
}
}
-},
-_atEndOfMicrotask: function () {
-var len = this._callbacks.length;
+}
+function atEndOfMicrotask() {
+var len = callbacks.length;
for (var i = 0; i < len; i++) {
-var cb = this._callbacks[i];
+var cb = callbacks[i];
if (cb) {
-try {
cb();
-} catch (e) {
-i++;
-this._callbacks.splice(0, i);
-this._lastVal += i;
-this._twiddle.textContent = this._twiddleContent++;
-throw e;
}
}
+callbacks.splice(0, len);
+lastVal += len;
}
-this._callbacks.splice(0, len);
-this._lastVal += len;
-}
+new (window.MutationObserver || JsMutationObserver)(atEndOfMicrotask).observe(twiddle, { characterData: true });
+return {
+run: runAsync,
+cancel: cancelAsync
};
-new (window.MutationObserver || JsMutationObserver)(Polymer.Async._atEndOfMicrotask.bind(Polymer.Async)).observe(Polymer.Async._twiddle, { characterData: true });
+}();
Polymer.Debounce = function () {
var Async = Polymer.Async;
var Debouncer = function (context) {
@@ -3008,6 +2994,11 @@ elt[n] = props[n];
}
}
return elt;
+},
+mixin: function (target, source) {
+for (var i in source) {
+target[i] = source[i];
+}
}
});
Polymer.Bind = {
@@ -3024,7 +3015,7 @@ _notifyChange: function (property) {
var eventName = Polymer.CaseMap.camelToDashCase(property) + '-changed';
this.fire(eventName, { value: this[property] }, { bubbles: false });
},
-_propertySetter: function (property, value, effects, fromAbove) {
+_propertySet: function (property, value, effects) {
var old = this.__data__[property];
if (old !== value && (old === old || value === value)) {
this.__data__[property] = value;
@@ -3035,25 +3026,16 @@ if (this._propertyChanged) {
this._propertyChanged(property, value, old);
}
if (effects) {
-this._effectEffects(property, value, effects, old, fromAbove);
+this._effectEffects(property, value, effects, old);
}
}
return old;
},
-__setProperty: function (property, value, quiet, node) {
-node = node || this;
-var effects = node._propertyEffects && node._propertyEffects[property];
-if (effects) {
-node._propertySetter(property, value, effects, quiet);
-} else {
-node[property] = value;
-}
-},
-_effectEffects: function (property, value, effects, old, fromAbove) {
+_effectEffects: function (property, value, effects, old) {
effects.forEach(function (fx) {
var fn = Polymer.Bind['_' + fx.kind + 'Effect'];
if (fn) {
-fn.call(this, property, value, fx.effect, old, fromAbove);
+fn.call(this, property, value, fx.effect, old);
}
}, this);
},
@@ -3111,7 +3093,7 @@ return this.__data__[property];
}
};
var setter = function (value) {
-this._propertySetter(property, value, effects);
+this._propertySet(property, value, effects);
};
if (model.getPropertyInfo && model.getPropertyInfo(property).readOnly) {
model['_set' + this.upper(property)] = setter;
@@ -3185,13 +3167,11 @@ return this._applyEffectValue(calc, effect);
_reflectEffect: function (source) {
this.reflectPropertyToAttribute(source);
},
-_notifyEffect: function (source, value, effect, old, fromAbove) {
-if (!fromAbove) {
+_notifyEffect: function (source) {
this._notifyChange(source);
-}
},
-_functionEffect: function (source, value, fn, old, fromAbove) {
-fn.call(this, source, value, old, fromAbove);
+_functionEffect: function (source, value, fn, old) {
+fn.call(this, source, value, old);
},
_observerEffect: function (source, value, effect, old) {
var fn = this[effect.method];
@@ -3217,7 +3197,7 @@ var args = Polymer.Bind._marshalArgs(this.__data__, effect, source, value);
if (args) {
var fn = this[effect.method];
if (fn) {
-this.__setProperty(effect.property, fn.apply(this, args));
+this[effect.property] = fn.apply(this, args);
} else {
this._warn(this._logf('_computeEffect', 'compute method `' + effect.method + '` not defined'));
}
@@ -3290,7 +3270,6 @@ if (prop.observer) {
this._addObserverEffect(p, prop.observer);
}
if (prop.computed) {
-prop.readOnly = true;
this._addComputedEffect(p, prop.computed);
}
if (prop.notify) {
@@ -3481,13 +3460,12 @@ this._configure();
},
_configure: function () {
this._configureAnnotationReferences();
-this._aboveConfig = this.mixin({}, this._config);
var config = {};
this.behaviors.forEach(function (b) {
this._configureProperties(b.properties, config);
}, this);
this._configureProperties(this.properties, config);
-this._mixinConfigure(config, this._aboveConfig);
+this._mixinConfigure(config, this._config);
this._config = config;
this._distributeConfig(this._config);
},
@@ -3531,13 +3509,18 @@ node._configValue(x.effect.name, value);
},
_afterClientsReady: function () {
this._executeStaticEffects();
-this._applyConfig(this._config, this._aboveConfig);
+this._applyConfig(this._config);
this._flushHandlers();
},
-_applyConfig: function (config, aboveConfig) {
+_applyConfig: function (config) {
for (var n in config) {
if (this[n] === undefined) {
-this.__setProperty(n, config[n], n in aboveConfig);
+var effects = this._propertyEffects[n];
+if (effects) {
+this._propertySet(n, config[n], effects);
+} else {
+this[n] = config[n];
+}
}
}
},
@@ -3566,7 +3549,7 @@ h[0].call(this, h[1], h[2]);
'use strict';
Polymer.Base._addFeature({
notifyPath: function (path, value, fromAbove) {
-var old = this._propertySetter(path, value);
+var old = this._propertySet(path, value);
if (old !== value && (old === old || value === value)) {
this._pathEffector(path, value);
if (!fromAbove) {
@@ -3604,15 +3587,6 @@ return;
}
array = Array.isArray(prop) ? prop : null;
}
-if (array) {
-var coll = Polymer.Collection.get(array);
-var old = prop[last];
-var key = coll.getKey(old);
-if (key) {
-parts[i] = key;
-coll.setItem(key, value);
-}
-}
prop[last] = value;
if (!root) {
this.notifyPath(parts.join('.'), value);
@@ -3766,8 +3740,9 @@ return ret;
splice: function (path, start, deleteCount) {
var array = this.get(path);
var args = Array.prototype.slice.call(arguments, 1);
+var rem = array.slice(start, start + deleteCount);
var ret = array.splice.apply(array, args);
-this._notifySplice(array, path, start, args.length - 2, ret);
+this._notifySplice(array, path, start, args.length - 2, rem);
return ret;
},
shift: function (path) {
@@ -3915,10 +3890,10 @@ var AT_START = '@';
var rx = {
comments: /\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,
port: /@import[^;]*;/gim,
-customProp: /(?:^|[\s;])--[^;{]*?:[^{};]*?(?:[;\n]|$)/gim,
-mixinProp: /(?:^|[\s;])--[^;{]*?:[^{;]*?{[^}]*?}(?:[;\n]|$)?/gim,
-mixinApply: /@apply[\s]*\([^)]*?\)[\s]*(?:[;\n]|$)?/gim,
-varApply: /[^;:]*?:[^;]*var[^;]*(?:[;\n]|$)?/gim,
+customProp: /(?:^|[\s;])--[^;{]*?:[^{};]*?;/gim,
+mixinProp: /(?:^|[\s;])--[^;{]*?:[^{;]*?{[^}]*?};?/gim,
+mixinApply: /@apply[\s]*\([^)]*?\)[\s]*;/gim,
+varApply: /[^;:]*?:[^;]*var[^;]*;/gim,
keyframesRule: /^@[^\s]*keyframes/
};
return api;
@@ -4094,33 +4069,25 @@ rule.selector = p$.join(COMPLEX_SELECTOR_SEP);
},
_transformComplexSelector: function (selector, scope, hostScope) {
var stop = false;
-var hostContext = false;
var self = this;
selector = selector.replace(SIMPLE_SELECTOR_SEP, function (m, c, s) {
if (!stop) {
-var info = self._transformCompoundSelector(s, c, scope, hostScope);
-stop = stop || info.stop;
-hostContext = hostContext || info.hostContext;
-c = info.combinator;
-s = info.value;
+var o = self._transformCompoundSelector(s, c, scope, hostScope);
+if (o.stop) {
+stop = true;
+}
+c = o.combinator;
+s = o.value;
} else {
s = s.replace(SCOPE_JUMP, ' ');
}
return c + s;
});
-if (hostContext) {
-selector = selector.replace(HOST_CONTEXT_PAREN, function (m, pre, paren, post) {
-return pre + paren + ' ' + hostScope + post + COMPLEX_SELECTOR_SEP + ' ' + pre + hostScope + paren + post;
-});
-}
return selector;
},
_transformCompoundSelector: function (selector, combinator, scope, hostScope) {
var jumpIndex = selector.search(SCOPE_JUMP);
-var hostContext = false;
-if (selector.indexOf(HOST_CONTEXT) >= 0) {
-hostContext = true;
-} else if (selector.indexOf(HOST) >= 0) {
+if (selector.indexOf(HOST) >= 0) {
selector = selector.replace(HOST_PAREN, function (m, host, paren) {
return hostScope + paren;
});
@@ -4139,8 +4106,7 @@ stop = true;
return {
value: selector,
combinator: combinator,
-stop: stop,
-hostContext: hostContext
+stop: stop
};
},
_transformSimpleSelector: function (selector, scope) {
@@ -4172,8 +4138,6 @@ var SIMPLE_SELECTOR_SEP = /(^|[\s>+~]+)([^\s>+~]+)/g;
var HOST = ':host';
var ROOT = ':root';
var HOST_PAREN = /(\:host)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/g;
-var HOST_CONTEXT = ':host-context';
-var HOST_CONTEXT_PAREN = /(.*)(?:\:host-context)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))(.*)/;
var CONTENT = '::content';
var SCOPE_JUMP = /\:\:content|\:\:shadow|\/deep\//;
var CSS_CLASS_PREFIX = '.';
@@ -4554,7 +4518,7 @@ var cssText = style ? style.textContent || '' : this.transformStyles(element, pr
var s = element._customStyle;
if (s && !nativeShadow && s !== style) {
s._useCount--;
-if (s._useCount <= 0 && s.parentNode) {
+if (s._useCount <= 0) {
s.parentNode.removeChild(s);
}
}
@@ -4575,23 +4539,14 @@ element._customStyle = style;
}
return style;
},
-mixinCustomStyle: function (props, customStyle) {
-var v;
-for (var i in customStyle) {
-v = customStyle[i];
-if (v || v === 0) {
-props[i] = v;
-}
-}
-},
rx: {
-VAR_ASSIGN: /(?:^|[;\n]\s*)(--[\w-]*?):\s*?(?:([^;{]*?)|{([^}]*)})(?:(?=[;\n])|$)/gim,
-MIXIN_MATCH: /(?:^|\W+)@apply[\s]*\(([^)]*)\)/im,
+VAR_ASSIGN: /(?:^|;\s*)(--[^\:;]*?):\s*?(?:([^;{]*?)|{([^}]*)})(?=;)/gim,
+MIXIN_MATCH: /(?:^|\W+)@apply[\s]*\(([^)]*)\);?/im,
VAR_MATCH: /(^|\W+)var\([\s]*([^,)]*)[\s]*,?[\s]*((?:[^,)]*)|(?:[^;]*\([^;)]*\)))[\s]*?\)/gim,
VAR_CAPTURE: /\([\s]*(--[^,\s)]*)(?:,[\s]*(--[^,\s)]*))?(?:\)|,)/gim,
IS_VAR: /^--/,
BRACKETED: /\{[^}]*\}/g,
-HOST_PREFIX: '(?:^|[^.#[:])',
+HOST_PREFIX: '(?:^|[^.])',
HOST_SUFFIX: '($|[.:[\\s>+~])'
},
HOST_SELECTORS: [':host'],
@@ -4604,6 +4559,41 @@ var v = 1 << n % 32;
bits[o] = (bits[o] || 0) | v;
}
}();
+Polymer.StyleDefaults = function () {
+var styleProperties = Polymer.StyleProperties;
+var styleUtil = Polymer.StyleUtil;
+var api = {
+_styles: [],
+_properties: null,
+addStyle: function (style) {
+this._styles.push(style);
+this._properties = null;
+},
+get _styleProperties() {
+if (!this._properties) {
+styleProperties.decorateStyles(this._styles);
+this._styles._scopeStyleProperties = null;
+this._properties = styleProperties.scopePropertiesFromStyles(this._styles);
+styleProperties.reify(this._properties);
+}
+return this._properties;
+},
+_needsStyleProperties: function () {
+},
+_computeStyleProperties: function () {
+return this._styleProperties;
+},
+updateStyles: function () {
+this._styleCache.clear();
+for (var i = 0, s; i < this._styles.length; i++) {
+s = this._styles[i];
+s = s.__importElement || s;
+s._apply();
+}
+}
+};
+return api;
+}();
(function () {
Polymer.StyleCache = function () {
this.cache = {};
@@ -4634,10 +4624,8 @@ clear: function () {
this.cache = {};
},
_objectsEqual: function (target, source) {
-var t, s;
for (var i in target) {
-t = target[i], s = source[i];
-if (!(typeof t === 'object' && t ? this._objectsStrictlyEqual(t, s) : t === s)) {
+if (target[i] !== source[i]) {
return false;
}
}
@@ -4645,55 +4633,9 @@ if (Array.isArray(target)) {
return target.length === source.length;
}
return true;
-},
-_objectsStrictlyEqual: function (target, source) {
-return this._objectsEqual(target, source) && this._objectsEqual(source, target);
}
};
}());
-Polymer.StyleDefaults = function () {
-var styleProperties = Polymer.StyleProperties;
-var styleUtil = Polymer.StyleUtil;
-var StyleCache = Polymer.StyleCache;
-var api = {
-_styles: [],
-_properties: null,
-customStyle: {},
-_styleCache: new StyleCache(),
-addStyle: function (style) {
-this._styles.push(style);
-this._properties = null;
-},
-get _styleProperties() {
-if (!this._properties) {
-styleProperties.decorateStyles(this._styles);
-this._styles._scopeStyleProperties = null;
-this._properties = styleProperties.scopePropertiesFromStyles(this._styles);
-styleProperties.mixinCustomStyle(this._properties, this.customStyle);
-styleProperties.reify(this._properties);
-}
-return this._properties;
-},
-_needsStyleProperties: function () {
-},
-_computeStyleProperties: function () {
-return this._styleProperties;
-},
-updateStyles: function (properties) {
-this._properties = null;
-if (properties) {
-Polymer.Base.mixin(this.customStyle, properties);
-}
-this._styleCache.clear();
-for (var i = 0, s; i < this._styles.length; i++) {
-s = this._styles[i];
-s = s.__importElement || s;
-s._apply();
-}
-}
-};
-return api;
-}();
(function () {
'use strict';
var serializeValueToAttribute = Polymer.Base.serializeValueToAttribute;
@@ -4723,7 +4665,6 @@ if (!scope._styleCache) {
scope._styleCache = new Polymer.StyleCache();
}
var scopeData = propertyUtils.propertyDataFromStyles(scope._styles, this);
-scopeData.key.customStyle = this.customStyle;
info = scope._styleCache.retrieve(this.is, scopeData.key, this._styles);
var scopeCached = Boolean(info);
if (scopeCached) {
@@ -4738,14 +4679,15 @@ info = styleCache.retrieve(this.is, this._ownStyleProperties, this._styles);
var globalCached = Boolean(info) && !scopeCached;
var style = this._applyStyleProperties(info);
if (!scopeCached) {
-style = style && nativeShadow ? style.cloneNode(true) : style;
+var cacheableStyle = style;
+if (nativeShadow) {
+cacheableStyle = style.cloneNode ? style.cloneNode(true) : Object.create(style || null);
+}
info = {
-style: style,
+style: cacheableStyle,
_scopeSelector: this._scopeSelector,
_styleProperties: this._styleProperties
};
-scopeData.key.customStyle = {};
-this.mixin(scopeData.key.customStyle, this.customStyle);
scope._styleCache.store(this.is, info, scopeData.key, this._styles);
if (!globalCached) {
styleCache.store(this.is, Object.create(info), this._ownStyleProperties, this._styles);
@@ -4762,7 +4704,7 @@ this.mixin(props, propertyUtils.hostPropertiesFromStyles(this._styles));
scopeProps = scopeProps || propertyUtils.propertyDataFromStyles(scope._styles, this).properties;
this.mixin(props, scopeProps);
this.mixin(props, propertyUtils.scopePropertiesFromStyles(this._styles));
-propertyUtils.mixinCustomStyle(props, this.customStyle);
+this.mixin(props, this.customStyle);
propertyUtils.reify(props);
this._styleProperties = props;
},
@@ -4779,10 +4721,10 @@ _applyStyleProperties: function (info) {
var oldScopeSelector = this._scopeSelector;
this._scopeSelector = info ? info._scopeSelector : this.is + '-' + this.__proto__._scopeCount++;
var style = propertyUtils.applyElementStyle(this, this._styleProperties, this._scopeSelector, info && info.style);
-if (!nativeShadow) {
+if ((style || oldScopeSelector) && !nativeShadow) {
propertyUtils.applyElementScopeSelector(this, this._scopeSelector, oldScopeSelector, this._scopeCssViaAttr);
}
-return style;
+return style || {};
},
serializeValueToAttribute: function (value, attribute, node) {
node = node || this;
@@ -4801,11 +4743,8 @@ selector += (selector ? ' ' : '') + SCOPE_NAME + ' ' + this.is + (element._scope
}
return selector;
},
-updateStyles: function (properties) {
+updateStyles: function () {
if (this.isAttached) {
-if (properties) {
-this.mixin(this.customStyle, properties);
-}
if (this._needsStyleProperties()) {
this._updateStyleProperties();
} else {
@@ -4829,8 +4768,8 @@ c.updateStyles();
}
}
});
-Polymer.updateStyles = function (properties) {
-styleDefaults.updateStyles(properties);
+Polymer.updateStyles = function () {
+styleDefaults.updateStyles();
Polymer.Base._updateRootStyles(document);
};
var styleCache = new Polymer.StyleCache();
@@ -4991,9 +4930,6 @@ var parentProps = archetype._parentProps;
for (var prop in parentProps) {
archetype._addPropertyEffect(prop, 'function', this._createHostPropEffector(prop));
}
-for (var prop in this._instanceProps) {
-archetype._addPropertyEffect(prop, 'function', this._createInstancePropEffector(prop));
-}
},
_customPrepAnnotations: function (archetype, template) {
archetype._template = template;
@@ -5052,27 +4988,18 @@ return function (source, value) {
this.dataHost['_parent_' + prop] = value;
};
},
-_createInstancePropEffector: function (prop) {
-return function (source, value, old, fromAbove) {
-if (!fromAbove) {
-this.dataHost._forwardInstanceProp(this, prop, value);
-}
-};
-},
_extendTemplate: function (template, proto) {
Object.getOwnPropertyNames(proto).forEach(function (n) {
var val = template[n];
var pd = Object.getOwnPropertyDescriptor(proto, n);
Object.defineProperty(template, n, pd);
if (val !== undefined) {
-template._propertySetter(n, val);
+template._propertySet(n, val);
}
});
},
_forwardInstancePath: function (inst, path, value) {
},
-_forwardInstanceProp: function (inst, prop, value) {
-},
_notifyPathImpl: function (path, value) {
var dataHost = this.dataHost;
var dot = path.indexOf('.');
@@ -5095,7 +5022,6 @@ this._rootDataHost = host._getRootDataHost();
this._setupConfigure(model);
this._pushHost(host);
this.root = this.instanceTemplate(this._template);
-this.root.__noContent = !this._notes._hasContent;
this.root.__styleScoped = true;
this._popHost();
this._marshalAnnotatedNodes();
@@ -5200,17 +5126,8 @@ return this.pmap[item];
getKeys: function () {
return Object.keys(this.store);
},
-setItem: function (key, item) {
-var old = this.store[key];
-if (old) {
-this._removeFromMap(old);
-}
-if (item && typeof item == 'object') {
-this.omap.set(item, key);
-} else {
-this.pmap[item] = key;
-}
-this.store[key] = item;
+setItem: function (key, value) {
+this.store[key] = value;
},
getItem: function (key) {
return this.store[key];
@@ -5372,7 +5289,7 @@ return;
},
render: function () {
this._fullRefresh = true;
-this._debounceTemplate(this._render);
+this.debounce('render', this._render);
this._flushTemplates();
},
_render: function () {
@@ -5404,9 +5321,9 @@ rowForKey[key] = i;
if (!row) {
this.rows.push(row = this._insertRow(i, null, item));
}
-row.__setProperty(this.as, item, true);
-row.__setProperty('__key__', key, true);
-row.__setProperty(this.indexAs, i, true);
+row[this.as] = item;
+row.__key__ = key;
+row[this.indexAs] = i;
}
for (; i < this.rows.length; i++) {
this._detachRow(i);
@@ -5571,26 +5488,16 @@ c._hideTemplateChildren = hidden;
}
}
},
-_forwardInstanceProp: function (row, prop, value) {
-if (prop == this.as) {
-var idx;
-if (this._sortFn || this._filterFn) {
-idx = this.items.indexOf(this.collection.getItem(row.__key__));
-} else {
-idx = row[this.indexAs];
-}
-this.set('items.' + idx, value);
-}
-},
_forwardInstancePath: function (row, path, value) {
if (path.indexOf(this.as + '.') === 0) {
this.notifyPath('items.' + row.__key__ + '.' + path.slice(this.as.length + 1), value);
+return true;
}
},
_forwardParentProp: function (prop, value) {
if (this.rows) {
this.rows.forEach(function (row) {
-row.__setProperty(prop, value, true);
+row[prop] = value;
}, this);
}
},
@@ -5612,7 +5519,7 @@ if (dot >= 0) {
path = this.as + '.' + path.substring(dot + 1);
row.notifyPath(path, value, true);
} else {
-row.__setProperty(this.as, value, true);
+row[this.as] = value;
}
}
}
@@ -5720,16 +5627,15 @@ extends: 'template',
properties: {
'if': {
type: Boolean,
-value: false,
-observer: '_queueRender'
+value: false
},
restamp: {
type: Boolean,
-value: false,
-observer: '_queueRender'
+value: false
}
},
behaviors: [Polymer.Templatizer],
+observers: ['_queueRender(if, restamp)'],
_queueRender: function () {
this._debounceTemplate(this._render);
},
@@ -5897,6 +5803,7 @@ this._removeChildren();
}
});
+
diff --git a/homeassistant/components/frontend/www_static/polymer/more-infos/more-info-light.html b/homeassistant/components/frontend/www_static/polymer/more-infos/more-info-light.html
index 5865dc8380a..702eb5fd354 100644
--- a/homeassistant/components/frontend/www_static/polymer/more-infos/more-info-light.html
+++ b/homeassistant/components/frontend/www_static/polymer/more-infos/more-info-light.html
@@ -27,7 +27,7 @@
max-height: 40px;
}
- .has-xy_color color-picker {
+ .has-xy_color ha-color-picker {
max-height: 500px;
}