@@ -30,19 +30,21 @@ import { tagNameLower as tagNameLowerFn, setHtml, domData, parseHtmlForTemplateN
3030const templateScript = 1 ,
3131 templateTextArea = 2 ,
3232 templateTemplate = 3 ,
33- templateElement = 4
33+ templateElement = 4 ,
34+ templateAnonymous = 5
3435
3536export interface TemplateSource {
36- //constructor(element: Node);
37-
3837 text ( ) : string
3938 text ( valueToWrite : string ) : void
39+ text ( valueToWrite ?: string ) : string | void
4040
4141 data ( key : string ) : any
4242 data < T > ( key : string ) : T
4343 data < T > ( key : string , valueToWrite : T ) : void
4444
45- nodes ?: { ( ) : Node ; ( valueToWrite : Node ) : void }
45+ nodes ( ) : Node
46+ nodes ( valueToWrite : Node ) : undefined
47+ nodes ( valueToWrite ?: any ) : Node | undefined
4648}
4749
4850const dataDomDataPrefix = domData . nextKey ( ) + '_'
@@ -55,8 +57,8 @@ function setTemplateDomData(element, data) {
5557}
5658
5759export class domElement implements TemplateSource {
58- domElement : Element | Comment
59- templateType : number
60+ protected domElement : Element | Comment
61+ protected templateType : number
6062
6163 constructor ( element : Element | Comment ) {
6264 this . domElement = element
@@ -143,21 +145,22 @@ export class domElement implements TemplateSource {
143145export class anonymousTemplate extends domElement {
144146 constructor ( element : Element | Comment ) {
145147 super ( element )
148+ //The old prototype construct uses an empty-constructor from domElement, so templateType and element was 'undefined'.
149+ //With the new templateType = templateAnonymous (5) we achieve the same behavior in the "nodes" Method
150+ this . templateType = templateAnonymous
146151 }
147152
148153 override text ( ) : string
149- override text ( valueToWrite : string ) : undefined
150- override text ( /* valueToWrite */ ) : string | undefined {
154+ override text ( valueToWrite : string ) : void
155+ override text ( valueToWrite ?: string ) : string | void {
151156 if ( arguments . length == 0 ) {
152157 const templateData = getTemplateDomData ( this . domElement )
153158 if ( templateData . textData === undefined && templateData . containerData ) {
154159 templateData . textData = templateData . containerData . innerHTML
155160 }
156161 return templateData . textData
157162 } else {
158- const valueToWrite = arguments [ 0 ]
159163 setTemplateDomData ( this . domElement , { textData : valueToWrite } )
160164 }
161- return undefined
162165 }
163166}
0 commit comments