@@ -5,6 +5,7 @@ import { VariantSentenceType } from '../enums/VariantSentenceType';
55import { getValidUiElementsNodes , isIterable , isVisible } from '../util' ;
66import { UIElementGenerator } from './UIElementGenerator' ;
77import { UiElementsTypes } from '../enums/UiElementsTypes' ;
8+ import { HTMLElementType } from '../enums/HTMLElementType' ;
89
910export class VariantSentencesGenerator {
1011 constructor ( private uiElementGenerator : UIElementGenerator ) { }
@@ -117,6 +118,7 @@ export class VariantSentencesGenerator {
117118 VariantSentenceType . AND ,
118119 VariantSentenceActions . NOTSEE ,
119120 [ { property : property , value : value } ] ,
121+ false
120122 ) ;
121123 } else {
122124 sentences = this . createSentencesForMutations (
@@ -262,7 +264,8 @@ export class VariantSentencesGenerator {
262264 node ,
263265 VariantSentenceType . AND ,
264266 action ,
265- [ { property : 'hidden' , value : node . hidden } ]
267+ [ { property : 'hidden' , value : node . hidden } ] ,
268+ false
266269 ) ;
267270 }
268271
@@ -274,10 +277,22 @@ export class VariantSentencesGenerator {
274277 type : VariantSentenceType ,
275278 action : string ,
276279 attr : Array < { property : string ; value : string } > = [ ] ,
280+ checkVisibility = true
277281 ) : VariantSentence [ ] {
278282 let sentences : VariantSentence [ ] = [ ] ;
279283
280- let uiElement : UIElement | null = this . uiElementGenerator . createFromElement ( element ) ;
284+ let uiElement : UIElement | null = null ;
285+
286+ if ( checkVisibility ) {
287+ uiElement =
288+ ! ( element instanceof Text ) && isVisible ( element )
289+ ? this . uiElementGenerator . createFromElement ( element )
290+ : null
291+ }
292+ else {
293+ uiElement = this . uiElementGenerator . createFromElement ( element ) ;
294+ }
295+
281296 if ( uiElement ) {
282297 sentences . push ( new VariantSentence ( type , action , uiElement , attr ) ) ;
283298 } else {
0 commit comments