From 0fb2790faffbc0309ecb7a36c1e5c0132987d5d6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christina=20T=C3=B6gl?= <toegl@tugraz.at>
Date: Wed, 8 Sep 2021 16:07:52 +0200
Subject: [PATCH] Add icon and include css

---
 packages/tooltip/assets/favicon.ico      | Bin 0 -> 2550 bytes
 packages/tooltip/assets/index.html.ejs   |   1 +
 packages/tooltip/rollup.config.js        |   1 +
 packages/tooltip/src/dbp-tooltip-demo.js |   8 ++-
 packages/tooltip/src/tooltip.js          |  60 ++++++++++++++++++-----
 packages/tooltip/test/unit.js            |  21 ++++++++
 6 files changed, 79 insertions(+), 12 deletions(-)
 create mode 100644 packages/tooltip/assets/favicon.ico
 create mode 100644 packages/tooltip/test/unit.js

diff --git a/packages/tooltip/assets/favicon.ico b/packages/tooltip/assets/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..f6cf22d1afc22f071d2b64c7779bc5214c3adae5
GIT binary patch
literal 2550
zcmeH{J!@1^5Qg9Qfi}@C1S=tFL@SHw1R=k|!X_wkl3I{dku4;hA_M{lL{exWVu~Os
z1S^fr9!$4EB!X-a459`s0v5+-W+QHv-9Sty-ek_b^WOP*?wq?<8qpCo8sdCX)5oRr
z(yl+I>0{D;v<t3bW0=SJF)<RS?$UEzYelP?S6lT<(cAVnwKq5Q;OTQ@<6gotRwQ?g
z#n24RTqEB@5_;kyp(pf&?r9l4qi39qp3ym}pcnLlUJwd;#jp6aMA=G1qqtGXNHRDb
z$zU)T3<iV2U<f1_3<iV2U@#a069$99U@#aAhCqkGU@#aA27|$9U~m{5796$vctMi5
z&RD_F{gGiwG*2{26iu+i7`U0ZNU$VWVk~eZI1(HQjs!=H3XTLrf+4}+qf2lk7!nM{
zpPMyCNT2Q>evH?r0~Nh9Q88+IXP7cgGYv9KnckV3nIf6qnclG-(Houqnf{snzD1e-
znb~9*G7Opb#J7#9#M7g2X7z1k28DhFwgN|?Uu>;&FoOa|aSk3Vwwt5^OM#^TQD_*i
z04#;XLQp{{u<(yjhdn8<6rV@1_}k#SfCfW_p~6sMs4!F*;&p<dz))eRFccUlgAory
zg`vVwVW2dI4nu{Z!cYOI^e+^vBvyhFH4=V;qeg9yNgCG^O-@c~W@binb8}i)SWv6g
z((>}M*4Njyv9X~}r=zW{Ep2aaYiDOi-+xv;UR+eO*<`x@8}JkL!t=WBRy}G@sd4mn
z*v(Pt!_taYX0PkU*(t3qz1IAzdA*#yrz<B$_5Rc|T|0M2FK(UD)yp6C?%`L>uKv*H
zOH*2FtjRhnYF&IoheIDnIC_ih_1%j@zADy!zenswML;)xxAGnbt>5njILLK(wlVIQ
z^CxEQ)*SEJUA~iU_4KaAUi^vQ`<)$&))Rb#{~!BJpnvN7#SXgnxB2~fgM9DTum5J~
r*9Z9r$sZIutmdHDLE3)#9zX2p&l?suOh0V?u)6<--anm#erJ9GA@oeM

literal 0
HcmV?d00001

diff --git a/packages/tooltip/assets/index.html.ejs b/packages/tooltip/assets/index.html.ejs
index d6d81fb6..e91e6887 100644
--- a/packages/tooltip/assets/index.html.ejs
+++ b/packages/tooltip/assets/index.html.ejs
@@ -3,6 +3,7 @@
 <head>
     <meta charset="UTF-8">
     <script type="module" src="dbp-tooltip-demo.js"></script>
+    <style src="tippy.css"></style>
 </head>
 
 <body>
diff --git a/packages/tooltip/rollup.config.js b/packages/tooltip/rollup.config.js
index 0fbc7fbf..b0d23052 100644
--- a/packages/tooltip/rollup.config.js
+++ b/packages/tooltip/rollup.config.js
@@ -74,6 +74,7 @@ export default (async () => {
                 limit: 0,
                 include: [
                     await getPackagePath('select2', '**/*.css'),
+                    await getPackagePath('tippy.js', '**/*.css'),
                 ],
                 emitFiles: true,
                 fileName: 'shared/[name].[hash][extname]'
diff --git a/packages/tooltip/src/dbp-tooltip-demo.js b/packages/tooltip/src/dbp-tooltip-demo.js
index 7e294b0a..a4d7e1e2 100644
--- a/packages/tooltip/src/dbp-tooltip-demo.js
+++ b/packages/tooltip/src/dbp-tooltip-demo.js
@@ -5,6 +5,7 @@ import * as commonUtils from '@dbp-toolkit/common/utils';
 import * as commonStyles from '@dbp-toolkit/common/styles';
 import {TooltipElement} from './tooltip';
 import DBPLitElement from "@dbp-toolkit/common/dbp-lit-element";
+import tippy2CSSPath from 'tippy.js/dist/tippy.css';
 
 
 export class TooltipDemo extends ScopedElementsMixin(DBPLitElement) {
@@ -52,13 +53,18 @@ export class TooltipDemo extends ScopedElementsMixin(DBPLitElement) {
 
     render() {
 
+        const tippy2CSS = commonUtils.getAssetURL(tippy2CSSPath);
+
         return html`
+
+            <link rel="stylesheet" href="${tippy2CSS}">
+
             <section class="section">
                 <div class="container">
                     <h1 class="title">Tooltip-Demo</h1>
                 </div>
                 <div class="container">
-                    <dbp-tooltip></dbp-tooltip>
+                    <dbp-tooltip text-content="tippy tooltip demo text"></dbp-tooltip>
                 </div>
             </section>
         `;
diff --git a/packages/tooltip/src/tooltip.js b/packages/tooltip/src/tooltip.js
index 37cd0358..8bfa72cb 100644
--- a/packages/tooltip/src/tooltip.js
+++ b/packages/tooltip/src/tooltip.js
@@ -1,32 +1,70 @@
+import {css, html} from 'lit-element';
+import {ScopedElementsMixin} from '@open-wc/scoped-elements';
+import * as commonUtils from '@dbp-toolkit/common/utils';
+import * as commonStyles from '@dbp-toolkit/common/styles';
 import DBPLitElement from '@dbp-toolkit/common/dbp-lit-element';
 import tippy from 'tippy.js';
-//import 'tippy.js/dist/tippy.css';
-console.dir(tippy);
+import {Icon} from '@dbp-toolkit/common';
+import tippy2CSSPath from 'tippy.js/dist/tippy.css';
 
-export class TooltipElement extends DBPLitElement {
+export class TooltipElement extends ScopedElementsMixin(DBPLitElement) {
 
     constructor() {
         super();
-        this.gitInfo = '';
+        this.tippy = '';
+        this.textContent = '';
     }
 
+    static get scopedElements() {
+        return {
+            'dbp-icon': Icon,
+        };
+    }
 
     static get properties() {
         return {
             ...super.properties,
-            gitInfo: { type: String, attribute: 'git-info' },
+            tippy: { type: Object, attribute: false },
+            textContent: { type: String, attribute: 'text-content' },
         };
     }
 
+    firstUpdated() {
+
+        tippy(this._('#tooltip-icon'), {
+            content: this.textContent,
+        });
+    }
+
+    static get styles() {
+        // language=css
+        return css`
+            ${commonStyles.getThemeCSS()}
+            ${commonStyles.getGeneralCSS(false)}
+            ${commonStyles.getButtonCSS()}
+
+            .info-icon {
+                color: red;
+                padding: 0px 4px;
+            }
+
+        `;
+    }
+
     render() {
-        // tippy('#myButton', {
-        //     content: "I'm a Tippy tooltip!",
-        // });
+
+        const tippy2CSS = commonUtils.getAssetURL(tippy2CSSPath);
+       
+        if (this._('#tooltip-icon')) {
+            this.tippy = tippy(this._('#tooltip-icon'), { content: this.textContent });
+        }
 
         return html`
-        <div>
-            <button id="myButton">My Button</button>
-        </div>
+            <link rel="stylesheet" href="${tippy2CSS}">
+            <div>
+                <dbp-icon name='information' class="info-icon" id="tooltip-icon"></dbp-icon>
+            </div>
+            
         `;
     }
 
diff --git a/packages/tooltip/test/unit.js b/packages/tooltip/test/unit.js
new file mode 100644
index 00000000..007cddaa
--- /dev/null
+++ b/packages/tooltip/test/unit.js
@@ -0,0 +1,21 @@
+import {assert} from '@esm-bundle/chai';
+import '../src/dbp-tooltip';
+
+suite('dbp-tooltip', () => {
+    let node;
+  
+    setup(async () => {
+      node = document.createElement('dbp-tooltip');
+      document.body.appendChild(node);
+      await node.updateComplete;
+    });
+  
+    teardown(() => {
+      node.remove();
+    });
+  
+    test('should render', () => {
+      assert.isNotNull(node.shadowRoot);
+    });
+  });
+  
-- 
GitLab