From 5623c5b7ea603b08f547c6d3c4cb1cf36005d561 Mon Sep 17 00:00:00 2001 From: Joey Perrott Date: Tue, 7 Aug 2018 13:33:43 -0700 Subject: [PATCH] fix(tree): include constructors on MatTree classes to allow es6 builds (#12556) --- src/lib/tree/node.ts | 12 +++++++++++- src/lib/tree/padding.ts | 18 ++++++++++++++++-- src/lib/tree/toggle.ts | 11 ++++++++++- src/lib/tree/tree.ts | 18 +++++++++++++++++- 4 files changed, 54 insertions(+), 5 deletions(-) diff --git a/src/lib/tree/node.ts b/src/lib/tree/node.ts index 8a3aa6b3c03d..fc81db4efee7 100644 --- a/src/lib/tree/node.ts +++ b/src/lib/tree/node.ts @@ -21,7 +21,8 @@ import { Input, IterableDiffers, OnDestroy, - QueryList + QueryList, + TemplateRef, } from '@angular/core'; import {CanDisable, HasTabIndex, mixinDisabled, mixinTabIndex} from '@angular/material/core'; import {MatTreeNodeOutlet} from './outlet'; @@ -70,6 +71,15 @@ export class MatTreeNode extends _MatTreeNodeMixinBase }) export class MatTreeNodeDef extends CdkTreeNodeDef { @Input('matTreeNode') data: T; + + // TODO(andrewseguin): Remove this explicitly set constructor when the compiler knows how to + // properly build the es6 version of the class. Currently sets ctorParameters to empty due to a + // fixed bug. + // https://github.com/angular/tsickle/pull/760 - tsickle PR that fixed this + // https://github.com/angular/angular/pull/23531 - updates compiler-cli to fixed version + constructor(template: TemplateRef) { + super(template); + } } /** diff --git a/src/lib/tree/padding.ts b/src/lib/tree/padding.ts index 5738c82b4ee3..f3627fb1cf0e 100644 --- a/src/lib/tree/padding.ts +++ b/src/lib/tree/padding.ts @@ -5,8 +5,9 @@ * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ -import {CdkTreeNodePadding} from '@angular/cdk/tree'; -import {Directive, Input} from '@angular/core'; +import {CdkTreeNodePadding, CdkTreeNode, CdkTree} from '@angular/cdk/tree'; +import {Directionality} from '@angular/cdk/bidi'; +import {Directive, Input, Optional, Renderer2, ElementRef} from '@angular/core'; /** @@ -23,4 +24,17 @@ export class MatTreeNodePadding extends CdkTreeNodePadding { /** The indent for each level. Default number 40px from material design menu sub-menu spec. */ @Input('matTreeNodePaddingIndent') indent: number; + + // TODO(andrewseguin): Remove this explicitly set constructor when the compiler knows how to + // properly build the es6 version of the class. Currently sets ctorParameters to empty due to a + // fixed bug. + // https://github.com/angular/tsickle/pull/760 - tsickle PR that fixed this + // https://github.com/angular/angular/pull/23531 - updates compiler-cli to fixed version + constructor(_treeNode: CdkTreeNode, + _tree: CdkTree, + _renderer: Renderer2, + _element: ElementRef, + @Optional() _dir: Directionality) { + super(_treeNode, _tree, _renderer, _element, _dir); + } } diff --git a/src/lib/tree/toggle.ts b/src/lib/tree/toggle.ts index 19542d8a03b4..1ce62485d146 100644 --- a/src/lib/tree/toggle.ts +++ b/src/lib/tree/toggle.ts @@ -7,7 +7,7 @@ */ import {Directive, Input} from '@angular/core'; -import {CdkTreeNodeToggle} from '@angular/cdk/tree'; +import {CdkTreeNodeToggle, CdkTree, CdkTreeNode} from '@angular/cdk/tree'; /** * Wrapper for the CdkTree's toggle with Material design styles. @@ -21,4 +21,13 @@ import {CdkTreeNodeToggle} from '@angular/cdk/tree'; }) export class MatTreeNodeToggle extends CdkTreeNodeToggle { @Input('matTreeNodeToggleRecursive') recursive: boolean = false; + + // TODO(andrewseguin): Remove this explicitly set constructor when the compiler knows how to + // properly build the es6 version of the class. Currently sets ctorParameters to empty due to a + // fixed bug. + // https://github.com/angular/tsickle/pull/760 - tsickle PR that fixed this + // https://github.com/angular/angular/pull/23531 - updates compiler-cli to fixed version + constructor(_tree: CdkTree, _treeNode: CdkTreeNode) { + super(_tree, _treeNode); + } } diff --git a/src/lib/tree/tree.ts b/src/lib/tree/tree.ts index e2ebe5849918..f8f5181975c0 100644 --- a/src/lib/tree/tree.ts +++ b/src/lib/tree/tree.ts @@ -6,7 +6,14 @@ * found in the LICENSE file at https://angular.io/license */ -import {ChangeDetectionStrategy, Component, ViewChild, ViewEncapsulation} from '@angular/core'; +import { + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + ViewChild, + ViewEncapsulation, + IterableDiffers, +} from '@angular/core'; import {CdkTree} from '@angular/cdk/tree'; import {MatTreeNodeOutlet} from './outlet'; @@ -30,5 +37,14 @@ import {MatTreeNodeOutlet} from './outlet'; export class MatTree extends CdkTree { // Outlets within the tree's template where the dataNodes will be inserted. @ViewChild(MatTreeNodeOutlet) _nodeOutlet: MatTreeNodeOutlet; + + // TODO(andrewseguin): Remove this explicitly set constructor when the compiler knows how to + // properly build the es6 version of the class. Currently sets ctorParameters to empty due to a + // fixed bug. + // https://github.com/angular/tsickle/pull/760 - tsickle PR that fixed this + // https://github.com/angular/angular/pull/23531 - updates compiler-cli to fixed version + constructor(_differs: IterableDiffers, _changeDetectorRef: ChangeDetectorRef) { + super(_differs, _changeDetectorRef); + } }