@@ -76,11 +76,18 @@ export class Parser {
7676 constructor ( public getTagDefinition : ( tagName : string ) => TagDefinition ) { }
7777
7878 parse (
79- source : string , url : string , options ?: TokenizeOptions , isTagNameCaseSensitive = false ,
79+ source : string ,
80+ url : string ,
81+ options ?: TokenizeOptions ,
82+ isTagNameCaseSensitive = false ,
8083 getTagContentType ?:
81- ( tagName : string , prefix : string , hasParent : boolean ,
82- attrs : Array < { prefix : string , name : string , value ?: string } > ) => void |
83- TagContentType ) : ParseTreeResult {
84+ (
85+ tagName : string ,
86+ prefix : string ,
87+ hasParent : boolean ,
88+ attrs : Array < { prefix : string , name : string , value ?: string } >
89+ ) => void | TagContentType
90+ ) : ParseTreeResult {
8491 const lowercasify = < T , U extends any [ ] > ( fn : ( x : string , ...args : U ) => T ) =>
8592 ( x : string , ...args : U ) : T => fn ( x . toLowerCase ( ) , ...args ) ;
8693 const getTagDefinition =
@@ -104,8 +111,12 @@ export class Parser {
104111 const canSelfClose = ( options && options . canSelfClose ) || false ;
105112 const allowHtmComponentClosingTags = ( options && options . allowHtmComponentClosingTags ) || false ;
106113 const parser = new _TreeBuilder (
107- tokenizeResult . tokens , getTagDefinition , canSelfClose , allowHtmComponentClosingTags ,
108- isTagNameCaseSensitive ) ;
114+ tokenizeResult . tokens ,
115+ getTagDefinition ,
116+ canSelfClose ,
117+ allowHtmComponentClosingTags ,
118+ isTagNameCaseSensitive
119+ ) ;
109120 parser . build ( ) ;
110121 return new ParseTreeResult (
111122 parser . rootNodes ,
@@ -126,9 +137,9 @@ class _TreeBuilder {
126137 constructor (
127138 private tokens : Token [ ] ,
128139 private tagDefinitionResolver : ( tagName : string ) => TagDefinition ,
129- private getTagDefinition : ( tagName : string ) => TagDefinition ,
130140 private canSelfClose : boolean ,
131141 private allowHtmComponentClosingTags : boolean ,
142+ private isTagNameCaseSensitive : boolean ,
132143 ) {
133144 this . _advance ( ) ;
134145 }
@@ -142,7 +153,7 @@ class _TreeBuilder {
142153 this . _consumeElementStartTag ( this . _advance ( ) ) ;
143154 } else if ( this . _peek . type === TokenType . TAG_CLOSE ) {
144155 this . _closeVoidElement ( ) ;
145- this . _consumeEndTag ( this . _advance ( ) ) ;
156+ this . _consumeElementEndTag ( this . _advance ( ) ) ;
146157 } else if ( this . _peek . type === TokenType . CDATA_START ) {
147158 this . _closeVoidElement ( ) ;
148159 this . _consumeCdata ( this . _advance ( ) ) ;
@@ -314,7 +325,6 @@ class _TreeBuilder {
314325 const expansionCaseParser = new _TreeBuilder (
315326 exp ,
316327 this . tagDefinitionResolver ,
317- this . getTagDefinition ,
318328 this . canSelfClose ,
319329 this . allowHtmComponentClosingTags
320330 ) ;
@@ -392,9 +402,9 @@ class _TreeBuilder {
392402 private _getText ( token : InterpolatedTextToken ) {
393403 let text = token . parts [ 0 ] ;
394404 if ( text . length > 0 && text [ 0 ] == '\n' ) {
395- const parent = this . _getClosestParentElement ( ) ;
405+ const parent = this . _getClosestElementLikeParent ( ) ;
396406 if ( parent != null && parent . children . length == 0 &&
397- this . getTagDefinition ( parent . name ) . ignoreFirstLf ) {
407+ this . _getTagDefinition ( parent ) ? .ignoreFirstLf ) {
398408 text = text . substring ( 1 ) ;
399409 }
400410 }
@@ -628,15 +638,10 @@ class _TreeBuilder {
628638 }
629639
630640 private _consumeElementEndTag ( endTagToken : TagCloseToken ) {
631- // @ts -expect-error -- in angular-html-parser endTagToken.parts.length can be 0 (HTM component
632- // end-tags)
641+ // @ts -expect-error -- in angular-html-parser endTagToken.parts.length can be 0 (HTM component end-tags)
633642 const fullName = this . allowHtmComponentClosingTags && endTagToken . parts . length === 0 ?
634643 null :
635- this . _getElementFullName (
636- endTagToken . parts [ 0 ] ,
637- endTagToken . parts [ 1 ] ,
638- this . _getClosestParentElement ( ) ,
639- ) ;
644+ this . _getElementFullName ( endTagToken , this . _getClosestElementLikeParent ( ) ) ; ;
640645
641646 if ( fullName && this . _getTagDefinition ( fullName ) ?. isVoid ) {
642647 this . errors . push (
0 commit comments