Inline mdi icons with babel plugin + bump build deps (#9498)
parent
e8b53a619d
commit
2e16127fde
|
@ -11,7 +11,8 @@ on:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
env:
|
env:
|
||||||
NODE_VERSION: 12
|
NODE_VERSION: 14
|
||||||
|
NODE_OPTIONS: --max_old_space_size=4096
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
lint:
|
lint:
|
||||||
|
|
|
@ -6,7 +6,7 @@ on:
|
||||||
- dev
|
- dev
|
||||||
|
|
||||||
env:
|
env:
|
||||||
NODE_VERSION: 12
|
NODE_VERSION: 14
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
deploy:
|
deploy:
|
||||||
|
|
|
@ -7,7 +7,8 @@ on:
|
||||||
|
|
||||||
env:
|
env:
|
||||||
PYTHON_VERSION: 3.8
|
PYTHON_VERSION: 3.8
|
||||||
NODE_VERSION: 12.1
|
NODE_VERSION: 14
|
||||||
|
NODE_OPTIONS: --max_old_space_size=4096
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
release:
|
release:
|
||||||
|
|
|
@ -8,7 +8,7 @@ on:
|
||||||
- src/translations/en.json
|
- src/translations/en.json
|
||||||
|
|
||||||
env:
|
env:
|
||||||
NODE_VERSION: 12
|
NODE_VERSION: 14
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
upload:
|
upload:
|
||||||
|
|
|
@ -0,0 +1,170 @@
|
||||||
|
/* eslint-disable @typescript-eslint/no-var-requires */
|
||||||
|
const path = require("path");
|
||||||
|
|
||||||
|
// Currently only supports CommonJS modules, as require is synchronous. `import` would need babel running asynchronous.
|
||||||
|
module.exports = function inlineConstants(babel, options, cwd) {
|
||||||
|
const t = babel.types;
|
||||||
|
|
||||||
|
if (!Array.isArray(options.modules)) {
|
||||||
|
throw new TypeError(
|
||||||
|
"babel-plugin-inline-constants: expected a `modules` array to be passed"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (options.resolveExtensions && !Array.isArray(options.resolveExtensions)) {
|
||||||
|
throw new TypeError(
|
||||||
|
"babel-plugin-inline-constants: expected `resolveExtensions` to be an array"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const ignoreModuleNotFound = options.ignoreModuleNotFound;
|
||||||
|
const resolveExtensions = options.resolveExtensions;
|
||||||
|
|
||||||
|
const hasRelativeModules = options.modules.some(
|
||||||
|
(module) => module.startsWith(".") || module.startsWith("/")
|
||||||
|
);
|
||||||
|
|
||||||
|
const modules = Object.fromEntries(
|
||||||
|
options.modules.map((module) => {
|
||||||
|
const absolute = module.startsWith(".")
|
||||||
|
? require.resolve(module, { paths: [cwd] })
|
||||||
|
: module;
|
||||||
|
// eslint-disable-next-line import/no-dynamic-require
|
||||||
|
return [absolute, require(absolute)];
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
const toLiteral = (value) => {
|
||||||
|
if (typeof value === "string") {
|
||||||
|
return t.stringLiteral(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof value === "number") {
|
||||||
|
return t.numericLiteral(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof value === "boolean") {
|
||||||
|
return t.booleanLiteral(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (value === null) {
|
||||||
|
return t.nullLiteral();
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new Error(
|
||||||
|
"babel-plugin-inline-constants: cannot handle non-literal `" + value + "`"
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const resolveAbsolute = (value, state, resolveExtensionIndex) => {
|
||||||
|
if (!state.filename) {
|
||||||
|
throw new TypeError(
|
||||||
|
"babel-plugin-inline-constants: expected a `filename` to be set for files"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (resolveExtensions && resolveExtensionIndex !== undefined) {
|
||||||
|
value += resolveExtensions[resolveExtensionIndex];
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
return require.resolve(value, { paths: [path.dirname(state.filename)] });
|
||||||
|
} catch (error) {
|
||||||
|
if (
|
||||||
|
error.code === "MODULE_NOT_FOUND" &&
|
||||||
|
resolveExtensions &&
|
||||||
|
(resolveExtensionIndex === undefined ||
|
||||||
|
resolveExtensionIndex < resolveExtensions.length - 1)
|
||||||
|
) {
|
||||||
|
const resolveExtensionIdx = (resolveExtensionIndex || -1) + 1;
|
||||||
|
return resolveAbsolute(value, state, resolveExtensionIdx);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (error.code === "MODULE_NOT_FOUND" && ignoreModuleNotFound) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const importDeclaration = (p, state) => {
|
||||||
|
if (p.node.type !== "ImportDeclaration") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const absolute =
|
||||||
|
hasRelativeModules && p.node.source.value.startsWith(".")
|
||||||
|
? resolveAbsolute(p.node.source.value, state)
|
||||||
|
: p.node.source.value;
|
||||||
|
|
||||||
|
if (!absolute || !(absolute in modules)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const module = modules[absolute];
|
||||||
|
|
||||||
|
for (const specifier of p.node.specifiers) {
|
||||||
|
if (
|
||||||
|
specifier.type === "ImportDefaultSpecifier" &&
|
||||||
|
specifier.local &&
|
||||||
|
specifier.local.type === "Identifier"
|
||||||
|
) {
|
||||||
|
if (!("default" in module)) {
|
||||||
|
throw new Error(
|
||||||
|
"babel-plugin-inline-constants: cannot access default export from `" +
|
||||||
|
p.node.source.value +
|
||||||
|
"`"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const variableValue = toLiteral(module.default);
|
||||||
|
const variable = t.variableDeclarator(
|
||||||
|
t.identifier(specifier.local.name),
|
||||||
|
variableValue
|
||||||
|
);
|
||||||
|
|
||||||
|
p.insertBefore({
|
||||||
|
type: "VariableDeclaration",
|
||||||
|
kind: "const",
|
||||||
|
declarations: [variable],
|
||||||
|
});
|
||||||
|
} else if (
|
||||||
|
specifier.type === "ImportSpecifier" &&
|
||||||
|
specifier.imported &&
|
||||||
|
specifier.imported.type === "Identifier" &&
|
||||||
|
specifier.local &&
|
||||||
|
specifier.local.type === "Identifier"
|
||||||
|
) {
|
||||||
|
if (!(specifier.imported.name in module)) {
|
||||||
|
throw new Error(
|
||||||
|
"babel-plugin-inline-constants: cannot access `" +
|
||||||
|
specifier.imported.name +
|
||||||
|
"` from `" +
|
||||||
|
p.node.source.value +
|
||||||
|
"`"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const variableValue = toLiteral(module[specifier.imported.name]);
|
||||||
|
const variable = t.variableDeclarator(
|
||||||
|
t.identifier(specifier.local.name),
|
||||||
|
variableValue
|
||||||
|
);
|
||||||
|
|
||||||
|
p.insertBefore({
|
||||||
|
type: "VariableDeclaration",
|
||||||
|
kind: "const",
|
||||||
|
declarations: [variable],
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
throw new Error("Cannot handle specifier `" + specifier.type + "`");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
p.remove();
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
visitor: {
|
||||||
|
ImportDeclaration: importDeclaration,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
};
|
|
@ -56,12 +56,23 @@ module.exports.babelOptions = ({ latestBuild }) => ({
|
||||||
"@babel/preset-env",
|
"@babel/preset-env",
|
||||||
{
|
{
|
||||||
useBuiltIns: "entry",
|
useBuiltIns: "entry",
|
||||||
corejs: "3.6",
|
corejs: "3.15",
|
||||||
|
bugfixes: true,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
"@babel/preset-typescript",
|
"@babel/preset-typescript",
|
||||||
].filter(Boolean),
|
].filter(Boolean),
|
||||||
plugins: [
|
plugins: [
|
||||||
|
[
|
||||||
|
path.resolve(
|
||||||
|
paths.polymer_dir,
|
||||||
|
"build-scripts/babel-plugins/inline-constants-plugin.js"
|
||||||
|
),
|
||||||
|
{
|
||||||
|
modules: ["@mdi/js"],
|
||||||
|
ignoreModuleNotFound: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
// Part of ES2018. Converts {...a, b: 2} to Object.assign({}, a, {b: 2})
|
// Part of ES2018. Converts {...a, b: 2} to Object.assign({}, a, {b: 2})
|
||||||
!latestBuild && [
|
!latestBuild && [
|
||||||
"@babel/plugin-proposal-object-rest-spread",
|
"@babel/plugin-proposal-object-rest-spread",
|
||||||
|
@ -74,8 +85,14 @@ module.exports.babelOptions = ({ latestBuild }) => ({
|
||||||
"@babel/plugin-proposal-nullish-coalescing-operator",
|
"@babel/plugin-proposal-nullish-coalescing-operator",
|
||||||
["@babel/plugin-proposal-decorators", { decoratorsBeforeExport: true }],
|
["@babel/plugin-proposal-decorators", { decoratorsBeforeExport: true }],
|
||||||
["@babel/plugin-proposal-private-methods", { loose: true }],
|
["@babel/plugin-proposal-private-methods", { loose: true }],
|
||||||
|
["@babel/plugin-proposal-private-property-in-object", { loose: true }],
|
||||||
["@babel/plugin-proposal-class-properties", { loose: true }],
|
["@babel/plugin-proposal-class-properties", { loose: true }],
|
||||||
].filter(Boolean),
|
].filter(Boolean),
|
||||||
|
exclude: [
|
||||||
|
// \\ for Windows, / for Mac OS and Linux
|
||||||
|
/node_modules[\\/]core-js/,
|
||||||
|
/node_modules[\\/]webpack[\\/]buildin/,
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
const outputPath = (outputRoot, latestBuild) =>
|
const outputPath = (outputRoot, latestBuild) =>
|
||||||
|
|
|
@ -47,8 +47,8 @@ gulp.task(
|
||||||
gulp.parallel("gen-icons-json", "build-translations"),
|
gulp.parallel("gen-icons-json", "build-translations"),
|
||||||
"copy-static-app",
|
"copy-static-app",
|
||||||
env.useRollup() ? "rollup-prod-app" : "webpack-prod-app",
|
env.useRollup() ? "rollup-prod-app" : "webpack-prod-app",
|
||||||
...// Don't compress running tests
|
// Don't compress running tests
|
||||||
(env.isTest() ? [] : ["compress-app"]),
|
...(env.isTest() ? [] : ["compress-app"]),
|
||||||
gulp.parallel(
|
gulp.parallel(
|
||||||
"gen-pages-prod",
|
"gen-pages-prod",
|
||||||
"gen-index-app-prod",
|
"gen-index-app-prod",
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
const gulp = require("gulp");
|
const gulp = require("gulp");
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
const cpx = require("cpx");
|
|
||||||
const fs = require("fs-extra");
|
const fs = require("fs-extra");
|
||||||
const paths = require("../paths");
|
const paths = require("../paths");
|
||||||
|
|
||||||
|
@ -62,9 +61,12 @@ function copyLoaderJS(staticDir) {
|
||||||
function copyFonts(staticDir) {
|
function copyFonts(staticDir) {
|
||||||
const staticPath = genStaticPath(staticDir);
|
const staticPath = genStaticPath(staticDir);
|
||||||
// Local fonts
|
// Local fonts
|
||||||
cpx.copySync(
|
fs.copySync(
|
||||||
npmPath("roboto-fontface/fonts/roboto/*.woff2"),
|
npmPath("roboto-fontface/fonts/roboto/"),
|
||||||
staticPath("fonts/roboto")
|
staticPath("fonts/roboto/"),
|
||||||
|
{
|
||||||
|
filter: (src) => !src.includes(".") || src.endsWith(".woff2"),
|
||||||
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,13 @@ gulp.task("webpack-watch-app", () => {
|
||||||
process.env.ES5
|
process.env.ES5
|
||||||
? bothBuilds(createAppConfig, { isProdBuild: false })
|
? bothBuilds(createAppConfig, { isProdBuild: false })
|
||||||
: createAppConfig({ isProdBuild: false, latestBuild: true })
|
: createAppConfig({ isProdBuild: false, latestBuild: true })
|
||||||
).watch({ ignored: /build-translations/, poll: isWsl }, doneHandler());
|
).watch(
|
||||||
|
{
|
||||||
|
ignored: /build-translations/,
|
||||||
|
poll: isWsl,
|
||||||
|
},
|
||||||
|
doneHandler()
|
||||||
|
);
|
||||||
gulp.watch(
|
gulp.watch(
|
||||||
path.join(paths.translations_src, "en.json"),
|
path.join(paths.translations_src, "en.json"),
|
||||||
gulp.series("build-translations", "copy-translations-app")
|
gulp.series("build-translations", "copy-translations-app")
|
||||||
|
|
|
@ -49,12 +49,16 @@ const createWebpackConfig = ({
|
||||||
test: /\.m?js$|\.ts$/,
|
test: /\.m?js$|\.ts$/,
|
||||||
use: {
|
use: {
|
||||||
loader: "babel-loader",
|
loader: "babel-loader",
|
||||||
options: bundle.babelOptions({ latestBuild }),
|
options: {
|
||||||
|
...bundle.babelOptions({ latestBuild }),
|
||||||
|
cacheDirectory: !isProdBuild,
|
||||||
|
cacheCompression: false,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.css$/,
|
test: /\.css$/,
|
||||||
use: "raw-loader",
|
type: "asset/source",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
@ -66,6 +70,8 @@ const createWebpackConfig = ({
|
||||||
terserOptions: bundle.terserOptions(latestBuild),
|
terserOptions: bundle.terserOptions(latestBuild),
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
|
moduleIds: isProdBuild && !isStatsBuild ? "deterministic" : "named",
|
||||||
|
chunkIds: isProdBuild && !isStatsBuild ? "deterministic" : "named",
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
new WebpackManifestPlugin({
|
new WebpackManifestPlugin({
|
||||||
|
@ -134,15 +140,13 @@ const createWebpackConfig = ({
|
||||||
},
|
},
|
||||||
output: {
|
output: {
|
||||||
filename: ({ chunk }) => {
|
filename: ({ chunk }) => {
|
||||||
if (!isProdBuild || dontHash.has(chunk.name)) {
|
if (!isProdBuild || isStatsBuild || dontHash.has(chunk.name)) {
|
||||||
return `${chunk.name}.js`;
|
return `${chunk.name}.js`;
|
||||||
}
|
}
|
||||||
return `${chunk.name}.${chunk.hash.substr(0, 8)}.js`;
|
return `${chunk.name}.${chunk.hash.substr(0, 8)}.js`;
|
||||||
},
|
},
|
||||||
chunkFilename:
|
chunkFilename:
|
||||||
isProdBuild && !isStatsBuild
|
isProdBuild && !isStatsBuild ? "[chunkhash:8].js" : "[id].chunk.js",
|
||||||
? "chunk.[chunkhash].js"
|
|
||||||
: "[name].chunk.js",
|
|
||||||
path: outputPath,
|
path: outputPath,
|
||||||
publicPath,
|
publicPath,
|
||||||
// To silence warning in worker plugin
|
// To silence warning in worker plugin
|
||||||
|
|
|
@ -139,7 +139,7 @@
|
||||||
Your authentication credentials or Home Assistant url are never sent
|
Your authentication credentials or Home Assistant url are never sent
|
||||||
to the Cloud. You can validate this behavior in
|
to the Cloud. You can validate this behavior in
|
||||||
<a
|
<a
|
||||||
href="https://github.com/home-assistant/home-assistant-polymer/tree/dev/cast"
|
href="https://github.com/home-assistant/frontend/tree/dev/cast"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>the source code</a
|
>the source code</a
|
||||||
>.
|
>.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
"*.{js,ts}": "eslint --fix",
|
"*.{js,ts}": 'eslint --ignore-pattern "**/build-scripts/**/*.js" --fix',
|
||||||
"!(/translations)*.{js,ts,json,css,md,html}": "prettier --write",
|
"!(/translations)*.{js,ts,json,css,md,html}": "prettier --write",
|
||||||
};
|
};
|
||||||
|
|
36
package.json
36
package.json
|
@ -99,7 +99,7 @@
|
||||||
"@webcomponents/webcomponentsjs": "^2.2.7",
|
"@webcomponents/webcomponentsjs": "^2.2.7",
|
||||||
"chart.js": "^3.3.2",
|
"chart.js": "^3.3.2",
|
||||||
"comlink": "^4.3.1",
|
"comlink": "^4.3.1",
|
||||||
"core-js": "^3.6.5",
|
"core-js": "^3.15.2",
|
||||||
"cropperjs": "^1.5.11",
|
"cropperjs": "^1.5.11",
|
||||||
"date-fns": "^2.22.1",
|
"date-fns": "^2.22.1",
|
||||||
"deep-clone-simple": "^1.1.1",
|
"deep-clone-simple": "^1.1.1",
|
||||||
|
@ -123,7 +123,7 @@
|
||||||
"proxy-polyfill": "^0.3.1",
|
"proxy-polyfill": "^0.3.1",
|
||||||
"punycode": "^2.1.1",
|
"punycode": "^2.1.1",
|
||||||
"qrcode": "^1.4.4",
|
"qrcode": "^1.4.4",
|
||||||
"regenerator-runtime": "^0.13.2",
|
"regenerator-runtime": "^0.13.8",
|
||||||
"resize-observer-polyfill": "^1.5.1",
|
"resize-observer-polyfill": "^1.5.1",
|
||||||
"roboto-fontface": "^0.10.0",
|
"roboto-fontface": "^0.10.0",
|
||||||
"sortablejs": "^1.10.2",
|
"sortablejs": "^1.10.2",
|
||||||
|
@ -145,17 +145,17 @@
|
||||||
"xss": "^1.0.9"
|
"xss": "^1.0.9"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.14.3",
|
"@babel/core": "^7.14.6",
|
||||||
"@babel/plugin-external-helpers": "^7.12.13",
|
"@babel/plugin-external-helpers": "^7.14.5",
|
||||||
"@babel/plugin-proposal-class-properties": "^7.13.0",
|
"@babel/plugin-proposal-class-properties": "^7.14.5",
|
||||||
"@babel/plugin-proposal-decorators": "^7.13.15",
|
"@babel/plugin-proposal-decorators": "^7.14.5",
|
||||||
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8",
|
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5",
|
||||||
"@babel/plugin-proposal-object-rest-spread": "^7.13.8",
|
"@babel/plugin-proposal-object-rest-spread": "^7.14.7",
|
||||||
"@babel/plugin-proposal-optional-chaining": "^7.13.12",
|
"@babel/plugin-proposal-optional-chaining": "^7.14.5",
|
||||||
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
||||||
"@babel/plugin-syntax-import-meta": "^7.10.4",
|
"@babel/plugin-syntax-import-meta": "^7.10.4",
|
||||||
"@babel/preset-env": "^7.14.2",
|
"@babel/preset-env": "^7.14.7",
|
||||||
"@babel/preset-typescript": "^7.13.0",
|
"@babel/preset-typescript": "^7.14.5",
|
||||||
"@koa/cors": "^3.1.0",
|
"@koa/cors": "^3.1.0",
|
||||||
"@open-wc/dev-server-hmr": "^0.0.2",
|
"@open-wc/dev-server-hmr": "^0.0.2",
|
||||||
"@rollup/plugin-babel": "^5.2.1",
|
"@rollup/plugin-babel": "^5.2.1",
|
||||||
|
@ -176,14 +176,13 @@
|
||||||
"@typescript-eslint/parser": "^4.22.0",
|
"@typescript-eslint/parser": "^4.22.0",
|
||||||
"@web/dev-server": "^0.0.24",
|
"@web/dev-server": "^0.0.24",
|
||||||
"@web/dev-server-rollup": "^0.2.11",
|
"@web/dev-server-rollup": "^0.2.11",
|
||||||
"babel-loader": "^8.1.0",
|
"babel-loader": "^8.2.2",
|
||||||
"chai": "^4.3.4",
|
"chai": "^4.3.4",
|
||||||
"cpx": "^1.5.0",
|
|
||||||
"del": "^4.0.0",
|
"del": "^4.0.0",
|
||||||
"eslint": "^7.25.0",
|
"eslint": "^7.25.0",
|
||||||
"eslint-config-airbnb-typescript": "^12.3.1",
|
"eslint-config-airbnb-typescript": "^12.3.1",
|
||||||
"eslint-config-prettier": "^8.3.0",
|
"eslint-config-prettier": "^8.3.0",
|
||||||
"eslint-import-resolver-webpack": "^0.13.0",
|
"eslint-import-resolver-webpack": "^0.13.1",
|
||||||
"eslint-plugin-disable": "^2.0.1",
|
"eslint-plugin-disable": "^2.0.1",
|
||||||
"eslint-plugin-import": "^2.22.1",
|
"eslint-plugin-import": "^2.22.1",
|
||||||
"eslint-plugin-lit": "^1.3.0",
|
"eslint-plugin-lit": "^1.3.0",
|
||||||
|
@ -209,7 +208,6 @@
|
||||||
"object-hash": "^2.0.3",
|
"object-hash": "^2.0.3",
|
||||||
"open": "^7.0.4",
|
"open": "^7.0.4",
|
||||||
"prettier": "^2.0.4",
|
"prettier": "^2.0.4",
|
||||||
"raw-loader": "^2.0.0",
|
|
||||||
"require-dir": "^1.2.0",
|
"require-dir": "^1.2.0",
|
||||||
"rollup": "^2.8.2",
|
"rollup": "^2.8.2",
|
||||||
"rollup-plugin-string": "^3.0.0",
|
"rollup-plugin-string": "^3.0.0",
|
||||||
|
@ -219,16 +217,16 @@
|
||||||
"sinon": "^11.0.0",
|
"sinon": "^11.0.0",
|
||||||
"source-map-url": "^0.4.0",
|
"source-map-url": "^0.4.0",
|
||||||
"systemjs": "^6.3.2",
|
"systemjs": "^6.3.2",
|
||||||
"terser-webpack-plugin": "^5.1.2",
|
"terser-webpack-plugin": "^5.1.4",
|
||||||
"ts-lit-plugin": "^1.2.1",
|
"ts-lit-plugin": "^1.2.1",
|
||||||
"ts-mocha": "^8.0.0",
|
"ts-mocha": "^8.0.0",
|
||||||
"typescript": "^4.2.4",
|
"typescript": "^4.2.4",
|
||||||
"vinyl-buffer": "^1.0.1",
|
"vinyl-buffer": "^1.0.1",
|
||||||
"vinyl-source-stream": "^2.0.0",
|
"vinyl-source-stream": "^2.0.0",
|
||||||
"webpack": "^5.24.1",
|
"webpack": "^5.43.0",
|
||||||
"webpack-cli": "^4.5.0",
|
"webpack-cli": "^4.7.2",
|
||||||
"webpack-dev-server": "^3.11.2",
|
"webpack-dev-server": "^3.11.2",
|
||||||
"webpack-manifest-plugin": "^3.0.0",
|
"webpack-manifest-plugin": "^3.1.1",
|
||||||
"workbox-build": "^6.1.5"
|
"workbox-build": "^6.1.5"
|
||||||
},
|
},
|
||||||
"_comment": "Polymer fixed to 3.1 because 3.2 throws on logbook page",
|
"_comment": "Polymer fixed to 3.1 because 3.2 throws on logbook page",
|
||||||
|
|
2
setup.py
2
setup.py
|
@ -4,7 +4,7 @@ setup(
|
||||||
name="home-assistant-frontend",
|
name="home-assistant-frontend",
|
||||||
version="20210707.0",
|
version="20210707.0",
|
||||||
description="The Home Assistant frontend",
|
description="The Home Assistant frontend",
|
||||||
url="https://github.com/home-assistant/home-assistant-polymer",
|
url="https://github.com/home-assistant/frontend",
|
||||||
author="The Home Assistant Authors",
|
author="The Home Assistant Authors",
|
||||||
author_email="hello@home-assistant.io",
|
author_email="hello@home-assistant.io",
|
||||||
license="Apache-2.0",
|
license="Apache-2.0",
|
||||||
|
|
|
@ -103,7 +103,7 @@ class HomeAssistantMain extends LitElement {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected firstUpdated() {
|
protected firstUpdated() {
|
||||||
import("../components/ha-sidebar");
|
import(/* webpackPreload: true */ "../components/ha-sidebar");
|
||||||
|
|
||||||
this.addEventListener(
|
this.addEventListener(
|
||||||
"hass-edit-sidebar",
|
"hass-edit-sidebar",
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// For localize
|
|
||||||
import "core-js";
|
import "core-js";
|
||||||
import "regenerator-runtime/runtime";
|
import "regenerator-runtime/runtime";
|
||||||
import "lit/polyfill-support";
|
import "lit/polyfill-support";
|
||||||
|
// For localize
|
||||||
import "@formatjs/intl-getcanonicallocales/polyfill";
|
import "@formatjs/intl-getcanonicallocales/polyfill";
|
||||||
// To use comlink under ES5
|
// To use comlink under ES5
|
||||||
import "proxy-polyfill";
|
import "proxy-polyfill";
|
||||||
|
|
Loading…
Reference in New Issue