Skip to content

Commit 520d83b

Browse files
devversionmmalerba
authored andcommitted
chore(docs): show extends clauses for classes (#8078)
* chore(docs): show extends clauses for classes Classes like `MatAnchor` in the button docs should indicate that those are extending the `MatButton` class. Clauses without any related Dgeni doc can be ignored, because no information for this is available (right now; e.g. `MatSlideToggleBase` with mixins) * Address feedback
1 parent f29da63 commit 520d83b

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

tools/dgeni/processors/categorizer.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import {
1919
isProperty,
2020
isService
2121
} from '../common/decorators';
22+
import {ClassLikeExportDoc} from 'dgeni-packages/typescript/api-doc-types/ClassLikeExportDoc';
2223
import {MethodMemberDoc} from 'dgeni-packages/typescript/api-doc-types/MethodMemberDoc';
2324
import {sortCategorizedMembers} from '../common/sort-members';
2425

@@ -31,6 +32,7 @@ export interface CategorizedClassDoc extends ClassExportDoc {
3132
isDeprecated: boolean;
3233
directiveExportAs?: string | null;
3334
directiveSelectors?: string[];
35+
extendedDoc: ClassLikeExportDoc | null;
3436
}
3537

3638
export interface CategorizedPropertyMemberDoc extends PropertyMemberDoc {
@@ -88,6 +90,11 @@ export class Categorizer implements Processor {
8890
classDoc.methods.sort(sortCategorizedMembers);
8991
classDoc.properties.sort(sortCategorizedMembers);
9092

93+
// Classes can only extend a single class. This means that there can't be multiple extend
94+
// clauses for the Dgeni document. To make the template syntax simpler and more readable,
95+
// store the extended class in a variable.
96+
classDoc.extendedDoc = classDoc.extendsClauses[0] ? classDoc.extendsClauses[0].doc! : null;
97+
9198
// Categorize the current visited classDoc into its Angular type.
9299
if (isDirective(classDoc)) {
93100
classDoc.isDirective = true;

tools/dgeni/templates/class.template.html

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
<h4 id="{$ class.name $}" class="docs-header-link docs-api-h4 docs-api-class-name">
22
<span header-link="{$ class.name $}"></span>
33
<code>{$ class.name $}</code>
4+
{% if class.extendedDoc %}
5+
<span class="docs-api-class-extends-clauses">
6+
<span class="docs-api-class-extends-label">extends</span>
7+
<span class="docs-api-class-extends-type">{$ class.extendedDoc.name $}</span>
8+
</span>
9+
{% endif %}
410
</h4>
511

612
{%- if class.description -%}

0 commit comments

Comments
 (0)