From 98c419ff0339e28385b8feff41b0274348be689b Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 21 Jun 2019 12:48:20 -0700 Subject: [PATCH] Switch to woff2 fonts (#3296) --- build-scripts/gulp/gather-static.js | 6 +- build-scripts/webpack.js | 16 +-- demo/src/configs/demo-configs.ts | 20 +++- demo/src/html/index.html.template | 4 +- hassio/src/hassio-main.ts | 6 +- package.json | 3 +- src/html/index.html.template | 4 +- src/panels/config/cloud/ha-config-cloud.ts | 12 ++- src/resources/roboto.js | 120 +++++++++------------ yarn.lock | 94 ++++++++++++++-- 10 files changed, 181 insertions(+), 104 deletions(-) diff --git a/build-scripts/gulp/gather-static.js b/build-scripts/gulp/gather-static.js index 54d0833552..274581f322 100644 --- a/build-scripts/gulp/gather-static.js +++ b/build-scripts/gulp/gather-static.js @@ -2,6 +2,7 @@ const gulp = require("gulp"); const path = require("path"); +const cpx = require("cpx"); const fs = require("fs-extra"); const zopfli = require("gulp-zopfli-green"); const merge = require("merge-stream"); @@ -48,7 +49,10 @@ function copyPolyfills(staticDir) { function copyFonts(staticDir) { const staticPath = genStaticPath(staticDir); // Local fonts - fs.copySync(npmPath("@polymer/font-roboto-local/fonts"), staticPath("fonts")); + cpx.copySync( + npmPath("roboto-fontface/fonts/roboto/*.woff2"), + staticPath("fonts/roboto") + ); } function copyMapPanel(staticDir) { diff --git a/build-scripts/webpack.js b/build-scripts/webpack.js index 062f6ddae7..519077bd42 100644 --- a/build-scripts/webpack.js +++ b/build-scripts/webpack.js @@ -153,14 +153,14 @@ const createAppConfig = ({ isProdBuild, latestBuild, isStatsBuild }) => { ...workBoxTranslationsTemplatedURLs, "/static/icons/favicon-192x192.png": "public/icons/favicon-192x192.png", - "/static/fonts/roboto/Roboto-Light.ttf": - "node_modules/@polymer/font-roboto-local/fonts/roboto/Roboto-Light.ttf", - "/static/fonts/roboto/Roboto-Medium.ttf": - "node_modules/@polymer/font-roboto-local/fonts/roboto/Roboto-Medium.ttf", - "/static/fonts/roboto/Roboto-Regular.ttf": - "node_modules/@polymer/font-roboto-local/fonts/roboto/Roboto-Regular.ttf", - "/static/fonts/roboto/Roboto-Bold.ttf": - "node_modules/@polymer/font-roboto-local/fonts/roboto/Roboto-Bold.ttf", + "/static/fonts/roboto/Roboto-Light.woff2": + "node_modules/roboto-fontface/fonts/roboto/Roboto-Light.woff2", + "/static/fonts/roboto/Roboto-Medium.woff2": + "node_modules/roboto-fontface/fonts/roboto/Roboto-Medium.woff2", + "/static/fonts/roboto/Roboto-Regular.woff2": + "node_modules/roboto-fontface/fonts/roboto/Roboto-Regular.woff2", + "/static/fonts/roboto/Roboto-Bold.woff2": + "node_modules/roboto-fontface/fonts/roboto/Roboto-Bold.woff2", }, }), ].filter(Boolean), diff --git a/demo/src/configs/demo-configs.ts b/demo/src/configs/demo-configs.ts index 9fd2c0cf79..c0bfef2e35 100644 --- a/demo/src/configs/demo-configs.ts +++ b/demo/src/configs/demo-configs.ts @@ -3,10 +3,22 @@ import { Lovelace } from "../../../src/panels/lovelace/types"; import { DemoConfig } from "./types"; export const demoConfigs: Array<() => Promise> = [ - () => import("./arsaboo").then((mod) => mod.demoArsaboo), - () => import("./teachingbirds").then((mod) => mod.demoTeachingbirds), - () => import("./kernehed").then((mod) => mod.demoKernehed), - () => import("./jimpower").then((mod) => mod.demoJimpower), + () => + import(/* webpackChunkName: "arsaboo" */ "./arsaboo").then( + (mod) => mod.demoArsaboo + ), + () => + import(/* webpackChunkName: "teachingbirds" */ "./teachingbirds").then( + (mod) => mod.demoTeachingbirds + ), + () => + import(/* webpackChunkName: "kernehed" */ "./kernehed").then( + (mod) => mod.demoKernehed + ), + () => + import(/* webpackChunkName: "jimpower" */ "./jimpower").then( + (mod) => mod.demoJimpower + ), ]; export let selectedDemoConfigIndex: number = 0; diff --git a/demo/src/html/index.html.template b/demo/src/html/index.html.template index 489b15dcbe..efd18b224f 100644 --- a/demo/src/html/index.html.template +++ b/demo/src/html/index.html.template @@ -7,13 +7,13 @@ diff --git a/hassio/src/hassio-main.ts b/hassio/src/hassio-main.ts index fb0766c77e..22ce4caea1 100644 --- a/hassio/src/hassio-main.ts +++ b/hassio/src/hassio-main.ts @@ -52,11 +52,13 @@ class HassioMain extends ProvideHassLitMixin(HassRouterPage) { system: "dashboard", addon: { tag: "hassio-addon-view", - load: () => import("./addon-view/hassio-addon-view"), + load: () => + import(/* webpackChunkName: "hassio-addon-view" */ "./addon-view/hassio-addon-view"), }, ingress: { tag: "hassio-ingress-view", - load: () => import("./ingress-view/hassio-ingress-view"), + load: () => + import(/* webpackChunkName: "hassio-ingress-view" */ "./ingress-view/hassio-ingress-view"), }, }, }; diff --git a/package.json b/package.json index 82483b4b7a..4864f21a4a 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,6 @@ "@polymer/app-route": "^3.0.2", "@polymer/app-storage": "^3.0.2", "@polymer/font-roboto": "^3.0.2", - "@polymer/font-roboto-local": "^3.0.2", "@polymer/iron-autogrow-textarea": "^3.0.1", "@polymer/iron-flex-layout": "^3.0.1", "@polymer/iron-icon": "^3.0.1", @@ -72,6 +71,7 @@ "chart.js": "~2.8.0", "chartjs-chart-timeline": "^0.3.0", "codemirror": "^5.45.0", + "cpx": "^1.5.0", "deep-clone-simple": "^1.1.1", "es6-object-assign": "^1.1.0", "fecha": "^3.0.2", @@ -93,6 +93,7 @@ "preact-compat": "^3.18.4", "react-big-calendar": "^0.20.4", "regenerator-runtime": "^0.13.2", + "roboto-fontface": "^0.10.0", "round-slider": "^1.3.3", "superstruct": "^0.6.1", "unfetch": "^4.1.0", diff --git a/src/html/index.html.template b/src/html/index.html.template index 6cd85a9a88..f3924d440e 100644 --- a/src/html/index.html.template +++ b/src/html/index.html.template @@ -4,13 +4,13 @@ diff --git a/src/panels/config/cloud/ha-config-cloud.ts b/src/panels/config/cloud/ha-config-cloud.ts index 62eda923dd..196caa8e55 100644 --- a/src/panels/config/cloud/ha-config-cloud.ts +++ b/src/panels/config/cloud/ha-config-cloud.ts @@ -45,22 +45,26 @@ class HaConfigCloud extends HassRouterPage { }, register: { tag: "cloud-register", - load: () => import("./register/cloud-register"), + load: () => + import(/* webpackChunkName: "cloud-register" */ "./register/cloud-register"), }, "forgot-password": { tag: "cloud-forgot-password", - load: () => import("./forgot-password/cloud-forgot-password"), + load: () => + import(/* webpackChunkName: "cloud-forgot-password" */ "./forgot-password/cloud-forgot-password"), }, account: { tag: "cloud-account", }, "google-assistant": { tag: "cloud-google-assistant", - load: () => import("./google-assistant/cloud-google-assistant"), + load: () => + import(/* webpackChunkName: "cloud-google-assistant" */ "./google-assistant/cloud-google-assistant"), }, alexa: { tag: "cloud-alexa", - load: () => import("./alexa/cloud-alexa"), + load: () => + import(/* webpackChunkName: "cloud-alexa" */ "./alexa/cloud-alexa"), }, }, }; diff --git a/src/resources/roboto.js b/src/resources/roboto.js index f73e66deac..0f9a39d99f 100644 --- a/src/resources/roboto.js +++ b/src/resources/roboto.js @@ -4,136 +4,112 @@ documentContainer.setAttribute("style", "display: none;"); documentContainer.innerHTML = ``; document.head.appendChild(documentContainer.content); diff --git a/yarn.lock b/yarn.lock index e4a28b21d1..734ab7ee1c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -944,11 +944,6 @@ resolved "https://registry.yarnpkg.com/@polymer/esm-amd-loader/-/esm-amd-loader-1.0.4.tgz#4e77f2f59b29b01e0ad02aa83d33716cddc5f9f9" integrity sha512-h+hqYkL+tQV/y2ESD5gFXMl5z4cC+XY1jTlBeGSBaTcj3VbB5OBEScbvRXm63NcEbBneQQYbHfBAXAkF9i9wIA== -"@polymer/font-roboto-local@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@polymer/font-roboto-local/-/font-roboto-local-3.0.2.tgz#563cd6cabbcaef54999d654c0f3d476bcc49ce58" - integrity sha512-mCd9TcjwnCxU+7uVHCkbREGU+OmzStvYh3ru5DSaftOQDnMrLAzernEv/QCcfSPRgTMHij+pIUN4tcaGeDGcYg== - "@polymer/font-roboto@^3.0.1", "@polymer/font-roboto@^3.0.2": version "3.0.2" resolved "https://registry.yarnpkg.com/@polymer/font-roboto/-/font-roboto-3.0.2.tgz#80cdaa7225db2359130dfb2c6d9a3be1820020c3" @@ -2754,6 +2749,11 @@ array-each@^1.0.0, array-each@^1.0.1: resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8= +array-filter@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" + integrity sha1-fajPLiZijtcygDWB/SH2fKzS7uw= + array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" @@ -2802,6 +2802,16 @@ array-last@^1.1.1: dependencies: is-number "^4.0.0" +array-map@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" + integrity sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI= + +array-reduce@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" + integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= + array-slice@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" @@ -3255,7 +3265,7 @@ babel-preset-minify@=0.4.0-alpha.caaefb4c: babel-plugin-transform-undefined-to-void "^6.10.0-alpha.caaefb4c" lodash.isplainobject "^4.0.6" -babel-runtime@^6.22.0, babel-runtime@^6.26.0: +babel-runtime@^6.22.0, babel-runtime@^6.26.0, babel-runtime@^6.9.2: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= @@ -3988,7 +3998,7 @@ check-error@^1.0.2: resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= -chokidar@^1.7.0: +chokidar@^1.6.0, chokidar@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" integrity sha1-eY5ol3gVHIB2tLNg5e3SjNortGg= @@ -4578,6 +4588,23 @@ cosmiconfig@^5.0.2, cosmiconfig@^5.0.7: js-yaml "^3.13.0" parse-json "^4.0.0" +cpx@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/cpx/-/cpx-1.5.0.tgz#185be018511d87270dedccc293171e37655ab88f" + integrity sha1-GFvgGFEdhycN7czCkxceN2VauI8= + dependencies: + babel-runtime "^6.9.2" + chokidar "^1.6.0" + duplexer "^0.1.1" + glob "^7.0.5" + glob2base "^0.0.12" + minimatch "^3.0.2" + mkdirp "^0.5.1" + resolve "^1.1.7" + safe-buffer "^5.0.1" + shell-quote "^1.6.1" + subarg "^1.0.0" + crc32-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-2.0.0.tgz#e3cdd3b4df3168dd74e3de3fbbcb7b297fe908f4" @@ -5248,6 +5275,11 @@ duplexer3@^0.1.4: resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= +duplexer@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= + duplexify@^3.2.0, duplexify@^3.4.2, duplexify@^3.5.0, duplexify@^3.6.0: version "3.7.1" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" @@ -6181,6 +6213,11 @@ find-cache-dir@^2.0.0: make-dir "^2.0.0" pkg-dir "^3.0.0" +find-index@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4" + integrity sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ= + find-parent-dir@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" @@ -6651,6 +6688,13 @@ glob-watcher@^5.0.0: just-debounce "^1.0.0" object.defaults "^1.1.0" +glob2base@^0.0.12: + version "0.0.12" + resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56" + integrity sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY= + dependencies: + find-index "^0.1.1" + glob@7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" @@ -6697,6 +6741,18 @@ glob@^6.0.1: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.0.5: + version "7.1.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + global-dirs@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" @@ -9394,7 +9450,7 @@ minimist@^0.2.0: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.2.0.tgz#4dffe525dae2b864c66c2e23c6271d7afdecefce" integrity sha1-Tf/lJdriuGTGbC4jxicdev3s784= -minimist@^1.1.3, minimist@^1.2.0: +minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= @@ -11700,6 +11756,11 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +roboto-fontface@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/roboto-fontface/-/roboto-fontface-0.10.0.tgz#7eee40cfa18b1f7e4e605eaf1a2740afb6fd71b0" + integrity sha512-OlwfYEgA2RdboZohpldlvJ1xngOins5d7ejqnIBWr9KaMxsnBqotpptRXTyfNRLnFpqzX6sTDt+X+a+6udnU8g== + rollup@^1.3.0: version "1.7.4" resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.7.4.tgz#dd9d1d4935d3db38f16e1caaef635d8d1b0831c4" @@ -11990,6 +12051,16 @@ shebang-regex@^1.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= +shell-quote@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" + integrity sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c= + dependencies: + array-filter "~0.0.0" + array-map "~0.0.0" + array-reduce "~0.0.0" + jsonify "~0.0.0" + shelljs@^0.8.0: version "0.8.3" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.3.tgz#a7f3319520ebf09ee81275b2368adb286659b097" @@ -12623,6 +12694,13 @@ strip-json-comments@2.0.1, strip-json-comments@^2.0.1, strip-json-comments@~2.0. resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= +subarg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" + integrity sha1-9izxdYHplrSPyWVpn1TAauJouNI= + dependencies: + minimist "^1.1.0" + superstruct@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.6.1.tgz#148fc3d627bb59fcfe24aa1bd2a1b8c51b1db072"