diff --git a/bower.json b/bower.json index 176983a22d..54557132fe 100644 --- a/bower.json +++ b/bower.json @@ -8,11 +8,11 @@ "license": "MIT", "private": true, "devDependencies": { - "polymer": "Polymer/polymer#~1.2.3", + "polymer": "Polymer/polymer#~1.2.4", "pikaday": "1.4", "leaflet-map": "1.2.0", - "iron-elements": "PolymerElements/iron-elements#~1.0.7", + "iron-elements": "PolymerElements/iron-elements#~1.0.8", "paper-elements": "PolymerElements/paper-elements#~1.0.7", - "google-apis": "GoogleWebComponents/google-apis#~1.1.3" + "google-apis": "GoogleWebComponents/google-apis#~1.1.4" } } diff --git a/package.json b/package.json index 0148190fd5..60fa95262c 100644 --- a/package.json +++ b/package.json @@ -20,9 +20,9 @@ "author": "Paulus Schoutsen (http://paulusschoutsen.nl)", "license": "MIT", "dependencies": { - "home-assistant-js": "git+https://github.com/balloob/home-assistant-js.git#12d633c5d643172aa630e95d64ab5656a81a4ad4", + "home-assistant-js": "git+https://github.com/balloob/home-assistant-js.git#f397463bb72042c21b2026aa177b49c3b9d3d359", "lodash": "^3.10.0", - "moment": "^2.11.1" + "moment": "^2.11.2" }, "devDependencies": { "babel-core": "^6.4", @@ -33,11 +33,11 @@ "babel-plugin-transform-export-extensions": "^6.4.0", "babel-plugin-transform-object-rest-spread": "^6.3.13", "babel-preset-es2015": "^6.3.13", - "bower": "^1.7.2", + "bower": "^1.7.7", "eslint": "^1.10.3", - "eslint-config-airbnb": "^3.1.0", + "eslint-config-airbnb": "^5.0.0", "html-minifier": "^1.1.1", - "vulcanize": "^1.14.0", + "vulcanize": "^1.14.5", "webpack": "^1.12" } } diff --git a/src/components/entity/state-badge.js b/src/components/entity/state-badge.js index a4058545d7..72c95575a4 100644 --- a/src/components/entity/state-badge.js +++ b/src/components/entity/state-badge.js @@ -21,7 +21,7 @@ export default new Polymer({ if (newVal.domain === 'light' && newVal.state === 'on' && newVal.attributes.rgb_color && newVal.attributes.rgb_color.reduce((cur, tot) => cur + tot, 0) < 730) { - this.$.icon.style.color = 'rgb(' + newVal.attributes.rgb_color.join(',') + ')'; + this.$.icon.style.color = `rgb(${newVal.attributes.rgb_color.join(',')})`; } else { this.$.icon.style.color = null; } diff --git a/src/components/ha-sidebar.js b/src/components/ha-sidebar.js index 4b68cbe34d..aa200c9dad 100644 --- a/src/components/ha-sidebar.js +++ b/src/components/ha-sidebar.js @@ -44,6 +44,10 @@ export default new Polymer({ }, selectedChanged(newVal) { + if (document.activeElement) { + document.activeElement.blur(); + } + const menuItems = this.querySelectorAll('.menu [data-panel]'); for (let idx = 0; idx < menuItems.length; idx++) { diff --git a/src/layouts/partial-dev-call-service.js b/src/layouts/partial-dev-call-service.js index 5b6853f61e..a22e1c1ce5 100644 --- a/src/layouts/partial-dev-call-service.js +++ b/src/layouts/partial-dev-call-service.js @@ -75,6 +75,6 @@ export default new Polymer({ }, computeFormClasses(narrow) { - return 'layout ' + (narrow ? 'vertical' : 'horizontal'); + return `layout ${narrow ? 'vertical' : 'horizontal'}`; }, }); diff --git a/src/layouts/partial-dev-fire-event.js b/src/layouts/partial-dev-fire-event.js index 863e1d4923..1241f2de4e 100644 --- a/src/layouts/partial-dev-fire-event.js +++ b/src/layouts/partial-dev-fire-event.js @@ -52,6 +52,6 @@ export default new Polymer({ }, computeFormClasses(narrow) { - return 'layout ' + (narrow ? 'vertical' : 'horizontal'); + return `layout ${narrow ? 'vertical' : 'horizontal'}`; }, }); diff --git a/src/layouts/partial-dev-set-state.js b/src/layouts/partial-dev-set-state.js index 7bd37f3e6e..dbdbe03ed9 100644 --- a/src/layouts/partial-dev-set-state.js +++ b/src/layouts/partial-dev-set-state.js @@ -73,6 +73,6 @@ export default new Polymer({ }, computeFormClasses(narrow) { - return 'layout ' + (narrow ? 'vertical' : 'horizontal'); + return `layout ${narrow ? 'vertical' : 'horizontal'}`; }, }); diff --git a/src/layouts/partial-dev-template.js b/src/layouts/partial-dev-template.js index 37881f60e6..9f5a8e4355 100644 --- a/src/layouts/partial-dev-template.js +++ b/src/layouts/partial-dev-template.js @@ -67,7 +67,7 @@ export default new Polymer({ }, computeFormClasses(narrow) { - return 'content fit layout ' + (narrow ? 'vertical' : 'horizontal'); + return `content fit layout ${narrow ? 'vertical' : 'horizontal'}`; }, computeRenderedClasses(error) { diff --git a/src/layouts/partial-history.js b/src/layouts/partial-history.js index f5681b1cbe..dafd21b86d 100644 --- a/src/layouts/partial-history.js +++ b/src/layouts/partial-history.js @@ -75,6 +75,6 @@ export default new Polymer({ }, computeContentClasses(narrow) { - return 'flex content ' + (narrow ? 'narrow' : 'wide'); + return `flex content ${narrow ? 'narrow' : 'wide'}`; }, }); diff --git a/src/more-infos/more-info-content.js b/src/more-infos/more-info-content.js index 131fc1557f..f87470c510 100644 --- a/src/more-infos/more-info-content.js +++ b/src/more-infos/more-info-content.js @@ -54,7 +54,7 @@ export default new Polymer({ root.removeChild(root.lastChild); } - const moreInfo = document.createElement('more-info-' + newMoreInfoType); + const moreInfo = document.createElement(`more-info-${newMoreInfoType}`); moreInfo.stateObj = newVal; moreInfo.dialogOpen = this.dialogOpen; root.appendChild(moreInfo); diff --git a/src/service-worker/index.js b/src/service-worker/index.js index a9afb7fe61..fb8bf4130f 100644 --- a/src/service-worker/index.js +++ b/src/service-worker/index.js @@ -51,15 +51,13 @@ self.addEventListener('fetch', event => { } event.respondWith( - caches.open(CACHE).then(cache => { - return cache.match(INDEX_CACHE_URL).then(cachedResponse => { - const networkFetch = fetch(event.request).then(response => { + caches.open(CACHE).then(cache => + cache.match(INDEX_CACHE_URL).then(cachedResponse => + cachedResponse || fetch(event.request).then(response => { cache.put(INDEX_CACHE_URL, response.clone()); return response; - }); - - return cachedResponse || networkFetch; - }); - }) + }) + ) + ) ); }); diff --git a/src/util/attribute-class-names.js b/src/util/attribute-class-names.js index e30c46ad04..5e16c14ee8 100644 --- a/src/util/attribute-class-names.js +++ b/src/util/attribute-class-names.js @@ -1,6 +1,6 @@ export default function attributeClassNames(stateObj, attributes) { if (!stateObj) return ''; return attributes.map( - (attribute) => attribute in stateObj.attributes ? 'has-' + attribute : '' + (attribute) => attribute in stateObj.attributes ? `has-${attribute}` : '' ).join(' '); } diff --git a/src/util/domain-icon.js b/src/util/domain-icon.js index 1935d2ab10..8c18986156 100644 --- a/src/util/domain-icon.js +++ b/src/util/domain-icon.js @@ -39,12 +39,8 @@ export default function domainIcon(domain, state) { return state && state === 'unlocked' ? 'mdi:lock-open' : 'mdi:lock'; case 'media_player': - let icon = 'mdi:cast'; - if (state && state !== 'off' && state !== 'idle') { - icon += '-connected'; - } - - return icon; + return state && state !== 'off' && state !== 'idle' ? + 'mdi:cast-connected' : 'mdi:cast'; case 'notify': return 'mdi:comment-alert';