@angular/material 19.0.0-next.3 → 19.0.0-next.5

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 (210) hide show
  1. package/autocomplete/index.d.ts +5 -15
  2. package/badge/index.d.ts +3 -7
  3. package/bottom-sheet/index.d.ts +5 -15
  4. package/button/index.d.ts +20 -24
  5. package/button-toggle/index.d.ts +5 -8
  6. package/card/index.d.ts +2 -2
  7. package/checkbox/index.d.ts +16 -7
  8. package/chips/index.d.ts +13 -24
  9. package/core/_core-theme.scss +0 -22
  10. package/core/index.d.ts +30 -34
  11. package/core/tokens/m3/mat/_badge.scss +3 -3
  12. package/datepicker/index.d.ts +44 -70
  13. package/dialog/index.d.ts +10 -34
  14. package/dialog/testing/index.d.ts +1 -1
  15. package/expansion/index.d.ts +9 -13
  16. package/fesm2022/autocomplete/testing.mjs.map +1 -1
  17. package/fesm2022/autocomplete.mjs +42 -72
  18. package/fesm2022/autocomplete.mjs.map +1 -1
  19. package/fesm2022/badge/testing.mjs.map +1 -1
  20. package/fesm2022/badge.mjs +22 -29
  21. package/fesm2022/badge.mjs.map +1 -1
  22. package/fesm2022/bottom-sheet/testing.mjs.map +1 -1
  23. package/fesm2022/bottom-sheet.mjs +25 -40
  24. package/fesm2022/bottom-sheet.mjs.map +1 -1
  25. package/fesm2022/button/testing.mjs.map +1 -1
  26. package/fesm2022/button-toggle/testing.mjs.map +1 -1
  27. package/fesm2022/button-toggle.mjs +26 -42
  28. package/fesm2022/button-toggle.mjs.map +1 -1
  29. package/fesm2022/button.mjs +68 -137
  30. package/fesm2022/button.mjs.map +1 -1
  31. package/fesm2022/card/testing.mjs.map +1 -1
  32. package/fesm2022/card.mjs +50 -54
  33. package/fesm2022/card.mjs.map +1 -1
  34. package/fesm2022/checkbox/testing.mjs.map +1 -1
  35. package/fesm2022/checkbox.mjs +38 -39
  36. package/fesm2022/checkbox.mjs.map +1 -1
  37. package/fesm2022/chips/testing.mjs.map +1 -1
  38. package/fesm2022/chips.mjs +93 -144
  39. package/fesm2022/chips.mjs.map +1 -1
  40. package/fesm2022/core/testing.mjs.map +1 -1
  41. package/fesm2022/core.mjs +102 -215
  42. package/fesm2022/core.mjs.map +1 -1
  43. package/fesm2022/datepicker/testing.mjs.map +1 -1
  44. package/fesm2022/datepicker.mjs +192 -328
  45. package/fesm2022/datepicker.mjs.map +1 -1
  46. package/fesm2022/dialog/testing.mjs +3 -3
  47. package/fesm2022/dialog/testing.mjs.map +1 -1
  48. package/fesm2022/dialog.mjs +47 -105
  49. package/fesm2022/dialog.mjs.map +1 -1
  50. package/fesm2022/divider/testing.mjs.map +1 -1
  51. package/fesm2022/divider.mjs +7 -7
  52. package/fesm2022/divider.mjs.map +1 -1
  53. package/fesm2022/expansion/testing.mjs.map +1 -1
  54. package/fesm2022/expansion.mjs +54 -89
  55. package/fesm2022/expansion.mjs.map +1 -1
  56. package/fesm2022/form-field/testing/control.mjs.map +1 -1
  57. package/fesm2022/form-field/testing.mjs.map +1 -1
  58. package/fesm2022/form-field.mjs +89 -93
  59. package/fesm2022/form-field.mjs.map +1 -1
  60. package/fesm2022/grid-list/testing.mjs.map +1 -1
  61. package/fesm2022/grid-list.mjs +35 -42
  62. package/fesm2022/grid-list.mjs.map +1 -1
  63. package/fesm2022/icon/testing.mjs +7 -7
  64. package/fesm2022/icon/testing.mjs.map +1 -1
  65. package/fesm2022/icon.mjs +20 -29
  66. package/fesm2022/icon.mjs.map +1 -1
  67. package/fesm2022/input/testing.mjs.map +1 -1
  68. package/fesm2022/input.mjs +29 -53
  69. package/fesm2022/input.mjs.map +1 -1
  70. package/fesm2022/list/testing.mjs.map +1 -1
  71. package/fesm2022/list.mjs +106 -145
  72. package/fesm2022/list.mjs.map +1 -1
  73. package/fesm2022/material.mjs.map +1 -1
  74. package/fesm2022/menu/testing.mjs.map +1 -1
  75. package/fesm2022/menu.mjs +63 -111
  76. package/fesm2022/menu.mjs.map +1 -1
  77. package/fesm2022/paginator/testing.mjs.map +1 -1
  78. package/fesm2022/paginator.mjs +10 -10
  79. package/fesm2022/paginator.mjs.map +1 -1
  80. package/fesm2022/progress-bar/testing.mjs.map +1 -1
  81. package/fesm2022/progress-bar.mjs +18 -25
  82. package/fesm2022/progress-bar.mjs.map +1 -1
  83. package/fesm2022/progress-spinner/testing.mjs.map +1 -1
  84. package/fesm2022/progress-spinner.mjs +14 -20
  85. package/fesm2022/progress-spinner.mjs.map +1 -1
  86. package/fesm2022/radio/testing.mjs.map +1 -1
  87. package/fesm2022/radio.mjs +29 -42
  88. package/fesm2022/radio.mjs.map +1 -1
  89. package/fesm2022/select/testing.mjs.map +1 -1
  90. package/fesm2022/select.mjs +34 -66
  91. package/fesm2022/select.mjs.map +1 -1
  92. package/fesm2022/sidenav/testing.mjs.map +1 -1
  93. package/fesm2022/sidenav.mjs +67 -87
  94. package/fesm2022/sidenav.mjs.map +1 -1
  95. package/fesm2022/slide-toggle/testing.mjs.map +1 -1
  96. package/fesm2022/slide-toggle.mjs +26 -34
  97. package/fesm2022/slide-toggle.mjs.map +1 -1
  98. package/fesm2022/slider/testing.mjs.map +1 -1
  99. package/fesm2022/slider.mjs +61 -69
  100. package/fesm2022/slider.mjs.map +1 -1
  101. package/fesm2022/snack-bar/testing.mjs.map +1 -1
  102. package/fesm2022/snack-bar.mjs +49 -62
  103. package/fesm2022/snack-bar.mjs.map +1 -1
  104. package/fesm2022/sort/testing.mjs.map +1 -1
  105. package/fesm2022/sort.mjs +30 -49
  106. package/fesm2022/sort.mjs.map +1 -1
  107. package/fesm2022/stepper/testing.mjs.map +1 -1
  108. package/fesm2022/stepper.mjs +56 -68
  109. package/fesm2022/stepper.mjs.map +1 -1
  110. package/fesm2022/table/testing.mjs.map +1 -1
  111. package/fesm2022/table.mjs +55 -55
  112. package/fesm2022/table.mjs.map +1 -1
  113. package/fesm2022/tabs/testing.mjs.map +1 -1
  114. package/fesm2022/tabs.mjs +119 -174
  115. package/fesm2022/tabs.mjs.map +1 -1
  116. package/fesm2022/toolbar/testing.mjs.map +1 -1
  117. package/fesm2022/toolbar.mjs +17 -21
  118. package/fesm2022/toolbar.mjs.map +1 -1
  119. package/fesm2022/tooltip/testing.mjs.map +1 -1
  120. package/fesm2022/tooltip.mjs +53 -67
  121. package/fesm2022/tooltip.mjs.map +1 -1
  122. package/fesm2022/tree/testing.mjs.map +1 -1
  123. package/fesm2022/tree.mjs +35 -62
  124. package/fesm2022/tree.mjs.map +1 -1
  125. package/form-field/_mdc-text-field-structure.scss +49 -47
  126. package/form-field/index.d.ts +12 -24
  127. package/grid-list/index.d.ts +6 -8
  128. package/icon/index.d.ts +2 -2
  129. package/input/index.d.ts +3 -7
  130. package/list/_list-inherited-structure.scss +1 -13
  131. package/list/index.d.ts +10 -14
  132. package/menu/index.d.ts +15 -49
  133. package/package.json +2 -2
  134. package/prebuilt-themes/azure-blue.css +1 -1
  135. package/prebuilt-themes/cyan-orange.css +1 -1
  136. package/prebuilt-themes/deeppurple-amber.css +1 -1
  137. package/prebuilt-themes/indigo-pink.css +1 -1
  138. package/prebuilt-themes/magenta-violet.css +1 -1
  139. package/prebuilt-themes/pink-bluegrey.css +1 -1
  140. package/prebuilt-themes/purple-green.css +1 -1
  141. package/prebuilt-themes/rose-red.css +1 -1
  142. package/progress-bar/index.d.ts +3 -5
  143. package/progress-spinner/index.d.ts +2 -2
  144. package/radio/index.d.ts +5 -8
  145. package/schematics/ng-add/fonts/material-fonts.d.ts +1 -1
  146. package/schematics/ng-add/fonts/material-fonts.js +2 -2
  147. package/schematics/ng-add/fonts/material-fonts.mjs +2 -2
  148. package/schematics/ng-add/index.d.ts +1 -1
  149. package/schematics/ng-add/index.js +3 -3
  150. package/schematics/ng-add/index.mjs +3 -3
  151. package/schematics/ng-add/package-config.d.ts +1 -1
  152. package/schematics/ng-add/package-config.js +2 -2
  153. package/schematics/ng-add/package-config.mjs +2 -2
  154. package/schematics/ng-add/schema.d.ts +1 -1
  155. package/schematics/ng-add/schema.js +2 -2
  156. package/schematics/ng-add/schema.mjs +2 -2
  157. package/schematics/ng-add/setup-project.d.ts +1 -1
  158. package/schematics/ng-add/setup-project.js +3 -3
  159. package/schematics/ng-add/setup-project.mjs +3 -3
  160. package/schematics/ng-add/theming/create-custom-theme.d.ts +1 -1
  161. package/schematics/ng-add/theming/create-custom-theme.js +2 -2
  162. package/schematics/ng-add/theming/create-custom-theme.mjs +2 -2
  163. package/schematics/ng-add/theming/theming.d.ts +1 -1
  164. package/schematics/ng-add/theming/theming.js +2 -2
  165. package/schematics/ng-add/theming/theming.mjs +2 -2
  166. package/schematics/ng-generate/address-form/index.d.ts +1 -1
  167. package/schematics/ng-generate/address-form/index.js +2 -2
  168. package/schematics/ng-generate/address-form/index.mjs +2 -2
  169. package/schematics/ng-generate/address-form/schema.d.ts +1 -1
  170. package/schematics/ng-generate/address-form/schema.js +2 -2
  171. package/schematics/ng-generate/address-form/schema.mjs +2 -2
  172. package/schematics/ng-generate/dashboard/index.d.ts +1 -1
  173. package/schematics/ng-generate/dashboard/index.js +2 -2
  174. package/schematics/ng-generate/dashboard/index.mjs +2 -2
  175. package/schematics/ng-generate/dashboard/schema.d.ts +1 -1
  176. package/schematics/ng-generate/dashboard/schema.js +2 -2
  177. package/schematics/ng-generate/dashboard/schema.mjs +2 -2
  178. package/schematics/ng-generate/m3-theme/index_bundled.js +1 -1
  179. package/schematics/ng-generate/m3-theme/index_bundled.js.map +1 -1
  180. package/schematics/ng-generate/navigation/index.d.ts +1 -1
  181. package/schematics/ng-generate/navigation/index.js +2 -2
  182. package/schematics/ng-generate/navigation/index.mjs +2 -2
  183. package/schematics/ng-generate/navigation/schema.d.ts +1 -1
  184. package/schematics/ng-generate/navigation/schema.js +2 -2
  185. package/schematics/ng-generate/navigation/schema.mjs +2 -2
  186. package/schematics/ng-generate/table/index.d.ts +1 -1
  187. package/schematics/ng-generate/table/index.js +2 -2
  188. package/schematics/ng-generate/table/index.mjs +2 -2
  189. package/schematics/ng-generate/table/schema.d.ts +1 -1
  190. package/schematics/ng-generate/table/schema.js +2 -2
  191. package/schematics/ng-generate/table/schema.mjs +2 -2
  192. package/schematics/ng-generate/tree/index.d.ts +1 -1
  193. package/schematics/ng-generate/tree/index.js +2 -2
  194. package/schematics/ng-generate/tree/index.mjs +2 -2
  195. package/schematics/ng-generate/tree/schema.d.ts +1 -1
  196. package/schematics/ng-generate/tree/schema.js +2 -2
  197. package/schematics/ng-generate/tree/schema.mjs +2 -2
  198. package/schematics/ng-update/index_bundled.js +1 -1
  199. package/schematics/ng-update/index_bundled.js.map +1 -1
  200. package/select/index.d.ts +4 -14
  201. package/sidenav/index.d.ts +7 -17
  202. package/slide-toggle/index.d.ts +2 -2
  203. package/slider/index.d.ts +8 -8
  204. package/snack-bar/index.d.ts +6 -22
  205. package/sort/index.d.ts +4 -20
  206. package/stepper/index.d.ts +6 -13
  207. package/tabs/index.d.ts +21 -32
  208. package/toolbar/index.d.ts +3 -4
  209. package/tooltip/index.d.ts +5 -12
  210. package/tree/index.d.ts +5 -18
package/fesm2022/tree.mjs CHANGED
@@ -1,7 +1,6 @@
1
- import * as i1 from '@angular/cdk/tree';
2
1
  import { CdkTreeNode, CdkTreeNodeDef, CdkNestedTreeNode, CDK_TREE_NODE_OUTLET_NODE, CdkTreeNodePadding, CdkTreeNodeOutlet, CdkTree, CdkTreeNodeToggle, CdkTreeModule } from '@angular/cdk/tree';
3
2
  import * as i0 from '@angular/core';
4
- import { numberAttribute, booleanAttribute, Directive, Attribute, Input, Inject, Optional, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, NgModule } from '@angular/core';
3
+ import { inject, HostAttributeToken, numberAttribute, booleanAttribute, Directive, Input, ViewContainerRef, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, NgModule } from '@angular/core';
5
4
  import { MatCommonModule } from '@angular/material/core';
6
5
  import { DataSource } from '@angular/cdk/collections';
7
6
  import { BehaviorSubject, merge } from 'rxjs';
@@ -50,17 +49,8 @@ class MatTreeNode extends CdkTreeNode {
50
49
  set disabled(value) {
51
50
  this.isDisabled = value;
52
51
  }
53
- constructor(elementRef, tree,
54
- /**
55
- * The tabindex of the tree node.
56
- *
57
- * @deprecated By default MatTreeNode manages focus using TreeKeyManager instead of tabIndex.
58
- * Recommend to avoid setting tabIndex directly to prevent TreeKeyManager form getting into
59
- * an unexpected state. Tabindex to be removed in a future version.
60
- * @breaking-change 21.0.0 Remove this attribute.
61
- */
62
- tabIndex) {
63
- super(elementRef, tree);
52
+ constructor() {
53
+ super();
64
54
  /**
65
55
  * The default tabindex of the tree node.
66
56
  *
@@ -70,6 +60,7 @@ class MatTreeNode extends CdkTreeNode {
70
60
  * @breaking-change 21.0.0 Remove this attribute.
71
61
  */
72
62
  this.defaultTabIndex = 0;
63
+ const tabIndex = inject(new HostAttributeToken('tabindex'), { optional: true });
73
64
  this.tabIndexInputBinding = Number(tabIndex) || this.defaultTabIndex;
74
65
  }
75
66
  // This is a workaround for https://github.com/angular/angular/issues/23091
@@ -80,10 +71,10 @@ class MatTreeNode extends CdkTreeNode {
80
71
  ngOnDestroy() {
81
72
  super.ngOnDestroy();
82
73
  }
83
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: MatTreeNode, deps: [{ token: i0.ElementRef }, { token: i1.CdkTree }, { token: 'tabindex', attribute: true }], target: i0.ɵɵFactoryTarget.Directive }); }
84
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.0.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 }); }
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MatTreeNode, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
75
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.0.0-next.3", 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 }); }
85
76
  }
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: MatTreeNode, decorators: [{
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MatTreeNode, decorators: [{
87
78
  type: Directive,
88
79
  args: [{
89
80
  selector: 'mat-tree-node',
@@ -101,10 +92,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.2",
101
92
  },
102
93
  standalone: true,
103
94
  }]
104
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.CdkTree }, { type: undefined, decorators: [{
105
- type: Attribute,
106
- args: ['tabindex']
107
- }] }], propDecorators: { tabIndexInputBinding: [{
95
+ }], ctorParameters: () => [], propDecorators: { tabIndexInputBinding: [{
108
96
  type: Input,
109
97
  args: [{
110
98
  transform: (value) => (value == null ? 0 : numberAttribute(value)),
@@ -119,10 +107,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.2",
119
107
  * Captures the node's template and a when predicate that describes when this node should be used.
120
108
  */
121
109
  class MatTreeNodeDef extends CdkTreeNodeDef {
122
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: MatTreeNodeDef, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
123
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.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 }); }
110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MatTreeNodeDef, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
111
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.3", type: MatTreeNodeDef, isStandalone: true, selector: "[matTreeNodeDef]", inputs: { when: ["matTreeNodeDefWhen", "when"], data: ["matTreeNode", "data"] }, providers: [{ provide: CdkTreeNodeDef, useExisting: MatTreeNodeDef }], usesInheritance: true, ngImport: i0 }); }
124
112
  }
125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: MatTreeNodeDef, decorators: [{
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MatTreeNodeDef, decorators: [{
126
114
  type: Directive,
127
115
  args: [{
128
116
  selector: '[matTreeNodeDef]',
@@ -158,13 +146,6 @@ class MatNestedTreeNode extends CdkNestedTreeNode {
158
146
  // If the specified tabIndex value is null or undefined, fall back to the default value.
159
147
  this._tabIndex = value;
160
148
  }
161
- constructor(elementRef, tree, differs,
162
- // Ignore tabindex attribute. MatTree manages its own active state using TreeKeyManager.
163
- // Keeping tabIndex in constructor for backwards compatibility with trees created before
164
- // introducing TreeKeyManager.
165
- tabIndex) {
166
- super(elementRef, tree, differs);
167
- }
168
149
  // This is a workaround for https://github.com/angular/angular/issues/19145
169
150
  // In aot mode, the lifecycle hooks from parent class are not called.
170
151
  // TODO(tinayuangao): Remove when the angular issue #19145 is fixed
@@ -177,14 +158,14 @@ class MatNestedTreeNode extends CdkNestedTreeNode {
177
158
  ngOnDestroy() {
178
159
  super.ngOnDestroy();
179
160
  }
180
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: MatNestedTreeNode, deps: [{ token: i0.ElementRef }, { token: i1.CdkTree }, { token: i0.IterableDiffers }, { token: 'tabindex', attribute: true }], target: i0.ɵɵFactoryTarget.Directive }); }
181
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.0.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: [
161
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MatNestedTreeNode, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
162
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.0.0-next.3", 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: [
182
163
  { provide: CdkNestedTreeNode, useExisting: MatNestedTreeNode },
183
164
  { provide: CdkTreeNode, useExisting: MatNestedTreeNode },
184
165
  { provide: CDK_TREE_NODE_OUTLET_NODE, useExisting: MatNestedTreeNode },
185
166
  ], exportAs: ["matNestedTreeNode"], usesInheritance: true, ngImport: i0 }); }
186
167
  }
187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: MatNestedTreeNode, decorators: [{
168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MatNestedTreeNode, decorators: [{
188
169
  type: Directive,
189
170
  args: [{
190
171
  selector: 'mat-nested-tree-node',
@@ -200,10 +181,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.2",
200
181
  },
201
182
  standalone: true,
202
183
  }]
203
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.CdkTree }, { type: i0.IterableDiffers }, { type: undefined, decorators: [{
204
- type: Attribute,
205
- args: ['tabindex']
206
- }] }], propDecorators: { node: [{
184
+ }], propDecorators: { node: [{
207
185
  type: Input,
208
186
  args: ['matNestedTreeNode']
209
187
  }], disabled: [{
@@ -234,10 +212,10 @@ class MatTreeNodePadding extends CdkTreeNodePadding {
234
212
  set indent(indent) {
235
213
  this._setIndentInput(indent);
236
214
  }
237
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: MatTreeNodePadding, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
238
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.0.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 }); }
215
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MatTreeNodePadding, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
216
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.0.0-next.3", type: MatTreeNodePadding, isStandalone: true, selector: "[matTreeNodePadding]", inputs: { level: ["matTreeNodePadding", "level", numberAttribute], indent: ["matTreeNodePaddingIndent", "indent"] }, providers: [{ provide: CdkTreeNodePadding, useExisting: MatTreeNodePadding }], usesInheritance: true, ngImport: i0 }); }
239
217
  }
240
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: MatTreeNodePadding, decorators: [{
218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MatTreeNodePadding, decorators: [{
241
219
  type: Directive,
242
220
  args: [{
243
221
  selector: '[matTreeNodePadding]',
@@ -257,19 +235,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.2",
257
235
  * inside the outlet.
258
236
  */
259
237
  class MatTreeNodeOutlet {
260
- constructor(viewContainer, _node) {
261
- this.viewContainer = viewContainer;
262
- this._node = _node;
238
+ constructor() {
239
+ this.viewContainer = inject(ViewContainerRef);
240
+ this._node = inject(CDK_TREE_NODE_OUTLET_NODE, { optional: true });
263
241
  }
264
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: MatTreeNodeOutlet, deps: [{ token: i0.ViewContainerRef }, { token: CDK_TREE_NODE_OUTLET_NODE, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
265
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.2", type: MatTreeNodeOutlet, isStandalone: true, selector: "[matTreeNodeOutlet]", providers: [
242
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MatTreeNodeOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
243
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.3", type: MatTreeNodeOutlet, isStandalone: true, selector: "[matTreeNodeOutlet]", providers: [
266
244
  {
267
245
  provide: CdkTreeNodeOutlet,
268
246
  useExisting: MatTreeNodeOutlet,
269
247
  },
270
248
  ], ngImport: i0 }); }
271
249
  }
272
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: MatTreeNodeOutlet, decorators: [{
250
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MatTreeNodeOutlet, decorators: [{
273
251
  type: Directive,
274
252
  args: [{
275
253
  selector: '[matTreeNodeOutlet]',
@@ -281,12 +259,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.2",
281
259
  ],
282
260
  standalone: true,
283
261
  }]
284
- }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: undefined, decorators: [{
285
- type: Inject,
286
- args: [CDK_TREE_NODE_OUTLET_NODE]
287
- }, {
288
- type: Optional
289
- }] }] });
262
+ }] });
290
263
 
291
264
  /**
292
265
  * Wrapper for the CdkTable with Material design styles.
@@ -298,10 +271,10 @@ class MatTree extends CdkTree {
298
271
  // We need an initializer here to avoid a TS error. The value will be set in `ngAfterViewInit`.
299
272
  this._nodeOutlet = undefined;
300
273
  }
301
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: MatTree, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
302
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.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-app-surface))}.mat-tree-node,.mat-nested-tree-node{color:var(--mat-tree-node-text-color, var(--mat-app-on-surface));font-family:var(--mat-tree-node-text-font, var(--mat-app-body-large-font));font-size:var(--mat-tree-node-text-size, var(--mat-app-body-large-size));font-weight:var(--mat-tree-node-text-weight, var(--mat-app-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}"], dependencies: [{ kind: "directive", type: MatTreeNodeOutlet, selector: "[matTreeNodeOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
274
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MatTree, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
275
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.0-next.3", 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-app-surface))}.mat-tree-node,.mat-nested-tree-node{color:var(--mat-tree-node-text-color, var(--mat-app-on-surface));font-family:var(--mat-tree-node-text-font, var(--mat-app-body-large-font));font-size:var(--mat-tree-node-text-size, var(--mat-app-body-large-size));font-weight:var(--mat-tree-node-text-weight, var(--mat-app-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}"], dependencies: [{ kind: "directive", type: MatTreeNodeOutlet, selector: "[matTreeNodeOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
303
276
  }
304
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: MatTree, decorators: [{
277
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MatTree, decorators: [{
305
278
  type: Component,
306
279
  args: [{ selector: 'mat-tree', exportAs: 'matTree', template: `<ng-container matTreeNodeOutlet></ng-container>`, host: {
307
280
  'class': 'mat-tree',
@@ -315,10 +288,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.2",
315
288
  * Wrapper for the CdkTree's toggle with Material design styles.
316
289
  */
317
290
  class MatTreeNodeToggle extends CdkTreeNodeToggle {
318
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: MatTreeNodeToggle, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
319
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.2", type: MatTreeNodeToggle, isStandalone: true, selector: "[matTreeNodeToggle]", inputs: { recursive: ["matTreeNodeToggleRecursive", "recursive"] }, providers: [{ provide: CdkTreeNodeToggle, useExisting: MatTreeNodeToggle }], usesInheritance: true, ngImport: i0 }); }
291
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MatTreeNodeToggle, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
292
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.3", type: MatTreeNodeToggle, isStandalone: true, selector: "[matTreeNodeToggle]", inputs: { recursive: ["matTreeNodeToggleRecursive", "recursive"] }, providers: [{ provide: CdkTreeNodeToggle, useExisting: MatTreeNodeToggle }], usesInheritance: true, ngImport: i0 }); }
320
293
  }
321
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: MatTreeNodeToggle, decorators: [{
294
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MatTreeNodeToggle, decorators: [{
322
295
  type: Directive,
323
296
  args: [{
324
297
  selector: '[matTreeNodeToggle]',
@@ -338,8 +311,8 @@ const MAT_TREE_DIRECTIVES = [
338
311
  MatTreeNodeOutlet,
339
312
  ];
340
313
  class MatTreeModule {
341
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: MatTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
342
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0-next.2", ngImport: i0, type: MatTreeModule, imports: [CdkTreeModule, MatCommonModule, MatNestedTreeNode,
314
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MatTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
315
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0-next.3", ngImport: i0, type: MatTreeModule, imports: [CdkTreeModule, MatCommonModule, MatNestedTreeNode,
343
316
  MatTreeNodeDef,
344
317
  MatTreeNodePadding,
345
318
  MatTreeNodeToggle,
@@ -352,9 +325,9 @@ class MatTreeModule {
352
325
  MatTree,
353
326
  MatTreeNode,
354
327
  MatTreeNodeOutlet] }); }
355
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: MatTreeModule, imports: [CdkTreeModule, MatCommonModule, MatCommonModule] }); }
328
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MatTreeModule, imports: [CdkTreeModule, MatCommonModule, MatCommonModule] }); }
356
329
  }
357
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: MatTreeModule, decorators: [{
330
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.3", ngImport: i0, type: MatTreeModule, decorators: [{
358
331
  type: NgModule,
359
332
  args: [{
360
333
  imports: [CdkTreeModule, MatCommonModule, ...MAT_TREE_DIRECTIVES],
@@ -1 +1 @@
1
- {"version":3,"file":"tree.mjs","sources":["../../../../../../src/material/tree/node.ts","../../../../../../src/material/tree/padding.ts","../../../../../../src/material/tree/outlet.ts","../../../../../../src/material/tree/tree.ts","../../../../../../src/material/tree/toggle.ts","../../../../../../src/material/tree/tree-module.ts","../../../../../../src/material/tree/data-source/flat-data-source.ts","../../../../../../src/material/tree/data-source/nested-data-source.ts","../../../../../../src/material/tree/tree_public_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\nimport {\n CDK_TREE_NODE_OUTLET_NODE,\n CdkNestedTreeNode,\n CdkTree,\n CdkTreeNode,\n CdkTreeNodeDef,\n} from '@angular/cdk/tree';\nimport {\n AfterContentInit,\n Attribute,\n Directive,\n ElementRef,\n Input,\n IterableDiffers,\n OnDestroy,\n OnInit,\n booleanAttribute,\n numberAttribute,\n} from '@angular/core';\nimport {NoopTreeKeyManager, TreeKeyManagerItem, TreeKeyManagerStrategy} from '@angular/cdk/a11y';\n\n/**\n * Determinte if argument TreeKeyManager is the NoopTreeKeyManager. This function is safe to use with SSR.\n */\nfunction isNoopTreeKeyManager<T extends TreeKeyManagerItem>(\n keyManager: TreeKeyManagerStrategy<T>,\n): keyManager is NoopTreeKeyManager<T> {\n return !!(keyManager as any)._isNoopTreeKeyManager;\n}\n\n/**\n * Wrapper for the CdkTree node with Material design styles.\n */\n@Directive({\n selector: 'mat-tree-node',\n exportAs: 'matTreeNode',\n outputs: ['activation', 'expandedChange'],\n providers: [{provide: CdkTreeNode, useExisting: MatTreeNode}],\n host: {\n 'class': 'mat-tree-node',\n '[attr.aria-expanded]': '_getAriaExpanded()',\n '[attr.aria-level]': 'level + 1',\n '[attr.aria-posinset]': '_getPositionInSet()',\n '[attr.aria-setsize]': '_getSetSize()',\n '(click)': '_focusItem()',\n '[tabindex]': '_getTabindexAttribute()',\n },\n standalone: true,\n})\nexport class MatTreeNode<T, K = T> extends CdkTreeNode<T, K> implements OnInit, OnDestroy {\n /**\n * The tabindex of the tree node.\n *\n * @deprecated By default MatTreeNode manages focus using TreeKeyManager instead of tabIndex.\n * Recommend to avoid setting tabIndex directly to prevent TreeKeyManager form getting into\n * an unexpected state. Tabindex to be removed in a future version.\n * @breaking-change 21.0.0 Remove this attribute.\n */\n @Input({\n transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\n alias: 'tabIndex',\n })\n get tabIndexInputBinding(): number {\n return this._tabIndexInputBinding;\n }\n set tabIndexInputBinding(value: number) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n this._tabIndexInputBinding = value;\n }\n private _tabIndexInputBinding: number;\n\n /**\n * The default tabindex of the tree node.\n *\n * @deprecated By default MatTreeNode manages focus using TreeKeyManager instead of tabIndex.\n * Recommend to avoid setting tabIndex directly to prevent TreeKeyManager form getting into\n * an unexpected state. Tabindex to be removed in a future version.\n * @breaking-change 21.0.0 Remove this attribute.\n */\n defaultTabIndex = 0;\n\n protected _getTabindexAttribute() {\n if (isNoopTreeKeyManager(this._tree._keyManager)) {\n return this.tabIndexInputBinding;\n }\n return this._tabindex;\n }\n\n /**\n * Whether the component is disabled.\n *\n * @deprecated This is an alias for `isDisabled`.\n * @breaking-change 21.0.0 Remove this input\n */\n @Input({transform: booleanAttribute})\n get disabled(): boolean {\n return this.isDisabled;\n }\n set disabled(value: boolean) {\n this.isDisabled = value;\n }\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n tree: CdkTree<T, K>,\n /**\n * The tabindex of the tree node.\n *\n * @deprecated By default MatTreeNode manages focus using TreeKeyManager instead of tabIndex.\n * Recommend to avoid setting tabIndex directly to prevent TreeKeyManager form getting into\n * an unexpected state. Tabindex to be removed in a future version.\n * @breaking-change 21.0.0 Remove this attribute.\n */\n @Attribute('tabindex') tabIndex: string,\n ) {\n super(elementRef, tree);\n\n this.tabIndexInputBinding = Number(tabIndex) || this.defaultTabIndex;\n }\n\n // This is a workaround for https://github.com/angular/angular/issues/23091\n // In aot mode, the lifecycle hooks from parent class are not called.\n override ngOnInit() {\n super.ngOnInit();\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n\n/**\n * Wrapper for the CdkTree node definition with Material design styles.\n * Captures the node's template and a when predicate that describes when this node should be used.\n */\n@Directive({\n selector: '[matTreeNodeDef]',\n inputs: [{name: 'when', alias: 'matTreeNodeDefWhen'}],\n providers: [{provide: CdkTreeNodeDef, useExisting: MatTreeNodeDef}],\n standalone: true,\n})\nexport class MatTreeNodeDef<T> extends CdkTreeNodeDef<T> {\n @Input('matTreeNode') data: T;\n}\n\n/**\n * Wrapper for the CdkTree nested node with Material design styles.\n */\n@Directive({\n selector: 'mat-nested-tree-node',\n exportAs: 'matNestedTreeNode',\n outputs: ['activation', 'expandedChange'],\n providers: [\n {provide: CdkNestedTreeNode, useExisting: MatNestedTreeNode},\n {provide: CdkTreeNode, useExisting: MatNestedTreeNode},\n {provide: CDK_TREE_NODE_OUTLET_NODE, useExisting: MatNestedTreeNode},\n ],\n host: {\n 'class': 'mat-nested-tree-node',\n },\n standalone: true,\n})\nexport class MatNestedTreeNode<T, K = T>\n extends CdkNestedTreeNode<T, K>\n implements AfterContentInit, OnDestroy, OnInit\n{\n @Input('matNestedTreeNode') node: T;\n\n /**\n * Whether the node is disabled.\n *\n * @deprecated This is an alias for `isDisabled`.\n * @breaking-change 21.0.0 Remove this input\n */\n @Input({transform: booleanAttribute})\n get disabled(): boolean {\n return this.isDisabled;\n }\n set disabled(value: boolean) {\n this.isDisabled = value;\n }\n\n /** Tabindex of the node. */\n @Input({\n transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\n })\n get tabIndex(): number {\n return this.isDisabled ? -1 : this._tabIndex;\n }\n set tabIndex(value: number) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n this._tabIndex = value;\n }\n private _tabIndex: number;\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n tree: CdkTree<T, K>,\n differs: IterableDiffers,\n // Ignore tabindex attribute. MatTree manages its own active state using TreeKeyManager.\n // Keeping tabIndex in constructor for backwards compatibility with trees created before\n // introducing TreeKeyManager.\n @Attribute('tabindex') tabIndex: string,\n ) {\n super(elementRef, tree, differs);\n }\n\n // This is a workaround for https://github.com/angular/angular/issues/19145\n // In aot mode, the lifecycle hooks from parent class are not called.\n // TODO(tinayuangao): Remove when the angular issue #19145 is fixed\n override ngOnInit() {\n super.ngOnInit();\n }\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\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 */\nimport {CdkTreeNodePadding} from '@angular/cdk/tree';\nimport {Directive, Input, numberAttribute} from '@angular/core';\n\n/**\n * Wrapper for the CdkTree padding with Material design styles.\n */\n@Directive({\n selector: '[matTreeNodePadding]',\n providers: [{provide: CdkTreeNodePadding, useExisting: MatTreeNodePadding}],\n standalone: true,\n})\nexport class MatTreeNodePadding<T, K = T> extends CdkTreeNodePadding<T, K> {\n /** The level of depth of the tree node. The padding will be `level * indent` pixels. */\n @Input({alias: 'matTreeNodePadding', transform: numberAttribute})\n override get level(): number {\n return this._level;\n }\n override set level(value: number) {\n this._setLevelInput(value);\n }\n\n /** The indent for each level. Default number 40px from material design menu sub-menu spec. */\n @Input('matTreeNodePaddingIndent')\n override get indent(): number | string {\n return this._indent;\n }\n override set indent(indent: number | string) {\n this._setIndentInput(indent);\n }\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 */\nimport {CDK_TREE_NODE_OUTLET_NODE, CdkTreeNodeOutlet} from '@angular/cdk/tree';\nimport {Directive, Inject, Optional, ViewContainerRef} from '@angular/core';\n\n/**\n * Outlet for nested CdkNode. Put `[matTreeNodeOutlet]` on a tag to place children dataNodes\n * inside the outlet.\n */\n@Directive({\n selector: '[matTreeNodeOutlet]',\n providers: [\n {\n provide: CdkTreeNodeOutlet,\n useExisting: MatTreeNodeOutlet,\n },\n ],\n standalone: true,\n})\nexport class MatTreeNodeOutlet implements CdkTreeNodeOutlet {\n constructor(\n public viewContainer: ViewContainerRef,\n @Inject(CDK_TREE_NODE_OUTLET_NODE) @Optional() public _node?: any,\n ) {}\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 {CdkTree} from '@angular/cdk/tree';\nimport {ChangeDetectionStrategy, Component, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {MatTreeNodeOutlet} from './outlet';\n\n/**\n * Wrapper for the CdkTable with Material design styles.\n */\n@Component({\n selector: 'mat-tree',\n exportAs: 'matTree',\n template: `<ng-container matTreeNodeOutlet></ng-container>`,\n host: {\n 'class': 'mat-tree',\n },\n styleUrl: 'tree.css',\n encapsulation: ViewEncapsulation.None,\n // See note on CdkTree for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [{provide: CdkTree, useExisting: MatTree}],\n standalone: true,\n imports: [MatTreeNodeOutlet],\n})\nexport class MatTree<T, K = T> extends CdkTree<T, K> {\n // Outlets within the tree's template where the dataNodes will be inserted.\n // We need an initializer here to avoid a TS error. The value will be set in `ngAfterViewInit`.\n @ViewChild(MatTreeNodeOutlet, {static: true}) override _nodeOutlet: MatTreeNodeOutlet =\n undefined!;\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 {CdkTreeNodeToggle} from '@angular/cdk/tree';\nimport {Directive} from '@angular/core';\n\n/**\n * Wrapper for the CdkTree's toggle with Material design styles.\n */\n@Directive({\n selector: '[matTreeNodeToggle]',\n providers: [{provide: CdkTreeNodeToggle, useExisting: MatTreeNodeToggle}],\n inputs: [{name: 'recursive', alias: 'matTreeNodeToggleRecursive'}],\n standalone: true,\n})\nexport class MatTreeNodeToggle<T, K = T> extends CdkTreeNodeToggle<T, K> {}\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 {NgModule} from '@angular/core';\n\nimport {CdkTreeModule} from '@angular/cdk/tree';\nimport {MatCommonModule} from '@angular/material/core';\nimport {MatNestedTreeNode, MatTreeNodeDef, MatTreeNode} from './node';\nimport {MatTree} from './tree';\nimport {MatTreeNodeToggle} from './toggle';\nimport {MatTreeNodeOutlet} from './outlet';\nimport {MatTreeNodePadding} from './padding';\n\nconst MAT_TREE_DIRECTIVES = [\n MatNestedTreeNode,\n MatTreeNodeDef,\n MatTreeNodePadding,\n MatTreeNodeToggle,\n MatTree,\n MatTreeNode,\n MatTreeNodeOutlet,\n];\n\n@NgModule({\n imports: [CdkTreeModule, MatCommonModule, ...MAT_TREE_DIRECTIVES],\n exports: [MatCommonModule, MAT_TREE_DIRECTIVES],\n})\nexport class MatTreeModule {}\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 {CollectionViewer, DataSource} from '@angular/cdk/collections';\nimport {FlatTreeControl, TreeControl} from '@angular/cdk/tree';\nimport {BehaviorSubject, merge, Observable} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\n\n/**\n * Tree flattener to convert a normal type of node to node with children & level information.\n * Transform nested nodes of type `T` to flattened nodes of type `F`.\n *\n * For example, the input data of type `T` is nested, and contains its children data:\n * SomeNode: {\n * key: 'Fruits',\n * children: [\n * NodeOne: {\n * key: 'Apple',\n * },\n * NodeTwo: {\n * key: 'Pear',\n * }\n * ]\n * }\n * After flattener flatten the tree, the structure will become\n * SomeNode: {\n * key: 'Fruits',\n * expandable: true,\n * level: 1\n * },\n * NodeOne: {\n * key: 'Apple',\n * expandable: false,\n * level: 2\n * },\n * NodeTwo: {\n * key: 'Pear',\n * expandable: false,\n * level: 2\n * }\n * and the output flattened type is `F` with additional information.\n *\n * @deprecated Use MatTree#childrenAccessor and MatTreeNode#isExpandable\n * instead. To be removed in a future version.\n * @breaking-change 21.0.0\n */\nexport class MatTreeFlattener<T, F, K = F> {\n constructor(\n public transformFunction: (node: T, level: number) => F,\n public getLevel: (node: F) => number,\n public isExpandable: (node: F) => boolean,\n public getChildren: (node: T) => Observable<T[]> | T[] | undefined | null,\n ) {}\n\n _flattenNode(node: T, level: number, resultNodes: F[], parentMap: boolean[]): F[] {\n const flatNode = this.transformFunction(node, level);\n resultNodes.push(flatNode);\n\n if (this.isExpandable(flatNode)) {\n const childrenNodes = this.getChildren(node);\n if (childrenNodes) {\n if (Array.isArray(childrenNodes)) {\n this._flattenChildren(childrenNodes, level, resultNodes, parentMap);\n } else {\n childrenNodes.pipe(take(1)).subscribe(children => {\n this._flattenChildren(children, level, resultNodes, parentMap);\n });\n }\n }\n }\n return resultNodes;\n }\n\n _flattenChildren(children: T[], level: number, resultNodes: F[], parentMap: boolean[]): void {\n children.forEach((child, index) => {\n let childParentMap: boolean[] = parentMap.slice();\n childParentMap.push(index != children.length - 1);\n this._flattenNode(child, level + 1, resultNodes, childParentMap);\n });\n }\n\n /**\n * Flatten a list of node type T to flattened version of node F.\n * Please note that type T may be nested, and the length of `structuredData` may be different\n * from that of returned list `F[]`.\n */\n flattenNodes(structuredData: T[]): F[] {\n let resultNodes: F[] = [];\n structuredData.forEach(node => this._flattenNode(node, 0, resultNodes, []));\n return resultNodes;\n }\n\n /**\n * Expand flattened node with current expansion status.\n * The returned list may have different length.\n */\n expandFlattenedNodes(nodes: F[], treeControl: TreeControl<F, K>): F[] {\n let results: F[] = [];\n let currentExpand: boolean[] = [];\n currentExpand[0] = true;\n\n nodes.forEach(node => {\n let expand = true;\n for (let i = 0; i <= this.getLevel(node); i++) {\n expand = expand && currentExpand[i];\n }\n if (expand) {\n results.push(node);\n }\n if (this.isExpandable(node)) {\n currentExpand[this.getLevel(node) + 1] = treeControl.isExpanded(node);\n }\n });\n return results;\n }\n}\n\n/**\n * Data source for flat tree.\n * The data source need to handle expansion/collapsion of the tree node and change the data feed\n * to `MatTree`.\n * The nested tree nodes of type `T` are flattened through `MatTreeFlattener`, and converted\n * to type `F` for `MatTree` to consume.\n *\n * @deprecated Use one of levelAccessor or childrenAccessor instead. To be removed in a future\n * version.\n * @breaking-change 21.0.0\n */\nexport class MatTreeFlatDataSource<T, F, K = F> extends DataSource<F> {\n private readonly _flattenedData = new BehaviorSubject<F[]>([]);\n private readonly _expandedData = new BehaviorSubject<F[]>([]);\n\n get data() {\n return this._data.value;\n }\n set data(value: T[]) {\n this._data.next(value);\n this._flattenedData.next(this._treeFlattener.flattenNodes(this.data));\n this._treeControl.dataNodes = this._flattenedData.value;\n }\n private readonly _data = new BehaviorSubject<T[]>([]);\n\n constructor(\n private _treeControl: FlatTreeControl<F, K>,\n private _treeFlattener: MatTreeFlattener<T, F, K>,\n initialData?: T[],\n ) {\n super();\n\n if (initialData) {\n // Assign the data through the constructor to ensure that all of the logic is executed.\n this.data = initialData;\n }\n }\n\n connect(collectionViewer: CollectionViewer): Observable<F[]> {\n return merge(\n collectionViewer.viewChange,\n this._treeControl.expansionModel.changed,\n this._flattenedData,\n ).pipe(\n map(() => {\n this._expandedData.next(\n this._treeFlattener.expandFlattenedNodes(this._flattenedData.value, this._treeControl),\n );\n return this._expandedData.value;\n }),\n );\n }\n\n disconnect() {\n // no op\n }\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 {CollectionViewer, DataSource} from '@angular/cdk/collections';\nimport {BehaviorSubject, merge, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n/**\n * Data source for nested tree.\n *\n * The data source for nested tree doesn't have to consider node flattener, or the way to expand\n * or collapse. The expansion/collapsion will be handled by TreeControl and each non-leaf node.\n */\nexport class MatTreeNestedDataSource<T> extends DataSource<T> {\n /**\n * Data for the nested tree\n */\n get data() {\n return this._data.value;\n }\n set data(value: T[]) {\n this._data.next(value);\n }\n private readonly _data = new BehaviorSubject<T[]>([]);\n\n connect(collectionViewer: CollectionViewer): Observable<T[]> {\n return merge(...([collectionViewer.viewChange, this._data] as Observable<unknown>[])).pipe(\n map(() => this.data),\n );\n }\n\n disconnect() {\n // no op\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree.mjs","sources":["../../../../../../src/material/tree/node.ts","../../../../../../src/material/tree/padding.ts","../../../../../../src/material/tree/outlet.ts","../../../../../../src/material/tree/tree.ts","../../../../../../src/material/tree/toggle.ts","../../../../../../src/material/tree/tree-module.ts","../../../../../../src/material/tree/data-source/flat-data-source.ts","../../../../../../src/material/tree/data-source/nested-data-source.ts","../../../../../../src/material/tree/tree_public_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.dev/license\n */\n\nimport {\n CDK_TREE_NODE_OUTLET_NODE,\n CdkNestedTreeNode,\n CdkTreeNode,\n CdkTreeNodeDef,\n} from '@angular/cdk/tree';\nimport {\n AfterContentInit,\n Directive,\n Input,\n OnDestroy,\n OnInit,\n booleanAttribute,\n numberAttribute,\n inject,\n HostAttributeToken,\n} from '@angular/core';\nimport {NoopTreeKeyManager, TreeKeyManagerItem, TreeKeyManagerStrategy} from '@angular/cdk/a11y';\n\n/**\n * Determinte if argument TreeKeyManager is the NoopTreeKeyManager. This function is safe to use with SSR.\n */\nfunction isNoopTreeKeyManager<T extends TreeKeyManagerItem>(\n keyManager: TreeKeyManagerStrategy<T>,\n): keyManager is NoopTreeKeyManager<T> {\n return !!(keyManager as any)._isNoopTreeKeyManager;\n}\n\n/**\n * Wrapper for the CdkTree node with Material design styles.\n */\n@Directive({\n selector: 'mat-tree-node',\n exportAs: 'matTreeNode',\n outputs: ['activation', 'expandedChange'],\n providers: [{provide: CdkTreeNode, useExisting: MatTreeNode}],\n host: {\n 'class': 'mat-tree-node',\n '[attr.aria-expanded]': '_getAriaExpanded()',\n '[attr.aria-level]': 'level + 1',\n '[attr.aria-posinset]': '_getPositionInSet()',\n '[attr.aria-setsize]': '_getSetSize()',\n '(click)': '_focusItem()',\n '[tabindex]': '_getTabindexAttribute()',\n },\n standalone: true,\n})\nexport class MatTreeNode<T, K = T> extends CdkTreeNode<T, K> implements OnInit, OnDestroy {\n /**\n * The tabindex of the tree node.\n *\n * @deprecated By default MatTreeNode manages focus using TreeKeyManager instead of tabIndex.\n * Recommend to avoid setting tabIndex directly to prevent TreeKeyManager form getting into\n * an unexpected state. Tabindex to be removed in a future version.\n * @breaking-change 21.0.0 Remove this attribute.\n */\n @Input({\n transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\n alias: 'tabIndex',\n })\n get tabIndexInputBinding(): number {\n return this._tabIndexInputBinding;\n }\n set tabIndexInputBinding(value: number) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n this._tabIndexInputBinding = value;\n }\n private _tabIndexInputBinding: number;\n\n /**\n * The default tabindex of the tree node.\n *\n * @deprecated By default MatTreeNode manages focus using TreeKeyManager instead of tabIndex.\n * Recommend to avoid setting tabIndex directly to prevent TreeKeyManager form getting into\n * an unexpected state. Tabindex to be removed in a future version.\n * @breaking-change 21.0.0 Remove this attribute.\n */\n defaultTabIndex = 0;\n\n protected _getTabindexAttribute() {\n if (isNoopTreeKeyManager(this._tree._keyManager)) {\n return this.tabIndexInputBinding;\n }\n return this._tabindex;\n }\n\n /**\n * Whether the component is disabled.\n *\n * @deprecated This is an alias for `isDisabled`.\n * @breaking-change 21.0.0 Remove this input\n */\n @Input({transform: booleanAttribute})\n get disabled(): boolean {\n return this.isDisabled;\n }\n set disabled(value: boolean) {\n this.isDisabled = value;\n }\n\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n\n const tabIndex = inject(new HostAttributeToken('tabindex'), {optional: true});\n this.tabIndexInputBinding = Number(tabIndex) || this.defaultTabIndex;\n }\n\n // This is a workaround for https://github.com/angular/angular/issues/23091\n // In aot mode, the lifecycle hooks from parent class are not called.\n override ngOnInit() {\n super.ngOnInit();\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n\n/**\n * Wrapper for the CdkTree node definition with Material design styles.\n * Captures the node's template and a when predicate that describes when this node should be used.\n */\n@Directive({\n selector: '[matTreeNodeDef]',\n inputs: [{name: 'when', alias: 'matTreeNodeDefWhen'}],\n providers: [{provide: CdkTreeNodeDef, useExisting: MatTreeNodeDef}],\n standalone: true,\n})\nexport class MatTreeNodeDef<T> extends CdkTreeNodeDef<T> {\n @Input('matTreeNode') data: T;\n}\n\n/**\n * Wrapper for the CdkTree nested node with Material design styles.\n */\n@Directive({\n selector: 'mat-nested-tree-node',\n exportAs: 'matNestedTreeNode',\n outputs: ['activation', 'expandedChange'],\n providers: [\n {provide: CdkNestedTreeNode, useExisting: MatNestedTreeNode},\n {provide: CdkTreeNode, useExisting: MatNestedTreeNode},\n {provide: CDK_TREE_NODE_OUTLET_NODE, useExisting: MatNestedTreeNode},\n ],\n host: {\n 'class': 'mat-nested-tree-node',\n },\n standalone: true,\n})\nexport class MatNestedTreeNode<T, K = T>\n extends CdkNestedTreeNode<T, K>\n implements AfterContentInit, OnDestroy, OnInit\n{\n @Input('matNestedTreeNode') node: T;\n\n /**\n * Whether the node is disabled.\n *\n * @deprecated This is an alias for `isDisabled`.\n * @breaking-change 21.0.0 Remove this input\n */\n @Input({transform: booleanAttribute})\n get disabled(): boolean {\n return this.isDisabled;\n }\n set disabled(value: boolean) {\n this.isDisabled = value;\n }\n\n /** Tabindex of the node. */\n @Input({\n transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\n })\n get tabIndex(): number {\n return this.isDisabled ? -1 : this._tabIndex;\n }\n set tabIndex(value: number) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n this._tabIndex = value;\n }\n private _tabIndex: number;\n\n // This is a workaround for https://github.com/angular/angular/issues/19145\n // In aot mode, the lifecycle hooks from parent class are not called.\n // TODO(tinayuangao): Remove when the angular issue #19145 is fixed\n override ngOnInit() {\n super.ngOnInit();\n }\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\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.dev/license\n */\nimport {CdkTreeNodePadding} from '@angular/cdk/tree';\nimport {Directive, Input, numberAttribute} from '@angular/core';\n\n/**\n * Wrapper for the CdkTree padding with Material design styles.\n */\n@Directive({\n selector: '[matTreeNodePadding]',\n providers: [{provide: CdkTreeNodePadding, useExisting: MatTreeNodePadding}],\n standalone: true,\n})\nexport class MatTreeNodePadding<T, K = T> extends CdkTreeNodePadding<T, K> {\n /** The level of depth of the tree node. The padding will be `level * indent` pixels. */\n @Input({alias: 'matTreeNodePadding', transform: numberAttribute})\n override get level(): number {\n return this._level;\n }\n override set level(value: number) {\n this._setLevelInput(value);\n }\n\n /** The indent for each level. Default number 40px from material design menu sub-menu spec. */\n @Input('matTreeNodePaddingIndent')\n override get indent(): number | string {\n return this._indent;\n }\n override set indent(indent: number | string) {\n this._setIndentInput(indent);\n }\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.dev/license\n */\nimport {CDK_TREE_NODE_OUTLET_NODE, CdkTreeNodeOutlet} from '@angular/cdk/tree';\nimport {Directive, ViewContainerRef, inject} from '@angular/core';\n\n/**\n * Outlet for nested CdkNode. Put `[matTreeNodeOutlet]` on a tag to place children dataNodes\n * inside the outlet.\n */\n@Directive({\n selector: '[matTreeNodeOutlet]',\n providers: [\n {\n provide: CdkTreeNodeOutlet,\n useExisting: MatTreeNodeOutlet,\n },\n ],\n standalone: true,\n})\nexport class MatTreeNodeOutlet implements CdkTreeNodeOutlet {\n viewContainer = inject(ViewContainerRef);\n _node = inject(CDK_TREE_NODE_OUTLET_NODE, {optional: true});\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.dev/license\n */\n\nimport {CdkTree} from '@angular/cdk/tree';\nimport {ChangeDetectionStrategy, Component, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {MatTreeNodeOutlet} from './outlet';\n\n/**\n * Wrapper for the CdkTable with Material design styles.\n */\n@Component({\n selector: 'mat-tree',\n exportAs: 'matTree',\n template: `<ng-container matTreeNodeOutlet></ng-container>`,\n host: {\n 'class': 'mat-tree',\n },\n styleUrl: 'tree.css',\n encapsulation: ViewEncapsulation.None,\n // See note on CdkTree for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [{provide: CdkTree, useExisting: MatTree}],\n standalone: true,\n imports: [MatTreeNodeOutlet],\n})\nexport class MatTree<T, K = T> extends CdkTree<T, K> {\n // Outlets within the tree's template where the dataNodes will be inserted.\n // We need an initializer here to avoid a TS error. The value will be set in `ngAfterViewInit`.\n @ViewChild(MatTreeNodeOutlet, {static: true}) override _nodeOutlet: MatTreeNodeOutlet =\n undefined!;\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.dev/license\n */\n\nimport {CdkTreeNodeToggle} from '@angular/cdk/tree';\nimport {Directive} from '@angular/core';\n\n/**\n * Wrapper for the CdkTree's toggle with Material design styles.\n */\n@Directive({\n selector: '[matTreeNodeToggle]',\n providers: [{provide: CdkTreeNodeToggle, useExisting: MatTreeNodeToggle}],\n inputs: [{name: 'recursive', alias: 'matTreeNodeToggleRecursive'}],\n standalone: true,\n})\nexport class MatTreeNodeToggle<T, K = T> extends CdkTreeNodeToggle<T, K> {}\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.dev/license\n */\n\nimport {NgModule} from '@angular/core';\n\nimport {CdkTreeModule} from '@angular/cdk/tree';\nimport {MatCommonModule} from '@angular/material/core';\nimport {MatNestedTreeNode, MatTreeNodeDef, MatTreeNode} from './node';\nimport {MatTree} from './tree';\nimport {MatTreeNodeToggle} from './toggle';\nimport {MatTreeNodeOutlet} from './outlet';\nimport {MatTreeNodePadding} from './padding';\n\nconst MAT_TREE_DIRECTIVES = [\n MatNestedTreeNode,\n MatTreeNodeDef,\n MatTreeNodePadding,\n MatTreeNodeToggle,\n MatTree,\n MatTreeNode,\n MatTreeNodeOutlet,\n];\n\n@NgModule({\n imports: [CdkTreeModule, MatCommonModule, ...MAT_TREE_DIRECTIVES],\n exports: [MatCommonModule, MAT_TREE_DIRECTIVES],\n})\nexport class MatTreeModule {}\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.dev/license\n */\n\nimport {CollectionViewer, DataSource} from '@angular/cdk/collections';\nimport {FlatTreeControl, TreeControl} from '@angular/cdk/tree';\nimport {BehaviorSubject, merge, Observable} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\n\n/**\n * Tree flattener to convert a normal type of node to node with children & level information.\n * Transform nested nodes of type `T` to flattened nodes of type `F`.\n *\n * For example, the input data of type `T` is nested, and contains its children data:\n * SomeNode: {\n * key: 'Fruits',\n * children: [\n * NodeOne: {\n * key: 'Apple',\n * },\n * NodeTwo: {\n * key: 'Pear',\n * }\n * ]\n * }\n * After flattener flatten the tree, the structure will become\n * SomeNode: {\n * key: 'Fruits',\n * expandable: true,\n * level: 1\n * },\n * NodeOne: {\n * key: 'Apple',\n * expandable: false,\n * level: 2\n * },\n * NodeTwo: {\n * key: 'Pear',\n * expandable: false,\n * level: 2\n * }\n * and the output flattened type is `F` with additional information.\n *\n * @deprecated Use MatTree#childrenAccessor and MatTreeNode#isExpandable\n * instead. To be removed in a future version.\n * @breaking-change 21.0.0\n */\nexport class MatTreeFlattener<T, F, K = F> {\n constructor(\n public transformFunction: (node: T, level: number) => F,\n public getLevel: (node: F) => number,\n public isExpandable: (node: F) => boolean,\n public getChildren: (node: T) => Observable<T[]> | T[] | undefined | null,\n ) {}\n\n _flattenNode(node: T, level: number, resultNodes: F[], parentMap: boolean[]): F[] {\n const flatNode = this.transformFunction(node, level);\n resultNodes.push(flatNode);\n\n if (this.isExpandable(flatNode)) {\n const childrenNodes = this.getChildren(node);\n if (childrenNodes) {\n if (Array.isArray(childrenNodes)) {\n this._flattenChildren(childrenNodes, level, resultNodes, parentMap);\n } else {\n childrenNodes.pipe(take(1)).subscribe(children => {\n this._flattenChildren(children, level, resultNodes, parentMap);\n });\n }\n }\n }\n return resultNodes;\n }\n\n _flattenChildren(children: T[], level: number, resultNodes: F[], parentMap: boolean[]): void {\n children.forEach((child, index) => {\n let childParentMap: boolean[] = parentMap.slice();\n childParentMap.push(index != children.length - 1);\n this._flattenNode(child, level + 1, resultNodes, childParentMap);\n });\n }\n\n /**\n * Flatten a list of node type T to flattened version of node F.\n * Please note that type T may be nested, and the length of `structuredData` may be different\n * from that of returned list `F[]`.\n */\n flattenNodes(structuredData: T[]): F[] {\n let resultNodes: F[] = [];\n structuredData.forEach(node => this._flattenNode(node, 0, resultNodes, []));\n return resultNodes;\n }\n\n /**\n * Expand flattened node with current expansion status.\n * The returned list may have different length.\n */\n expandFlattenedNodes(nodes: F[], treeControl: TreeControl<F, K>): F[] {\n let results: F[] = [];\n let currentExpand: boolean[] = [];\n currentExpand[0] = true;\n\n nodes.forEach(node => {\n let expand = true;\n for (let i = 0; i <= this.getLevel(node); i++) {\n expand = expand && currentExpand[i];\n }\n if (expand) {\n results.push(node);\n }\n if (this.isExpandable(node)) {\n currentExpand[this.getLevel(node) + 1] = treeControl.isExpanded(node);\n }\n });\n return results;\n }\n}\n\n/**\n * Data source for flat tree.\n * The data source need to handle expansion/collapsion of the tree node and change the data feed\n * to `MatTree`.\n * The nested tree nodes of type `T` are flattened through `MatTreeFlattener`, and converted\n * to type `F` for `MatTree` to consume.\n *\n * @deprecated Use one of levelAccessor or childrenAccessor instead. To be removed in a future\n * version.\n * @breaking-change 21.0.0\n */\nexport class MatTreeFlatDataSource<T, F, K = F> extends DataSource<F> {\n private readonly _flattenedData = new BehaviorSubject<F[]>([]);\n private readonly _expandedData = new BehaviorSubject<F[]>([]);\n\n get data() {\n return this._data.value;\n }\n set data(value: T[]) {\n this._data.next(value);\n this._flattenedData.next(this._treeFlattener.flattenNodes(this.data));\n this._treeControl.dataNodes = this._flattenedData.value;\n }\n private readonly _data = new BehaviorSubject<T[]>([]);\n\n constructor(\n private _treeControl: FlatTreeControl<F, K>,\n private _treeFlattener: MatTreeFlattener<T, F, K>,\n initialData?: T[],\n ) {\n super();\n\n if (initialData) {\n // Assign the data through the constructor to ensure that all of the logic is executed.\n this.data = initialData;\n }\n }\n\n connect(collectionViewer: CollectionViewer): Observable<F[]> {\n return merge(\n collectionViewer.viewChange,\n this._treeControl.expansionModel.changed,\n this._flattenedData,\n ).pipe(\n map(() => {\n this._expandedData.next(\n this._treeFlattener.expandFlattenedNodes(this._flattenedData.value, this._treeControl),\n );\n return this._expandedData.value;\n }),\n );\n }\n\n disconnect() {\n // no op\n }\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.dev/license\n */\n\nimport {CollectionViewer, DataSource} from '@angular/cdk/collections';\nimport {BehaviorSubject, merge, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n/**\n * Data source for nested tree.\n *\n * The data source for nested tree doesn't have to consider node flattener, or the way to expand\n * or collapse. The expansion/collapsion will be handled by TreeControl and each non-leaf node.\n */\nexport class MatTreeNestedDataSource<T> extends DataSource<T> {\n /**\n * Data for the nested tree\n */\n get data() {\n return this._data.value;\n }\n set data(value: T[]) {\n this._data.next(value);\n }\n private readonly _data = new BehaviorSubject<T[]>([]);\n\n connect(collectionViewer: CollectionViewer): Observable<T[]> {\n return merge(...([collectionViewer.viewChange, this._data] as Observable<unknown>[])).pipe(\n map(() => this.data),\n );\n }\n\n disconnect() {\n // no op\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -6,10 +6,14 @@
6
6
 
7
7
  // Includes the structural styles for the form field inherited from MDC.
8
8
  @mixin private-text-field-structure {
9
- $filled-slots: (tokens-mdc-filled-text-field.$prefix,
10
- tokens-mdc-filled-text-field.get-token-slots());
11
- $outlined-slots: (tokens-mdc-outlined-text-field.$prefix,
12
- tokens-mdc-outlined-text-field.get-token-slots());
9
+ $filled-slots: (
10
+ tokens-mdc-filled-text-field.$prefix,
11
+ tokens-mdc-filled-text-field.get-token-slots()
12
+ );
13
+ $outlined-slots: (
14
+ tokens-mdc-outlined-text-field.$prefix,
15
+ tokens-mdc-outlined-text-field.get-token-slots()
16
+ );
13
17
 
14
18
  .mdc-text-field {
15
19
  display: inline-flex;
@@ -130,19 +134,15 @@
130
134
  .mdc-text-field--outlined {
131
135
  height: 56px;
132
136
  overflow: visible;
133
- padding-left: 16px;
134
- padding-right: 16px;
135
137
 
136
- @include _supports-max {
137
- @include token-utils.use-tokens($outlined-slots...) {
138
- $shape-var: token-utils.get-token-variable(container-shape);
139
- padding-right: max(16px, #{$shape-var});
140
- padding-left: max(16px, calc(#{$shape-var} + 4px));
138
+ @include token-utils.use-tokens($outlined-slots...) {
139
+ $shape-var: token-utils.get-token-variable(container-shape);
140
+ padding-right: max(16px, #{$shape-var});
141
+ padding-left: max(16px, calc(#{$shape-var} + 4px));
141
142
 
142
- [dir='rtl'] & {
143
- padding-right: max(16px, calc(#{$shape-var} + 4px));
144
- padding-left: max(16px, #{$shape-var});
145
- }
143
+ [dir='rtl'] & {
144
+ padding-right: max(16px, calc(#{$shape-var} + 4px));
145
+ padding-left: max(16px, #{$shape-var});
146
146
  }
147
147
  }
148
148
  }
@@ -342,17 +342,14 @@
342
342
  border-right: none;
343
343
  border-top-right-radius: 0;
344
344
  border-bottom-right-radius: 0;
345
- width: 12px;
346
345
 
347
346
  @include token-utils.use-tokens($outlined-slots...) {
348
347
  @include token-utils.create-token-slot(border-top-left-radius, container-shape);
349
348
  @include token-utils.create-token-slot(border-bottom-left-radius, container-shape);
350
349
 
351
- @include _supports-max {
352
- .mdc-text-field--outlined .mdc-notched-outline & {
353
- $shape-var: token-utils.get-token-variable(container-shape);
354
- width: max(12px, #{$shape-var});
355
- }
350
+ .mdc-text-field--outlined .mdc-notched-outline & {
351
+ $shape-var: token-utils.get-token-variable(container-shape);
352
+ width: max(12px, #{$shape-var});
356
353
  }
357
354
  }
358
355
 
@@ -397,14 +394,14 @@
397
394
  .mdc-notched-outline__notch {
398
395
  flex: 0 0 auto;
399
396
  width: auto;
400
- max-width: calc(100% - 24px);
401
397
 
402
398
  @include token-utils.use-tokens($outlined-slots...) {
403
- @include _supports-max {
404
- .mdc-text-field--outlined .mdc-notched-outline & {
405
- $shape-var: token-utils.get-token-variable(container-shape);
406
- max-width: calc(100% - max(12px, #{$shape-var}) * 2);
407
- }
399
+ .mdc-text-field--outlined .mdc-notched-outline & {
400
+ $shape-var: token-utils.get-token-variable(container-shape);
401
+ max-width: min(
402
+ var(--mat-form-field-notch-max-width, 100%),
403
+ calc(100% - max(12px, #{$shape-var}) * 2)
404
+ );
408
405
  }
409
406
  }
410
407
 
@@ -420,6 +417,7 @@
420
417
  padding-left: 0;
421
418
  padding-right: 8px;
422
419
  border-top: none;
420
+ --mat-form-field-notch-max-width: 100%;
423
421
  }
424
422
 
425
423
  [dir='rtl'] .mdc-notched-outline--notched & {
@@ -433,7 +431,8 @@
433
431
  }
434
432
 
435
433
  .mdc-line-ripple {
436
- &::before, &::after {
434
+ &::before,
435
+ &::after {
437
436
  position: absolute;
438
437
  bottom: 0;
439
438
  left: 0;
@@ -459,8 +458,10 @@
459
458
  }
460
459
 
461
460
  .mdc-text-field--filled.mdc-text-field--disabled & {
462
- @include token-utils.create-token-slot(border-bottom-color,
463
- disabled-active-indicator-color);
461
+ @include token-utils.create-token-slot(
462
+ border-bottom-color,
463
+ disabled-active-indicator-color
464
+ );
464
465
  }
465
466
 
466
467
  #{$enabled-field}.mdc-text-field--invalid & {
@@ -468,8 +469,10 @@
468
469
  }
469
470
 
470
471
  #{$enabled-field}.mdc-text-field--invalid:not(.mdc-text-field--focused):hover & {
471
- @include token-utils.create-token-slot(border-bottom-color,
472
- error-hover-active-indicator-color);
472
+ @include token-utils.create-token-slot(
473
+ border-bottom-color,
474
+ error-hover-active-indicator-color
475
+ );
473
476
  }
474
477
  }
475
478
  }
@@ -481,8 +484,10 @@
481
484
 
482
485
  @include token-utils.use-tokens($filled-slots...) {
483
486
  .mdc-text-field--filled & {
484
- @include token-utils.create-token-slot(border-bottom-width,
485
- focus-active-indicator-height);
487
+ @include token-utils.create-token-slot(
488
+ border-bottom-width,
489
+ focus-active-indicator-height
490
+ );
486
491
  }
487
492
 
488
493
  .mdc-text-field--filled:not(.mdc-text-field--disabled) & {
@@ -490,8 +495,10 @@
490
495
  }
491
496
 
492
497
  .mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) & {
493
- @include token-utils.create-token-slot(border-bottom-color,
494
- error-focus-active-indicator-color);
498
+ @include token-utils.create-token-slot(
499
+ border-bottom-color,
500
+ error-focus-active-indicator-color
501
+ );
495
502
  }
496
503
  }
497
504
  }
@@ -571,21 +578,14 @@
571
578
  }
572
579
  }
573
580
 
574
- // Wraps the content in a `@supports` query targeting the `max` CSS function.
575
- @mixin _supports-max {
576
- // stylelint-disable material/no-prefixes
577
- @supports (top: max(0%)) {
578
- @content;
579
- }
580
- // stylelint-enable
581
- }
582
-
583
581
  // Includes the animation styles for the form field inherited from MDC.
584
582
  @mixin private-text-field-animations {
585
583
  $timing-curve: cubic-bezier(0.4, 0, 0.2, 1);
586
584
 
587
585
  .mdc-floating-label {
588
- transition: transform 150ms $timing-curve, color 150ms $timing-curve;
586
+ transition:
587
+ transform 150ms $timing-curve,
588
+ color 150ms $timing-curve;
589
589
  }
590
590
 
591
591
  .mdc-text-field__input {
@@ -611,6 +611,8 @@
611
611
  }
612
612
 
613
613
  .mdc-line-ripple::after {
614
- transition: transform 180ms $timing-curve, opacity 180ms $timing-curve;
614
+ transition:
615
+ transform 180ms $timing-curve,
616
+ opacity 180ms $timing-curve;
615
617
  }
616
618
  }