diff --git a/ts_web/00_commitinfo_data.ts b/ts_web/00_commitinfo_data.ts index 8ce6e88..04ab996 100644 --- a/ts_web/00_commitinfo_data.ts +++ b/ts_web/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@uptime.link/webwidget', - version: '1.0.73', + version: '1.0.74', description: 'the webwidget for public use of uptimelink' } diff --git a/ts_web/elements/uptimelink b/ts_web/elements/uptimelink new file mode 100644 index 0000000..e69de29 diff --git a/ts_web/elements/uptimelink-webwidget.ts b/ts_web/elements/uptimelink-webwidget.ts index b937411..eff93a0 100644 --- a/ts_web/elements/uptimelink-webwidget.ts +++ b/ts_web/elements/uptimelink-webwidget.ts @@ -1,5 +1,6 @@ -import { DeesElement, property, html, customElement, type TemplateResult } from '@design.estate/dees-element'; -import * as domtools from '@design.estate/dees-domtools'; +import { DeesElement, property, html, customElement, type TemplateResult, cssManager } from '@design.estate/dees-element'; + +import { UptimelinkWindowLayer } from './uptimelink-windowlayer.js'; declare global { interface HTMLElementTagNameMap { @@ -13,6 +14,11 @@ export class UptimelinkWebwidget extends DeesElement { `; + @property({ + type: Boolean + }) + isOnTop = false; + @property() public projectSlug: string; @@ -27,19 +33,21 @@ export class UptimelinkWebwidget extends DeesElement { constructor() { super(); - domtools.DomTools.setupDomTools(); this.setupEventing(); } + public static styles = [ + cssManager.defaultStyles, + ] + public render(): TemplateResult { return html` - ${domtools.elementBasic.styles} +
+ +
+ `; + } + + firstUpdated() { + setTimeout(() => { + this.visible = true; + }, 100); + } + + dispatchClicked() { + this.dispatchEvent(new CustomEvent('clicked')); + } + + public toggleVisibility () { + this.visible = !this.visible; + } + + public async show() { + const domtools = await this.domtoolsPromise; + await domtools.convenience.smartdelay.delayFor(0); + this.visible = true; + } + + public async hide() { + const domtools = await this.domtoolsPromise; + await domtools.convenience.smartdelay.delayFor(0); + this.visible = false; + } + + public async destroy() { + const domtools = await this.domtoolsPromise; + await this.hide(); + await domtools.convenience.smartdelay.delayFor(300); + this.remove(); + } +}