diff --git a/packages/tooltip/assets/favicon.ico b/packages/tooltip/assets/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..f6cf22d1afc22f071d2b64c7779bc5214c3adae5 Binary files /dev/null and b/packages/tooltip/assets/favicon.ico differ diff --git a/packages/tooltip/assets/index.html.ejs b/packages/tooltip/assets/index.html.ejs index d6d81fb623ae039e789bc1976d1b76f9914ce38d..e91e6887c4fccec625cc5a5cccc1b6eefec09b16 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 0fbc7fbf6a8053c3d195c3776b7ac345cc1108cc..b0d23052d642532524af9a4c112e3370f31fb418 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 7e294b0a68d1f051ba46eb860b6f947bb54c19eb..a4d7e1e25ce3da5d5abf93aa39b0784e1de7057c 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 37cd03589041e00a273a49a605d9ff46d7cfe24d..8bfa72cb977d772b4a242a6fec1dd50c73bbdc5b 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 0000000000000000000000000000000000000000..007cddaac9d48ccb68aa0230433cc3e46af9ae57 --- /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); + }); + }); +