@nopwdio/sdk-js
Version:
Nopwd JS SDK
35 lines (27 loc) • 2.53 kB
JavaScript
import{c as b}from"../chunk-MI4LMNWM.js";import{c as u,i as d,j as g}from"../chunk-PJMUNIPM.js";import{a as s}from"../chunk-HHPIKOXT.js";import{a as p,b as m}from"../chunk-325E7D5T.js";import{a as c,b as e,d as i,e as l,f as a}from"../chunk-X5RZB7NH.js";import"../chunk-4DGRMKHT.js";import"../chunk-XGY7T5A3.js";import"../chunk-VS4C5FIV.js";import"../chunk-EX74VC7J.js";import{a as o}from"../chunk-JFKSI6I7.js";var h=c`
:host {
display: flex;
}
button {
display: flex;
flex-grow: 1;
gap: var(--np-component-icon-gap);
justify-content: center;
align-items: center;
margin: 0;
padding: var(--np-component-padding);
border: solid var(--np-component-border-color) var(--np-component-border-width);
border-radius: var(--np-component-border-radius);
font-size: var(--np-component-font-size);
font-weight: var(--np-component-font-weight);
color: var(--np-component-text-color);
background-color: var(--np-component-background-color);
}
:host {
--np-component-border-color: var(--np-core-color-black);
--np-component-text-color: var(--np-core-color-white);
--np-component-background-color: var(--np-core-color-black);
}
`;var f=(r=>(r.LOGGINGOUT="loggingout",r.LOGGEDOUT="loggedout",r.ERROR="error",r))(f||{}),t=class extends i{constructor(){super(...arguments);this.state=void 0;this.resetDuration=2e3}async connectedCallback(){super.connectedCallback()}async disconnectedCallback(){super.disconnectedCallback()}async logout(){if(!this.state)try{this.state="loggingout",await b(),this.state="loggedout",await this.signalSuccess()}catch(n){return this.signalError(n)}}async onClick(){await this.logout()}async signalSuccess(){this.state="loggedout",this.dispatchEvent(new CustomEvent("np:logout",{composed:!0,cancelable:!0,bubbles:!0})),await s(this.resetDuration),this.state=void 0}async signalError(n){this.state="error",this.dispatchEvent(new CustomEvent("np:error",{composed:!0,cancelable:!0,bubbles:!0,detail:n})),await s(this.resetDuration),this.state=void 0}render(){return e`<button @click=${this.onClick} part="button">
${this.state?this.state==="loggingout"?e`${d}<slot name="loggingout">Logging out...</slot>`:this.state==="loggedout"?e`${u}<slot name="loggedout">Logged out!</slot>`:e`${g}<slot name="error">Logout</slot>`:e`<slot>Logout</slot>`}
</button>`}};t.styles=[p,m,h],o([a({reflect:!0})],t.prototype,"state",2),o([a({type:Number})],t.prototype,"resetDuration",2),t=o([l("np-logout")],t);export{t as NpLogout,f as State};