@angular/material 21.0.0-next.9 → 21.0.0-rc.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 (202) hide show
  1. package/core/tokens/_classes.scss +1 -1
  2. package/core/tokens/m2/_md-sys-color.scss +17 -17
  3. package/fesm2022/_animation-chunk.mjs +10 -16
  4. package/fesm2022/_animation-chunk.mjs.map +1 -1
  5. package/fesm2022/_date-formats-chunk.mjs +68 -164
  6. package/fesm2022/_date-formats-chunk.mjs.map +1 -1
  7. package/fesm2022/_date-range-input-harness-chunk.mjs +284 -463
  8. package/fesm2022/_date-range-input-harness-chunk.mjs.map +1 -1
  9. package/fesm2022/_error-options-chunk.mjs +56 -19
  10. package/fesm2022/_error-options-chunk.mjs.map +1 -1
  11. package/fesm2022/_error-state-chunk.mjs +24 -31
  12. package/fesm2022/_error-state-chunk.mjs.map +1 -1
  13. package/fesm2022/_form-field-chunk.mjs +1224 -1017
  14. package/fesm2022/_form-field-chunk.mjs.map +1 -1
  15. package/fesm2022/_icon-button-chunk.mjs +243 -187
  16. package/fesm2022/_icon-button-chunk.mjs.map +1 -1
  17. package/fesm2022/_icon-registry-chunk.mjs +350 -575
  18. package/fesm2022/_icon-registry-chunk.mjs.map +1 -1
  19. package/fesm2022/_input-harness-chunk.mjs +56 -107
  20. package/fesm2022/_input-harness-chunk.mjs.map +1 -1
  21. package/fesm2022/_input-value-accessor-chunk.mjs +0 -6
  22. package/fesm2022/_input-value-accessor-chunk.mjs.map +1 -1
  23. package/fesm2022/_internal-form-field-chunk.mjs +59 -19
  24. package/fesm2022/_internal-form-field-chunk.mjs.map +1 -1
  25. package/fesm2022/_line-chunk.mjs +83 -43
  26. package/fesm2022/_line-chunk.mjs.map +1 -1
  27. package/fesm2022/_option-chunk.mjs +348 -311
  28. package/fesm2022/_option-chunk.mjs.map +1 -1
  29. package/fesm2022/_option-harness-chunk.mjs +23 -39
  30. package/fesm2022/_option-harness-chunk.mjs.map +1 -1
  31. package/fesm2022/_option-module-chunk.mjs +36 -10
  32. package/fesm2022/_option-module-chunk.mjs.map +1 -1
  33. package/fesm2022/_pseudo-checkbox-chunk.mjs +79 -44
  34. package/fesm2022/_pseudo-checkbox-chunk.mjs.map +1 -1
  35. package/fesm2022/_pseudo-checkbox-module-chunk.mjs +36 -10
  36. package/fesm2022/_pseudo-checkbox-module-chunk.mjs.map +1 -1
  37. package/fesm2022/_public-api-chunk.mjs +71 -134
  38. package/fesm2022/_public-api-chunk.mjs.map +1 -1
  39. package/fesm2022/_ripple-chunk.mjs +504 -600
  40. package/fesm2022/_ripple-chunk.mjs.map +1 -1
  41. package/fesm2022/_ripple-loader-chunk.mjs +120 -138
  42. package/fesm2022/_ripple-loader-chunk.mjs.map +1 -1
  43. package/fesm2022/_ripple-module-chunk.mjs +36 -10
  44. package/fesm2022/_ripple-module-chunk.mjs.map +1 -1
  45. package/fesm2022/_structural-styles-chunk.mjs +37 -10
  46. package/fesm2022/_structural-styles-chunk.mjs.map +1 -1
  47. package/fesm2022/_tooltip-chunk.mjs +810 -888
  48. package/fesm2022/_tooltip-chunk.mjs.map +1 -1
  49. package/fesm2022/autocomplete-testing.mjs +62 -86
  50. package/fesm2022/autocomplete-testing.mjs.map +1 -1
  51. package/fesm2022/autocomplete.mjs +965 -1126
  52. package/fesm2022/autocomplete.mjs.map +1 -1
  53. package/fesm2022/badge-testing.mjs +38 -54
  54. package/fesm2022/badge-testing.mjs.map +1 -1
  55. package/fesm2022/badge.mjs +321 -272
  56. package/fesm2022/badge.mjs.map +1 -1
  57. package/fesm2022/bottom-sheet-testing.mjs +10 -24
  58. package/fesm2022/bottom-sheet-testing.mjs.map +1 -1
  59. package/fesm2022/bottom-sheet.mjs +349 -344
  60. package/fesm2022/bottom-sheet.mjs.map +1 -1
  61. package/fesm2022/button-testing.mjs +60 -94
  62. package/fesm2022/button-testing.mjs.map +1 -1
  63. package/fesm2022/button-toggle-testing.mjs +76 -125
  64. package/fesm2022/button-toggle-testing.mjs.map +1 -1
  65. package/fesm2022/button-toggle.mjs +752 -662
  66. package/fesm2022/button-toggle.mjs.map +1 -1
  67. package/fesm2022/button.mjs +263 -158
  68. package/fesm2022/button.mjs.map +1 -1
  69. package/fesm2022/card-testing.mjs +19 -33
  70. package/fesm2022/card-testing.mjs.map +1 -1
  71. package/fesm2022/card.mjs +576 -272
  72. package/fesm2022/card.mjs.map +1 -1
  73. package/fesm2022/checkbox-testing.mjs +71 -123
  74. package/fesm2022/checkbox-testing.mjs.map +1 -1
  75. package/fesm2022/checkbox.mjs +515 -477
  76. package/fesm2022/checkbox.mjs.map +1 -1
  77. package/fesm2022/chips-testing.mjs +201 -344
  78. package/fesm2022/chips-testing.mjs.map +1 -1
  79. package/fesm2022/chips.mjs +2552 -2289
  80. package/fesm2022/chips.mjs.map +1 -1
  81. package/fesm2022/core-testing.mjs +14 -28
  82. package/fesm2022/core-testing.mjs.map +1 -1
  83. package/fesm2022/core.mjs +357 -328
  84. package/fesm2022/core.mjs.map +1 -1
  85. package/fesm2022/datepicker-testing.mjs +15 -25
  86. package/fesm2022/datepicker-testing.mjs.map +1 -1
  87. package/fesm2022/datepicker.mjs +4826 -4563
  88. package/fesm2022/datepicker.mjs.map +1 -1
  89. package/fesm2022/dialog-testing.mjs +93 -129
  90. package/fesm2022/dialog-testing.mjs.map +1 -1
  91. package/fesm2022/dialog.mjs +810 -829
  92. package/fesm2022/dialog.mjs.map +1 -1
  93. package/fesm2022/divider-testing.mjs +10 -11
  94. package/fesm2022/divider-testing.mjs.map +1 -1
  95. package/fesm2022/divider.mjs +119 -43
  96. package/fesm2022/divider.mjs.map +1 -1
  97. package/fesm2022/expansion-testing.mjs +74 -130
  98. package/fesm2022/expansion-testing.mjs.map +1 -1
  99. package/fesm2022/expansion.mjs +703 -515
  100. package/fesm2022/expansion.mjs.map +1 -1
  101. package/fesm2022/form-field-testing-control.mjs +16 -33
  102. package/fesm2022/form-field-testing-control.mjs.map +1 -1
  103. package/fesm2022/form-field-testing.mjs +118 -179
  104. package/fesm2022/form-field-testing.mjs.map +1 -1
  105. package/fesm2022/form-field.mjs +36 -10
  106. package/fesm2022/form-field.mjs.map +1 -1
  107. package/fesm2022/grid-list-testing.mjs +65 -113
  108. package/fesm2022/grid-list-testing.mjs.map +1 -1
  109. package/fesm2022/grid-list.mjs +559 -494
  110. package/fesm2022/grid-list.mjs.map +1 -1
  111. package/fesm2022/icon-testing.mjs +148 -127
  112. package/fesm2022/icon-testing.mjs.map +1 -1
  113. package/fesm2022/icon.mjs +325 -351
  114. package/fesm2022/icon.mjs.map +1 -1
  115. package/fesm2022/input-testing.mjs +59 -99
  116. package/fesm2022/input-testing.mjs.map +1 -1
  117. package/fesm2022/input.mjs +457 -520
  118. package/fesm2022/input.mjs.map +1 -1
  119. package/fesm2022/list-testing.mjs +251 -434
  120. package/fesm2022/list-testing.mjs.map +1 -1
  121. package/fesm2022/list.mjs +1522 -1204
  122. package/fesm2022/list.mjs.map +1 -1
  123. package/fesm2022/material.mjs +0 -5
  124. package/fesm2022/material.mjs.map +1 -1
  125. package/fesm2022/menu-testing.mjs +159 -228
  126. package/fesm2022/menu-testing.mjs.map +1 -1
  127. package/fesm2022/menu.mjs +1338 -1343
  128. package/fesm2022/menu.mjs.map +1 -1
  129. package/fesm2022/paginator-testing.mjs +55 -79
  130. package/fesm2022/paginator-testing.mjs.map +1 -1
  131. package/fesm2022/paginator.mjs +381 -309
  132. package/fesm2022/paginator.mjs.map +1 -1
  133. package/fesm2022/progress-bar-testing.mjs +12 -21
  134. package/fesm2022/progress-bar-testing.mjs.map +1 -1
  135. package/fesm2022/progress-bar.mjs +224 -169
  136. package/fesm2022/progress-bar.mjs.map +1 -1
  137. package/fesm2022/progress-spinner-testing.mjs +13 -23
  138. package/fesm2022/progress-spinner-testing.mjs.map +1 -1
  139. package/fesm2022/progress-spinner.mjs +235 -160
  140. package/fesm2022/progress-spinner.mjs.map +1 -1
  141. package/fesm2022/radio-testing.mjs +133 -208
  142. package/fesm2022/radio-testing.mjs.map +1 -1
  143. package/fesm2022/radio.mjs +712 -679
  144. package/fesm2022/radio.mjs.map +1 -1
  145. package/fesm2022/select-testing.mjs +83 -117
  146. package/fesm2022/select-testing.mjs.map +1 -1
  147. package/fesm2022/select.mjs +1116 -1246
  148. package/fesm2022/select.mjs.map +1 -1
  149. package/fesm2022/sidenav-testing.mjs +54 -120
  150. package/fesm2022/sidenav-testing.mjs.map +1 -1
  151. package/fesm2022/sidenav.mjs +1078 -995
  152. package/fesm2022/sidenav.mjs.map +1 -1
  153. package/fesm2022/slide-toggle-testing.mjs +57 -92
  154. package/fesm2022/slide-toggle-testing.mjs.map +1 -1
  155. package/fesm2022/slide-toggle.mjs +369 -279
  156. package/fesm2022/slide-toggle.mjs.map +1 -1
  157. package/fesm2022/slider-testing.mjs +90 -138
  158. package/fesm2022/slider-testing.mjs.map +1 -1
  159. package/fesm2022/slider.mjs +1651 -1716
  160. package/fesm2022/slider.mjs.map +1 -1
  161. package/fesm2022/snack-bar-testing.mjs +40 -87
  162. package/fesm2022/snack-bar-testing.mjs.map +1 -1
  163. package/fesm2022/snack-bar.mjs +763 -714
  164. package/fesm2022/snack-bar.mjs.map +1 -1
  165. package/fesm2022/sort-testing.mjs +45 -66
  166. package/fesm2022/sort-testing.mjs.map +1 -1
  167. package/fesm2022/sort.mjs +419 -344
  168. package/fesm2022/sort.mjs.map +1 -1
  169. package/fesm2022/stepper-testing.mjs +78 -154
  170. package/fesm2022/stepper-testing.mjs.map +1 -1
  171. package/fesm2022/stepper.mjs +790 -498
  172. package/fesm2022/stepper.mjs.map +1 -1
  173. package/fesm2022/table-testing.mjs +120 -213
  174. package/fesm2022/table-testing.mjs.map +1 -1
  175. package/fesm2022/table.mjs +1026 -684
  176. package/fesm2022/table.mjs.map +1 -1
  177. package/fesm2022/tabs-testing.mjs +125 -197
  178. package/fesm2022/tabs-testing.mjs.map +1 -1
  179. package/fesm2022/tabs.mjs +2351 -2028
  180. package/fesm2022/tabs.mjs.map +1 -1
  181. package/fesm2022/timepicker-testing.mjs +113 -172
  182. package/fesm2022/timepicker-testing.mjs.map +1 -1
  183. package/fesm2022/timepicker.mjs +1019 -826
  184. package/fesm2022/timepicker.mjs.map +1 -1
  185. package/fesm2022/toolbar-testing.mjs +16 -27
  186. package/fesm2022/toolbar-testing.mjs.map +1 -1
  187. package/fesm2022/toolbar.mjs +163 -78
  188. package/fesm2022/toolbar.mjs.map +1 -1
  189. package/fesm2022/tooltip-testing.mjs +41 -52
  190. package/fesm2022/tooltip-testing.mjs.map +1 -1
  191. package/fesm2022/tooltip.mjs +36 -10
  192. package/fesm2022/tooltip.mjs.map +1 -1
  193. package/fesm2022/tree-testing.mjs +86 -162
  194. package/fesm2022/tree-testing.mjs.map +1 -1
  195. package/fesm2022/tree.mjs +638 -466
  196. package/fesm2022/tree.mjs.map +1 -1
  197. package/package.json +2 -2
  198. package/schematics/ng-add/index.js +1 -1
  199. package/types/expansion.d.ts +4 -2
  200. package/types/menu-testing.d.ts +2 -0
  201. package/types/select.d.ts +1 -1
  202. package/types/timepicker.d.ts +1 -0
package/fesm2022/tree.mjs CHANGED
@@ -6,503 +6,675 @@ import { DataSource } from '@angular/cdk/collections';
6
6
  import { BehaviorSubject, merge } from 'rxjs';
7
7
  import { take, map } from 'rxjs/operators';
8
8
 
9
- /**
10
- * Determinte if argument TreeKeyManager is the NoopTreeKeyManager. This function is safe to use with SSR.
11
- */
12
9
  function isNoopTreeKeyManager(keyManager) {
13
- return !!keyManager._isNoopTreeKeyManager;
10
+ return !!keyManager._isNoopTreeKeyManager;
14
11
  }
15
- /**
16
- * Wrapper for the CdkTree node with Material design styles.
17
- */
18
12
  class MatTreeNode extends CdkTreeNode {
19
- /**
20
- * The tabindex of the tree node.
21
- *
22
- * @deprecated By default MatTreeNode manages focus using TreeKeyManager instead of tabIndex.
23
- * Recommend to avoid setting tabIndex directly to prevent TreeKeyManager form getting into
24
- * an unexpected state. Tabindex to be removed in a future version.
25
- * @breaking-change 21.0.0 Remove this attribute.
26
- */
27
- get tabIndexInputBinding() {
28
- return this._tabIndexInputBinding;
29
- }
30
- set tabIndexInputBinding(value) {
31
- // If the specified tabIndex value is null or undefined, fall back to the default value.
32
- this._tabIndexInputBinding = value;
33
- }
34
- _tabIndexInputBinding;
35
- /**
36
- * The default tabindex of the tree node.
37
- *
38
- * @deprecated By default MatTreeNode manages focus using TreeKeyManager instead of tabIndex.
39
- * Recommend to avoid setting tabIndex directly to prevent TreeKeyManager form getting into
40
- * an unexpected state. Tabindex to be removed in a future version.
41
- * @breaking-change 21.0.0 Remove this attribute.
42
- */
43
- defaultTabIndex = 0;
44
- _getTabindexAttribute() {
45
- if (isNoopTreeKeyManager(this._tree._keyManager)) {
46
- return this.tabIndexInputBinding;
47
- }
48
- return this._tabindex;
49
- }
50
- /**
51
- * Whether the component is disabled.
52
- *
53
- * @deprecated This is an alias for `isDisabled`.
54
- * @breaking-change 21.0.0 Remove this input
55
- */
56
- get disabled() {
57
- return this.isDisabled;
58
- }
59
- set disabled(value) {
60
- this.isDisabled = value;
61
- }
62
- constructor() {
63
- super();
64
- const tabIndex = inject(new HostAttributeToken('tabindex'), { optional: true });
65
- this.tabIndexInputBinding = Number(tabIndex) || this.defaultTabIndex;
66
- }
67
- // This is a workaround for https://github.com/angular/angular/issues/23091
68
- // In aot mode, the lifecycle hooks from parent class are not called.
69
- ngOnInit() {
70
- super.ngOnInit();
71
- }
72
- ngOnDestroy() {
73
- super.ngOnDestroy();
74
- }
75
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTreeNode, deps: [], target: i0.ɵɵFactoryTarget.Directive });
76
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.2.0-next.2", type: MatTreeNode, isStandalone: true, selector: "mat-tree-node", inputs: { tabIndexInputBinding: ["tabIndex", "tabIndexInputBinding", (value) => (value == null ? 0 : numberAttribute(value))], disabled: ["disabled", "disabled", booleanAttribute] }, outputs: { activation: "activation", expandedChange: "expandedChange" }, host: { listeners: { "click": "_focusItem()" }, properties: { "attr.aria-expanded": "_getAriaExpanded()", "attr.aria-level": "level + 1", "attr.aria-posinset": "_getPositionInSet()", "attr.aria-setsize": "_getSetSize()", "tabindex": "_getTabindexAttribute()" }, classAttribute: "mat-tree-node" }, providers: [{ provide: CdkTreeNode, useExisting: MatTreeNode }], exportAs: ["matTreeNode"], usesInheritance: true, ngImport: i0 });
13
+ get tabIndexInputBinding() {
14
+ return this._tabIndexInputBinding;
15
+ }
16
+ set tabIndexInputBinding(value) {
17
+ this._tabIndexInputBinding = value;
18
+ }
19
+ _tabIndexInputBinding;
20
+ defaultTabIndex = 0;
21
+ _getTabindexAttribute() {
22
+ if (isNoopTreeKeyManager(this._tree._keyManager)) {
23
+ return this.tabIndexInputBinding;
24
+ }
25
+ return this._tabindex;
26
+ }
27
+ get disabled() {
28
+ return this.isDisabled;
29
+ }
30
+ set disabled(value) {
31
+ this.isDisabled = value;
32
+ }
33
+ constructor() {
34
+ super();
35
+ const tabIndex = inject(new HostAttributeToken('tabindex'), {
36
+ optional: true
37
+ });
38
+ this.tabIndexInputBinding = Number(tabIndex) || this.defaultTabIndex;
39
+ }
40
+ ngOnInit() {
41
+ super.ngOnInit();
42
+ }
43
+ ngOnDestroy() {
44
+ super.ngOnDestroy();
45
+ }
46
+ static ɵfac = i0.ɵɵngDeclareFactory({
47
+ minVersion: "12.0.0",
48
+ version: "20.2.0-next.2",
49
+ ngImport: i0,
50
+ type: MatTreeNode,
51
+ deps: [],
52
+ target: i0.ɵɵFactoryTarget.Directive
53
+ });
54
+ static ɵdir = i0.ɵɵngDeclareDirective({
55
+ minVersion: "16.1.0",
56
+ version: "20.2.0-next.2",
57
+ type: MatTreeNode,
58
+ isStandalone: true,
59
+ selector: "mat-tree-node",
60
+ inputs: {
61
+ tabIndexInputBinding: ["tabIndex", "tabIndexInputBinding", value => value == null ? 0 : numberAttribute(value)],
62
+ disabled: ["disabled", "disabled", booleanAttribute]
63
+ },
64
+ outputs: {
65
+ activation: "activation",
66
+ expandedChange: "expandedChange"
67
+ },
68
+ host: {
69
+ listeners: {
70
+ "click": "_focusItem()"
71
+ },
72
+ properties: {
73
+ "attr.aria-expanded": "_getAriaExpanded()",
74
+ "attr.aria-level": "level + 1",
75
+ "attr.aria-posinset": "_getPositionInSet()",
76
+ "attr.aria-setsize": "_getSetSize()",
77
+ "tabindex": "_getTabindexAttribute()"
78
+ },
79
+ classAttribute: "mat-tree-node"
80
+ },
81
+ providers: [{
82
+ provide: CdkTreeNode,
83
+ useExisting: MatTreeNode
84
+ }],
85
+ exportAs: ["matTreeNode"],
86
+ usesInheritance: true,
87
+ ngImport: i0
88
+ });
77
89
  }
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTreeNode, decorators: [{
79
- type: Directive,
80
- args: [{
81
- selector: 'mat-tree-node',
82
- exportAs: 'matTreeNode',
83
- outputs: ['activation', 'expandedChange'],
84
- providers: [{ provide: CdkTreeNode, useExisting: MatTreeNode }],
85
- host: {
86
- 'class': 'mat-tree-node',
87
- '[attr.aria-expanded]': '_getAriaExpanded()',
88
- '[attr.aria-level]': 'level + 1',
89
- '[attr.aria-posinset]': '_getPositionInSet()',
90
- '[attr.aria-setsize]': '_getSetSize()',
91
- '(click)': '_focusItem()',
92
- '[tabindex]': '_getTabindexAttribute()',
93
- },
94
- }]
95
- }], ctorParameters: () => [], propDecorators: { tabIndexInputBinding: [{
96
- type: Input,
97
- args: [{
98
- transform: (value) => (value == null ? 0 : numberAttribute(value)),
99
- alias: 'tabIndex',
100
- }]
101
- }], disabled: [{
102
- type: Input,
103
- args: [{ transform: booleanAttribute }]
104
- }] } });
105
- /**
106
- * Wrapper for the CdkTree node definition with Material design styles.
107
- * Captures the node's template and a when predicate that describes when this node should be used.
108
- */
90
+ i0.ɵɵngDeclareClassMetadata({
91
+ minVersion: "12.0.0",
92
+ version: "20.2.0-next.2",
93
+ ngImport: i0,
94
+ type: MatTreeNode,
95
+ decorators: [{
96
+ type: Directive,
97
+ args: [{
98
+ selector: 'mat-tree-node',
99
+ exportAs: 'matTreeNode',
100
+ outputs: ['activation', 'expandedChange'],
101
+ providers: [{
102
+ provide: CdkTreeNode,
103
+ useExisting: MatTreeNode
104
+ }],
105
+ host: {
106
+ 'class': 'mat-tree-node',
107
+ '[attr.aria-expanded]': '_getAriaExpanded()',
108
+ '[attr.aria-level]': 'level + 1',
109
+ '[attr.aria-posinset]': '_getPositionInSet()',
110
+ '[attr.aria-setsize]': '_getSetSize()',
111
+ '(click)': '_focusItem()',
112
+ '[tabindex]': '_getTabindexAttribute()'
113
+ }
114
+ }]
115
+ }],
116
+ ctorParameters: () => [],
117
+ propDecorators: {
118
+ tabIndexInputBinding: [{
119
+ type: Input,
120
+ args: [{
121
+ transform: value => value == null ? 0 : numberAttribute(value),
122
+ alias: 'tabIndex'
123
+ }]
124
+ }],
125
+ disabled: [{
126
+ type: Input,
127
+ args: [{
128
+ transform: booleanAttribute
129
+ }]
130
+ }]
131
+ }
132
+ });
109
133
  class MatTreeNodeDef extends CdkTreeNodeDef {
110
- data;
111
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTreeNodeDef, deps: null, target: i0.ɵɵFactoryTarget.Directive });
112
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatTreeNodeDef, isStandalone: true, selector: "[matTreeNodeDef]", inputs: { when: ["matTreeNodeDefWhen", "when"], data: ["matTreeNode", "data"] }, providers: [{ provide: CdkTreeNodeDef, useExisting: MatTreeNodeDef }], usesInheritance: true, ngImport: i0 });
134
+ data;
135
+ static ɵfac = i0.ɵɵngDeclareFactory({
136
+ minVersion: "12.0.0",
137
+ version: "20.2.0-next.2",
138
+ ngImport: i0,
139
+ type: MatTreeNodeDef,
140
+ deps: null,
141
+ target: i0.ɵɵFactoryTarget.Directive
142
+ });
143
+ static ɵdir = i0.ɵɵngDeclareDirective({
144
+ minVersion: "14.0.0",
145
+ version: "20.2.0-next.2",
146
+ type: MatTreeNodeDef,
147
+ isStandalone: true,
148
+ selector: "[matTreeNodeDef]",
149
+ inputs: {
150
+ when: ["matTreeNodeDefWhen", "when"],
151
+ data: ["matTreeNode", "data"]
152
+ },
153
+ providers: [{
154
+ provide: CdkTreeNodeDef,
155
+ useExisting: MatTreeNodeDef
156
+ }],
157
+ usesInheritance: true,
158
+ ngImport: i0
159
+ });
113
160
  }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTreeNodeDef, decorators: [{
115
- type: Directive,
116
- args: [{
117
- selector: '[matTreeNodeDef]',
118
- inputs: [{ name: 'when', alias: 'matTreeNodeDefWhen' }],
119
- providers: [{ provide: CdkTreeNodeDef, useExisting: MatTreeNodeDef }],
120
- }]
121
- }], propDecorators: { data: [{
122
- type: Input,
123
- args: ['matTreeNode']
124
- }] } });
125
- /**
126
- * Wrapper for the CdkTree nested node with Material design styles.
127
- */
161
+ i0.ɵɵngDeclareClassMetadata({
162
+ minVersion: "12.0.0",
163
+ version: "20.2.0-next.2",
164
+ ngImport: i0,
165
+ type: MatTreeNodeDef,
166
+ decorators: [{
167
+ type: Directive,
168
+ args: [{
169
+ selector: '[matTreeNodeDef]',
170
+ inputs: [{
171
+ name: 'when',
172
+ alias: 'matTreeNodeDefWhen'
173
+ }],
174
+ providers: [{
175
+ provide: CdkTreeNodeDef,
176
+ useExisting: MatTreeNodeDef
177
+ }]
178
+ }]
179
+ }],
180
+ propDecorators: {
181
+ data: [{
182
+ type: Input,
183
+ args: ['matTreeNode']
184
+ }]
185
+ }
186
+ });
128
187
  class MatNestedTreeNode extends CdkNestedTreeNode {
129
- node;
130
- /**
131
- * Whether the node is disabled.
132
- *
133
- * @deprecated This is an alias for `isDisabled`.
134
- * @breaking-change 21.0.0 Remove this input
135
- */
136
- get disabled() {
137
- return this.isDisabled;
138
- }
139
- set disabled(value) {
140
- this.isDisabled = value;
141
- }
142
- /** Tabindex of the node. */
143
- get tabIndex() {
144
- return this.isDisabled ? -1 : this._tabIndex;
145
- }
146
- set tabIndex(value) {
147
- // If the specified tabIndex value is null or undefined, fall back to the default value.
148
- this._tabIndex = value;
149
- }
150
- _tabIndex;
151
- // This is a workaround for https://github.com/angular/angular/issues/19145
152
- // In aot mode, the lifecycle hooks from parent class are not called.
153
- // TODO(tinayuangao): Remove when the angular issue #19145 is fixed
154
- ngOnInit() {
155
- super.ngOnInit();
156
- }
157
- ngAfterContentInit() {
158
- super.ngAfterContentInit();
159
- }
160
- ngOnDestroy() {
161
- super.ngOnDestroy();
162
- }
163
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatNestedTreeNode, deps: null, target: i0.ɵɵFactoryTarget.Directive });
164
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.2.0-next.2", type: MatNestedTreeNode, isStandalone: true, selector: "mat-nested-tree-node", inputs: { node: ["matNestedTreeNode", "node"], disabled: ["disabled", "disabled", booleanAttribute], tabIndex: ["tabIndex", "tabIndex", (value) => (value == null ? 0 : numberAttribute(value))] }, outputs: { activation: "activation", expandedChange: "expandedChange" }, host: { classAttribute: "mat-nested-tree-node" }, providers: [
165
- { provide: CdkNestedTreeNode, useExisting: MatNestedTreeNode },
166
- { provide: CdkTreeNode, useExisting: MatNestedTreeNode },
167
- { provide: CDK_TREE_NODE_OUTLET_NODE, useExisting: MatNestedTreeNode },
168
- ], exportAs: ["matNestedTreeNode"], usesInheritance: true, ngImport: i0 });
188
+ node;
189
+ get disabled() {
190
+ return this.isDisabled;
191
+ }
192
+ set disabled(value) {
193
+ this.isDisabled = value;
194
+ }
195
+ get tabIndex() {
196
+ return this.isDisabled ? -1 : this._tabIndex;
197
+ }
198
+ set tabIndex(value) {
199
+ this._tabIndex = value;
200
+ }
201
+ _tabIndex;
202
+ ngOnInit() {
203
+ super.ngOnInit();
204
+ }
205
+ ngAfterContentInit() {
206
+ super.ngAfterContentInit();
207
+ }
208
+ ngOnDestroy() {
209
+ super.ngOnDestroy();
210
+ }
211
+ static ɵfac = i0.ɵɵngDeclareFactory({
212
+ minVersion: "12.0.0",
213
+ version: "20.2.0-next.2",
214
+ ngImport: i0,
215
+ type: MatNestedTreeNode,
216
+ deps: null,
217
+ target: i0.ɵɵFactoryTarget.Directive
218
+ });
219
+ static ɵdir = i0.ɵɵngDeclareDirective({
220
+ minVersion: "16.1.0",
221
+ version: "20.2.0-next.2",
222
+ type: MatNestedTreeNode,
223
+ isStandalone: true,
224
+ selector: "mat-nested-tree-node",
225
+ inputs: {
226
+ node: ["matNestedTreeNode", "node"],
227
+ disabled: ["disabled", "disabled", booleanAttribute],
228
+ tabIndex: ["tabIndex", "tabIndex", value => value == null ? 0 : numberAttribute(value)]
229
+ },
230
+ outputs: {
231
+ activation: "activation",
232
+ expandedChange: "expandedChange"
233
+ },
234
+ host: {
235
+ classAttribute: "mat-nested-tree-node"
236
+ },
237
+ providers: [{
238
+ provide: CdkNestedTreeNode,
239
+ useExisting: MatNestedTreeNode
240
+ }, {
241
+ provide: CdkTreeNode,
242
+ useExisting: MatNestedTreeNode
243
+ }, {
244
+ provide: CDK_TREE_NODE_OUTLET_NODE,
245
+ useExisting: MatNestedTreeNode
246
+ }],
247
+ exportAs: ["matNestedTreeNode"],
248
+ usesInheritance: true,
249
+ ngImport: i0
250
+ });
169
251
  }
170
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatNestedTreeNode, decorators: [{
171
- type: Directive,
172
- args: [{
173
- selector: 'mat-nested-tree-node',
174
- exportAs: 'matNestedTreeNode',
175
- outputs: ['activation', 'expandedChange'],
176
- providers: [
177
- { provide: CdkNestedTreeNode, useExisting: MatNestedTreeNode },
178
- { provide: CdkTreeNode, useExisting: MatNestedTreeNode },
179
- { provide: CDK_TREE_NODE_OUTLET_NODE, useExisting: MatNestedTreeNode },
180
- ],
181
- host: {
182
- 'class': 'mat-nested-tree-node',
183
- },
184
- }]
185
- }], propDecorators: { node: [{
186
- type: Input,
187
- args: ['matNestedTreeNode']
188
- }], disabled: [{
189
- type: Input,
190
- args: [{ transform: booleanAttribute }]
191
- }], tabIndex: [{
192
- type: Input,
193
- args: [{
194
- transform: (value) => (value == null ? 0 : numberAttribute(value)),
195
- }]
196
- }] } });
252
+ i0.ɵɵngDeclareClassMetadata({
253
+ minVersion: "12.0.0",
254
+ version: "20.2.0-next.2",
255
+ ngImport: i0,
256
+ type: MatNestedTreeNode,
257
+ decorators: [{
258
+ type: Directive,
259
+ args: [{
260
+ selector: 'mat-nested-tree-node',
261
+ exportAs: 'matNestedTreeNode',
262
+ outputs: ['activation', 'expandedChange'],
263
+ providers: [{
264
+ provide: CdkNestedTreeNode,
265
+ useExisting: MatNestedTreeNode
266
+ }, {
267
+ provide: CdkTreeNode,
268
+ useExisting: MatNestedTreeNode
269
+ }, {
270
+ provide: CDK_TREE_NODE_OUTLET_NODE,
271
+ useExisting: MatNestedTreeNode
272
+ }],
273
+ host: {
274
+ 'class': 'mat-nested-tree-node'
275
+ }
276
+ }]
277
+ }],
278
+ propDecorators: {
279
+ node: [{
280
+ type: Input,
281
+ args: ['matNestedTreeNode']
282
+ }],
283
+ disabled: [{
284
+ type: Input,
285
+ args: [{
286
+ transform: booleanAttribute
287
+ }]
288
+ }],
289
+ tabIndex: [{
290
+ type: Input,
291
+ args: [{
292
+ transform: value => value == null ? 0 : numberAttribute(value)
293
+ }]
294
+ }]
295
+ }
296
+ });
197
297
 
198
- /**
199
- * Wrapper for the CdkTree padding with Material design styles.
200
- */
201
298
  class MatTreeNodePadding extends CdkTreeNodePadding {
202
- /** The level of depth of the tree node. The padding will be `level * indent` pixels. */
203
- get level() {
204
- return this._level;
205
- }
206
- set level(value) {
207
- this._setLevelInput(value);
208
- }
209
- /** The indent for each level. Default number 40px from material design menu sub-menu spec. */
210
- get indent() {
211
- return this._indent;
212
- }
213
- set indent(indent) {
214
- this._setIndentInput(indent);
215
- }
216
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTreeNodePadding, deps: null, target: i0.ɵɵFactoryTarget.Directive });
217
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.2.0-next.2", type: MatTreeNodePadding, isStandalone: true, selector: "[matTreeNodePadding]", inputs: { level: ["matTreeNodePadding", "level", numberAttribute], indent: ["matTreeNodePaddingIndent", "indent"] }, providers: [{ provide: CdkTreeNodePadding, useExisting: MatTreeNodePadding }], usesInheritance: true, ngImport: i0 });
299
+ get level() {
300
+ return this._level;
301
+ }
302
+ set level(value) {
303
+ this._setLevelInput(value);
304
+ }
305
+ get indent() {
306
+ return this._indent;
307
+ }
308
+ set indent(indent) {
309
+ this._setIndentInput(indent);
310
+ }
311
+ static ɵfac = i0.ɵɵngDeclareFactory({
312
+ minVersion: "12.0.0",
313
+ version: "20.2.0-next.2",
314
+ ngImport: i0,
315
+ type: MatTreeNodePadding,
316
+ deps: null,
317
+ target: i0.ɵɵFactoryTarget.Directive
318
+ });
319
+ static ɵdir = i0.ɵɵngDeclareDirective({
320
+ minVersion: "16.1.0",
321
+ version: "20.2.0-next.2",
322
+ type: MatTreeNodePadding,
323
+ isStandalone: true,
324
+ selector: "[matTreeNodePadding]",
325
+ inputs: {
326
+ level: ["matTreeNodePadding", "level", numberAttribute],
327
+ indent: ["matTreeNodePaddingIndent", "indent"]
328
+ },
329
+ providers: [{
330
+ provide: CdkTreeNodePadding,
331
+ useExisting: MatTreeNodePadding
332
+ }],
333
+ usesInheritance: true,
334
+ ngImport: i0
335
+ });
218
336
  }
219
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTreeNodePadding, decorators: [{
220
- type: Directive,
221
- args: [{
222
- selector: '[matTreeNodePadding]',
223
- providers: [{ provide: CdkTreeNodePadding, useExisting: MatTreeNodePadding }],
224
- }]
225
- }], propDecorators: { level: [{
226
- type: Input,
227
- args: [{ alias: 'matTreeNodePadding', transform: numberAttribute }]
228
- }], indent: [{
229
- type: Input,
230
- args: ['matTreeNodePaddingIndent']
231
- }] } });
337
+ i0.ɵɵngDeclareClassMetadata({
338
+ minVersion: "12.0.0",
339
+ version: "20.2.0-next.2",
340
+ ngImport: i0,
341
+ type: MatTreeNodePadding,
342
+ decorators: [{
343
+ type: Directive,
344
+ args: [{
345
+ selector: '[matTreeNodePadding]',
346
+ providers: [{
347
+ provide: CdkTreeNodePadding,
348
+ useExisting: MatTreeNodePadding
349
+ }]
350
+ }]
351
+ }],
352
+ propDecorators: {
353
+ level: [{
354
+ type: Input,
355
+ args: [{
356
+ alias: 'matTreeNodePadding',
357
+ transform: numberAttribute
358
+ }]
359
+ }],
360
+ indent: [{
361
+ type: Input,
362
+ args: ['matTreeNodePaddingIndent']
363
+ }]
364
+ }
365
+ });
232
366
 
233
- /**
234
- * Outlet for nested CdkNode. Put `[matTreeNodeOutlet]` on a tag to place children dataNodes
235
- * inside the outlet.
236
- */
237
367
  class MatTreeNodeOutlet {
238
- viewContainer = inject(ViewContainerRef);
239
- _node = inject(CDK_TREE_NODE_OUTLET_NODE, { optional: true });
240
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTreeNodeOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive });
241
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatTreeNodeOutlet, isStandalone: true, selector: "[matTreeNodeOutlet]", providers: [
242
- {
243
- provide: CdkTreeNodeOutlet,
244
- useExisting: MatTreeNodeOutlet,
245
- },
246
- ], ngImport: i0 });
368
+ viewContainer = inject(ViewContainerRef);
369
+ _node = inject(CDK_TREE_NODE_OUTLET_NODE, {
370
+ optional: true
371
+ });
372
+ static ɵfac = i0.ɵɵngDeclareFactory({
373
+ minVersion: "12.0.0",
374
+ version: "20.2.0-next.2",
375
+ ngImport: i0,
376
+ type: MatTreeNodeOutlet,
377
+ deps: [],
378
+ target: i0.ɵɵFactoryTarget.Directive
379
+ });
380
+ static ɵdir = i0.ɵɵngDeclareDirective({
381
+ minVersion: "14.0.0",
382
+ version: "20.2.0-next.2",
383
+ type: MatTreeNodeOutlet,
384
+ isStandalone: true,
385
+ selector: "[matTreeNodeOutlet]",
386
+ providers: [{
387
+ provide: CdkTreeNodeOutlet,
388
+ useExisting: MatTreeNodeOutlet
389
+ }],
390
+ ngImport: i0
391
+ });
247
392
  }
248
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTreeNodeOutlet, decorators: [{
249
- type: Directive,
250
- args: [{
251
- selector: '[matTreeNodeOutlet]',
252
- providers: [
253
- {
254
- provide: CdkTreeNodeOutlet,
255
- useExisting: MatTreeNodeOutlet,
256
- },
257
- ],
258
- }]
259
- }] });
393
+ i0.ɵɵngDeclareClassMetadata({
394
+ minVersion: "12.0.0",
395
+ version: "20.2.0-next.2",
396
+ ngImport: i0,
397
+ type: MatTreeNodeOutlet,
398
+ decorators: [{
399
+ type: Directive,
400
+ args: [{
401
+ selector: '[matTreeNodeOutlet]',
402
+ providers: [{
403
+ provide: CdkTreeNodeOutlet,
404
+ useExisting: MatTreeNodeOutlet
405
+ }]
406
+ }]
407
+ }]
408
+ });
260
409
 
261
- /**
262
- * Wrapper for the CdkTable with Material design styles.
263
- */
264
410
  class MatTree extends CdkTree {
265
- // Outlets within the tree's template where the dataNodes will be inserted.
266
- // We need an initializer here to avoid a TS error. The value will be set in `ngAfterViewInit`.
267
- _nodeOutlet = undefined;
268
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTree, deps: null, target: i0.ɵɵFactoryTarget.Component });
269
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatTree, isStandalone: true, selector: "mat-tree", host: { classAttribute: "mat-tree" }, providers: [{ provide: CdkTree, useExisting: MatTree }], viewQueries: [{ propertyName: "_nodeOutlet", first: true, predicate: MatTreeNodeOutlet, descendants: true, static: true }], exportAs: ["matTree"], usesInheritance: true, ngImport: i0, template: `<ng-container matTreeNodeOutlet></ng-container>`, isInline: true, styles: [".mat-tree{display:block;background-color:var(--mat-tree-container-background-color, var(--mat-sys-surface))}.mat-tree-node,.mat-nested-tree-node{color:var(--mat-tree-node-text-color, var(--mat-sys-on-surface));font-family:var(--mat-tree-node-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-tree-node-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-tree-node-text-weight, var(--mat-sys-body-large-weight))}.mat-tree-node{display:flex;align-items:center;flex:1;word-wrap:break-word;min-height:var(--mat-tree-node-min-height, 48px)}.mat-nested-tree-node{border-bottom-width:0}\n"], dependencies: [{ kind: "directive", type: MatTreeNodeOutlet, selector: "[matTreeNodeOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
411
+ _nodeOutlet = undefined;
412
+ static ɵfac = i0.ɵɵngDeclareFactory({
413
+ minVersion: "12.0.0",
414
+ version: "20.2.0-next.2",
415
+ ngImport: i0,
416
+ type: MatTree,
417
+ deps: null,
418
+ target: i0.ɵɵFactoryTarget.Component
419
+ });
420
+ static ɵcmp = i0.ɵɵngDeclareComponent({
421
+ minVersion: "14.0.0",
422
+ version: "20.2.0-next.2",
423
+ type: MatTree,
424
+ isStandalone: true,
425
+ selector: "mat-tree",
426
+ host: {
427
+ classAttribute: "mat-tree"
428
+ },
429
+ providers: [{
430
+ provide: CdkTree,
431
+ useExisting: MatTree
432
+ }],
433
+ viewQueries: [{
434
+ propertyName: "_nodeOutlet",
435
+ first: true,
436
+ predicate: MatTreeNodeOutlet,
437
+ descendants: true,
438
+ static: true
439
+ }],
440
+ exportAs: ["matTree"],
441
+ usesInheritance: true,
442
+ ngImport: i0,
443
+ template: `<ng-container matTreeNodeOutlet></ng-container>`,
444
+ isInline: true,
445
+ styles: [".mat-tree{display:block;background-color:var(--mat-tree-container-background-color, var(--mat-sys-surface))}.mat-tree-node,.mat-nested-tree-node{color:var(--mat-tree-node-text-color, var(--mat-sys-on-surface));font-family:var(--mat-tree-node-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-tree-node-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-tree-node-text-weight, var(--mat-sys-body-large-weight))}.mat-tree-node{display:flex;align-items:center;flex:1;word-wrap:break-word;min-height:var(--mat-tree-node-min-height, 48px)}.mat-nested-tree-node{border-bottom-width:0}\n"],
446
+ dependencies: [{
447
+ kind: "directive",
448
+ type: MatTreeNodeOutlet,
449
+ selector: "[matTreeNodeOutlet]"
450
+ }],
451
+ changeDetection: i0.ChangeDetectionStrategy.Default,
452
+ encapsulation: i0.ViewEncapsulation.None
453
+ });
270
454
  }
271
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTree, decorators: [{
272
- type: Component,
273
- args: [{ selector: 'mat-tree', exportAs: 'matTree', template: `<ng-container matTreeNodeOutlet></ng-container>`, host: {
274
- 'class': 'mat-tree',
275
- }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, providers: [{ provide: CdkTree, useExisting: MatTree }], imports: [MatTreeNodeOutlet], styles: [".mat-tree{display:block;background-color:var(--mat-tree-container-background-color, var(--mat-sys-surface))}.mat-tree-node,.mat-nested-tree-node{color:var(--mat-tree-node-text-color, var(--mat-sys-on-surface));font-family:var(--mat-tree-node-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-tree-node-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-tree-node-text-weight, var(--mat-sys-body-large-weight))}.mat-tree-node{display:flex;align-items:center;flex:1;word-wrap:break-word;min-height:var(--mat-tree-node-min-height, 48px)}.mat-nested-tree-node{border-bottom-width:0}\n"] }]
276
- }], propDecorators: { _nodeOutlet: [{
277
- type: ViewChild,
278
- args: [MatTreeNodeOutlet, { static: true }]
279
- }] } });
455
+ i0.ɵɵngDeclareClassMetadata({
456
+ minVersion: "12.0.0",
457
+ version: "20.2.0-next.2",
458
+ ngImport: i0,
459
+ type: MatTree,
460
+ decorators: [{
461
+ type: Component,
462
+ args: [{
463
+ selector: 'mat-tree',
464
+ exportAs: 'matTree',
465
+ template: `<ng-container matTreeNodeOutlet></ng-container>`,
466
+ host: {
467
+ 'class': 'mat-tree'
468
+ },
469
+ encapsulation: ViewEncapsulation.None,
470
+ changeDetection: ChangeDetectionStrategy.Default,
471
+ providers: [{
472
+ provide: CdkTree,
473
+ useExisting: MatTree
474
+ }],
475
+ imports: [MatTreeNodeOutlet],
476
+ styles: [".mat-tree{display:block;background-color:var(--mat-tree-container-background-color, var(--mat-sys-surface))}.mat-tree-node,.mat-nested-tree-node{color:var(--mat-tree-node-text-color, var(--mat-sys-on-surface));font-family:var(--mat-tree-node-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-tree-node-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-tree-node-text-weight, var(--mat-sys-body-large-weight))}.mat-tree-node{display:flex;align-items:center;flex:1;word-wrap:break-word;min-height:var(--mat-tree-node-min-height, 48px)}.mat-nested-tree-node{border-bottom-width:0}\n"]
477
+ }]
478
+ }],
479
+ propDecorators: {
480
+ _nodeOutlet: [{
481
+ type: ViewChild,
482
+ args: [MatTreeNodeOutlet, {
483
+ static: true
484
+ }]
485
+ }]
486
+ }
487
+ });
280
488
 
281
- /**
282
- * Wrapper for the CdkTree's toggle with Material design styles.
283
- */
284
489
  class MatTreeNodeToggle extends CdkTreeNodeToggle {
285
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTreeNodeToggle, deps: null, target: i0.ɵɵFactoryTarget.Directive });
286
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatTreeNodeToggle, isStandalone: true, selector: "[matTreeNodeToggle]", inputs: { recursive: ["matTreeNodeToggleRecursive", "recursive"] }, providers: [{ provide: CdkTreeNodeToggle, useExisting: MatTreeNodeToggle }], usesInheritance: true, ngImport: i0 });
490
+ static ɵfac = i0.ɵɵngDeclareFactory({
491
+ minVersion: "12.0.0",
492
+ version: "20.2.0-next.2",
493
+ ngImport: i0,
494
+ type: MatTreeNodeToggle,
495
+ deps: null,
496
+ target: i0.ɵɵFactoryTarget.Directive
497
+ });
498
+ static ɵdir = i0.ɵɵngDeclareDirective({
499
+ minVersion: "14.0.0",
500
+ version: "20.2.0-next.2",
501
+ type: MatTreeNodeToggle,
502
+ isStandalone: true,
503
+ selector: "[matTreeNodeToggle]",
504
+ inputs: {
505
+ recursive: ["matTreeNodeToggleRecursive", "recursive"]
506
+ },
507
+ providers: [{
508
+ provide: CdkTreeNodeToggle,
509
+ useExisting: MatTreeNodeToggle
510
+ }],
511
+ usesInheritance: true,
512
+ ngImport: i0
513
+ });
287
514
  }
288
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTreeNodeToggle, decorators: [{
289
- type: Directive,
290
- args: [{
291
- selector: '[matTreeNodeToggle]',
292
- providers: [{ provide: CdkTreeNodeToggle, useExisting: MatTreeNodeToggle }],
293
- inputs: [{ name: 'recursive', alias: 'matTreeNodeToggleRecursive' }],
294
- }]
295
- }] });
515
+ i0.ɵɵngDeclareClassMetadata({
516
+ minVersion: "12.0.0",
517
+ version: "20.2.0-next.2",
518
+ ngImport: i0,
519
+ type: MatTreeNodeToggle,
520
+ decorators: [{
521
+ type: Directive,
522
+ args: [{
523
+ selector: '[matTreeNodeToggle]',
524
+ providers: [{
525
+ provide: CdkTreeNodeToggle,
526
+ useExisting: MatTreeNodeToggle
527
+ }],
528
+ inputs: [{
529
+ name: 'recursive',
530
+ alias: 'matTreeNodeToggleRecursive'
531
+ }]
532
+ }]
533
+ }]
534
+ });
296
535
 
297
- const MAT_TREE_DIRECTIVES = [
298
- MatNestedTreeNode,
299
- MatTreeNodeDef,
300
- MatTreeNodePadding,
301
- MatTreeNodeToggle,
302
- MatTree,
303
- MatTreeNode,
304
- MatTreeNodeOutlet,
305
- ];
536
+ const MAT_TREE_DIRECTIVES = [MatNestedTreeNode, MatTreeNodeDef, MatTreeNodePadding, MatTreeNodeToggle, MatTree, MatTreeNode, MatTreeNodeOutlet];
306
537
  class MatTreeModule {
307
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
308
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTreeModule, imports: [CdkTreeModule, MatNestedTreeNode,
309
- MatTreeNodeDef,
310
- MatTreeNodePadding,
311
- MatTreeNodeToggle,
312
- MatTree,
313
- MatTreeNode,
314
- MatTreeNodeOutlet], exports: [BidiModule, MatNestedTreeNode,
315
- MatTreeNodeDef,
316
- MatTreeNodePadding,
317
- MatTreeNodeToggle,
318
- MatTree,
319
- MatTreeNode,
320
- MatTreeNodeOutlet] });
321
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTreeModule, imports: [CdkTreeModule, BidiModule] });
538
+ static ɵfac = i0.ɵɵngDeclareFactory({
539
+ minVersion: "12.0.0",
540
+ version: "20.2.0-next.2",
541
+ ngImport: i0,
542
+ type: MatTreeModule,
543
+ deps: [],
544
+ target: i0.ɵɵFactoryTarget.NgModule
545
+ });
546
+ static ɵmod = i0.ɵɵngDeclareNgModule({
547
+ minVersion: "14.0.0",
548
+ version: "20.2.0-next.2",
549
+ ngImport: i0,
550
+ type: MatTreeModule,
551
+ imports: [CdkTreeModule, MatNestedTreeNode, MatTreeNodeDef, MatTreeNodePadding, MatTreeNodeToggle, MatTree, MatTreeNode, MatTreeNodeOutlet],
552
+ exports: [BidiModule, MatNestedTreeNode, MatTreeNodeDef, MatTreeNodePadding, MatTreeNodeToggle, MatTree, MatTreeNode, MatTreeNodeOutlet]
553
+ });
554
+ static ɵinj = i0.ɵɵngDeclareInjector({
555
+ minVersion: "12.0.0",
556
+ version: "20.2.0-next.2",
557
+ ngImport: i0,
558
+ type: MatTreeModule,
559
+ imports: [CdkTreeModule, BidiModule]
560
+ });
322
561
  }
323
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTreeModule, decorators: [{
324
- type: NgModule,
325
- args: [{
326
- imports: [CdkTreeModule, ...MAT_TREE_DIRECTIVES],
327
- exports: [BidiModule, MAT_TREE_DIRECTIVES],
328
- }]
329
- }] });
562
+ i0.ɵɵngDeclareClassMetadata({
563
+ minVersion: "12.0.0",
564
+ version: "20.2.0-next.2",
565
+ ngImport: i0,
566
+ type: MatTreeModule,
567
+ decorators: [{
568
+ type: NgModule,
569
+ args: [{
570
+ imports: [CdkTreeModule, ...MAT_TREE_DIRECTIVES],
571
+ exports: [BidiModule, MAT_TREE_DIRECTIVES]
572
+ }]
573
+ }]
574
+ });
330
575
 
331
- /**
332
- * Tree flattener to convert a normal type of node to node with children & level information.
333
- * Transform nested nodes of type `T` to flattened nodes of type `F`.
334
- *
335
- * For example, the input data of type `T` is nested, and contains its children data:
336
- * SomeNode: {
337
- * key: 'Fruits',
338
- * children: [
339
- * NodeOne: {
340
- * key: 'Apple',
341
- * },
342
- * NodeTwo: {
343
- * key: 'Pear',
344
- * }
345
- * ]
346
- * }
347
- * After flattener flatten the tree, the structure will become
348
- * SomeNode: {
349
- * key: 'Fruits',
350
- * expandable: true,
351
- * level: 1
352
- * },
353
- * NodeOne: {
354
- * key: 'Apple',
355
- * expandable: false,
356
- * level: 2
357
- * },
358
- * NodeTwo: {
359
- * key: 'Pear',
360
- * expandable: false,
361
- * level: 2
362
- * }
363
- * and the output flattened type is `F` with additional information.
364
- *
365
- * @deprecated Use MatTree#childrenAccessor and MatTreeNode#isExpandable
366
- * instead. To be removed in a future version.
367
- * @breaking-change 21.0.0
368
- */
369
576
  class MatTreeFlattener {
370
- transformFunction;
371
- getLevel;
372
- isExpandable;
373
- getChildren;
374
- constructor(transformFunction, getLevel, isExpandable, getChildren) {
375
- this.transformFunction = transformFunction;
376
- this.getLevel = getLevel;
377
- this.isExpandable = isExpandable;
378
- this.getChildren = getChildren;
379
- }
380
- _flattenNode(node, level, resultNodes, parentMap) {
381
- const flatNode = this.transformFunction(node, level);
382
- resultNodes.push(flatNode);
383
- if (this.isExpandable(flatNode)) {
384
- const childrenNodes = this.getChildren(node);
385
- if (childrenNodes) {
386
- if (Array.isArray(childrenNodes)) {
387
- this._flattenChildren(childrenNodes, level, resultNodes, parentMap);
388
- }
389
- else {
390
- childrenNodes.pipe(take(1)).subscribe(children => {
391
- this._flattenChildren(children, level, resultNodes, parentMap);
392
- });
393
- }
394
- }
577
+ transformFunction;
578
+ getLevel;
579
+ isExpandable;
580
+ getChildren;
581
+ constructor(transformFunction, getLevel, isExpandable, getChildren) {
582
+ this.transformFunction = transformFunction;
583
+ this.getLevel = getLevel;
584
+ this.isExpandable = isExpandable;
585
+ this.getChildren = getChildren;
586
+ }
587
+ _flattenNode(node, level, resultNodes, parentMap) {
588
+ const flatNode = this.transformFunction(node, level);
589
+ resultNodes.push(flatNode);
590
+ if (this.isExpandable(flatNode)) {
591
+ const childrenNodes = this.getChildren(node);
592
+ if (childrenNodes) {
593
+ if (Array.isArray(childrenNodes)) {
594
+ this._flattenChildren(childrenNodes, level, resultNodes, parentMap);
595
+ } else {
596
+ childrenNodes.pipe(take(1)).subscribe(children => {
597
+ this._flattenChildren(children, level, resultNodes, parentMap);
598
+ });
395
599
  }
396
- return resultNodes;
397
- }
398
- _flattenChildren(children, level, resultNodes, parentMap) {
399
- children.forEach((child, index) => {
400
- let childParentMap = parentMap.slice();
401
- childParentMap.push(index != children.length - 1);
402
- this._flattenNode(child, level + 1, resultNodes, childParentMap);
403
- });
404
- }
405
- /**
406
- * Flatten a list of node type T to flattened version of node F.
407
- * Please note that type T may be nested, and the length of `structuredData` may be different
408
- * from that of returned list `F[]`.
409
- */
410
- flattenNodes(structuredData) {
411
- let resultNodes = [];
412
- structuredData.forEach(node => this._flattenNode(node, 0, resultNodes, []));
413
- return resultNodes;
414
- }
415
- /**
416
- * Expand flattened node with current expansion status.
417
- * The returned list may have different length.
418
- */
419
- expandFlattenedNodes(nodes, treeControl) {
420
- let results = [];
421
- let currentExpand = [];
422
- currentExpand[0] = true;
423
- nodes.forEach(node => {
424
- let expand = true;
425
- for (let i = 0; i <= this.getLevel(node); i++) {
426
- expand = expand && currentExpand[i];
427
- }
428
- if (expand) {
429
- results.push(node);
430
- }
431
- if (this.isExpandable(node)) {
432
- currentExpand[this.getLevel(node) + 1] = treeControl.isExpanded(node);
433
- }
434
- });
435
- return results;
436
- }
600
+ }
601
+ }
602
+ return resultNodes;
603
+ }
604
+ _flattenChildren(children, level, resultNodes, parentMap) {
605
+ children.forEach((child, index) => {
606
+ let childParentMap = parentMap.slice();
607
+ childParentMap.push(index != children.length - 1);
608
+ this._flattenNode(child, level + 1, resultNodes, childParentMap);
609
+ });
610
+ }
611
+ flattenNodes(structuredData) {
612
+ let resultNodes = [];
613
+ structuredData.forEach(node => this._flattenNode(node, 0, resultNodes, []));
614
+ return resultNodes;
615
+ }
616
+ expandFlattenedNodes(nodes, treeControl) {
617
+ let results = [];
618
+ let currentExpand = [];
619
+ currentExpand[0] = true;
620
+ nodes.forEach(node => {
621
+ let expand = true;
622
+ for (let i = 0; i <= this.getLevel(node); i++) {
623
+ expand = expand && currentExpand[i];
624
+ }
625
+ if (expand) {
626
+ results.push(node);
627
+ }
628
+ if (this.isExpandable(node)) {
629
+ currentExpand[this.getLevel(node) + 1] = treeControl.isExpanded(node);
630
+ }
631
+ });
632
+ return results;
633
+ }
437
634
  }
438
- /**
439
- * Data source for flat tree.
440
- * The data source need to handle expansion/collapsion of the tree node and change the data feed
441
- * to `MatTree`.
442
- * The nested tree nodes of type `T` are flattened through `MatTreeFlattener`, and converted
443
- * to type `F` for `MatTree` to consume.
444
- *
445
- * @deprecated Use one of levelAccessor or childrenAccessor instead. To be removed in a future
446
- * version.
447
- * @breaking-change 21.0.0
448
- */
449
635
  class MatTreeFlatDataSource extends DataSource {
450
- _treeControl;
451
- _treeFlattener;
452
- _flattenedData = new BehaviorSubject([]);
453
- _expandedData = new BehaviorSubject([]);
454
- get data() {
455
- return this._data.value;
456
- }
457
- set data(value) {
458
- this._data.next(value);
459
- this._flattenedData.next(this._treeFlattener.flattenNodes(this.data));
460
- this._treeControl.dataNodes = this._flattenedData.value;
461
- }
462
- _data = new BehaviorSubject([]);
463
- constructor(_treeControl, _treeFlattener, initialData) {
464
- super();
465
- this._treeControl = _treeControl;
466
- this._treeFlattener = _treeFlattener;
467
- if (initialData) {
468
- // Assign the data through the constructor to ensure that all of the logic is executed.
469
- this.data = initialData;
470
- }
471
- }
472
- connect(collectionViewer) {
473
- return merge(collectionViewer.viewChange, this._treeControl.expansionModel.changed, this._flattenedData).pipe(map(() => {
474
- this._expandedData.next(this._treeFlattener.expandFlattenedNodes(this._flattenedData.value, this._treeControl));
475
- return this._expandedData.value;
476
- }));
477
- }
478
- disconnect() {
479
- // no op
480
- }
636
+ _treeControl;
637
+ _treeFlattener;
638
+ _flattenedData = new BehaviorSubject([]);
639
+ _expandedData = new BehaviorSubject([]);
640
+ get data() {
641
+ return this._data.value;
642
+ }
643
+ set data(value) {
644
+ this._data.next(value);
645
+ this._flattenedData.next(this._treeFlattener.flattenNodes(this.data));
646
+ this._treeControl.dataNodes = this._flattenedData.value;
647
+ }
648
+ _data = new BehaviorSubject([]);
649
+ constructor(_treeControl, _treeFlattener, initialData) {
650
+ super();
651
+ this._treeControl = _treeControl;
652
+ this._treeFlattener = _treeFlattener;
653
+ if (initialData) {
654
+ this.data = initialData;
655
+ }
656
+ }
657
+ connect(collectionViewer) {
658
+ return merge(collectionViewer.viewChange, this._treeControl.expansionModel.changed, this._flattenedData).pipe(map(() => {
659
+ this._expandedData.next(this._treeFlattener.expandFlattenedNodes(this._flattenedData.value, this._treeControl));
660
+ return this._expandedData.value;
661
+ }));
662
+ }
663
+ disconnect() {}
481
664
  }
482
665
 
483
- /**
484
- * Data source for nested tree.
485
- *
486
- * The data source for nested tree doesn't have to consider node flattener, or the way to expand
487
- * or collapse. The expansion/collapsion will be handled by TreeControl and each non-leaf node.
488
- */
489
666
  class MatTreeNestedDataSource extends DataSource {
490
- /**
491
- * Data for the nested tree
492
- */
493
- get data() {
494
- return this._data.value;
495
- }
496
- set data(value) {
497
- this._data.next(value);
498
- }
499
- _data = new BehaviorSubject([]);
500
- connect(collectionViewer) {
501
- return merge(...[collectionViewer.viewChange, this._data]).pipe(map(() => this.data));
502
- }
503
- disconnect() {
504
- // no op
505
- }
667
+ get data() {
668
+ return this._data.value;
669
+ }
670
+ set data(value) {
671
+ this._data.next(value);
672
+ }
673
+ _data = new BehaviorSubject([]);
674
+ connect(collectionViewer) {
675
+ return merge(...[collectionViewer.viewChange, this._data]).pipe(map(() => this.data));
676
+ }
677
+ disconnect() {}
506
678
  }
507
679
 
508
680
  export { MatNestedTreeNode, MatTree, MatTreeFlatDataSource, MatTreeFlattener, MatTreeModule, MatTreeNestedDataSource, MatTreeNode, MatTreeNodeDef, MatTreeNodeOutlet, MatTreeNodePadding, MatTreeNodeToggle };