2023-05-17 13:51:30 +02:00
import { W , k as k$1 , a as a$2 , L , b as P$1 , A as A$1 , d as d$2 , g as g$2 } from "./_page-c7f5b369.js" ;
2023-02-27 07:03:31 +01:00
import { d as dijkstraExports } from "./dijkstra-cb1f074b.js" ;
/ * *
* @ license
* Copyright 2019 Google LLC
* SPDX - License - Identifier : BSD - 3 - Clause
* /
const t$3 = window , e$5 = t$3 . ShadowRoot && ( void 0 === t$3 . ShadyCSS || t$3 . ShadyCSS . nativeShadow ) && "adoptedStyleSheets" in Document . prototype && "replace" in CSSStyleSheet . prototype , s$3 = Symbol ( ) , n$4 = /* @__PURE__ */ new WeakMap ( ) ;
let o$4 = class o {
constructor ( t2 , e2 , n2 ) {
if ( this . _$cssResult$ = true , n2 !== s$3 )
throw Error ( "CSSResult is not constructable. Use `unsafeCSS` or `css` instead." ) ;
this . cssText = t2 , this . t = e2 ;
}
get styleSheet ( ) {
let t2 = this . o ;
const s2 = this . t ;
if ( e$5 && void 0 === t2 ) {
const e2 = void 0 !== s2 && 1 === s2 . length ;
e2 && ( t2 = n$4 . get ( s2 ) ) , void 0 === t2 && ( ( this . o = t2 = new CSSStyleSheet ( ) ) . replaceSync ( this . cssText ) , e2 && n$4 . set ( s2 , t2 ) ) ;
}
return t2 ;
}
toString ( ) {
return this . cssText ;
}
} ;
const r$2 = ( t2 ) => new o$4 ( "string" == typeof t2 ? t2 : t2 + "" , void 0 , s$3 ) , i$3 = ( t2 , ... e2 ) => {
const n2 = 1 === t2 . length ? t2 [ 0 ] : e2 . reduce ( ( e3 , s2 , n3 ) => e3 + ( ( t3 ) => {
if ( true === t3 . _$cssResult$ )
return t3 . cssText ;
if ( "number" == typeof t3 )
return t3 ;
throw Error ( "Value passed to 'css' function must be a 'css' function result: " + t3 + ". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security." ) ;
} ) ( s2 ) + t2 [ n3 + 1 ] , t2 [ 0 ] ) ;
return new o$4 ( n2 , t2 , s$3 ) ;
} , S$1 = ( s2 , n2 ) => {
e$5 ? s2 . adoptedStyleSheets = n2 . map ( ( t2 ) => t2 instanceof CSSStyleSheet ? t2 : t2 . styleSheet ) : n2 . forEach ( ( e2 ) => {
const n3 = document . createElement ( "style" ) , o3 = t$3 . litNonce ;
void 0 !== o3 && n3 . setAttribute ( "nonce" , o3 ) , n3 . textContent = e2 . cssText , s2 . appendChild ( n3 ) ;
} ) ;
} , c$1 = e$5 ? ( t2 ) => t2 : ( t2 ) => t2 instanceof CSSStyleSheet ? ( ( t3 ) => {
let e2 = "" ;
for ( const s2 of t3 . cssRules )
e2 += s2 . cssText ;
return r$2 ( e2 ) ;
} ) ( t2 ) : t2 ;
/ * *
* @ license
* Copyright 2017 Google LLC
* SPDX - License - Identifier : BSD - 3 - Clause
* /
var s$2 ;
const e$4 = window , r$1 = e$4 . trustedTypes , h$2 = r$1 ? r$1 . emptyScript : "" , o$3 = e$4 . reactiveElementPolyfillSupport , n$3 = { toAttribute ( t2 , i2 ) {
switch ( i2 ) {
case Boolean :
t2 = t2 ? h$2 : null ;
break ;
case Object :
case Array :
t2 = null == t2 ? t2 : JSON . stringify ( t2 ) ;
}
return t2 ;
} , fromAttribute ( t2 , i2 ) {
let s2 = t2 ;
switch ( i2 ) {
case Boolean :
s2 = null !== t2 ;
break ;
case Number :
s2 = null === t2 ? null : Number ( t2 ) ;
break ;
case Object :
case Array :
try {
s2 = JSON . parse ( t2 ) ;
} catch ( t3 ) {
s2 = null ;
}
}
return s2 ;
} } , a$1 = ( t2 , i2 ) => i2 !== t2 && ( i2 == i2 || t2 == t2 ) , l$3 = { attribute : true , type : String , converter : n$3 , reflect : false , hasChanged : a$1 } ;
let d$1 = class d extends HTMLElement {
constructor ( ) {
super ( ) , this . _$Ei = /* @__PURE__ */ new Map ( ) , this . isUpdatePending = false , this . hasUpdated = false , this . _$El = null , this . u ( ) ;
}
static addInitializer ( t2 ) {
var i2 ;
this . finalize ( ) , ( null !== ( i2 = this . h ) && void 0 !== i2 ? i2 : this . h = [ ] ) . push ( t2 ) ;
}
static get observedAttributes ( ) {
this . finalize ( ) ;
const t2 = [ ] ;
return this . elementProperties . forEach ( ( i2 , s2 ) => {
const e2 = this . _$Ep ( s2 , i2 ) ;
void 0 !== e2 && ( this . _$Ev . set ( e2 , s2 ) , t2 . push ( e2 ) ) ;
} ) , t2 ;
}
static createProperty ( t2 , i2 = l$3 ) {
if ( i2 . state && ( i2 . attribute = false ) , this . finalize ( ) , this . elementProperties . set ( t2 , i2 ) , ! i2 . noAccessor && ! this . prototype . hasOwnProperty ( t2 ) ) {
const s2 = "symbol" == typeof t2 ? Symbol ( ) : "__" + t2 , e2 = this . getPropertyDescriptor ( t2 , s2 , i2 ) ;
void 0 !== e2 && Object . defineProperty ( this . prototype , t2 , e2 ) ;
}
}
static getPropertyDescriptor ( t2 , i2 , s2 ) {
return { get ( ) {
return this [ i2 ] ;
} , set ( e2 ) {
const r2 = this [ t2 ] ;
this [ i2 ] = e2 , this . requestUpdate ( t2 , r2 , s2 ) ;
} , configurable : true , enumerable : true } ;
}
static getPropertyOptions ( t2 ) {
return this . elementProperties . get ( t2 ) || l$3 ;
}
static finalize ( ) {
if ( this . hasOwnProperty ( "finalized" ) )
return false ;
this . finalized = true ;
const t2 = Object . getPrototypeOf ( this ) ;
if ( t2 . finalize ( ) , void 0 !== t2 . h && ( this . h = [ ... t2 . h ] ) , this . elementProperties = new Map ( t2 . elementProperties ) , this . _$Ev = /* @__PURE__ */ new Map ( ) , this . hasOwnProperty ( "properties" ) ) {
const t3 = this . properties , i2 = [ ... Object . getOwnPropertyNames ( t3 ) , ... Object . getOwnPropertySymbols ( t3 ) ] ;
for ( const s2 of i2 )
this . createProperty ( s2 , t3 [ s2 ] ) ;
}
return this . elementStyles = this . finalizeStyles ( this . styles ) , true ;
}
static finalizeStyles ( i2 ) {
const s2 = [ ] ;
if ( Array . isArray ( i2 ) ) {
const e2 = new Set ( i2 . flat ( 1 / 0 ) . reverse ( ) ) ;
for ( const i3 of e2 )
s2 . unshift ( c$1 ( i3 ) ) ;
} else
void 0 !== i2 && s2 . push ( c$1 ( i2 ) ) ;
return s2 ;
}
static _$Ep ( t2 , i2 ) {
const s2 = i2 . attribute ;
return false === s2 ? void 0 : "string" == typeof s2 ? s2 : "string" == typeof t2 ? t2 . toLowerCase ( ) : void 0 ;
}
u ( ) {
var t2 ;
this . _$E _ = new Promise ( ( t3 ) => this . enableUpdating = t3 ) , this . _$AL = /* @__PURE__ */ new Map ( ) , this . _$Eg ( ) , this . requestUpdate ( ) , null === ( t2 = this . constructor . h ) || void 0 === t2 || t2 . forEach ( ( t3 ) => t3 ( this ) ) ;
}
addController ( t2 ) {
var i2 , s2 ;
( null !== ( i2 = this . _$ES ) && void 0 !== i2 ? i2 : this . _$ES = [ ] ) . push ( t2 ) , void 0 !== this . renderRoot && this . isConnected && ( null === ( s2 = t2 . hostConnected ) || void 0 === s2 || s2 . call ( t2 ) ) ;
}
removeController ( t2 ) {
var i2 ;
null === ( i2 = this . _$ES ) || void 0 === i2 || i2 . splice ( this . _$ES . indexOf ( t2 ) >>> 0 , 1 ) ;
}
_$Eg ( ) {
this . constructor . elementProperties . forEach ( ( t2 , i2 ) => {
this . hasOwnProperty ( i2 ) && ( this . _$Ei . set ( i2 , this [ i2 ] ) , delete this [ i2 ] ) ;
} ) ;
}
createRenderRoot ( ) {
var t2 ;
const s2 = null !== ( t2 = this . shadowRoot ) && void 0 !== t2 ? t2 : this . attachShadow ( this . constructor . shadowRootOptions ) ;
return S$1 ( s2 , this . constructor . elementStyles ) , s2 ;
}
connectedCallback ( ) {
var t2 ;
void 0 === this . renderRoot && ( this . renderRoot = this . createRenderRoot ( ) ) , this . enableUpdating ( true ) , null === ( t2 = this . _$ES ) || void 0 === t2 || t2 . forEach ( ( t3 ) => {
var i2 ;
return null === ( i2 = t3 . hostConnected ) || void 0 === i2 ? void 0 : i2 . call ( t3 ) ;
} ) ;
}
enableUpdating ( t2 ) {
}
disconnectedCallback ( ) {
var t2 ;
null === ( t2 = this . _$ES ) || void 0 === t2 || t2 . forEach ( ( t3 ) => {
var i2 ;
return null === ( i2 = t3 . hostDisconnected ) || void 0 === i2 ? void 0 : i2 . call ( t3 ) ;
} ) ;
}
attributeChangedCallback ( t2 , i2 , s2 ) {
this . _$AK ( t2 , s2 ) ;
}
_$EO ( t2 , i2 , s2 = l$3 ) {
var e2 ;
const r2 = this . constructor . _$Ep ( t2 , s2 ) ;
if ( void 0 !== r2 && true === s2 . reflect ) {
const h2 = ( void 0 !== ( null === ( e2 = s2 . converter ) || void 0 === e2 ? void 0 : e2 . toAttribute ) ? s2 . converter : n$3 ) . toAttribute ( i2 , s2 . type ) ;
this . _$El = t2 , null == h2 ? this . removeAttribute ( r2 ) : this . setAttribute ( r2 , h2 ) , this . _$El = null ;
}
}
_$AK ( t2 , i2 ) {
var s2 ;
const e2 = this . constructor , r2 = e2 . _$Ev . get ( t2 ) ;
if ( void 0 !== r2 && this . _$El !== r2 ) {
const t3 = e2 . getPropertyOptions ( r2 ) , h2 = "function" == typeof t3 . converter ? { fromAttribute : t3 . converter } : void 0 !== ( null === ( s2 = t3 . converter ) || void 0 === s2 ? void 0 : s2 . fromAttribute ) ? t3 . converter : n$3 ;
this . _$El = r2 , this [ r2 ] = h2 . fromAttribute ( i2 , t3 . type ) , this . _$El = null ;
}
}
requestUpdate ( t2 , i2 , s2 ) {
let e2 = true ;
void 0 !== t2 && ( ( ( s2 = s2 || this . constructor . getPropertyOptions ( t2 ) ) . hasChanged || a$1 ) ( this [ t2 ] , i2 ) ? ( this . _$AL . has ( t2 ) || this . _$AL . set ( t2 , i2 ) , true === s2 . reflect && this . _$El !== t2 && ( void 0 === this . _$EC && ( this . _$EC = /* @__PURE__ */ new Map ( ) ) , this . _$EC . set ( t2 , s2 ) ) ) : e2 = false ) , ! this . isUpdatePending && e2 && ( this . _$E _ = this . _$Ej ( ) ) ;
}
async _$Ej ( ) {
this . isUpdatePending = true ;
try {
await this . _$E _ ;
} catch ( t3 ) {
Promise . reject ( t3 ) ;
}
const t2 = this . scheduleUpdate ( ) ;
return null != t2 && await t2 , ! this . isUpdatePending ;
}
scheduleUpdate ( ) {
return this . performUpdate ( ) ;
}
performUpdate ( ) {
var t2 ;
if ( ! this . isUpdatePending )
return ;
this . hasUpdated , this . _$Ei && ( this . _$Ei . forEach ( ( t3 , i3 ) => this [ i3 ] = t3 ) , this . _$Ei = void 0 ) ;
let i2 = false ;
const s2 = this . _$AL ;
try {
i2 = this . shouldUpdate ( s2 ) , i2 ? ( this . willUpdate ( s2 ) , null === ( t2 = this . _$ES ) || void 0 === t2 || t2 . forEach ( ( t3 ) => {
var i3 ;
return null === ( i3 = t3 . hostUpdate ) || void 0 === i3 ? void 0 : i3 . call ( t3 ) ;
} ) , this . update ( s2 ) ) : this . _$Ek ( ) ;
} catch ( t3 ) {
throw i2 = false , this . _$Ek ( ) , t3 ;
}
i2 && this . _$AE ( s2 ) ;
}
willUpdate ( t2 ) {
}
_$AE ( t2 ) {
var i2 ;
null === ( i2 = this . _$ES ) || void 0 === i2 || i2 . forEach ( ( t3 ) => {
var i3 ;
return null === ( i3 = t3 . hostUpdated ) || void 0 === i3 ? void 0 : i3 . call ( t3 ) ;
} ) , this . hasUpdated || ( this . hasUpdated = true , this . firstUpdated ( t2 ) ) , this . updated ( t2 ) ;
}
_$Ek ( ) {
this . _$AL = /* @__PURE__ */ new Map ( ) , this . isUpdatePending = false ;
}
get updateComplete ( ) {
return this . getUpdateComplete ( ) ;
}
getUpdateComplete ( ) {
return this . _$E _ ;
}
shouldUpdate ( t2 ) {
return true ;
}
update ( t2 ) {
void 0 !== this . _$EC && ( this . _$EC . forEach ( ( t3 , i2 ) => this . _$EO ( i2 , this [ i2 ] , t3 ) ) , this . _$EC = void 0 ) , this . _$Ek ( ) ;
}
updated ( t2 ) {
}
firstUpdated ( t2 ) {
}
} ;
d$1 . finalized = true , d$1 . elementProperties = /* @__PURE__ */ new Map ( ) , d$1 . elementStyles = [ ] , d$1 . shadowRootOptions = { mode : "open" } , null == o$3 || o$3 ( { ReactiveElement : d$1 } ) , ( null !== ( s$2 = e$4 . reactiveElementVersions ) && void 0 !== s$2 ? s$2 : e$4 . reactiveElementVersions = [ ] ) . push ( "1.6.1" ) ;
/ * *
* @ license
* Copyright 2017 Google LLC
* SPDX - License - Identifier : BSD - 3 - Clause
* /
var t$2 ;
const i$2 = window , s$1 = i$2 . trustedTypes , e$3 = s$1 ? s$1 . createPolicy ( "lit-html" , { createHTML : ( t2 ) => t2 } ) : void 0 , o$2 = ` lit $ ${ ( Math . random ( ) + "" ) . slice ( 9 ) } $ ` , n$2 = "?" + o$2 , l$2 = ` < ${ n$2 } > ` , h$1 = document , r = ( t2 = "" ) => h$1 . createComment ( t2 ) , d2 = ( t2 ) => null === t2 || "object" != typeof t2 && "function" != typeof t2 , u$1 = Array . isArray , c = ( t2 ) => u$1 ( t2 ) || "function" == typeof ( null == t2 ? void 0 : t2 [ Symbol . iterator ] ) , v = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g , a = /-->/g , f = />/g , _ = RegExp ( ` >|[
\ f \ r ] ( ? : ( [ ^ \ \ s " ' >= / ] + ) ( [
\ f \ r ] *= [
\ f \ r ] * ( ? : [ ^
\ f \ r "'\`<>=]|(" | ')|))|$)`, "g"), m = /' / g , p = /"/g , $ = /^(?:script|style|textarea|title)$/i , g$1 = ( t2 ) => ( i2 , ... s2 ) => ( { _$litType$ : t2 , strings : i2 , values : s2 } ) , y = g$1 ( 1 ) , w = g$1 ( 2 ) , x = Symbol . for ( "lit-noChange" ) , b = Symbol . for ( "lit-nothing" ) , T = /* @__PURE__ */ new WeakMap ( ) , A = h$1 . createTreeWalker ( h$1 , 129 , null , false ) , E = ( t2 , i2 ) => {
const s2 = t2 . length - 1 , n2 = [ ] ;
let h2 , r2 = 2 === i2 ? "<svg>" : "" , d3 = v ;
for ( let i3 = 0 ; i3 < s2 ; i3 ++ ) {
const s3 = t2 [ i3 ] ;
let e2 , u3 , c2 = - 1 , g2 = 0 ;
for ( ; g2 < s3 . length && ( d3 . lastIndex = g2 , u3 = d3 . exec ( s3 ) , null !== u3 ) ; )
g2 = d3 . lastIndex , d3 === v ? "!--" === u3 [ 1 ] ? d3 = a : void 0 !== u3 [ 1 ] ? d3 = f : void 0 !== u3 [ 2 ] ? ( $ . test ( u3 [ 2 ] ) && ( h2 = RegExp ( "</" + u3 [ 2 ] , "g" ) ) , d3 = _ ) : void 0 !== u3 [ 3 ] && ( d3 = _ ) : d3 === _ ? ">" === u3 [ 0 ] ? ( d3 = null != h2 ? h2 : v , c2 = - 1 ) : void 0 === u3 [ 1 ] ? c2 = - 2 : ( c2 = d3 . lastIndex - u3 [ 2 ] . length , e2 = u3 [ 1 ] , d3 = void 0 === u3 [ 3 ] ? _ : '"' === u3 [ 3 ] ? p : m ) : d3 === p || d3 === m ? d3 = _ : d3 === a || d3 === f ? d3 = v : ( d3 = _ , h2 = void 0 ) ;
const y2 = d3 === _ && t2 [ i3 + 1 ] . startsWith ( "/>" ) ? " " : "" ;
r2 += d3 === v ? s3 + l$2 : c2 >= 0 ? ( n2 . push ( e2 ) , s3 . slice ( 0 , c2 ) + "$lit$" + s3 . slice ( c2 ) + o$2 + y2 ) : s3 + o$2 + ( - 2 === c2 ? ( n2 . push ( void 0 ) , i3 ) : y2 ) ;
}
const u2 = r2 + ( t2 [ s2 ] || "<?>" ) + ( 2 === i2 ? "</svg>" : "" ) ;
if ( ! Array . isArray ( t2 ) || ! t2 . hasOwnProperty ( "raw" ) )
throw Error ( "invalid template strings array" ) ;
return [ void 0 !== e$3 ? e$3 . createHTML ( u2 ) : u2 , n2 ] ;
} ;
class C {
constructor ( { strings : t2 , _$litType$ : i2 } , e2 ) {
let l2 ;
this . parts = [ ] ;
let h2 = 0 , d3 = 0 ;
const u2 = t2 . length - 1 , c2 = this . parts , [ v2 , a2 ] = E ( t2 , i2 ) ;
if ( this . el = C . createElement ( v2 , e2 ) , A . currentNode = this . el . content , 2 === i2 ) {
const t3 = this . el . content , i3 = t3 . firstChild ;
i3 . remove ( ) , t3 . append ( ... i3 . childNodes ) ;
}
for ( ; null !== ( l2 = A . nextNode ( ) ) && c2 . length < u2 ; ) {
if ( 1 === l2 . nodeType ) {
if ( l2 . hasAttributes ( ) ) {
const t3 = [ ] ;
for ( const i3 of l2 . getAttributeNames ( ) )
if ( i3 . endsWith ( "$lit$" ) || i3 . startsWith ( o$2 ) ) {
const s2 = a2 [ d3 ++ ] ;
if ( t3 . push ( i3 ) , void 0 !== s2 ) {
const t4 = l2 . getAttribute ( s2 . toLowerCase ( ) + "$lit$" ) . split ( o$2 ) , i4 = /([.?@])?(.*)/ . exec ( s2 ) ;
c2 . push ( { type : 1 , index : h2 , name : i4 [ 2 ] , strings : t4 , ctor : "." === i4 [ 1 ] ? M : "?" === i4 [ 1 ] ? k : "@" === i4 [ 1 ] ? H$1 : S } ) ;
} else
c2 . push ( { type : 6 , index : h2 } ) ;
}
for ( const i3 of t3 )
l2 . removeAttribute ( i3 ) ;
}
if ( $ . test ( l2 . tagName ) ) {
const t3 = l2 . textContent . split ( o$2 ) , i3 = t3 . length - 1 ;
if ( i3 > 0 ) {
l2 . textContent = s$1 ? s$1 . emptyScript : "" ;
for ( let s2 = 0 ; s2 < i3 ; s2 ++ )
l2 . append ( t3 [ s2 ] , r ( ) ) , A . nextNode ( ) , c2 . push ( { type : 2 , index : ++ h2 } ) ;
l2 . append ( t3 [ i3 ] , r ( ) ) ;
}
}
} else if ( 8 === l2 . nodeType )
if ( l2 . data === n$2 )
c2 . push ( { type : 2 , index : h2 } ) ;
else {
let t3 = - 1 ;
for ( ; - 1 !== ( t3 = l2 . data . indexOf ( o$2 , t3 + 1 ) ) ; )
c2 . push ( { type : 7 , index : h2 } ) , t3 += o$2 . length - 1 ;
}
h2 ++ ;
}
}
static createElement ( t2 , i2 ) {
const s2 = h$1 . createElement ( "template" ) ;
return s2 . innerHTML = t2 , s2 ;
}
}
function P ( t2 , i2 , s2 = t2 , e2 ) {
var o3 , n2 , l2 , h2 ;
if ( i2 === x )
return i2 ;
let r2 = void 0 !== e2 ? null === ( o3 = s2 . _$Co ) || void 0 === o3 ? void 0 : o3 [ e2 ] : s2 . _$Cl ;
const u2 = d2 ( i2 ) ? void 0 : i2 . _$litDirective$ ;
return ( null == r2 ? void 0 : r2 . constructor ) !== u2 && ( null === ( n2 = null == r2 ? void 0 : r2 . _$AO ) || void 0 === n2 || n2 . call ( r2 , false ) , void 0 === u2 ? r2 = void 0 : ( r2 = new u2 ( t2 ) , r2 . _$AT ( t2 , s2 , e2 ) ) , void 0 !== e2 ? ( null !== ( l2 = ( h2 = s2 ) . _$Co ) && void 0 !== l2 ? l2 : h2 . _$Co = [ ] ) [ e2 ] = r2 : s2 . _$Cl = r2 ) , void 0 !== r2 && ( i2 = P ( t2 , r2 . _$AS ( t2 , i2 . values ) , r2 , e2 ) ) , i2 ;
}
class V {
constructor ( t2 , i2 ) {
this . u = [ ] , this . _$AN = void 0 , this . _$AD = t2 , this . _$AM = i2 ;
}
get parentNode ( ) {
return this . _$AM . parentNode ;
}
get _$AU ( ) {
return this . _$AM . _$AU ;
}
v ( t2 ) {
var i2 ;
const { el : { content : s2 } , parts : e2 } = this . _$AD , o3 = ( null !== ( i2 = null == t2 ? void 0 : t2 . creationScope ) && void 0 !== i2 ? i2 : h$1 ) . importNode ( s2 , true ) ;
A . currentNode = o3 ;
let n2 = A . nextNode ( ) , l2 = 0 , r2 = 0 , d3 = e2 [ 0 ] ;
for ( ; void 0 !== d3 ; ) {
if ( l2 === d3 . index ) {
let i3 ;
2 === d3 . type ? i3 = new N ( n2 , n2 . nextSibling , this , t2 ) : 1 === d3 . type ? i3 = new d3 . ctor ( n2 , d3 . name , d3 . strings , this , t2 ) : 6 === d3 . type && ( i3 = new I ( n2 , this , t2 ) ) , this . u . push ( i3 ) , d3 = e2 [ ++ r2 ] ;
}
l2 !== ( null == d3 ? void 0 : d3 . index ) && ( n2 = A . nextNode ( ) , l2 ++ ) ;
}
return o3 ;
}
p ( t2 ) {
let i2 = 0 ;
for ( const s2 of this . u )
void 0 !== s2 && ( void 0 !== s2 . strings ? ( s2 . _$AI ( t2 , s2 , i2 ) , i2 += s2 . strings . length - 2 ) : s2 . _$AI ( t2 [ i2 ] ) ) , i2 ++ ;
}
}
class N {
constructor ( t2 , i2 , s2 , e2 ) {
var o3 ;
this . type = 2 , this . _$AH = b , this . _$AN = void 0 , this . _$AA = t2 , this . _$AB = i2 , this . _$AM = s2 , this . options = e2 , this . _$Cm = null === ( o3 = null == e2 ? void 0 : e2 . isConnected ) || void 0 === o3 || o3 ;
}
get _$AU ( ) {
var t2 , i2 ;
return null !== ( i2 = null === ( t2 = this . _$AM ) || void 0 === t2 ? void 0 : t2 . _$AU ) && void 0 !== i2 ? i2 : this . _$Cm ;
}
get parentNode ( ) {
let t2 = this . _$AA . parentNode ;
const i2 = this . _$AM ;
return void 0 !== i2 && 11 === t2 . nodeType && ( t2 = i2 . parentNode ) , t2 ;
}
get startNode ( ) {
return this . _$AA ;
}
get endNode ( ) {
return this . _$AB ;
}
_$AI ( t2 , i2 = this ) {
t2 = P ( this , t2 , i2 ) , d2 ( t2 ) ? t2 === b || null == t2 || "" === t2 ? ( this . _$AH !== b && this . _$AR ( ) , this . _$AH = b ) : t2 !== this . _$AH && t2 !== x && this . g ( t2 ) : void 0 !== t2 . _$litType$ ? this . $ ( t2 ) : void 0 !== t2 . nodeType ? this . T ( t2 ) : c ( t2 ) ? this . k ( t2 ) : this . g ( t2 ) ;
}
O ( t2 , i2 = this . _$AB ) {
return this . _$AA . parentNode . insertBefore ( t2 , i2 ) ;
}
T ( t2 ) {
this . _$AH !== t2 && ( this . _$AR ( ) , this . _$AH = this . O ( t2 ) ) ;
}
g ( t2 ) {
this . _$AH !== b && d2 ( this . _$AH ) ? this . _$AA . nextSibling . data = t2 : this . T ( h$1 . createTextNode ( t2 ) ) , this . _$AH = t2 ;
}
$ ( t2 ) {
var i2 ;
const { values : s2 , _$litType$ : e2 } = t2 , o3 = "number" == typeof e2 ? this . _$AC ( t2 ) : ( void 0 === e2 . el && ( e2 . el = C . createElement ( e2 . h , this . options ) ) , e2 ) ;
if ( ( null === ( i2 = this . _$AH ) || void 0 === i2 ? void 0 : i2 . _$AD ) === o3 )
this . _$AH . p ( s2 ) ;
else {
const t3 = new V ( o3 , this ) , i3 = t3 . v ( this . options ) ;
t3 . p ( s2 ) , this . T ( i3 ) , this . _$AH = t3 ;
}
}
_$AC ( t2 ) {
let i2 = T . get ( t2 . strings ) ;
return void 0 === i2 && T . set ( t2 . strings , i2 = new C ( t2 ) ) , i2 ;
}
k ( t2 ) {
u$1 ( this . _$AH ) || ( this . _$AH = [ ] , this . _$AR ( ) ) ;
const i2 = this . _$AH ;
let s2 , e2 = 0 ;
for ( const o3 of t2 )
e2 === i2 . length ? i2 . push ( s2 = new N ( this . O ( r ( ) ) , this . O ( r ( ) ) , this , this . options ) ) : s2 = i2 [ e2 ] , s2 . _$AI ( o3 ) , e2 ++ ;
e2 < i2 . length && ( this . _$AR ( s2 && s2 . _$AB . nextSibling , e2 ) , i2 . length = e2 ) ;
}
_$AR ( t2 = this . _$AA . nextSibling , i2 ) {
var s2 ;
for ( null === ( s2 = this . _$AP ) || void 0 === s2 || s2 . call ( this , false , true , i2 ) ; t2 && t2 !== this . _$AB ; ) {
const i3 = t2 . nextSibling ;
t2 . remove ( ) , t2 = i3 ;
}
}
setConnected ( t2 ) {
var i2 ;
void 0 === this . _$AM && ( this . _$Cm = t2 , null === ( i2 = this . _$AP ) || void 0 === i2 || i2 . call ( this , t2 ) ) ;
}
}
class S {
constructor ( t2 , i2 , s2 , e2 , o3 ) {
this . type = 1 , this . _$AH = b , this . _$AN = void 0 , this . element = t2 , this . name = i2 , this . _$AM = e2 , this . options = o3 , s2 . length > 2 || "" !== s2 [ 0 ] || "" !== s2 [ 1 ] ? ( this . _$AH = Array ( s2 . length - 1 ) . fill ( new String ( ) ) , this . strings = s2 ) : this . _$AH = b ;
}
get tagName ( ) {
return this . element . tagName ;
}
get _$AU ( ) {
return this . _$AM . _$AU ;
}
_$AI ( t2 , i2 = this , s2 , e2 ) {
const o3 = this . strings ;
let n2 = false ;
if ( void 0 === o3 )
t2 = P ( this , t2 , i2 , 0 ) , n2 = ! d2 ( t2 ) || t2 !== this . _$AH && t2 !== x , n2 && ( this . _$AH = t2 ) ;
else {
const e3 = t2 ;
let l2 , h2 ;
for ( t2 = o3 [ 0 ] , l2 = 0 ; l2 < o3 . length - 1 ; l2 ++ )
h2 = P ( this , e3 [ s2 + l2 ] , i2 , l2 ) , h2 === x && ( h2 = this . _$AH [ l2 ] ) , n2 || ( n2 = ! d2 ( h2 ) || h2 !== this . _$AH [ l2 ] ) , h2 === b ? t2 = b : t2 !== b && ( t2 += ( null != h2 ? h2 : "" ) + o3 [ l2 + 1 ] ) , this . _$AH [ l2 ] = h2 ;
}
n2 && ! e2 && this . j ( t2 ) ;
}
j ( t2 ) {
t2 === b ? this . element . removeAttribute ( this . name ) : this . element . setAttribute ( this . name , null != t2 ? t2 : "" ) ;
}
}
class M extends S {
constructor ( ) {
super ( ... arguments ) , this . type = 3 ;
}
j ( t2 ) {
this . element [ this . name ] = t2 === b ? void 0 : t2 ;
}
}
const R$1 = s$1 ? s$1 . emptyScript : "" ;
class k extends S {
constructor ( ) {
super ( ... arguments ) , this . type = 4 ;
}
j ( t2 ) {
t2 && t2 !== b ? this . element . setAttribute ( this . name , R$1 ) : this . element . removeAttribute ( this . name ) ;
}
}
let H$1 = class H extends S {
constructor ( t2 , i2 , s2 , e2 , o3 ) {
super ( t2 , i2 , s2 , e2 , o3 ) , this . type = 5 ;
}
_$AI ( t2 , i2 = this ) {
var s2 ;
if ( ( t2 = null !== ( s2 = P ( this , t2 , i2 , 0 ) ) && void 0 !== s2 ? s2 : b ) === x )
return ;
const e2 = this . _$AH , o3 = t2 === b && e2 !== b || t2 . capture !== e2 . capture || t2 . once !== e2 . once || t2 . passive !== e2 . passive , n2 = t2 !== b && ( e2 === b || o3 ) ;
o3 && this . element . removeEventListener ( this . name , this , e2 ) , n2 && this . element . addEventListener ( this . name , this , t2 ) , this . _$AH = t2 ;
}
handleEvent ( t2 ) {
var i2 , s2 ;
"function" == typeof this . _$AH ? this . _$AH . call ( null !== ( s2 = null === ( i2 = this . options ) || void 0 === i2 ? void 0 : i2 . host ) && void 0 !== s2 ? s2 : this . element , t2 ) : this . _$AH . handleEvent ( t2 ) ;
}
} ;
class I {
constructor ( t2 , i2 , s2 ) {
this . element = t2 , this . type = 6 , this . _$AN = void 0 , this . _$AM = i2 , this . options = s2 ;
}
get _$AU ( ) {
return this . _$AM . _$AU ;
}
_$AI ( t2 ) {
P ( this , t2 ) ;
}
}
const z$1 = i$2 . litHtmlPolyfillSupport ;
null == z$1 || z$1 ( C , N ) , ( null !== ( t$2 = i$2 . litHtmlVersions ) && void 0 !== t$2 ? t$2 : i$2 . litHtmlVersions = [ ] ) . push ( "2.6.1" ) ;
const Z$1 = ( t2 , i2 , s2 ) => {
var e2 , o3 ;
const n2 = null !== ( e2 = null == s2 ? void 0 : s2 . renderBefore ) && void 0 !== e2 ? e2 : i2 ;
let l2 = n2 . _$litPart$ ;
if ( void 0 === l2 ) {
const t3 = null !== ( o3 = null == s2 ? void 0 : s2 . renderBefore ) && void 0 !== o3 ? o3 : null ;
n2 . _$litPart$ = l2 = new N ( i2 . insertBefore ( r ( ) , t3 ) , t3 , void 0 , null != s2 ? s2 : { } ) ;
}
return l2 . _$AI ( t2 ) , l2 ;
} ;
/ * *
* @ license
* Copyright 2017 Google LLC
* SPDX - License - Identifier : BSD - 3 - Clause
* /
var l$1 , o$1 ;
class s extends d$1 {
constructor ( ) {
super ( ... arguments ) , this . renderOptions = { host : this } , this . _$Do = void 0 ;
}
createRenderRoot ( ) {
var t2 , e2 ;
const i2 = super . createRenderRoot ( ) ;
return null !== ( t2 = ( e2 = this . renderOptions ) . renderBefore ) && void 0 !== t2 || ( e2 . renderBefore = i2 . firstChild ) , i2 ;
}
update ( t2 ) {
const i2 = this . render ( ) ;
this . hasUpdated || ( this . renderOptions . isConnected = this . isConnected ) , super . update ( t2 ) , this . _$Do = Z$1 ( i2 , this . renderRoot , this . renderOptions ) ;
}
connectedCallback ( ) {
var t2 ;
super . connectedCallback ( ) , null === ( t2 = this . _$Do ) || void 0 === t2 || t2 . setConnected ( true ) ;
}
disconnectedCallback ( ) {
var t2 ;
super . disconnectedCallback ( ) , null === ( t2 = this . _$Do ) || void 0 === t2 || t2 . setConnected ( false ) ;
}
render ( ) {
return x ;
}
}
s . finalized = true , s . _$litElement$ = true , null === ( l$1 = globalThis . litElementHydrateSupport ) || void 0 === l$1 || l$1 . call ( globalThis , { LitElement : s } ) ;
const n$1 = globalThis . litElementPolyfillSupport ;
null == n$1 || n$1 ( { LitElement : s } ) ;
( null !== ( o$1 = globalThis . litElementVersions ) && void 0 !== o$1 ? o$1 : globalThis . litElementVersions = [ ] ) . push ( "3.2.2" ) ;
/ * *
* @ license
* Copyright 2017 Google LLC
* SPDX - License - Identifier : BSD - 3 - Clause
* /
const e$2 = ( e2 ) => ( n2 ) => "function" == typeof n2 ? ( ( e3 , n3 ) => ( customElements . define ( e3 , n3 ) , n3 ) ) ( e2 , n2 ) : ( ( e3 , n3 ) => {
const { kind : t2 , elements : s2 } = n3 ;
return { kind : t2 , elements : s2 , finisher ( n4 ) {
customElements . define ( e3 , n4 ) ;
} } ;
} ) ( e2 , n2 ) ;
/ * *
* @ license
* Copyright 2017 Google LLC
* SPDX - License - Identifier : BSD - 3 - Clause
* /
const i$1 = ( i2 , e2 ) => "method" === e2 . kind && e2 . descriptor && ! ( "value" in e2 . descriptor ) ? { ... e2 , finisher ( n2 ) {
n2 . createProperty ( e2 . key , i2 ) ;
} } : { kind : "field" , key : Symbol ( ) , placement : "own" , descriptor : { } , originalKey : e2 . key , initializer ( ) {
"function" == typeof e2 . initializer && ( this [ e2 . key ] = e2 . initializer . call ( this ) ) ;
} , finisher ( n2 ) {
n2 . createProperty ( e2 . key , i2 ) ;
} } ;
function e$1 ( e2 ) {
return ( n2 , t2 ) => void 0 !== t2 ? ( ( i2 , e3 , n3 ) => {
e3 . constructor . createProperty ( n3 , i2 ) ;
} ) ( e2 , n2 , t2 ) : i$1 ( e2 , n2 ) ;
}
/ * *
* @ license
* Copyright 2017 Google LLC
* SPDX - License - Identifier : BSD - 3 - Clause
* /
function t$1 ( t2 ) {
return e$1 ( { ... t2 , state : true } ) ;
}
/ * *
* @ license
* Copyright 2021 Google LLC
* SPDX - License - Identifier : BSD - 3 - Clause
* /
var n ;
null != ( null === ( n = window . HTMLSlotElement ) || void 0 === n ? void 0 : n . prototype . assignedElements ) ? ( o3 , n2 ) => o3 . assignedElements ( n2 ) : ( o3 , n2 ) => o3 . assignedNodes ( n2 ) . filter ( ( o4 ) => o4 . nodeType === Node . ELEMENT _NODE ) ;
/ * *
* @ license
* Copyright 2017 Google LLC
* SPDX - License - Identifier : BSD - 3 - Clause
* /
const t = { ATTRIBUTE : 1 , CHILD : 2 , PROPERTY : 3 , BOOLEAN _ATTRIBUTE : 4 , EVENT : 5 , ELEMENT : 6 } , e = ( t2 ) => ( ... e2 ) => ( { _$litDirective$ : t2 , values : e2 } ) ;
class i {
constructor ( t2 ) {
}
get _$AU ( ) {
return this . _$AM . _$AU ;
}
_$AT ( t2 , e2 , i2 ) {
this . _$Ct = t2 , this . _$AM = e2 , this . _$Ci = i2 ;
}
_$AS ( t2 , e2 ) {
return this . update ( t2 , e2 ) ;
}
update ( t2 , e2 ) {
return this . render ( ... e2 ) ;
}
}
/ * *
* @ license
* Copyright 2018 Google LLC
* SPDX - License - Identifier : BSD - 3 - Clause
* /
const o2 = e ( class extends i {
constructor ( t$12 ) {
var i2 ;
if ( super ( t$12 ) , t$12 . type !== t . ATTRIBUTE || "class" !== t$12 . name || ( null === ( i2 = t$12 . strings ) || void 0 === i2 ? void 0 : i2 . length ) > 2 )
throw Error ( "`classMap()` can only be used in the `class` attribute and must be the only part in the attribute." ) ;
}
render ( t2 ) {
return " " + Object . keys ( t2 ) . filter ( ( i2 ) => t2 [ i2 ] ) . join ( " " ) + " " ;
}
update ( i2 , [ s2 ] ) {
var r2 , o3 ;
if ( void 0 === this . nt ) {
this . nt = /* @__PURE__ */ new Set ( ) , void 0 !== i2 . strings && ( this . st = new Set ( i2 . strings . join ( " " ) . split ( /\s/ ) . filter ( ( t2 ) => "" !== t2 ) ) ) ;
for ( const t2 in s2 )
s2 [ t2 ] && ! ( null === ( r2 = this . st ) || void 0 === r2 ? void 0 : r2 . has ( t2 ) ) && this . nt . add ( t2 ) ;
return this . render ( s2 ) ;
}
const e2 = i2 . element . classList ;
this . nt . forEach ( ( t2 ) => {
t2 in s2 || ( e2 . remove ( t2 ) , this . nt . delete ( t2 ) ) ;
} ) ;
for ( const t2 in s2 ) {
const i3 = ! ! s2 [ t2 ] ;
i3 === this . nt . has ( t2 ) || ( null === ( o3 = this . st ) || void 0 === o3 ? void 0 : o3 . has ( t2 ) ) || ( i3 ? ( e2 . add ( t2 ) , this . nt . add ( t2 ) ) : ( e2 . remove ( t2 ) , this . nt . delete ( t2 ) ) ) ;
}
return x ;
}
} ) ;
function addUniqueItem ( array , item ) {
array . indexOf ( item ) === - 1 && array . push ( item ) ;
}
const clamp = ( min , max , v2 ) => Math . min ( Math . max ( v2 , min ) , max ) ;
const defaults$1 = {
duration : 0.3 ,
delay : 0 ,
endDelay : 0 ,
repeat : 0 ,
easing : "ease"
} ;
const isNumber = ( value ) => typeof value === "number" ;
const isEasingList = ( easing ) => Array . isArray ( easing ) && ! isNumber ( easing [ 0 ] ) ;
const wrap = ( min , max , v2 ) => {
const rangeSize = max - min ;
return ( ( v2 - min ) % rangeSize + rangeSize ) % rangeSize + min ;
} ;
function getEasingForSegment ( easing , i2 ) {
return isEasingList ( easing ) ? easing [ wrap ( 0 , easing . length , i2 ) ] : easing ;
}
const mix = ( min , max , progress2 ) => - progress2 * min + progress2 * max + min ;
const noop = ( ) => {
} ;
const noopReturn = ( v2 ) => v2 ;
const progress = ( min , max , value ) => max - min === 0 ? 1 : ( value - min ) / ( max - min ) ;
function fillOffset ( offset , remaining ) {
const min = offset [ offset . length - 1 ] ;
for ( let i2 = 1 ; i2 <= remaining ; i2 ++ ) {
const offsetProgress = progress ( 0 , remaining , i2 ) ;
offset . push ( mix ( min , 1 , offsetProgress ) ) ;
}
}
function defaultOffset ( length ) {
const offset = [ 0 ] ;
fillOffset ( offset , length - 1 ) ;
return offset ;
}
function interpolate ( output , input = defaultOffset ( output . length ) , easing = noopReturn ) {
const length = output . length ;
const remainder = length - input . length ;
remainder > 0 && fillOffset ( input , remainder ) ;
return ( t2 ) => {
let i2 = 0 ;
for ( ; i2 < length - 2 ; i2 ++ ) {
if ( t2 < input [ i2 + 1 ] )
break ;
}
let progressInRange = clamp ( 0 , 1 , progress ( input [ i2 ] , input [ i2 + 1 ] , t2 ) ) ;
const segmentEasing = getEasingForSegment ( easing , i2 ) ;
progressInRange = segmentEasing ( progressInRange ) ;
return mix ( output [ i2 ] , output [ i2 + 1 ] , progressInRange ) ;
} ;
}
const isCubicBezier = ( easing ) => Array . isArray ( easing ) && isNumber ( easing [ 0 ] ) ;
const isEasingGenerator = ( easing ) => typeof easing === "object" && Boolean ( easing . createAnimation ) ;
const isFunction = ( value ) => typeof value === "function" ;
const isString = ( value ) => typeof value === "string" ;
const time = {
ms : ( seconds ) => seconds * 1e3 ,
s : ( milliseconds ) => milliseconds / 1e3
} ;
function velocityPerSecond ( velocity , frameDuration ) {
return frameDuration ? velocity * ( 1e3 / frameDuration ) : 0 ;
}
const calcBezier = ( t2 , a1 , a2 ) => ( ( ( 1 - 3 * a2 + 3 * a1 ) * t2 + ( 3 * a2 - 6 * a1 ) ) * t2 + 3 * a1 ) * t2 ;
const subdivisionPrecision = 1e-7 ;
const subdivisionMaxIterations = 12 ;
function binarySubdivide ( x2 , lowerBound , upperBound , mX1 , mX2 ) {
let currentX ;
let currentT ;
let i2 = 0 ;
do {
currentT = lowerBound + ( upperBound - lowerBound ) / 2 ;
currentX = calcBezier ( currentT , mX1 , mX2 ) - x2 ;
if ( currentX > 0 ) {
upperBound = currentT ;
} else {
lowerBound = currentT ;
}
} while ( Math . abs ( currentX ) > subdivisionPrecision && ++ i2 < subdivisionMaxIterations ) ;
return currentT ;
}
function cubicBezier ( mX1 , mY1 , mX2 , mY2 ) {
if ( mX1 === mY1 && mX2 === mY2 )
return noopReturn ;
const getTForX = ( aX ) => binarySubdivide ( aX , 0 , 1 , mX1 , mX2 ) ;
return ( t2 ) => t2 === 0 || t2 === 1 ? t2 : calcBezier ( getTForX ( t2 ) , mY1 , mY2 ) ;
}
const steps = ( steps2 , direction = "end" ) => ( progress2 ) => {
progress2 = direction === "end" ? Math . min ( progress2 , 0.999 ) : Math . max ( progress2 , 1e-3 ) ;
const expanded = progress2 * steps2 ;
const rounded = direction === "end" ? Math . floor ( expanded ) : Math . ceil ( expanded ) ;
return clamp ( 0 , 1 , rounded / steps2 ) ;
} ;
const namedEasings = {
ease : cubicBezier ( 0.25 , 0.1 , 0.25 , 1 ) ,
"ease-in" : cubicBezier ( 0.42 , 0 , 1 , 1 ) ,
"ease-in-out" : cubicBezier ( 0.42 , 0 , 0.58 , 1 ) ,
"ease-out" : cubicBezier ( 0 , 0 , 0.58 , 1 )
} ;
const functionArgsRegex = /\((.*?)\)/ ;
function getEasingFunction ( definition ) {
if ( isFunction ( definition ) )
return definition ;
if ( isCubicBezier ( definition ) )
return cubicBezier ( ... definition ) ;
if ( namedEasings [ definition ] )
return namedEasings [ definition ] ;
if ( definition . startsWith ( "steps" ) ) {
const args = functionArgsRegex . exec ( definition ) ;
if ( args ) {
const argsArray = args [ 1 ] . split ( "," ) ;
return steps ( parseFloat ( argsArray [ 0 ] ) , argsArray [ 1 ] . trim ( ) ) ;
}
}
return noopReturn ;
}
class Animation {
constructor ( output , keyframes = [ 0 , 1 ] , { easing , duration : initialDuration = defaults$1 . duration , delay = defaults$1 . delay , endDelay = defaults$1 . endDelay , repeat = defaults$1 . repeat , offset , direction = "normal" } = { } ) {
this . startTime = null ;
this . rate = 1 ;
this . t = 0 ;
this . cancelTimestamp = null ;
this . easing = noopReturn ;
this . duration = 0 ;
this . totalDuration = 0 ;
this . repeat = 0 ;
this . playState = "idle" ;
this . finished = new Promise ( ( resolve , reject ) => {
this . resolve = resolve ;
this . reject = reject ;
} ) ;
easing = easing || defaults$1 . easing ;
if ( isEasingGenerator ( easing ) ) {
const custom = easing . createAnimation ( keyframes ) ;
easing = custom . easing ;
keyframes = custom . keyframes || keyframes ;
initialDuration = custom . duration || initialDuration ;
}
this . repeat = repeat ;
this . easing = isEasingList ( easing ) ? noopReturn : getEasingFunction ( easing ) ;
this . updateDuration ( initialDuration ) ;
const interpolate$1 = interpolate ( keyframes , offset , isEasingList ( easing ) ? easing . map ( getEasingFunction ) : noopReturn ) ;
this . tick = ( timestamp ) => {
var _a2 ;
delay = delay ;
let t2 = 0 ;
if ( this . pauseTime !== void 0 ) {
t2 = this . pauseTime ;
} else {
t2 = ( timestamp - this . startTime ) * this . rate ;
}
this . t = t2 ;
t2 /= 1e3 ;
t2 = Math . max ( t2 - delay , 0 ) ;
if ( this . playState === "finished" && this . pauseTime === void 0 ) {
t2 = this . totalDuration ;
}
const progress2 = t2 / this . duration ;
let currentIteration = Math . floor ( progress2 ) ;
let iterationProgress = progress2 % 1 ;
if ( ! iterationProgress && progress2 >= 1 ) {
iterationProgress = 1 ;
}
iterationProgress === 1 && currentIteration -- ;
const iterationIsOdd = currentIteration % 2 ;
if ( direction === "reverse" || direction === "alternate" && iterationIsOdd || direction === "alternate-reverse" && ! iterationIsOdd ) {
iterationProgress = 1 - iterationProgress ;
}
const p2 = t2 >= this . totalDuration ? 1 : Math . min ( iterationProgress , 1 ) ;
const latest = interpolate$1 ( this . easing ( p2 ) ) ;
output ( latest ) ;
const isAnimationFinished = this . pauseTime === void 0 && ( this . playState === "finished" || t2 >= this . totalDuration + endDelay ) ;
if ( isAnimationFinished ) {
this . playState = "finished" ;
( _a2 = this . resolve ) === null || _a2 === void 0 ? void 0 : _a2 . call ( this , latest ) ;
} else if ( this . playState !== "idle" ) {
this . frameRequestId = requestAnimationFrame ( this . tick ) ;
}
} ;
this . play ( ) ;
}
play ( ) {
const now = performance . now ( ) ;
this . playState = "running" ;
if ( this . pauseTime !== void 0 ) {
this . startTime = now - this . pauseTime ;
} else if ( ! this . startTime ) {
this . startTime = now ;
}
this . cancelTimestamp = this . startTime ;
this . pauseTime = void 0 ;
this . frameRequestId = requestAnimationFrame ( this . tick ) ;
}
pause ( ) {
this . playState = "paused" ;
this . pauseTime = this . t ;
}
finish ( ) {
this . playState = "finished" ;
this . tick ( 0 ) ;
}
stop ( ) {
var _a2 ;
this . playState = "idle" ;
if ( this . frameRequestId !== void 0 ) {
cancelAnimationFrame ( this . frameRequestId ) ;
}
( _a2 = this . reject ) === null || _a2 === void 0 ? void 0 : _a2 . call ( this , false ) ;
}
cancel ( ) {
this . stop ( ) ;
this . tick ( this . cancelTimestamp ) ;
}
reverse ( ) {
this . rate *= - 1 ;
}
commitStyles ( ) {
}
updateDuration ( duration ) {
this . duration = duration ;
this . totalDuration = duration * ( this . repeat + 1 ) ;
}
get currentTime ( ) {
return this . t ;
}
set currentTime ( t2 ) {
if ( this . pauseTime !== void 0 || this . rate === 0 ) {
this . pauseTime = t2 ;
} else {
this . startTime = performance . now ( ) - t2 / this . rate ;
}
}
get playbackRate ( ) {
return this . rate ;
}
set playbackRate ( rate ) {
this . rate = rate ;
}
}
class MotionValue {
setAnimation ( animation ) {
this . animation = animation ;
animation === null || animation === void 0 ? void 0 : animation . finished . then ( ( ) => this . clearAnimation ( ) ) . catch ( ( ) => {
} ) ;
}
clearAnimation ( ) {
this . animation = this . generator = void 0 ;
}
}
const data = /* @__PURE__ */ new WeakMap ( ) ;
function getAnimationData ( element ) {
if ( ! data . has ( element ) ) {
data . set ( element , {
transforms : [ ] ,
values : /* @__PURE__ */ new Map ( )
} ) ;
}
return data . get ( element ) ;
}
function getMotionValue ( motionValues , name ) {
if ( ! motionValues . has ( name ) ) {
motionValues . set ( name , new MotionValue ( ) ) ;
}
return motionValues . get ( name ) ;
}
const axes = [ "" , "X" , "Y" , "Z" ] ;
const order = [ "translate" , "scale" , "rotate" , "skew" ] ;
const transformAlias = {
x : "translateX" ,
y : "translateY" ,
z : "translateZ"
} ;
const rotation = {
syntax : "<angle>" ,
initialValue : "0deg" ,
toDefaultUnit : ( v2 ) => v2 + "deg"
} ;
const baseTransformProperties = {
translate : {
syntax : "<length-percentage>" ,
initialValue : "0px" ,
toDefaultUnit : ( v2 ) => v2 + "px"
} ,
rotate : rotation ,
scale : {
syntax : "<number>" ,
initialValue : 1 ,
toDefaultUnit : noopReturn
} ,
skew : rotation
} ;
const transformDefinitions = /* @__PURE__ */ new Map ( ) ;
const asTransformCssVar = ( name ) => ` --motion- ${ name } ` ;
const transforms = [ "x" , "y" , "z" ] ;
order . forEach ( ( name ) => {
axes . forEach ( ( axis ) => {
transforms . push ( name + axis ) ;
transformDefinitions . set ( asTransformCssVar ( name + axis ) , baseTransformProperties [ name ] ) ;
} ) ;
} ) ;
const compareTransformOrder = ( a2 , b2 ) => transforms . indexOf ( a2 ) - transforms . indexOf ( b2 ) ;
const transformLookup = new Set ( transforms ) ;
const isTransform = ( name ) => transformLookup . has ( name ) ;
const addTransformToElement = ( element , name ) => {
if ( transformAlias [ name ] )
name = transformAlias [ name ] ;
const { transforms : transforms2 } = getAnimationData ( element ) ;
addUniqueItem ( transforms2 , name ) ;
element . style . transform = buildTransformTemplate ( transforms2 ) ;
} ;
const buildTransformTemplate = ( transforms2 ) => transforms2 . sort ( compareTransformOrder ) . reduce ( transformListToString , "" ) . trim ( ) ;
const transformListToString = ( template , name ) => ` ${ template } ${ name } (var( ${ asTransformCssVar ( name ) } )) ` ;
const isCssVar = ( name ) => name . startsWith ( "--" ) ;
const registeredProperties = /* @__PURE__ */ new Set ( ) ;
function registerCssVariable ( name ) {
if ( registeredProperties . has ( name ) )
return ;
registeredProperties . add ( name ) ;
try {
const { syntax , initialValue } = transformDefinitions . has ( name ) ? transformDefinitions . get ( name ) : { } ;
CSS . registerProperty ( {
name ,
inherits : false ,
syntax ,
initialValue
} ) ;
} catch ( e2 ) {
}
}
const testAnimation = ( keyframes , options ) => document . createElement ( "div" ) . animate ( keyframes , options ) ;
const featureTests = {
cssRegisterProperty : ( ) => typeof CSS !== "undefined" && Object . hasOwnProperty . call ( CSS , "registerProperty" ) ,
waapi : ( ) => Object . hasOwnProperty . call ( Element . prototype , "animate" ) ,
partialKeyframes : ( ) => {
try {
testAnimation ( { opacity : [ 1 ] } ) ;
} catch ( e2 ) {
return false ;
}
return true ;
} ,
finished : ( ) => Boolean ( testAnimation ( { opacity : [ 0 , 1 ] } , { duration : 1e-3 } ) . finished ) ,
linearEasing : ( ) => {
try {
testAnimation ( { opacity : 0 } , { easing : "linear(0, 1)" } ) ;
} catch ( e2 ) {
return false ;
}
return true ;
}
} ;
const results = { } ;
const supports = { } ;
for ( const key in featureTests ) {
supports [ key ] = ( ) => {
if ( results [ key ] === void 0 )
results [ key ] = featureTests [ key ] ( ) ;
return results [ key ] ;
} ;
}
const resolution = 0.015 ;
const generateLinearEasingPoints = ( easing , duration ) => {
let points = "" ;
const numPoints = Math . round ( duration / resolution ) ;
for ( let i2 = 0 ; i2 < numPoints ; i2 ++ ) {
points += easing ( progress ( 0 , numPoints - 1 , i2 ) ) + ", " ;
}
return points . substring ( 0 , points . length - 2 ) ;
} ;
const convertEasing = ( easing , duration ) => {
if ( isFunction ( easing ) ) {
return supports . linearEasing ( ) ? ` linear( ${ generateLinearEasingPoints ( easing , duration ) } ) ` : defaults$1 . easing ;
} else {
return isCubicBezier ( easing ) ? cubicBezierAsString ( easing ) : easing ;
}
} ;
const cubicBezierAsString = ( [ a2 , b2 , c2 , d3 ] ) => ` cubic-bezier( ${ a2 } , ${ b2 } , ${ c2 } , ${ d3 } ) ` ;
function hydrateKeyframes ( keyframes , readInitialValue ) {
for ( let i2 = 0 ; i2 < keyframes . length ; i2 ++ ) {
if ( keyframes [ i2 ] === null ) {
keyframes [ i2 ] = i2 ? keyframes [ i2 - 1 ] : readInitialValue ( ) ;
}
}
return keyframes ;
}
const keyframesList = ( keyframes ) => Array . isArray ( keyframes ) ? keyframes : [ keyframes ] ;
function getStyleName ( key ) {
if ( transformAlias [ key ] )
key = transformAlias [ key ] ;
return isTransform ( key ) ? asTransformCssVar ( key ) : key ;
}
const style = {
get : ( element , name ) => {
name = getStyleName ( name ) ;
let value = isCssVar ( name ) ? element . style . getPropertyValue ( name ) : getComputedStyle ( element ) [ name ] ;
if ( ! value && value !== 0 ) {
const definition = transformDefinitions . get ( name ) ;
if ( definition )
value = definition . initialValue ;
}
return value ;
} ,
set : ( element , name , value ) => {
name = getStyleName ( name ) ;
if ( isCssVar ( name ) ) {
element . style . setProperty ( name , value ) ;
} else {
element . style [ name ] = value ;
}
}
} ;
function stopAnimation ( animation , needsCommit = true ) {
if ( ! animation || animation . playState === "finished" )
return ;
try {
if ( animation . stop ) {
animation . stop ( ) ;
} else {
needsCommit && animation . commitStyles ( ) ;
animation . cancel ( ) ;
}
} catch ( e2 ) {
}
}
function getUnitConverter ( keyframes , definition ) {
var _a2 ;
let toUnit = ( definition === null || definition === void 0 ? void 0 : definition . toDefaultUnit ) || noopReturn ;
const finalKeyframe = keyframes [ keyframes . length - 1 ] ;
if ( isString ( finalKeyframe ) ) {
const unit = ( ( _a2 = finalKeyframe . match ( /(-?[\d.]+)([a-z%]*)/ ) ) === null || _a2 === void 0 ? void 0 : _a2 [ 2 ] ) || "" ;
if ( unit )
toUnit = ( value ) => value + unit ;
}
return toUnit ;
}
function getDevToolsRecord ( ) {
return window . _ _MOTION _DEV _TOOLS _RECORD ;
}
function animateStyle ( element , key , keyframesDefinition , options = { } , AnimationPolyfill ) {
const record = getDevToolsRecord ( ) ;
const isRecording = options . record !== false && record ;
let animation ;
let { duration = defaults$1 . duration , delay = defaults$1 . delay , endDelay = defaults$1 . endDelay , repeat = defaults$1 . repeat , easing = defaults$1 . easing , persist = false , direction , offset , allowWebkitAcceleration = false } = options ;
const data2 = getAnimationData ( element ) ;
const valueIsTransform = isTransform ( key ) ;
let canAnimateNatively = supports . waapi ( ) ;
valueIsTransform && addTransformToElement ( element , key ) ;
const name = getStyleName ( key ) ;
const motionValue = getMotionValue ( data2 . values , name ) ;
const definition = transformDefinitions . get ( name ) ;
stopAnimation ( motionValue . animation , ! ( isEasingGenerator ( easing ) && motionValue . generator ) && options . record !== false ) ;
return ( ) => {
const readInitialValue = ( ) => {
var _a2 , _b ;
return ( _b = ( _a2 = style . get ( element , name ) ) !== null && _a2 !== void 0 ? _a2 : definition === null || definition === void 0 ? void 0 : definition . initialValue ) !== null && _b !== void 0 ? _b : 0 ;
} ;
let keyframes = hydrateKeyframes ( keyframesList ( keyframesDefinition ) , readInitialValue ) ;
const toUnit = getUnitConverter ( keyframes , definition ) ;
if ( isEasingGenerator ( easing ) ) {
const custom = easing . createAnimation ( keyframes , key !== "opacity" , readInitialValue , name , motionValue ) ;
easing = custom . easing ;
keyframes = custom . keyframes || keyframes ;
duration = custom . duration || duration ;
}
if ( isCssVar ( name ) ) {
if ( supports . cssRegisterProperty ( ) ) {
registerCssVariable ( name ) ;
} else {
canAnimateNatively = false ;
}
}
if ( valueIsTransform && ! supports . linearEasing ( ) && ( isFunction ( easing ) || isEasingList ( easing ) && easing . some ( isFunction ) ) ) {
canAnimateNatively = false ;
}
if ( canAnimateNatively ) {
if ( definition ) {
keyframes = keyframes . map ( ( value ) => isNumber ( value ) ? definition . toDefaultUnit ( value ) : value ) ;
}
if ( keyframes . length === 1 && ( ! supports . partialKeyframes ( ) || isRecording ) ) {
keyframes . unshift ( readInitialValue ( ) ) ;
}
const animationOptions = {
delay : time . ms ( delay ) ,
duration : time . ms ( duration ) ,
endDelay : time . ms ( endDelay ) ,
easing : ! isEasingList ( easing ) ? convertEasing ( easing , duration ) : void 0 ,
direction ,
iterations : repeat + 1 ,
fill : "both"
} ;
animation = element . animate ( {
[ name ] : keyframes ,
offset ,
easing : isEasingList ( easing ) ? easing . map ( ( thisEasing ) => convertEasing ( thisEasing , duration ) ) : void 0
} , animationOptions ) ;
if ( ! animation . finished ) {
animation . finished = new Promise ( ( resolve , reject ) => {
animation . onfinish = resolve ;
animation . oncancel = reject ;
} ) ;
}
const target = keyframes [ keyframes . length - 1 ] ;
animation . finished . then ( ( ) => {
if ( persist )
return ;
style . set ( element , name , target ) ;
animation . cancel ( ) ;
} ) . catch ( noop ) ;
if ( ! allowWebkitAcceleration )
animation . playbackRate = 1.000001 ;
} else if ( AnimationPolyfill && valueIsTransform ) {
keyframes = keyframes . map ( ( value ) => typeof value === "string" ? parseFloat ( value ) : value ) ;
if ( keyframes . length === 1 ) {
keyframes . unshift ( parseFloat ( readInitialValue ( ) ) ) ;
}
animation = new AnimationPolyfill ( ( latest ) => {
style . set ( element , name , toUnit ? toUnit ( latest ) : latest ) ;
} , keyframes , Object . assign ( Object . assign ( { } , options ) , {
duration ,
easing
} ) ) ;
} else {
const target = keyframes [ keyframes . length - 1 ] ;
style . set ( element , name , definition && isNumber ( target ) ? definition . toDefaultUnit ( target ) : target ) ;
}
if ( isRecording ) {
record ( element , key , keyframes , {
duration ,
delay ,
easing ,
repeat ,
offset
} , "motion-one" ) ;
}
motionValue . setAnimation ( animation ) ;
return animation ;
} ;
}
const getOptions = ( options , key ) => (
/ * *
* TODO : Make test for this
* Always return a new object otherwise delay is overwritten by results of stagger
* and this results in no stagger
* /
options [ key ] ? Object . assign ( Object . assign ( { } , options ) , options [ key ] ) : Object . assign ( { } , options )
) ;
function resolveElements ( elements , selectorCache ) {
var _a2 ;
if ( typeof elements === "string" ) {
if ( selectorCache ) {
( _a2 = selectorCache [ elements ] ) !== null && _a2 !== void 0 ? _a2 : selectorCache [ elements ] = document . querySelectorAll ( elements ) ;
elements = selectorCache [ elements ] ;
} else {
elements = document . querySelectorAll ( elements ) ;
}
} else if ( elements instanceof Element ) {
elements = [ elements ] ;
}
return Array . from ( elements || [ ] ) ;
}
const createAnimation = ( factory ) => factory ( ) ;
const withControls = ( animationFactory , options , duration = defaults$1 . duration ) => {
return new Proxy ( {
animations : animationFactory . map ( createAnimation ) . filter ( Boolean ) ,
duration ,
options
} , controls ) ;
} ;
const getActiveAnimation = ( state ) => state . animations [ 0 ] ;
const controls = {
get : ( target , key ) => {
const activeAnimation = getActiveAnimation ( target ) ;
switch ( key ) {
case "duration" :
return target . duration ;
case "currentTime" :
return time . s ( ( activeAnimation === null || activeAnimation === void 0 ? void 0 : activeAnimation [ key ] ) || 0 ) ;
case "playbackRate" :
case "playState" :
return activeAnimation === null || activeAnimation === void 0 ? void 0 : activeAnimation [ key ] ;
case "finished" :
if ( ! target . finished ) {
target . finished = Promise . all ( target . animations . map ( selectFinished ) ) . catch ( noop ) ;
}
return target . finished ;
case "stop" :
return ( ) => {
target . animations . forEach ( ( animation ) => stopAnimation ( animation ) ) ;
} ;
case "forEachNative" :
return ( callback ) => {
target . animations . forEach ( ( animation ) => callback ( animation , target ) ) ;
} ;
default :
return typeof ( activeAnimation === null || activeAnimation === void 0 ? void 0 : activeAnimation [ key ] ) === "undefined" ? void 0 : ( ) => target . animations . forEach ( ( animation ) => animation [ key ] ( ) ) ;
}
} ,
set : ( target , key , value ) => {
switch ( key ) {
case "currentTime" :
value = time . ms ( value ) ;
case "currentTime" :
case "playbackRate" :
for ( let i2 = 0 ; i2 < target . animations . length ; i2 ++ ) {
target . animations [ i2 ] [ key ] = value ;
}
return true ;
}
return false ;
}
} ;
const selectFinished = ( animation ) => animation . finished ;
function resolveOption ( option , i2 , total ) {
return isFunction ( option ) ? option ( i2 , total ) : option ;
}
function createAnimate ( AnimatePolyfill ) {
return function animate2 ( elements , keyframes , options = { } ) {
elements = resolveElements ( elements ) ;
const numElements = elements . length ;
const animationFactories = [ ] ;
for ( let i2 = 0 ; i2 < numElements ; i2 ++ ) {
const element = elements [ i2 ] ;
for ( const key in keyframes ) {
const valueOptions = getOptions ( options , key ) ;
valueOptions . delay = resolveOption ( valueOptions . delay , i2 , numElements ) ;
const animation = animateStyle ( element , key , keyframes [ key ] , valueOptions , AnimatePolyfill ) ;
animationFactories . push ( animation ) ;
}
}
return withControls (
animationFactories ,
options ,
/ * *
* TODO :
* If easing is set to spring or glide , duration will be dynamically
* generated . Ideally we would dynamically generate this from
* animation . effect . getComputedTiming ( ) . duration but this isn ' t
* supported in iOS13 or our number polyfill . Perhaps it ' s possible
* to Proxy animations returned from animateStyle that has duration
* as a getter .
* /
options . duration
) ;
} ;
}
const animate$1 = createAnimate ( Animation ) ;
const sampleT = 5 ;
function calcGeneratorVelocity ( resolveValue , t2 , current ) {
const prevT = Math . max ( t2 - sampleT , 0 ) ;
return velocityPerSecond ( current - resolveValue ( prevT ) , t2 - prevT ) ;
}
const defaults = {
stiffness : 100 ,
damping : 10 ,
mass : 1
} ;
const calcDampingRatio = ( stiffness = defaults . stiffness , damping = defaults . damping , mass = defaults . mass ) => damping / ( 2 * Math . sqrt ( stiffness * mass ) ) ;
function hasReachedTarget ( origin , target , current ) {
return origin < target && current >= target || origin > target && current <= target ;
}
const spring$1 = ( { stiffness = defaults . stiffness , damping = defaults . damping , mass = defaults . mass , from = 0 , to : to2 = 1 , velocity = 0 , restSpeed = 2 , restDistance = 0.5 } = { } ) => {
velocity = velocity ? time . s ( velocity ) : 0 ;
const state = {
done : false ,
hasReachedTarget : false ,
current : from ,
target : to2
} ;
const initialDelta = to2 - from ;
const undampedAngularFreq = Math . sqrt ( stiffness / mass ) / 1e3 ;
const dampingRatio = calcDampingRatio ( stiffness , damping , mass ) ;
let resolveSpring ;
if ( dampingRatio < 1 ) {
const angularFreq = undampedAngularFreq * Math . sqrt ( 1 - dampingRatio * dampingRatio ) ;
resolveSpring = ( t2 ) => to2 - Math . exp ( - dampingRatio * undampedAngularFreq * t2 ) * ( ( - velocity + dampingRatio * undampedAngularFreq * initialDelta ) / angularFreq * Math . sin ( angularFreq * t2 ) + initialDelta * Math . cos ( angularFreq * t2 ) ) ;
} else {
resolveSpring = ( t2 ) => {
return to2 - Math . exp ( - undampedAngularFreq * t2 ) * ( initialDelta + ( - velocity + undampedAngularFreq * initialDelta ) * t2 ) ;
} ;
}
return ( t2 ) => {
state . current = resolveSpring ( t2 ) ;
const currentVelocity = t2 === 0 ? velocity : calcGeneratorVelocity ( resolveSpring , t2 , state . current ) ;
const isBelowVelocityThreshold = Math . abs ( currentVelocity ) <= restSpeed ;
const isBelowDisplacementThreshold = Math . abs ( to2 - state . current ) <= restDistance ;
state . done = isBelowVelocityThreshold && isBelowDisplacementThreshold ;
state . hasReachedTarget = hasReachedTarget ( from , to2 , state . current ) ;
return state ;
} ;
} ;
const timeStep = 10 ;
const maxDuration = 1e4 ;
function pregenerateKeyframes ( generator , toUnit = noopReturn ) {
let overshootDuration = void 0 ;
let timestamp = timeStep ;
let state = generator ( 0 ) ;
const keyframes = [ toUnit ( state . current ) ] ;
while ( ! state . done && timestamp < maxDuration ) {
state = generator ( timestamp ) ;
keyframes . push ( toUnit ( state . done ? state . target : state . current ) ) ;
if ( overshootDuration === void 0 && state . hasReachedTarget ) {
overshootDuration = timestamp ;
}
timestamp += timeStep ;
}
const duration = timestamp - timeStep ;
if ( keyframes . length === 1 )
keyframes . push ( state . current ) ;
return {
keyframes ,
duration : duration / 1e3 ,
overshootDuration : ( overshootDuration !== null && overshootDuration !== void 0 ? overshootDuration : duration ) / 1e3
} ;
}
function canGenerate ( value ) {
return isNumber ( value ) && ! isNaN ( value ) ;
}
function getAsNumber ( value ) {
return isString ( value ) ? parseFloat ( value ) : value ;
}
function createGeneratorEasing ( createGenerator ) {
const keyframesCache = /* @__PURE__ */ new WeakMap ( ) ;
return ( options = { } ) => {
const generatorCache = /* @__PURE__ */ new Map ( ) ;
const getGenerator = ( from = 0 , to2 = 100 , velocity = 0 , isScale = false ) => {
const key = ` ${ from } - ${ to2 } - ${ velocity } - ${ isScale } ` ;
if ( ! generatorCache . has ( key ) ) {
generatorCache . set ( key , createGenerator ( Object . assign ( {
from ,
to : to2 ,
velocity ,
restSpeed : isScale ? 0.05 : 2 ,
restDistance : isScale ? 0.01 : 0.5
} , options ) ) ) ;
}
return generatorCache . get ( key ) ;
} ;
const getKeyframes = ( generator , toUnit ) => {
if ( ! keyframesCache . has ( generator ) ) {
keyframesCache . set ( generator , pregenerateKeyframes ( generator , toUnit ) ) ;
}
return keyframesCache . get ( generator ) ;
} ;
return {
createAnimation : ( keyframes , shouldGenerate = true , getOrigin , name , motionValue ) => {
let settings ;
let origin ;
let target ;
let velocity = 0 ;
let toUnit = noopReturn ;
const numKeyframes = keyframes . length ;
if ( shouldGenerate ) {
toUnit = getUnitConverter ( keyframes , name ? transformDefinitions . get ( getStyleName ( name ) ) : void 0 ) ;
const targetDefinition = keyframes [ numKeyframes - 1 ] ;
target = getAsNumber ( targetDefinition ) ;
if ( numKeyframes > 1 && keyframes [ 0 ] !== null ) {
origin = getAsNumber ( keyframes [ 0 ] ) ;
} else {
const prevGenerator = motionValue === null || motionValue === void 0 ? void 0 : motionValue . generator ;
if ( prevGenerator ) {
const { animation , generatorStartTime } = motionValue ;
const startTime = ( animation === null || animation === void 0 ? void 0 : animation . startTime ) || generatorStartTime || 0 ;
const currentTime = ( animation === null || animation === void 0 ? void 0 : animation . currentTime ) || performance . now ( ) - startTime ;
const prevGeneratorCurrent = prevGenerator ( currentTime ) . current ;
origin = prevGeneratorCurrent ;
velocity = calcGeneratorVelocity ( ( t2 ) => prevGenerator ( t2 ) . current , currentTime , prevGeneratorCurrent ) ;
} else if ( getOrigin ) {
origin = getAsNumber ( getOrigin ( ) ) ;
}
}
}
if ( canGenerate ( origin ) && canGenerate ( target ) ) {
const generator = getGenerator ( origin , target , velocity , name === null || name === void 0 ? void 0 : name . includes ( "scale" ) ) ;
settings = Object . assign ( Object . assign ( { } , getKeyframes ( generator , toUnit ) ) , { easing : "linear" } ) ;
if ( motionValue ) {
motionValue . generator = generator ;
motionValue . generatorStartTime = performance . now ( ) ;
}
}
if ( ! settings ) {
const keyframesMetadata = getKeyframes ( getGenerator ( 0 , 100 ) ) ;
settings = {
easing : "ease" ,
duration : keyframesMetadata . overshootDuration
} ;
}
return settings ;
}
} ;
} ;
}
const spring = createGeneratorEasing ( spring$1 ) ;
function animateProgress ( target , options = { } ) {
return withControls ( [
( ) => {
const animation = new Animation ( target , [ 0 , 1 ] , options ) ;
animation . finished . catch ( ( ) => {
} ) ;
return animation ;
}
] , options , options . duration ) ;
}
function animate ( target , keyframesOrOptions , options ) {
const factory = isFunction ( target ) ? animateProgress : animate$1 ;
return factory ( target , keyframesOrOptions , options ) ;
}
/ * *
* @ license
* Copyright 2018 Google LLC
* SPDX - License - Identifier : BSD - 3 - Clause
* /
const l = ( l2 ) => null != l2 ? l2 : b ;
var browser = { } ;
var canPromise$1 = function ( ) {
return typeof Promise === "function" && Promise . prototype && Promise . prototype . then ;
} ;
var qrcode = { } ;
var utils$1 = { } ;
let toSJISFunction ;
const CODEWORDS _COUNT = [
0 ,
// Not used
26 ,
44 ,
70 ,
100 ,
134 ,
172 ,
196 ,
242 ,
292 ,
346 ,
404 ,
466 ,
532 ,
581 ,
655 ,
733 ,
815 ,
901 ,
991 ,
1085 ,
1156 ,
1258 ,
1364 ,
1474 ,
1588 ,
1706 ,
1828 ,
1921 ,
2051 ,
2185 ,
2323 ,
2465 ,
2611 ,
2761 ,
2876 ,
3034 ,
3196 ,
3362 ,
3532 ,
3706
] ;
utils$1 . getSymbolSize = function getSymbolSize ( version2 ) {
if ( ! version2 )
throw new Error ( '"version" cannot be null or undefined' ) ;
if ( version2 < 1 || version2 > 40 )
throw new Error ( '"version" should be in range from 1 to 40' ) ;
return version2 * 4 + 17 ;
} ;
utils$1 . getSymbolTotalCodewords = function getSymbolTotalCodewords ( version2 ) {
return CODEWORDS _COUNT [ version2 ] ;
} ;
utils$1 . getBCHDigit = function ( data2 ) {
let digit = 0 ;
while ( data2 !== 0 ) {
digit ++ ;
data2 >>>= 1 ;
}
return digit ;
} ;
utils$1 . setToSJISFunction = function setToSJISFunction ( f2 ) {
if ( typeof f2 !== "function" ) {
throw new Error ( '"toSJISFunc" is not a valid function.' ) ;
}
toSJISFunction = f2 ;
} ;
utils$1 . isKanjiModeEnabled = function ( ) {
return typeof toSJISFunction !== "undefined" ;
} ;
utils$1 . toSJIS = function toSJIS ( kanji2 ) {
return toSJISFunction ( kanji2 ) ;
} ;
var errorCorrectionLevel = { } ;
( function ( exports ) {
exports . L = { bit : 1 } ;
exports . M = { bit : 0 } ;
exports . Q = { bit : 3 } ;
exports . H = { bit : 2 } ;
function fromString ( string ) {
if ( typeof string !== "string" ) {
throw new Error ( "Param is not a string" ) ;
}
const lcStr = string . toLowerCase ( ) ;
switch ( lcStr ) {
case "l" :
case "low" :
return exports . L ;
case "m" :
case "medium" :
return exports . M ;
case "q" :
case "quartile" :
return exports . Q ;
case "h" :
case "high" :
return exports . H ;
default :
throw new Error ( "Unknown EC Level: " + string ) ;
}
}
exports . isValid = function isValid2 ( level ) {
return level && typeof level . bit !== "undefined" && level . bit >= 0 && level . bit < 4 ;
} ;
exports . from = function from ( value , defaultValue ) {
if ( exports . isValid ( value ) ) {
return value ;
}
try {
return fromString ( value ) ;
} catch ( e2 ) {
return defaultValue ;
}
} ;
} ) ( errorCorrectionLevel ) ;
function BitBuffer$1 ( ) {
this . buffer = [ ] ;
this . length = 0 ;
}
BitBuffer$1 . prototype = {
get : function ( index ) {
const bufIndex = Math . floor ( index / 8 ) ;
return ( this . buffer [ bufIndex ] >>> 7 - index % 8 & 1 ) === 1 ;
} ,
put : function ( num , length ) {
for ( let i2 = 0 ; i2 < length ; i2 ++ ) {
this . putBit ( ( num >>> length - i2 - 1 & 1 ) === 1 ) ;
}
} ,
getLengthInBits : function ( ) {
return this . length ;
} ,
putBit : function ( bit ) {
const bufIndex = Math . floor ( this . length / 8 ) ;
if ( this . buffer . length <= bufIndex ) {
this . buffer . push ( 0 ) ;
}
if ( bit ) {
this . buffer [ bufIndex ] |= 128 >>> this . length % 8 ;
}
this . length ++ ;
}
} ;
var bitBuffer = BitBuffer$1 ;
function BitMatrix$1 ( size ) {
if ( ! size || size < 1 ) {
throw new Error ( "BitMatrix size must be defined and greater than 0" ) ;
}
this . size = size ;
this . data = new Uint8Array ( size * size ) ;
this . reservedBit = new Uint8Array ( size * size ) ;
}
BitMatrix$1 . prototype . set = function ( row , col , value , reserved ) {
const index = row * this . size + col ;
this . data [ index ] = value ;
if ( reserved )
this . reservedBit [ index ] = true ;
} ;
BitMatrix$1 . prototype . get = function ( row , col ) {
return this . data [ row * this . size + col ] ;
} ;
BitMatrix$1 . prototype . xor = function ( row , col , value ) {
this . data [ row * this . size + col ] ^= value ;
} ;
BitMatrix$1 . prototype . isReserved = function ( row , col ) {
return this . reservedBit [ row * this . size + col ] ;
} ;
var bitMatrix = BitMatrix$1 ;
var alignmentPattern = { } ;
( function ( exports ) {
const getSymbolSize3 = utils$1 . getSymbolSize ;
exports . getRowColCoords = function getRowColCoords ( version2 ) {
if ( version2 === 1 )
return [ ] ;
const posCount = Math . floor ( version2 / 7 ) + 2 ;
const size = getSymbolSize3 ( version2 ) ;
const intervals = size === 145 ? 26 : Math . ceil ( ( size - 13 ) / ( 2 * posCount - 2 ) ) * 2 ;
const positions = [ size - 7 ] ;
for ( let i2 = 1 ; i2 < posCount - 1 ; i2 ++ ) {
positions [ i2 ] = positions [ i2 - 1 ] - intervals ;
}
positions . push ( 6 ) ;
return positions . reverse ( ) ;
} ;
exports . getPositions = function getPositions2 ( version2 ) {
const coords = [ ] ;
const pos = exports . getRowColCoords ( version2 ) ;
const posLength = pos . length ;
for ( let i2 = 0 ; i2 < posLength ; i2 ++ ) {
for ( let j = 0 ; j < posLength ; j ++ ) {
if ( i2 === 0 && j === 0 || // top-left
i2 === 0 && j === posLength - 1 || // bottom-left
i2 === posLength - 1 && j === 0 ) {
continue ;
}
coords . push ( [ pos [ i2 ] , pos [ j ] ] ) ;
}
}
return coords ;
} ;
} ) ( alignmentPattern ) ;
var finderPattern = { } ;
const getSymbolSize2 = utils$1 . getSymbolSize ;
const FINDER _PATTERN _SIZE = 7 ;
finderPattern . getPositions = function getPositions ( version2 ) {
const size = getSymbolSize2 ( version2 ) ;
return [
// top-left
[ 0 , 0 ] ,
// top-right
[ size - FINDER _PATTERN _SIZE , 0 ] ,
// bottom-left
[ 0 , size - FINDER _PATTERN _SIZE ]
] ;
} ;
var maskPattern = { } ;
( function ( exports ) {
exports . Patterns = {
PATTERN000 : 0 ,
PATTERN001 : 1 ,
PATTERN010 : 2 ,
PATTERN011 : 3 ,
PATTERN100 : 4 ,
PATTERN101 : 5 ,
PATTERN110 : 6 ,
PATTERN111 : 7
} ;
const PenaltyScores = {
N1 : 3 ,
N2 : 3 ,
N3 : 40 ,
N4 : 10
} ;
exports . isValid = function isValid2 ( mask ) {
return mask != null && mask !== "" && ! isNaN ( mask ) && mask >= 0 && mask <= 7 ;
} ;
exports . from = function from ( value ) {
return exports . isValid ( value ) ? parseInt ( value , 10 ) : void 0 ;
} ;
exports . getPenaltyN1 = function getPenaltyN1 ( data2 ) {
const size = data2 . size ;
let points = 0 ;
let sameCountCol = 0 ;
let sameCountRow = 0 ;
let lastCol = null ;
let lastRow = null ;
for ( let row = 0 ; row < size ; row ++ ) {
sameCountCol = sameCountRow = 0 ;
lastCol = lastRow = null ;
for ( let col = 0 ; col < size ; col ++ ) {
let module = data2 . get ( row , col ) ;
if ( module === lastCol ) {
sameCountCol ++ ;
} else {
if ( sameCountCol >= 5 )
points += PenaltyScores . N1 + ( sameCountCol - 5 ) ;
lastCol = module ;
sameCountCol = 1 ;
}
module = data2 . get ( col , row ) ;
if ( module === lastRow ) {
sameCountRow ++ ;
} else {
if ( sameCountRow >= 5 )
points += PenaltyScores . N1 + ( sameCountRow - 5 ) ;
lastRow = module ;
sameCountRow = 1 ;
}
}
if ( sameCountCol >= 5 )
points += PenaltyScores . N1 + ( sameCountCol - 5 ) ;
if ( sameCountRow >= 5 )
points += PenaltyScores . N1 + ( sameCountRow - 5 ) ;
}
return points ;
} ;
exports . getPenaltyN2 = function getPenaltyN2 ( data2 ) {
const size = data2 . size ;
let points = 0 ;
for ( let row = 0 ; row < size - 1 ; row ++ ) {
for ( let col = 0 ; col < size - 1 ; col ++ ) {
const last = data2 . get ( row , col ) + data2 . get ( row , col + 1 ) + data2 . get ( row + 1 , col ) + data2 . get ( row + 1 , col + 1 ) ;
if ( last === 4 || last === 0 )
points ++ ;
}
}
return points * PenaltyScores . N2 ;
} ;
exports . getPenaltyN3 = function getPenaltyN3 ( data2 ) {
const size = data2 . size ;
let points = 0 ;
let bitsCol = 0 ;
let bitsRow = 0 ;
for ( let row = 0 ; row < size ; row ++ ) {
bitsCol = bitsRow = 0 ;
for ( let col = 0 ; col < size ; col ++ ) {
bitsCol = bitsCol << 1 & 2047 | data2 . get ( row , col ) ;
if ( col >= 10 && ( bitsCol === 1488 || bitsCol === 93 ) )
points ++ ;
bitsRow = bitsRow << 1 & 2047 | data2 . get ( col , row ) ;
if ( col >= 10 && ( bitsRow === 1488 || bitsRow === 93 ) )
points ++ ;
}
}
return points * PenaltyScores . N3 ;
} ;
exports . getPenaltyN4 = function getPenaltyN4 ( data2 ) {
let darkCount = 0 ;
const modulesCount = data2 . data . length ;
for ( let i2 = 0 ; i2 < modulesCount ; i2 ++ )
darkCount += data2 . data [ i2 ] ;
const k2 = Math . abs ( Math . ceil ( darkCount * 100 / modulesCount / 5 ) - 10 ) ;
return k2 * PenaltyScores . N4 ;
} ;
function getMaskAt ( maskPattern2 , i2 , j ) {
switch ( maskPattern2 ) {
case exports . Patterns . PATTERN000 :
return ( i2 + j ) % 2 === 0 ;
case exports . Patterns . PATTERN001 :
return i2 % 2 === 0 ;
case exports . Patterns . PATTERN010 :
return j % 3 === 0 ;
case exports . Patterns . PATTERN011 :
return ( i2 + j ) % 3 === 0 ;
case exports . Patterns . PATTERN100 :
return ( Math . floor ( i2 / 2 ) + Math . floor ( j / 3 ) ) % 2 === 0 ;
case exports . Patterns . PATTERN101 :
return i2 * j % 2 + i2 * j % 3 === 0 ;
case exports . Patterns . PATTERN110 :
return ( i2 * j % 2 + i2 * j % 3 ) % 2 === 0 ;
case exports . Patterns . PATTERN111 :
return ( i2 * j % 3 + ( i2 + j ) % 2 ) % 2 === 0 ;
default :
throw new Error ( "bad maskPattern:" + maskPattern2 ) ;
}
}
exports . applyMask = function applyMask ( pattern , data2 ) {
const size = data2 . size ;
for ( let col = 0 ; col < size ; col ++ ) {
for ( let row = 0 ; row < size ; row ++ ) {
if ( data2 . isReserved ( row , col ) )
continue ;
data2 . xor ( row , col , getMaskAt ( pattern , row , col ) ) ;
}
}
} ;
exports . getBestMask = function getBestMask ( data2 , setupFormatFunc ) {
const numPatterns = Object . keys ( exports . Patterns ) . length ;
let bestPattern = 0 ;
let lowerPenalty = Infinity ;
for ( let p2 = 0 ; p2 < numPatterns ; p2 ++ ) {
setupFormatFunc ( p2 ) ;
exports . applyMask ( p2 , data2 ) ;
const penalty = exports . getPenaltyN1 ( data2 ) + exports . getPenaltyN2 ( data2 ) + exports . getPenaltyN3 ( data2 ) + exports . getPenaltyN4 ( data2 ) ;
exports . applyMask ( p2 , data2 ) ;
if ( penalty < lowerPenalty ) {
lowerPenalty = penalty ;
bestPattern = p2 ;
}
}
return bestPattern ;
} ;
} ) ( maskPattern ) ;
var errorCorrectionCode = { } ;
const ECLevel$1 = errorCorrectionLevel ;
const EC _BLOCKS _TABLE = [
// L M Q H
1 ,
1 ,
1 ,
1 ,
1 ,
1 ,
1 ,
1 ,
1 ,
1 ,
2 ,
2 ,
1 ,
2 ,
2 ,
4 ,
1 ,
2 ,
4 ,
4 ,
2 ,
4 ,
4 ,
4 ,
2 ,
4 ,
6 ,
5 ,
2 ,
4 ,
6 ,
6 ,
2 ,
5 ,
8 ,
8 ,
4 ,
5 ,
8 ,
8 ,
4 ,
5 ,
8 ,
11 ,
4 ,
8 ,
10 ,
11 ,
4 ,
9 ,
12 ,
16 ,
4 ,
9 ,
16 ,
16 ,
6 ,
10 ,
12 ,
18 ,
6 ,
10 ,
17 ,
16 ,
6 ,
11 ,
16 ,
19 ,
6 ,
13 ,
18 ,
21 ,
7 ,
14 ,
21 ,
25 ,
8 ,
16 ,
20 ,
25 ,
8 ,
17 ,
23 ,
25 ,
9 ,
17 ,
23 ,
34 ,
9 ,
18 ,
25 ,
30 ,
10 ,
20 ,
27 ,
32 ,
12 ,
21 ,
29 ,
35 ,
12 ,
23 ,
34 ,
37 ,
12 ,
25 ,
34 ,
40 ,
13 ,
26 ,
35 ,
42 ,
14 ,
28 ,
38 ,
45 ,
15 ,
29 ,
40 ,
48 ,
16 ,
31 ,
43 ,
51 ,
17 ,
33 ,
45 ,
54 ,
18 ,
35 ,
48 ,
57 ,
19 ,
37 ,
51 ,
60 ,
19 ,
38 ,
53 ,
63 ,
20 ,
40 ,
56 ,
66 ,
21 ,
43 ,
59 ,
70 ,
22 ,
45 ,
62 ,
74 ,
24 ,
47 ,
65 ,
77 ,
25 ,
49 ,
68 ,
81
] ;
const EC _CODEWORDS _TABLE = [
// L M Q H
7 ,
10 ,
13 ,
17 ,
10 ,
16 ,
22 ,
28 ,
15 ,
26 ,
36 ,
44 ,
20 ,
36 ,
52 ,
64 ,
26 ,
48 ,
72 ,
88 ,
36 ,
64 ,
96 ,
112 ,
40 ,
72 ,
108 ,
130 ,
48 ,
88 ,
132 ,
156 ,
60 ,
110 ,
160 ,
192 ,
72 ,
130 ,
192 ,
224 ,
80 ,
150 ,
224 ,
264 ,
96 ,
176 ,
260 ,
308 ,
104 ,
198 ,
288 ,
352 ,
120 ,
216 ,
320 ,
384 ,
132 ,
240 ,
360 ,
432 ,
144 ,
280 ,
408 ,
480 ,
168 ,
308 ,
448 ,
532 ,
180 ,
338 ,
504 ,
588 ,
196 ,
364 ,
546 ,
650 ,
224 ,
416 ,
600 ,
700 ,
224 ,
442 ,
644 ,
750 ,
252 ,
476 ,
690 ,
816 ,
270 ,
504 ,
750 ,
900 ,
300 ,
560 ,
810 ,
960 ,
312 ,
588 ,
870 ,
1050 ,
336 ,
644 ,
952 ,
1110 ,
360 ,
700 ,
1020 ,
1200 ,
390 ,
728 ,
1050 ,
1260 ,
420 ,
784 ,
1140 ,
1350 ,
450 ,
812 ,
1200 ,
1440 ,
480 ,
868 ,
1290 ,
1530 ,
510 ,
924 ,
1350 ,
1620 ,
540 ,
980 ,
1440 ,
1710 ,
570 ,
1036 ,
1530 ,
1800 ,
570 ,
1064 ,
1590 ,
1890 ,
600 ,
1120 ,
1680 ,
1980 ,
630 ,
1204 ,
1770 ,
2100 ,
660 ,
1260 ,
1860 ,
2220 ,
720 ,
1316 ,
1950 ,
2310 ,
750 ,
1372 ,
2040 ,
2430
] ;
errorCorrectionCode . getBlocksCount = function getBlocksCount ( version2 , errorCorrectionLevel2 ) {
switch ( errorCorrectionLevel2 ) {
case ECLevel$1 . L :
return EC _BLOCKS _TABLE [ ( version2 - 1 ) * 4 + 0 ] ;
case ECLevel$1 . M :
return EC _BLOCKS _TABLE [ ( version2 - 1 ) * 4 + 1 ] ;
case ECLevel$1 . Q :
return EC _BLOCKS _TABLE [ ( version2 - 1 ) * 4 + 2 ] ;
case ECLevel$1 . H :
return EC _BLOCKS _TABLE [ ( version2 - 1 ) * 4 + 3 ] ;
default :
return void 0 ;
}
} ;
errorCorrectionCode . getTotalCodewordsCount = function getTotalCodewordsCount ( version2 , errorCorrectionLevel2 ) {
switch ( errorCorrectionLevel2 ) {
case ECLevel$1 . L :
return EC _CODEWORDS _TABLE [ ( version2 - 1 ) * 4 + 0 ] ;
case ECLevel$1 . M :
return EC _CODEWORDS _TABLE [ ( version2 - 1 ) * 4 + 1 ] ;
case ECLevel$1 . Q :
return EC _CODEWORDS _TABLE [ ( version2 - 1 ) * 4 + 2 ] ;
case ECLevel$1 . H :
return EC _CODEWORDS _TABLE [ ( version2 - 1 ) * 4 + 3 ] ;
default :
return void 0 ;
}
} ;
var polynomial = { } ;
var galoisField = { } ;
const EXP _TABLE = new Uint8Array ( 512 ) ;
const LOG _TABLE = new Uint8Array ( 256 ) ;
( function initTables ( ) {
let x2 = 1 ;
for ( let i2 = 0 ; i2 < 255 ; i2 ++ ) {
EXP _TABLE [ i2 ] = x2 ;
LOG _TABLE [ x2 ] = i2 ;
x2 <<= 1 ;
if ( x2 & 256 ) {
x2 ^= 285 ;
}
}
for ( let i2 = 255 ; i2 < 512 ; i2 ++ ) {
EXP _TABLE [ i2 ] = EXP _TABLE [ i2 - 255 ] ;
}
} ) ( ) ;
galoisField . log = function log ( n2 ) {
if ( n2 < 1 )
throw new Error ( "log(" + n2 + ")" ) ;
return LOG _TABLE [ n2 ] ;
} ;
galoisField . exp = function exp ( n2 ) {
return EXP _TABLE [ n2 ] ;
} ;
galoisField . mul = function mul ( x2 , y2 ) {
if ( x2 === 0 || y2 === 0 )
return 0 ;
return EXP _TABLE [ LOG _TABLE [ x2 ] + LOG _TABLE [ y2 ] ] ;
} ;
( function ( exports ) {
const GF = galoisField ;
exports . mul = function mul2 ( p1 , p2 ) {
const coeff = new Uint8Array ( p1 . length + p2 . length - 1 ) ;
for ( let i2 = 0 ; i2 < p1 . length ; i2 ++ ) {
for ( let j = 0 ; j < p2 . length ; j ++ ) {
coeff [ i2 + j ] ^= GF . mul ( p1 [ i2 ] , p2 [ j ] ) ;
}
}
return coeff ;
} ;
exports . mod = function mod ( divident , divisor ) {
let result = new Uint8Array ( divident ) ;
while ( result . length - divisor . length >= 0 ) {
const coeff = result [ 0 ] ;
for ( let i2 = 0 ; i2 < divisor . length ; i2 ++ ) {
result [ i2 ] ^= GF . mul ( divisor [ i2 ] , coeff ) ;
}
let offset = 0 ;
while ( offset < result . length && result [ offset ] === 0 )
offset ++ ;
result = result . slice ( offset ) ;
}
return result ;
} ;
exports . generateECPolynomial = function generateECPolynomial ( degree ) {
let poly = new Uint8Array ( [ 1 ] ) ;
for ( let i2 = 0 ; i2 < degree ; i2 ++ ) {
poly = exports . mul ( poly , new Uint8Array ( [ 1 , GF . exp ( i2 ) ] ) ) ;
}
return poly ;
} ;
} ) ( polynomial ) ;
const Polynomial = polynomial ;
function ReedSolomonEncoder$1 ( degree ) {
this . genPoly = void 0 ;
this . degree = degree ;
if ( this . degree )
this . initialize ( this . degree ) ;
}
ReedSolomonEncoder$1 . prototype . initialize = function initialize ( degree ) {
this . degree = degree ;
this . genPoly = Polynomial . generateECPolynomial ( this . degree ) ;
} ;
ReedSolomonEncoder$1 . prototype . encode = function encode ( data2 ) {
if ( ! this . genPoly ) {
throw new Error ( "Encoder not initialized" ) ;
}
const paddedData = new Uint8Array ( data2 . length + this . degree ) ;
paddedData . set ( data2 ) ;
const remainder = Polynomial . mod ( paddedData , this . genPoly ) ;
const start = this . degree - remainder . length ;
if ( start > 0 ) {
const buff = new Uint8Array ( this . degree ) ;
buff . set ( remainder , start ) ;
return buff ;
}
return remainder ;
} ;
var reedSolomonEncoder = ReedSolomonEncoder$1 ;
var version = { } ;
var mode = { } ;
var versionCheck = { } ;
versionCheck . isValid = function isValid ( version2 ) {
return ! isNaN ( version2 ) && version2 >= 1 && version2 <= 40 ;
} ;
var regex = { } ;
const numeric = "[0-9]+" ;
const alphanumeric = "[A-Z $%*+\\-./:]+" ;
let kanji = "(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+" ;
kanji = kanji . replace ( /u/g , "\\u" ) ;
const byte = "(?:(?![A-Z0-9 $%*+\\-./:]|" + kanji + ")(?:.|[\r\n]))+" ;
regex . KANJI = new RegExp ( kanji , "g" ) ;
regex . BYTE _KANJI = new RegExp ( "[^A-Z0-9 $%*+\\-./:]+" , "g" ) ;
regex . BYTE = new RegExp ( byte , "g" ) ;
regex . NUMERIC = new RegExp ( numeric , "g" ) ;
regex . ALPHANUMERIC = new RegExp ( alphanumeric , "g" ) ;
const TEST _KANJI = new RegExp ( "^" + kanji + "$" ) ;
const TEST _NUMERIC = new RegExp ( "^" + numeric + "$" ) ;
const TEST _ALPHANUMERIC = new RegExp ( "^[A-Z0-9 $%*+\\-./:]+$" ) ;
regex . testKanji = function testKanji ( str ) {
return TEST _KANJI . test ( str ) ;
} ;
regex . testNumeric = function testNumeric ( str ) {
return TEST _NUMERIC . test ( str ) ;
} ;
regex . testAlphanumeric = function testAlphanumeric ( str ) {
return TEST _ALPHANUMERIC . test ( str ) ;
} ;
( function ( exports ) {
const VersionCheck = versionCheck ;
const Regex = regex ;
exports . NUMERIC = {
id : "Numeric" ,
bit : 1 << 0 ,
ccBits : [ 10 , 12 , 14 ]
} ;
exports . ALPHANUMERIC = {
id : "Alphanumeric" ,
bit : 1 << 1 ,
ccBits : [ 9 , 11 , 13 ]
} ;
exports . BYTE = {
id : "Byte" ,
bit : 1 << 2 ,
ccBits : [ 8 , 16 , 16 ]
} ;
exports . KANJI = {
id : "Kanji" ,
bit : 1 << 3 ,
ccBits : [ 8 , 10 , 12 ]
} ;
exports . MIXED = {
bit : - 1
} ;
exports . getCharCountIndicator = function getCharCountIndicator ( mode2 , version2 ) {
if ( ! mode2 . ccBits )
throw new Error ( "Invalid mode: " + mode2 ) ;
if ( ! VersionCheck . isValid ( version2 ) ) {
throw new Error ( "Invalid version: " + version2 ) ;
}
if ( version2 >= 1 && version2 < 10 )
return mode2 . ccBits [ 0 ] ;
else if ( version2 < 27 )
return mode2 . ccBits [ 1 ] ;
return mode2 . ccBits [ 2 ] ;
} ;
exports . getBestModeForData = function getBestModeForData ( dataStr ) {
if ( Regex . testNumeric ( dataStr ) )
return exports . NUMERIC ;
else if ( Regex . testAlphanumeric ( dataStr ) )
return exports . ALPHANUMERIC ;
else if ( Regex . testKanji ( dataStr ) )
return exports . KANJI ;
else
return exports . BYTE ;
} ;
exports . toString = function toString ( mode2 ) {
if ( mode2 && mode2 . id )
return mode2 . id ;
throw new Error ( "Invalid mode" ) ;
} ;
exports . isValid = function isValid2 ( mode2 ) {
return mode2 && mode2 . bit && mode2 . ccBits ;
} ;
function fromString ( string ) {
if ( typeof string !== "string" ) {
throw new Error ( "Param is not a string" ) ;
}
const lcStr = string . toLowerCase ( ) ;
switch ( lcStr ) {
case "numeric" :
return exports . NUMERIC ;
case "alphanumeric" :
return exports . ALPHANUMERIC ;
case "kanji" :
return exports . KANJI ;
case "byte" :
return exports . BYTE ;
default :
throw new Error ( "Unknown mode: " + string ) ;
}
}
exports . from = function from ( value , defaultValue ) {
if ( exports . isValid ( value ) ) {
return value ;
}
try {
return fromString ( value ) ;
} catch ( e2 ) {
return defaultValue ;
}
} ;
} ) ( mode ) ;
( function ( exports ) {
const Utils2 = utils$1 ;
const ECCode2 = errorCorrectionCode ;
const ECLevel2 = errorCorrectionLevel ;
const Mode2 = mode ;
const VersionCheck = versionCheck ;
const G18 = 1 << 12 | 1 << 11 | 1 << 10 | 1 << 9 | 1 << 8 | 1 << 5 | 1 << 2 | 1 << 0 ;
const G18 _BCH = Utils2 . getBCHDigit ( G18 ) ;
function getBestVersionForDataLength ( mode2 , length , errorCorrectionLevel2 ) {
for ( let currentVersion = 1 ; currentVersion <= 40 ; currentVersion ++ ) {
if ( length <= exports . getCapacity ( currentVersion , errorCorrectionLevel2 , mode2 ) ) {
return currentVersion ;
}
}
return void 0 ;
}
function getReservedBitsCount ( mode2 , version2 ) {
return Mode2 . getCharCountIndicator ( mode2 , version2 ) + 4 ;
}
function getTotalBitsFromDataArray ( segments2 , version2 ) {
let totalBits = 0 ;
segments2 . forEach ( function ( data2 ) {
const reservedBits = getReservedBitsCount ( data2 . mode , version2 ) ;
totalBits += reservedBits + data2 . getBitsLength ( ) ;
} ) ;
return totalBits ;
}
function getBestVersionForMixedData ( segments2 , errorCorrectionLevel2 ) {
for ( let currentVersion = 1 ; currentVersion <= 40 ; currentVersion ++ ) {
const length = getTotalBitsFromDataArray ( segments2 , currentVersion ) ;
if ( length <= exports . getCapacity ( currentVersion , errorCorrectionLevel2 , Mode2 . MIXED ) ) {
return currentVersion ;
}
}
return void 0 ;
}
exports . from = function from ( value , defaultValue ) {
if ( VersionCheck . isValid ( value ) ) {
return parseInt ( value , 10 ) ;
}
return defaultValue ;
} ;
exports . getCapacity = function getCapacity ( version2 , errorCorrectionLevel2 , mode2 ) {
if ( ! VersionCheck . isValid ( version2 ) ) {
throw new Error ( "Invalid QR Code version" ) ;
}
if ( typeof mode2 === "undefined" )
mode2 = Mode2 . BYTE ;
const totalCodewords = Utils2 . getSymbolTotalCodewords ( version2 ) ;
const ecTotalCodewords = ECCode2 . getTotalCodewordsCount ( version2 , errorCorrectionLevel2 ) ;
const dataTotalCodewordsBits = ( totalCodewords - ecTotalCodewords ) * 8 ;
if ( mode2 === Mode2 . MIXED )
return dataTotalCodewordsBits ;
const usableBits = dataTotalCodewordsBits - getReservedBitsCount ( mode2 , version2 ) ;
switch ( mode2 ) {
case Mode2 . NUMERIC :
return Math . floor ( usableBits / 10 * 3 ) ;
case Mode2 . ALPHANUMERIC :
return Math . floor ( usableBits / 11 * 2 ) ;
case Mode2 . KANJI :
return Math . floor ( usableBits / 13 ) ;
case Mode2 . BYTE :
default :
return Math . floor ( usableBits / 8 ) ;
}
} ;
exports . getBestVersionForData = function getBestVersionForData ( data2 , errorCorrectionLevel2 ) {
let seg ;
const ecl = ECLevel2 . from ( errorCorrectionLevel2 , ECLevel2 . M ) ;
if ( Array . isArray ( data2 ) ) {
if ( data2 . length > 1 ) {
return getBestVersionForMixedData ( data2 , ecl ) ;
}
if ( data2 . length === 0 ) {
return 1 ;
}
seg = data2 [ 0 ] ;
} else {
seg = data2 ;
}
return getBestVersionForDataLength ( seg . mode , seg . getLength ( ) , ecl ) ;
} ;
exports . getEncodedBits = function getEncodedBits2 ( version2 ) {
if ( ! VersionCheck . isValid ( version2 ) || version2 < 7 ) {
throw new Error ( "Invalid QR Code version" ) ;
}
let d3 = version2 << 12 ;
while ( Utils2 . getBCHDigit ( d3 ) - G18 _BCH >= 0 ) {
d3 ^= G18 << Utils2 . getBCHDigit ( d3 ) - G18 _BCH ;
}
return version2 << 12 | d3 ;
} ;
} ) ( version ) ;
var formatInfo = { } ;
const Utils$3 = utils$1 ;
const G15 = 1 << 10 | 1 << 8 | 1 << 5 | 1 << 4 | 1 << 2 | 1 << 1 | 1 << 0 ;
const G15 _MASK = 1 << 14 | 1 << 12 | 1 << 10 | 1 << 4 | 1 << 1 ;
const G15 _BCH = Utils$3 . getBCHDigit ( G15 ) ;
formatInfo . getEncodedBits = function getEncodedBits ( errorCorrectionLevel2 , mask ) {
const data2 = errorCorrectionLevel2 . bit << 3 | mask ;
let d3 = data2 << 10 ;
while ( Utils$3 . getBCHDigit ( d3 ) - G15 _BCH >= 0 ) {
d3 ^= G15 << Utils$3 . getBCHDigit ( d3 ) - G15 _BCH ;
}
return ( data2 << 10 | d3 ) ^ G15 _MASK ;
} ;
var segments = { } ;
const Mode$4 = mode ;
function NumericData ( data2 ) {
this . mode = Mode$4 . NUMERIC ;
this . data = data2 . toString ( ) ;
}
NumericData . getBitsLength = function getBitsLength ( length ) {
return 10 * Math . floor ( length / 3 ) + ( length % 3 ? length % 3 * 3 + 1 : 0 ) ;
} ;
NumericData . prototype . getLength = function getLength ( ) {
return this . data . length ;
} ;
NumericData . prototype . getBitsLength = function getBitsLength2 ( ) {
return NumericData . getBitsLength ( this . data . length ) ;
} ;
NumericData . prototype . write = function write ( bitBuffer2 ) {
let i2 , group , value ;
for ( i2 = 0 ; i2 + 3 <= this . data . length ; i2 += 3 ) {
group = this . data . substr ( i2 , 3 ) ;
value = parseInt ( group , 10 ) ;
bitBuffer2 . put ( value , 10 ) ;
}
const remainingNum = this . data . length - i2 ;
if ( remainingNum > 0 ) {
group = this . data . substr ( i2 ) ;
value = parseInt ( group , 10 ) ;
bitBuffer2 . put ( value , remainingNum * 3 + 1 ) ;
}
} ;
var numericData = NumericData ;
const Mode$3 = mode ;
const ALPHA _NUM _CHARS = [
"0" ,
"1" ,
"2" ,
"3" ,
"4" ,
"5" ,
"6" ,
"7" ,
"8" ,
"9" ,
"A" ,
"B" ,
"C" ,
"D" ,
"E" ,
"F" ,
"G" ,
"H" ,
"I" ,
"J" ,
"K" ,
"L" ,
"M" ,
"N" ,
"O" ,
"P" ,
"Q" ,
"R" ,
"S" ,
"T" ,
"U" ,
"V" ,
"W" ,
"X" ,
"Y" ,
"Z" ,
" " ,
"$" ,
"%" ,
"*" ,
"+" ,
"-" ,
"." ,
"/" ,
":"
] ;
function AlphanumericData ( data2 ) {
this . mode = Mode$3 . ALPHANUMERIC ;
this . data = data2 ;
}
AlphanumericData . getBitsLength = function getBitsLength3 ( length ) {
return 11 * Math . floor ( length / 2 ) + 6 * ( length % 2 ) ;
} ;
AlphanumericData . prototype . getLength = function getLength2 ( ) {
return this . data . length ;
} ;
AlphanumericData . prototype . getBitsLength = function getBitsLength4 ( ) {
return AlphanumericData . getBitsLength ( this . data . length ) ;
} ;
AlphanumericData . prototype . write = function write2 ( bitBuffer2 ) {
let i2 ;
for ( i2 = 0 ; i2 + 2 <= this . data . length ; i2 += 2 ) {
let value = ALPHA _NUM _CHARS . indexOf ( this . data [ i2 ] ) * 45 ;
value += ALPHA _NUM _CHARS . indexOf ( this . data [ i2 + 1 ] ) ;
bitBuffer2 . put ( value , 11 ) ;
}
if ( this . data . length % 2 ) {
bitBuffer2 . put ( ALPHA _NUM _CHARS . indexOf ( this . data [ i2 ] ) , 6 ) ;
}
} ;
var alphanumericData = AlphanumericData ;
var encodeUtf8$1 = function encodeUtf8 ( input ) {
var result = [ ] ;
var size = input . length ;
for ( var index = 0 ; index < size ; index ++ ) {
var point = input . charCodeAt ( index ) ;
if ( point >= 55296 && point <= 56319 && size > index + 1 ) {
var second = input . charCodeAt ( index + 1 ) ;
if ( second >= 56320 && second <= 57343 ) {
point = ( point - 55296 ) * 1024 + second - 56320 + 65536 ;
index += 1 ;
}
}
if ( point < 128 ) {
result . push ( point ) ;
continue ;
}
if ( point < 2048 ) {
result . push ( point >> 6 | 192 ) ;
result . push ( point & 63 | 128 ) ;
continue ;
}
if ( point < 55296 || point >= 57344 && point < 65536 ) {
result . push ( point >> 12 | 224 ) ;
result . push ( point >> 6 & 63 | 128 ) ;
result . push ( point & 63 | 128 ) ;
continue ;
}
if ( point >= 65536 && point <= 1114111 ) {
result . push ( point >> 18 | 240 ) ;
result . push ( point >> 12 & 63 | 128 ) ;
result . push ( point >> 6 & 63 | 128 ) ;
result . push ( point & 63 | 128 ) ;
continue ;
}
result . push ( 239 , 191 , 189 ) ;
}
return new Uint8Array ( result ) . buffer ;
} ;
const encodeUtf82 = encodeUtf8$1 ;
const Mode$2 = mode ;
function ByteData ( data2 ) {
this . mode = Mode$2 . BYTE ;
if ( typeof data2 === "string" ) {
data2 = encodeUtf82 ( data2 ) ;
}
this . data = new Uint8Array ( data2 ) ;
}
ByteData . getBitsLength = function getBitsLength5 ( length ) {
return length * 8 ;
} ;
ByteData . prototype . getLength = function getLength3 ( ) {
return this . data . length ;
} ;
ByteData . prototype . getBitsLength = function getBitsLength6 ( ) {
return ByteData . getBitsLength ( this . data . length ) ;
} ;
ByteData . prototype . write = function ( bitBuffer2 ) {
for ( let i2 = 0 , l2 = this . data . length ; i2 < l2 ; i2 ++ ) {
bitBuffer2 . put ( this . data [ i2 ] , 8 ) ;
}
} ;
var byteData = ByteData ;
const Mode$1 = mode ;
const Utils$2 = utils$1 ;
function KanjiData ( data2 ) {
this . mode = Mode$1 . KANJI ;
this . data = data2 ;
}
KanjiData . getBitsLength = function getBitsLength7 ( length ) {
return length * 13 ;
} ;
KanjiData . prototype . getLength = function getLength4 ( ) {
return this . data . length ;
} ;
KanjiData . prototype . getBitsLength = function getBitsLength8 ( ) {
return KanjiData . getBitsLength ( this . data . length ) ;
} ;
KanjiData . prototype . write = function ( bitBuffer2 ) {
let i2 ;
for ( i2 = 0 ; i2 < this . data . length ; i2 ++ ) {
let value = Utils$2 . toSJIS ( this . data [ i2 ] ) ;
if ( value >= 33088 && value <= 40956 ) {
value -= 33088 ;
} else if ( value >= 57408 && value <= 60351 ) {
value -= 49472 ;
} else {
throw new Error (
"Invalid SJIS character: " + this . data [ i2 ] + "\nMake sure your charset is UTF-8"
) ;
}
value = ( value >>> 8 & 255 ) * 192 + ( value & 255 ) ;
bitBuffer2 . put ( value , 13 ) ;
}
} ;
var kanjiData = KanjiData ;
( function ( exports ) {
const Mode2 = mode ;
const NumericData2 = numericData ;
const AlphanumericData2 = alphanumericData ;
const ByteData2 = byteData ;
const KanjiData2 = kanjiData ;
const Regex = regex ;
const Utils2 = utils$1 ;
const dijkstra = dijkstraExports ;
function getStringByteLength ( str ) {
return unescape ( encodeURIComponent ( str ) ) . length ;
}
function getSegments ( regex2 , mode2 , str ) {
const segments2 = [ ] ;
let result ;
while ( ( result = regex2 . exec ( str ) ) !== null ) {
segments2 . push ( {
data : result [ 0 ] ,
index : result . index ,
mode : mode2 ,
length : result [ 0 ] . length
} ) ;
}
return segments2 ;
}
function getSegmentsFromString ( dataStr ) {
const numSegs = getSegments ( Regex . NUMERIC , Mode2 . NUMERIC , dataStr ) ;
const alphaNumSegs = getSegments ( Regex . ALPHANUMERIC , Mode2 . ALPHANUMERIC , dataStr ) ;
let byteSegs ;
let kanjiSegs ;
if ( Utils2 . isKanjiModeEnabled ( ) ) {
byteSegs = getSegments ( Regex . BYTE , Mode2 . BYTE , dataStr ) ;
kanjiSegs = getSegments ( Regex . KANJI , Mode2 . KANJI , dataStr ) ;
} else {
byteSegs = getSegments ( Regex . BYTE _KANJI , Mode2 . BYTE , dataStr ) ;
kanjiSegs = [ ] ;
}
const segs = numSegs . concat ( alphaNumSegs , byteSegs , kanjiSegs ) ;
return segs . sort ( function ( s1 , s2 ) {
return s1 . index - s2 . index ;
} ) . map ( function ( obj ) {
return {
data : obj . data ,
mode : obj . mode ,
length : obj . length
} ;
} ) ;
}
function getSegmentBitsLength ( length , mode2 ) {
switch ( mode2 ) {
case Mode2 . NUMERIC :
return NumericData2 . getBitsLength ( length ) ;
case Mode2 . ALPHANUMERIC :
return AlphanumericData2 . getBitsLength ( length ) ;
case Mode2 . KANJI :
return KanjiData2 . getBitsLength ( length ) ;
case Mode2 . BYTE :
return ByteData2 . getBitsLength ( length ) ;
}
}
function mergeSegments ( segs ) {
return segs . reduce ( function ( acc , curr ) {
const prevSeg = acc . length - 1 >= 0 ? acc [ acc . length - 1 ] : null ;
if ( prevSeg && prevSeg . mode === curr . mode ) {
acc [ acc . length - 1 ] . data += curr . data ;
return acc ;
}
acc . push ( curr ) ;
return acc ;
} , [ ] ) ;
}
function buildNodes ( segs ) {
const nodes = [ ] ;
for ( let i2 = 0 ; i2 < segs . length ; i2 ++ ) {
const seg = segs [ i2 ] ;
switch ( seg . mode ) {
case Mode2 . NUMERIC :
nodes . push ( [
seg ,
{ data : seg . data , mode : Mode2 . ALPHANUMERIC , length : seg . length } ,
{ data : seg . data , mode : Mode2 . BYTE , length : seg . length }
] ) ;
break ;
case Mode2 . ALPHANUMERIC :
nodes . push ( [
seg ,
{ data : seg . data , mode : Mode2 . BYTE , length : seg . length }
] ) ;
break ;
case Mode2 . KANJI :
nodes . push ( [
seg ,
{ data : seg . data , mode : Mode2 . BYTE , length : getStringByteLength ( seg . data ) }
] ) ;
break ;
case Mode2 . BYTE :
nodes . push ( [
{ data : seg . data , mode : Mode2 . BYTE , length : getStringByteLength ( seg . data ) }
] ) ;
}
}
return nodes ;
}
function buildGraph ( nodes , version2 ) {
const table = { } ;
const graph = { start : { } } ;
let prevNodeIds = [ "start" ] ;
for ( let i2 = 0 ; i2 < nodes . length ; i2 ++ ) {
const nodeGroup = nodes [ i2 ] ;
const currentNodeIds = [ ] ;
for ( let j = 0 ; j < nodeGroup . length ; j ++ ) {
const node = nodeGroup [ j ] ;
const key = "" + i2 + j ;
currentNodeIds . push ( key ) ;
table [ key ] = { node , lastCount : 0 } ;
graph [ key ] = { } ;
for ( let n2 = 0 ; n2 < prevNodeIds . length ; n2 ++ ) {
const prevNodeId = prevNodeIds [ n2 ] ;
if ( table [ prevNodeId ] && table [ prevNodeId ] . node . mode === node . mode ) {
graph [ prevNodeId ] [ key ] = getSegmentBitsLength ( table [ prevNodeId ] . lastCount + node . length , node . mode ) - getSegmentBitsLength ( table [ prevNodeId ] . lastCount , node . mode ) ;
table [ prevNodeId ] . lastCount += node . length ;
} else {
if ( table [ prevNodeId ] )
table [ prevNodeId ] . lastCount = node . length ;
graph [ prevNodeId ] [ key ] = getSegmentBitsLength ( node . length , node . mode ) + 4 + Mode2 . getCharCountIndicator ( node . mode , version2 ) ;
}
}
}
prevNodeIds = currentNodeIds ;
}
for ( let n2 = 0 ; n2 < prevNodeIds . length ; n2 ++ ) {
graph [ prevNodeIds [ n2 ] ] . end = 0 ;
}
return { map : graph , table } ;
}
function buildSingleSegment ( data2 , modesHint ) {
let mode2 ;
const bestMode = Mode2 . getBestModeForData ( data2 ) ;
mode2 = Mode2 . from ( modesHint , bestMode ) ;
if ( mode2 !== Mode2 . BYTE && mode2 . bit < bestMode . bit ) {
throw new Error ( '"' + data2 + '" cannot be encoded with mode ' + Mode2 . toString ( mode2 ) + ".\n Suggested mode is: " + Mode2 . toString ( bestMode ) ) ;
}
if ( mode2 === Mode2 . KANJI && ! Utils2 . isKanjiModeEnabled ( ) ) {
mode2 = Mode2 . BYTE ;
}
switch ( mode2 ) {
case Mode2 . NUMERIC :
return new NumericData2 ( data2 ) ;
case Mode2 . ALPHANUMERIC :
return new AlphanumericData2 ( data2 ) ;
case Mode2 . KANJI :
return new KanjiData2 ( data2 ) ;
case Mode2 . BYTE :
return new ByteData2 ( data2 ) ;
}
}
exports . fromArray = function fromArray ( array ) {
return array . reduce ( function ( acc , seg ) {
if ( typeof seg === "string" ) {
acc . push ( buildSingleSegment ( seg , null ) ) ;
} else if ( seg . data ) {
acc . push ( buildSingleSegment ( seg . data , seg . mode ) ) ;
}
return acc ;
} , [ ] ) ;
} ;
exports . fromString = function fromString ( data2 , version2 ) {
const segs = getSegmentsFromString ( data2 , Utils2 . isKanjiModeEnabled ( ) ) ;
const nodes = buildNodes ( segs ) ;
const graph = buildGraph ( nodes , version2 ) ;
const path = dijkstra . find _path ( graph . map , "start" , "end" ) ;
const optimizedSegs = [ ] ;
for ( let i2 = 1 ; i2 < path . length - 1 ; i2 ++ ) {
optimizedSegs . push ( graph . table [ path [ i2 ] ] . node ) ;
}
return exports . fromArray ( mergeSegments ( optimizedSegs ) ) ;
} ;
exports . rawSplit = function rawSplit ( data2 ) {
return exports . fromArray (
getSegmentsFromString ( data2 , Utils2 . isKanjiModeEnabled ( ) )
) ;
} ;
} ) ( segments ) ;
const Utils$1 = utils$1 ;
const ECLevel = errorCorrectionLevel ;
const BitBuffer = bitBuffer ;
const BitMatrix = bitMatrix ;
const AlignmentPattern = alignmentPattern ;
const FinderPattern = finderPattern ;
const MaskPattern = maskPattern ;
const ECCode = errorCorrectionCode ;
const ReedSolomonEncoder = reedSolomonEncoder ;
const Version = version ;
const FormatInfo = formatInfo ;
const Mode = mode ;
const Segments = segments ;
function setupFinderPattern ( matrix , version2 ) {
const size = matrix . size ;
const pos = FinderPattern . getPositions ( version2 ) ;
for ( let i2 = 0 ; i2 < pos . length ; i2 ++ ) {
const row = pos [ i2 ] [ 0 ] ;
const col = pos [ i2 ] [ 1 ] ;
for ( let r2 = - 1 ; r2 <= 7 ; r2 ++ ) {
if ( row + r2 <= - 1 || size <= row + r2 )
continue ;
for ( let c2 = - 1 ; c2 <= 7 ; c2 ++ ) {
if ( col + c2 <= - 1 || size <= col + c2 )
continue ;
if ( r2 >= 0 && r2 <= 6 && ( c2 === 0 || c2 === 6 ) || c2 >= 0 && c2 <= 6 && ( r2 === 0 || r2 === 6 ) || r2 >= 2 && r2 <= 4 && c2 >= 2 && c2 <= 4 ) {
matrix . set ( row + r2 , col + c2 , true , true ) ;
} else {
matrix . set ( row + r2 , col + c2 , false , true ) ;
}
}
}
}
}
function setupTimingPattern ( matrix ) {
const size = matrix . size ;
for ( let r2 = 8 ; r2 < size - 8 ; r2 ++ ) {
const value = r2 % 2 === 0 ;
matrix . set ( r2 , 6 , value , true ) ;
matrix . set ( 6 , r2 , value , true ) ;
}
}
function setupAlignmentPattern ( matrix , version2 ) {
const pos = AlignmentPattern . getPositions ( version2 ) ;
for ( let i2 = 0 ; i2 < pos . length ; i2 ++ ) {
const row = pos [ i2 ] [ 0 ] ;
const col = pos [ i2 ] [ 1 ] ;
for ( let r2 = - 2 ; r2 <= 2 ; r2 ++ ) {
for ( let c2 = - 2 ; c2 <= 2 ; c2 ++ ) {
if ( r2 === - 2 || r2 === 2 || c2 === - 2 || c2 === 2 || r2 === 0 && c2 === 0 ) {
matrix . set ( row + r2 , col + c2 , true , true ) ;
} else {
matrix . set ( row + r2 , col + c2 , false , true ) ;
}
}
}
}
}
function setupVersionInfo ( matrix , version2 ) {
const size = matrix . size ;
const bits = Version . getEncodedBits ( version2 ) ;
let row , col , mod ;
for ( let i2 = 0 ; i2 < 18 ; i2 ++ ) {
row = Math . floor ( i2 / 3 ) ;
col = i2 % 3 + size - 8 - 3 ;
mod = ( bits >> i2 & 1 ) === 1 ;
matrix . set ( row , col , mod , true ) ;
matrix . set ( col , row , mod , true ) ;
}
}
function setupFormatInfo ( matrix , errorCorrectionLevel2 , maskPattern2 ) {
const size = matrix . size ;
const bits = FormatInfo . getEncodedBits ( errorCorrectionLevel2 , maskPattern2 ) ;
let i2 , mod ;
for ( i2 = 0 ; i2 < 15 ; i2 ++ ) {
mod = ( bits >> i2 & 1 ) === 1 ;
if ( i2 < 6 ) {
matrix . set ( i2 , 8 , mod , true ) ;
} else if ( i2 < 8 ) {
matrix . set ( i2 + 1 , 8 , mod , true ) ;
} else {
matrix . set ( size - 15 + i2 , 8 , mod , true ) ;
}
if ( i2 < 8 ) {
matrix . set ( 8 , size - i2 - 1 , mod , true ) ;
} else if ( i2 < 9 ) {
matrix . set ( 8 , 15 - i2 - 1 + 1 , mod , true ) ;
} else {
matrix . set ( 8 , 15 - i2 - 1 , mod , true ) ;
}
}
matrix . set ( size - 8 , 8 , 1 , true ) ;
}
function setupData ( matrix , data2 ) {
const size = matrix . size ;
let inc = - 1 ;
let row = size - 1 ;
let bitIndex = 7 ;
let byteIndex = 0 ;
for ( let col = size - 1 ; col > 0 ; col -= 2 ) {
if ( col === 6 )
col -- ;
while ( true ) {
for ( let c2 = 0 ; c2 < 2 ; c2 ++ ) {
if ( ! matrix . isReserved ( row , col - c2 ) ) {
let dark = false ;
if ( byteIndex < data2 . length ) {
dark = ( data2 [ byteIndex ] >>> bitIndex & 1 ) === 1 ;
}
matrix . set ( row , col - c2 , dark ) ;
bitIndex -- ;
if ( bitIndex === - 1 ) {
byteIndex ++ ;
bitIndex = 7 ;
}
}
}
row += inc ;
if ( row < 0 || size <= row ) {
row -= inc ;
inc = - inc ;
break ;
}
}
}
}
function createData ( version2 , errorCorrectionLevel2 , segments2 ) {
const buffer = new BitBuffer ( ) ;
segments2 . forEach ( function ( data2 ) {
buffer . put ( data2 . mode . bit , 4 ) ;
buffer . put ( data2 . getLength ( ) , Mode . getCharCountIndicator ( data2 . mode , version2 ) ) ;
data2 . write ( buffer ) ;
} ) ;
const totalCodewords = Utils$1 . getSymbolTotalCodewords ( version2 ) ;
const ecTotalCodewords = ECCode . getTotalCodewordsCount ( version2 , errorCorrectionLevel2 ) ;
const dataTotalCodewordsBits = ( totalCodewords - ecTotalCodewords ) * 8 ;
if ( buffer . getLengthInBits ( ) + 4 <= dataTotalCodewordsBits ) {
buffer . put ( 0 , 4 ) ;
}
while ( buffer . getLengthInBits ( ) % 8 !== 0 ) {
buffer . putBit ( 0 ) ;
}
const remainingByte = ( dataTotalCodewordsBits - buffer . getLengthInBits ( ) ) / 8 ;
for ( let i2 = 0 ; i2 < remainingByte ; i2 ++ ) {
buffer . put ( i2 % 2 ? 17 : 236 , 8 ) ;
}
return createCodewords ( buffer , version2 , errorCorrectionLevel2 ) ;
}
function createCodewords ( bitBuffer2 , version2 , errorCorrectionLevel2 ) {
const totalCodewords = Utils$1 . getSymbolTotalCodewords ( version2 ) ;
const ecTotalCodewords = ECCode . getTotalCodewordsCount ( version2 , errorCorrectionLevel2 ) ;
const dataTotalCodewords = totalCodewords - ecTotalCodewords ;
const ecTotalBlocks = ECCode . getBlocksCount ( version2 , errorCorrectionLevel2 ) ;
const blocksInGroup2 = totalCodewords % ecTotalBlocks ;
const blocksInGroup1 = ecTotalBlocks - blocksInGroup2 ;
const totalCodewordsInGroup1 = Math . floor ( totalCodewords / ecTotalBlocks ) ;
const dataCodewordsInGroup1 = Math . floor ( dataTotalCodewords / ecTotalBlocks ) ;
const dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1 ;
const ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1 ;
const rs = new ReedSolomonEncoder ( ecCount ) ;
let offset = 0 ;
const dcData = new Array ( ecTotalBlocks ) ;
const ecData = new Array ( ecTotalBlocks ) ;
let maxDataSize = 0 ;
const buffer = new Uint8Array ( bitBuffer2 . buffer ) ;
for ( let b2 = 0 ; b2 < ecTotalBlocks ; b2 ++ ) {
const dataSize = b2 < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2 ;
dcData [ b2 ] = buffer . slice ( offset , offset + dataSize ) ;
ecData [ b2 ] = rs . encode ( dcData [ b2 ] ) ;
offset += dataSize ;
maxDataSize = Math . max ( maxDataSize , dataSize ) ;
}
const data2 = new Uint8Array ( totalCodewords ) ;
let index = 0 ;
let i2 , r2 ;
for ( i2 = 0 ; i2 < maxDataSize ; i2 ++ ) {
for ( r2 = 0 ; r2 < ecTotalBlocks ; r2 ++ ) {
if ( i2 < dcData [ r2 ] . length ) {
data2 [ index ++ ] = dcData [ r2 ] [ i2 ] ;
}
}
}
for ( i2 = 0 ; i2 < ecCount ; i2 ++ ) {
for ( r2 = 0 ; r2 < ecTotalBlocks ; r2 ++ ) {
data2 [ index ++ ] = ecData [ r2 ] [ i2 ] ;
}
}
return data2 ;
}
function createSymbol ( data2 , version2 , errorCorrectionLevel2 , maskPattern2 ) {
let segments2 ;
if ( Array . isArray ( data2 ) ) {
segments2 = Segments . fromArray ( data2 ) ;
} else if ( typeof data2 === "string" ) {
let estimatedVersion = version2 ;
if ( ! estimatedVersion ) {
const rawSegments = Segments . rawSplit ( data2 ) ;
estimatedVersion = Version . getBestVersionForData ( rawSegments , errorCorrectionLevel2 ) ;
}
segments2 = Segments . fromString ( data2 , estimatedVersion || 40 ) ;
} else {
throw new Error ( "Invalid data" ) ;
}
const bestVersion = Version . getBestVersionForData ( segments2 , errorCorrectionLevel2 ) ;
if ( ! bestVersion ) {
throw new Error ( "The amount of data is too big to be stored in a QR Code" ) ;
}
if ( ! version2 ) {
version2 = bestVersion ;
} else if ( version2 < bestVersion ) {
throw new Error (
"\nThe chosen QR Code version cannot contain this amount of data.\nMinimum version required to store current data is: " + bestVersion + ".\n"
) ;
}
const dataBits = createData ( version2 , errorCorrectionLevel2 , segments2 ) ;
const moduleCount = Utils$1 . getSymbolSize ( version2 ) ;
const modules = new BitMatrix ( moduleCount ) ;
setupFinderPattern ( modules , version2 ) ;
setupTimingPattern ( modules ) ;
setupAlignmentPattern ( modules , version2 ) ;
setupFormatInfo ( modules , errorCorrectionLevel2 , 0 ) ;
if ( version2 >= 7 ) {
setupVersionInfo ( modules , version2 ) ;
}
setupData ( modules , dataBits ) ;
if ( isNaN ( maskPattern2 ) ) {
maskPattern2 = MaskPattern . getBestMask (
modules ,
setupFormatInfo . bind ( null , modules , errorCorrectionLevel2 )
) ;
}
MaskPattern . applyMask ( maskPattern2 , modules ) ;
setupFormatInfo ( modules , errorCorrectionLevel2 , maskPattern2 ) ;
return {
modules ,
version : version2 ,
errorCorrectionLevel : errorCorrectionLevel2 ,
maskPattern : maskPattern2 ,
segments : segments2
} ;
}
qrcode . create = function create ( data2 , options ) {
if ( typeof data2 === "undefined" || data2 === "" ) {
throw new Error ( "No input text" ) ;
}
let errorCorrectionLevel2 = ECLevel . M ;
let version2 ;
let mask ;
if ( typeof options !== "undefined" ) {
errorCorrectionLevel2 = ECLevel . from ( options . errorCorrectionLevel , ECLevel . M ) ;
version2 = Version . from ( options . version ) ;
mask = MaskPattern . from ( options . maskPattern ) ;
if ( options . toSJISFunc ) {
Utils$1 . setToSJISFunction ( options . toSJISFunc ) ;
}
}
return createSymbol ( data2 , version2 , errorCorrectionLevel2 , mask ) ;
} ;
var canvas = { } ;
var utils = { } ;
( function ( exports ) {
function hex2rgba ( hex ) {
if ( typeof hex === "number" ) {
hex = hex . toString ( ) ;
}
if ( typeof hex !== "string" ) {
throw new Error ( "Color should be defined as hex string" ) ;
}
let hexCode = hex . slice ( ) . replace ( "#" , "" ) . split ( "" ) ;
if ( hexCode . length < 3 || hexCode . length === 5 || hexCode . length > 8 ) {
throw new Error ( "Invalid hex color: " + hex ) ;
}
if ( hexCode . length === 3 || hexCode . length === 4 ) {
hexCode = Array . prototype . concat . apply ( [ ] , hexCode . map ( function ( c2 ) {
return [ c2 , c2 ] ;
} ) ) ;
}
if ( hexCode . length === 6 )
hexCode . push ( "F" , "F" ) ;
const hexValue = parseInt ( hexCode . join ( "" ) , 16 ) ;
return {
r : hexValue >> 24 & 255 ,
g : hexValue >> 16 & 255 ,
b : hexValue >> 8 & 255 ,
a : hexValue & 255 ,
hex : "#" + hexCode . slice ( 0 , 6 ) . join ( "" )
} ;
}
exports . getOptions = function getOptions2 ( options ) {
if ( ! options )
options = { } ;
if ( ! options . color )
options . color = { } ;
const margin = typeof options . margin === "undefined" || options . margin === null || options . margin < 0 ? 4 : options . margin ;
const width = options . width && options . width >= 21 ? options . width : void 0 ;
const scale = options . scale || 4 ;
return {
width ,
scale : width ? 4 : scale ,
margin ,
color : {
dark : hex2rgba ( options . color . dark || "#000000ff" ) ,
light : hex2rgba ( options . color . light || "#ffffffff" )
} ,
type : options . type ,
rendererOpts : options . rendererOpts || { }
} ;
} ;
exports . getScale = function getScale ( qrSize , opts ) {
return opts . width && opts . width >= qrSize + opts . margin * 2 ? opts . width / ( qrSize + opts . margin * 2 ) : opts . scale ;
} ;
exports . getImageWidth = function getImageWidth ( qrSize , opts ) {
const scale = exports . getScale ( qrSize , opts ) ;
return Math . floor ( ( qrSize + opts . margin * 2 ) * scale ) ;
} ;
exports . qrToImageData = function qrToImageData ( imgData , qr , opts ) {
const size = qr . modules . size ;
const data2 = qr . modules . data ;
const scale = exports . getScale ( size , opts ) ;
const symbolSize = Math . floor ( ( size + opts . margin * 2 ) * scale ) ;
const scaledMargin = opts . margin * scale ;
const palette = [ opts . color . light , opts . color . dark ] ;
for ( let i2 = 0 ; i2 < symbolSize ; i2 ++ ) {
for ( let j = 0 ; j < symbolSize ; j ++ ) {
let posDst = ( i2 * symbolSize + j ) * 4 ;
let pxColor = opts . color . light ;
if ( i2 >= scaledMargin && j >= scaledMargin && i2 < symbolSize - scaledMargin && j < symbolSize - scaledMargin ) {
const iSrc = Math . floor ( ( i2 - scaledMargin ) / scale ) ;
const jSrc = Math . floor ( ( j - scaledMargin ) / scale ) ;
pxColor = palette [ data2 [ iSrc * size + jSrc ] ? 1 : 0 ] ;
}
imgData [ posDst ++ ] = pxColor . r ;
imgData [ posDst ++ ] = pxColor . g ;
imgData [ posDst ++ ] = pxColor . b ;
imgData [ posDst ] = pxColor . a ;
}
}
} ;
} ) ( utils ) ;
( function ( exports ) {
const Utils2 = utils ;
function clearCanvas ( ctx , canvas2 , size ) {
ctx . clearRect ( 0 , 0 , canvas2 . width , canvas2 . height ) ;
if ( ! canvas2 . style )
canvas2 . style = { } ;
canvas2 . height = size ;
canvas2 . width = size ;
canvas2 . style . height = size + "px" ;
canvas2 . style . width = size + "px" ;
}
function getCanvasElement ( ) {
try {
return document . createElement ( "canvas" ) ;
} catch ( e2 ) {
throw new Error ( "You need to specify a canvas element" ) ;
}
}
exports . render = function render2 ( qrData , canvas2 , options ) {
let opts = options ;
let canvasEl = canvas2 ;
if ( typeof opts === "undefined" && ( ! canvas2 || ! canvas2 . getContext ) ) {
opts = canvas2 ;
canvas2 = void 0 ;
}
if ( ! canvas2 ) {
canvasEl = getCanvasElement ( ) ;
}
opts = Utils2 . getOptions ( opts ) ;
const size = Utils2 . getImageWidth ( qrData . modules . size , opts ) ;
const ctx = canvasEl . getContext ( "2d" ) ;
const image = ctx . createImageData ( size , size ) ;
Utils2 . qrToImageData ( image . data , qrData , opts ) ;
clearCanvas ( ctx , canvasEl , size ) ;
ctx . putImageData ( image , 0 , 0 ) ;
return canvasEl ;
} ;
exports . renderToDataURL = function renderToDataURL ( qrData , canvas2 , options ) {
let opts = options ;
if ( typeof opts === "undefined" && ( ! canvas2 || ! canvas2 . getContext ) ) {
opts = canvas2 ;
canvas2 = void 0 ;
}
if ( ! opts )
opts = { } ;
const canvasEl = exports . render ( qrData , canvas2 , opts ) ;
const type = opts . type || "image/png" ;
const rendererOpts = opts . rendererOpts || { } ;
return canvasEl . toDataURL ( type , rendererOpts . quality ) ;
} ;
} ) ( canvas ) ;
var svgTag = { } ;
const Utils = utils ;
function getColorAttrib ( color , attrib ) {
const alpha = color . a / 255 ;
const str = attrib + '="' + color . hex + '"' ;
return alpha < 1 ? str + " " + attrib + '-opacity="' + alpha . toFixed ( 2 ) . slice ( 1 ) + '"' : str ;
}
function svgCmd ( cmd , x2 , y2 ) {
let str = cmd + x2 ;
if ( typeof y2 !== "undefined" )
str += " " + y2 ;
return str ;
}
function qrToPath ( data2 , size , margin ) {
let path = "" ;
let moveBy = 0 ;
let newRow = false ;
let lineLength = 0 ;
for ( let i2 = 0 ; i2 < data2 . length ; i2 ++ ) {
const col = Math . floor ( i2 % size ) ;
const row = Math . floor ( i2 / size ) ;
if ( ! col && ! newRow )
newRow = true ;
if ( data2 [ i2 ] ) {
lineLength ++ ;
if ( ! ( i2 > 0 && col > 0 && data2 [ i2 - 1 ] ) ) {
path += newRow ? svgCmd ( "M" , col + margin , 0.5 + row + margin ) : svgCmd ( "m" , moveBy , 0 ) ;
moveBy = 0 ;
newRow = false ;
}
if ( ! ( col + 1 < size && data2 [ i2 + 1 ] ) ) {
path += svgCmd ( "h" , lineLength ) ;
lineLength = 0 ;
}
} else {
moveBy ++ ;
}
}
return path ;
}
svgTag . render = function render ( qrData , options , cb ) {
const opts = Utils . getOptions ( options ) ;
const size = qrData . modules . size ;
const data2 = qrData . modules . data ;
const qrcodesize = size + opts . margin * 2 ;
const bg = ! opts . color . light . a ? "" : "<path " + getColorAttrib ( opts . color . light , "fill" ) + ' d="M0 0h' + qrcodesize + "v" + qrcodesize + 'H0z"/>' ;
const path = "<path " + getColorAttrib ( opts . color . dark , "stroke" ) + ' d="' + qrToPath ( data2 , size , opts . margin ) + '"/>' ;
const viewBox = 'viewBox="0 0 ' + qrcodesize + " " + qrcodesize + '"' ;
const width = ! opts . width ? "" : 'width="' + opts . width + '" height="' + opts . width + '" ' ;
const svgTag2 = '<svg xmlns="http://www.w3.org/2000/svg" ' + width + viewBox + ' shape-rendering="crispEdges">' + bg + path + "</svg>\n" ;
if ( typeof cb === "function" ) {
cb ( null , svgTag2 ) ;
}
return svgTag2 ;
} ;
const canPromise = canPromise$1 ;
const QRCode = qrcode ;
const CanvasRenderer = canvas ;
const SvgRenderer = svgTag ;
function renderCanvas ( renderFunc , canvas2 , text , opts , cb ) {
const args = [ ] . slice . call ( arguments , 1 ) ;
const argsNum = args . length ;
const isLastArgCb = typeof args [ argsNum - 1 ] === "function" ;
if ( ! isLastArgCb && ! canPromise ( ) ) {
throw new Error ( "Callback required as last argument" ) ;
}
if ( isLastArgCb ) {
if ( argsNum < 2 ) {
throw new Error ( "Too few arguments provided" ) ;
}
if ( argsNum === 2 ) {
cb = text ;
text = canvas2 ;
canvas2 = opts = void 0 ;
} else if ( argsNum === 3 ) {
if ( canvas2 . getContext && typeof cb === "undefined" ) {
cb = opts ;
opts = void 0 ;
} else {
cb = opts ;
opts = text ;
text = canvas2 ;
canvas2 = void 0 ;
}
}
} else {
if ( argsNum < 1 ) {
throw new Error ( "Too few arguments provided" ) ;
}
if ( argsNum === 1 ) {
text = canvas2 ;
canvas2 = opts = void 0 ;
} else if ( argsNum === 2 && ! canvas2 . getContext ) {
opts = text ;
text = canvas2 ;
canvas2 = void 0 ;
}
return new Promise ( function ( resolve , reject ) {
try {
const data2 = QRCode . create ( text , opts ) ;
resolve ( renderFunc ( data2 , canvas2 , opts ) ) ;
} catch ( e2 ) {
reject ( e2 ) ;
}
} ) ;
}
try {
const data2 = QRCode . create ( text , opts ) ;
cb ( null , renderFunc ( data2 , canvas2 , opts ) ) ;
} catch ( e2 ) {
cb ( e2 ) ;
}
}
browser . create = QRCode . create ;
browser . toCanvas = renderCanvas . bind ( null , CanvasRenderer . render ) ;
browser . toDataURL = renderCanvas . bind ( null , CanvasRenderer . renderToDataURL ) ;
browser . toString = renderCanvas . bind ( null , function ( data2 , _2 , opts ) {
return SvgRenderer . render ( data2 , opts ) ;
} ) ;
var It = Object . defineProperty , st = Object . getOwnPropertySymbols , Et = Object . prototype . hasOwnProperty , Mt = Object . prototype . propertyIsEnumerable , ct = ( e2 , t2 , a2 ) => t2 in e2 ? It ( e2 , t2 , { enumerable : true , configurable : true , writable : true , value : a2 } ) : e2 [ t2 ] = a2 , dt = ( e2 , t2 ) => {
for ( var a2 in t2 || ( t2 = { } ) )
Et . call ( t2 , a2 ) && ct ( e2 , a2 , t2 [ a2 ] ) ;
if ( st )
for ( var a2 of st ( t2 ) )
Mt . call ( t2 , a2 ) && ct ( e2 , a2 , t2 [ a2 ] ) ;
return e2 ;
} ;
function ht ( ) {
return { default : { light : { inverse : "rgb(255,255,255)" , foreground : "rgb(51,150,255)" , background : "rgb(232,242,252)" } , dark : { inverse : "rgb(255,255,255)" , foreground : "rgb(71,161,255)" , background : "rgb(21,38,55)" } } , magenta : { light : { inverse : "rgb(255,255,255)" , foreground : "rgb(198,83,128)" , background : "rgb(244,221,230)" } , dark : { inverse : "rgb(255,255,255)" , foreground : "rgb(203,77,140)" , background : "rgb(57,35,43)" } } , blue : { light : { inverse : "rgb(255,255,255)" , foreground : "rgb(61,92,245)" , background : "rgb(232,235,252)" } , dark : { inverse : "rgb(255,255,255)" , foreground : "rgb(81,109,251)" , background : "rgb(28,33,59)" } } , orange : { light : { inverse : "rgb(255,255,255)" , foreground : "rgb(234,140,46)" , background : "rgb(244,236,221)" } , dark : { inverse : "rgb(0,0,0)" , foreground : "rgb(255,166,76)" , background : "rgb(57,50,34)" } } , green : { light : { inverse : "rgb(255,255,255)" , foreground : "rgb(38,181,98)" , background : "rgb(218,246,218)" } , dark : { inverse : "rgb(0,0,0)" , foreground : "rgb(38,217,98)" , background : "rgb(35,52,40)" } } , purple : { light : { inverse : "rgb(255,255,255)" , foreground : "rgb(121,76,255)" , background : "rgb(225,218,246)" } , dark : { inverse : "rgb(255,255,255)" , foreground : "rgb(144,110,247)" , background : "rgb(36,31,51)" } } , teal : { light : { inverse : "rgb(255,255,255)" , foreground : "rgb(43,182,182)" , background : "rgb(217,242,238)" } , dark : { inverse : "rgb(0,0,0)" , foreground : "rgb(54,226,226)" , background : "rgb(29,48,52)" } } , blackWhite : { light : { inverse : "rgb(255,255,255)" , foreground : "rgb(20,20,20)" , background : "rgb(255,255,255)" } , dark : { inverse : "rgb(0,0,0)" , foreground : "rgb(255,255,255)" , background : "rgb(20,20,20)" } } } ;
}
function Wt ( ) {
return { light : { foreground : { 1 : "rgb(20,20,20)" , 2 : "rgb(121,134,134)" , 3 : "rgb(158,169,169)" } , background : { 1 : "rgb(255,255,255)" , 2 : "rgb(241,243,243)" , 3 : "rgb(228,231,231)" } , overlay : "rgba(0,0,0,0.1)" } , dark : { foreground : { 1 : "rgb(228,231,231)" , 2 : "rgb(148,158,158)" , 3 : "rgb(110,119,119)" } , background : { 1 : "rgb(20,20,20)" , 2 : "rgb(39,42,42)" , 3 : "rgb(59,64,64)" } , overlay : "rgba(255,255,255,0.1" } } ;
}
function At ( ) {
return { default : { 1 : "#B6B9C9" , 2 : "#C653C6" , 3 : "#794DFF" , 4 : "#2EB8B8" } , blue : { 1 : "#E8EBFD" , 2 : "#C653C6" , 3 : "#2DD2C5" , 4 : "#3D5CF5" } , magenta : { 1 : "#F4DDE6" , 2 : "#E0D452" , 3 : "#F09475" , 4 : "#D1618D" } , orange : { 1 : "#F4ECDD" , 2 : "#B4EB47" , 3 : "#3075E8" , 4 : "#EB9947" } , green : { 1 : "#DAF6DA" , 2 : "#E06B92" , 3 : "#99E54D" , 4 : "#26B562" } , purple : { 1 : "#E1DAF6" , 2 : "#EB9947" , 3 : "#E06B92" , 4 : "#794DFF" } , teal : { 1 : "#D9F2EE" , 2 : "#F09475" , 3 : "#794DFF" , 4 : "#2EB8B8" } , blackWhite : { 1 : "#E3E8E8" , 2 : "#98AEAE" , 3 : "#516767" , 4 : "#242E2E" } } ;
}
const u = { color ( ) {
var e2 , t2 ;
const a2 = ( e2 = W . state . themeColor ) != null ? e2 : "default" , n2 = ( t2 = W . state . themeMode ) != null ? t2 : "dark" , o3 = ht ( ) [ a2 ] [ n2 ] , r2 = Wt ( ) [ n2 ] , i2 = At ( ) [ a2 ] ;
return { foreground : dt ( { accent : o3 . foreground , inverse : o3 . inverse } , r2 . foreground ) , background : dt ( { accent : o3 . background } , r2 . background ) , gradient : i2 , overlay : r2 . overlay , error : "rgb(242, 90, 103)" } ;
} , setTheme ( ) {
const e2 = document . querySelector ( ":root" ) , { themeZIndex : t2 } = W . state ;
if ( e2 ) {
const a2 = { "--w3m-color-fg-accent" : u . color ( ) . foreground . accent , "--w3m-color-fg-inverse" : u . color ( ) . foreground . inverse , "--w3m-color-fg-1" : u . color ( ) . foreground [ 1 ] , "--w3m-color-fg-2" : u . color ( ) . foreground [ 2 ] , "--w3m-color-fg-3" : u . color ( ) . foreground [ 3 ] , "--w3m-color-bg-1" : u . color ( ) . background [ 1 ] , "--w3m-color-bg-2" : u . color ( ) . background [ 2 ] , "--w3m-color-bg-3" : u . color ( ) . background [ 3 ] , "--w3m-color-overlay" : u . color ( ) . overlay , "--w3m-color-err" : u . color ( ) . error , "--w3m-color-success" : ht ( ) . green . light . foreground , "--w3m-gradient-1" : u . color ( ) . gradient [ 1 ] , "--w3m-gradient-2" : u . color ( ) . gradient [ 2 ] , "--w3m-gradient-3" : u . color ( ) . gradient [ 3 ] , "--w3m-gradient-4" : u . color ( ) . gradient [ 4 ] , "--w3m-modal-z-index" : ` ${ t2 } ` } ;
Object . entries ( a2 ) . forEach ( ( [ n2 , o3 ] ) => e2 . style . setProperty ( n2 , o3 ) ) ;
}
} , globalCss : i$3 ` *,::after,::before{margin:0;padding:0;box-sizing:border-box;font-style:normal;text-rendering:optimizeSpeed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;backface-visibility:hidden}button{cursor:pointer;display:flex;justify-content:center;align-items:center;position:relative;border:none;background-color:transparent}button::after{content:'';position:absolute;inset:0;transition:background-color,.2s ease}button:disabled{cursor:not-allowed}button svg,button w3m-text{position:relative;z-index:1}input{border:none;outline:0;appearance:none}img{display:block}::selection{color:var(--w3m-color-fg-inverse);background:var(--w3m-color-fg-accent)} ` } , Lt = i$3 ` button{display:flex;border-radius:10px;flex-direction:column;transition:background-color .2s ease;justify-content:center;padding:5px;width:100px}button:hover{background-color:var(--w3m-color-overlay)}button>div{display:flex;justify-content:center;align-items:center;width:32px;height:32px;box-shadow:inset 0 0 0 1px var(--w3m-color-overlay);background-color:var(--w3m-color-fg-accent);border-radius:50%;margin-bottom:4px}button path{fill:var(--w3m-color-fg-inverse)} ` ;
var jt = Object . defineProperty , St = Object . getOwnPropertyDescriptor , ke = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? St ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && jt ( t2 , a2 , o3 ) , o3 ;
} ;
let te = class extends s {
constructor ( ) {
super ( ... arguments ) , this . icon = void 0 , this . label = "" , this . onClick = ( ) => null ;
}
render ( ) {
return y ` <button @click=" ${ this . onClick } "><div> ${ this . icon } </div><w3m-text variant="xsmall-normal" color="accent"> ${ this . label } </w3m-text></button> ` ;
}
} ;
te . styles = [ u . globalCss , Lt ] , ke ( [ e$1 ( ) ] , te . prototype , "icon" , 2 ) , ke ( [ e$1 ( ) ] , te . prototype , "label" , 2 ) , ke ( [ e$1 ( ) ] , te . prototype , "onClick" , 2 ) , te = ke ( [ e$2 ( "w3m-box-button" ) ] , te ) ;
const Pt = i$3 ` button{border-radius:28px;height:28px;padding:0 10px;background-color:var(--w3m-color-fg-accent)}button path{fill:var(--w3m-color-fg-inverse)}button::after{border-radius:inherit;border:1px solid var(--w3m-color-overlay)}button:disabled::after{background-color:transparent}.w3m-icon-left svg{margin-right:5px}.w3m-icon-right svg{margin-left:5px}button:hover::after{background-color:var(--w3m-color-overlay)}button:disabled{background-color:var(--w3m-color-bg-3)} ` ;
var _t = Object . defineProperty , Dt = Object . getOwnPropertyDescriptor , le = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? Dt ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && _t ( t2 , a2 , o3 ) , o3 ;
} ;
let G = class extends s {
constructor ( ) {
super ( ... arguments ) , this . disabled = false , this . iconLeft = void 0 , this . iconRight = void 0 , this . onClick = ( ) => null ;
}
render ( ) {
const e2 = { "w3m-icon-left" : this . iconLeft !== void 0 , "w3m-icon-right" : this . iconRight !== void 0 } ;
return y ` <button class=" ${ o2 ( e2 ) } " ?disabled=" ${ this . disabled } " @click=" ${ this . onClick } "> ${ this . iconLeft } <w3m-text variant="small-normal" color="inverse"><slot></slot></w3m-text> ${ this . iconRight } </button> ` ;
}
} ;
G . styles = [ u . globalCss , Pt ] , le ( [ e$1 ( ) ] , G . prototype , "disabled" , 2 ) , le ( [ e$1 ( ) ] , G . prototype , "iconLeft" , 2 ) , le ( [ e$1 ( ) ] , G . prototype , "iconRight" , 2 ) , le ( [ e$1 ( ) ] , G . prototype , "onClick" , 2 ) , G = le ( [ e$2 ( "w3m-button" ) ] , G ) ;
const Tt = i$3 ` :host{display:inline-block}button{padding:0 15px 1px;height:40px;border-radius:10px;color:var(--w3m-color-fg-inverse);background-color:var(--w3m-color-fg-accent)}button::after{content:'';inset:0;position:absolute;background-color:transparent;border-radius:inherit;transition:background-color .2s ease;border:1px solid var(--w3m-color-overlay)}button:hover::after{background-color:var(--w3m-color-overlay)}button:disabled{padding-bottom:0;background-color:var(--w3m-color-bg-3);color:var(--w3m-color-fg-3)}.w3m-secondary{color:var(--w3m-color-fg-accent);background-color:transparent}.w3m-secondary::after{display:none} ` ;
var Nt = Object . defineProperty , Rt = Object . getOwnPropertyDescriptor , Te = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? Rt ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && Nt ( t2 , a2 , o3 ) , o3 ;
} ;
let se = class extends s {
constructor ( ) {
super ( ... arguments ) , this . disabled = false , this . variant = "primary" ;
}
render ( ) {
const e2 = { "w3m-secondary" : this . variant === "secondary" } ;
return y ` <button ?disabled=" ${ this . disabled } " class=" ${ o2 ( e2 ) } "><slot></slot></button> ` ;
}
} ;
se . styles = [ u . globalCss , Tt ] , Te ( [ e$1 ( ) ] , se . prototype , "disabled" , 2 ) , Te ( [ e$1 ( ) ] , se . prototype , "variant" , 2 ) , se = Te ( [ e$2 ( "w3m-button-big" ) ] , se ) ;
let Bt = class {
constructor ( ... t2 ) {
this . angle = 0 , this . t = 1253106 , this . last = 0 , this . height = 500 , this . amp = 300 , this . seed = 15 , this . freqX = 14e-5 , this . freqY = 29e-5 , this . freqDelta = 1e-5 , this . activeColors = [ 1 , 1 , 1 , 1 ] , this . isMetaKey = false , this . playing = false , mt ( this , "resize" , ( ) => {
this . width = window . innerWidth , this . minigl . setSize ( this . width , this . height ) , this . minigl . setOrthographicCamera ( ) , this . xSegCount = Math . ceil ( this . width * this . conf . density [ 0 ] ) , this . ySegCount = Math . ceil ( this . height * this . conf . density [ 1 ] ) , this . mesh . geometry . setTopology ( this . xSegCount , this . ySegCount ) , this . mesh . geometry . setSize ( this . width , this . height ) , this . mesh . material . uniforms . u _shadow _power . value = this . width < 550 ? 5 : 6 ;
} ) , mt ( this , "animate" , ( a2 ) => {
if ( this . playing ) {
if ( this . shouldSkipFrame ( a2 ) || ( this . t += Math . min ( a2 - this . last , 1e3 / 15 ) , this . last = a2 , this . mesh . material . uniforms . u _time . value = this . t , this . minigl . render ( ) ) , this . last !== 0 && this . isStatic )
return this . minigl . render ( ) ;
requestAnimationFrame ( this . animate ) ;
}
} ) ;
}
play ( t2 ) {
this . el = t2 , this . connect ( ) ;
}
stop ( ) {
this . playing = false ;
}
async connect ( ) {
this . shaderFiles = { vertex : "varying vec3 v_color;void main(){float time=u_time*u_global.noiseSpeed;vec2 noiseCoord=resolution*uvNorm*u_global.noiseFreq;vec2 st=1.-uvNorm.xy;float tilt=resolution.y/2.0*uvNorm.y;float incline=resolution.x*uvNorm.x/2.0*u_vertDeform.incline;float offset=resolution.x/2.0*u_vertDeform.incline*mix(u_vertDeform.offsetBottom,u_vertDeform.offsetTop,uv.y);float noise=snoise(vec3(noiseCoord.x*u_vertDeform.noiseFreq.x+time*u_vertDeform.noiseFlow,noiseCoord.y*u_vertDeform.noiseFreq.y,time*u_vertDeform.noiseSpeed+u_vertDeform.noiseSeed))*u_vertDeform.noiseAmp;noise*=1.0-pow(abs(uvNorm.y),2.0);noise=max(0.0,noise);vec3 pos=vec3(position.x,position.y+tilt+incline+noise-offset,position.z);if(u_active_colors[0]==1.){v_color=u_baseColor;}for(int i=0;i<u_waveLayers_length;i++){if(u_active_colors[i+1]==1.){WaveLayers layer=u_waveLayers[i];float noise=smoothstep(layer.noiseFloor,layer.noiseCeil,snoise(vec3(noiseCoord.x*layer.noiseFreq.x+time*layer.noiseFlow,noiseCoord.y*layer.noiseFreq.y,time*layer.noiseSpeed+layer.noiseSeed))/2.0+0.5);v_color=blendNormal(v_color,layer.color,pow(noise,4.));}}gl_Position=projectionMatrix*modelViewMatrix*vec4(pos,1.0);}" , noise : `
// MIT License: Copyright (C) 2011 Ashima Arts. All rights reserved. https://github.com/ashima/webgl-noise, https://github.com/stegu/webgl-noise
vec3 mod289 ( vec3 x ) { return x - floor ( x * ( 1.0 / 289.0 ) ) * 289.0 ; } vec4 mod289 ( vec4 x ) { return x - floor ( x * ( 1.0 / 289.0 ) ) * 289.0 ; } vec4 permute ( vec4 x ) { return mod289 ( ( ( x * 34.0 ) + 1.0 ) * x ) ; } vec4 taylorInvSqrt ( vec4 r ) { return 1.79284291400159 - 0.85373472095314 * r ; } float snoise ( vec3 v ) { const vec2 C = vec2 ( 1.0 / 6.0 , 1.0 / 3.0 ) ; const vec4 D = vec4 ( 0.0 , 0.5 , 1.0 , 2.0 ) ; vec3 i = floor ( v + dot ( v , C . yyy ) ) ; vec3 x0 = v - i + dot ( i , C . xxx ) ; vec3 g = step ( x0 . yzx , x0 . xyz ) ; vec3 l = 1.0 - g ; vec3 i1 = min ( g . xyz , l . zxy ) ; vec3 i2 = max ( g . xyz , l . zxy ) ; vec3 x1 = x0 - i1 + C . xxx ; vec3 x2 = x0 - i2 + C . yyy ; vec3 x3 = x0 - D . yyy ; i = mod289 ( i ) ; vec4 p = permute ( permute ( permute ( i . z + vec4 ( 0.0 , i1 . z , i2 . z , 1.0 ) ) + i . y + vec4 ( 0.0 , i1 . y , i2 . y , 1.0 ) ) + i . x + vec4 ( 0.0 , i1 . x , i2 . x , 1.0 ) ) ; float n _ = 0.142857142857 ; vec3 ns = n _ * D . wyz - D . xzx ; vec4 j = p - 49.0 * floor ( p * ns . z * ns . z ) ; vec4 x _ = floor ( j * ns . z ) ; vec4 y _ = floor ( j - 7.0 * x _ ) ; vec4 x = x _ * ns . x + ns . yyyy ; vec4 y = y _ * ns . x + ns . yyyy ; vec4 h = 1.0 - abs ( x ) - abs ( y ) ; vec4 b0 = vec4 ( x . xy , y . xy ) ; vec4 b1 = vec4 ( x . zw , y . zw ) ; vec4 s0 = floor ( b0 ) * 2.0 + 1.0 ; vec4 s1 = floor ( b1 ) * 2.0 + 1.0 ; vec4 sh = - step ( h , vec4 ( 0.0 ) ) ; vec4 a0 = b0 . xzyw + s0 . xzyw * sh . xxyy ; vec4 a1 = b1 . xzyw + s1 . xzyw * sh . zzww ; vec3 p0 = vec3 ( a0 . xy , h . x ) ; vec3 p1 = vec3 ( a0 . zw , h . y ) ; vec3 p2 = vec3 ( a1 . xy , h . z ) ; vec3 p3 = vec3 ( a1 . zw , h . w ) ; vec4 norm = taylorInvSqrt ( vec4 ( dot ( p0 , p0 ) , dot ( p1 , p1 ) , dot ( p2 , p2 ) , dot ( p3 , p3 ) ) ) ; p0 *= norm . x ; p1 *= norm . y ; p2 *= norm . z ; p3 *= norm . w ; vec4 m = max ( 0.6 - vec4 ( dot ( x0 , x0 ) , dot ( x1 , x1 ) , dot ( x2 , x2 ) , dot ( x3 , x3 ) ) , 0.0 ) ; m = m * m ; return 42.0 * dot ( m * m , vec4 ( dot ( p0 , x0 ) , dot ( p1 , x1 ) , dot ( p2 , x2 ) , dot ( p3 , x3 ) ) ) ; } ` , blend: `
// MIT Licence: Copyright (C) 2015 Jamie Owen. All rights reserved. https://github.com/jamieowen/glsl-blend
vec3 blendNormal ( vec3 base , vec3 blend ) { return blend ; } vec3 blendNormal ( vec3 base , vec3 blend , float opacity ) { return ( blendNormal ( base , blend ) * opacity + base * ( 1.0 - opacity ) ) ; } float blendScreen ( float base , float blend ) { return 1.0 - ( ( 1.0 - base ) * ( 1.0 - blend ) ) ; } vec3 blendScreen ( vec3 base , vec3 blend ) { return vec3 ( blendScreen ( base . r , blend . r ) , blendScreen ( base . g , blend . g ) , blendScreen ( base . b , blend . b ) ) ; } vec3 blendScreen ( vec3 base , vec3 blend , float opacity ) { return ( blendScreen ( base , blend ) * opacity + base * ( 1.0 - opacity ) ) ; } vec3 blendMultiply ( vec3 base , vec3 blend ) { return base * blend ; } vec3 blendMultiply ( vec3 base , vec3 blend , float opacity ) { return ( blendMultiply ( base , blend ) * opacity + base * ( 1.0 - opacity ) ) ; } float blendOverlay ( float base , float blend ) { return base < 0.5 ? ( 2.0 * base * blend ) : ( 1.0 - 2.0 * ( 1.0 - base ) * ( 1.0 - blend ) ) ; } vec3 blendOverlay ( vec3 base , vec3 blend ) { return vec3 ( blendOverlay ( base . r , blend . r ) , blendOverlay ( base . g , blend . g ) , blendOverlay ( base . b , blend . b ) ) ; } vec3 blendOverlay ( vec3 base , vec3 blend , float opacity ) { return ( blendOverlay ( base , blend ) * opacity + base * ( 1.0 - opacity ) ) ; } vec3 blendHardLight ( vec3 base , vec3 blend ) { return blendOverlay ( blend , base ) ; } vec3 blendHardLight ( vec3 base , vec3 blend , float opacity ) { return ( blendHardLight ( base , blend ) * opacity + base * ( 1.0 - opacity ) ) ; } float blendSoftLight ( float base , float blend ) { return ( blend < 0.5 ) ? ( 2.0 * base * blend + base * base * ( 1.0 - 2.0 * blend ) ) : ( sqrt ( base ) * ( 2.0 * blend - 1.0 ) + 2.0 * base * ( 1.0 - blend ) ) ; } vec3 blendSoftLight ( vec3 base , vec3 blend ) { return vec3 ( blendSoftLight ( base . r , blend . r ) , blendSoftLight ( base . g , blend . g ) , blendSoftLight ( base . b , blend . b ) ) ; } vec3 blendSoftLight ( vec3 base , vec3 blend , float opacity ) { return ( blendSoftLight ( base , blend ) * opacity + base * ( 1.0 - opacity ) ) ; } float blendColorDodge ( float base , float blend ) { return ( blend == 1.0 ) ? blend : min ( base / ( 1.0 - blend ) , 1.0 ) ; } vec3 blendColorDodge ( vec3 base , vec3 blend ) { return vec3 ( blendColorDodge ( base . r , blend . r ) , blendColorDodge ( base . g , blend . g ) , blendColorDodge ( base . b , blend . b ) ) ; } vec3 blendColorDodge ( vec3 base , vec3 blend , float opacity ) { return ( blendColorDodge ( base , blend ) * opacity + base * ( 1.0 - opacity ) ) ; } float blendColorBurn ( float base , float blend ) { return ( blend == 0.0 ) ? blend : max ( ( 1.0 - ( ( 1.0 - base ) / blend ) ) , 0.0 ) ; } vec3 blendColorBurn ( vec3 base , vec3 blend ) { return vec3 ( blendColorBurn ( base . r , blend . r ) , blendColorBurn ( base . g , blend . g ) , blendColorBurn ( base . b , blend . b ) ) ; } vec3 blendColorBurn ( vec3 base , vec3 blend , float opacity ) { return ( blendColorBurn ( base , blend ) * opacity + base * ( 1.0 - opacity ) ) ; } float blendVividLight ( float base , float blend ) { return ( blend < 0.5 ) ? blendColorBurn ( base , ( 2.0 * blend ) ) : blendColorDodge ( base , ( 2.0 * ( blend - 0.5 ) ) ) ; } vec3 blendVividLight ( vec3 base , vec3 blend ) { return vec3 ( blendVividLight ( base . r , blend . r ) , blendVividLight ( base . g , blend . g ) , blendVividLight ( base . b , blend . b ) ) ; } vec3 blendVividLight ( vec3 base , vec3 blend , float opacity ) { return ( blendVividLight ( base , blend ) * opacity + base * ( 1.0 - opacity ) ) ; } float blendLighten ( float base , float blend ) { return max ( blend , base ) ; } vec3 blendLighten ( vec3 base , vec3 blend ) { return vec3 ( blendLighten ( base . r , blend . r ) , blendLighten ( base . g , blend . g ) , blendLighten ( base . b , blend . b ) ) ; } vec3 blendLighten ( vec3 base , vec3 blend , float opacity ) { return ( blendLighten ( base , blend ) * opacity + base * ( 1.0 - opacity ) ) ; } float blendLinearBurn ( float base , float blend ) { return max ( base + blend - 1.0 , 0.0 ) ; } vec3 blendLinearBurn ( vec3 base , vec3 blend ) { return max ( base + blend - vec3 ( 1.0 ) , vec3 ( 0.0 ) ) ; } vec3 blendLinearBurn ( vec3 base , vec3 blend , float opacity ) { return ( blendLinearBurn ( base , blend ) * opacity + base * ( 1.0 - opacity ) ) ; } float blendLinearDodge ( float base , float blend ) { return min ( base + blend , 1.0 ) ; } vec3 blendLinearDodge ( vec3 base , vec3 blend ) { return min ( base + blend , vec3 ( 1.0 ) ) ; } vec3 blendLinearDodge ( vec3 base , vec3 blend , float opacity ) { return ( blendLinearDodge ( base , blend ) * opacity + base * ( 1.0 - opacity ) ) ; } float blendLinearLight ( float base , float blend ) { return blend < 0.5 ? blendLinearBurn ( base , ( 2.0 * blend ) ) : blendLinearDodge ( base , ( 2.0 * ( blend - 0.5 ) ) ) ; } vec3 blendLinearLight ( vec3 base , vec3 blend ) { return vec3 ( blendLinearLight ( base . r , blend . r ) , blendLinearLight ( base . g , blend . g ) , blendLinearLight ( base . b , blend . b ) ) ; } vec3 blendLinearLight ( vec3 base , vec3 blend , float opacity ) { return ( blendLinearL
this . el && ( this . computedCanvasStyle = getComputedStyle ( this . el ) , this . waitForCssVars ( ) ) ;
} ) ;
}
initMaterial ( ) {
this . uniforms = { u _time : new this . minigl . Uniform ( { value : 0 } ) , u _shadow _power : new this . minigl . Uniform ( { value : 5 } ) , u _darken _top : new this . minigl . Uniform ( { value : this . el . dataset . jsDarkenTop === "" ? 1 : 0 } ) , u _active _colors : new this . minigl . Uniform ( { value : this . activeColors , type : "vec4" } ) , u _global : new this . minigl . Uniform ( { value : { noiseFreq : new this . minigl . Uniform ( { value : [ this . freqX , this . freqY ] , type : "vec2" } ) , noiseSpeed : new this . minigl . Uniform ( { value : 5e-6 } ) } , type : "struct" } ) , u _vertDeform : new this . minigl . Uniform ( { value : { incline : new this . minigl . Uniform ( { value : Math . sin ( this . angle ) / Math . cos ( this . angle ) } ) , offsetTop : new this . minigl . Uniform ( { value : - 0.5 } ) , offsetBottom : new this . minigl . Uniform ( { value : - 0.5 } ) , noiseFreq : new this . minigl . Uniform ( { value : [ 3 , 4 ] , type : "vec2" } ) , noiseAmp : new this . minigl . Uniform ( { value : this . amp } ) , noiseSpeed : new this . minigl . Uniform ( { value : 10 } ) , noiseFlow : new this . minigl . Uniform ( { value : 3 } ) , noiseSeed : new this . minigl . Uniform ( { value : this . seed } ) } , type : "struct" , excludeFrom : "fragment" } ) , u _baseColor : new this . minigl . Uniform ( { value : this . sectionColors [ 0 ] , type : "vec3" , excludeFrom : "fragment" } ) , u _waveLayers : new this . minigl . Uniform ( { value : [ ] , excludeFrom : "fragment" , type : "array" } ) } ;
for ( let t2 = 1 ; t2 < this . sectionColors . length ; t2 += 1 )
this . uniforms . u _waveLayers . value . push ( new this . minigl . Uniform ( { value : { color : new this . minigl . Uniform ( { value : this . sectionColors [ t2 ] , type : "vec3" } ) , noiseFreq : new this . minigl . Uniform ( { value : [ 2 + t2 / this . sectionColors . length , 3 + t2 / this . sectionColors . length ] , type : "vec2" } ) , noiseSpeed : new this . minigl . Uniform ( { value : 11 + 0.3 * t2 } ) , noiseFlow : new this . minigl . Uniform ( { value : 6.5 + 0.3 * t2 } ) , noiseSeed : new this . minigl . Uniform ( { value : this . seed + 10 * t2 } ) , noiseFloor : new this . minigl . Uniform ( { value : 0.1 } ) , noiseCeil : new this . minigl . Uniform ( { value : 0.63 + 0.07 * t2 } ) } , type : "struct" } ) ) ;
return this . vertexShader = [ this . shaderFiles . noise , this . shaderFiles . blend , this . shaderFiles . vertex ] . join ( "" ) , new this . minigl . Material ( this . vertexShader , this . shaderFiles . fragment , this . uniforms ) ;
}
initMesh ( ) {
this . material = this . initMaterial ( ) , this . geometry = new this . minigl . PlaneGeometry ( ) , this . mesh = new this . minigl . Mesh ( this . geometry , this . material ) ;
}
shouldSkipFrame ( t2 ) {
return ! ! window . document . hidden || parseInt ( t2 , 10 ) % 2 == 0 || void 0 ;
}
updateFrequency ( t2 ) {
this . freqX += t2 , this . freqY += t2 ;
}
toggleColor ( t2 ) {
this . activeColors [ t2 ] = this . activeColors [ t2 ] === 0 ? 1 : 0 ;
}
init ( ) {
this . playing = true , this . initGradientColors ( ) , this . initMesh ( ) , this . resize ( ) , requestAnimationFrame ( this . animate ) ;
}
waitForCssVars ( ) {
this . computedCanvasStyle && this . computedCanvasStyle . getPropertyValue ( "--w3m-gradient-1" ) . indexOf ( "#" ) !== - 1 ? this . init ( ) : this . init ( ) ;
}
initGradientColors ( ) {
this . sectionColors = [ "--w3m-gradient-1" , "--w3m-gradient-2" , "--w3m-gradient-3" , "--w3m-gradient-4" ] . map ( ( t2 ) => {
let a2 = this . computedCanvasStyle . getPropertyValue ( t2 ) . trim ( ) ;
return a2 . length === 4 && ( a2 = ` # ${ a2 . substr ( 1 ) . split ( "" ) . map ( ( n2 ) => n2 + n2 ) . join ( "" ) } ` ) , a2 && ` 0x ${ a2 . substr ( 1 ) } ` ;
} ) . filter ( Boolean ) . map ( Ut ) ;
}
} ;
function Ut ( e2 ) {
return [ ( e2 >> 16 & 255 ) / 255 , ( e2 >> 8 & 255 ) / 255 , ( 255 & e2 ) / 255 ] ;
}
function mt ( e2 , t2 , a2 ) {
return t2 in e2 ? Object . defineProperty ( e2 , t2 , { value : a2 , enumerable : true , configurable : true , writable : true } ) : e2 [ t2 ] = a2 , e2 ;
}
let Ht = class {
constructor ( t2 , a2 , n2 ) {
const o3 = this ;
o3 . canvas = t2 , o3 . gl = o3 . canvas . getContext ( "webgl" , { antialias : true } ) , o3 . meshes = [ ] ;
const r2 = o3 . gl ;
a2 && n2 && this . setSize ( a2 , n2 ) , Object . defineProperties ( o3 , { Material : { enumerable : false , value : class {
constructor ( c2 , m2 , s2 = { } ) {
const d3 = this ;
function v2 ( N2 , E2 ) {
const x2 = r2 . createShader ( N2 ) ;
return r2 . shaderSource ( x2 , E2 ) , r2 . compileShader ( x2 ) , r2 . getShaderParameter ( x2 , r2 . COMPILE _STATUS ) || console . error ( r2 . getShaderInfoLog ( x2 ) ) , x2 ;
}
function O ( N2 , E2 ) {
return Object . entries ( N2 ) . map ( ( [ x2 , A2 ] ) => A2 . getDeclaration ( x2 , E2 ) ) . join ( "" ) ;
}
d3 . uniforms = s2 , d3 . uniformInstances = [ ] ;
const C2 = "precision highp float;" ;
d3 . vertexSource = ` ${ C2 } attribute vec4 position;attribute vec2 uv;attribute vec2 uvNorm; ${ O ( o3 . commonUniforms , "vertex" ) } ${ O ( s2 , "vertex" ) } ${ c2 } ` , d3 . Source = ` ${ C2 } ${ O ( o3 . commonUniforms , "fragment" ) } ${ O ( s2 , "fragment" ) } ${ m2 } ` , d3 . vertexShader = v2 ( r2 . VERTEX _SHADER , d3 . vertexSource ) , d3 . fragmentShader = v2 ( r2 . FRAGMENT _SHADER , d3 . Source ) , d3 . program = r2 . createProgram ( ) , r2 . attachShader ( d3 . program , d3 . vertexShader ) , r2 . attachShader ( d3 . program , d3 . fragmentShader ) , r2 . linkProgram ( d3 . program ) , r2 . getProgramParameter ( d3 . program , r2 . LINK _STATUS ) || console . error ( r2 . getProgramInfoLog ( d3 . program ) ) , r2 . useProgram ( d3 . program ) , d3 . attachUniforms ( void 0 , o3 . commonUniforms ) , d3 . attachUniforms ( void 0 , d3 . uniforms ) ;
}
attachUniforms ( c2 , m2 ) {
const s2 = this ;
c2 === void 0 ? Object . entries ( m2 ) . forEach ( ( [ d3 , v2 ] ) => {
s2 . attachUniforms ( d3 , v2 ) ;
} ) : m2 . type == "array" ? m2 . value . forEach ( ( d3 , v2 ) => s2 . attachUniforms ( ` ${ c2 } [ ${ v2 } ] ` , d3 ) ) : m2 . type == "struct" ? Object . entries ( m2 . value ) . forEach ( ( [ d3 , v2 ] ) => s2 . attachUniforms ( ` ${ c2 } . ${ d3 } ` , v2 ) ) : s2 . uniformInstances . push ( { uniform : m2 , location : r2 . getUniformLocation ( s2 . program , c2 ) } ) ;
}
} } , Uniform : { enumerable : false , value : class {
constructor ( c2 ) {
this . type = "float" , Object . assign ( this , c2 ) , this . typeFn = { float : "1f" , int : "1i" , vec2 : "2fv" , vec3 : "3fv" , vec4 : "4fv" , mat4 : "Matrix4fv" } [ this . type ] || "1f" , this . update ( ) ;
}
update ( c2 ) {
this . value !== void 0 && r2 [ ` uniform ${ this . typeFn } ` ] ( c2 , this . typeFn . indexOf ( "Matrix" ) === 0 ? this . transpose : this . value , this . typeFn . indexOf ( "Matrix" ) === 0 ? this . value : null ) ;
}
getDeclaration ( c2 , m2 , s2 ) {
const d3 = this ;
if ( d3 . excludeFrom !== m2 ) {
if ( d3 . type === "array" )
return d3 . value [ 0 ] . getDeclaration ( c2 , m2 , d3 . value . length ) + ` const int ${ c2 } _length= ${ d3 . value . length } ; ` ;
if ( d3 . type === "struct" ) {
let v2 = c2 . replace ( "u_" , "" ) ;
return v2 = v2 . charAt ( 0 ) . toUpperCase ( ) + v2 . slice ( 1 ) , ` uniform struct ${ v2 } { ` + Object . entries ( d3 . value ) . map ( ( [ O , C2 ] ) => C2 . getDeclaration ( O , m2 ) . replace ( /^uniform/ , "" ) ) . join ( "" ) + ` } ${ c2 } ${ s2 > 0 ? ` [ ${ s2 } ] ` : "" } ; ` ;
}
return ` uniform ${ d3 . type } ${ c2 } ${ s2 > 0 ? ` [ ${ s2 } ] ` : "" } ; ` ;
}
}
} } , PlaneGeometry : { enumerable : false , value : class {
constructor ( c2 , m2 , s2 , d3 , v2 ) {
r2 . createBuffer ( ) , this . attributes = { position : new o3 . Attribute ( { target : r2 . ARRAY _BUFFER , size : 3 } ) , uv : new o3 . Attribute ( { target : r2 . ARRAY _BUFFER , size : 2 } ) , uvNorm : new o3 . Attribute ( { target : r2 . ARRAY _BUFFER , size : 2 } ) , index : new o3 . Attribute ( { target : r2 . ELEMENT _ARRAY _BUFFER , size : 3 , type : r2 . UNSIGNED _SHORT } ) } , this . setTopology ( s2 , d3 ) , this . setSize ( c2 , m2 , v2 ) ;
}
setTopology ( c2 = 1 , m2 = 1 ) {
const s2 = this ;
s2 . xSegCount = c2 , s2 . ySegCount = m2 , s2 . vertexCount = ( s2 . xSegCount + 1 ) * ( s2 . ySegCount + 1 ) , s2 . quadCount = s2 . xSegCount * s2 . ySegCount * 2 , s2 . attributes . uv . values = new Float32Array ( 2 * s2 . vertexCount ) , s2 . attributes . uvNorm . values = new Float32Array ( 2 * s2 . vertexCount ) , s2 . attributes . index . values = new Uint16Array ( 3 * s2 . quadCount ) ;
for ( let d3 = 0 ; d3 <= s2 . ySegCount ; d3 ++ )
for ( let v2 = 0 ; v2 <= s2 . xSegCount ; v2 ++ ) {
const O = d3 * ( s2 . xSegCount + 1 ) + v2 ;
if ( s2 . attributes . uv . values [ 2 * O ] = v2 / s2 . xSegCount , s2 . attributes . uv . values [ 2 * O + 1 ] = 1 - d3 / s2 . ySegCount , s2 . attributes . uvNorm . values [ 2 * O ] = v2 / s2 . xSegCount * 2 - 1 , s2 . attributes . uvNorm . values [ 2 * O + 1 ] = 1 - d3 / s2 . ySegCount * 2 , v2 < s2 . xSegCount && d3 < s2 . ySegCount ) {
const C2 = d3 * s2 . xSegCount + v2 ;
s2 . attributes . index . values [ 6 * C2 ] = O , s2 . attributes . index . values [ 6 * C2 + 1 ] = O + 1 + s2 . xSegCount , s2 . attributes . index . values [ 6 * C2 + 2 ] = O + 1 , s2 . attributes . index . values [ 6 * C2 + 3 ] = O + 1 , s2 . attributes . index . values [ 6 * C2 + 4 ] = O + 1 + s2 . xSegCount , s2 . attributes . index . values [ 6 * C2 + 5 ] = O + 2 + s2 . xSegCount ;
}
}
s2 . attributes . uv . update ( ) , s2 . attributes . uvNorm . update ( ) , s2 . attributes . index . update ( ) ;
}
setSize ( c2 = 1 , m2 = 1 , s2 = "xz" ) {
const d3 = this ;
d3 . width = c2 , d3 . height = m2 , d3 . orientation = s2 , d3 . attributes . position . values && d3 . attributes . position . values . length === 3 * d3 . vertexCount || ( d3 . attributes . position . values = new Float32Array ( 3 * d3 . vertexCount ) ) ;
const v2 = c2 / - 2 , O = m2 / - 2 , C2 = c2 / d3 . xSegCount , N2 = m2 / d3 . ySegCount ;
for ( let E2 = 0 ; E2 <= d3 . ySegCount ; E2 ++ ) {
const x2 = O + E2 * N2 ;
for ( let A2 = 0 ; A2 <= d3 . xSegCount ; A2 ++ ) {
const M2 = v2 + A2 * C2 , P2 = E2 * ( d3 . xSegCount + 1 ) + A2 ;
d3 . attributes . position . values [ 3 * P2 + "xyz" . indexOf ( s2 [ 0 ] ) ] = M2 , d3 . attributes . position . values [ 3 * P2 + "xyz" . indexOf ( s2 [ 1 ] ) ] = - x2 ;
}
}
d3 . attributes . position . update ( ) ;
}
} } , Mesh : { enumerable : false , value : class {
constructor ( c2 , m2 ) {
const s2 = this ;
s2 . geometry = c2 , s2 . material = m2 , s2 . attributeInstances = [ ] , Object . entries ( s2 . geometry . attributes ) . forEach ( ( [ d3 , v2 ] ) => {
s2 . attributeInstances . push ( { attribute : v2 , location : v2 . attach ( d3 , s2 . material . program ) } ) ;
} ) , o3 . meshes . push ( s2 ) ;
}
draw ( ) {
r2 . useProgram ( this . material . program ) , this . material . uniformInstances . forEach ( ( { uniform : c2 , location : m2 } ) => c2 . update ( m2 ) ) , this . attributeInstances . forEach ( ( { attribute : c2 , location : m2 } ) => c2 . use ( m2 ) ) , r2 . drawElements ( r2 . TRIANGLES , this . geometry . attributes . index . values . length , r2 . UNSIGNED _SHORT , 0 ) ;
}
remove ( ) {
o3 . meshes = o3 . meshes . filter ( ( c2 ) => c2 != this ) ;
}
} } , Attribute : { enumerable : false , value : class {
constructor ( c2 ) {
this . type = r2 . FLOAT , this . normalized = false , this . buffer = r2 . createBuffer ( ) , Object . assign ( this , c2 ) , this . update ( ) ;
}
update ( ) {
this . values !== void 0 && ( r2 . bindBuffer ( this . target , this . buffer ) , r2 . bufferData ( this . target , this . values , r2 . STATIC _DRAW ) ) ;
}
attach ( c2 , m2 ) {
const s2 = r2 . getAttribLocation ( m2 , c2 ) ;
return this . target === r2 . ARRAY _BUFFER && ( r2 . enableVertexAttribArray ( s2 ) , r2 . vertexAttribPointer ( s2 , this . size , this . type , this . normalized , 0 , 0 ) ) , s2 ;
}
use ( c2 ) {
r2 . bindBuffer ( this . target , this . buffer ) , this . target === r2 . ARRAY _BUFFER && ( r2 . enableVertexAttribArray ( c2 ) , r2 . vertexAttribPointer ( c2 , this . size , this . type , this . normalized , 0 , 0 ) ) ;
}
} } } ) ;
const i2 = [ 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 ] ;
o3 . commonUniforms = { projectionMatrix : new o3 . Uniform ( { type : "mat4" , value : i2 } ) , modelViewMatrix : new o3 . Uniform ( { type : "mat4" , value : i2 } ) , resolution : new o3 . Uniform ( { type : "vec2" , value : [ 1 , 1 ] } ) , aspectRatio : new o3 . Uniform ( { type : "float" , value : 1 } ) } ;
}
setSize ( t2 = 640 , a2 = 480 ) {
this . width = t2 , this . height = a2 , this . canvas . width = t2 , this . canvas . height = a2 , this . gl . viewport ( 0 , 0 , t2 , a2 ) , this . commonUniforms . resolution . value = [ t2 , a2 ] , this . commonUniforms . aspectRatio . value = t2 / a2 ;
}
setOrthographicCamera ( t2 = 0 , a2 = 0 , n2 = 0 , o3 = - 2e3 , r2 = 2e3 ) {
this . commonUniforms . projectionMatrix . value = [ 2 / this . width , 0 , 0 , 0 , 0 , 2 / this . height , 0 , 0 , 0 , 0 , 2 / ( o3 - r2 ) , 0 , t2 , a2 , n2 , 1 ] ;
}
render ( ) {
this . gl . clearColor ( 0 , 0 , 0 , 0 ) , this . gl . clearDepth ( 1 ) , this . meshes . forEach ( ( t2 ) => t2 . draw ( ) ) ;
}
} ;
const g = { CROSS _ICON : w ` <svg width="12" height="12" viewBox="0 0 12 12"><path d="M9.94 11A.75.75 0 1 0 11 9.94L7.414 6.353a.5.5 0 0 1 0-.708L11 2.061A.75.75 0 1 0 9.94 1L6.353 4.586a.5.5 0 0 1-.708 0L2.061 1A.75.75 0 0 0 1 2.06l3.586 3.586a.5.5 0 0 1 0 .708L1 9.939A.75.75 0 1 0 2.06 11l3.586-3.586a.5.5 0 0 1 .708 0L9.939 11Z" fill="#fff"/></svg> ` , NOISE _TEXTURE : w ` <svg id="w3m-transparent-noise"><filter id="w3m-noise"><feTurbulence type="fractalNoise" baseFrequency="0.8"/></filter><rect width="100%" height="100%" filter="url(#w3m-noise)"/></svg> ` , WALLET _CONNECT _LOGO : w ` <svg width="178" height="29" viewBox="0 0 178 29" id="w3m-wc-logo"><path d="M10.683 7.926c5.284-5.17 13.85-5.17 19.134 0l.636.623a.652.652 0 0 1 0 .936l-2.176 2.129a.343.343 0 0 1-.478 0l-.875-.857c-3.686-3.607-9.662-3.607-13.348 0l-.937.918a.343.343 0 0 1-.479 0l-2.175-2.13a.652.652 0 0 1 0-.936l.698-.683Zm23.633 4.403 1.935 1.895a.652.652 0 0 1 0 .936l-8.73 8.543a.687.687 0 0 1-.956 0L20.37 17.64a.172.172 0 0 0-.239 0l-6.195 6.063a.687.687 0 0 1-.957 0l-8.73-8.543a.652.652 0 0 1 0-.936l1.936-1.895a.687.687 0 0 1 .957 0l6.196 6.064a.172.172 0 0 0 .239 0l6.195-6.064a.687.687 0 0 1 .957 0l6.196 6.064a.172.172 0 0 0 .24 0l6.195-6.064a.687.687 0 0 1 .956 0ZM48.093 20.948l2.338-9.355c.139-.515.258-1.07.416-1.942.12.872.258 1.427.357 1.942l2.022 9.355h4.181l3.528-13.874h-3.21l-1.943 8.523a24.825 24.825 0 0 0-.456 2.457c-.158-.931-.317-1.625-.495-2.438l-1.883-8.542h-4.201l-2.042 8.542a41.204 41.204 0 0 0-.475 2.438 41.208 41.208 0 0 0-.476-2.438l-1.903-8.542h-3.349l3.508 13.874h4.083ZM63.33 21.304c1.585 0 2.596-.654 3.11-1.605-.059.297-.078.595-.078.892v.357h2.655V15.22c0-2.735-1.248-4.32-4.3-4.32-2.636 0-4.36 1.466-4.52 3.487h2.914c.1-.891.734-1.426 1.705-1.426.911 0 1.407.515 1.407 1.11 0 .435-.258.693-1.03.792l-1.388.159c-2.061.257-3.825 1.01-3.825 3.19 0 1.982 1.645 3.092 3.35 3.092Zm.891-2.041c-.773 0-1.348-.436-1.348-1.19 0-.733.655-1.09 1.645-1.268l.674-.119c.575-.118.892-.218 1.09-.396v.912c0 1.228-.892 2.06-2.06 2.06ZM70.398 7.074v13.874h2.874V7.074h-2.874ZM74.934 7.074v13.874h2.874V7.074h-2.874ZM84.08 21.304c2.735 0 4.5-1.546 4.697-3.567h-2.893c-.139.892-.892 1.387-1.804 1.387-1.228 0-2.12-.99-2.14-2.358h6.897v-.555c0-3.21-1.764-5.312-4.816-5.312-2.933 0-4.994 2.062-4.994 5.173 0 3.37 2.12 5.232 5.053 5.232Zm-2.16-6.421c.119-1.11.932-1.922 2.081-1.922 1.11 0 1.883.772 1.903 1.922H81.92ZM94.92 21.146c.633 0 1.248-.1 1.525-.179v-2.18c-.218.04-.475.06-.693.06-1.05 0-1.427-.595-1.427-1.566v-3.805h2.338v-2.24h-2.338V7.788H91.47v3.448H89.37v2.24h2.1v4.201c0 2.3 1.15 3.469 3.45 3.469ZM104.62 21.304c3.924 0 6.302-2.299 6.599-5.608h-3.111c-.238 1.803-1.506 3.032-3.369 3.032-2.2 0-3.746-1.784-3.746-4.796 0-2.953 1.605-4.638 3.805-4.638 1.883 0 2.953 1.15 3.171 2.834h3.191c-.317-3.448-2.854-5.41-6.342-5.41-3.984 0-7.036 2.695-7.036 7.214 0 4.677 2.676 7.372 6.838 7.372ZM117.449 21.304c2.993 0 5.114-1.882 5.114-5.172 0-3.23-2.121-5.233-5.114-5.233-2.972 0-5.093 2.002-5.093 5.233 0 3.29 2.101 5.172 5.093 5.172Zm0-2.22c-1.327 0-2.18-1.09-2.18-2.952 0-1.903.892-2.973 2.18-2.973 1.308 0 2.2 1.07 2.2 2.973 0 1.862-.872 2.953-2.2 2.953ZM126.569 20.948v-5.689c0-1.208.753-2.1 1.823-2.1 1.011 0 1.606.773 1.606 2.06v5.729h2.873v-6.144c0-2.339-1.229-3.905-3.428-3.905-1.526 0-2.458.734-2.953 1.606a5.31 5.31 0 0 0 .079-.892v-.377h-2.874v9.712h2.874ZM137.464 20.948v-5.689c0-1.208.753-2.1 1.823-2.1 1.011 0 1.606.773 1.606 2.06v5.729h2.873v-6.144c0-2.339-1.228-3.905-3.428-3.905-1.526 0-2.458.734-2.953 1.606a5.31 5.31 0 0 0 .079-.892v-.377h-2.874v9.712h2.874ZM149.949 21.304c2.735 0 4.499-1.546 4.697-3.567h-2.893c-.139.892-.892 1.387-1.804 1.387-1.228 0-2.12-.99-2.14-2.358h6.897v-.555c0-3.21-1.764-5.312-4.816-5.312-2.933 0-4.994 2.062-4.994 5.173 0 3.37 2.12 5.232 5.053 5.232Zm-2.16-6.421c.119-1.11.932-1.922 2.081-1.922 1.11 0 1.883.772 1.903 1.922h-3.984ZM160.876 21.304c3.013 0 4.658-1.645 4.975-4.201h-2.874c-.099 1.07-.713 1.982-2.001 1.982-1.309 0-2.2-1.21-2.2-2.993 0-1.942 1.03-2.933 2.259-2.933 1.209 0 1.803.872 1.883 1.882h2.873c-.218-2.358-1.823-4.142-4.776-4.142-2.874 0
var Z = ( ( e2 ) => ( e2 . metaMask = "metaMask" , e2 . trust = "trust" , e2 . phantom = "phantom" , e2 . brave = "brave" , e2 . spotEthWallet = "spotEthWallet" , e2 . exodus = "exodus" , e2 . tokenPocket = "tokenPocket" , e2 . frame = "frame" , e2 . tally = "tally" , e2 . coinbaseWallet = "coinbaseWallet" , e2 . core = "core" , e2 . bitkeep = "bitkeep" , e2 . mathWallet = "mathWallet" , e2 . opera = "opera" , e2 . tokenary = "tokenary" , e2 [ "1inch" ] = "1inch" , e2 . kuCoinWallet = "kuCoinWallet" , e2 . ledger = "ledger" , e2 ) ) ( Z || { } ) ;
const J = { injectedPreset : { metaMask : { name : "MetaMask" , icon : "619537c0-2ff3-4c78-9ed8-a05e7567f300" , url : "https://metamask.io" , isMobile : true , isInjected : true } , trust : { name : "Trust" , icon : "0528ee7e-16d1-4089-21e3-bbfb41933100" , url : "https://trustwallet.com" , isMobile : true , isInjected : true } , spotEthWallet : { name : "Spot" , icon : "1bf33a89-b049-4a1c-d1f6-4dd7419ee400" , url : "https://www.spot-wallet.com" , isMobile : true , isInjected : true } , phantom : { name : "Phantom" , icon : "62471a22-33cb-4e65-5b54-c3d9ea24b900" , url : "https://phantom.app" , isInjected : true } , core : { name : "Core" , icon : "35f9c46e-cc57-4aa7-315d-e6ccb2a1d600" , url : "https://core.app" , isMobile : true , isInjected : true } , bitkeep : { name : "BitKeep" , icon : "3f7075d0-4ab7-4db5-404d-3e4c05e6fe00" , url : "https://bitkeep.com" , isMobile : true , isInjected : true } , tokenPocket : { name : "TokenPocket" , icon : "f3119826-4ef5-4d31-4789-d4ae5c18e400" , url : "https://www.tokenpocket.pro" , isMobile : true , isInjected : true } , mathWallet : { name : "MathWallet" , icon : "26a8f588-3231-4411-60ce-5bb6b805a700" , url : "https://mathwallet.org" , isMobile : true , isInjected : true } , exodus : { name : "Exodus" , icon : "4c16cad4-cac9-4643-6726-c696efaf5200" , url : "https://www.exodus.com" , isMobile : true , isDesktop : true , isInjected : true } , kuCoinWallet : { name : "KuCoin Wallet" , icon : "1e47340b-8fd7-4ad6-17e7-b2bd651fae00" , url : "https://kuwallet.com" , isMobile : true , isInjected : true } , ledger : { name : "Ledger" , icon : "a7f416de-aa03-4c5e-3280-ab49269aef00" , url : "https://www.ledger.com" , isDesktop : true } , brave : { name : "Brave" , icon : "125e828e-9936-4451-a8f2-949c119b7400" , url : "https://brave.com/wallet" , isInjected : true } , frame : { name : "Frame" , icon : "cd492418-ea85-4ef1-aeed-1c9e20b58900" , url : "https://frame.sh" , isInjected : true } , tally : { name : "Tally" , icon : "98d2620c-9fc8-4a1c-31bc-78d59d00a300" , url : "https://tallyho.org" , isInjected : true } , coinbaseWallet : { name : "Coinbase" , icon : "f8068a7f-83d7-4190-1f94-78154a12c600" , url : "https://www.coinbase.com/wallet" , isInjected : true } , opera : { name : "Opera" , icon : "877fa1a4-304d-4d45-ca8e-f76d1a556f00" , url : "https://www.opera.com/crypto" , isInjected : true } , tokenary : { name : "Tokenary" , icon : "5e481041-dc3c-4a81-373a-76bbde91b800" , url : "https://tokenary.io" , isDesktop : true , isInjected : true } , [ "1inch" ] : { name : "1inch Wallet" , icon : "dce1ee99-403f-44a9-9f94-20de30616500" , url : "https://1inch.io/wallet" , isMobile : true } } , getInjectedId ( e2 ) {
if ( e2 . toUpperCase ( ) !== "INJECTED" && e2 . length )
return e2 ;
const { ethereum : t2 , spotEthWallet : a2 , coinbaseWalletExtension : n2 } = window ;
return t2 ? t2 . isTrust || t2 . isTrustWallet ? "trust" : t2 . isPhantom ? "phantom" : t2 . isBraveWallet ? "brave" : a2 ? "spotEthWallet" : t2 . isExodus ? "exodus" : t2 . isTokenPocket ? "tokenPocket" : t2 . isFrame ? "frame" : t2 . isTally ? "tally" : n2 ? "coinbaseWallet" : t2 . isAvalanche ? "core" : t2 . isBitKeep ? "bitkeep" : t2 . isMathWallet ? "mathWallet" : t2 . isOpera ? "opera" : t2 . isTokenary ? "tokenary" : t2 . isOneInchIOSWallet || t2 . isOneInchAndroidWallet ? "1inch" : t2 . isKuCoinWallet ? "kuCoinWallet" : t2 . isMetaMask ? "metaMask" : "injected" : "metaMask" ;
} , getInjectedName ( e2 ) {
var t2 , a2 ;
if ( e2 . length && e2 . toUpperCase ( ) !== "INJECTED" )
return e2 ;
const n2 = J . getInjectedId ( "" ) ;
return ( a2 = ( t2 = J . injectedPreset [ n2 ] ) == null ? void 0 : t2 . name ) != null ? a2 : "Injected" ;
} } , Ft = { ETH : { icon : "692ed6ba-e569-459a-556a-776476829e00" } , WETH : { icon : "692ed6ba-e569-459a-556a-776476829e00" } , AVAX : { icon : "30c46e53-e989-45fb-4549-be3bd4eb3b00" } , FTM : { icon : "06b26297-fe0c-4733-5d6b-ffa5498aac00" } , BNB : { icon : "93564157-2e8e-4ce7-81df-b264dbee9b00" } , MATIC : { icon : "41d04d42-da3b-4453-8506-668cc0727900" } , OP : { icon : "ab9c186a-c52f-464b-2906-ca59d760a400" } , xDAI : { icon : "02b53f6a-e3d4-479e-1cb4-21178987d100" } , EVMOS : { icon : "f926ff41-260d-4028-635e-91913fc28e00" } , METIS : { icon : "3897a66d-40b9-4833-162f-a2c90531c900" } , IOTX : { icon : "34e68754-e536-40da-c153-6ef2e7188a00" } } ;
var zt = Object . defineProperty , pt = Object . getOwnPropertySymbols , Vt = Object . prototype . hasOwnProperty , Gt = Object . prototype . propertyIsEnumerable , ut = ( e2 , t2 , a2 ) => t2 in e2 ? zt ( e2 , t2 , { enumerable : true , configurable : true , writable : true , value : a2 } ) : e2 [ t2 ] = a2 , qt = ( e2 , t2 ) => {
for ( var a2 in t2 || ( t2 = { } ) )
Vt . call ( t2 , a2 ) && ut ( e2 , a2 , t2 [ a2 ] ) ;
if ( pt )
for ( var a2 of pt ( t2 ) )
Gt . call ( t2 , a2 ) && ut ( e2 , a2 , t2 [ a2 ] ) ;
return e2 ;
} ;
const h = { MOBILE _BREAKPOINT : 600 , W3M _RECENT _WALLET : "W3M_RECENT_WALLET" , rejectStandaloneButtonComponent ( ) {
const { isStandalone : e2 } = a$2 . state ;
if ( e2 )
throw new Error ( "Web3Modal button components are not available in standalone mode." ) ;
} , getShadowRootElement ( e2 , t2 ) {
const a2 = e2 . renderRoot . querySelector ( t2 ) ;
if ( ! a2 )
throw new Error ( ` ${ t2 } not found ` ) ;
return a2 ;
} , getWalletId ( e2 ) {
return J . getInjectedId ( e2 ) ;
} , getWalletIcon ( e2 ) {
var t2 , a2 ;
const n2 = ( t2 = J . injectedPreset [ e2 ] ) == null ? void 0 : t2 . icon , { projectId : o3 , walletImages : r2 } = W . state ;
return ( a2 = r2 == null ? void 0 : r2 [ e2 ] ) != null ? a2 : o3 && n2 ? A$1 . getImageUrl ( n2 ) : "" ;
} , getWalletName ( e2 , t2 = false ) {
const a2 = J . getInjectedName ( e2 ) ;
return t2 ? a2 . split ( " " ) [ 0 ] : a2 ;
} , getChainIcon ( e2 ) {
var t2 ;
const a2 = Zt [ e2 ] , { projectId : n2 , chainImages : o3 } = W . state ;
return ( t2 = o3 == null ? void 0 : o3 [ e2 ] ) != null ? t2 : n2 && a2 ? A$1 . getImageUrl ( a2 ) : "" ;
} , getTokenIcon ( e2 ) {
var t2 , a2 ;
const n2 = ( t2 = Ft [ e2 ] ) == null ? void 0 : t2 . icon , { projectId : o3 , tokenImages : r2 } = W . state ;
return ( a2 = r2 == null ? void 0 : r2 [ e2 ] ) != null ? a2 : o3 && n2 ? A$1 . getImageUrl ( n2 ) : "" ;
} , isMobileAnimation ( ) {
return window . innerWidth <= h . MOBILE _BREAKPOINT ;
} , async preloadImage ( e2 ) {
return new Promise ( ( t2 , a2 ) => {
const n2 = new Image ( ) ;
n2 . onload = t2 , n2 . onerror = a2 , n2 . src = e2 ;
} ) ;
} , getErrorMessage ( e2 ) {
return e2 instanceof Error ? e2 . message : "Unknown Error" ;
} , debounce ( e2 , t2 = 500 ) {
let a2 ;
return ( ... n2 ) => {
function o3 ( ) {
e2 ( ... n2 ) ;
}
a2 && clearTimeout ( a2 ) , a2 = setTimeout ( o3 , t2 ) ;
} ;
} , async handleMobileLinking ( e2 ) {
const { standaloneUri : t2 , selectedChain : a2 } = a$2 . state , { links : n2 , name : o3 } = e2 ;
function r2 ( i2 ) {
let c2 = "" ;
n2 != null && n2 . universal ? c2 = d$2 . formatUniversalUrl ( n2 . universal , i2 , o3 ) : n2 != null && n2 . native && ( c2 = d$2 . formatNativeUrl ( n2 . native , i2 , o3 ) ) , d$2 . openHref ( c2 ) ;
}
t2 ? ( h . setRecentWallet ( e2 ) , r2 ( t2 ) ) : ( await L . client ( ) . connectWalletConnect ( ( i2 ) => {
r2 ( i2 ) ;
} , a2 == null ? void 0 : a2 . id ) , h . setRecentWallet ( e2 ) , k$1 . close ( ) ) ;
} , async handleAndroidLinking ( ) {
const { standaloneUri : e2 , selectedChain : t2 } = a$2 . state ;
e2 ? d$2 . openHref ( e2 ) : ( await L . client ( ) . connectWalletConnect ( ( a2 ) => {
d$2 . setWalletConnectAndroidDeepLink ( a2 ) , d$2 . openHref ( a2 ) ;
} , t2 == null ? void 0 : t2 . id ) , k$1 . close ( ) ) ;
} , async handleUriCopy ( ) {
const { standaloneUri : e2 } = a$2 . state ;
if ( e2 )
await navigator . clipboard . writeText ( e2 ) ;
else {
const t2 = L . client ( ) . walletConnectUri ;
await navigator . clipboard . writeText ( t2 ) ;
}
P$1 . openToast ( "Link copied" , "success" ) ;
} , async handleConnectorConnection ( e2 , t2 ) {
try {
const { selectedChain : a2 } = a$2 . state ;
await L . client ( ) . connectConnector ( e2 , a2 == null ? void 0 : a2 . id ) , k$1 . close ( ) ;
} catch ( a2 ) {
console . error ( a2 ) , t2 ? t2 ( ) : P$1 . openToast ( h . getErrorMessage ( a2 ) , "error" ) ;
}
} , getCustomWallets ( ) {
var e2 ;
const { desktopWallets : t2 , mobileWallets : a2 } = W . state ;
return ( e2 = d$2 . isMobile ( ) ? a2 : t2 ) != null ? e2 : [ ] ;
} , getCustomImageUrls ( ) {
const { chainImages : e2 , walletImages : t2 } = W . state , a2 = Object . values ( e2 ? ? { } ) , n2 = Object . values ( t2 ? ? { } ) ;
return Object . values ( [ ... a2 , ... n2 ] ) ;
} , getConnectorImageUrls ( ) {
return L . client ( ) . getConnectors ( ) . map ( ( { id : e2 } ) => J . getInjectedId ( e2 ) ) . map ( ( e2 ) => h . getWalletIcon ( e2 ) ) ;
} , truncate ( e2 , t2 = 8 ) {
return e2 . length <= t2 ? e2 : ` ${ e2 . substring ( 0 , 4 ) } ... ${ e2 . substring ( e2 . length - 4 ) } ` ;
} , generateAvatarColors ( e2 ) {
var t2 ;
const a2 = ( t2 = e2 . match ( /.{1,7}/g ) ) == null ? void 0 : t2 . splice ( 0 , 5 ) , n2 = [ ] ;
a2 == null ? void 0 : a2 . forEach ( ( r2 ) => {
let i2 = 0 ;
for ( let m2 = 0 ; m2 < r2 . length ; m2 += 1 )
i2 = r2 . charCodeAt ( m2 ) + ( ( i2 << 5 ) - i2 ) , i2 = i2 & i2 ;
const c2 = [ 0 , 0 , 0 ] ;
for ( let m2 = 0 ; m2 < 3 ; m2 += 1 ) {
const s2 = i2 >> m2 * 8 & 255 ;
c2 [ m2 ] = s2 ;
}
n2 . push ( ` rgb( ${ c2 [ 0 ] } , ${ c2 [ 1 ] } , ${ c2 [ 2 ] } ) ` ) ;
} ) ;
const o3 = document . querySelector ( ":root" ) ;
if ( o3 ) {
const r2 = { "--w3m-color-av-1" : n2 [ 0 ] , "--w3m-color-av-2" : n2 [ 1 ] , "--w3m-color-av-3" : n2 [ 2 ] , "--w3m-color-av-4" : n2 [ 3 ] , "--w3m-color-av-5" : n2 [ 4 ] } ;
Object . entries ( r2 ) . forEach ( ( [ i2 , c2 ] ) => o3 . style . setProperty ( i2 , c2 ) ) ;
}
} , setRecentWallet ( e2 ) {
const { walletConnectVersion : t2 } = a$2 . state ;
localStorage . setItem ( h . W3M _RECENT _WALLET , JSON . stringify ( { [ t2 ] : e2 } ) ) ;
} , getRecentWallet ( ) {
const e2 = localStorage . getItem ( h . W3M _RECENT _WALLET ) ;
if ( e2 ) {
const { walletConnectVersion : t2 } = a$2 . state , a2 = JSON . parse ( e2 ) ;
if ( a2 [ t2 ] )
return a2 [ t2 ] ;
}
} , getExtensionWallets ( ) {
const e2 = [ ] ;
for ( const [ t2 , a2 ] of Object . entries ( J . injectedPreset ) )
t2 !== Z . coinbaseWallet && a2 && a2 . isInjected && ! a2 . isDesktop && e2 . push ( qt ( { id : t2 } , a2 ) ) ;
return e2 ;
} , caseSafeIncludes ( e2 , t2 ) {
return e2 . toUpperCase ( ) . includes ( t2 . toUpperCase ( ) ) ;
} } , Kt = i$3 ` #w3m-transparent-noise,.w3m-canvas,.w3m-color-placeholder,.w3m-gradient-placeholder,.w3m-highlight{inset:0;position:absolute;display:block;pointer-events:none;width:100%;height:100px;border-radius:8px 8px 0 0;transform:translateY(-5px)}.w3m-gradient-placeholder{background:linear-gradient(var(--w3m-gradient-1),var(--w3m-gradient-2),var(--w3m-gradient-3),var(--w3m-gradient-4))}.w3m-color-placeholder{background-color:var(--w3m-color-fg-accent)}.w3m-highlight{border:1px solid var(--w3m-color-overlay)}.w3m-canvas{opacity:0;transition:opacity 2s ease;box-shadow:0 8px 28px -6px rgba(10,16,31,.12),0 18px 88px -4px rgba(10,16,31,.14)}.w3m-canvas-visible{opacity:1}#w3m-transparent-noise{mix-blend-mode:multiply;opacity:.35}.w3m-toolbar{height:28px;display:flex;position:relative;margin:5px 15px 5px 5px;justify-content:space-between;align-items:center}.w3m-toolbar img,.w3m-toolbar svg{height:28px;object-position:left center;object-fit:contain}#w3m-wc-logo path{fill:var(--w3m-color-fg-inverse)}.w3m-action-btn{width:28px;height:28px;border-radius:50%;border:0;display:flex;justify-content:center;align-items:center;cursor:pointer;transition:background-color,.2s ease;background-color:var(--w3m-color-bg-1);box-shadow:0 0 0 1px var(--w3m-color-overlay),0 2px 4px -2px rgba(0,0,0,.12),0 4px 4px -2px rgba(0,0,0,.08)}.w3m-action-btn:hover{background-color:var(--w3m-color-bg-2)}.w3m-action-btn svg{display:block;object-position:center}.w3m-action-btn path{fill:var(--w3m-color-fg-1)}.w3m-actions{display:flex}.w3m-actions button:first-child{margin-right:16px}.w3m-help-active button:first-child{background-color:var(--w3m-color-fg-1)}.w3m-help-active button:first-child path{fill:var(--w3m-color-bg-1)} ` ;
var Yt = Object . defineProperty , Xt = Object . getOwnPropertyDescriptor , Ne = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? Xt ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && Yt ( t2 , a2 , o3 ) , o3 ;
} ;
const vt = new Bt ( ) ;
let ce = class extends s {
constructor ( ) {
super ( ) , this . open = false , this . isHelp = false , this . unsubscribeRouter = void 0 , this . playTimeout = void 0 , this . unsubscribeRouter = g$2 . subscribe ( ( e2 ) => {
this . isHelp = e2 . view === "Help" ;
} ) ;
}
firstUpdated ( ) {
const { themeBackground : e2 } = W . state ;
e2 === "gradient" && ( this . playTimeout = setTimeout ( ( ) => {
vt . play ( this . canvasEl ) , this . open = true ;
} , 800 ) ) ;
}
disconnectedCallback ( ) {
var e2 ;
( e2 = this . unsubscribeRouter ) == null || e2 . call ( this ) , clearTimeout ( this . playTimeout ) , vt . stop ( ) ;
}
get canvasEl ( ) {
return h . getShadowRootElement ( this , ".w3m-canvas" ) ;
}
onHelp ( ) {
g$2 . push ( "Help" ) ;
}
render ( ) {
const { themeBackground : e2 } = W . state , t2 = { "w3m-canvas" : true , "w3m-canvas-visible" : this . open } , a2 = { "w3m-actions" : true , "w3m-help-active" : this . isHelp } ;
return y ` ${ e2 === "themeColor" ? y ` <div class="w3m-color-placeholder"></div> ` : null } ${ e2 === "gradient" ? y ` <div class="w3m-gradient-placeholder"></div><canvas class=" ${ o2 ( t2 ) } "></canvas> ${ g . NOISE _TEXTURE } ` : null } <div class="w3m-highlight"></div><div class="w3m-toolbar"> ${ g . WALLET _CONNECT _LOGO } <div class=" ${ o2 ( a2 ) } "><button class="w3m-action-btn" @click=" ${ this . onHelp } "> ${ g . HELP _ICON } </button> <button class="w3m-action-btn" @click=" ${ k$1 . close } "> ${ g . CROSS _ICON } </button></div></div> ` ;
}
} ;
ce . styles = [ u . globalCss , Kt ] , Ne ( [ t$1 ( ) ] , ce . prototype , "open" , 2 ) , Ne ( [ t$1 ( ) ] , ce . prototype , "isHelp" , 2 ) , ce = Ne ( [ e$2 ( "w3m-modal-backcard" ) ] , ce ) ;
const Qt = i$3 ` main{padding:20px;padding-top:0;width:100%} ` ;
var Jt = Object . defineProperty , eo = Object . getOwnPropertyDescriptor , to = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? eo ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && Jt ( t2 , a2 , o3 ) , o3 ;
} ;
let Re = class extends s {
render ( ) {
return y ` <main><slot></slot></main> ` ;
}
} ;
Re . styles = [ u . globalCss , Qt ] , Re = to ( [ e$2 ( "w3m-modal-content" ) ] , Re ) ;
const oo = i$3 ` footer{padding:10px;display:flex;flex-direction:column;align-items:inherit;justify-content:inherit;border-top:1px solid var(--w3m-color-bg-2)} ` ;
var ao = Object . defineProperty , no = Object . getOwnPropertyDescriptor , ro = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? no ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && ao ( t2 , a2 , o3 ) , o3 ;
} ;
let Be = class extends s {
render ( ) {
return y ` <footer><slot></slot></footer> ` ;
}
} ;
Be . styles = [ u . globalCss , oo ] , Be = ro ( [ e$2 ( "w3m-modal-footer" ) ] , Be ) ;
const io = i$3 ` header{display:flex;justify-content:center;align-items:center;padding:20px;position:relative}.w3m-border{border-bottom:1px solid var(--w3m-color-bg-2);margin-bottom:20px}header button{padding:15px 20px;transition:opacity .2s ease}@media(hover:hover){header button:hover{opacity:.5}}.w3m-back-btn{position:absolute;left:0}.w3m-action-btn{position:absolute;right:0}path{fill:var(--w3m-color-fg-accent)} ` ;
var lo = Object . defineProperty , so = Object . getOwnPropertyDescriptor , de = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? so ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && lo ( t2 , a2 , o3 ) , o3 ;
} ;
let q = class extends s {
constructor ( ) {
super ( ... arguments ) , this . title = "" , this . onAction = void 0 , this . actionIcon = void 0 , this . border = false ;
}
backBtnTemplate ( ) {
return y ` <button class="w3m-back-btn" @click=" ${ g$2 . goBack } "> ${ g . BACK _ICON } </button> ` ;
}
actionBtnTemplate ( ) {
return y ` <button class="w3m-action-btn" @click=" ${ this . onAction } "> ${ this . actionIcon } </button> ` ;
}
render ( ) {
const e2 = { "w3m-border" : this . border } , t2 = g$2 . state . history . length > 1 , a2 = this . title ? y ` <w3m-text variant="large-bold"> ${ this . title } </w3m-text> ` : y ` <slot></slot> ` ;
return y ` <header class=" ${ o2 ( e2 ) } "> ${ t2 ? this . backBtnTemplate ( ) : null } ${ a2 } ${ this . onAction ? this . actionBtnTemplate ( ) : null } </header> ` ;
}
} ;
q . styles = [ u . globalCss , io ] , de ( [ e$1 ( ) ] , q . prototype , "title" , 2 ) , de ( [ e$1 ( ) ] , q . prototype , "onAction" , 2 ) , de ( [ e$1 ( ) ] , q . prototype , "actionIcon" , 2 ) , de ( [ e$1 ( ) ] , q . prototype , "border" , 2 ) , q = de ( [ e$2 ( "w3m-modal-header" ) ] , q ) ;
const co = i$3 ` .w3m-router{overflow:hidden;will-change:transform}.w3m-content{display:flex;flex-direction:column} ` ;
var ho = Object . defineProperty , mo = Object . getOwnPropertyDescriptor , Ue = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? mo ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && ho ( t2 , a2 , o3 ) , o3 ;
} ;
let he = class extends s {
constructor ( ) {
super ( ) , this . view = g$2 . state . view , this . prevView = g$2 . state . view , this . unsubscribe = void 0 , this . oldHeight = "0px" , this . resizeObserver = void 0 , this . unsubscribe = g$2 . subscribe ( ( e2 ) => {
this . view !== e2 . view && this . onChangeRoute ( ) ;
} ) ;
}
firstUpdated ( ) {
this . resizeObserver = new ResizeObserver ( ( [ e2 ] ) => {
const t2 = ` ${ e2 . contentRect . height } px ` ;
this . oldHeight !== "0px" && ( animate ( this . routerEl , { height : [ this . oldHeight , t2 ] } , { duration : 0.2 } ) , animate ( this . routerEl , { opacity : [ 0 , 1 ] , scale : [ 0.99 , 1 ] } , { duration : 0.37 , delay : 0.03 } ) ) , this . oldHeight = t2 ;
} ) , this . resizeObserver . observe ( this . contentEl ) ;
}
disconnectedCallback ( ) {
var e2 , t2 ;
( e2 = this . unsubscribe ) == null || e2 . call ( this ) , ( t2 = this . resizeObserver ) == null || t2 . disconnect ( ) ;
}
get routerEl ( ) {
return h . getShadowRootElement ( this , ".w3m-router" ) ;
}
get contentEl ( ) {
return h . getShadowRootElement ( this , ".w3m-content" ) ;
}
viewTemplate ( ) {
switch ( this . view ) {
case "ConnectWallet" :
return y ` <w3m-connect-wallet-view></w3m-connect-wallet-view> ` ;
case "SelectNetwork" :
return y ` <w3m-select-network-view></w3m-select-network-view> ` ;
case "InjectedConnector" :
return y ` <w3m-injected-connector-view></w3m-injected-connector-view> ` ;
case "InstallConnector" :
return y ` <w3m-install-connector-view></w3m-install-connector-view> ` ;
case "GetWallet" :
return y ` <w3m-get-wallet-view></w3m-get-wallet-view> ` ;
case "DesktopConnector" :
return y ` <w3m-desktop-connector-view></w3m-desktop-connector-view> ` ;
case "WalletExplorer" :
return y ` <w3m-wallet-explorer-view></w3m-wallet-explorer-view> ` ;
case "Qrcode" :
return y ` <w3m-qrcode-view></w3m-qrcode-view> ` ;
case "Help" :
return y ` <w3m-help-view></w3m-help-view> ` ;
case "Account" :
return y ` <w3m-account-view></w3m-account-view> ` ;
case "SwitchNetwork" :
return y ` <w3m-switch-network-view></w3m-switch-network-view> ` ;
default :
return y ` <div>Not Found</div> ` ;
}
}
async onChangeRoute ( ) {
await animate ( this . routerEl , { opacity : [ 1 , 0 ] , scale : [ 1 , 1.02 ] } , { duration : 0.15 } ) . finished , this . view = g$2 . state . view ;
}
render ( ) {
return y ` <div class="w3m-router"><div class="w3m-content"> ${ this . viewTemplate ( ) } </div></div> ` ;
}
} ;
he . styles = [ u . globalCss , co ] , Ue ( [ t$1 ( ) ] , he . prototype , "view" , 2 ) , Ue ( [ t$1 ( ) ] , he . prototype , "prevView" , 2 ) , he = Ue ( [ e$2 ( "w3m-modal-router" ) ] , he ) ;
const po = i$3 ` div{height:36px;width:max-content;display:flex;justify-content:center;align-items:center;padding:10px 15px;position:absolute;top:12px;box-shadow:0 6px 14px -6px rgba(10,16,31,.3),0 10px 32px -4px rgba(10,16,31,.15);z-index:2;left:50%;transform:translateX(-50%);pointer-events:none;backdrop-filter:blur(20px) saturate(1.8);-webkit-backdrop-filter:blur(20px) saturate(1.8);border-radius:36px;border:1px solid var(--w3m-color-overlay);background-color:var(--w3m-color-overlay)}svg{margin-right:5px}@-moz-document url-prefix(){div{background-color:var(--w3m-color-bg-3)}}.w3m-success path{fill:var(--w3m-color-fg-accent)}.w3m-error path{fill:var(--w3m-color-err)} ` ;
var uo = Object . defineProperty , vo = Object . getOwnPropertyDescriptor , gt = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? vo ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && uo ( t2 , a2 , o3 ) , o3 ;
} ;
let $e = class extends s {
constructor ( ) {
super ( ) , this . open = false , this . unsubscribe = void 0 , this . timeout = void 0 , this . unsubscribe = P$1 . subscribe ( ( e2 ) => {
e2 . open ? ( this . open = true , this . timeout = setTimeout ( ( ) => P$1 . closeToast ( ) , 2200 ) ) : ( this . open = false , clearTimeout ( this . timeout ) ) ;
} ) ;
}
disconnectedCallback ( ) {
var e2 ;
( e2 = this . unsubscribe ) == null || e2 . call ( this ) , clearTimeout ( this . timeout ) , P$1 . closeToast ( ) ;
}
render ( ) {
const { message : e2 , variant : t2 } = P$1 . state , a2 = { "w3m-success" : t2 === "success" , "w3m-error" : t2 === "error" } ;
return this . open ? y ` <div class=" ${ o2 ( a2 ) } "> ${ t2 === "success" ? g . CHECKMARK _ICON : null } ${ t2 === "error" ? g . CROSS _ICON : null } <w3m-text variant="small-normal"> ${ e2 } </w3m-text></div> ` : null ;
}
} ;
$e . styles = [ u . globalCss , po ] , gt ( [ t$1 ( ) ] , $e . prototype , "open" , 2 ) , $e = gt ( [ e$2 ( "w3m-modal-toast" ) ] , $e ) ;
const go = i$3 ` button{padding:5px;border-radius:10px;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;width:80px;height:90px}w3m-network-image{width:54px;height:59px}w3m-text{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;margin-top:5px}button:hover{background-color:var(--w3m-color-overlay)} ` ;
var wo = Object . defineProperty , bo = Object . getOwnPropertyDescriptor , Oe = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? bo ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && wo ( t2 , a2 , o3 ) , o3 ;
} ;
let oe = class extends s {
constructor ( ) {
super ( ... arguments ) , this . onClick = ( ) => null , this . name = "" , this . chainId = "" ;
}
render ( ) {
return y ` <button @click=" ${ this . onClick } "><w3m-network-image chainId=" ${ this . chainId } "></w3m-network-image><w3m-text variant="xsmall-normal"> ${ this . name } </w3m-text></button> ` ;
}
} ;
oe . styles = [ u . globalCss , go ] , Oe ( [ e$1 ( ) ] , oe . prototype , "onClick" , 2 ) , Oe ( [ e$1 ( ) ] , oe . prototype , "name" , 2 ) , Oe ( [ e$1 ( ) ] , oe . prototype , "chainId" , 2 ) , oe = Oe ( [ e$2 ( "w3m-network-button" ) ] , oe ) ;
const fo = i$3 ` div{width:inherit;height:inherit}.polygon-stroke{stroke:var(--w3m-color-overlay)}svg{width:100%;height:100%;margin:0}#network-placeholder-fill{fill:var(--w3m-color-bg-3)}#network-placeholder-dash{stroke:var(--w3m-color-overlay)} ` ;
var yo = Object . defineProperty , xo = Object . getOwnPropertyDescriptor , wt = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? xo ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && yo ( t2 , a2 , o3 ) , o3 ;
} ;
let Ie = class extends s {
constructor ( ) {
super ( ... arguments ) , this . chainId = "" ;
}
render ( ) {
const e2 = h . getChainIcon ( this . chainId ) ;
return e2 ? y ` <div><svg width="54" height="59" viewBox="0 0 54 59" fill="none"><defs><clipPath id="polygon"><path d="M17.033 4.964c3.852-2.262 5.778-3.393 7.84-3.77a11.807 11.807 0 0 1 4.254 0c2.062.377 3.988 1.508 7.84 3.77l6.066 3.562c3.852 2.263 5.777 3.394 7.13 5.022a12.268 12.268 0 0 1 2.127 3.747c.71 2.006.71 4.268.71 8.793v7.124c0 4.525 0 6.787-.71 8.793a12.268 12.268 0 0 1-2.126 3.747c-1.354 1.628-3.28 2.76-7.131 5.022l-6.066 3.562c-3.852 2.262-5.778 3.393-7.84 3.771a11.814 11.814 0 0 1-4.254 0c-2.062-.378-3.988-1.509-7.84-3.77l-6.066-3.563c-3.852-2.263-5.778-3.394-7.13-5.022a12.268 12.268 0 0 1-2.127-3.747C1 40 1 37.737 1 33.212v-7.124c0-4.525 0-6.787.71-8.793a12.268 12.268 0 0 1 2.127-3.747c1.352-1.628 3.278-2.76 7.13-5.022l6.066-3.562Z"/></clipPath></defs><image clip-path="url(#polygon)" href=" ${ e2 } " width="58" height="59" x="-2" y="0"/><path class="polygon-stroke" d="M17.22 5.295c3.877-2.277 5.737-3.363 7.72-3.726a11.44 11.44 0 0 1 4.12 0c1.983.363 3.844 1.45 7.72 3.726l6.065 3.562c3.876 2.276 5.731 3.372 7.032 4.938a11.896 11.896 0 0 1 2.06 3.63c.683 1.928.688 4.11.688 8.663v7.124c0 4.553-.005 6.735-.688 8.664a11.896 11.896 0 0 1-2.06 3.63c-1.3 1.565-3.156 2.66-7.032 4.937l-6.065 3.563c-3.877 2.276-5.737 3.362-7.72 3.725a11.46 11.46 0 0 1-4.12 0c-1.983-.363-3.844-1.449-7.72-3.726l-6.065-3.562c-3.876-2.276-5.731-3.372-7.032-4.938a11.885 11.885 0 0 1-2.06-3.63c-.682-1.928-.688-4.11-.688-8.663v-7.124c0-4.553.006-6.735.688-8.664a11.885 11.885 0 0 1 2.06-3.63c1.3-1.565 3.156-2.66 7.032-4.937l6.065-3.562Z" stroke="#fff"/></svg></div> ` : y ` ${ g . NETWORK _PLACEHOLDER } ` ;
}
} ;
Ie . styles = [ u . globalCss , fo ] , wt ( [ e$1 ( ) ] , Ie . prototype , "chainId" , 2 ) , Ie = wt ( [ e$2 ( "w3m-network-image" ) ] , Ie ) ;
const Co = 0.1 , bt = 2.5 , F = 7 ;
function He ( e2 , t2 , a2 ) {
return e2 === t2 ? false : ( e2 - t2 < 0 ? t2 - e2 : e2 - t2 ) <= a2 + Co ;
}
function ko ( e2 , t2 ) {
const a2 = Array . prototype . slice . call ( browser . create ( e2 , { errorCorrectionLevel : t2 } ) . modules . data , 0 ) , n2 = Math . sqrt ( a2 . length ) ;
return a2 . reduce ( ( o3 , r2 , i2 ) => ( i2 % n2 === 0 ? o3 . push ( [ r2 ] ) : o3 [ o3 . length - 1 ] . push ( r2 ) ) && o3 , [ ] ) ;
}
const $o = { generate ( e2 , t2 , a2 , n2 ) {
const o3 = n2 === "light" ? "#141414" : "#fff" , r2 = n2 === "light" ? "#fff" : "#141414" , i2 = [ ] , c2 = ko ( e2 , "Q" ) , m2 = t2 / c2 . length , s2 = [ { x : 0 , y : 0 } , { x : 1 , y : 0 } , { x : 0 , y : 1 } ] ;
s2 . forEach ( ( { x : E2 , y : x2 } ) => {
const A2 = ( c2 . length - F ) * m2 * E2 , M2 = ( c2 . length - F ) * m2 * x2 , P2 = 0.32 ;
for ( let U = 0 ; U < s2 . length ; U += 1 ) {
const ee = m2 * ( F - U * 2 ) ;
i2 . push ( w ` <rect fill=" ${ U % 2 === 0 ? o3 : r2 } " height=" ${ ee } " rx=" ${ ee * P2 } " ry=" ${ ee * P2 } " width=" ${ ee } " x=" ${ A2 + m2 * U } " y=" ${ M2 + m2 * U } "> ` ) ;
}
} ) ;
const d3 = Math . floor ( ( a2 + 25 ) / m2 ) , v2 = c2 . length / 2 - d3 / 2 , O = c2 . length / 2 + d3 / 2 - 1 , C2 = [ ] ;
c2 . forEach ( ( E2 , x2 ) => {
E2 . forEach ( ( A2 , M2 ) => {
if ( c2 [ x2 ] [ M2 ] && ! ( x2 < F && M2 < F || x2 > c2 . length - ( F + 1 ) && M2 < F || x2 < F && M2 > c2 . length - ( F + 1 ) ) && ! ( x2 > v2 && x2 < O && M2 > v2 && M2 < O ) ) {
const P2 = x2 * m2 + m2 / 2 , U = M2 * m2 + m2 / 2 ;
C2 . push ( [ P2 , U ] ) ;
}
} ) ;
} ) ;
const N2 = { } ;
return C2 . forEach ( ( [ E2 , x2 ] ) => {
N2 [ E2 ] ? N2 [ E2 ] . push ( x2 ) : N2 [ E2 ] = [ x2 ] ;
} ) , Object . entries ( N2 ) . map ( ( [ E2 , x2 ] ) => {
const A2 = x2 . filter ( ( M2 ) => x2 . every ( ( P2 ) => ! He ( M2 , P2 , m2 ) ) ) ;
return [ Number ( E2 ) , A2 ] ;
} ) . forEach ( ( [ E2 , x2 ] ) => {
x2 . forEach ( ( A2 ) => {
i2 . push ( w ` <circle cx=" ${ E2 } " cy=" ${ A2 } " fill=" ${ o3 } " r=" ${ m2 / bt } "> ` ) ;
} ) ;
} ) , Object . entries ( N2 ) . filter ( ( [ E2 , x2 ] ) => x2 . length > 1 ) . map ( ( [ E2 , x2 ] ) => {
const A2 = x2 . filter ( ( M2 ) => x2 . some ( ( P2 ) => He ( M2 , P2 , m2 ) ) ) ;
return [ Number ( E2 ) , A2 ] ;
} ) . map ( ( [ E2 , x2 ] ) => {
x2 . sort ( ( M2 , P2 ) => M2 < P2 ? - 1 : 1 ) ;
const A2 = [ ] ;
for ( const M2 of x2 ) {
const P2 = A2 . find ( ( U ) => U . some ( ( ee ) => He ( M2 , ee , m2 ) ) ) ;
P2 ? P2 . push ( M2 ) : A2 . push ( [ M2 ] ) ;
}
return [ E2 , A2 . map ( ( M2 ) => [ M2 [ 0 ] , M2 [ M2 . length - 1 ] ] ) ] ;
} ) . forEach ( ( [ E2 , x2 ] ) => {
x2 . forEach ( ( [ A2 , M2 ] ) => {
i2 . push ( w ` <line x1=" ${ E2 } " x2=" ${ E2 } " y1=" ${ A2 } " y2=" ${ M2 } " stroke=" ${ o3 } " stroke-width=" ${ m2 / ( bt / 2 ) } " stroke-linecap="round"> ` ) ;
} ) ;
} ) , i2 ;
} } , Oo = i$3 ` @keyframes fadeIn{0%{opacity:0}100%{opacity:1}}div{position:relative;user-select:none;display:block;overflow:hidden;width:100%;aspect-ratio:1/1;animation:fadeIn ease .2s}svg:first-child,w3m-wallet-image{position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%)}w3m-wallet-image{transform:translateY(-50%) translateX(-50%)}w3m-wallet-image{width:25%;height:25%;border-radius:15px}svg:first-child{transform:translateY(-50%) translateX(-50%) scale(.9)}svg:first-child path:first-child{fill:var(--w3m-color-fg-accent)}svg:first-child path:last-child{stroke:var(--w3m-color-overlay)} ` ;
var Io = Object . defineProperty , Eo = Object . getOwnPropertyDescriptor , me = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? Eo ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && Io ( t2 , a2 , o3 ) , o3 ;
} ;
let K = class extends s {
constructor ( ) {
super ( ... arguments ) , this . uri = "" , this . size = 0 , this . logoSrc = "" , this . walletId = "" ;
}
svgTemplate ( ) {
var e2 ;
const t2 = ( e2 = W . state . themeMode ) != null ? e2 : "light" ;
return w ` <svg height=" ${ this . size } " width=" ${ this . size } "> ${ $o . generate ( this . uri , this . size , this . size / 4 , t2 ) } </svg> ` ;
}
render ( ) {
return y ` <div> ${ this . walletId || this . logoSrc ? y ` <w3m-wallet-image walletId=" ${ l ( this . walletId ) } " src=" ${ l ( this . logoSrc ) } "></w3m-wallet-image> ` : g . WALLET _CONNECT _ICON _COLORED } ${ this . svgTemplate ( ) } </div> ` ;
}
} ;
K . styles = [ u . globalCss , Oo ] , me ( [ e$1 ( ) ] , K . prototype , "uri" , 2 ) , me ( [ e$1 ( { type : Number } ) ] , K . prototype , "size" , 2 ) , me ( [ e$1 ( ) ] , K . prototype , "logoSrc" , 2 ) , me ( [ e$1 ( ) ] , K . prototype , "walletId" , 2 ) , K = me ( [ e$2 ( "w3m-qrcode" ) ] , K ) ;
const Mo = i$3 ` :host{position:relative;height:28px;width:75%}input{width:100%;height:100%;line-height:28px!important;border-radius:28px;font-style:normal;font-family:-apple-system,system-ui,BlinkMacSystemFont,'Segoe UI',Roboto,Ubuntu,'Helvetica Neue',sans-serif;font-feature-settings:'case' on;font-weight:500;font-size:16px;letter-spacing:-.03em;padding:0 10px 0 34px;transition:.2s all ease;color:transparent;position:absolute;background-color:var(--w3m-color-bg-3);box-shadow:inset 0 0 0 1px var(--w3m-color-overlay)}input::placeholder{color:transparent}svg{margin-right:4px}.w3m-placeholder{top:0;left:50%;transform:translateX(-50%);transition:.2s all ease;pointer-events:none;display:flex;align-items:center;justify-content:center;height:100%;width:fit-content;position:relative}input:focus-within+.w3m-placeholder,input:not(:placeholder-shown)+.w3m-placeholder{transform:translateX(10px);left:0}w3m-text{opacity:1;transition:.2s opacity ease}input:focus-within+.w3m-placeholder w3m-text,input:not(:placeholder-shown)+.w3m-placeholder w3m-text{opacity:0}input:focus-within,input:not(:placeholder-shown){color:var(--w3m-color-fg-1)}input:focus-within{box-shadow:inset 0 0 0 1px var(--w3m-color-fg-accent)}path{fill:var(--w3m-color-fg-2)} ` ;
var Wo = Object . defineProperty , Ao = Object . getOwnPropertyDescriptor , ft = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? Ao ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && Wo ( t2 , a2 , o3 ) , o3 ;
} ;
let Ee = class extends s {
constructor ( ) {
super ( ... arguments ) , this . onChange = ( ) => null ;
}
render ( ) {
const e2 = d$2 . isMobile ( ) ? "Search mobile wallets" : "Search desktop wallets" ;
return y ` <input type="text" @input=" ${ this . onChange } " placeholder=" ${ e2 } "><div class="w3m-placeholder"> ${ g . SEARCH _ICON } <w3m-text color="secondary" variant="medium-thin"> ${ e2 } </w3m-text></div> ` ;
}
} ;
Ee . styles = [ u . globalCss , Mo ] , ft ( [ e$1 ( ) ] , Ee . prototype , "onChange" , 2 ) , Ee = ft ( [ e$2 ( "w3m-search-input" ) ] , Ee ) ;
const Lo = i$3 ` @keyframes rotate{100%{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}svg{animation:rotate 2s linear infinite;display:flex;justify-content:center;align-items:center}svg circle{stroke-linecap:round;animation:dash 1.5s ease infinite;stroke:var(--w3m-color-fg-accent)} ` ;
var jo = Object . defineProperty , So = Object . getOwnPropertyDescriptor , Po = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? So ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && jo ( t2 , a2 , o3 ) , o3 ;
} ;
let Ze = class extends s {
render ( ) {
return y ` <svg viewBox="0 0 50 50" width="24" height="24"><circle cx="25" cy="25" r="20" fill="none" stroke-width="4" stroke="#fff"/></svg> ` ;
}
} ;
Ze . styles = [ u . globalCss , Lo ] , Ze = Po ( [ e$2 ( "w3m-spinner" ) ] , Ze ) ;
const _o = i$3 ` span{font-style:normal;font-family:-apple-system,system-ui,BlinkMacSystemFont,'Segoe UI',Roboto,Ubuntu,'Helvetica Neue',sans-serif;font-feature-settings:'tnum' on,'lnum' on,'case' on}.w3m-xxsmall-bold{font-weight:700;font-size:10px;line-height:12px;letter-spacing:.02em;text-transform:uppercase}.w3m-xsmall-normal{font-weight:600;font-size:12px;line-height:14px;letter-spacing:-.03em}.w3m-small-thin{font-weight:500;font-size:14px;line-height:16px;letter-spacing:-.03em}.w3m-small-normal{font-weight:600;font-size:14px;line-height:16px;letter-spacing:-.03em}.w3m-medium-thin{font-weight:500;font-size:16px;line-height:20px;letter-spacing:-.03em}.w3m-medium-normal{font-weight:600;font-size:16px;line-height:20px;letter-spacing:-.03em}.w3m-medium-bold{font-weight:700;font-size:16px;line-height:20px;letter-spacing:-.03em}.w3m-large-bold{font-weight:600;font-size:20px;line-height:24px;letter-spacing:-.03em}:host(*){color:var(--w3m-color-fg-1)}.w3m-color-primary{color:var(--w3m-color-fg-1)}.w3m-color-secondary{color:var(--w3m-color-fg-2)}.w3m-color-tertiary{color:var(--w3m-color-fg-3)}.w3m-color-inverse{color:var(--w3m-color-fg-inverse)}.w3m-color-accnt{color:var(--w3m-color-fg-accent)}.w3m-color-error{color:var(--w3m-color-err)} ` ;
var Do = Object . defineProperty , To = Object . getOwnPropertyDescriptor , Fe = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? To ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && Do ( t2 , a2 , o3 ) , o3 ;
} ;
let pe = class extends s {
constructor ( ) {
super ( ... arguments ) , this . variant = "medium-normal" , this . color = "primary" ;
}
render ( ) {
const e2 = { "w3m-large-bold" : this . variant === "large-bold" , "w3m-medium-bold" : this . variant === "medium-bold" , "w3m-medium-normal" : this . variant === "medium-normal" , "w3m-medium-thin" : this . variant === "medium-thin" , "w3m-small-normal" : this . variant === "small-normal" , "w3m-small-thin" : this . variant === "small-thin" , "w3m-xsmall-normal" : this . variant === "xsmall-normal" , "w3m-xxsmall-bold" : this . variant === "xxsmall-bold" , "w3m-color-primary" : this . color === "primary" , "w3m-color-secondary" : this . color === "secondary" , "w3m-color-tertiary" : this . color === "tertiary" , "w3m-color-inverse" : this . color === "inverse" , "w3m-color-accnt" : this . color === "accent" , "w3m-color-error" : this . color === "error" } ;
return y ` <span class=" ${ o2 ( e2 ) } "><slot></slot></span> ` ;
}
} ;
pe . styles = [ u . globalCss , _o ] , Fe ( [ e$1 ( ) ] , pe . prototype , "variant" , 2 ) , Fe ( [ e$1 ( ) ] , pe . prototype , "color" , 2 ) , pe = Fe ( [ e$2 ( "w3m-text" ) ] , pe ) ;
const No = i$3 ` div{overflow:hidden;position:relative;border-radius:50%}div::after{content:'';position:absolute;inset:0;border-radius:50%;border:1px solid var(--w3m-color-overlay)}div img{width:100%;height:100%;object-fit:cover;object-position:center}svg{width:100%;height:100%}#token-placeholder-fill{fill:var(--w3m-color-bg-3)}#token-placeholder-dash{stroke:var(--w3m-color-overlay)} ` ;
var Ro = Object . defineProperty , Bo = Object . getOwnPropertyDescriptor , yt = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? Bo ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && Ro ( t2 , a2 , o3 ) , o3 ;
} ;
let Me = class extends s {
constructor ( ) {
super ( ... arguments ) , this . symbol = void 0 ;
}
render ( ) {
var e2 ;
const t2 = h . getTokenIcon ( ( e2 = this . symbol ) != null ? e2 : "" ) ;
return t2 ? y ` <div><img src=" ${ t2 } " alt=" ${ this . id } "></div> ` : g . TOKEN _PLACEHOLDER ;
}
} ;
Me . styles = [ u . globalCss , No ] , yt ( [ e$1 ( ) ] , Me . prototype , "symbol" , 2 ) , Me = yt ( [ e$2 ( "w3m-token-image" ) ] , Me ) ;
const Uo = i$3 ` button{transition:all .2s ease;width:100%;height:100%;border-radius:10px;display:flex;align-items:flex-start}button:hover{background-color:var(--w3m-color-overlay)}button>div{width:80px;padding:5px 0;display:flex;flex-direction:column;align-items:center}w3m-text{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}w3m-wallet-image{height:60px;width:60px;transition:all .2s ease;border-radius:15px;margin-bottom:5px}.w3m-sublabel{margin-top:2px} ` ;
var Ho = Object . defineProperty , Zo = Object . getOwnPropertyDescriptor , z = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? Zo ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && Ho ( t2 , a2 , o3 ) , o3 ;
} ;
let H2 = class extends s {
constructor ( ) {
super ( ... arguments ) , this . onClick = ( ) => null , this . name = "" , this . walletId = "" , this . label = void 0 , this . src = void 0 , this . installed = false , this . recent = false ;
}
sublabelTemplate ( ) {
return this . recent ? y ` <w3m-text class="w3m-sublabel" variant="xxsmall-bold" color="tertiary">RECENT</w3m-text> ` : this . installed ? y ` <w3m-text class="w3m-sublabel" variant="xxsmall-bold" color="tertiary">INSTALLED</w3m-text> ` : null ;
}
render ( ) {
var e2 ;
return y ` <button @click=" ${ this . onClick } "><div><w3m-wallet-image walletId=" ${ this . walletId } " .src=" ${ this . src } "></w3m-wallet-image><w3m-text variant="xsmall-normal"> ${ ( e2 = this . label ) != null ? e2 : h . getWalletName ( this . name , true ) } </w3m-text> ${ this . sublabelTemplate ( ) } </div></button> ` ;
}
} ;
H2 . styles = [ u . globalCss , Uo ] , z ( [ e$1 ( ) ] , H2 . prototype , "onClick" , 2 ) , z ( [ e$1 ( ) ] , H2 . prototype , "name" , 2 ) , z ( [ e$1 ( ) ] , H2 . prototype , "walletId" , 2 ) , z ( [ e$1 ( ) ] , H2 . prototype , "label" , 2 ) , z ( [ e$1 ( ) ] , H2 . prototype , "src" , 2 ) , z ( [ e$1 ( ) ] , H2 . prototype , "installed" , 2 ) , z ( [ e$1 ( ) ] , H2 . prototype , "recent" , 2 ) , H2 = z ( [ e$2 ( "w3m-wallet-button" ) ] , H2 ) ;
const Fo = i$3 ` div{overflow:hidden;position:relative;border-radius:inherit;width:100%;height:100%}svg{position:relative;width:100%;height:100%}div::after{content:'';position:absolute;inset:0;border-radius:inherit;border:1px solid var(--w3m-color-overlay)}div img{width:100%;height:100%;object-fit:cover;object-position:center}#wallet-placeholder-fill{fill:var(--w3m-color-bg-3)}#wallet-placeholder-dash{stroke:var(--w3m-color-overlay)} ` ;
var zo = Object . defineProperty , Vo = Object . getOwnPropertyDescriptor , ze = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? Vo ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && zo ( t2 , a2 , o3 ) , o3 ;
} ;
let ue = class extends s {
constructor ( ) {
super ( ... arguments ) , this . walletId = void 0 , this . src = void 0 ;
}
render ( ) {
var e2 ;
const t2 = h . getWalletId ( ( e2 = this . walletId ) != null ? e2 : "" ) , a2 = h . getWalletId ( t2 ) , n2 = this . src ? this . src : h . getWalletIcon ( a2 ) ;
return y ` ${ n2 . length ? y ` <div><img src=" ${ n2 } " alt=" ${ this . id } "></div> ` : g . WALLET _PLACEHOLDER } ` ;
}
} ;
ue . styles = [ u . globalCss , Fo ] , ze ( [ e$1 ( ) ] , ue . prototype , "walletId" , 2 ) , ze ( [ e$1 ( ) ] , ue . prototype , "src" , 2 ) , ue = ze ( [ e$2 ( "w3m-wallet-image" ) ] , ue ) ;
const Go = i$3 ` :host{all:initial}div{display:flex;align-items:center;background-color:var(--w3m-color-overlay);box-shadow:inset 0 0 0 1px var(--w3m-color-overlay);border-radius:10px;padding:4px 4px 4px 8px}div button{border-radius:16px;padding:4px 8px 4px 4px;height:auto;margin-left:10px;color:var(--w3m-color-fg-inverse);background-color:var(--w3m-color-fg-accent)}button::after{content:'';inset:0;position:absolute;background-color:transparent;border-radius:inherit;transition:background-color .2s ease;border:1px solid var(--w3m-color-overlay)}button:hover::after{background-color:var(--w3m-color-overlay)}w3m-avatar{margin-right:6px}w3m-button-big w3m-avatar{margin-left:-5px} ` ;
var qo = Object . defineProperty , Ko = Object . getOwnPropertyDescriptor , xt = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? Ko ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && qo ( t2 , a2 , o3 ) , o3 ;
} ;
let We = class extends s {
constructor ( ) {
super ( ) , this . balance = "hide" , h . rejectStandaloneButtonComponent ( ) ;
}
onOpen ( ) {
const { isStandalone : e2 } = a$2 . state ;
e2 || k$1 . open ( { route : "Account" } ) ;
}
accountTemplate ( ) {
return y ` <w3m-avatar></w3m-avatar><w3m-address-text></w3m-address-text> ` ;
}
render ( ) {
return this . balance === "show" ? y ` <div><w3m-balance></w3m-balance><button @click=" ${ this . onOpen } "> ${ this . accountTemplate ( ) } </button></div> ` : y ` <w3m-button-big @click=" ${ this . onOpen } "> ${ this . accountTemplate ( ) } </w3m-button-big> ` ;
}
} ;
We . styles = [ u . globalCss , Go ] , xt ( [ e$1 ( ) ] , We . prototype , "balance" , 2 ) , We = xt ( [ e$2 ( "w3m-account-button" ) ] , We ) ;
const Yo = i$3 ` button{display:flex;border-radius:10px;flex-direction:column;transition:background-color .2s ease;justify-content:center;padding:5px;width:100px}button:hover{background-color:var(--w3m-color-overlay)}button:disabled{pointer-events:none}w3m-network-image{width:32px;height:32px}w3m-text{margin-top:4px} ` ;
var Xo = Object . defineProperty , Qo = Object . getOwnPropertyDescriptor , Ve = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? Qo ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && Xo ( t2 , a2 , o3 ) , o3 ;
} ;
let ve = class extends s {
constructor ( ) {
super ( ) , this . chainId = "" , this . label = "" , this . unsubscribeNetwork = void 0 ;
const { selectedChain : e2 } = a$2 . state ;
this . chainId = e2 == null ? void 0 : e2 . id . toString ( ) , this . label = e2 == null ? void 0 : e2 . name , this . unsubscribeNetwork = a$2 . subscribe ( ( { selectedChain : t2 } ) => {
this . chainId = t2 == null ? void 0 : t2 . id . toString ( ) , this . label = t2 == null ? void 0 : t2 . name ;
} ) ;
}
disconnectedCallback ( ) {
var e2 ;
( e2 = this . unsubscribeNetwork ) == null || e2 . call ( this ) ;
}
onClick ( ) {
g$2 . push ( "SelectNetwork" ) ;
}
render ( ) {
const { chains : e2 } = a$2 . state , t2 = e2 && e2 . length > 1 ;
return y ` <button @click=" ${ this . onClick } " ?disabled=" ${ ! t2 } "><w3m-network-image chainId=" ${ l ( this . chainId ) } "></w3m-network-image><w3m-text variant="xsmall-normal" color="accent"> ${ this . label } </w3m-text></button> ` ;
}
} ;
ve . styles = [ u . globalCss , Yo ] , Ve ( [ t$1 ( ) ] , ve . prototype , "chainId" , 2 ) , Ve ( [ t$1 ( ) ] , ve . prototype , "label" , 2 ) , ve = Ve ( [ e$2 ( "w3m-account-network-button" ) ] , ve ) ;
const Jo = i$3 ` @keyframes slide{0%{background-position:0 0}100%{background-position:200px 0}}w3m-text{padding:1px 0}.w3m-loading{background:linear-gradient(270deg,var(--w3m-color-fg-1) 36.33%,var(--w3m-color-fg-3) 42.07%,var(--w3m-color-fg-1) 83.3%);background-size:200px 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation-name:slide;animation-duration:1.5s;animation-iteration-count:infinite;animation-timing-function:linear} ` ;
var ea = Object . defineProperty , ta = Object . getOwnPropertyDescriptor , ge = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? ta ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && ea ( t2 , a2 , o3 ) , o3 ;
} ;
let Y = class extends s {
constructor ( ) {
super ( ) , this . address = void 0 , this . name = void 0 , this . loading = true , this . variant = "button" , this . unsubscribeAccount = void 0 , this . address = a$2 . state . address , this . name = a$2 . state . profileName , this . loading = Boolean ( a$2 . state . profileLoading ) , this . unsubscribeAccount = a$2 . subscribe ( ( { address : e2 , profileName : t2 , profileLoading : a2 } ) => {
this . address = e2 , this . name = t2 , this . loading = Boolean ( a2 ) ;
} ) ;
}
disconnectedCallback ( ) {
var e2 ;
( e2 = this . unsubscribeAccount ) == null || e2 . call ( this ) ;
}
render ( ) {
var e2 ;
const t2 = this . variant === "button" , a2 = { "w3m-loading" : this . loading } ;
return y ` <w3m-text class=" ${ o2 ( a2 ) } " variant=" ${ t2 ? "medium-normal" : "large-bold" } " color=" ${ t2 ? "inverse" : "primary" } "> ${ this . name ? this . name : h . truncate ( ( e2 = this . address ) != null ? e2 : "" ) } </w3m-text> ` ;
}
} ;
Y . styles = [ u . globalCss , Jo ] , ge ( [ t$1 ( ) ] , Y . prototype , "address" , 2 ) , ge ( [ t$1 ( ) ] , Y . prototype , "name" , 2 ) , ge ( [ t$1 ( ) ] , Y . prototype , "loading" , 2 ) , ge ( [ e$1 ( ) ] , Y . prototype , "variant" , 2 ) , Y = ge ( [ e$2 ( "w3m-address-text" ) ] , Y ) ;
const oa = i$3 ` @keyframes scroll{0%{transform:translate3d(0,0,0)}100%{transform:translate3d(calc(-70px * 10),0,0)}}.w3m-slider{position:relative;overflow-x:hidden;padding:10px 0;margin:0 -20px}.w3m-slider::after,.w3m-slider::before{content:'';height:100%;width:50px;z-index:2;position:absolute;background:linear-gradient(to right,var(--w3m-color-bg-1) 0,transparent 100%);top:0}.w3m-slider::before{left:0}.w3m-slider::after{right:0;transform:rotateZ(180deg)}.w3m-track{display:flex;width:calc(70px * 20);animation:scroll 20s linear infinite}.w3m-action{padding:30px 0 10px 0;display:flex;justify-content:center;align-items:center;flex-direction:column}.w3m-action w3m-button-big:last-child{margin-top:10px}w3m-wallet-image{width:60px;height:60px;margin:0 5px;box-shadow:0 2px 4px -2px rgba(0,0,0,.12),0 4px 4px -2px rgba(0,0,0,.08);border-radius:15px} ` ;
var aa = Object . defineProperty , na = Object . getOwnPropertyDescriptor , ra = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? na ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && aa ( t2 , a2 , o3 ) , o3 ;
} ;
let Ge = class extends s {
onGoToQrcode ( ) {
g$2 . push ( "Qrcode" ) ;
}
onGoToGetWallet ( ) {
g$2 . push ( "GetWallet" ) ;
}
render ( ) {
const { previewWallets : e2 } = A$1 . state , t2 = e2 . length , a2 = [ ... e2 , ... e2 ] ;
return y ` <w3m-modal-header title="Connect your wallet" .onAction=" ${ this . onGoToQrcode } " .actionIcon=" ${ g . QRCODE _ICON } "></w3m-modal-header><w3m-modal-content> ${ t2 ? y ` <div class="w3m-slider"><div class="w3m-track"> ${ a2 . map ( ( { image _url : n2 } ) => y ` < w3m - wallet - image src = "${n2.lg}" > < / w 3 m - w a l l e t - i m a g e > ` ) } < / d i v > < / d i v > ` : n u l l } < d i v c l a s s = " w 3 m - a c t i o n " > < w 3 m - b u t t o n - b i g @ c l i c k = " $ { h . h a n d l e A n d r o i d L i n k i n g } " > < w 3 m - t e x t v a r i a n t = " m e d i u m - n o r m a l " c o l o r = " i n v e r s e " > S e l e c t W a l l e t < / w 3 m - t e x t > < / w 3 m - b u t t o n - b i g > < w 3 m - b u t t o n - b i g v a r i a n t = " s e c o n d a r y " @ c l i c k = " $ { t h i s . o n G o T o G e t W a l l e t } " > < w 3 m - t e x t v a r i a n t = " m e d i u m - n o r m a l " c o l o r = " a c c e n t " > I d o n ’ t h a v e a w a l l e t < / w 3 m - t e x t > < / w 3 m - b u t t o n - b i g > < / d i v > < / w 3 m - m o d a l - c o n t e n t > ` ;
}
} ;
Ge . styles = [ u . globalCss , oa ] , Ge = ra ( [ e$2 ( "w3m-android-wallet-selection" ) ] , Ge ) ;
const ia = i$3 ` @keyframes slide{0%{transform:translateX(-50px)}100%{transform:translateX(200px)}}.w3m-placeholder,img{border-radius:50%;box-shadow:inset 0 0 0 1px var(--w3m-color-overlay);display:block;position:relative;overflow:hidden!important;background-color:var(--w3m-color-av-1);background-image:radial-gradient(at 66% 77%,var(--w3m-color-av-2) 0,transparent 50%),radial-gradient(at 29% 97%,var(--w3m-color-av-3) 0,transparent 50%),radial-gradient(at 99% 86%,var(--w3m-color-av-4) 0,transparent 50%),radial-gradient(at 29% 88%,var(--w3m-color-av-5) 0,transparent 50%);transform:translateZ(0)}.w3m-loader{width:50px;height:100%;background:linear-gradient(270deg,transparent 0,rgba(255,255,255,.4) 30%,transparent 100%);animation-name:slide;animation-duration:1.5s;transform:translateX(-50px);animation-iteration-count:infinite;animation-timing-function:linear;animation-delay:.55s}.w3m-small{width:24px;height:24px}.w3m-medium{width:60px;height:60px} ` ;
var la = Object . defineProperty , sa = Object . getOwnPropertyDescriptor , we = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? sa ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && la ( t2 , a2 , o3 ) , o3 ;
} ;
let X = class extends s {
constructor ( ) {
super ( ) , this . address = void 0 , this . avatar = void 0 , this . loading = true , this . size = "small" , this . unsubscribeAccount = void 0 , this . address = a$2 . state . address , this . avatar = a$2 . state . profileAvatar , this . loading = Boolean ( a$2 . state . profileLoading ) , this . unsubscribeAccount = a$2 . subscribe ( ( { address : e2 , profileAvatar : t2 , profileLoading : a2 } ) => {
this . address = e2 , this . avatar = t2 , this . loading = Boolean ( a2 ) ;
} ) ;
}
disconnectedCallback ( ) {
var e2 ;
( e2 = this . unsubscribeAccount ) == null || e2 . call ( this ) ;
}
render ( ) {
const e2 = { "w3m-placeholder" : true , "w3m-small" : this . size === "small" , "w3m-medium" : this . size === "medium" } ;
return this . avatar ? y ` <img class=" ${ o2 ( e2 ) } " src=" ${ this . avatar } "> ` : this . address ? ( h . generateAvatarColors ( this . address ) , y ` <div class=" ${ o2 ( e2 ) } "> ${ this . loading ? y ` <div class="w3m-loader"></div> ` : null } </div> ` ) : null ;
}
} ;
X . styles = [ u . globalCss , ia ] , we ( [ t$1 ( ) ] , X . prototype , "address" , 2 ) , we ( [ t$1 ( ) ] , X . prototype , "avatar" , 2 ) , we ( [ t$1 ( ) ] , X . prototype , "loading" , 2 ) , we ( [ e$1 ( ) ] , X . prototype , "size" , 2 ) , X = we ( [ e$2 ( "w3m-avatar" ) ] , X ) ;
const ca = i$3 ` div{display:flex;align-items:center}w3m-token-image{width:28px;height:28px;margin-right:6px} ` ;
var da = Object . defineProperty , ha = Object . getOwnPropertyDescriptor , qe = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? ha ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && da ( t2 , a2 , o3 ) , o3 ;
} ;
let be = class extends s {
constructor ( ) {
var e2 , t2 ;
super ( ) , this . symbol = void 0 , this . amount = void 0 , this . unsubscribeAccount = void 0 , this . symbol = ( e2 = a$2 . state . balance ) == null ? void 0 : e2 . symbol , this . amount = ( t2 = a$2 . state . balance ) == null ? void 0 : t2 . amount , this . unsubscribeAccount = a$2 . subscribe ( ( { balance : a2 } ) => {
this . symbol = a2 == null ? void 0 : a2 . symbol , this . amount = a2 == null ? void 0 : a2 . amount ;
} ) ;
}
disconnectedCallback ( ) {
var e2 ;
( e2 = this . unsubscribeAccount ) == null || e2 . call ( this ) ;
}
render ( ) {
let e2 = "_._" ;
return this . amount === "0.0" && ( e2 = 0 ) , this . amount && this . amount . length > 6 && ( e2 = parseFloat ( this . amount ) . toFixed ( 3 ) ) , y ` <div><w3m-token-image symbol=" ${ l ( this . symbol ) } "></w3m-token-image><w3m-text variant="medium-normal" color="primary"> ${ e2 } ${ this . symbol } </w3m-text></div> ` ;
}
} ;
be . styles = [ u . globalCss , ca ] , qe ( [ t$1 ( ) ] , be . prototype , "symbol" , 2 ) , qe ( [ t$1 ( ) ] , be . prototype , "amount" , 2 ) , be = qe ( [ e$2 ( "w3m-balance" ) ] , be ) ;
const ma = i$3 ` :host{all:initial}svg{width:28px;height:20px;margin:-1px 3px 0 -5px}svg path{fill:var(--w3m-color-fg-inverse)}button:disabled svg path{fill:var(--w3m-color-fg-3)}w3m-spinner{margin:0 10px 0 0} ` ;
var pa = Object . defineProperty , ua = Object . getOwnPropertyDescriptor , Ae = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? ua ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && pa ( t2 , a2 , o3 ) , o3 ;
} ;
let ae = class extends s {
constructor ( ) {
super ( ) , this . loading = false , this . label = "Connect Wallet" , this . icon = "show" , this . modalUnsub = void 0 , h . rejectStandaloneButtonComponent ( ) , this . modalUnsub = k$1 . subscribe ( ( e2 ) => {
e2 . open && ( this . loading = true ) , e2 . open || ( this . loading = false ) ;
} ) ;
}
disconnectedCallback ( ) {
var e2 ;
( e2 = this . modalUnsub ) == null || e2 . call ( this ) ;
}
iconTemplate ( ) {
return this . icon === "show" ? g . WALLET _CONNECT _ICON : null ;
}
onClick ( ) {
a$2 . state . isConnected ? this . onDisconnect ( ) : this . onConnect ( ) ;
}
onConnect ( ) {
this . loading = true ;
const { enableNetworkView : e2 } = W . state , { chains : t2 , selectedChain : a2 } = a$2 . state , n2 = ( t2 == null ? void 0 : t2 . length ) && t2 . length > 1 ;
e2 || n2 && ! a2 ? k$1 . open ( { route : "SelectNetwork" } ) : k$1 . open ( { route : "ConnectWallet" } ) ;
}
onDisconnect ( ) {
L . client ( ) . disconnect ( ) , a$2 . resetAccount ( ) ;
}
render ( ) {
return y ` <w3m-button-big .disabled=" ${ this . loading } " @click=" ${ this . onClick } "> ${ this . loading ? y ` <w3m-spinner></w3m-spinner><w3m-text variant="medium-normal" color="accent">Connecting...</w3m-text> ` : y ` ${ this . iconTemplate ( ) } <w3m-text variant="medium-normal" color="inverse"> ${ this . label } </w3m-text> ` } </w3m-button-big> ` ;
}
} ;
ae . styles = [ u . globalCss , ma ] , Ae ( [ t$1 ( ) ] , ae . prototype , "loading" , 2 ) , Ae ( [ e$1 ( ) ] , ae . prototype , "label" , 2 ) , Ae ( [ e$1 ( ) ] , ae . prototype , "icon" , 2 ) , ae = Ae ( [ e$2 ( "w3m-connect-button" ) ] , ae ) ;
var va = Object . defineProperty , ga = Object . getOwnPropertyDescriptor , fe = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? ga ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && va ( t2 , a2 , o3 ) , o3 ;
} ;
let ne = class extends s {
constructor ( ) {
super ( ) , this . isConnected = false , this . label = "Connect Wallet" , this . icon = "show" , this . balance = "hide" , this . unsubscribeAccount = void 0 , h . rejectStandaloneButtonComponent ( ) , this . isConnected = a$2 . state . isConnected , this . unsubscribeAccount = a$2 . subscribe ( ( { isConnected : e2 } ) => {
this . isConnected = e2 ;
} ) ;
}
disconnectedCallback ( ) {
var e2 ;
( e2 = this . unsubscribeAccount ) == null || e2 . call ( this ) ;
}
render ( ) {
const { enableAccountView : e2 } = W . state ;
return this . isConnected && e2 ? y ` <w3m-account-button balance=" ${ l ( this . balance ) } "></w3m-account-button> ` : y ` <w3m-connect-button label=" ${ this . isConnected ? "Disconnect" : l ( this . label ) } " icon=" ${ l ( this . icon ) } "></w3m-connect-button> ` ;
}
} ;
fe ( [ t$1 ( ) ] , ne . prototype , "isConnected" , 2 ) , fe ( [ e$1 ( ) ] , ne . prototype , "label" , 2 ) , fe ( [ e$1 ( ) ] , ne . prototype , "icon" , 2 ) , fe ( [ e$1 ( ) ] , ne . prototype , "balance" , 2 ) , ne = fe ( [ e$2 ( "w3m-core-button" ) ] , ne ) ;
const R = { allowedExplorerListings ( e2 ) {
const { explorerAllowList : t2 , explorerDenyList : a2 } = W . state ;
let n2 = [ ... e2 ] ;
return t2 && ( n2 = n2 . filter ( ( o3 ) => t2 . includes ( o3 . id ) ) ) , a2 && ( n2 = n2 . filter ( ( o3 ) => ! a2 . includes ( o3 . id ) ) ) , n2 ;
} , walletsWithInjected ( e2 ) {
let t2 = [ ... e2 ? ? [ ] ] ;
if ( window . ethereum ) {
const a2 = h . getWalletName ( "" ) ;
t2 = t2 . filter ( ( { name : n2 } ) => ! h . caseSafeIncludes ( n2 , a2 ) ) ;
}
return t2 ;
} , connectorWallets ( ) {
const { isStandalone : e2 } = a$2 . state ;
if ( e2 )
return [ ] ;
let t2 = L . client ( ) . getConnectors ( ) ;
return ! window . ethereum && d$2 . isMobile ( ) && ( t2 = t2 . filter ( ( { id : a2 } ) => a2 !== "injected" && a2 !== Z . metaMask ) ) , t2 ;
} , walletTemplatesWithRecent ( e2 , t2 ) {
let a2 = [ ... e2 ] ;
if ( t2 ) {
const n2 = h . getRecentWallet ( ) ;
a2 = a2 . filter ( ( o3 ) => ! o3 . values . includes ( n2 == null ? void 0 : n2 . name ) ) , a2 . splice ( 1 , 0 , t2 ) ;
}
return a2 ;
} , deduplicateExplorerListingsFromConnectors ( e2 ) {
const { isStandalone : t2 } = a$2 . state ;
if ( t2 )
return e2 ;
const a2 = L . client ( ) . getConnectors ( ) . map ( ( { name : n2 } ) => n2 . toUpperCase ( ) ) ;
return e2 . filter ( ( { name : n2 } ) => ! a2 . includes ( n2 . toUpperCase ( ) ) ) ;
} } , wa = i$3 ` .w3m-grid{display:grid;grid-template-columns:repeat(4,80px);justify-content:space-between}.w3m-desktop-title,.w3m-mobile-title{display:flex;align-items:center}.w3m-mobile-title{justify-content:space-between;margin-bottom:20px;margin-top:-10px}.w3m-desktop-title{margin-bottom:10px;padding:0 10px}.w3m-subtitle{display:flex;align-items:center}.w3m-subtitle:last-child path{fill:var(--w3m-color-fg-3)}.w3m-desktop-title svg,.w3m-mobile-title svg{margin-right:6px}.w3m-desktop-title path,.w3m-mobile-title path{fill:var(--w3m-color-fg-accent)} ` ;
var ba = Object . defineProperty , fa = Object . getOwnPropertyDescriptor , ya = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? fa ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && ba ( t2 , a2 , o3 ) , o3 ;
} ;
let Ke = class extends s {
onDesktopWallet ( e2 ) {
g$2 . push ( "DesktopConnector" , { DesktopConnector : e2 } ) ;
}
onInjectedWallet ( ) {
g$2 . push ( "InjectedConnector" ) ;
}
onInstallConnector ( ) {
g$2 . push ( "InstallConnector" , { InstallConnector : { id : "metaMask" , name : "MetaMask" , isMobile : true , url : "https://metamask.io" } } ) ;
}
async onConnectorWallet ( e2 ) {
window . ethereum ? e2 === "injected" || e2 === Z . metaMask ? this . onInjectedWallet ( ) : await h . handleConnectorConnection ( e2 ) : this . onInstallConnector ( ) ;
}
desktopWalletsTemplate ( ) {
const { desktopWallets : e2 } = W . state ;
return e2 == null ? void 0 : e2 . map ( ( { id : t2 , name : a2 , links : { universal : n2 , native : o3 } } ) => y ` <w3m-wallet-button walletId=" ${ t2 } " name=" ${ a2 } " .onClick=" ${ ( ) => this . onDesktopWallet ( { name : a2 , walletId : t2 , universal : n2 , native : o3 } )}"></w3m-wallet-button> ` ) ;
}
previewWalletsTemplate ( ) {
let e2 = R . allowedExplorerListings ( A$1 . state . previewWallets ) ;
return e2 = R . deduplicateExplorerListingsFromConnectors ( e2 ) , e2 . map ( ( { name : t2 , desktop : { universal : a2 , native : n2 } , homepage : o3 , image _url : r2 , id : i2 } ) => y ` <w3m-wallet-button src=" ${ r2 . lg } " name=" ${ t2 } " .onClick=" ${ ( ) => this . onDesktopWallet ( { walletId : i2 , name : t2 , native : n2 , universal : a2 || o3 , icon : r2 . lg } )}"></w3m-wallet-button> ` ) ;
}
connectorWalletsTemplate ( ) {
return R . connectorWallets ( ) . map ( ( { id : e2 , name : t2 , ready : a2 } ) => y ` <w3m-wallet-button .installed=" ${ [ "injected" , "metaMask" ] . includes ( e2 ) && a2 } " name=" ${ t2 } " walletId=" ${ e2 } " .onClick=" ${ async ( ) => this . onConnectorWallet ( e2 ) } "></w3m-wallet-button> ` ) ;
}
recentWalletTemplate ( ) {
const e2 = h . getRecentWallet ( ) ;
if ( ! e2 )
return ;
const { id : t2 , name : a2 , links : n2 , image : o3 } = e2 ;
return y ` <w3m-wallet-button .recent=" ${ true } " name=" ${ a2 } " walletId=" ${ l ( t2 ) } " src=" ${ l ( o3 ) } " .onClick=" ${ ( ) => this . onDesktopWallet ( { name : a2 , walletId : t2 , universal : n2 == null ? void 0 : n2 . universal , native : n2 == null ? void 0 : n2 . native , icon : o3 } )}"></w3m-wallet-button> ` ;
}
render ( ) {
const { standaloneUri : e2 } = a$2 . state , t2 = this . desktopWalletsTemplate ( ) , a2 = this . previewWalletsTemplate ( ) , n2 = this . connectorWalletsTemplate ( ) , o3 = this . recentWalletTemplate ( ) , r2 = [ ... t2 ? ? [ ] , ... a2 ] , i2 = [ ... n2 , ... r2 ] , c2 = R . walletTemplatesWithRecent ( i2 , o3 ) , m2 = R . walletTemplatesWithRecent ( r2 , o3 ) , s2 = e2 ? m2 : c2 , d3 = s2 . length > 4 ;
let v2 = [ ] ;
d3 ? v2 = s2 . filter ( ( C2 ) => ! C2 . values . includes ( Z . coinbaseWallet ) ) . slice ( 0 , 3 ) : v2 = s2 ;
const O = Boolean ( v2 . length ) ;
return y ` <w3m-modal-header border=" ${ true } " title="Connect your wallet" .onAction=" ${ h . handleUriCopy } " .actionIcon=" ${ g . COPY _ICON } "></w3m-modal-header><w3m-modal-content><div class="w3m-mobile-title"><div class="w3m-subtitle"> ${ g . MOBILE _ICON } <w3m-text variant="small-normal" color="accent">Mobile</w3m-text></div><div class="w3m-subtitle"> ${ g . SCAN _ICON } <w3m-text variant="small-normal" color="secondary">Scan with your wallet</w3m-text></div></div><w3m-walletconnect-qr></w3m-walletconnect-qr></w3m-modal-content> ${ O ? y ` <w3m-modal-footer><div class="w3m-desktop-title"> ${ g . DESKTOP _ICON } <w3m-text variant="small-normal" color="accent">Desktop</w3m-text></div><div class="w3m-grid"> ${ v2 } ${ d3 ? y ` <w3m-view-all-wallets-button></w3m-view-all-wallets-button> ` : null } </div></w3m-modal-footer> ` : null } ` ;
}
} ;
Ke . styles = [ u . globalCss , wa ] , Ke = ya ( [ e$2 ( "w3m-desktop-wallet-selection" ) ] , Ke ) ;
const xa = i$3 ` div{background-color:var(--w3m-color-bg-2);padding:10px 20px 15px 20px;border-top:1px solid var(--w3m-color-bg-3);text-align:center}a{color:var(--w3m-color-fg-accent);text-decoration:none;transition:opacity .2s ease-in-out}a:hover{opacity:.8} ` ;
var Ca = Object . defineProperty , ka = Object . getOwnPropertyDescriptor , $a = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? ka ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && Ca ( t2 , a2 , o3 ) , o3 ;
} ;
let Ye = class extends s {
render ( ) {
const { termsOfServiceUrl : e2 , privacyPolicyUrl : t2 } = W . state ;
return e2 ? ? t2 ? y ` <div><w3m-text variant="small-normal" color="secondary">By connecting your wallet, you agree to our<br> ${ e2 ? y ` <a href=" ${ e2 } " target="_blank" rel="noopener noreferrer">Terms of Service</a> ` : null } ${ e2 && t2 ? "and" : null } ${ t2 ? y ` <a href=" ${ t2 } " target="_blank" rel="noopener noreferrer">Privacy Policy</a> ` : null } </w3m-text></div> ` : null ;
}
} ;
Ye . styles = [ u . globalCss , xa ] , Ye = $a ( [ e$2 ( "w3m-legal-notice" ) ] , Ye ) ;
const Oa = i$3 ` .w3m-grid{display:grid;grid-template-columns:repeat(4,80px);margin:0 -10px;justify-content:space-between;row-gap:10px} ` ;
var Ia = Object . defineProperty , Ea = Object . getOwnPropertyDescriptor , Ma = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? Ea ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && Ia ( t2 , a2 , o3 ) , o3 ;
} ;
let Xe = class extends s {
onGoToQrcode ( ) {
g$2 . push ( "Qrcode" ) ;
}
async onConnectorWallet ( e2 ) {
await h . handleConnectorConnection ( e2 ) ;
}
mobileWalletsTemplate ( ) {
const { mobileWallets : e2 } = W . state , t2 = R . walletsWithInjected ( e2 ) ;
if ( t2 . length )
return t2 . map ( ( { id : a2 , name : n2 , links : { universal : o3 , native : r2 } } ) => y ` <w3m-wallet-button name=" ${ n2 } " walletId=" ${ a2 } " .onClick=" ${ async ( ) => h . handleMobileLinking ( { links : { native : r2 , universal : o3 } , name: n2, id: a2 })}"></w3m-wallet-button> ` ) ;
}
previewWalletsTemplate ( ) {
const { previewWallets : e2 } = A$1 . state ;
let t2 = R . walletsWithInjected ( e2 ) ;
return t2 = R . allowedExplorerListings ( t2 ) , t2 = R . deduplicateExplorerListingsFromConnectors ( t2 ) , t2 . map ( ( { image _url : a2 , name : n2 , mobile : { native : o3 , universal : r2 } , id : i2 } ) => y ` <w3m-wallet-button name=" ${ n2 } " src=" ${ a2 . lg } " .onClick=" ${ async ( ) => h . handleMobileLinking ( { links : { native : o3 , universal : r2 } , name: n2, id: i2, image: a2.lg })}"></w3m-wallet-button> ` ) ;
}
connectorWalletsTemplate ( ) {
let e2 = R . connectorWallets ( ) ;
return window . ethereum || ( e2 = e2 . filter ( ( { id : t2 } ) => t2 !== "injected" && t2 !== Z . metaMask ) ) , e2 . map ( ( { name : t2 , id : a2 , ready : n2 } ) => y ` <w3m-wallet-button .installed=" ${ [ "injected" , "metaMask" ] . includes ( a2 ) && n2 } " name=" ${ t2 } " walletId=" ${ a2 } " .onClick=" ${ async ( ) => this . onConnectorWallet ( a2 ) } "></w3m-wallet-button> ` ) ;
}
recentWalletTemplate ( ) {
const e2 = h . getRecentWallet ( ) ;
if ( ! e2 )
return ;
const { id : t2 , name : a2 , links : n2 , image : o3 } = e2 ;
return y ` <w3m-wallet-button .recent=" ${ true } " name=" ${ a2 } " walletId=" ${ l ( t2 ) } " src=" ${ l ( o3 ) } " .onClick=" ${ async ( ) => h . handleMobileLinking ( { name : a2 , id : t2 , links : n2 , image : o3 } )}"></w3m-wallet-button> ` ;
}
render ( ) {
const { standaloneUri : e2 } = a$2 . state , t2 = this . connectorWalletsTemplate ( ) , a2 = this . mobileWalletsTemplate ( ) , n2 = this . previewWalletsTemplate ( ) , o3 = this . recentWalletTemplate ( ) , r2 = a2 ? ? n2 , i2 = [ ... t2 , ... r2 ] , c2 = R . walletTemplatesWithRecent ( i2 , o3 ) , m2 = R . walletTemplatesWithRecent ( r2 , o3 ) , s2 = e2 ? m2 : c2 , d3 = s2 . length > 8 ;
let v2 = [ ] ;
d3 ? v2 = s2 . filter ( ( E2 ) => ! E2 . values . includes ( Z . coinbaseWallet ) ) . slice ( 0 , 7 ) : v2 = s2 ;
const O = v2 . slice ( 0 , 4 ) , C2 = v2 . slice ( 4 , 8 ) , N2 = Boolean ( v2 . length ) ;
return y ` <w3m-modal-header title="Connect your wallet" .onAction=" ${ this . onGoToQrcode } " .actionIcon=" ${ g . QRCODE _ICON } "></w3m-modal-header> ${ N2 ? y ` <w3m-modal-content><div class="w3m-grid"> ${ O } ${ C2 . length ? y ` ${ C2 } ${ d3 ? y ` <w3m-view-all-wallets-button></w3m-view-all-wallets-button> ` : null } ` : null } </div></w3m-modal-content> ` : null } ` ;
}
} ;
Xe . styles = [ u . globalCss , Oa ] , Xe = Ma ( [ e$2 ( "w3m-mobile-wallet-selection" ) ] , Xe ) ;
const Wa = i$3 ` :host{all:initial}.w3m-overlay{inset:0;position:fixed;z-index:var(--w3m-modal-z-index);overflow:hidden;display:flex;justify-content:center;align-items:center;background-color:rgba(0,0,0,.3);opacity:0;pointer-events:none}.w3m-open{pointer-events:auto}.w3m-container{position:relative;max-width:360px;width:100%;outline:0}.w3m-card{width:100%;position:relative;transform:translateY(5px);border-radius:30px;overflow:hidden;box-shadow:0 6px 14px -6px rgba(10,16,31,.12),0 10px 32px -4px rgba(10,16,31,.1),0 0 0 1px var(--w3m-color-overlay);background-color:var(--w3m-color-bg-1);color:var(--w3m-color-fg-1)}@media(max-width:600px){.w3m-container{max-width:440px}.w3m-card{border-radius:40px 40px 0 0}.w3m-overlay{align-items:flex-end}}@media(max-width:600px){.w3m-container{max-width:440px}.w3m-card{transform:translateY(5px);border-radius:40px 40px 0 0}.w3m-overlay{align-items:flex-end}} ` ;
var Aa = Object . defineProperty , La = Object . getOwnPropertyDescriptor , Le = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? La ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && Aa ( t2 , a2 , o3 ) , o3 ;
} ;
let re = class extends s {
constructor ( ) {
if ( super ( ) , this . open = false , this . preload = true , this . activeChainId = void 0 , this . unsubscribeModal = void 0 , this . unsubscribeConfig = void 0 , this . unwatchAccount = void 0 , this . unwatchNetwork = void 0 , this . abortController = void 0 , u . setTheme ( ) , this . unsubscribeConfig = W . subscribe ( u . setTheme ) , this . unsubscribeModal = k$1 . subscribe ( ( e2 ) => {
e2 . open ? this . onOpenModalEvent ( ) : this . onCloseModalEvent ( ) ;
} ) , ! a$2 . state . isStandalone ) {
a$2 . getAccount ( ) ;
const e2 = a$2 . getSelectedChain ( ) ;
this . activeChainId = e2 == null ? void 0 : e2 . id , this . fetchEnsProfile ( ) , this . fetchBalance ( ) , this . unwatchNetwork = L . client ( ) . watchNetwork ( ( t2 ) => {
const a2 = t2 . chain ;
a2 && this . activeChainId !== a2 . id && ( a$2 . setSelectedChain ( a2 ) , this . activeChainId = a2 . id , a$2 . resetBalance ( ) , this . fetchBalance ( ) ) ;
} ) , this . unwatchAccount = L . client ( ) . watchAccount ( ( t2 ) => {
const { address : a2 } = a$2 . state ;
t2 . address !== a2 && ( this . fetchEnsProfile ( t2 . address ) , this . fetchBalance ( t2 . address ) ) , a$2 . setAddress ( t2 . address ) , a$2 . setIsConnected ( t2 . isConnected ) ;
} ) ;
}
this . preloadModalData ( ) ;
}
disconnectedCallback ( ) {
var e2 , t2 , a2 , n2 ;
( e2 = this . unsubscribeModal ) == null || e2 . call ( this ) , ( t2 = this . unsubscribeConfig ) == null || t2 . call ( this ) , ( a2 = this . unwatchAccount ) == null || a2 . call ( this ) , ( n2 = this . unwatchNetwork ) == null || n2 . call ( this ) ;
}
get overlayEl ( ) {
return h . getShadowRootElement ( this , ".w3m-overlay" ) ;
}
get containerEl ( ) {
return h . getShadowRootElement ( this , ".w3m-container" ) ;
}
async fetchEnsProfile ( e2 ) {
try {
if ( W . state . enableAccountView ) {
a$2 . setProfileLoading ( true ) ;
const t2 = e2 ? ? a$2 . state . address , { id : a2 } = L . client ( ) . getDefaultChain ( ) ;
if ( t2 && a2 === 1 ) {
const [ n2 , o3 ] = await Promise . all ( [ L . client ( ) . fetchEnsName ( { address : t2 , chainId : 1 } ) , L . client ( ) . fetchEnsAvatar ( { address : t2 , chainId : 1 } ) ] ) ;
o3 && await h . preloadImage ( o3 ) , a$2 . setProfileName ( n2 ) , a$2 . setProfileAvatar ( o3 ) ;
}
}
} catch ( t2 ) {
console . error ( t2 ) , P$1 . openToast ( h . getErrorMessage ( t2 ) , "error" ) ;
} finally {
a$2 . setProfileLoading ( false ) ;
}
}
async fetchBalance ( e2 ) {
try {
if ( W . state . enableAccountView ) {
a$2 . setBalanceLoading ( true ) ;
const t2 = e2 ? ? a$2 . state . address ;
if ( t2 ) {
const a2 = await L . client ( ) . fetchBalance ( { address : t2 } ) ;
a$2 . setBalance ( { amount : a2 . formatted , symbol : a2 . symbol } ) ;
}
}
} catch ( t2 ) {
console . error ( t2 ) , P$1 . openToast ( h . getErrorMessage ( t2 ) , "error" ) ;
} finally {
a$2 . setBalanceLoading ( false ) ;
}
}
toggleBodyScroll ( e2 ) {
if ( document . querySelector ( "body" ) )
if ( e2 ) {
const t2 = document . getElementById ( "w3m-styles" ) ;
t2 == null ? void 0 : t2 . remove ( ) ;
} else
document . head . insertAdjacentHTML ( "beforeend" , '<style id="w3m-styles">html,body{touch-action:none;overflow:hidden;overscroll-behavior:contain;}</style>' ) ;
}
async preloadExplorerData ( ) {
var e2 ;
const { standaloneChains : t2 , chains : a2 , walletConnectVersion : n2 } = a$2 . state , o3 = t2 == null ? void 0 : t2 . join ( "," ) ;
await Promise . all ( [ A$1 . getPreviewWallets ( { page : 1 , entries : 10 , chains : o3 , device : d$2 . isMobile ( ) ? "mobile" : "desktop" , version : n2 } ) , A$1 . getRecomendedWallets ( ) ] ) , a$2 . setIsDataLoaded ( true ) ;
const { previewWallets : r2 , recomendedWallets : i2 } = A$1 . state , c2 = ( e2 = a2 == null ? void 0 : a2 . map ( ( s2 ) => h . getChainIcon ( s2 . id ) ) ) != null ? e2 : [ ] , m2 = [ ... r2 , ... i2 ] . map ( ( s2 ) => s2 . image _url . lg ) ;
await this . preloadExplorerImages ( [ ... c2 , ... m2 ] ) ;
}
async preloadExplorerImages ( e2 ) {
e2 . length && await Promise . all ( e2 . map ( async ( t2 ) => h . preloadImage ( t2 ) ) ) ;
}
async preloadCustomImages ( ) {
const e2 = h . getCustomImageUrls ( ) ;
e2 . length && await Promise . all ( e2 . map ( async ( t2 ) => h . preloadImage ( t2 ) ) ) ;
}
async preloadConnectorImages ( ) {
if ( ! a$2 . state . isStandalone ) {
const e2 = h . getConnectorImageUrls ( ) ;
e2 . length && await Promise . all ( e2 . map ( async ( t2 ) => h . preloadImage ( t2 ) ) ) ;
}
}
async preloadModalData ( ) {
try {
this . preload && ( this . preload = false , await Promise . all ( [ this . preloadExplorerData ( ) , this . preloadCustomImages ( ) , this . preloadConnectorImages ( ) ] ) ) ;
} catch ( e2 ) {
console . error ( e2 ) , P$1 . openToast ( "Failed preloading" , "error" ) ;
}
}
onCloseModal ( e2 ) {
e2 . target === e2 . currentTarget && k$1 . close ( ) ;
}
async onOpenModalEvent ( ) {
await this . preloadModalData ( ) , this . toggleBodyScroll ( false ) ;
const e2 = 0.2 ;
await animate ( this . containerEl , { y : 0 } , { duration : 0 } ) . finished , animate ( this . overlayEl , { opacity : [ 0 , 1 ] } , { duration : 0.2 , delay : e2 } ) , animate ( this . containerEl , h . isMobileAnimation ( ) ? { y : [ "50vh" , 0 ] } : { scale : [ 0.98 , 1 ] } , { scale : { easing : spring ( { velocity : 0.4 } ) } , y : { easing : spring ( { mass : 0.5 } ) } , delay : e2 } ) , this . addKeyboardEvents ( ) , this . open = true ;
}
async onCloseModalEvent ( ) {
this . toggleBodyScroll ( true ) , this . removeKeyboardEvents ( ) , await Promise . all ( [ animate ( this . containerEl , h . isMobileAnimation ( ) ? { y : [ 0 , "50vh" ] } : { scale : [ 1 , 0.98 ] } , { scale : { easing : spring ( { velocity : 0 } ) } , y : { easing : spring ( { mass : 0.5 } ) } } ) . finished , animate ( this . overlayEl , { opacity : [ 1 , 0 ] } , { duration : 0.2 } ) . finished ] ) , this . open = false ;
}
addKeyboardEvents ( ) {
this . abortController = new AbortController ( ) , window . addEventListener ( "keydown" , ( e2 ) => {
var t2 ;
e2 . key === "Escape" ? k$1 . close ( ) : e2 . key === "Tab" && ( ( t2 = e2 . target ) != null && t2 . tagName . includes ( "W3M-" ) || this . containerEl . focus ( ) ) ;
} , this . abortController ) , this . containerEl . focus ( ) ;
}
removeKeyboardEvents ( ) {
var e2 ;
( e2 = this . abortController ) == null || e2 . abort ( ) , this . abortController = void 0 ;
}
render ( ) {
const e2 = { "w3m-overlay" : true , "w3m-open" : this . open } ;
return y ` <div id="w3m-modal" class=" ${ o2 ( e2 ) } " @click=" ${ this . onCloseModal } " role="alertdialog" aria-modal="true"><div class="w3m-container" tabindex="0"> ${ this . open ? y ` <w3m-modal-backcard></w3m-modal-backcard><div class="w3m-card"><w3m-modal-router></w3m-modal-router><w3m-modal-toast></w3m-modal-toast></div> ` : null } </div></div> ` ;
}
} ;
re . styles = [ u . globalCss , Wa ] , Le ( [ t$1 ( ) ] , re . prototype , "open" , 2 ) , Le ( [ t$1 ( ) ] , re . prototype , "preload" , 2 ) , Le ( [ t$1 ( ) ] , re . prototype , "activeChainId" , 2 ) , re = Le ( [ e$2 ( "w3m-modal" ) ] , re ) ;
const ja = i$3 ` :host{all:initial}w3m-network-image{margin-left:-6px;margin-right:6px;width:28px;height:28px} ` ;
var Sa = Object . defineProperty , Pa = Object . getOwnPropertyDescriptor , je = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? Pa ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && Sa ( t2 , a2 , o3 ) , o3 ;
} ;
let ie = class extends s {
constructor ( ) {
super ( ) , this . chainId = "" , this . label = "" , this . wrongNetwork = false , this . unsubscribeNetwork = void 0 , h . rejectStandaloneButtonComponent ( ) ;
const { selectedChain : e2 } = a$2 . state ;
this . onSetChainData ( e2 ) , this . unsubscribeNetwork = a$2 . subscribe ( ( { selectedChain : t2 } ) => {
this . onSetChainData ( t2 ) ;
} ) ;
}
disconnectedCallback ( ) {
var e2 ;
( e2 = this . unsubscribeNetwork ) == null || e2 . call ( this ) ;
}
onSetChainData ( e2 ) {
if ( e2 ) {
const { chains : t2 } = a$2 . state , a2 = t2 == null ? void 0 : t2 . map ( ( n2 ) => n2 . id ) ;
this . chainId = e2 . id . toString ( ) , this . wrongNetwork = ! ( a2 != null && a2 . includes ( e2 . id ) ) , this . label = this . wrongNetwork ? "Wrong Network" : e2 . name ;
}
}
onClick ( ) {
k$1 . open ( { route : "SelectNetwork" } ) ;
}
render ( ) {
var e2 ;
const { chains : t2 } = a$2 . state , a2 = t2 && t2 . length > 1 ;
return y ` <w3m-button-big @click=" ${ this . onClick } " ?disabled=" ${ ! a2 } "><w3m-network-image chainId=" ${ l ( this . chainId ) } "></w3m-network-image><w3m-text variant="medium-normal" color="inverse"> ${ ( e2 = this . label ) != null && e2 . length ? this . label : "Select Network" } </w3m-text></w3m-button-big> ` ;
}
} ;
ie . styles = [ u . globalCss , ja ] , je ( [ t$1 ( ) ] , ie . prototype , "chainId" , 2 ) , je ( [ t$1 ( ) ] , ie . prototype , "label" , 2 ) , je ( [ t$1 ( ) ] , ie . prototype , "wrongNetwork" , 2 ) , ie = je ( [ e$2 ( "w3m-network-switch" ) ] , ie ) ;
const _a = i$3 ` button{display:flex;flex-direction:column;padding:5px 10px;border-radius:10px;transition:background-color .2s ease;height:100%;justify-content:flex-start}.w3m-icons{width:60px;height:60px;display:flex;flex-wrap:wrap;padding:7px;border-radius:15px;justify-content:space-between;align-items:center;margin-bottom:5px;background-color:var(--w3m-color-bg-2);box-shadow:inset 0 0 0 1px var(--w3m-color-overlay)}button:hover{background-color:var(--w3m-color-overlay)}.w3m-icons img{width:21px;height:21px;object-fit:cover;object-position:center;border-radius:8px;border:1px solid var(--w3m-color-overlay)}.w3m-icons svg{width:21px;height:21px}.w3m-icons img:nth-child(1),.w3m-icons img:nth-child(2),.w3m-icons svg:nth-child(1),.w3m-icons svg:nth-child(2){margin-bottom:4px}w3m-text{width:100%;text-align:center}#wallet-placeholder-fill{fill:var(--w3m-color-bg-3)}#wallet-placeholder-dash{stroke:var(--w3m-color-overlay)} ` ;
var Da = Object . defineProperty , Ta = Object . getOwnPropertyDescriptor , Na = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? Ta ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && Da ( t2 , a2 , o3 ) , o3 ;
} ;
let Qe = class extends s {
onClick ( ) {
g$2 . push ( "WalletExplorer" ) ;
}
render ( ) {
const { previewWallets : e2 } = A$1 . state , t2 = h . getCustomWallets ( ) , a2 = [ ... e2 , ... t2 ] . reverse ( ) . slice ( 0 , 4 ) ;
return y ` <button @click=" ${ this . onClick } "><div class="w3m-icons"> ${ a2 . map ( ( n2 ) => {
var o3 ;
const r2 = ( o3 = n2 . image _url ) == null ? void 0 : o3 . lg ;
if ( r2 )
return y ` <img src=" ${ r2 } "> ` ;
const i2 = h . getWalletId ( n2 . id ) , c2 = h . getWalletIcon ( i2 ) ;
return c2 ? y ` <img src=" ${ c2 } "> ` : g . WALLET _PLACEHOLDER ;
} ) } < / d i v > < w 3 m - t e x t v a r i a n t = " x s m a l l - n o r m a l " > V i e w A l l < / w 3 m - t e x t > < / b u t t o n > ` ;
}
} ;
Qe . styles = [ u . globalCss , _a ] , Qe = Na ( [ e$2 ( "w3m-view-all-wallets-button" ) ] , Qe ) ;
const Ra = i$3 ` .w3m-qr-container{width:100%;display:flex;justify-content:center;align-items:center;aspect-ratio:1/1} ` ;
var Ba = Object . defineProperty , Ua = Object . getOwnPropertyDescriptor , Ct = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? Ua ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && Ba ( t2 , a2 , o3 ) , o3 ;
} ;
let Se = class extends s {
constructor ( ) {
super ( ) , this . uri = "" , this . createConnectionAndWait ( ) ;
}
get overlayEl ( ) {
return h . getShadowRootElement ( this , ".w3m-qr-container" ) ;
}
async createConnectionAndWait ( e2 = 0 ) {
var t2 ;
try {
const { standaloneUri : a2 } = a$2 . state ;
a2 ? setTimeout ( ( ) => this . uri = a2 , 0 ) : ( await L . client ( ) . connectWalletConnect ( ( n2 ) => this . uri = n2 , ( t2 = a$2 . state . selectedChain ) == null ? void 0 : t2 . id ) , k$1 . close ( ) ) ;
} catch ( a2 ) {
console . error ( a2 ) , P$1 . openToast ( "Connection request declined" , "error" ) , e2 < 2 && this . createConnectionAndWait ( e2 + 1 ) ;
}
}
render ( ) {
return y ` <div class="w3m-qr-container"> ${ this . uri ? y ` <w3m-qrcode size=" ${ this . overlayEl . offsetWidth } " uri=" ${ this . uri } "></w3m-qrcode> ` : y ` <w3m-spinner></w3m-spinner> ` } </div> ` ;
}
} ;
Se . styles = [ u . globalCss , Ra ] , Ct ( [ t$1 ( ) ] , Se . prototype , "uri" , 2 ) , Se = Ct ( [ e$2 ( "w3m-walletconnect-qr" ) ] , Se ) ;
const Ha = i$3 ` .w3m-profile{display:flex;justify-content:space-between;align-items:flex-start;padding-top:20px}.w3m-connection-badge{background-color:var(--w3m-color-bg-2);box-shadow:inset 0 0 0 1px var(--w3m-color-overlay);padding:6px 10px 6px 26px;position:relative;border-radius:28px}.w3m-connection-badge::before{content:'';position:absolute;width:10px;height:10px;left:10px;background-color:var(--w3m-color-success);border-radius:50%;top:50%;margin-top:-5px;box-shadow:0 1px 4px 1px var(--w3m-color-success),inset 0 0 0 1px var(--w3m-color-overlay)}.w3m-footer{display:flex;justify-content:space-between}w3m-address-text{margin-top:10px;display:block}.w3m-balance{border-top:1px solid var(--w3m-color-bg-2);padding:11px 20px} ` ;
var Za = Object . defineProperty , Fa = Object . getOwnPropertyDescriptor , za = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? Fa ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && Za ( t2 , a2 , o3 ) , o3 ;
} ;
let Je = class extends s {
onDisconnect ( ) {
k$1 . close ( ) , L . client ( ) . disconnect ( ) , a$2 . resetAccount ( ) ;
}
async onCopyAddress ( ) {
var e2 ;
await navigator . clipboard . writeText ( ( e2 = a$2 . state . address ) != null ? e2 : "" ) , P$1 . openToast ( "Address copied" , "success" ) ;
}
render ( ) {
return y ` <w3m-modal-content><div class="w3m-profile"><div class="w3m-info"><w3m-avatar size="medium"></w3m-avatar><w3m-address-text variant="modal"></w3m-address-text></div><div class="w3m-connection-badge"><w3m-text variant="small-normal" color="secondary">Connected</w3m-text></div></div></w3m-modal-content><div class="w3m-balance"><w3m-balance></w3m-balance></div><w3m-modal-footer><div class="w3m-footer"><w3m-account-network-button></w3m-account-network-button><w3m-box-button label="Copy Address" .onClick=" ${ this . onCopyAddress } " .icon=" ${ g . ACCOUNT _COPY } "></w3m-box-button><w3m-box-button label="Disconnect" .onClick=" ${ this . onDisconnect } " .icon=" ${ g . ACCOUNT _DISCONNECT } "></w3m-box-button></div></w3m-modal-footer> ` ;
}
} ;
Je . styles = [ u . globalCss , Ha ] , Je = za ( [ e$2 ( "w3m-account-view" ) ] , Je ) ;
var Va = Object . defineProperty , Ga = Object . getOwnPropertyDescriptor , qa = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? Ga ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && Va ( t2 , a2 , o3 ) , o3 ;
} ;
let et = class extends s {
viewTemplate ( ) {
return d$2 . isAndroid ( ) ? y ` <w3m-android-wallet-selection></w3m-android-wallet-selection> ` : d$2 . isMobile ( ) ? y ` <w3m-mobile-wallet-selection></w3m-mobile-wallet-selection> ` : y ` <w3m-desktop-wallet-selection></w3m-desktop-wallet-selection> ` ;
}
render ( ) {
return y ` ${ this . viewTemplate ( ) } <w3m-legal-notice></w3m-legal-notice> ` ;
}
} ;
et . styles = [ u . globalCss ] , et = qa ( [ e$2 ( "w3m-connect-wallet-view" ) ] , et ) ;
const Ka = i$3 ` .w3m-wrapper{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1/1;flex-direction:column}.w3m-connecting-title{display:flex;align-items:center;justify-content:center;margin-bottom:16px}w3m-spinner{margin-right:10px}w3m-wallet-image{border-radius:15px;width:25%;aspect-ratio:1/1;margin-bottom:20px}.w3m-install-actions{display:flex}.w3m-install-actions w3m-button{margin:0 5px;opacity:1} ` ;
var Ya = Object . defineProperty , Xa = Object . getOwnPropertyDescriptor , kt = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? Xa ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && Ya ( t2 , a2 , o3 ) , o3 ;
} ;
let Pe = class extends s {
constructor ( ) {
super ( ) , this . uri = "" , this . createConnectionAndWait ( ) ;
}
getRouterData ( ) {
var e2 ;
const t2 = ( e2 = g$2 . state . data ) == null ? void 0 : e2 . DesktopConnector ;
if ( ! t2 )
throw new Error ( "Missing router data" ) ;
return t2 ;
}
onFormatAndRedirect ( e2 ) {
const { native : t2 , universal : a2 , name : n2 } = this . getRouterData ( ) ;
if ( t2 ) {
const o3 = d$2 . formatNativeUrl ( t2 , e2 , n2 ) ;
d$2 . openHref ( o3 ) ;
} else if ( a2 ) {
const o3 = d$2 . formatUniversalUrl ( a2 , e2 , n2 ) ;
d$2 . openHref ( o3 , "_blank" ) ;
}
}
async createConnectionAndWait ( e2 = 0 ) {
var t2 ;
const { standaloneUri : a2 } = a$2 . state , { name : n2 , walletId : o3 , native : r2 , universal : i2 , icon : c2 } = this . getRouterData ( ) , m2 = { name : n2 , id : o3 , links : { native : r2 , universal : i2 } , image : c2 } ;
if ( a2 )
h . setRecentWallet ( m2 ) , this . onFormatAndRedirect ( a2 ) ;
else
try {
await L . client ( ) . connectWalletConnect ( ( s2 ) => {
this . uri = s2 , this . onFormatAndRedirect ( s2 ) ;
} , ( t2 = a$2 . state . selectedChain ) == null ? void 0 : t2 . id ) , h . setRecentWallet ( m2 ) , k$1 . close ( ) ;
} catch ( s2 ) {
console . error ( s2 ) , P$1 . openToast ( "Connection request declined" , "error" ) , e2 < 2 && this . createConnectionAndWait ( e2 + 1 ) ;
}
}
onConnectWithMobile ( ) {
g$2 . push ( "Qrcode" ) ;
}
onGoToWallet ( ) {
const { universal : e2 , name : t2 } = this . getRouterData ( ) ;
if ( e2 ) {
const a2 = d$2 . formatUniversalUrl ( e2 , this . uri , t2 ) ;
d$2 . openHref ( a2 , "_blank" ) ;
}
}
render ( ) {
const { name : e2 , icon : t2 , universal : a2 , walletId : n2 } = this . getRouterData ( ) , o3 = h . getWalletName ( e2 ) ;
return y ` <w3m-modal-header title=" ${ o3 } "></w3m-modal-header><w3m-modal-content><div class="w3m-wrapper"> ${ t2 ? y ` <w3m-wallet-image src=" ${ t2 } " size="lg"></w3m-wallet-image> ` : y ` <w3m-wallet-image size="lg" walletid=" ${ l ( n2 ) } "></w3m-wallet-image> ` } <div class="w3m-connecting-title"><w3m-spinner></w3m-spinner><w3m-text variant="large-bold" color="secondary"> ${ ` Continue in ${ o3 } ... ` } </w3m-text></div><div class="w3m-install-actions"><w3m-button .onClick=" ${ async ( ) => this . createConnectionAndWait ( ) } " .iconRight=" ${ g . RETRY _ICON } ">Retry</w3m-button> ${ a2 ? y ` <w3m-button .onClick=" ${ this . onGoToWallet . bind ( this ) } " .iconLeft=" ${ g . ARROW _UP _RIGHT _ICON } ">Go to Wallet</w3m-button> ` : y ` <w3m-button .onClick=" ${ this . onConnectWithMobile } " .iconLeft=" ${ g . MOBILE _ICON } ">Connect with Mobile</w3m-button> ` } </div></div></w3m-modal-content> ` ;
}
} ;
Pe . styles = [ u . globalCss , Ka ] , kt ( [ t$1 ( ) ] , Pe . prototype , "uri" , 2 ) , Pe = kt ( [ e$2 ( "w3m-desktop-connector-view" ) ] , Pe ) ;
const Qa = i$3 ` .w3m-info-text{margin:5px 0 15px;max-width:320px;text-align:center}.w3m-wallet-item{margin:0 -20px 0 0;padding-right:20px;display:flex;align-items:center;border-bottom:1px solid var(--w3m-color-bg-2)}.w3m-wallet-item:last-child{margin-bottom:-20px;border-bottom:0}.w3m-wallet-content{margin-left:20px;height:60px;display:flex;flex:1;align-items:center;justify-content:space-between}.w3m-footer-actions{display:flex;flex-direction:column;align-items:center;padding:20px 0;border-top:1px solid var(--w3m-color-bg-2)}w3m-wallet-image{display:block;width:40px;height:40px;border-radius:10px} ` ;
var Ja = Object . defineProperty , en = Object . getOwnPropertyDescriptor , tn = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? en ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && Ja ( t2 , a2 , o3 ) , o3 ;
} ;
let tt = class extends s {
constructor ( ) {
super ( ... arguments ) , this . explorerUrl = "https://explorer.walletconnect.com/" ;
}
onGet ( e2 ) {
d$2 . openHref ( e2 , "_blank" ) ;
}
onExplore ( ) {
d$2 . openHref ( this . explorerUrl , "_blank" ) ;
}
render ( ) {
const { recomendedWallets : e2 } = A$1 . state , t2 = h . getCustomWallets ( ) . slice ( 0 , 6 ) , a2 = e2 . length , n2 = t2 . length ;
return y ` <w3m-modal-header title="Get a wallet"></w3m-modal-header><w3m-modal-content> ${ a2 ? e2 . map ( ( { name : o3 , image _url : r2 , homepage : i2 } ) => y ` < div class = "w3m-wallet-item" > < w3m - wallet - image src = "${r2.lg}" > < / w 3 m - w a l l e t - i m a g e > < d i v c l a s s = " w 3 m - w a l l e t - c o n t e n t " > < w 3 m - t e x t v a r i a n t = " m e d i u m - n o r m a l " > $ { o 3 } < / w 3 m - t e x t > < w 3 m - b u t t o n . i c o n R i g h t = " $ { g . A R R O W _ R I G H T _ I C O N } " . o n C l i c k = " $ { ( ) = > t h i s . o n G e t ( i 2 ) } " > G e t < / w 3 m - b u t t o n > < / d i v > < / d i v > ` ) : n u l l } $ { n 2 ? t 2 . m a p ( ( { n a m e : o 3 , i d : r 2 , l i n k s : i 2 } ) = > y ` < d i v c l a s s = " w 3 m - w a l l e t - i t e m " > < w 3 m - w a l l e t - i m a g e w a l l e t I d = " $ { r 2 } " > < / w 3 m - w a l l e t - i m a g e > < d i v c l a s s = " w 3 m - w a l l e t - c o n t e n t " > < w 3 m - t e x t v a r i a n t = " m e d i u m - n o r m a l " > $ { o 3 } < / w 3 m - t e x t > < w 3 m - b u t t o n . i c o n R i g h t = " $ { g . A R R O W _ R I G H T _ I C O N } " . o n C l i c k = " $ { ( ) = > t h i s . o n G e t ( i 2 . u n i v e r s a l ) } " > G e t < / w 3 m - b u t t o n > < / d i v > < / d i v > ` ) : n u l l } < / w 3 m - m o d a l - c o n t e n t > < d i v c l a s s = " w 3 m - f o o t e r - a c t i o n s " > < w 3 m - t e x t v a r i a n t = " m e d i u m - n o r m a l " > N o t w h a t y o u ' r e l o o k i n g f o r ? < / w 3 m - t e x t > < w 3 m - t e x t v a r i a n t = " s m a l l - t h i n " c o l o r = " s e c o n d a r y " c l a s s = " w 3 m - i n f o - t e x t " > W i t h h u n d r e d s o f w a l l e t s o u t t h e r e , t h e r e ' s s o m e t h i n g f o r e v e r y o n e < / w 3 m - t e x t > < w 3 m - b u t t o n . o n C l i c k = " $ { t h i s . o n E x p l o r e . b i n d ( t h i s ) } " . i c o n R i g h t = " $ { g . A R R O W _ U P _ R I G H T _ I C O N } " > E x p l o r e W a l l e t s < / w 3 m - b u t t o n > < / d i v > ` ;
}
} ;
tt . styles = [ u . globalCss , Qa ] , tt = tn ( [ e$2 ( "w3m-get-wallet-view" ) ] , tt ) ;
const on = i$3 ` .w3m-footer-actions{display:flex;justify-content:center}.w3m-footer-actions w3m-button{margin:0 5px}.w3m-info-container{display:flex;flex-direction:column;justify-content:center;align-items:center;margin-bottom:20px}.w3m-info-container:last-child{margin-bottom:0}.w3m-info-text{margin-top:5px;text-align:center}.w3m-images svg{margin:0 2px 5px;width:55px;height:55px}.help-img-highlight{stroke:var(--w3m-color-overlay)} ` ;
var an = Object . defineProperty , nn = Object . getOwnPropertyDescriptor , rn = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? nn ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && an ( t2 , a2 , o3 ) , o3 ;
} ;
let ot = class extends s {
constructor ( ) {
super ( ... arguments ) , this . learnUrl = "https://ethereum.org/en/wallets/" ;
}
onGet ( ) {
g$2 . push ( "GetWallet" ) ;
}
onLearnMore ( ) {
d$2 . openHref ( this . learnUrl , "_blank" ) ;
}
render ( ) {
return y ` <w3m-modal-header title="What is a wallet?"></w3m-modal-header><w3m-modal-content><div class="w3m-info-container"><div class="w3m-images"> ${ g . HELP _CHART _IMG } ${ g . HELP _PAINTING _IMG } ${ g . HELP _ETH _IMG } </div><w3m-text variant="medium-normal">A home for your digital assets</w3m-text><w3m-text variant="small-thin" color="secondary" class="w3m-info-text">A wallet lets you store, send and receive digital assets like cryptocurrencies and NFTs.</w3m-text></div><div class="w3m-info-container"><div class="w3m-images"> ${ g . HELP _KEY _IMG } ${ g . HELP _USER _IMG } ${ g . HELP _LOCK _IMG } </div><w3m-text variant="medium-normal">One login for all of web3</w3m-text><w3m-text variant="small-thin" color="secondary" class="w3m-info-text">Log in to any app by connecting your wallet. Say goodbye to countless passwords!</w3m-text></div><div class="w3m-info-container"><div class="w3m-images"> ${ g . HELP _COMPAS _IMG } ${ g . HELP _NOUN _IMG } ${ g . HELP _DAO _IMG } </div><w3m-text variant="medium-normal">Your gateway to a new web</w3m-text><w3m-text variant="small-thin" color="secondary" class="w3m-info-text">With your wallet, you can explore and interact with DeFi, NFTs, DAOs, and much more.</w3m-text></div><div class="w3m-footer-actions"><w3m-button .onClick=" ${ this . onGet . bind ( this ) } " .iconLeft=" ${ g . WALLET _ICON } ">Get a Wallet</w3m-button><w3m-button .onClick=" ${ this . onLearnMore . bind ( this ) } " .iconRight=" ${ g . ARROW _UP _RIGHT _ICON } ">Learn More</w3m-button></div></w3m-modal-content> ` ;
}
} ;
ot . styles = [ u . globalCss , on ] , ot = rn ( [ e$2 ( "w3m-help-view" ) ] , ot ) ;
const ln = i$3 ` .w3m-injected-wrapper{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1/1;flex-direction:column}.w3m-connecting-title{display:flex;align-items:center;justify-content:center;margin-bottom:20px}w3m-spinner{margin-right:10px}w3m-wallet-image{border-radius:15px;width:25%;aspect-ratio:1/1;margin-bottom:20px}w3m-button{opacity:0}.w3m-injected-error w3m-button{opacity:1} ` ;
var sn = Object . defineProperty , cn = Object . getOwnPropertyDescriptor , at = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? cn ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && sn ( t2 , a2 , o3 ) , o3 ;
} ;
let ye = class extends s {
constructor ( ) {
super ( ) , this . connecting = true , this . error = false , this . connector = L . client ( ) . getConnectorById ( "injected" ) , this . onConnect ( ) ;
}
async onConnect ( ) {
const { ready : e2 } = this . connector ;
e2 && ( this . error = false , this . connecting = true , await h . handleConnectorConnection ( "injected" , ( ) => {
this . error = true , this . connecting = false ;
} ) ) ;
}
render ( ) {
const e2 = h . getWalletName ( this . connector . name ) , t2 = h . getWalletId ( this . connector . id ) , a2 = { "w3m-injected-wrapper" : true , "w3m-injected-error" : this . error } ;
return y ` <w3m-modal-header title=" ${ e2 } "></w3m-modal-header><w3m-modal-content><div class=" ${ o2 ( a2 ) } "><w3m-wallet-image walletId=" ${ t2 } " size="lg"></w3m-wallet-image><div class="w3m-connecting-title"> ${ this . connecting ? y ` <w3m-spinner></w3m-spinner> ` : null } <w3m-text variant="large-bold" color=" ${ this . error ? "error" : "secondary" } "> ${ this . error ? "Connection declined" : ` Continue in ${ e2 } ... ` } </w3m-text></div><w3m-button .onClick=" ${ this . onConnect . bind ( this ) } " .disabled=" ${ ! this . error } " .iconRight=" ${ g . RETRY _ICON } ">Try Again</w3m-button></div></w3m-modal-content> ` ;
}
} ;
ye . styles = [ u . globalCss , ln ] , at ( [ t$1 ( ) ] , ye . prototype , "connecting" , 2 ) , at ( [ t$1 ( ) ] , ye . prototype , "error" , 2 ) , ye = at ( [ e$2 ( "w3m-injected-connector-view" ) ] , ye ) ;
const dn = i$3 ` .w3m-injected-wrapper{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1/1;flex-direction:column}.w3m-connecting-title{display:flex;align-items:center;justify-content:center;margin-bottom:16px}.w3m-install-title{display:flex;align-items:center;justify-content:center;flex-direction:column}.w3m-install-title w3m-text:last-child{margin-top:10px;max-width:240px}.w3m-install-actions{display:flex;margin-top:15px;align-items:center;flex-direction:column}@media(max-width:355px){.w3m-install-actions{flex-direction:column;align-items:center}}w3m-wallet-image{border-radius:15px;width:25%;aspect-ratio:1/1;margin-bottom:20px}w3m-button{opacity:0}.w3m-install-actions w3m-button{margin:5px;opacity:1}.w3m-info-text{text-align:center} ` ;
var hn = Object . defineProperty , mn = Object . getOwnPropertyDescriptor , pn = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? mn ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && hn ( t2 , a2 , o3 ) , o3 ;
} ;
let nt = class extends s {
getRouterData ( ) {
var e2 ;
const t2 = ( e2 = g$2 . state . data ) == null ? void 0 : e2 . InstallConnector ;
if ( ! t2 )
throw new Error ( "Missing router data" ) ;
return t2 ;
}
onInstall ( ) {
const { url : e2 } = this . getRouterData ( ) ;
d$2 . openHref ( e2 , "_blank" ) ;
}
onMobile ( ) {
const { name : e2 } = this . getRouterData ( ) ;
g$2 . push ( "ConnectWallet" ) , P$1 . openToast ( ` Scan the code with ${ e2 } ` , "success" ) ;
}
render ( ) {
const { name : e2 , id : t2 , isMobile : a2 } = this . getRouterData ( ) ;
return y ` <w3m-modal-header title=" ${ e2 } "></w3m-modal-header><w3m-modal-content><div class="w3m-injected-wrapper"><w3m-wallet-image walletId=" ${ t2 } " size="lg"></w3m-wallet-image><div class="w3m-install-title"><w3m-text variant="large-bold">Install ${ e2 } </w3m-text><w3m-text color="secondary" variant="medium-thin" class="w3m-info-text">To connect ${ e2 } , install the browser extension.</w3m-text></div><div class="w3m-install-actions"><w3m-button .onClick=" ${ this . onInstall . bind ( this ) } " .iconLeft=" ${ g . ARROW _DOWN _ICON } ">Install Extension</w3m-button> ${ a2 ? y ` <w3m-button .onClick=" ${ this . onMobile . bind ( this ) } " .iconLeft=" ${ g . MOBILE _ICON } "> ${ e2 } Mobile</w3m-button> ` : null } </div></div></w3m-modal-content> ` ;
}
} ;
nt . styles = [ u . globalCss , dn ] , nt = pn ( [ e$2 ( "w3m-install-connector-view" ) ] , nt ) ;
var un = Object . defineProperty , vn = Object . getOwnPropertyDescriptor , gn = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? vn ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && un ( t2 , a2 , o3 ) , o3 ;
} ;
let rt = class extends s {
render ( ) {
return y ` <w3m-modal-header title="Scan the code" .onAction=" ${ h . handleUriCopy } " .actionIcon=" ${ g . COPY _ICON } "></w3m-modal-header><w3m-modal-content><w3m-walletconnect-qr></w3m-walletconnect-qr></w3m-modal-content> ` ;
}
} ;
rt . styles = [ u . globalCss ] , rt = gn ( [ e$2 ( "w3m-qrcode-view" ) ] , rt ) ;
const wn = i$3 ` .w3m-grid{display:grid;grid-template-columns:repeat(4,80px);margin:-5px -10px;justify-content:space-between} ` ;
var bn = Object . defineProperty , fn = Object . getOwnPropertyDescriptor , yn = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? fn ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && bn ( t2 , a2 , o3 ) , o3 ;
} ;
let it = class extends s {
async onSelectChain ( e2 ) {
const { isConnected : t2 , selectedChain : a2 , walletConnectVersion : n2 } = a$2 . state ;
t2 ? ( a2 == null ? void 0 : a2 . id ) === e2 . id ? g$2 . replace ( "Account" ) : n2 === 2 ? ( await L . client ( ) . switchNetwork ( { chainId : e2 . id } ) , g$2 . replace ( "Account" ) ) : g$2 . push ( "SwitchNetwork" , { SwitchNetwork : e2 } ) : ( g$2 . push ( "ConnectWallet" ) , a$2 . setSelectedChain ( e2 ) ) ;
}
render ( ) {
const { chains : e2 } = a$2 . state ;
return y ` <w3m-modal-header title="Select network"></w3m-modal-header><w3m-modal-content><div class="w3m-grid"> ${ e2 == null ? void 0 : e2 . map ( ( t2 ) => y ` <w3m-network-button name=" ${ t2 . name } " chainId=" ${ t2 . id } " .onClick=" ${ async ( ) => this . onSelectChain ( t2 ) } "> ${ t2 . name } </w3m-network-button> ` ) } </div></w3m-modal-content> ` ;
}
} ;
it . styles = [ u . globalCss , wn ] , it = yn ( [ e$2 ( "w3m-select-network-view" ) ] , it ) ;
const xn = i$3 ` .w3m-wrapper{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1/1;flex-direction:column}.w3m-connecting-title{display:flex;align-items:center;justify-content:center;margin-bottom:16px}w3m-spinner{margin-right:10px}w3m-network-image{width:96px;height:96px;margin-bottom:20px}w3m-button{opacity:0}.w3m-error w3m-button{opacity:1} ` ;
var Cn = Object . defineProperty , kn = Object . getOwnPropertyDescriptor , $t = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? kn ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && Cn ( t2 , a2 , o3 ) , o3 ;
} ;
let _e = class extends s {
constructor ( ) {
super ( ) , this . error = false , this . onSwitchNetwork ( ) ;
}
getRouterData ( ) {
var e2 ;
const t2 = ( e2 = g$2 . state . data ) == null ? void 0 : e2 . SwitchNetwork ;
if ( ! t2 )
throw new Error ( "Missing router data" ) ;
return t2 ;
}
async onSwitchNetwork ( ) {
try {
this . error = false ;
const e2 = this . getRouterData ( ) ;
await L . client ( ) . switchNetwork ( { chainId : e2 . id } ) , a$2 . setSelectedChain ( e2 ) , g$2 . replace ( "Account" ) ;
} catch {
this . error = true ;
}
}
render ( ) {
const { id : e2 , name : t2 } = this . getRouterData ( ) , a2 = { "w3m-wrapper" : true , "w3m-error" : this . error } ;
return y ` <w3m-modal-header title=" ${ ` Connect to ${ t2 } ` } "></w3m-modal-header><w3m-modal-content><div class=" ${ o2 ( a2 ) } "><w3m-network-image chainId=" ${ e2 } "></w3m-network-image><div class="w3m-connecting-title"> ${ this . error ? null : y ` <w3m-spinner></w3m-spinner> ` } <w3m-text variant="large-bold" color=" ${ this . error ? "error" : "secondary" } "> ${ this . error ? "Connection declined" : "Approve in your wallet" } </w3m-text></div><w3m-button .onClick=" ${ this . onSwitchNetwork . bind ( this ) } " .disabled=" ${ ! this . error } " .iconRight=" ${ g . RETRY _ICON } ">Try Again</w3m-button></div></w3m-modal-content> ` ;
}
} ;
_e . styles = [ u . globalCss , xn ] , $t ( [ t$1 ( ) ] , _e . prototype , "error" , 2 ) , _e = $t ( [ e$2 ( "w3m-switch-network-view" ) ] , _e ) ;
const $n = i$3 ` w3m-modal-content{height:clamp(200px,60vh,600px);display:block;overflow:scroll;scrollbar-width:none;position:relative;margin-top:1px}.w3m-grid{display:grid;grid-template-columns:repeat(4,80px);justify-content:space-between;margin:-15px -10px;padding-top:20px}w3m-modal-content::after,w3m-modal-content::before{content:'';position:fixed;pointer-events:none;z-index:1;width:100%;height:20px;opacity:1}w3m-modal-content::before{box-shadow:0 -1px 0 0 var(--w3m-color-bg-1);background:linear-gradient(var(--w3m-color-bg-1),rgba(255,255,255,0))}w3m-modal-content::after{box-shadow:0 1px 0 0 var(--w3m-color-bg-1);background:linear-gradient(rgba(255,255,255,0),var(--w3m-color-bg-1));top:calc(100% - 20px)}w3m-modal-content::-webkit-scrollbar{display:none}.w3m-placeholder-block{display:flex;justify-content:center;align-items:center;height:100px;overflow:hidden}.w3m-empty,.w3m-loading{display:flex}.w3m-loading .w3m-placeholder-block{height:100%}.w3m-end-reached .w3m-placeholder-block{height:0;opacity:0}.w3m-empty .w3m-placeholder-block{opacity:1;height:100%}w3m-wallet-button{margin:calc((100% - 60px)/ 3) 0} ` ;
var On = Object . defineProperty , In = Object . getOwnPropertyDescriptor , xe = ( e2 , t2 , a2 , n2 ) => {
for ( var o3 = n2 > 1 ? void 0 : n2 ? In ( t2 , a2 ) : t2 , r2 = e2 . length - 1 , i2 ; r2 >= 0 ; r2 -- )
( i2 = e2 [ r2 ] ) && ( o3 = ( n2 ? i2 ( t2 , a2 , o3 ) : i2 ( o3 ) ) || o3 ) ;
return n2 && o3 && On ( t2 , a2 , o3 ) , o3 ;
} ;
const lt = 40 ;
let Q = class extends s {
constructor ( ) {
super ( ... arguments ) , this . loading = ! A$1 . state . wallets . listings . length , this . firstFetch = ! A$1 . state . wallets . listings . length , this . search = "" , this . endReached = false , this . intersectionObserver = void 0 , this . searchDebounce = h . debounce ( ( e2 ) => {
e2 . length >= 3 ? ( this . firstFetch = true , this . endReached = false , this . search = e2 , A$1 . resetSearch ( ) , this . fetchWallets ( ) ) : this . search && ( this . search = "" , this . endReached = this . isLastPage ( ) , A$1 . resetSearch ( ) ) ;
} ) ;
}
firstUpdated ( ) {
this . createPaginationObserver ( ) ;
}
disconnectedCallback ( ) {
var e2 ;
( e2 = this . intersectionObserver ) == null || e2 . disconnect ( ) ;
}
get placeholderEl ( ) {
return h . getShadowRootElement ( this , ".w3m-placeholder-block" ) ;
}
createPaginationObserver ( ) {
this . intersectionObserver = new IntersectionObserver ( ( [ e2 ] ) => {
e2 . isIntersecting && ! ( this . search && this . firstFetch ) && this . fetchWallets ( ) ;
} ) , this . intersectionObserver . observe ( this . placeholderEl ) ;
}
isLastPage ( ) {
const { wallets : e2 , search : t2 } = A$1 . state , { listings : a2 , total : n2 } = this . search ? t2 : e2 ;
return n2 <= lt || a2 . length >= n2 ;
}
async fetchWallets ( ) {
var e2 ;
const { wallets : t2 , search : a2 } = A$1 . state , n2 = h . getExtensionWallets ( ) , { listings : o3 , total : r2 , page : i2 } = this . search ? a2 : t2 ;
if ( ! this . endReached && ( this . firstFetch || r2 > lt && o3 . length < r2 ) )
try {
this . loading = true ;
const c2 = ( e2 = a$2 . state . standaloneChains ) == null ? void 0 : e2 . join ( "," ) , { listings : m2 } = await A$1 . getPaginatedWallets ( { page : this . firstFetch ? 1 : i2 + 1 , entries : lt , device : d$2 . isMobile ( ) ? "mobile" : "desktop" , search : this . search , version : a$2 . state . walletConnectVersion , chains : c2 } ) , s2 = m2 . map ( ( { image _url : v2 } ) => v2 . lg ) , d3 = n2 . map ( ( { id : v2 } ) => h . getWalletIcon ( v2 ) ) ;
await Promise . all ( [ ... s2 . map ( async ( v2 ) => h . preloadImage ( v2 ) ) , ... d3 . map ( async ( v2 ) => h . preloadImage ( v2 ) ) , d$2 . wait ( 300 ) ] ) , this . endReached = this . isLastPage ( ) ;
} catch ( c2 ) {
console . error ( c2 ) , P$1 . openToast ( h . getErrorMessage ( c2 ) , "error" ) ;
} finally {
this . loading = false , this . firstFetch = false ;
}
}
onConnectCustom ( { name : e2 , id : t2 , links : a2 } ) {
d$2 . isMobile ( ) ? h . handleMobileLinking ( { links : a2 , name : e2 , id : t2 } ) : g$2 . push ( "DesktopConnector" , { DesktopConnector : { name : e2 , walletId : t2 , universal : a2 . universal , native : a2 . native } } ) ;
}
onConnectListing ( e2 ) {
if ( d$2 . isMobile ( ) ) {
const { id : t2 , image _url : a2 } = e2 , { native : n2 , universal : o3 } = e2 . mobile ;
h . handleMobileLinking ( { links : { native : n2 , universal : o3 } , name : e2 . name , id : t2 , image : a2 . lg } ) ;
} else
g$2 . push ( "DesktopConnector" , { DesktopConnector : { name : e2 . name , icon : e2 . image _url . lg , universal : e2 . desktop . universal || e2 . homepage , native : e2 . desktop . native } } ) ;
}
onConnectExtension ( e2 ) {
h . getWalletId ( "" ) === e2 . id ? g$2 . push ( "InjectedConnector" ) : g$2 . push ( "InstallConnector" , { InstallConnector : e2 } ) ;
}
onSearchChange ( e2 ) {
const { value : t2 } = e2 . target ;
this . searchDebounce ( t2 ) ;
}
coinbaseConnectorTemplate ( ) {
try {
const e2 = L . client ( ) . getConnectorById ( Z . coinbaseWallet ) ;
return y ` <w3m-wallet-button name=" ${ e2 . name } " walletId=" ${ e2 . id } " .onClick=" ${ async ( ) => h . handleConnectorConnection ( Z . coinbaseWallet ) } "></w3m-wallet-button> ` ;
} catch {
return null ;
}
}
render ( ) {
const { wallets : e2 , search : t2 } = A$1 . state , { isStandalone : a2 } = a$2 . state ;
let { listings : n2 } = this . search ? t2 : e2 ;
n2 = R . allowedExplorerListings ( n2 ) ;
const o$12 = this . loading && ! n2 . length , r2 = this . search . length >= 3 , i2 = ! o$12 && ( ! r2 || h . caseSafeIncludes ( Z . coinbaseWallet , this . search ) ) ;
let c2 = ! a2 && ! d$2 . isMobile ( ) ? h . getExtensionWallets ( ) : [ ] , m2 = h . getCustomWallets ( ) ;
r2 && ( c2 = c2 . filter ( ( { name : O } ) => h . caseSafeIncludes ( O , this . search ) ) , m2 = m2 . filter ( ( { name : O } ) => h . caseSafeIncludes ( O , this . search ) ) ) ;
const s2 = ! this . loading && ! n2 . length && ! c2 . length && ! i2 , d3 = Math . max ( c2 . length , n2 . length ) , v2 = { "w3m-loading" : o$12 , "w3m-end-reached" : this . endReached || ! this . loading , "w3m-empty" : s2 } ;
return y ` <w3m-modal-header><w3m-search-input .onChange=" ${ this . onSearchChange . bind ( this ) } "></w3m-search-input></w3m-modal-header><w3m-modal-content class=" ${ o2 ( v2 ) } "><div class="w3m-grid"> ${ o$12 ? null : [ ... Array ( d3 ) ] . map ( ( O , C2 ) => y ` ${ m2 [ C2 ] ? y ` <w3m-wallet-button name=" ${ m2 [ C2 ] . name } " walletId=" ${ m2 [ C2 ] . id } " .onClick=" ${ ( ) => this . onConnectCustom ( m2 [ C2 ] ) } "></w3m-wallet-button> ` : null } ${ c2 [ C2 ] ? y ` <w3m-wallet-button name=" ${ c2 [ C2 ] . name } " walletId=" ${ c2 [ C2 ] . id } " .onClick=" ${ ( ) => this . onConnectExtension ( c2 [ C2 ] ) } "></w3m-wallet-button> ` : null } ${ n2 [ C2 ] ? y ` <w3m-wallet-button src=" ${ n2 [ C2 ] . image _url . lg } " name=" ${ n2 [ C2 ] . name } " walletId=" ${ n2 [ C2 ] . id } " .onClick=" ${ ( ) => this . onConnectListing ( n2 [ C2 ] ) } "></w3m-wallet-button> ` : null } ` ) } ${ i2 ? this . coinbaseConnectorTemplate ( ) : null } </div><div class="w3m-placeholder-block"> ${ s2 ? y ` <w3m-text variant="large-bold" color="secondary">No results found</w3m-text> ` : null } ${ ! s2 && this . loading ? y ` <w3m-spinner></w3m-spinner> ` : null } </div></w3m-modal-content> ` ;
}
} ;
Q . styles = [ u . globalCss , $n ] , xe ( [ t$1 ( ) ] , Q . prototype , "loading" , 2 ) , xe ( [ t$1 ( ) ] , Q . prototype , "firstFetch" , 2 ) , xe ( [ t$1 ( ) ] , Q . prototype , "search" , 2 ) , xe ( [ t$1 ( ) ] , Q . prototype , "endReached" , 2 ) , Q = xe ( [ e$2 ( "w3m-wallet-explorer-view" ) ] , Q ) ;
export {
We as W3mAccountButton ,
ae as W3mConnectButton ,
ne as W3mCoreButton ,
re as W3mModal ,
ie as W3mNetworkSwitch
} ;