From 8e8812fddba6983b81c04882249df3cb14fd2282 Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Thu, 7 Jan 2021 16:36:35 +0100
Subject: [PATCH] showcase: Port to dbp-toolkit/font-source-sans-pro

---
 .../assets/dbp-toolkit-showcase.html.ejs      | 38 ++-----------------
 toolkit-showcase/package.json                 |  4 +-
 toolkit-showcase/rollup.config.js             | 22 +++++++++--
 toolkit-showcase/yarn.lock                    |  5 ---
 4 files changed, 25 insertions(+), 44 deletions(-)

diff --git a/toolkit-showcase/assets/dbp-toolkit-showcase.html.ejs b/toolkit-showcase/assets/dbp-toolkit-showcase.html.ejs
index 999cc48c..a8ef354e 100644
--- a/toolkit-showcase/assets/dbp-toolkit-showcase.html.ejs
+++ b/toolkit-showcase/assets/dbp-toolkit-showcase.html.ejs
@@ -30,48 +30,18 @@
     <!-- Prevent Chrome/Edge from suggesting to translate the page -->
     <meta name="google" content="notranslate">
 
-    <!-- Preload fonts -->
-    <link rel="preload" href="<%= getPrivateUrl('fonts/SourceSansPro-Light.otf.woff2') %>" as="font" type="font/woff2" crossorigin>
-    <link rel="preload" href="<%= getPrivateUrl('fonts/SourceSansPro-Regular.otf.woff2') %>" as="font" type="font/woff2" crossorigin>
-    <link rel="preload" href="<%= getPrivateUrl('fonts/SourceSansPro-Semibold.otf.woff2') %>" as="font" type="font/woff2" crossorigin>
-    <link rel="preload" href="<%= getPrivateUrl('fonts/SourceSansPro-Bold.otf.woff2') %>" as="font" type="font/woff2" crossorigin>
-
     <!-- Font related CSS -->
     <style>
+        @import "<%= getPrivateUrl('fonts/source-sans-pro/300.css') %>";
+        @import "<%= getPrivateUrl('fonts/source-sans-pro/400.css') %>";
+        @import "<%= getPrivateUrl('fonts/source-sans-pro/600.css') %>";
+
         body {
             font-family: 'Source Sans Pro', 'Calibri', 'Arial', 'sans-serif';
             font-weight: 300;
             margin: 0;
         }
 
-        @font-face {
-            font-family: 'Source Sans Pro';
-            font-weight: 300;
-            src: url('<%= getPrivateUrl('fonts/SourceSansPro-Light.otf.woff2') %>') format('woff2');
-            font-display: block;
-        }
-
-        @font-face {
-            font-family: 'Source Sans Pro';
-            font-weight: 400;
-            src: url('<%= getPrivateUrl('fonts/SourceSansPro-Regular.otf.woff2') %>') format('woff2');
-            font-display: block;
-        }
-
-        @font-face {
-            font-family: 'Source Sans Pro';
-            font-weight: 600;
-            src: url('<%= getPrivateUrl('fonts/SourceSansPro-Semibold.otf.woff2') %>') format('woff2');
-            font-display: block;
-        }
-
-        @font-face {
-            font-family: 'Source Sans Pro';
-            font-weight: 700;
-            src: url('<%= getPrivateUrl('fonts/SourceSansPro-Bold.otf.woff2') %>') format('woff2');
-            font-display: block;
-        }
-
         /* TU-Graz style override */
         html {
             --dbp-override-primary-bg-color: #245b78;
diff --git a/toolkit-showcase/package.json b/toolkit-showcase/package.json
index 44a702b6..dbf7d391 100644
--- a/toolkit-showcase/package.json
+++ b/toolkit-showcase/package.json
@@ -44,7 +44,6 @@
     "selfsigned": "^1.10.7"
   },
   "dependencies": {
-    "@open-wc/scoped-elements": "^1.1.1",
     "@dbp-toolkit/app-shell": "^0.1.0",
     "@dbp-toolkit/auth": "^0.1.0",
     "@dbp-toolkit/common": "^0.1.0",
@@ -53,6 +52,8 @@
     "@dbp-toolkit/notification": "^0.1.0",
     "@dbp-toolkit/person-profile": "^0.1.0",
     "@dbp-toolkit/person-select": "^0.1.0",
+    "@dbp-toolkit/font-source-sans-pro": "^0.1.0",
+    "@open-wc/scoped-elements": "^1.1.1",
     "fabric": "^4.2.0",
     "file-saver": "^2.0.2",
     "highlight.js": "^10.1.2",
@@ -61,7 +62,6 @@
     "lit-element": "^2.3.1",
     "lit-html": "^1.2.1",
     "pdfjs-dist": "^2.4.456",
-    "source-sans-pro": "^2.45.0",
     "tabulator-tables": "^4.7.0",
     "universal-router": "^9.0.1",
     "webdav": "^3.3.0"
diff --git a/toolkit-showcase/rollup.config.js b/toolkit-showcase/rollup.config.js
index f8b3eb68..a805c511 100644
--- a/toolkit-showcase/rollup.config.js
+++ b/toolkit-showcase/rollup.config.js
@@ -138,7 +138,22 @@ function getBuildInfo() {
     }
 }
 
-export default {
+export async function getPackagePath(packageName, assetPath) {
+    const r = resolve();
+    const resolved = await r.resolveId(packageName);
+    let packageRoot;
+    if (resolved !== null) {
+        const id = (await r.resolveId(packageName)).id;
+        const packageInfo = r.getPackageInfoForId(id);
+        packageRoot = packageInfo.root;
+    } else {
+        // Non JS packages
+        packageRoot = path.dirname(require.resolve(packageName + '/package.json'));
+    }
+    return path.relative(process.cwd(), path.join(packageRoot, assetPath));
+}
+
+export default (async () => {return {
     input: (build != 'test') ? glob.sync('src/*.js') : glob.sync('test/**/*.js'),
     output: {
       dir: 'dist',
@@ -266,7 +281,7 @@ Dependencies:
                     transform: (contents) => contents.toString().replace('if("Sig"===a.fieldType){a.fieldValue=null;this.setFlags(r.AnnotationFlag.HIDDEN)}', '')
                 },
                 {src: 'node_modules/pdfjs-dist/cmaps/*', dest: 'dist/local/' + pkg.name + '/pdfjs'}, // do we want all map files?
-                {src: 'node_modules/source-sans-pro/WOFF2/OTF/*', dest: 'dist/local/' + pkg.name + '/fonts'},
+                {src: await getPackagePath('@dbp-toolkit/font-source-sans-pro', 'files/*'), dest: 'dist/local/' + pkg.name + '/fonts/source-sans-pro'},
                 {src: 'node_modules/@dbp-toolkit/common/src/spinner.js', dest: 'dist/local/' + pkg.name, rename: 'spinner.js'},
                 {src: 'node_modules/@dbp-toolkit/common/misc/browser-check.js', dest: 'dist/local/' + pkg.name, rename: 'browser-check.js'},
                 {src: 'assets/icon-*.png', dest: 'dist/local/' + pkg.name},
@@ -314,4 +329,5 @@ Dependencies:
           },
         }) : false
     ]
-};
+};})();
+
diff --git a/toolkit-showcase/yarn.lock b/toolkit-showcase/yarn.lock
index 2758225c..60b8dd06 100644
--- a/toolkit-showcase/yarn.lock
+++ b/toolkit-showcase/yarn.lock
@@ -5324,11 +5324,6 @@ source-map@~0.7.2:
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
   integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
 
-source-sans-pro@^2.45.0:
-  version "2.45.0"
-  resolved "https://registry.yarnpkg.com/source-sans-pro/-/source-sans-pro-2.45.0.tgz#1c013c404dfa48ed18ceaf3e904be21b5a0a124e"
-  integrity sha512-MBbmgyzlD0yCKAvJ4Q86s9BB8yXYld26joJh0DMD53j9aFJZYnFo/B7f4RKXDUfX9I4FyEfdr51lOaVioAOBHw==
-
 sourcemap-codec@^1.4.4:
   version "1.4.8"
   resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
-- 
GitLab