From d3476fe5b2e5ef55cc170f6f38d017afea32c7e8 Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Thu, 3 Oct 2019 16:09:45 +0200
Subject: [PATCH] Add code splitting; Split main and demo bundle

---
 .../assets/index.html                         |  2 +-
 .../package.json                              |  2 +-
 .../rollup.config.js                          | 11 ++-
 .../src/demo.js                               | 97 +------------------
 .../src/index.js                              |  1 -
 ...owledge-base-web-page-element-view-demo.js | 96 ++++++++++++++++++
 ...u-knowledge-base-web-page-element-view.js} |  0
 .../test/unit.js                              |  4 +-
 8 files changed, 108 insertions(+), 105 deletions(-)
 delete mode 100644 packages/knowledge-base-web-page-element-view/src/index.js
 create mode 100644 packages/knowledge-base-web-page-element-view/src/vpu-knowledge-base-web-page-element-view-demo.js
 rename packages/knowledge-base-web-page-element-view/src/{vpu-kb-wpe-view.js => vpu-knowledge-base-web-page-element-view.js} (100%)

diff --git a/packages/knowledge-base-web-page-element-view/assets/index.html b/packages/knowledge-base-web-page-element-view/assets/index.html
index 82dd3bf5..866c51b3 100644
--- a/packages/knowledge-base-web-page-element-view/assets/index.html
+++ b/packages/knowledge-base-web-page-element-view/assets/index.html
@@ -2,7 +2,7 @@
 <html>
 <head>
     <meta charset="UTF-8">
-    <script type="module" id="vpu-knowledge-base-web-page-element-view-src" src="bundle.js"></script>
+    <script type="module" id="vpu-knowledge-base-web-page-element-view-src" src="vpu-knowledge-base-web-page-element-view-demo.js"></script>
 </head>
 <style>
   vpu-knowledge-base-web-page-element-view-demo {
diff --git a/packages/knowledge-base-web-page-element-view/package.json b/packages/knowledge-base-web-page-element-view/package.json
index 59e0dfb1..e0cc14f5 100644
--- a/packages/knowledge-base-web-page-element-view/package.json
+++ b/packages/knowledge-base-web-page-element-view/package.json
@@ -1,7 +1,7 @@
 {
   "name": "vpu-knowledge-base-web-page-element-view",
   "version": "1.0.0",
-  "main": "src/index.js",
+  "main": "src/vpu-knowledge-base-web-page-element-view.js",
   "devDependencies": {
     "chai": "^4.2.0",
     "i18next-scanner": "^2.10.2",
diff --git a/packages/knowledge-base-web-page-element-view/rollup.config.js b/packages/knowledge-base-web-page-element-view/rollup.config.js
index 26735234..3a9fe240 100644
--- a/packages/knowledge-base-web-page-element-view/rollup.config.js
+++ b/packages/knowledge-base-web-page-element-view/rollup.config.js
@@ -14,16 +14,19 @@ const build = (typeof process.env.BUILD !== 'undefined') ? process.env.BUILD : '
 console.log("build: " + build);
 
 export default {
-    input: (build != 'test') ? 'src/demo.js' : 'test/**/*.js',
+    input: (build != 'test') ? ['src/vpu-knowledge-base-web-page-element-view.js', 'src/vpu-knowledge-base-web-page-element-view-demo.js'] : 'test/**/*.js',
     output: {
-        file: 'dist/bundle.js',
-        format: 'esm'
+        dir: 'dist',
+        entryFileNames: '[name].js',
+        chunkFileNames: 'shared/[name].[hash].[format].js',
+        format: 'esm',
+        sourcemap: true
     },
     plugins: [
         del({
             targets: 'dist/*'
         }),
-        multiEntry(),
+        (build == 'test') ? multiEntry() : false,
         consts({
             environment: build,
         }),
diff --git a/packages/knowledge-base-web-page-element-view/src/demo.js b/packages/knowledge-base-web-page-element-view/src/demo.js
index 2a74e22d..e176fe1e 100644
--- a/packages/knowledge-base-web-page-element-view/src/demo.js
+++ b/packages/knowledge-base-web-page-element-view/src/demo.js
@@ -1,96 +1 @@
-import {i18n} from './i18n';
-import {css, html, LitElement} from 'lit-element';
-import 'vpu-auth';
-import './vpu-kb-wpe-view';
-import * as commonUtils from 'vpu-common/utils';
-import bulmaCSSPath from "bulma/css/bulma.min.css";
-
-class KnowledgeBaseWebPageElementViewDemo extends LitElement {
-    constructor() {
-        super();
-        this.lang = 'de';
-        this.noAuth = false;
-    }
-
-    static get properties() {
-        return {
-            lang: { type: String },
-            noAuth: { type: Boolean, attribute: 'no-auth' },
-        };
-    }
-
-    update(changedProperties) {
-        changedProperties.forEach((oldValue, propName) => {
-            if (propName === "lang") {
-                i18n.changeLanguage(this.lang);
-            }
-        });
-
-        super.update(changedProperties);
-    }
-
-    static get styles() {
-        // language=css
-        return css`
-            h1.title {margin-bottom: 1em;}
-            div.container {margin-bottom: 1.5em;}
-        `;
-    }
-
-    getAuthComponentHtml() {
-        return this.noAuth ? html`` : html`
-            <div class="content">
-                <vpu-auth lang="${this.lang}" client-id="${commonUtils.setting('keyCloakClientId')}" load-person remember-login></vpu-auth>
-            </div>
-        `;
-    }
-
-    render() {
-        commonUtils.initAssetBaseURL('vpu-knowledge-base-web-page-element-view-src');
-        const bulmaCSS = commonUtils.getAssetURL(bulmaCSSPath);
-        return html`
-            <link rel="stylesheet" href="${bulmaCSS}">
-            <style>
-                vpu-knowledge-base-web-page-element-view.clean {
-                    --KBBorder: initial;
-                    --KBBorderRadius: initial;
-                    --KBMargin: initial;
-                    --KBPadding: initial;
-                }
-                vpu-knowledge-base-web-page-element-view.opt {
-                    --KBBorder: 2px solid blue;
-                }
-            </style>
- 
-            <section class="section">
-                <div class="container">
-                    <h1 class="title">KnowledgeBaseWebPageElementView-Demo</h1>
-                </div>
-                ${this.getAuthComponentHtml()}
-                <div class="container">
-                    <h2 class="subtitle">Deutsch</h2>
-                    <p>Ein erster Schritt</p>
-                    <vpu-knowledge-base-web-page-element-view lang="de" entry-point-url="${commonUtils.getAPiUrl()}" value="bedienstete/bibliothek/buch-ausleihen" text="Ein Buch ausleihen"></vpu-knowledge-base-web-page-element-view>
-                </div>
-                <div class="container">
-                    <h2 class="subtitle">Englisch</h2>
-                    <p>A first step</p>
-                    <vpu-knowledge-base-web-page-element-view lang="en" entry-point-url="${commonUtils.getAPiUrl()}" value="bedienstete/bibliothek/buch-ausleihen" text="Borrow a book"></vpu-knowledge-base-web-page-element-view>
-                </div>
-                <hr>
-                <div class="container">
-                    <p>mit Text in der WebComponent:</p>
-                    <vpu-knowledge-base-web-page-element-view lang="${this.lang}" value="abc/def/xyz" text="FAQ"></vpu-knowledge-base-web-page-element-view>
-                </div>
-                <hr>
-                <div class="container">
-                    <p>ohne Text in der WebComponent:</p>
-                    Kontaktieren Sie uns unter...
-                    <vpu-knowledge-base-web-page-element-view class="opt" lang="${this.lang}" value="abc/def/klm"></vpu-knowledge-base-web-page-element-view>
-                </div>
-            </section>
-        `;
-    }
-}
-
-commonUtils.defineCustomElement('vpu-knowledge-base-web-page-element-view-demo', KnowledgeBaseWebPageElementViewDemo);
+import './vpu-knowledge-base-web-page-element-view-demo.js';
\ No newline at end of file
diff --git a/packages/knowledge-base-web-page-element-view/src/index.js b/packages/knowledge-base-web-page-element-view/src/index.js
deleted file mode 100644
index ec83d215..00000000
--- a/packages/knowledge-base-web-page-element-view/src/index.js
+++ /dev/null
@@ -1 +0,0 @@
-import './vpu-kb-wpe-view';
diff --git a/packages/knowledge-base-web-page-element-view/src/vpu-knowledge-base-web-page-element-view-demo.js b/packages/knowledge-base-web-page-element-view/src/vpu-knowledge-base-web-page-element-view-demo.js
new file mode 100644
index 00000000..be09b9b6
--- /dev/null
+++ b/packages/knowledge-base-web-page-element-view/src/vpu-knowledge-base-web-page-element-view-demo.js
@@ -0,0 +1,96 @@
+import {i18n} from './i18n';
+import {css, html, LitElement} from 'lit-element';
+import 'vpu-auth';
+import './vpu-knowledge-base-web-page-element-view.js';
+import * as commonUtils from 'vpu-common/utils';
+import bulmaCSSPath from "bulma/css/bulma.min.css";
+
+class KnowledgeBaseWebPageElementViewDemo extends LitElement {
+    constructor() {
+        super();
+        this.lang = 'de';
+        this.noAuth = false;
+    }
+
+    static get properties() {
+        return {
+            lang: { type: String },
+            noAuth: { type: Boolean, attribute: 'no-auth' },
+        };
+    }
+
+    update(changedProperties) {
+        changedProperties.forEach((oldValue, propName) => {
+            if (propName === "lang") {
+                i18n.changeLanguage(this.lang);
+            }
+        });
+
+        super.update(changedProperties);
+    }
+
+    static get styles() {
+        // language=css
+        return css`
+            h1.title {margin-bottom: 1em;}
+            div.container {margin-bottom: 1.5em;}
+        `;
+    }
+
+    getAuthComponentHtml() {
+        return this.noAuth ? html`` : html`
+            <div class="content">
+                <vpu-auth lang="${this.lang}" client-id="${commonUtils.setting('keyCloakClientId')}" load-person remember-login></vpu-auth>
+            </div>
+        `;
+    }
+
+    render() {
+        commonUtils.initAssetBaseURL('vpu-knowledge-base-web-page-element-view-src');
+        const bulmaCSS = commonUtils.getAssetURL(bulmaCSSPath);
+        return html`
+            <link rel="stylesheet" href="${bulmaCSS}">
+            <style>
+                vpu-knowledge-base-web-page-element-view.clean {
+                    --KBBorder: initial;
+                    --KBBorderRadius: initial;
+                    --KBMargin: initial;
+                    --KBPadding: initial;
+                }
+                vpu-knowledge-base-web-page-element-view.opt {
+                    --KBBorder: 2px solid blue;
+                }
+            </style>
+ 
+            <section class="section">
+                <div class="container">
+                    <h1 class="title">KnowledgeBaseWebPageElementView-Demo</h1>
+                </div>
+                ${this.getAuthComponentHtml()}
+                <div class="container">
+                    <h2 class="subtitle">Deutsch</h2>
+                    <p>Ein erster Schritt</p>
+                    <vpu-knowledge-base-web-page-element-view lang="de" entry-point-url="${commonUtils.getAPiUrl()}" value="bedienstete/bibliothek/buch-ausleihen" text="Ein Buch ausleihen"></vpu-knowledge-base-web-page-element-view>
+                </div>
+                <div class="container">
+                    <h2 class="subtitle">Englisch</h2>
+                    <p>A first step</p>
+                    <vpu-knowledge-base-web-page-element-view lang="en" entry-point-url="${commonUtils.getAPiUrl()}" value="bedienstete/bibliothek/buch-ausleihen" text="Borrow a book"></vpu-knowledge-base-web-page-element-view>
+                </div>
+                <hr>
+                <div class="container">
+                    <p>mit Text in der WebComponent:</p>
+                    <vpu-knowledge-base-web-page-element-view lang="${this.lang}" value="abc/def/xyz" text="FAQ"></vpu-knowledge-base-web-page-element-view>
+                </div>
+                <hr>
+                <div class="container">
+                    <p>ohne Text in der WebComponent:</p>
+                    Kontaktieren Sie uns unter...
+                    <vpu-knowledge-base-web-page-element-view class="opt" lang="${this.lang}" value="abc/def/klm"></vpu-knowledge-base-web-page-element-view>
+                </div>
+            </section>
+        `;
+    }
+}
+
+commonUtils.defineCustomElement('vpu-knowledge-base-web-page-element-view-demo', KnowledgeBaseWebPageElementViewDemo);
diff --git a/packages/knowledge-base-web-page-element-view/src/vpu-kb-wpe-view.js b/packages/knowledge-base-web-page-element-view/src/vpu-knowledge-base-web-page-element-view.js
similarity index 100%
rename from packages/knowledge-base-web-page-element-view/src/vpu-kb-wpe-view.js
rename to packages/knowledge-base-web-page-element-view/src/vpu-knowledge-base-web-page-element-view.js
diff --git a/packages/knowledge-base-web-page-element-view/test/unit.js b/packages/knowledge-base-web-page-element-view/test/unit.js
index 24c23287..1dd031e8 100644
--- a/packages/knowledge-base-web-page-element-view/test/unit.js
+++ b/packages/knowledge-base-web-page-element-view/test/unit.js
@@ -1,5 +1,5 @@
-import '../src/vpu-kb-wpe-view';
-import '../src/demo';
+import '../src/vpu-knowledge-base-web-page-element-view.js';
+import '../src/demo.js';
 
 describe('vpu-knowledge-base-web-page-element-view basics', () => {
   let node;
-- 
GitLab