22 * Modern replacement for AnimatedElement using CSS transitions and Web Animations API
33 */
44export default class AnimatedElement {
5- public selector : string ;
6- protected showClass ?: string ;
7- protected activeClass ?: string ;
8- protected inactiveClass ?: string ;
9- protected nestedContentSelector ?: string ;
5+ public _selector : string ;
6+ protected _showClass ?: string ;
7+ protected _activeClass ?: string ;
8+ protected _inactiveClass ?: string ;
9+ protected _nestedContentSelector ?: string ;
1010
1111 constructor (
1212 selector : string ,
@@ -15,24 +15,24 @@ export default class AnimatedElement {
1515 inactiveClass ?: string ,
1616 nestedContentSelector ?: string ,
1717 ) {
18- this . selector = selector ;
19- this . showClass = showClass ;
20- this . activeClass = activeClass ;
21- this . inactiveClass = inactiveClass ;
22- this . nestedContentSelector = nestedContentSelector ;
18+ this . _selector = selector ;
19+ this . _showClass = showClass ;
20+ this . _activeClass = activeClass ;
21+ this . _inactiveClass = inactiveClass ;
22+ this . _nestedContentSelector = nestedContentSelector ;
2323 }
2424
2525 /**
2626 * Show element using CSS classes and wait for animations to complete
2727 */
28- async show ( ) : Promise < void > {
28+ async _show ( ) : Promise < void > {
2929 const element = this . element ;
3030 if ( ! element || this . shown ) {
3131 return ;
3232 }
3333
34- if ( this . showClass ) {
35- element . classList . add ( this . showClass ) ;
34+ if ( this . _showClass ) {
35+ element . classList . add ( this . _showClass ) ;
3636 }
3737
3838 await this . waitForAnimations ( ) ;
@@ -47,8 +47,8 @@ export default class AnimatedElement {
4747 return ;
4848 }
4949
50- if ( this . showClass ) {
51- element . classList . remove ( this . showClass ) ;
50+ if ( this . _showClass ) {
51+ element . classList . remove ( this . _showClass ) ;
5252 }
5353
5454 await this . waitForAnimations ( ) ;
@@ -57,17 +57,17 @@ export default class AnimatedElement {
5757 /**
5858 * Activate element using CSS classes
5959 */
60- async activate ( ) : Promise < void > {
60+ async _activate ( ) : Promise < void > {
6161 const element = this . element ;
6262 if ( ! element || this . active ) {
6363 return ;
6464 }
6565
66- if ( this . inactiveClass ) {
67- element . classList . remove ( this . inactiveClass ) ;
66+ if ( this . _inactiveClass ) {
67+ element . classList . remove ( this . _inactiveClass ) ;
6868 }
69- if ( this . activeClass ) {
70- element . classList . add ( this . activeClass ) ;
69+ if ( this . _activeClass ) {
70+ element . classList . add ( this . _activeClass ) ;
7171 }
7272
7373 await this . waitForAnimations ( ) ;
@@ -76,17 +76,17 @@ export default class AnimatedElement {
7676 /**
7777 * Inactivate element using CSS classes
7878 */
79- async inactivate ( ) : Promise < void > {
79+ async _inactivate ( ) : Promise < void > {
8080 const element = this . element ;
8181 if ( ! element || ! this . active ) {
8282 return ;
8383 }
8484
85- if ( this . activeClass ) {
86- element . classList . remove ( this . activeClass ) ;
85+ if ( this . _activeClass ) {
86+ element . classList . remove ( this . _activeClass ) ;
8787 }
88- if ( this . inactiveClass ) {
89- element . classList . add ( this . inactiveClass ) ;
88+ if ( this . _inactiveClass ) {
89+ element . classList . add ( this . _inactiveClass ) ;
9090 }
9191
9292 await this . waitForAnimations ( ) ;
@@ -95,8 +95,8 @@ export default class AnimatedElement {
9595 /**
9696 * Wait for all CSS animations/transitions to complete
9797 */
98- protected async waitForAnimations ( ) : Promise < void > {
99- const element = this . element ;
98+ protected async _waitForAnimations ( ) : Promise < void > {
99+ const element = this . _element ;
100100 if ( ! element ) return ;
101101
102102 const animations = element . getAnimations ( ) ;
@@ -108,24 +108,24 @@ export default class AnimatedElement {
108108 /**
109109 * Get or set element content
110110 */
111- get content ( ) : string {
112- const element = this . element ;
111+ get _content ( ) : string {
112+ const element = this . _element ;
113113 if ( ! element ) return '' ;
114114
115- if ( this . nestedContentSelector ) {
116- const nestedElement = element . querySelector ( this . nestedContentSelector ) ;
115+ if ( this . _nestedContentSelector ) {
116+ const nestedElement = element . querySelector ( this . _nestedContentSelector ) ;
117117 return nestedElement ?. textContent ?? '' ;
118118 }
119119
120120 return element . textContent ?? '' ;
121121 }
122122
123- set content ( value : string ) {
124- const element = this . element ;
123+ set _content ( value : string ) {
124+ const element = this . _element ;
125125 if ( ! element ) return ;
126126
127- if ( this . nestedContentSelector ) {
128- const nestedElement = element . querySelector ( this . nestedContentSelector ) ;
127+ if ( this . _nestedContentSelector ) {
128+ const nestedElement = element . querySelector ( this . _nestedContentSelector ) ;
129129 if ( nestedElement ) {
130130 nestedElement . textContent = value ;
131131 }
@@ -137,23 +137,23 @@ export default class AnimatedElement {
137137 /**
138138 * Get the DOM element (lazy-loaded)
139139 */
140- get element ( ) : HTMLElement | null {
141- return document . querySelector ( this . selector ) ;
140+ get _element ( ) : HTMLElement | null {
141+ return document . querySelector ( this . _selector ) ;
142142 }
143143
144144 /**
145145 * State getters
146146 */
147- get shown ( ) : boolean {
148- const element = this . element ;
149- return element ?. classList . contains ( this . showClass ?? '' ) ?? false ;
147+ get _shown ( ) : boolean {
148+ const element = this . _element ;
149+ return element ?. classList . contains ( this . _showClass ?? '' ) ?? false ;
150150 }
151151
152- get active ( ) : boolean {
153- const element = this . element ;
154- if ( this . inactiveClass ) {
155- return ! ( element ?. classList . contains ( this . inactiveClass ) ?? false ) ;
152+ get _active ( ) : boolean {
153+ const element = this . _element ;
154+ if ( this . _inactiveClass ) {
155+ return ! ( element ?. classList . contains ( this . _inactiveClass ) ?? false ) ;
156156 }
157- return element ?. classList . contains ( this . activeClass ?? '' ) ?? false ;
157+ return element ?. classList . contains ( this . _activeClass ?? '' ) ?? false ;
158158 }
159159}
0 commit comments