@@ -223,10 +223,10 @@ export function* generateComponent(
223
223
yield endOfLine ;
224
224
}
225
225
226
- const refName = yield * generateVScope ( options , ctx , node , props ) ;
226
+ const [ refName , offset ] = yield * generateVScope ( options , ctx , node , props ) ;
227
227
if ( refName ) {
228
228
const varName = ctx . getInternalVariable ( ) ;
229
- options . templateRefNames . set ( refName , varName ) ;
229
+ options . templateRefNames . set ( refName , [ varName , offset ! ] ) ;
230
230
ctx . usedComponentCtxVars . add ( var_defineComponentCtx ) ;
231
231
232
232
yield `// @ts-ignore${ newLine } ` ;
@@ -332,9 +332,9 @@ export function* generateElement(
332
332
yield endOfLine ;
333
333
}
334
334
335
- const refName = yield * generateVScope ( options , ctx , node , node . props ) ;
335
+ const [ refName , offset ] = yield * generateVScope ( options , ctx , node , node . props ) ;
336
336
if ( refName ) {
337
- options . templateRefNames . set ( refName , `__VLS_intrinsicElements['${ node . tag } ']` ) ;
337
+ options . templateRefNames . set ( refName , [ `__VLS_intrinsicElements['${ node . tag } ']` , offset ! ] ) ;
338
338
}
339
339
340
340
const slotDir = node . props . find ( p => p . type === CompilerDOM . NodeTypes . DIRECTIVE && p . name === 'slot' ) as CompilerDOM . DirectiveNode ;
@@ -361,7 +361,7 @@ function* generateVScope(
361
361
ctx : TemplateCodegenContext ,
362
362
node : CompilerDOM . ElementNode ,
363
363
props : ( CompilerDOM . AttributeNode | CompilerDOM . DirectiveNode ) [ ]
364
- ) : Generator < Code > {
364
+ ) : Generator < Code , [ refName ?: string , offset ?: number ] > {
365
365
const vScope = props . find ( prop => prop . type === CompilerDOM . NodeTypes . DIRECTIVE && ( prop . name === 'scope' || prop . name === 'data' ) ) ;
366
366
let inScope = false ;
367
367
let originalConditionsNum = ctx . blockConditions . length ;
@@ -385,14 +385,14 @@ function* generateVScope(
385
385
}
386
386
387
387
yield * generateElementDirectives ( options , ctx , node ) ;
388
- const refName = yield * generateReferencesForElements ( options , ctx , node ) ; // <el ref="foo" />
388
+ const [ refName , offset ] = yield * generateReferencesForElements ( options , ctx , node ) ; // <el ref="foo" />
389
389
yield * generateReferencesForScopedCssClasses ( options , ctx , node ) ;
390
390
391
391
if ( inScope ) {
392
392
yield `}${ newLine } ` ;
393
393
ctx . blockConditions . length = originalConditionsNum ;
394
394
}
395
- return refName ;
395
+ return [ refName , offset ] ;
396
396
}
397
397
398
398
export function getCanonicalComponentName ( tagText : string ) {
@@ -541,7 +541,7 @@ function* generateReferencesForElements(
541
541
options : TemplateCodegenOptions ,
542
542
ctx : TemplateCodegenContext ,
543
543
node : CompilerDOM . ElementNode
544
- ) : Generator < Code > {
544
+ ) : Generator < Code , [ refName : string , offset : number ] | [ ] > {
545
545
for ( const prop of node . props ) {
546
546
if (
547
547
prop . type === CompilerDOM . NodeTypes . ATTRIBUTE
@@ -566,9 +566,10 @@ function* generateReferencesForElements(
566
566
ctx . accessExternalVariable ( content , startOffset ) ;
567
567
}
568
568
569
- return prop . value . content ;
569
+ return [ content , startOffset ] ;
570
570
}
571
571
}
572
+ return [ ] ;
572
573
}
573
574
574
575
function * generateReferencesForScopedCssClasses (
0 commit comments