diff --git a/packages/angular-output-target/package.json b/packages/angular-output-target/package.json index 5c41dace..23598925 100644 --- a/packages/angular-output-target/package.json +++ b/packages/angular-output-target/package.json @@ -39,7 +39,7 @@ "@angular/forms": "8.2.14" }, "peerDependencies": { - "@stencil/core": "^2.9.0" + "@stencil/core": "^2.17.2" }, "jest": { "transform": { diff --git a/packages/angular-output-target/src/generate-angular-component.ts b/packages/angular-output-target/src/generate-angular-component.ts index 9ad0e830..b0e17f54 100644 --- a/packages/angular-output-target/src/generate-angular-component.ts +++ b/packages/angular-output-target/src/generate-angular-component.ts @@ -30,6 +30,10 @@ export const createComponentDefinition = ( } const tagNameAsPascal = dashToPascalCase(cmpMeta.tagName); + const classTypeParams = + cmpMeta.componentClassTypeParameters.length > 0 + ? `<${cmpMeta.componentClassTypeParameters.join(',')}>` + : ''; const outputsInterface: Set = new Set(); const outputReferenceRemap: { [p: string]: string } = {}; @@ -90,7 +94,7 @@ export const createComponentDefinition = ( const lines = [ '', // Empty first line `${[...outputsInterface].join('\n')} -export declare interface ${tagNameAsPascal} extends Components.${tagNameAsPascal} {${componentEvents.length > 1 ? componentEvents.join('\n') : ''}} +export declare interface ${tagNameAsPascal}${classTypeParams} extends Components.${tagNameAsPascal}${classTypeParams} {${componentEvents.length > 1 ? componentEvents.join('\n') : ''}} ${getProxyCmp( cmpMeta.tagName, @@ -101,7 +105,7 @@ ${getProxyCmp( @Component({ ${directiveOpts.join(',\n ')} }) -export class ${tagNameAsPascal} {`, +export class ${tagNameAsPascal}${classTypeParams} {`, ]; lines.push(' protected el: HTMLElement;');