2022-08-28 22:33:35 +02:00
! function ( e ) { var t = { } ; function i ( s ) { if ( t [ s ] ) return t [ s ] . exports ; var n = t [ s ] = { i : s , l : ! 1 , exports : { } } ; return e [ s ] . call ( n . exports , n , n . exports , i ) , n . l = ! 0 , n . exports } i . m = e , i . c = t , i . d = function ( e , t , s ) { i . o ( e , t ) || Object . defineProperty ( e , t , { enumerable : ! 0 , get : s } ) } , i . r = function ( e ) { "undefined" != typeof Symbol && Symbol . toStringTag && Object . defineProperty ( e , Symbol . toStringTag , { value : "Module" } ) , Object . defineProperty ( e , "__esModule" , { value : ! 0 } ) } , i . t = function ( e , t ) { if ( 1 & t && ( e = i ( e ) ) , 8 & t ) return e ; if ( 4 & t && "object" == typeof e && e && e . _ _esModule ) return e ; var s = Object . create ( null ) ; if ( i . r ( s ) , Object . defineProperty ( s , "default" , { enumerable : ! 0 , value : e } ) , 2 & t && "string" != typeof e ) for ( var n in e ) i . d ( s , n , function ( t ) { return e [ t ] } . bind ( null , n ) ) ; return s } , i . n = function ( e ) { var t = e && e . _ _esModule ? function ( ) { return e . default } : function ( ) { return e } ; return i . d ( t , "a" , t ) , t } , i . o = function ( e , t ) { return Object . prototype . hasOwnProperty . call ( e , t ) } , i . p = "" , i ( i . s = 0 ) } ( [ function ( e , t , i ) { "use strict" ; i . r ( t ) ;
2019-06-30 19:37:32 +02:00
/ * *
* @ license
* Copyright ( c ) 2017 The Polymer Project Authors . All rights reserved .
* This code may only be used under the BSD style license found at
* http : //polymer.github.io/LICENSE.txt
* The complete set of authors may be found at
* http : //polymer.github.io/AUTHORS.txt
* The complete set of contributors may be found at
* http : //polymer.github.io/CONTRIBUTORS.txt
* Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at
* http : //polymer.github.io/PATENTS.txt
* /
2022-08-28 22:33:35 +02:00
const s = new WeakMap , n = e => "function" == typeof e && s . has ( e ) , o = void 0 !== window . customElements && void 0 !== window . customElements . polyfillWrapFlushCallback , r = ( e , t , i = null ) => { for ( ; t !== i ; ) { const i = t . nextSibling ; e . removeChild ( t ) , t = i } } , a = { } , c = { } , l = ` {{lit- ${ String ( Math . random ( ) ) . slice ( 2 ) } }} ` , h = ` \x 3c!-- ${ l } -- \x 3e ` , d = new RegExp ( ` ${ l } | ${ h } ` ) , p = "$lit$" ; class u { constructor ( e , t ) { this . parts = [ ] , this . element = t ; const i = [ ] , s = [ ] , n = document . createTreeWalker ( t . content , 133 , null , ! 1 ) ; let o = 0 , r = - 1 , a = 0 ; const { strings : c , values : { length : h } } = e ; for ( ; a < h ; ) { const e = n . nextNode ( ) ; if ( null !== e ) { if ( r ++ , 1 === e . nodeType ) { if ( e . hasAttributes ( ) ) { const t = e . attributes , { length : i } = t ; let s = 0 ; for ( let e = 0 ; e < i ; e ++ ) m ( t [ e ] . name , p ) && s ++ ; for ( ; s -- > 0 ; ) { const t = c [ a ] , i = g . exec ( t ) [ 2 ] , s = i . toLowerCase ( ) + p , n = e . getAttribute ( s ) ; e . removeAttribute ( s ) ; const o = n . split ( d ) ; this . parts . push ( { type : "attribute" , index : r , name : i , strings : o } ) , a += o . length - 1 } } "TEMPLATE" === e . tagName && ( s . push ( e ) , n . currentNode = e . content ) } else if ( 3 === e . nodeType ) { const t = e . data ; if ( t . indexOf ( l ) >= 0 ) { const s = e . parentNode , n = t . split ( d ) , o = n . length - 1 ; for ( let t = 0 ; t < o ; t ++ ) { let i , o = n [ t ] ; if ( "" === o ) i = _ ( ) ; else { const e = g . exec ( o ) ; null !== e && m ( e [ 2 ] , p ) && ( o = o . slice ( 0 , e . index ) + e [ 1 ] + e [ 2 ] . slice ( 0 , - p . length ) + e [ 3 ] ) , i = document . createTextNode ( o ) } s . insertBefore ( i , e ) , this . parts . push ( { type : "node" , index : ++ r } ) } "" === n [ o ] ? ( s . insertBefore ( _ ( ) , e ) , i . push ( e ) ) : e . data = n [ o ] , a += o } } else if ( 8 === e . nodeType ) if ( e . data === l ) { const t = e . parentNode ; null !== e . previousSibling && r !== o || ( r ++ , t . insertBefore ( _ ( ) , e ) ) , o = r , this . parts . push ( { type : "node" , index : r } ) , null === e . nextSibling ? e . data = "" : ( i . push ( e ) , r -- ) , a ++ } else { let t = - 1 ; for ( ; - 1 !== ( t = e . data . indexOf ( l , t + 1 ) ) ; ) this . parts . push ( { type : "node" , index : - 1 } ) , a ++ } } else n . currentNode = s . pop ( ) } for ( const e of i ) e . parentNode . removeChild ( e ) } } const m = ( e , t ) => { const i = e . length - t . length ; return i >= 0 && e . slice ( i ) === t } , f = e => - 1 !== e . index , _ = ( ) => document . createComment ( "" ) , g = /([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=\/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/ ;
2019-06-30 19:37:32 +02:00
/ * *
* @ license
* Copyright ( c ) 2017 The Polymer Project Authors . All rights reserved .
* This code may only be used under the BSD style license found at
* http : //polymer.github.io/LICENSE.txt
* The complete set of authors may be found at
* http : //polymer.github.io/AUTHORS.txt
* The complete set of contributors may be found at
* http : //polymer.github.io/CONTRIBUTORS.txt
* Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at
* http : //polymer.github.io/PATENTS.txt
* /
2022-08-28 22:33:35 +02:00
class v { constructor ( e , t , i ) { this . _ _parts = [ ] , this . template = e , this . processor = t , this . options = i } update ( e ) { let t = 0 ; for ( const i of this . _ _parts ) void 0 !== i && i . setValue ( e [ t ] ) , t ++ ; for ( const e of this . _ _parts ) void 0 !== e && e . commit ( ) } _clone ( ) { const e = o ? this . template . element . content . cloneNode ( ! 0 ) : document . importNode ( this . template . element . content , ! 0 ) , t = [ ] , i = this . template . parts , s = document . createTreeWalker ( e , 133 , null , ! 1 ) ; let n , r = 0 , a = 0 , c = s . nextNode ( ) ; for ( ; r < i . length ; ) if ( n = i [ r ] , f ( n ) ) { for ( ; a < n . index ; ) a ++ , "TEMPLATE" === c . nodeName && ( t . push ( c ) , s . currentNode = c . content ) , null === ( c = s . nextNode ( ) ) && ( s . currentNode = t . pop ( ) , c = s . nextNode ( ) ) ; if ( "node" === n . type ) { const e = this . processor . handleTextExpression ( this . options ) ; e . insertAfterNode ( c . previousSibling ) , this . _ _parts . push ( e ) } else this . _ _parts . push ( ... this . processor . handleAttributeExpressions ( c , n . name , n . strings , this . options ) ) ; r ++ } else this . _ _parts . push ( void 0 ) , r ++ ; return o && ( document . adoptNode ( e ) , customElements . upgrade ( e ) ) , e } }
2019-06-30 19:37:32 +02:00
/ * *
* @ license
* Copyright ( c ) 2017 The Polymer Project Authors . All rights reserved .
* This code may only be used under the BSD style license found at
* http : //polymer.github.io/LICENSE.txt
* The complete set of authors may be found at
* http : //polymer.github.io/AUTHORS.txt
* The complete set of contributors may be found at
* http : //polymer.github.io/CONTRIBUTORS.txt
* Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at
* http : //polymer.github.io/PATENTS.txt
2022-08-28 22:33:35 +02:00
* / c l a s s y { c o n s t r u c t o r ( e , t , i , s ) { t h i s . s t r i n g s = e , t h i s . v a l u e s = t , t h i s . t y p e = i , t h i s . p r o c e s s o r = s } g e t H T M L ( ) { c o n s t e = t h i s . s t r i n g s . l e n g t h - 1 ; l e t t = " " , i = ! 1 ; f o r ( l e t s = 0 ; s < e ; s + + ) { c o n s t e = t h i s . s t r i n g s [ s ] , n = e . l a s t I n d e x O f ( " \ x 3 c ! - - " ) ; i = ( n > - 1 | | i ) & & - 1 = = = e . i n d e x O f ( " - - \ x 3 e " , n + 1 ) ; c o n s t o = g . e x e c ( e ) ; t + = n u l l = = = o ? e + ( i ? l : h ) : e . s u b s t r ( 0 , o . i n d e x ) + o [ 1 ] + o [ 2 ] + p + o [ 3 ] + l } r e t u r n t + = t h i s . s t r i n g s [ e ] } g e t T e m p l a t e E l e m e n t ( ) { c o n s t e = d o c u m e n t . c r e a t e E l e m e n t ( " t e m p l a t e " ) ; r e t u r n e . i n n e r H T M L = t h i s . g e t H T M L ( ) , e } }
2019-06-30 19:37:32 +02:00
/ * *
* @ license
* Copyright ( c ) 2017 The Polymer Project Authors . All rights reserved .
* This code may only be used under the BSD style license found at
* http : //polymer.github.io/LICENSE.txt
* The complete set of authors may be found at
* http : //polymer.github.io/AUTHORS.txt
* The complete set of contributors may be found at
* http : //polymer.github.io/CONTRIBUTORS.txt
* Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at
* http : //polymer.github.io/PATENTS.txt
2020-05-03 22:33:04 +02:00
* /
2022-08-28 22:33:35 +02:00
const S = e => null === e || ! ( "object" == typeof e || "function" == typeof e ) , b = e => Array . isArray ( e ) || ! ( ! e || ! e [ Symbol . iterator ] ) ; class w { constructor ( e , t , i ) { this . dirty = ! 0 , this . element = e , this . name = t , this . strings = i , this . parts = [ ] ; for ( let e = 0 ; e < i . length - 1 ; e ++ ) this . parts [ e ] = this . _createPart ( ) } _createPart ( ) { return new x ( this ) } _getValue ( ) { const e = this . strings , t = e . length - 1 ; let i = "" ; for ( let s = 0 ; s < t ; s ++ ) { i += e [ s ] ; const t = this . parts [ s ] ; if ( void 0 !== t ) { const e = t . value ; if ( S ( e ) || ! b ( e ) ) i += "string" == typeof e ? e : String ( e ) ; else for ( const t of e ) i += "string" == typeof t ? t : String ( t ) } } return i += e [ t ] } commit ( ) { this . dirty && ( this . dirty = ! 1 , this . element . setAttribute ( this . name , this . _getValue ( ) ) ) } } class x { constructor ( e ) { this . value = void 0 , this . committer = e } setValue ( e ) { e === a || S ( e ) && e === this . value || ( this . value = e , n ( e ) || ( this . committer . dirty = ! 0 ) ) } commit ( ) { for ( ; n ( this . value ) ; ) { const e = this . value ; this . value = a , e ( this ) } this . value !== a && this . committer . commit ( ) } } class P { constructor ( e ) { this . value = void 0 , this . _ _pendingValue = void 0 , this . options = e } appendInto ( e ) { this . startNode = e . appendChild ( _ ( ) ) , this . endNode = e . appendChild ( _ ( ) ) } insertAfterNode ( e ) { this . startNode = e , this . endNode = e . nextSibling } appendIntoPart ( e ) { e . _ _insert ( this . startNode = _ ( ) ) , e . _ _insert ( this . endNode = _ ( ) ) } insertAfterPart ( e ) { e . _ _insert ( this . startNode = _ ( ) ) , this . endNode = e . endNode , e . endNode = this . startNode } setValue ( e ) { this . _ _pendingValue = e } commit ( ) { for ( ; n ( this . _ _pendingValue ) ; ) { const e = this . _ _pendingValue ; this . _ _pendingValue = a , e ( this ) } const e = this . _ _pendingValue ; e !== a && ( S ( e ) ? e !== this . value && this . _ _commitText ( e ) : e instanceof y ? this . _ _commitTemplateResult ( e ) : e instanceof Node ? this . _ _commitNode ( e ) : b ( e ) ? this . _ _commitIterable ( e ) : e === c ? ( this . value = c , this . clear ( ) ) : this . _ _commitText ( e ) ) } _ _insert ( e ) { this . endNode . parentNode . insertBefore ( e , this . endNode ) } _ _commitNode ( e ) { this . value !== e && ( this . clear ( ) , this . _ _insert ( e ) , this . value = e ) } _ _commitText ( e ) { const t = this . startNode . nextSibling ; e = null == e ? "" : e , t === this . endNode . previousSibling && 3 === t . nodeType ? t . data = e : this . _ _commitNode ( document . createTextNode ( "string" == typeof e ? e : String ( e ) ) ) , this . value = e } _ _commitTemplateResult ( e ) { const t = this . options . templateFactory ( e ) ; if ( this . value instanceof v && this . value . template === t ) this . value . update ( e . values ) ; else { const i = new v ( t , e . processor , this . options ) , s = i . _clone ( ) ; i . update ( e . values ) , this . _ _commitNode ( s ) , this . value = i } } _ _commitIterable ( e ) { Array . isArray ( this . value ) || ( this . value = [ ] , this . clear ( ) ) ; const t = this . value ; let i , s = 0 ; for ( const n of e ) void 0 === ( i = t [ s ] ) && ( i = new P ( this . options ) , t . push ( i ) , 0 === s ? i . appendIntoPart ( this ) : i . insertAfterPart ( t [ s - 1 ] ) ) , i . setValue ( n ) , i . commit ( ) , s ++ ; s < t . length && ( t . length = s , this . clear ( i && i . endNode ) ) } clear ( e = this . startNode ) { r ( this . startNode . parentNode , e . nextSibling , this . endNode ) } } class C { constructor ( e , t , i ) { if ( this . value = void 0 , this . _ _pendingValue = void 0 , 2 !== i . length || "" !== i [ 0 ] || "" !== i [ 1 ] ) throw new Error ( "Boolean attributes can only contain a single expression" ) ; this . element = e , this . name = t , this . strings = i } setValue ( e ) { this . _ _pendingValue = e } commit ( ) { for ( ; n ( this . _ _pendingValue ) ; ) { const e = this . _ _pendingValue ; this . _ _pendingValue = a , e ( this ) } if ( this . _ _pendingValue === a ) return ; const e = ! ! this . _ _pendingValue ; this . value !== e && ( e ? this . element . setAttribute ( this . name , "" ) : this . element . removeAttribute ( this . name ) , this . value = e ) , this . _ _pendingValue = a } } class N extends w { constructor ( e , t , i ) { super ( e , t , i ) , this . single = 2 === i . length && "" === i [ 0 ] && "" === i [ 1 ] } _createPart ( ) { return new A ( this ) } _getValue ( ) { return this . single ? this . parts [ 0 ] . value : super . _getValue ( ) } commit ( ) { this . dirty && ( this . dirty = ! 1 , this . element [ this . name ] = this . _getValue ( ) ) } } class A extends x { } let T = ! 1 ; try { const e = { get capture ( ) { return T = ! 0 , ! 1 } } ; window . addEventListener ( "test" , e , e ) , window . removeEventListener ( "test" , e , e ) } catch ( e ) { } class E { constructor ( e , t , i ) { this . value = void 0 , this . _ _pendingValue = void 0 , this . element = e , this . eventName = t , this . eventContext = i , this . _ _boundHandleEvent = e => this . handleEvent ( e ) } setValue ( e ) { this . _ _pendingValue = e } commit ( ) { for ( ; n ( this . _ _pendingValue ) ; ) { const e = this . _ _pendingValue ; this . _ _pendingValue = a , e ( this ) } if ( this . _ _pendingValue === a ) return ; const e = this . _ _pendingValue , t = this . value , i = null == e || null != t && ( e . ca
2019-06-30 19:37:32 +02:00
/ * *
* @ license
* Copyright ( c ) 2017 The Polymer Project Authors . All rights reserved .
* This code may only be used under the BSD style license found at
* http : //polymer.github.io/LICENSE.txt
* The complete set of authors may be found at
* http : //polymer.github.io/AUTHORS.txt
* The complete set of contributors may be found at
* http : //polymer.github.io/CONTRIBUTORS.txt
* Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at
* http : //polymer.github.io/PATENTS.txt
2022-08-28 22:33:35 +02:00
* / c o n s t V = n e w c l a s s { h a n d l e A t t r i b u t e E x p r e s s i o n s ( e , t , i , s ) { c o n s t n = t [ 0 ] ; r e t u r n " . " = = = n ? n e w N ( e , t . s l i c e ( 1 ) , i ) . p a r t s : " @ " = = = n ? [ n e w E ( e , t . s l i c e ( 1 ) , s . e v e n t C o n t e x t ) ] : " ? " = = = n ? [ n e w C ( e , t . s l i c e ( 1 ) , i ) ] : n e w w ( e , t , i ) . p a r t s } h a n d l e T e x t E x p r e s s i o n ( e ) { r e t u r n n e w P ( e ) } } ;
2019-06-30 19:37:32 +02:00
/ * *
* @ license
* Copyright ( c ) 2017 The Polymer Project Authors . All rights reserved .
* This code may only be used under the BSD style license found at
* http : //polymer.github.io/LICENSE.txt
* The complete set of authors may be found at
* http : //polymer.github.io/AUTHORS.txt
* The complete set of contributors may be found at
* http : //polymer.github.io/CONTRIBUTORS.txt
* Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at
* http : //polymer.github.io/PATENTS.txt
2022-08-28 22:33:35 +02:00
* / f u n c t i o n O ( e ) { l e t t = $ . g e t ( e . t y p e ) ; v o i d 0 = = = t & & ( t = { s t r i n g s A r r a y : n e w W e a k M a p , k e y S t r i n g : n e w M a p } , $ . s e t ( e . t y p e , t ) ) ; l e t i = t . s t r i n g s A r r a y . g e t ( e . s t r i n g s ) ; i f ( v o i d 0 ! = = i ) r e t u r n i ; c o n s t s = e . s t r i n g s . j o i n ( l ) ; r e t u r n v o i d 0 = = = ( i = t . k e y S t r i n g . g e t ( s ) ) & & ( i = n e w u ( e , e . g e t T e m p l a t e E l e m e n t ( ) ) , t . k e y S t r i n g . s e t ( s , i ) ) , t . s t r i n g s A r r a y . s e t ( e . s t r i n g s , i ) , i } c o n s t $ = n e w M a p , R = n e w W e a k M a p ;
2019-06-30 19:37:32 +02:00
/ * *
* @ license
* Copyright ( c ) 2017 The Polymer Project Authors . All rights reserved .
* This code may only be used under the BSD style license found at
* http : //polymer.github.io/LICENSE.txt
* The complete set of authors may be found at
* http : //polymer.github.io/AUTHORS.txt
* The complete set of contributors may be found at
* http : //polymer.github.io/CONTRIBUTORS.txt
* Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at
* http : //polymer.github.io/PATENTS.txt
2020-05-03 22:33:04 +02:00
* /
2019-06-30 19:37:32 +02:00
/ * *
* @ license
* Copyright ( c ) 2017 The Polymer Project Authors . All rights reserved .
* This code may only be used under the BSD style license found at
* http : //polymer.github.io/LICENSE.txt
* The complete set of authors may be found at
* http : //polymer.github.io/AUTHORS.txt
* The complete set of contributors may be found at
* http : //polymer.github.io/CONTRIBUTORS.txt
* Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at
* http : //polymer.github.io/PATENTS.txt
* /
2022-08-28 22:33:35 +02:00
( window . litHtmlVersions || ( window . litHtmlVersions = [ ] ) ) . push ( "1.0.0" ) ; const M = ( e , ... t ) => new y ( e , t , "html" , V ) , j = 133 ; function U ( e , t ) { const { element : { content : i } , parts : s } = e , n = document . createTreeWalker ( i , j , null , ! 1 ) ; let o = z ( s ) , r = s [ o ] , a = - 1 , c = 0 ; const l = [ ] ; let h = null ; for ( ; n . nextNode ( ) ; ) { a ++ ; const e = n . currentNode ; for ( e . previousSibling === h && ( h = null ) , t . has ( e ) && ( l . push ( e ) , null === h && ( h = e ) ) , null !== h && c ++ ; void 0 !== r && r . index === a ; ) r . index = null !== h ? - 1 : r . index - c , r = s [ o = z ( s , o ) ] } l . forEach ( e => e . parentNode . removeChild ( e ) ) } const H = e => { let t = 11 === e . nodeType ? 0 : 1 ; const i = document . createTreeWalker ( e , j , null , ! 1 ) ; for ( ; i . nextNode ( ) ; ) t ++ ; return t } , z = ( e , t = - 1 ) => { for ( let i = t + 1 ; i < e . length ; i ++ ) { const t = e [ i ] ; if ( f ( t ) ) return i } return - 1 } ;
2019-06-30 19:37:32 +02:00
/ * *
* @ license
* Copyright ( c ) 2017 The Polymer Project Authors . All rights reserved .
* This code may only be used under the BSD style license found at
* http : //polymer.github.io/LICENSE.txt
* The complete set of authors may be found at
* http : //polymer.github.io/AUTHORS.txt
* The complete set of contributors may be found at
* http : //polymer.github.io/CONTRIBUTORS.txt
* Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at
* http : //polymer.github.io/PATENTS.txt
2020-05-03 22:33:04 +02:00
* /
2022-08-28 22:33:35 +02:00
const q = ( e , t ) => ` ${ e } -- ${ t } ` ; let F = ! 0 ; void 0 === window . ShadyCSS ? F = ! 1 : void 0 === window . ShadyCSS . prepareTemplateDom && ( console . warn ( "Incompatible ShadyCSS version detected. Please update to at least @webcomponents/webcomponentsjs@2.0.2 and @webcomponents/shadycss@1.3.1." ) , F = ! 1 ) ; const L = e => t => { const i = q ( t . type , e ) ; let s = $ . get ( i ) ; void 0 === s && ( s = { stringsArray : new WeakMap , keyString : new Map } , $ . set ( i , s ) ) ; let n = s . stringsArray . get ( t . strings ) ; if ( void 0 !== n ) return n ; const o = t . strings . join ( l ) ; if ( void 0 === ( n = s . keyString . get ( o ) ) ) { const i = t . getTemplateElement ( ) ; F && window . ShadyCSS . prepareTemplateDom ( i , e ) , n = new u ( t , i ) , s . keyString . set ( o , n ) } return s . stringsArray . set ( t . strings , n ) , n } , I = [ "html" , "svg" ] , B = new Set , W = ( e , t , i ) => { B . add ( i ) ; const s = e . querySelectorAll ( "style" ) , { length : n } = s ; if ( 0 === n ) return void window . ShadyCSS . prepareTemplateStyles ( t . element , i ) ; const o = document . createElement ( "style" ) ; for ( let e = 0 ; e < n ; e ++ ) { const t = s [ e ] ; t . parentNode . removeChild ( t ) , o . textContent += t . textContent } ( e => { I . forEach ( t => { const i = $ . get ( q ( t , e ) ) ; void 0 !== i && i . keyString . forEach ( e => { const { element : { content : t } } = e , i = new Set ; Array . from ( t . querySelectorAll ( "style" ) ) . forEach ( e => { i . add ( e ) } ) , U ( e , i ) } ) } ) } ) ( i ) ; const r = t . element . content ; ! function ( e , t , i = null ) { const { element : { content : s } , parts : n } = e ; if ( null == i ) return void s . appendChild ( t ) ; const o = document . createTreeWalker ( s , j , null , ! 1 ) ; let r = z ( n ) , a = 0 , c = - 1 ; for ( ; o . nextNode ( ) ; ) for ( c ++ , o . currentNode === i && ( a = H ( t ) , i . parentNode . insertBefore ( t , i ) ) ; - 1 !== r && n [ r ] . index === c ; ) { if ( a > 0 ) { for ( ; - 1 !== r ; ) n [ r ] . index += a , r = z ( n , r ) ; return } r = z ( n , r ) } } ( t , o , r . firstChild ) , window . ShadyCSS . prepareTemplateStyles ( t . element , i ) ; const a = r . querySelector ( "style" ) ; if ( window . ShadyCSS . nativeShadow && null !== a ) e . insertBefore ( a . cloneNode ( ! 0 ) , e . firstChild ) ; else { r . insertBefore ( o , r . firstChild ) ; const e = new Set ; e . add ( o ) , U ( t , e ) } } ;
2019-06-30 19:37:32 +02:00
/ * *
* @ license
* Copyright ( c ) 2017 The Polymer Project Authors . All rights reserved .
* This code may only be used under the BSD style license found at
* http : //polymer.github.io/LICENSE.txt
* The complete set of authors may be found at
* http : //polymer.github.io/AUTHORS.txt
* The complete set of contributors may be found at
* http : //polymer.github.io/CONTRIBUTORS.txt
* Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at
* http : //polymer.github.io/PATENTS.txt
* /
2022-08-28 22:33:35 +02:00
window . JSCompiler _renameProperty = ( e , t ) => e ; const J = { toAttribute ( e , t ) { switch ( t ) { case Boolean : return e ? "" : null ; case Object : case Array : return null == e ? e : JSON . stringify ( e ) } return e } , fromAttribute ( e , t ) { switch ( t ) { case Boolean : return null !== e ; case Number : return null === e ? null : Number ( e ) ; case Object : case Array : return JSON . parse ( e ) } return e } } , D = ( e , t ) => t !== e && ( t == t || e == e ) , G = { attribute : ! 0 , type : String , converter : J , reflect : ! 1 , hasChanged : D } , K = Promise . resolve ( ! 0 ) , Q = 1 , X = 4 , Y = 8 , Z = 16 , ee = 32 ; class te extends HTMLElement { constructor ( ) { super ( ) , this . _updateState = 0 , this . _instanceProperties = void 0 , this . _updatePromise = K , this . _hasConnectedResolver = void 0 , this . _changedProperties = new Map , this . _reflectingProperties = void 0 , this . initialize ( ) } static get observedAttributes ( ) { this . finalize ( ) ; const e = [ ] ; return this . _classProperties . forEach ( ( t , i ) => { const s = this . _attributeNameForProperty ( i , t ) ; void 0 !== s && ( this . _attributeToPropertyMap . set ( s , i ) , e . push ( s ) ) } ) , e } static _ensureClassProperties ( ) { if ( ! this . hasOwnProperty ( JSCompiler _renameProperty ( "_classProperties" , this ) ) ) { this . _classProperties = new Map ; const e = Object . getPrototypeOf ( this ) . _classProperties ; void 0 !== e && e . forEach ( ( e , t ) => this . _classProperties . set ( t , e ) ) } } static createProperty ( e , t = G ) { if ( this . _ensureClassProperties ( ) , this . _classProperties . set ( e , t ) , t . noAccessor || this . prototype . hasOwnProperty ( e ) ) return ; const i = "symbol" == typeof e ? Symbol ( ) : ` __ ${ e } ` ; Object . defineProperty ( this . prototype , e , { get ( ) { return this [ i ] } , set ( t ) { const s = this [ e ] ; this [ i ] = t , this . _requestUpdate ( e , s ) } , configurable : ! 0 , enumerable : ! 0 } ) } static finalize ( ) { if ( this . hasOwnProperty ( JSCompiler _renameProperty ( "finalized" , this ) ) && this . finalized ) return ; const e = Object . getPrototypeOf ( this ) ; if ( "function" == typeof e . finalize && e . finalize ( ) , this . finalized = ! 0 , this . _ensureClassProperties ( ) , this . _attributeToPropertyMap = new Map , this . hasOwnProperty ( JSCompiler _renameProperty ( "properties" , this ) ) ) { const e = this . properties , t = [ ... Object . getOwnPropertyNames ( e ) , ... "function" == typeof Object . getOwnPropertySymbols ? Object . getOwnPropertySymbols ( e ) : [ ] ] ; for ( const i of t ) this . createProperty ( i , e [ i ] ) } } static _attributeNameForProperty ( e , t ) { const i = t . attribute ; return ! 1 === i ? void 0 : "string" == typeof i ? i : "string" == typeof e ? e . toLowerCase ( ) : void 0 } static _valueHasChanged ( e , t , i = D ) { return i ( e , t ) } static _propertyValueFromAttribute ( e , t ) { const i = t . type , s = t . converter || J , n = "function" == typeof s ? s : s . fromAttribute ; return n ? n ( e , i ) : e } static _propertyValueToAttribute ( e , t ) { if ( void 0 === t . reflect ) return ; const i = t . type , s = t . converter ; return ( s && s . toAttribute || J . toAttribute ) ( e , i ) } initialize ( ) { this . _saveInstanceProperties ( ) , this . _requestUpdate ( ) } _saveInstanceProperties ( ) { this . constructor . _classProperties . forEach ( ( e , t ) => { if ( this . hasOwnProperty ( t ) ) { const e = this [ t ] ; delete this [ t ] , this . _instanceProperties || ( this . _instanceProperties = new Map ) , this . _instanceProperties . set ( t , e ) } } ) } _applyInstanceProperties ( ) { this . _instanceProperties . forEach ( ( e , t ) => this [ t ] = e ) , this . _instanceProperties = void 0 } connectedCallback ( ) { this . _updateState = this . _updateState | ee , this . _hasConnectedResolver && ( this . _hasConnectedResolver ( ) , this . _hasConnectedResolver = void 0 ) } disconnectedCallback ( ) { } attributeChangedCallback ( e , t , i ) { t !== i && this . _attributeToProperty ( e , i ) } _propertyToAttribute ( e , t , i = G ) { const s = this . constructor , n = s . _attributeNameForProperty ( e , i ) ; if ( void 0 !== n ) { const e = s . _propertyValueToAttribute ( t , i ) ; if ( void 0 === e ) return ; this . _updateState = this . _updateState | Y , null == e ? this . removeAttribute ( n ) : this . setAttribute ( n , e ) , this . _updateState = this . _updateState & ~ Y } } _attributeToProperty ( e , t ) { if ( this . _updateState & Y ) return ; const i = this . constructor , s = i . _attributeToPropertyMap . get ( e ) ; if ( void 0 !== s ) { const e = i . _classProperties . get ( s ) || G ; this . _updateState = this . _updateState | Z , this [ s ] = i . _propertyValueFromAttribute ( t , e ) , this . _updateState = this . _updateState & ~ Z } } _requestUpdate ( e , t ) { let i = ! 0 ; if ( void 0 !== e ) { const s = this . constructor , n = s . _classProperties . get ( e ) || G ; s . _valueHasChanged ( this [ e ] , t , n . hasChanged ) ? ( this . _changedProperties . has ( e ) || this . _changedProperties . set ( e , t ) , ! 0 !== n . reflect || this . _updateState & Z || ( void 0 === this . _reflectingProperties && ( this . _reflectingProperties = new Map ) , this . _r
2020-04-19 10:52:45 +02:00
/ * *
2020-05-03 22:33:04 +02:00
* @ license
* Copyright ( c ) 2017 The Polymer Project Authors . All rights reserved .
* This code may only be used under the BSD style license found at
* http : //polymer.github.io/LICENSE.txt
* The complete set of authors may be found at
* http : //polymer.github.io/AUTHORS.txt
* The complete set of contributors may be found at
* http : //polymer.github.io/CONTRIBUTORS.txt
* Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at
* http : //polymer.github.io/PATENTS.txt
* /
2022-08-28 22:33:35 +02:00
const ie = ( e , t ) => "method" !== t . kind || ! t . descriptor || "value" in t . descriptor ? { kind : "field" , key : Symbol ( ) , placement : "own" , descriptor : { } , initializer ( ) { "function" == typeof t . initializer && ( this [ t . key ] = t . initializer . call ( this ) ) } , finisher ( i ) { i . createProperty ( t . key , e ) } } : Object . assign ( { } , t , { finisher ( i ) { i . createProperty ( t . key , e ) } } ) , se = ( e , t , i ) => { t . constructor . createProperty ( i , e ) } ; function ne ( e ) { return ( t , i ) => void 0 !== i ? se ( e , t , i ) : ie ( e , t ) } const oe = "adoptedStyleSheets" in Document . prototype && "replace" in CSSStyleSheet . prototype , re = Symbol ( ) ; class ae { constructor ( e , t ) { if ( t !== re ) throw new Error ( "CSSResult is not constructable. Use `unsafeCSS` or `css` instead." ) ; this . cssText = e } get styleSheet ( ) { return void 0 === this . _styleSheet && ( oe ? ( this . _styleSheet = new CSSStyleSheet , this . _styleSheet . replaceSync ( this . cssText ) ) : this . _styleSheet = null ) , this . _styleSheet } toString ( ) { return this . cssText } } const ce = ( e , ... t ) => { const i = t . reduce ( ( t , i , s ) => t + ( e => { if ( e instanceof ae ) return e . cssText ; if ( "number" == typeof e ) return e ; throw new Error ( ` Value passed to 'css' function must be a 'css' function result: ${ e } . Use 'unsafeCSS' to pass non-literal values, but \n take care to ensure page security. ` ) } ) ( i ) + e [ s + 1 ] , e [ 0 ] ) ; return new ae ( i , re ) } ;
2019-06-30 19:37:32 +02:00
/ * *
* @ license
2020-04-19 10:52:45 +02:00
* Copyright ( c ) 2017 The Polymer Project Authors . All rights reserved .
2019-06-30 19:37:32 +02:00
* This code may only be used under the BSD style license found at
* http : //polymer.github.io/LICENSE.txt
* The complete set of authors may be found at
* http : //polymer.github.io/AUTHORS.txt
* The complete set of contributors may be found at
* http : //polymer.github.io/CONTRIBUTORS.txt
* Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at
* http : //polymer.github.io/PATENTS.txt
* /
2022-08-28 22:33:35 +02:00
( window . litElementVersions || ( window . litElementVersions = [ ] ) ) . push ( "2.2.0" ) ; const le = e => e . flat ? e . flat ( 1 / 0 ) : function e ( t , i = [ ] ) { for ( let s = 0 , n = t . length ; s < n ; s ++ ) { const n = t [ s ] ; Array . isArray ( n ) ? e ( n , i ) : i . push ( n ) } return i } ( e ) ; class he extends te { static finalize ( ) { super . finalize ( ) , this . _styles = this . hasOwnProperty ( JSCompiler _renameProperty ( "styles" , this ) ) ? this . _getUniqueStyles ( ) : this . _styles || [ ] } static _getUniqueStyles ( ) { const e = this . styles , t = [ ] ; if ( Array . isArray ( e ) ) { le ( e ) . reduceRight ( ( e , t ) => ( e . add ( t ) , e ) , new Set ) . forEach ( e => t . unshift ( e ) ) } else e && t . push ( e ) ; return t } initialize ( ) { super . initialize ( ) , this . renderRoot = this . createRenderRoot ( ) , window . ShadowRoot && this . renderRoot instanceof window . ShadowRoot && this . adoptStyles ( ) } createRenderRoot ( ) { return this . attachShadow ( { mode : "open" } ) } adoptStyles ( ) { const e = this . constructor . _styles ; 0 !== e . length && ( void 0 === window . ShadyCSS || window . ShadyCSS . nativeShadow ? oe ? this . renderRoot . adoptedStyleSheets = e . map ( e => e . styleSheet ) : this . _needsShimAdoptedStyleSheets = ! 0 : window . ShadyCSS . ScopingShim . prepareAdoptedCssText ( e . map ( e => e . cssText ) , this . localName ) ) } connectedCallback ( ) { super . connectedCallback ( ) , this . hasUpdated && void 0 !== window . ShadyCSS && window . ShadyCSS . styleElement ( this ) } update ( e ) { super . update ( e ) ; const t = this . render ( ) ; t instanceof y && this . constructor . render ( t , this . renderRoot , { scopeName : this . localName , eventContext : this } ) , this . _needsShimAdoptedStyleSheets && ( this . _needsShimAdoptedStyleSheets = ! 1 , this . constructor . _styles . forEach ( e => { const t = document . createElement ( "style" ) ; t . textContent = e . cssText , this . renderRoot . appendChild ( t ) } ) ) } render ( ) { } } he . finalized = ! 0 , he . render = ( e , t , i ) => { const s = i . scopeName , n = R . has ( t ) , o = F && 11 === t . nodeType && ! ! t . host && e instanceof y , a = o && ! B . has ( s ) , c = a ? document . createDocumentFragment ( ) : t ; if ( ( ( e , t , i ) => { let s = R . get ( t ) ; void 0 === s && ( r ( t , t . firstChild ) , R . set ( t , s = new P ( Object . assign ( { templateFactory : O } , i ) ) ) , s . appendInto ( t ) ) , s . setValue ( e ) , s . commit ( ) } ) ( e , c , Object . assign ( { templateFactory : L ( s ) } , i ) ) , a ) { const e = R . get ( c ) ; R . delete ( c ) , e . value instanceof v && W ( c , e . value . template , s ) , r ( t , t . firstChild ) , t . appendChild ( c ) , R . set ( t , e ) } ! n && o && window . ShadyCSS . styleElement ( t . host ) } , i . d ( t , "RoomGlanceCard" , function ( ) { return pe } ) ; var de = function ( e , t , i , s ) { var n , o = arguments . length , r = o < 3 ? t : null === s ? s = Object . getOwnPropertyDescriptor ( t , i ) : s ; if ( "object" == typeof Reflect && "function" == typeof Reflect . decorate ) r = Reflect . decorate ( e , t , i , s ) ; else for ( var a = e . length - 1 ; a >= 0 ; a -- ) ( n = e [ a ] ) && ( r = ( o < 3 ? n ( r ) : o > 3 ? n ( t , i , r ) : n ( t , i ) ) || r ) ; return o > 3 && r && Object . defineProperty ( t , i , r ) , r } ; let pe = class extends he { setConfig ( e ) { console . log ( "Setting config" , e ) , this . _config = e } static getCardSize ( ) { return 3 } render ( ) { return this . _config . scenes . length >= 5 ? M `
2020-04-19 11:20:24 +02:00
< ha - card >
< img style = "width: 100%; display: block" src = "${this._config.image}" >
2019-06-30 19:37:32 +02:00
2020-04-19 11:20:24 +02:00
< div class = "box box-top" >
< div > $ { this . _config . name } < / d i v >
< div >
$ { this . renderCoverControl ( ) }
< / d i v >
< / d i v >
< div class = "box box-upper" >
< div class = "title" > < / d i v >
< div > $ { this . renderLightControl ( ) } < / d i v >
< / d i v >
< div class = "box box-lower" >
< div class = "title" > < / d i v >
< div >
2022-08-28 22:33:35 +02:00
$ { this . _config . scenes . map ( e => this . renderSceneButton ( e ) ) }
2020-04-19 11:20:24 +02:00
< / d i v >
< / d i v >
< / h a - c a r d >
2020-05-03 22:33:04 +02:00
` :M `
2020-04-19 11:20:24 +02:00
< ha - card >
< img style = "width: 100%; display: block" src = "${this._config.image}" >
< div class = "box box-upper" >
< div class = "title" > < / d i v >
< div > $ { this . _config . name } < / d i v >
< div >
$ { this . renderCoverControl ( ) }
< / d i v >
< / d i v >
< div class = "box box-lower" >
< div class = "title" > < / d i v >
< div >
2022-08-28 22:33:35 +02:00
$ { this . _config . scenes . map ( e => this . renderSceneButton ( e ) ) }
2020-04-19 11:20:24 +02:00
$ { this . renderLightControl ( ) }
< / d i v >
< / d i v >
< / h a - c a r d >
2022-08-28 22:33:35 +02:00
` }renderSceneButton(e){return M `
2020-07-14 15:42:58 +02:00
< ha - icon - button
2022-08-28 22:33:35 +02:00
icon = "${e.icon||" mdi : checkbox - blank "}"
title = "${e.name}"
@ click = $ { this . serviceHandler ( "scene" , "turn_on" , { entity _id : e . scene } ) }
>
< ha - icon style = "color: ${e.color||" "};"
icon = "${e.icon||" mdi : checkbox - blank "}" > < / h a - i c o n >
< / h a - i c o n - b u t t o n >
2020-05-03 22:33:04 +02:00
` }renderLightControl(){return M `
2020-07-14 15:42:58 +02:00
< ha - icon - button
2020-04-19 11:20:24 +02:00
icon = "mdi:close-circle"
@ click = $ { this . serviceHandler ( "light" , "turn_off" ) }
2022-08-28 22:33:35 +02:00
>
< ha - icon icon = "mdi:close-circle" > < / h a - i c o n >
< / h a - i c o n - b u t t o n >
2020-04-19 11:20:24 +02:00
2020-07-14 15:42:58 +02:00
< ha - icon - button
2020-04-19 11:20:24 +02:00
icon = "mdi:chevron-up"
title = "Heller"
@ click = $ { this . serviceHandler ( "dimmer" , "dim" , { offset : 30 } ) }
2022-08-28 22:33:35 +02:00
>
< ha - icon icon = "mdi:chevron-up" > < / h a - i c o n >
< / h a - i c o n - b u t t o n >
2020-07-14 15:42:58 +02:00
< ha - icon - button
2020-04-19 11:20:24 +02:00
icon = "mdi:chevron-down"
title = "Dunkler"
@ click = $ { this . serviceHandler ( "dimmer" , "dim" , { offset : - 30 } ) }
2022-08-28 22:33:35 +02:00
>
< ha - icon icon = "mdi:chevron-down" > < / h a - i c o n >
< / h a - i c o n - b u t t o n > ` } r e n d e r C o v e r C o n t r o l ( ) { r e t u r n M `
2020-07-14 15:42:58 +02:00
< ha - icon - button
2019-06-30 19:37:32 +02:00
icon = "hass:menu"
@ click = $ { this . serviceHandler ( "cover_half" , "set_half" ) }
2022-08-28 22:33:35 +02:00
>
< ha - icon icon = "hass:menu" > < / h a - i c o n >
< / h a - i c o n - b u t t o n >
2020-07-14 15:42:58 +02:00
< ha - icon - button
2019-06-30 19:37:32 +02:00
icon = "hass:arrow-up"
@ click = $ { this . serviceHandler ( "cover" , "open_cover" ) }
2022-08-28 22:33:35 +02:00
>
< ha - icon icon = "hass:arrow-up" > < / h a - i c o n >
< / h a - i c o n - b u t t o n >
2020-07-14 15:42:58 +02:00
< ha - icon - button
2019-06-30 19:37:32 +02:00
icon = "hass:stop"
@ click = $ { this . serviceHandler ( "cover" , "stop_cover" ) }
2022-08-28 22:33:35 +02:00
>
< ha - icon icon = "hass:stop" > < / h a - i c o n >
< / h a - i c o n - b u t t o n >
2020-07-14 15:42:58 +02:00
< ha - icon - button
2019-06-30 19:37:32 +02:00
icon = "hass:arrow-down"
@ click = $ { this . serviceHandler ( "cover" , "close_cover" ) }
2022-08-28 22:33:35 +02:00
>
< ha - icon icon = "hass:arrow-down" > < / h a - i c o n >
< / h a - i c o n - b u t t o n >
` }serviceHandler(e,t,i={}){const s=this;return function(n){n.stopPropagation(),s.callServiceForAllEntities(e,t,i)}}callServiceForAllEntities(e,t,i={}){if(i.hasOwnProperty("entity_id"))console.log("Calling service with given entity_id",e,t,i),this.hass.callService(e,t,i);else for(let s of this._config.entities)i.entity_id=s,console.log("Calling service",e,t,i),this.hass.callService(e,t,i)}_handleTap(){console.log("Image tap")}_handleHold(){console.log("Image hold")}static get styles(){return ce `
2019-06-30 19:37:32 +02:00
ha - card {
position : relative ;
min - height : 48 px ;
overflow : hidden ;
}
2020-04-19 10:52:45 +02:00
my - image . clickable {
2019-06-30 19:37:32 +02:00
cursor : pointer ;
}
. box {
/* start paper-font-common-nowrap style */
white - space : nowrap ;
overflow : hidden ;
text - overflow : ellipsis ;
/* end paper-font-common-nowrap style */
position : absolute ;
left : 0 ;
right : 0 ;
2020-04-19 10:52:45 +02:00
bottom : 0 ;
2019-06-30 19:37:32 +02:00
padding - left : 8 px ;
padding - right : 8 px ;
font - size : 16 px ;
line - height : 40 px ;
color : white ;
display : flex ;
2020-04-19 10:52:45 +02:00
flex - direction : row ;
2019-06-30 19:37:32 +02:00
justify - content : space - between ;
background - color : rgba ( 0 , 0 , 0 , 0.3 ) ;
}
2020-04-19 11:20:24 +02:00
. box - top {
bottom : 90 px ;
height : 45 px ;
padding - top : 0 px ;
padding - bottom : 0 ;
}
2019-06-30 19:37:32 +02:00
. box - upper {
bottom : 45 px ;
2020-04-19 11:20:24 +02:00
height : 45 px ;
padding - top : 0 px ;
2019-06-30 19:37:32 +02:00
padding - bottom : 0 ;
}
. box - lower {
bottom : 0 ;
padding - top : 0 ;
padding - bottom : 0 px ;
height : 45 px ;
}
. box . title {
font - weight : 500 ;
margin - left : 8 px ;
}
ha - icon {
2022-08-28 22:33:35 +02:00
height : auto ;
2019-06-30 19:37:32 +02:00
}
ha - icon . state - on {
color : white ;
}
2022-08-28 22:33:35 +02:00
` }};de([ne()],pe.prototype,"hass",void 0),de([ne()],pe.prototype,"_config",void 0),pe=de([(e=>t=>"function"==typeof t?((e,t)=>(window.customElements.define(e,t),t))(e,t):((e,t)=>{const{kind:i,elements:s}=t;return{kind:i,elements:s,finisher(t){window.customElements.define(e,t)}}})(e,t))("room-glance-card")],pe)}]);