@angular/cdk 9.2.0-next.0 → 9.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/bundles/cdk-coercion.umd.js +0 -1
  2. package/bundles/cdk-coercion.umd.js.map +1 -1
  3. package/bundles/cdk-coercion.umd.min.js.map +1 -1
  4. package/bundles/cdk-table.umd.js +58 -27
  5. package/bundles/cdk-table.umd.js.map +1 -1
  6. package/bundles/cdk-table.umd.min.js +12 -5
  7. package/bundles/cdk-table.umd.min.js.map +1 -1
  8. package/bundles/cdk.umd.js +1 -1
  9. package/bundles/cdk.umd.js.map +1 -1
  10. package/bundles/cdk.umd.min.js +1 -1
  11. package/bundles/cdk.umd.min.js.map +1 -1
  12. package/coercion/array.d.ts +1 -0
  13. package/esm2015/coercion/array.js +1 -2
  14. package/esm2015/table/cell.js +18 -8
  15. package/esm2015/table/public-api.js +3 -2
  16. package/esm2015/table/row.js +24 -8
  17. package/esm2015/table/table.js +26 -12
  18. package/esm2015/table/text-column.js +3 -26
  19. package/esm2015/table/tokens.js +44 -0
  20. package/esm2015/version.js +1 -1
  21. package/esm5/coercion/array.js +1 -2
  22. package/esm5/table/cell.js +13 -8
  23. package/esm5/table/public-api.js +2 -1
  24. package/esm5/table/row.js +21 -11
  25. package/esm5/table/table.js +16 -11
  26. package/esm5/table/text-column.js +3 -4
  27. package/esm5/table/tokens.js +16 -0
  28. package/esm5/version.js +1 -1
  29. package/fesm2015/cdk.js +1 -1
  30. package/fesm2015/cdk.js.map +1 -1
  31. package/fesm2015/coercion.js +0 -1
  32. package/fesm2015/coercion.js.map +1 -1
  33. package/fesm2015/table.js +98 -49
  34. package/fesm2015/table.js.map +1 -1
  35. package/fesm5/cdk.js +1 -1
  36. package/fesm5/cdk.js.map +1 -1
  37. package/fesm5/coercion.js +0 -1
  38. package/fesm5/coercion.js.map +1 -1
  39. package/fesm5/table.js +59 -29
  40. package/fesm5/table.js.map +1 -1
  41. package/package.json +1 -1
  42. package/schematics/ng-add/index.js +1 -1
  43. package/table/cell.d.ts +2 -0
  44. package/table/index.metadata.json +1 -1
  45. package/table/public-api.d.ts +1 -0
  46. package/table/row.d.ts +6 -3
  47. package/table/table.d.ts +2 -0
  48. package/table/text-column.d.ts +2 -13
  49. package/table/tokens.d.ts +25 -0
@@ -40,7 +40,6 @@ function _isNumberValue(value) {
40
40
  * Use of this source code is governed by an MIT-style license that can be
41
41
  * found in the LICENSE file at https://angular.io/license
42
42
  */
43
- /** Wraps the provided value in an array, unless the provided value is an array. */
44
43
  function coerceArray(value) {
45
44
  return Array.isArray(value) ? value : [value];
46
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"coercion.js","sources":["../../../../../../src/cdk/coercion/boolean-property.ts","../../../../../../src/cdk/coercion/number-property.ts","../../../../../../src/cdk/coercion/array.ts","../../../../../../src/cdk/coercion/css-pixel-value.ts","../../../../../../src/cdk/coercion/element.ts","../../../../../../src/cdk/coercion/public-api.ts","../../../../../../src/cdk/coercion/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Type describing the allowed values for a boolean input.\n * @docs-private\n */\nexport type BooleanInput = string | boolean | null | undefined;\n\n/** Coerces a data-bound value (typically a string) to a boolean. */\nexport function coerceBooleanProperty(value: any): boolean {\n return value != null && `${value}` !== 'false';\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Type describing the allowed values for a number input\n * @docs-private\n */\nexport type NumberInput = string | number | null | undefined;\n\n/** Coerces a data-bound value (typically a string) to a number. */\nexport function coerceNumberProperty(value: any): number;\nexport function coerceNumberProperty<D>(value: any, fallback: D): number | D;\nexport function coerceNumberProperty(value: any, fallbackValue = 0) {\n return _isNumberValue(value) ? Number(value) : fallbackValue;\n}\n\n/**\n * Whether the provided value is considered a number.\n * @docs-private\n */\nexport function _isNumberValue(value: any): boolean {\n // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,\n // and other non-number values as NaN, where Number just uses 0) but it considers the string\n // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.\n return !isNaN(parseFloat(value as any)) && !isNaN(Number(value));\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/** Wraps the provided value in an array, unless the provided value is an array. */\nexport function coerceArray<T>(value: T | T[]): T[] {\n return Array.isArray(value) ? value : [value];\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/** Coerces a value to a CSS pixel value. */\nexport function coerceCssPixelValue(value: any): string {\n if (value == null) {\n return '';\n }\n\n return typeof value === 'string' ? value : `${value}px`;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ElementRef} from '@angular/core';\n\n/**\n * Coerces an ElementRef or an Element into an element.\n * Useful for APIs that can accept either a ref or the native element itself.\n */\nexport function coerceElement<T>(elementOrRef: ElementRef<T> | T): T {\n return elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './boolean-property';\nexport * from './number-property';\nexport * from './array';\nexport * from './css-pixel-value';\nexport * from './element';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;AAAA;;;;;;;;AAeA,SAAgB,qBAAqB,CAAC,KAAU;IAC9C,OAAO,KAAK,IAAI,IAAI,IAAI,GAAG,KAAK,EAAE,KAAK,OAAO,CAAC;CAChD;;ACjBD;;;;;;;AAiBA,SAAgB,oBAAoB,CAAC,KAAU,EAAE,aAAa,GAAG,CAAC;IAChE,OAAO,cAAc,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC;CAC9D;;;;;AAMD,SAAgB,cAAc,CAAC,KAAU;;;;IAIvC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;CAClE;;AC9BD;;;;;;;;AASA,SAAgB,WAAW,CAAI,KAAc;IAC3C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;CAC/C;;ACXD;;;;;;;;AASA,SAAgB,mBAAmB,CAAC,KAAU;IAC5C,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,OAAO,EAAE,CAAC;KACX;IAED,OAAO,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,GAAG,KAAK,IAAI,CAAC;CACzD;;ACfD;;;;;;;AAQA,AAEA;;;;AAIA,SAAgB,aAAa,CAAI,YAA+B;IAC9D,OAAO,YAAY,YAAY,UAAU,GAAG,YAAY,CAAC,aAAa,GAAG,YAAY,CAAC;CACvF;;AChBD;;;;;;GAMG;;ACNH;;;;;;GAMG;;;;"}
1
+ {"version":3,"file":"coercion.js","sources":["../../../../../../src/cdk/coercion/boolean-property.ts","../../../../../../src/cdk/coercion/number-property.ts","../../../../../../src/cdk/coercion/array.ts","../../../../../../src/cdk/coercion/css-pixel-value.ts","../../../../../../src/cdk/coercion/element.ts","../../../../../../src/cdk/coercion/public-api.ts","../../../../../../src/cdk/coercion/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Type describing the allowed values for a boolean input.\n * @docs-private\n */\nexport type BooleanInput = string | boolean | null | undefined;\n\n/** Coerces a data-bound value (typically a string) to a boolean. */\nexport function coerceBooleanProperty(value: any): boolean {\n return value != null && `${value}` !== 'false';\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Type describing the allowed values for a number input\n * @docs-private\n */\nexport type NumberInput = string | number | null | undefined;\n\n/** Coerces a data-bound value (typically a string) to a number. */\nexport function coerceNumberProperty(value: any): number;\nexport function coerceNumberProperty<D>(value: any, fallback: D): number | D;\nexport function coerceNumberProperty(value: any, fallbackValue = 0) {\n return _isNumberValue(value) ? Number(value) : fallbackValue;\n}\n\n/**\n * Whether the provided value is considered a number.\n * @docs-private\n */\nexport function _isNumberValue(value: any): boolean {\n // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,\n // and other non-number values as NaN, where Number just uses 0) but it considers the string\n // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.\n return !isNaN(parseFloat(value as any)) && !isNaN(Number(value));\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/** Wraps the provided value in an array, unless the provided value is an array. */\nexport function coerceArray<T>(value: T | T[]): T[];\nexport function coerceArray<T>(value: T | readonly T[]): readonly T[];\nexport function coerceArray<T>(value: T | T[]): T[] {\n return Array.isArray(value) ? value : [value];\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/** Coerces a value to a CSS pixel value. */\nexport function coerceCssPixelValue(value: any): string {\n if (value == null) {\n return '';\n }\n\n return typeof value === 'string' ? value : `${value}px`;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ElementRef} from '@angular/core';\n\n/**\n * Coerces an ElementRef or an Element into an element.\n * Useful for APIs that can accept either a ref or the native element itself.\n */\nexport function coerceElement<T>(elementOrRef: ElementRef<T> | T): T {\n return elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './boolean-property';\nexport * from './number-property';\nexport * from './array';\nexport * from './css-pixel-value';\nexport * from './element';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;AAAA;;;;;;;;AAeA,SAAgB,qBAAqB,CAAC,KAAU;IAC9C,OAAO,KAAK,IAAI,IAAI,IAAI,GAAG,KAAK,EAAE,KAAK,OAAO,CAAC;CAChD;;ACjBD;;;;;;;AAiBA,SAAgB,oBAAoB,CAAC,KAAU,EAAE,aAAa,GAAG,CAAC;IAChE,OAAO,cAAc,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC;CAC9D;;;;;AAMD,SAAgB,cAAc,CAAC,KAAU;;;;IAIvC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;CAClE;;AC9BD;;;;;;;AAWA,SAAgB,WAAW,CAAI,KAAc;IAC3C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;CAC/C;;ACbD;;;;;;;;AASA,SAAgB,mBAAmB,CAAC,KAAU;IAC5C,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,OAAO,EAAE,CAAC;KACX;IAED,OAAO,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,GAAG,KAAK,IAAI,CAAC;CACzD;;ACfD;;;;;;;AAQA,AAEA;;;;AAIA,SAAgB,aAAa,CAAI,YAA+B;IAC9D,OAAO,YAAY,YAAY,UAAU,GAAG,YAAY,CAAC,aAAa,GAAG,YAAY,CAAC;CACvF;;AChBD;;;;;;GAMG;;ACNH;;;;;;GAMG;;;;"}
package/fesm2015/table.js CHANGED
@@ -4,7 +4,7 @@ import { isDataSource } from '@angular/cdk/collections';
4
4
  export { DataSource } from '@angular/cdk/collections';
5
5
  import { Platform } from '@angular/cdk/platform';
6
6
  import { DOCUMENT } from '@angular/common';
7
- import { Directive, TemplateRef, Input, ContentChild, ElementRef, IterableDiffers, ViewContainerRef, Component, ChangeDetectionStrategy, ViewEncapsulation, EmbeddedViewRef, isDevMode, ChangeDetectorRef, Attribute, Optional, Inject, ViewChild, ContentChildren, InjectionToken, NgModule } from '@angular/core';
7
+ import { InjectionToken, Directive, TemplateRef, Inject, Optional, Input, ContentChild, ElementRef, IterableDiffers, ViewContainerRef, Component, ChangeDetectionStrategy, ViewEncapsulation, EmbeddedViewRef, isDevMode, ChangeDetectorRef, Attribute, ViewChild, ContentChildren, NgModule } from '@angular/core';
8
8
  import { Subject, BehaviorSubject, isObservable, of } from 'rxjs';
9
9
  import { takeUntil } from 'rxjs/operators';
10
10
 
@@ -100,6 +100,42 @@ function mixinHasStickyInput(base) {
100
100
  };
101
101
  }
102
102
 
103
+ /**
104
+ * @fileoverview added by tsickle
105
+ * Generated from: src/cdk/table/tokens.ts
106
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
107
+ */
108
+ /**
109
+ * Used to provide a table to some of the sub-components without causing a circular dependency.
110
+ * \@docs-private
111
+ * @type {?}
112
+ */
113
+ const CDK_TABLE = new InjectionToken('CDK_TABLE');
114
+ /**
115
+ * Configurable options for `CdkTextColumn`.
116
+ * @record
117
+ * @template T
118
+ */
119
+ function TextColumnOptions() { }
120
+ if (false) {
121
+ /**
122
+ * Default function that provides the header text based on the column name if a header
123
+ * text is not provided.
124
+ * @type {?|undefined}
125
+ */
126
+ TextColumnOptions.prototype.defaultHeaderTextTransform;
127
+ /**
128
+ * Default data accessor to use if one is not provided.
129
+ * @type {?|undefined}
130
+ */
131
+ TextColumnOptions.prototype.defaultDataAccessor;
132
+ }
133
+ /**
134
+ * Injection token that can be used to specify the text column options.
135
+ * @type {?}
136
+ */
137
+ const TEXT_COLUMN_OPTIONS = new InjectionToken('text-column-options');
138
+
103
139
  /**
104
140
  * @fileoverview added by tsickle
105
141
  * Generated from: src/cdk/table/cell.ts
@@ -205,8 +241,12 @@ const _CdkColumnDefBase = mixinHasStickyInput(CdkColumnDefBase);
205
241
  * Defines a set of cells available for a table column.
206
242
  */
207
243
  class CdkColumnDef extends _CdkColumnDefBase {
208
- constructor() {
209
- super(...arguments);
244
+ /**
245
+ * @param {?=} _table
246
+ */
247
+ constructor(_table) {
248
+ super();
249
+ this._table = _table;
210
250
  this._stickyEnd = false;
211
251
  }
212
252
  /**
@@ -223,11 +263,10 @@ class CdkColumnDef extends _CdkColumnDefBase {
223
263
  set name(name) {
224
264
  // If the directive is set without a name (updated programatically), then this setter will
225
265
  // trigger with an empty string and should not overwrite the programatically set value.
226
- if (!name) {
227
- return;
266
+ if (name) {
267
+ this._name = name;
268
+ this.cssClassFriendlyName = name.replace(/[^a-z0-9_-]/ig, '-');
228
269
  }
229
- this._name = name;
230
- this.cssClassFriendlyName = name.replace(/[^a-z0-9_-]/ig, '-');
231
270
  }
232
271
  /**
233
272
  * Whether this column should be sticky positioned on the end of the row. Should make sure
@@ -256,6 +295,10 @@ CdkColumnDef.decorators = [
256
295
  providers: [{ provide: 'MAT_SORT_HEADER_COLUMN_DEF', useExisting: CdkColumnDef }],
257
296
  },] }
258
297
  ];
298
+ /** @nocollapse */
299
+ CdkColumnDef.ctorParameters = () => [
300
+ { type: undefined, decorators: [{ type: Inject, args: [CDK_TABLE,] }, { type: Optional }] }
301
+ ];
259
302
  CdkColumnDef.propDecorators = {
260
303
  name: [{ type: Input, args: ['cdkColumnDef',] }],
261
304
  stickyEnd: [{ type: Input, args: ['stickyEnd',] }],
@@ -294,6 +337,8 @@ if (false) {
294
337
  * @type {?}
295
338
  */
296
339
  CdkColumnDef.prototype.cssClassFriendlyName;
340
+ /** @type {?} */
341
+ CdkColumnDef.prototype._table;
297
342
  }
298
343
  /**
299
344
  * Base class for the cells. Adds a CSS classname that identifies the column it renders in.
@@ -491,9 +536,11 @@ class CdkHeaderRowDef extends _CdkHeaderRowDefBase {
491
536
  /**
492
537
  * @param {?} template
493
538
  * @param {?} _differs
539
+ * @param {?=} _table
494
540
  */
495
- constructor(template, _differs) {
541
+ constructor(template, _differs, _table) {
496
542
  super(template, _differs);
543
+ this._table = _table;
497
544
  }
498
545
  // Prerender fails to recognize that ngOnChanges in a part of this class through inheritance.
499
546
  // Explicitly define it so that the method is called as part of the Angular lifecycle.
@@ -514,11 +561,14 @@ CdkHeaderRowDef.decorators = [
514
561
  /** @nocollapse */
515
562
  CdkHeaderRowDef.ctorParameters = () => [
516
563
  { type: TemplateRef },
517
- { type: IterableDiffers }
564
+ { type: IterableDiffers },
565
+ { type: undefined, decorators: [{ type: Inject, args: [CDK_TABLE,] }, { type: Optional }] }
518
566
  ];
519
567
  if (false) {
520
568
  /** @type {?} */
521
569
  CdkHeaderRowDef.ngAcceptInputType_sticky;
570
+ /** @type {?} */
571
+ CdkHeaderRowDef.prototype._table;
522
572
  }
523
573
  // Boilerplate for applying mixins to CdkFooterRowDef.
524
574
  /**
@@ -536,9 +586,11 @@ class CdkFooterRowDef extends _CdkFooterRowDefBase {
536
586
  /**
537
587
  * @param {?} template
538
588
  * @param {?} _differs
589
+ * @param {?=} _table
539
590
  */
540
- constructor(template, _differs) {
591
+ constructor(template, _differs, _table) {
541
592
  super(template, _differs);
593
+ this._table = _table;
542
594
  }
543
595
  // Prerender fails to recognize that ngOnChanges in a part of this class through inheritance.
544
596
  // Explicitly define it so that the method is called as part of the Angular lifecycle.
@@ -559,11 +611,14 @@ CdkFooterRowDef.decorators = [
559
611
  /** @nocollapse */
560
612
  CdkFooterRowDef.ctorParameters = () => [
561
613
  { type: TemplateRef },
562
- { type: IterableDiffers }
614
+ { type: IterableDiffers },
615
+ { type: undefined, decorators: [{ type: Inject, args: [CDK_TABLE,] }, { type: Optional }] }
563
616
  ];
564
617
  if (false) {
565
618
  /** @type {?} */
566
619
  CdkFooterRowDef.ngAcceptInputType_sticky;
620
+ /** @type {?} */
621
+ CdkFooterRowDef.prototype._table;
567
622
  }
568
623
  /**
569
624
  * Data row definition for the CDK table.
@@ -577,9 +632,11 @@ class CdkRowDef extends BaseRowDef {
577
632
  /**
578
633
  * @param {?} template
579
634
  * @param {?} _differs
635
+ * @param {?=} _table
580
636
  */
581
- constructor(template, _differs) {
637
+ constructor(template, _differs, _table) {
582
638
  super(template, _differs);
639
+ this._table = _table;
583
640
  }
584
641
  }
585
642
  CdkRowDef.decorators = [
@@ -591,7 +648,8 @@ CdkRowDef.decorators = [
591
648
  /** @nocollapse */
592
649
  CdkRowDef.ctorParameters = () => [
593
650
  { type: TemplateRef },
594
- { type: IterableDiffers }
651
+ { type: IterableDiffers },
652
+ { type: undefined, decorators: [{ type: Inject, args: [CDK_TABLE,] }, { type: Optional }] }
595
653
  ];
596
654
  if (false) {
597
655
  /**
@@ -602,6 +660,8 @@ if (false) {
602
660
  * @type {?}
603
661
  */
604
662
  CdkRowDef.prototype.when;
663
+ /** @type {?} */
664
+ CdkRowDef.prototype._table;
605
665
  }
606
666
  /**
607
667
  * Context provided to the row cells when `multiTemplateDataRows` is false
@@ -1990,7 +2050,7 @@ class CdkTable {
1990
2050
  _cacheColumnDefs() {
1991
2051
  this._columnDefsByName.clear();
1992
2052
  /** @type {?} */
1993
- const columnDefs = mergeQueryListAndSet(this._contentColumnDefs, this._customColumnDefs);
2053
+ const columnDefs = mergeArrayAndSet(this._getOwnDefs(this._contentColumnDefs), this._customColumnDefs);
1994
2054
  columnDefs.forEach((/**
1995
2055
  * @param {?} columnDef
1996
2056
  * @return {?}
@@ -2008,11 +2068,9 @@ class CdkTable {
2008
2068
  * @return {?}
2009
2069
  */
2010
2070
  _cacheRowDefs() {
2011
- this._headerRowDefs =
2012
- mergeQueryListAndSet(this._contentHeaderRowDefs, this._customHeaderRowDefs);
2013
- this._footerRowDefs =
2014
- mergeQueryListAndSet(this._contentFooterRowDefs, this._customFooterRowDefs);
2015
- this._rowDefs = mergeQueryListAndSet(this._contentRowDefs, this._customRowDefs);
2071
+ this._headerRowDefs = mergeArrayAndSet(this._getOwnDefs(this._contentHeaderRowDefs), this._customHeaderRowDefs);
2072
+ this._footerRowDefs = mergeArrayAndSet(this._getOwnDefs(this._contentFooterRowDefs), this._customFooterRowDefs);
2073
+ this._rowDefs = mergeArrayAndSet(this._getOwnDefs(this._contentRowDefs), this._customRowDefs);
2016
2074
  // After all row definitions are determined, find the row definition to be considered default.
2017
2075
  /** @type {?} */
2018
2076
  const defaultRowDefs = this._rowDefs.filter((/**
@@ -2415,6 +2473,20 @@ class CdkTable {
2415
2473
  this.updateStickyColumnStyles();
2416
2474
  }));
2417
2475
  }
2476
+ /**
2477
+ * Filters definitions that belong to this table from a QueryList.
2478
+ * @private
2479
+ * @template I
2480
+ * @param {?} items
2481
+ * @return {?}
2482
+ */
2483
+ _getOwnDefs(items) {
2484
+ return items.filter((/**
2485
+ * @param {?} item
2486
+ * @return {?}
2487
+ */
2488
+ item => !item._table || item._table === this));
2489
+ }
2418
2490
  }
2419
2491
  CdkTable.decorators = [
2420
2492
  { type: Component, args: [{
@@ -2429,7 +2501,8 @@ CdkTable.decorators = [
2429
2501
  // The view for `MatTable` consists entirely of templates declared in other views. As they are
2430
2502
  // declared elsewhere, they are checked when their declaration points are checked.
2431
2503
  // tslint:disable-next-line:validate-decorators
2432
- changeDetection: ChangeDetectionStrategy.Default
2504
+ changeDetection: ChangeDetectionStrategy.Default,
2505
+ providers: [{ provide: CDK_TABLE, useExisting: CdkTable }]
2433
2506
  }] }
2434
2507
  ];
2435
2508
  /** @nocollapse */
@@ -2689,14 +2762,14 @@ if (false) {
2689
2762
  CdkTable.prototype._platform;
2690
2763
  }
2691
2764
  /**
2692
- * Utility function that gets a merged list of the entries in a QueryList and values of a Set.
2765
+ * Utility function that gets a merged list of the entries in an array and values of a Set.
2693
2766
  * @template T
2694
- * @param {?} queryList
2767
+ * @param {?} array
2695
2768
  * @param {?} set
2696
2769
  * @return {?}
2697
2770
  */
2698
- function mergeQueryListAndSet(queryList, set) {
2699
- return queryList.toArray().concat(Array.from(set));
2771
+ function mergeArrayAndSet(array, set) {
2772
+ return array.concat(Array.from(set));
2700
2773
  }
2701
2774
 
2702
2775
  /**
@@ -2704,30 +2777,6 @@ function mergeQueryListAndSet(queryList, set) {
2704
2777
  * Generated from: src/cdk/table/text-column.ts
2705
2778
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2706
2779
  */
2707
- /**
2708
- * Configurable options for `CdkTextColumn`.
2709
- * @record
2710
- * @template T
2711
- */
2712
- function TextColumnOptions() { }
2713
- if (false) {
2714
- /**
2715
- * Default function that provides the header text based on the column name if a header
2716
- * text is not provided.
2717
- * @type {?|undefined}
2718
- */
2719
- TextColumnOptions.prototype.defaultHeaderTextTransform;
2720
- /**
2721
- * Default data accessor to use if one is not provided.
2722
- * @type {?|undefined}
2723
- */
2724
- TextColumnOptions.prototype.defaultDataAccessor;
2725
- }
2726
- /**
2727
- * Injection token that can be used to specify the text column options.
2728
- * @type {?}
2729
- */
2730
- const TEXT_COLUMN_OPTIONS = new InjectionToken('text-column-options');
2731
2780
  /**
2732
2781
  * Column that simply shows text content for the header and row cells. Assumes that the table
2733
2782
  * is using the native table implementation (`<table>`).
@@ -2973,5 +3022,5 @@ CdkTableModule.decorators = [
2973
3022
  * Generated bundle index. Do not edit.
2974
3023
  */
2975
3024
 
2976
- export { BaseCdkCell, BaseRowDef, CDK_ROW_TEMPLATE, CDK_TABLE_TEMPLATE, CdkCell, CdkCellDef, CdkCellOutlet, CdkColumnDef, CdkFooterCell, CdkFooterCellDef, CdkFooterRow, CdkFooterRowDef, CdkHeaderCell, CdkHeaderCellDef, CdkHeaderRow, CdkHeaderRowDef, CdkRow, CdkRowDef, CdkTable, CdkTableModule, CdkTextColumn, DataRowOutlet, FooterRowOutlet, HeaderRowOutlet, STICKY_DIRECTIONS, StickyStyler, TEXT_COLUMN_OPTIONS, mixinHasStickyInput };
3025
+ export { BaseCdkCell, BaseRowDef, CDK_ROW_TEMPLATE, CDK_TABLE, CDK_TABLE_TEMPLATE, CdkCell, CdkCellDef, CdkCellOutlet, CdkColumnDef, CdkFooterCell, CdkFooterCellDef, CdkFooterRow, CdkFooterRowDef, CdkHeaderCell, CdkHeaderCellDef, CdkHeaderRow, CdkHeaderRowDef, CdkRow, CdkRowDef, CdkTable, CdkTableModule, CdkTextColumn, DataRowOutlet, FooterRowOutlet, HeaderRowOutlet, STICKY_DIRECTIONS, StickyStyler, TEXT_COLUMN_OPTIONS, mixinHasStickyInput };
2977
3026
  //# sourceMappingURL=table.js.map