From 5550c89a8684b968f60f7e0bcf2936f97f081a1e Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 6 Jul 2015 10:07:12 -0700 Subject: [PATCH] Another frontend color picker fix --- homeassistant/components/frontend/version.py | 2 +- .../frontend/www_static/frontend.html | 686 +++++++----------- .../polymer/more-infos/more-info-light.html | 2 +- 3 files changed, 283 insertions(+), 407 deletions(-) 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; }