From 48a198cd9bc6e5bc8b04b85582b9cb10f60aeb5c Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Mon, 20 Apr 2020 11:03:52 +0200
Subject: [PATCH] Port to scoped elements

The demo now registers our web components lazily with a unique name
so that two different apps using the same underlying web compontens
don't clash.

This also disables auto registering and leaves that to the user.
---
 packages/language-select/package.json           |  3 ++-
 packages/language-select/src/index.js           |  3 +++
 .../src/vpu-language-select-demo.js             | 17 ++++++++++++-----
 .../language-select/src/vpu-language-select.js  |  7 ++-----
 packages/language-select/test/unit.js           |  6 +++++-
 packages/language-select/vendor/common          |  2 +-
 6 files changed, 25 insertions(+), 13 deletions(-)
 create mode 100644 packages/language-select/src/index.js

diff --git a/packages/language-select/package.json b/packages/language-select/package.json
index 44d2844a..15894f26 100644
--- a/packages/language-select/package.json
+++ b/packages/language-select/package.json
@@ -1,7 +1,7 @@
 {
   "name": "vpu-language-select",
   "version": "1.0.0",
-  "main": "src/vpu-language-select.js",
+  "main": "src/index.js",
   "devDependencies": {
     "karma": "^5.0.1",
     "karma-chai": "^0.1.0",
@@ -24,6 +24,7 @@
     "vpu-common": "file:./vendor/common"
   },
   "dependencies": {
+    "@open-wc/scoped-elements": "^1.0.8",
     "lit-element": "^2.2.1"
   },
   "scripts": {
diff --git a/packages/language-select/src/index.js b/packages/language-select/src/index.js
new file mode 100644
index 00000000..e1285c70
--- /dev/null
+++ b/packages/language-select/src/index.js
@@ -0,0 +1,3 @@
+import {LanguageSelect} from './vpu-language-select.js';
+
+export {LanguageSelect};
\ No newline at end of file
diff --git a/packages/language-select/src/vpu-language-select-demo.js b/packages/language-select/src/vpu-language-select-demo.js
index 6d690c5d..6c3dde30 100644
--- a/packages/language-select/src/vpu-language-select-demo.js
+++ b/packages/language-select/src/vpu-language-select-demo.js
@@ -1,6 +1,8 @@
-import {html, LitElement, css} from 'lit-element';
-import './vpu-language-select.js';
+import {html, LitElement} from 'lit-element';
+import {LanguageSelect} from './vpu-language-select.js';
 import * as commonUtils from 'vpu-common/utils';
+import { ScopedElementsMixin } from '@open-wc/scoped-elements';
+
 
 class LanguageSelectDisplay extends LitElement {
 
@@ -35,14 +37,19 @@ class LanguageSelectDisplay extends LitElement {
     }
 }
 
-commonUtils.defineCustomElement('vpu-language-select-display', LanguageSelectDisplay);
-
-class LanguageSelectDemo extends LitElement {
+class LanguageSelectDemo extends ScopedElementsMixin(LitElement) {
 
     constructor() {
         super();
     }
 
+    static get scopedElements() {
+        return {
+          'vpu-language-select': LanguageSelect,
+          'vpu-language-select-display': LanguageSelectDisplay,
+        };
+      }
+
     render() {
         return html`
             Select 1: <vpu-language-select></vpu-language-select>
diff --git a/packages/language-select/src/vpu-language-select.js b/packages/language-select/src/vpu-language-select.js
index bc9e6091..27cd64e1 100644
--- a/packages/language-select/src/vpu-language-select.js
+++ b/packages/language-select/src/vpu-language-select.js
@@ -1,12 +1,11 @@
 import {html, css, LitElement} from 'lit-element';
 import {i18n} from './i18n.js';
-import * as commonUtils from 'vpu-common/utils';
 import * as commonStyles from 'vpu-common/styles';
 
 /**
  * Emits a vpu-language-changed event where event.detail.lang is the new selected language
  */
-class LanguageSelect extends LitElement {
+export class LanguageSelect extends LitElement {
 
     constructor() {
         super();
@@ -131,6 +130,4 @@ class LanguageSelect extends LitElement {
             <a href="#" title="${linkTitle}" @click=${this.onClick}>${this.next.toUpperCase()}</a>
         `;
     }
-}
-
-commonUtils.defineCustomElement('vpu-language-select', LanguageSelect);
+}
\ No newline at end of file
diff --git a/packages/language-select/test/unit.js b/packages/language-select/test/unit.js
index b79ca875..92e51f10 100644
--- a/packages/language-select/test/unit.js
+++ b/packages/language-select/test/unit.js
@@ -1,6 +1,10 @@
-import '../src/vpu-language-select.js';
+import {LanguageSelect} from '../src/vpu-language-select.js';
+import * as commonUtils from 'vpu-common/utils';
 import '../src/demo.js';
 
+
+commonUtils.defineCustomElement('vpu-language-select', LanguageSelect);
+
 describe('vpu-language-select basics', () => {
   let node;
   let events = [];
diff --git a/packages/language-select/vendor/common b/packages/language-select/vendor/common
index 894bf3f1..0f626c7a 160000
--- a/packages/language-select/vendor/common
+++ b/packages/language-select/vendor/common
@@ -1 +1 @@
-Subproject commit 894bf3f1f7d8d2d2746c98bc24ff6a3fb82618b8
+Subproject commit 0f626c7a2051ec37606242d46f42d9790b6f0bcc
-- 
GitLab