Skip to content

Commit e9103a6

Browse files
devversionmmalerba
authored andcommitted
fix: material not working with ES2015 (angular#13709)
Fixes that Angular Material cannot be used with ES2015. See angular#12760 for detailed information. We already had a workaround applied, but this improves the workaround because it only partially worked for classes where no attributes were defined. Fixes angular#13695.
1 parent 576118e commit e9103a6

File tree

13 files changed

+60
-61
lines changed

13 files changed

+60
-61
lines changed

Diff for: src/lib/expansion/expansion-panel.ts

-3
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,6 @@ import {matExpansionAnimations} from './expansion-animations';
4040
import {MatExpansionPanelContent} from './expansion-panel-content';
4141
import {MAT_ACCORDION, MatAccordionBase} from './accordion-base';
4242

43-
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
44-
export const _CdkAccordionItem = CdkAccordionItem;
45-
4643
/** MatExpansionPanel's states. */
4744
export type MatExpansionPanelState = 'expanded' | 'collapsed';
4845

Diff for: src/lib/input/autosize.ts

+5-4
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@
99
import {CdkTextareaAutosize} from '@angular/cdk/text-field';
1010
import {Directive, Input} from '@angular/core';
1111

12-
// TODO(devversion): Workaround for https://github.com/angular/material2/issues/12760
13-
export const _CdkTextareaAutosize = CdkTextareaAutosize;
14-
1512
/**
1613
* Directive to automatically resize a textarea to fit its content.
1714
* @deprecated Use `cdkTextareaAutosize` from `@angular/cdk/text-field` instead.
@@ -29,7 +26,7 @@ export const _CdkTextareaAutosize = CdkTextareaAutosize;
2926
'(input)': '_noopInputHandler()',
3027
},
3128
})
32-
export class MatTextareaAutosize extends _CdkTextareaAutosize {
29+
export class MatTextareaAutosize extends CdkTextareaAutosize {
3330
@Input()
3431
get matAutosizeMinRows(): number { return this.minRows; }
3532
set matAutosizeMinRows(value: number) { this.minRows = value; }
@@ -46,3 +43,7 @@ export class MatTextareaAutosize extends _CdkTextareaAutosize {
4643
get matTextareaAutosize(): boolean { return this.enabled; }
4744
set matTextareaAutosize(value: boolean) { this.enabled = value; }
4845
}
46+
47+
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
48+
(MatTextareaAutosize as any)['ctorParameters'] = () =>
49+
(CdkTextareaAutosize as any)['ctorParameters'];

Diff for: src/lib/stepper/step-label.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@
99
import {Directive} from '@angular/core';
1010
import {CdkStepLabel} from '@angular/cdk/stepper';
1111

12-
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
13-
export const _CdkStepLabel = CdkStepLabel;
14-
1512
@Directive({
1613
selector: '[matStepLabel]',
1714
})
18-
export class MatStepLabel extends _CdkStepLabel {}
15+
export class MatStepLabel extends CdkStepLabel {}
16+
17+
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
18+
(MatStepLabel as any)['ctorParameters'] = () => (CdkStepLabel as any)['ctorParameters'];

Diff for: src/lib/stepper/stepper-button.ts

+7-6
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@ import {Directive} from '@angular/core';
1010
import {CdkStepper, CdkStepperNext, CdkStepperPrevious} from '@angular/cdk/stepper';
1111
import {MatStepper} from './stepper';
1212

13-
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
14-
export const _CdkStepperNext = CdkStepperNext;
15-
export const _CdkStepperPrevious = CdkStepperPrevious;
16-
1713
/** Button that moves to the next step in a stepper workflow. */
1814
@Directive({
1915
selector: 'button[matStepperNext]',
@@ -24,7 +20,7 @@ export const _CdkStepperPrevious = CdkStepperPrevious;
2420
inputs: ['type'],
2521
providers: [{provide: CdkStepper, useExisting: MatStepper}]
2622
})
27-
export class MatStepperNext extends _CdkStepperNext {}
23+
export class MatStepperNext extends CdkStepperNext {}
2824

2925
/** Button that moves to the previous step in a stepper workflow. */
3026
@Directive({
@@ -36,4 +32,9 @@ export class MatStepperNext extends _CdkStepperNext {}
3632
inputs: ['type'],
3733
providers: [{provide: CdkStepper, useExisting: MatStepper}]
3834
})
39-
export class MatStepperPrevious extends _CdkStepperPrevious {}
35+
export class MatStepperPrevious extends CdkStepperPrevious {}
36+
37+
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
38+
(MatStepperNext as any)['ctorParameters'] = () => (CdkStepperNext as any)['ctorParameters'];
39+
(MatStepperPrevious as any)['ctorParameters'] = () =>
40+
(CdkStepperPrevious as any)['ctorParameters'];

Diff for: src/lib/stepper/stepper.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,6 @@ import {MatStepLabel} from './step-label';
4747
import {matStepperAnimations} from './stepper-animations';
4848
import {MatStepperIcon, MatStepperIconContext} from './stepper-icon';
4949

50-
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
51-
export const _CdkStepper = CdkStepper;
52-
5350
@Component({
5451
moduleId: module.id,
5552
selector: 'mat-step',
@@ -87,7 +84,7 @@ export class MatStep extends CdkStep implements ErrorStateMatcher {
8784
@Directive({
8885
selector: '[matStepper]'
8986
})
90-
export class MatStepper extends _CdkStepper implements AfterContentInit {
87+
export class MatStepper extends CdkStepper implements AfterContentInit {
9188
/** The list of step headers of the steps in the stepper. */
9289
@ViewChildren(MatStepHeader) _stepHeader: QueryList<MatStepHeader>;
9390

@@ -126,6 +123,9 @@ export class MatStepper extends _CdkStepper implements AfterContentInit {
126123
}
127124
}
128125

126+
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
127+
(MatStepper as any)['ctorParameters'] = () => (CdkStepper as any)['ctorParameters'];
128+
129129
@Component({
130130
moduleId: module.id,
131131
selector: 'mat-horizontal-stepper',

Diff for: src/lib/table/cell.ts

+8-8
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,6 @@ import {
1515
CdkHeaderCellDef,
1616
} from '@angular/cdk/table';
1717

18-
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
19-
export const _CdkCellDef = CdkCellDef;
20-
export const _CdkHeaderCellDef = CdkHeaderCellDef;
21-
export const _CdkFooterCellDef = CdkFooterCellDef;
22-
2318
/**
2419
* Cell definition for the mat-table.
2520
* Captures the template of a column's data row cell as well as cell-specific properties.
@@ -28,7 +23,7 @@ export const _CdkFooterCellDef = CdkFooterCellDef;
2823
selector: '[matCellDef]',
2924
providers: [{provide: CdkCellDef, useExisting: MatCellDef}]
3025
})
31-
export class MatCellDef extends _CdkCellDef {}
26+
export class MatCellDef extends CdkCellDef {}
3227

3328
/**
3429
* Header cell definition for the mat-table.
@@ -38,7 +33,7 @@ export class MatCellDef extends _CdkCellDef {}
3833
selector: '[matHeaderCellDef]',
3934
providers: [{provide: CdkHeaderCellDef, useExisting: MatHeaderCellDef}]
4035
})
41-
export class MatHeaderCellDef extends _CdkHeaderCellDef {}
36+
export class MatHeaderCellDef extends CdkHeaderCellDef {}
4237

4338
/**
4439
* Footer cell definition for the mat-table.
@@ -48,7 +43,12 @@ export class MatHeaderCellDef extends _CdkHeaderCellDef {}
4843
selector: '[matFooterCellDef]',
4944
providers: [{provide: CdkFooterCellDef, useExisting: MatFooterCellDef}]
5045
})
51-
export class MatFooterCellDef extends _CdkFooterCellDef {}
46+
export class MatFooterCellDef extends CdkFooterCellDef {}
47+
48+
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
49+
(MatCellDef as any)['ctorParameters'] = () => (CdkCellDef as any)['ctorParameters'];
50+
(MatHeaderCellDef as any)['ctorParameters'] = () => (CdkHeaderCellDef as any)['ctorParameters'];
51+
(MatFooterCellDef as any)['ctorParameters'] = () => (MatFooterCellDef as any)['ctorParameters'];
5252

5353
/**
5454
* Column definition for the mat-table.

Diff for: src/lib/table/row.ts

+8-8
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,6 @@ import {
2020
CdkRowDef,
2121
} from '@angular/cdk/table';
2222

23-
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
24-
export const _CdkHeaderRowDef = CdkHeaderRowDef;
25-
export const _CdkFooterRowDef = CdkFooterRowDef;
26-
export const _CdkRowDef = CdkRowDef;
27-
2823
/**
2924
* Header row definition for the mat-table.
3025
* Captures the header row's template and other header properties such as the columns to display.
@@ -34,7 +29,7 @@ export const _CdkRowDef = CdkRowDef;
3429
providers: [{provide: CdkHeaderRowDef, useExisting: MatHeaderRowDef}],
3530
inputs: ['columns: matHeaderRowDef', 'sticky: matHeaderRowDefSticky'],
3631
})
37-
export class MatHeaderRowDef extends _CdkHeaderRowDef {}
32+
export class MatHeaderRowDef extends CdkHeaderRowDef {}
3833

3934
/**
4035
* Footer row definition for the mat-table.
@@ -45,7 +40,7 @@ export class MatHeaderRowDef extends _CdkHeaderRowDef {}
4540
providers: [{provide: CdkFooterRowDef, useExisting: MatFooterRowDef}],
4641
inputs: ['columns: matFooterRowDef', 'sticky: matFooterRowDefSticky'],
4742
})
48-
export class MatFooterRowDef extends _CdkFooterRowDef {}
43+
export class MatFooterRowDef extends CdkFooterRowDef {}
4944

5045
/**
5146
* Data row definition for the mat-table.
@@ -57,7 +52,12 @@ export class MatFooterRowDef extends _CdkFooterRowDef {}
5752
providers: [{provide: CdkRowDef, useExisting: MatRowDef}],
5853
inputs: ['columns: matRowDefColumns', 'when: matRowDefWhen'],
5954
})
60-
export class MatRowDef<T> extends _CdkRowDef<T> {}
55+
export class MatRowDef<T> extends CdkRowDef<T> {}
56+
57+
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
58+
(MatHeaderRowDef as any)['ctorParameters'] = () => (CdkHeaderRowDef as any)['ctorParameters'];
59+
(MatFooterRowDef as any)['ctorParameters'] = () => (CdkFooterRowDef as any)['ctorParameters'];
60+
(MatRowDef as any)['ctorParameters'] = () => (CdkRowDef as any)['ctorParameters'];
6161

6262
/** Footer template container that contains the cell outlet. Adds the right class and role. */
6363
@Component({

Diff for: src/lib/table/table.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@
99
import {CDK_TABLE_TEMPLATE, CdkTable} from '@angular/cdk/table';
1010
import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';
1111

12-
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
13-
export const _CdkTable = CdkTable;
14-
1512
/**
1613
* Wrapper for the CdkTable with Material design styles.
1714
*/
@@ -27,7 +24,10 @@ export const _CdkTable = CdkTable;
2724
encapsulation: ViewEncapsulation.None,
2825
changeDetection: ChangeDetectionStrategy.OnPush,
2926
})
30-
export class MatTable<T> extends _CdkTable<T> {
27+
export class MatTable<T> extends CdkTable<T> {
3128
/** Overrides the sticky CSS class set by the `CdkTable`. */
3229
protected stickyCssClass = 'mat-table-sticky';
3330
}
31+
32+
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
33+
(MatTable as any)['ctorParameters'] = () => (CdkTable as any)['ctorParameters'];

Diff for: src/lib/tabs/tab-label.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@
99
import {Directive} from '@angular/core';
1010
import {CdkPortal} from '@angular/cdk/portal';
1111

12-
// TODO(devversion): Workaround for https://github.com/angular/material2/issues/12760
13-
export const _CdkPortal = CdkPortal;
14-
1512
/** Used to flag tab labels for use with the portal directive */
1613
@Directive({
1714
selector: '[mat-tab-label], [matTabLabel]',
1815
})
19-
export class MatTabLabel extends _CdkPortal {}
16+
export class MatTabLabel extends CdkPortal {}
17+
18+
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
19+
(MatTabLabel as any)['ctorParameters'] = () => (CdkPortal as any)['ctorParameters'];

Diff for: src/lib/tree/node.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,6 @@ import {
2727
} from '@angular/material/core';
2828
import {MatTreeNodeOutlet} from './outlet';
2929

30-
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
31-
export const _CdkTreeNodeDef = CdkTreeNodeDef;
32-
3330
export const _MatTreeNodeMixinBase: HasTabIndexCtor & CanDisableCtor & typeof CdkTreeNode =
3431
mixinTabIndex(mixinDisabled(CdkTreeNode));
3532

@@ -75,10 +72,13 @@ export class MatTreeNode<T> extends _MatTreeNodeMixinBase<T>
7572
],
7673
providers: [{provide: CdkTreeNodeDef, useExisting: MatTreeNodeDef}]
7774
})
78-
export class MatTreeNodeDef<T> extends _CdkTreeNodeDef<T> {
75+
export class MatTreeNodeDef<T> extends CdkTreeNodeDef<T> {
7976
@Input('matTreeNode') data: T;
8077
}
8178

79+
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
80+
(MatTreeNodeDef as any)['ctorParameters'] = () => (CdkTreeNodeDef as any)['ctorParameters'];
81+
8282
/**
8383
* Wrapper for the CdkTree nested node with Material design styles.
8484
*/

Diff for: src/lib/tree/padding.ts

+5-4
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,22 @@
88
import {CdkTreeNodePadding} from '@angular/cdk/tree';
99
import {Directive, Input} from '@angular/core';
1010

11-
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
12-
export const _CdkTreeNodePadding = CdkTreeNodePadding;
13-
1411
/**
1512
* Wrapper for the CdkTree padding with Material design styles.
1613
*/
1714
@Directive({
1815
selector: '[matTreeNodePadding]',
1916
providers: [{provide: CdkTreeNodePadding, useExisting: MatTreeNodePadding}]
2017
})
21-
export class MatTreeNodePadding<T> extends _CdkTreeNodePadding<T> {
18+
export class MatTreeNodePadding<T> extends CdkTreeNodePadding<T> {
2219

2320
/** The level of depth of the tree node. The padding will be `level * indent` pixels. */
2421
@Input('matTreeNodePadding') level: number;
2522

2623
/** The indent for each level. Default number 40px from material design menu sub-menu spec. */
2724
@Input('matTreeNodePaddingIndent') indent: number;
2825
}
26+
27+
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
28+
(MatTreeNodePadding as any)['ctorParameters'] = () =>
29+
(CdkTreeNodePadding as any)['ctorParameters'];

Diff for: src/lib/tree/toggle.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@
99
import {CdkTreeNodeToggle} from '@angular/cdk/tree';
1010
import {Directive, Input} from '@angular/core';
1111

12-
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
13-
export const _CdkTreeNodeToggle = CdkTreeNodeToggle;
14-
1512
/**
1613
* Wrapper for the CdkTree's toggle with Material design styles.
1714
*/
@@ -22,6 +19,9 @@ export const _CdkTreeNodeToggle = CdkTreeNodeToggle;
2219
},
2320
providers: [{provide: CdkTreeNodeToggle, useExisting: MatTreeNodeToggle}]
2421
})
25-
export class MatTreeNodeToggle<T> extends _CdkTreeNodeToggle<T> {
22+
export class MatTreeNodeToggle<T> extends CdkTreeNodeToggle<T> {
2623
@Input('matTreeNodeToggleRecursive') recursive: boolean = false;
2724
}
25+
26+
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
27+
(MatTreeNodeToggle as any)['ctorParameters'] = () => (CdkTreeNodeToggle as any)['ctorParameters'];

Diff for: src/lib/tree/tree.ts

+3-4
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@ import {CdkTree} from '@angular/cdk/tree';
1010
import {ChangeDetectionStrategy, Component, ViewChild, ViewEncapsulation} from '@angular/core';
1111
import {MatTreeNodeOutlet} from './outlet';
1212

13-
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
14-
export const _CdkTree = CdkTree;
15-
1613
/**
1714
* Wrapper for the CdkTable with Material design styles.
1815
*/
@@ -30,8 +27,10 @@ export const _CdkTree = CdkTree;
3027
changeDetection: ChangeDetectionStrategy.OnPush,
3128
providers: [{provide: CdkTree, useExisting: MatTree}]
3229
})
33-
export class MatTree<T> extends _CdkTree<T> {
30+
export class MatTree<T> extends CdkTree<T> {
3431
// Outlets within the tree's template where the dataNodes will be inserted.
3532
@ViewChild(MatTreeNodeOutlet) _nodeOutlet: MatTreeNodeOutlet;
3633
}
3734

35+
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
36+
(MatTree as any)['ctorParameters'] = () => (CdkTree as any)['ctorParameters'];

0 commit comments

Comments
 (0)