diff --git a/build-scripts/bundle.js b/build-scripts/bundle.js
index 1183a5ce06..dc4b59b02a 100644
--- a/build-scripts/bundle.js
+++ b/build-scripts/bundle.js
@@ -52,6 +52,7 @@ module.exports.terserOptions = (latestBuild) => ({
module.exports.babelOptions = ({ latestBuild }) => ({
babelrc: false,
+ compact: false,
presets: [
!latestBuild && [
"@babel/preset-env",
@@ -79,12 +80,6 @@ module.exports.babelOptions = ({ latestBuild }) => ({
].filter(Boolean),
});
-// Are already ES5, cause warnings when babelified.
-module.exports.babelExclude = () => [
- require.resolve("@mdi/js/mdi.js"),
- require.resolve("hls.js"),
-];
-
const outputPath = (outputRoot, latestBuild) =>
path.resolve(outputRoot, latestBuild ? "frontend_latest" : "frontend_es5");
diff --git a/build-scripts/rollup.js b/build-scripts/rollup.js
index 7d9cf93046..f57e9f7e64 100644
--- a/build-scripts/rollup.js
+++ b/build-scripts/rollup.js
@@ -57,7 +57,6 @@ const createRollupConfig = ({
babel({
...bundle.babelOptions({ latestBuild }),
extensions,
- exclude: bundle.babelExclude(),
babelHelpers: isWDS ? "inline" : "bundled",
}),
string({
diff --git a/build-scripts/webpack.js b/build-scripts/webpack.js
index fe025abac2..3dcac91de9 100644
--- a/build-scripts/webpack.js
+++ b/build-scripts/webpack.js
@@ -47,7 +47,6 @@ const createWebpackConfig = ({
rules: [
{
test: /\.m?js$|\.ts$/,
- exclude: bundle.babelExclude(),
use: {
loader: "babel-loader",
options: bundle.babelOptions({ latestBuild }),
diff --git a/hassio/src/components/supervisor-snapshot-content.ts b/hassio/src/components/supervisor-snapshot-content.ts
index 8c87976329..2d95864d33 100644
--- a/hassio/src/components/supervisor-snapshot-content.ts
+++ b/hassio/src/components/supervisor-snapshot-content.ts
@@ -44,6 +44,9 @@ const _computeFolders = (folders): CheckboxItem[] => {
if (folders.includes("share")) {
list.push({ slug: "share", name: "Share", checked: false });
}
+ if (folders.includes("media")) {
+ list.push({ slug: "media", name: "Media", checked: false });
+ }
if (folders.includes("addons/local")) {
list.push({ slug: "addons/local", name: "Local add-ons", checked: false });
}
diff --git a/hassio/src/ingress-view/hassio-ingress-view.ts b/hassio/src/ingress-view/hassio-ingress-view.ts
index 710cf3b5e3..24d050acb9 100644
--- a/hassio/src/ingress-view/hassio-ingress-view.ts
+++ b/hassio/src/ingress-view/hassio-ingress-view.ts
@@ -97,16 +97,23 @@ class HassioIngressView extends LitElement {
title: requestedAddon,
});
await nextRender();
- history.back();
+ navigate("/hassio/store", { replace: true });
return;
}
- if (!addonInfo.ingress) {
+ if (!addonInfo.version) {
+ await showAlertDialog(this, {
+ text: this.supervisor.localize("my.error_addon_not_installed"),
+ title: addonInfo.name,
+ });
+ await nextRender();
+ navigate(`/hassio/addon/${addonInfo.slug}/info`, { replace: true });
+ } else if (!addonInfo.ingress) {
await showAlertDialog(this, {
text: this.supervisor.localize("my.error_addon_no_ingress"),
title: addonInfo.name,
});
await nextRender();
- history.back();
+ navigate(`/hassio/addon/${addonInfo.slug}/info`, { replace: true });
} else {
navigate(`/hassio/ingress/${addonInfo.slug}`, { replace: true });
}
diff --git a/lint-staged.config.js b/lint-staged.config.js
index 15d6269cbc..2c08d7e620 100644
--- a/lint-staged.config.js
+++ b/lint-staged.config.js
@@ -1,5 +1,4 @@
module.exports = {
- "*.ts": () => "tsc -p tsconfig.json",
"*.{js,ts}": "eslint --fix",
"!(/translations)*.{js,ts,json,css,md,html}": "prettier --write",
};
diff --git a/package.json b/package.json
index c316946391..e54c178377 100644
--- a/package.json
+++ b/package.json
@@ -108,7 +108,7 @@
"fecha": "^4.2.0",
"fuse.js": "^6.0.0",
"google-timezones-json": "^1.0.2",
- "hls.js": "^1.0.4",
+ "hls.js": "^1.0.5",
"home-assistant-js-websocket": "^5.10.0",
"idb-keyval": "^5.0.5",
"intl-messageformat": "^9.6.16",
diff --git a/setup.py b/setup.py
index 972990e191..cdb54db937 100644
--- a/setup.py
+++ b/setup.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
setup(
name="home-assistant-frontend",
- version="20210601.1",
+ version="20210603.0",
description="The Home Assistant frontend",
url="https://github.com/home-assistant/home-assistant-polymer",
author="The Home Assistant Authors",
diff --git a/src/common/search/search-input.ts b/src/common/search/search-input.ts
index bde0c9ab5c..5a45277a0e 100644
--- a/src/common/search/search-input.ts
+++ b/src/common/search/search-input.ts
@@ -1,9 +1,16 @@
import "@material/mwc-icon-button/mwc-icon-button";
import { mdiClose, mdiMagnify } from "@mdi/js";
import "@polymer/paper-input/paper-input";
-import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
-import { customElement, property } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
+import type { PaperInputElement } from "@polymer/paper-input/paper-input";
+import {
+ css,
+ CSSResultGroup,
+ html,
+ LitElement,
+ PropertyValues,
+ TemplateResult,
+} from "lit";
+import { customElement, property, query } from "lit/decorators";
import "../../components/ha-svg-icon";
import { fireEvent } from "../dom/fire_event";
@@ -27,18 +34,11 @@ class SearchInput extends LitElement {
this.shadowRoot!.querySelector("paper-input")!.focus();
}
+ @query("paper-input", true) private _input!: PaperInputElement;
+
protected render(): TemplateResult {
return html`
-
;
+
@customElement("ha-hls-player")
class HaHLSPlayer extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
@@ -39,7 +44,7 @@ class HaHLSPlayer extends LitElement {
@state() private _attached = false;
- private _hlsPolyfillInstance?: HlsType;
+ private _hlsPolyfillInstance?: HlsLite;
private _useExoPlayer = false;
@@ -103,7 +108,8 @@ class HaHLSPlayer extends LitElement {
const useExoPlayerPromise = this._getUseExoPlayer();
const masterPlaylistPromise = fetch(this.url);
- const Hls = (await import("hls.js")).default;
+ const Hls: typeof HlsType = (await import("hls.js/dist/hls.light.min.js"))
+ .default;
let hlsSupported = Hls.isSupported();
if (!hlsSupported) {
@@ -182,7 +188,7 @@ class HaHLSPlayer extends LitElement {
url: string
) {
const hls = new Hls({
- liveBackBufferLength: 60,
+ backBufferLength: 60,
fragLoadingTimeOut: 30000,
manifestLoadingTimeOut: 30000,
levelLoadingTimeOut: 30000,
diff --git a/src/html/authorize.html.template b/src/html/authorize.html.template
index 1cf1c7bba4..555aea9e0e 100644
--- a/src/html/authorize.html.template
+++ b/src/html/authorize.html.template
@@ -48,6 +48,9 @@
window.providersPromise = fetch("/auth/providers", {
credentials: "same-origin",
});
+ if (!window.globalThis) {
+ window.globalThis = window;
+ }