@angular/material 17.0.0-next.4 → 17.0.0-next.6

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 (270) hide show
  1. package/_index.scss +4 -5
  2. package/button/_button-theme.scss +69 -50
  3. package/card/_card-theme.scss +1 -3
  4. package/core/theming/_m2-inspection.scss +1 -1
  5. package/core/tokens/m2/_index.scss +8 -0
  6. package/core/tokens/m2/mdc/_button-filled.scss +3 -3
  7. package/core/tokens/m2/mdc/_button-protected.scss +94 -0
  8. package/core/typography/_versioning.scss +1 -1
  9. package/dialog/index.d.ts +22 -14
  10. package/esm2022/autocomplete/autocomplete-origin.mjs +4 -4
  11. package/esm2022/autocomplete/autocomplete-trigger.mjs +16 -6
  12. package/esm2022/autocomplete/autocomplete.mjs +6 -6
  13. package/esm2022/autocomplete/module.mjs +4 -4
  14. package/esm2022/badge/badge-module.mjs +4 -4
  15. package/esm2022/badge/badge.mjs +6 -6
  16. package/esm2022/bottom-sheet/bottom-sheet-container.mjs +5 -5
  17. package/esm2022/bottom-sheet/bottom-sheet-module.mjs +4 -4
  18. package/esm2022/bottom-sheet/bottom-sheet.mjs +5 -5
  19. package/esm2022/button/button-base.mjs +9 -9
  20. package/esm2022/button/button.mjs +12 -12
  21. package/esm2022/button/fab.mjs +25 -25
  22. package/esm2022/button/icon-button.mjs +10 -10
  23. package/esm2022/button/module.mjs +4 -4
  24. package/esm2022/button-toggle/button-toggle-module.mjs +4 -4
  25. package/esm2022/button-toggle/button-toggle.mjs +11 -11
  26. package/esm2022/card/card.mjs +45 -45
  27. package/esm2022/card/module.mjs +4 -4
  28. package/esm2022/checkbox/checkbox-required-validator.mjs +3 -3
  29. package/esm2022/checkbox/checkbox.mjs +6 -6
  30. package/esm2022/checkbox/module.mjs +8 -8
  31. package/esm2022/chips/chip-action.mjs +6 -6
  32. package/esm2022/chips/chip-edit-input.mjs +5 -5
  33. package/esm2022/chips/chip-grid.mjs +6 -6
  34. package/esm2022/chips/chip-icons.mjs +9 -9
  35. package/esm2022/chips/chip-input.mjs +6 -6
  36. package/esm2022/chips/chip-listbox.mjs +3 -3
  37. package/esm2022/chips/chip-option.mjs +5 -5
  38. package/esm2022/chips/chip-row.mjs +8 -8
  39. package/esm2022/chips/chip-set.mjs +6 -6
  40. package/esm2022/chips/chip.mjs +7 -7
  41. package/esm2022/chips/module.mjs +4 -4
  42. package/esm2022/core/common-behaviors/common-module.mjs +6 -6
  43. package/esm2022/core/datetime/index.mjs +8 -8
  44. package/esm2022/core/datetime/native-date-adapter.mjs +5 -5
  45. package/esm2022/core/error/error-options.mjs +6 -6
  46. package/esm2022/core/line/line.mjs +7 -7
  47. package/esm2022/core/option/index.mjs +4 -4
  48. package/esm2022/core/option/optgroup.mjs +6 -6
  49. package/esm2022/core/option/option.mjs +6 -6
  50. package/esm2022/core/private/ripple-loader.mjs +4 -4
  51. package/esm2022/core/ripple/index.mjs +4 -4
  52. package/esm2022/core/ripple/ripple.mjs +6 -6
  53. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +4 -4
  54. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +6 -6
  55. package/esm2022/core/version.mjs +1 -1
  56. package/esm2022/datepicker/calendar-body.mjs +5 -5
  57. package/esm2022/datepicker/calendar.mjs +12 -12
  58. package/esm2022/datepicker/date-range-input-parts.mjs +15 -15
  59. package/esm2022/datepicker/date-range-input.mjs +6 -6
  60. package/esm2022/datepicker/date-range-picker.mjs +3 -3
  61. package/esm2022/datepicker/date-range-selection-strategy.mjs +4 -4
  62. package/esm2022/datepicker/date-selection-model.mjs +12 -12
  63. package/esm2022/datepicker/datepicker-actions.mjs +13 -13
  64. package/esm2022/datepicker/datepicker-base.mjs +11 -11
  65. package/esm2022/datepicker/datepicker-errors.mjs +2 -2
  66. package/esm2022/datepicker/datepicker-input-base.mjs +6 -6
  67. package/esm2022/datepicker/datepicker-input.mjs +6 -6
  68. package/esm2022/datepicker/datepicker-intl.mjs +3 -3
  69. package/esm2022/datepicker/datepicker-module.mjs +4 -4
  70. package/esm2022/datepicker/datepicker-toggle.mjs +9 -9
  71. package/esm2022/datepicker/datepicker.mjs +3 -3
  72. package/esm2022/datepicker/month-view.mjs +6 -6
  73. package/esm2022/datepicker/multi-year-view.mjs +6 -6
  74. package/esm2022/datepicker/year-view.mjs +6 -6
  75. package/esm2022/dialog/dialog-container.mjs +8 -7
  76. package/esm2022/dialog/dialog-content-directives.mjs +21 -17
  77. package/esm2022/dialog/dialog.mjs +26 -11
  78. package/esm2022/dialog/module.mjs +18 -26
  79. package/esm2022/divider/divider-module.mjs +4 -4
  80. package/esm2022/divider/divider.mjs +3 -3
  81. package/esm2022/expansion/accordion.mjs +3 -3
  82. package/esm2022/expansion/expansion-module.mjs +4 -4
  83. package/esm2022/expansion/expansion-panel-content.mjs +5 -5
  84. package/esm2022/expansion/expansion-panel-header.mjs +12 -12
  85. package/esm2022/expansion/expansion-panel.mjs +9 -9
  86. package/esm2022/form-field/directives/error.mjs +6 -6
  87. package/esm2022/form-field/directives/floating-label.mjs +5 -5
  88. package/esm2022/form-field/directives/hint.mjs +3 -3
  89. package/esm2022/form-field/directives/label.mjs +3 -3
  90. package/esm2022/form-field/directives/line-ripple.mjs +4 -4
  91. package/esm2022/form-field/directives/notched-outline.mjs +5 -5
  92. package/esm2022/form-field/directives/prefix.mjs +3 -3
  93. package/esm2022/form-field/directives/suffix.mjs +3 -3
  94. package/esm2022/form-field/form-field-control.mjs +3 -3
  95. package/esm2022/form-field/form-field.mjs +8 -8
  96. package/esm2022/form-field/module.mjs +4 -4
  97. package/esm2022/grid-list/grid-list-module.mjs +4 -4
  98. package/esm2022/grid-list/grid-list.mjs +6 -6
  99. package/esm2022/grid-list/grid-tile.mjs +19 -19
  100. package/esm2022/icon/icon-module.mjs +4 -4
  101. package/esm2022/icon/icon-registry.mjs +5 -5
  102. package/esm2022/icon/icon.mjs +6 -6
  103. package/esm2022/icon/testing/fake-icon-registry.mjs +7 -7
  104. package/esm2022/input/input.mjs +6 -6
  105. package/esm2022/input/module.mjs +4 -4
  106. package/esm2022/list/action-list.mjs +3 -3
  107. package/esm2022/list/list-base.mjs +9 -9
  108. package/esm2022/list/list-item-sections.mjs +22 -22
  109. package/esm2022/list/list-module.mjs +4 -4
  110. package/esm2022/list/list-option.mjs +6 -6
  111. package/esm2022/list/list.mjs +9 -9
  112. package/esm2022/list/nav-list.mjs +3 -3
  113. package/esm2022/list/selection-list.mjs +5 -5
  114. package/esm2022/list/subheader.mjs +3 -3
  115. package/esm2022/menu/menu-content.mjs +5 -5
  116. package/esm2022/menu/menu-item.mjs +6 -6
  117. package/esm2022/menu/menu-trigger.mjs +6 -6
  118. package/esm2022/menu/menu.mjs +6 -6
  119. package/esm2022/menu/module.mjs +4 -4
  120. package/esm2022/paginator/module.mjs +4 -4
  121. package/esm2022/paginator/paginator-intl.mjs +3 -3
  122. package/esm2022/paginator/paginator.mjs +6 -6
  123. package/esm2022/progress-bar/module.mjs +4 -4
  124. package/esm2022/progress-bar/progress-bar.mjs +6 -6
  125. package/esm2022/progress-spinner/module.mjs +4 -4
  126. package/esm2022/progress-spinner/progress-spinner.mjs +6 -6
  127. package/esm2022/radio/module.mjs +4 -4
  128. package/esm2022/radio/radio.mjs +11 -11
  129. package/esm2022/select/module.mjs +4 -4
  130. package/esm2022/select/select.mjs +11 -11
  131. package/esm2022/sidenav/drawer.mjs +16 -16
  132. package/esm2022/sidenav/sidenav-module.mjs +4 -4
  133. package/esm2022/sidenav/sidenav.mjs +11 -11
  134. package/esm2022/slide-toggle/module.mjs +8 -8
  135. package/esm2022/slide-toggle/slide-toggle-required-validator.mjs +3 -3
  136. package/esm2022/slide-toggle/slide-toggle.mjs +6 -6
  137. package/esm2022/slider/module.mjs +4 -4
  138. package/esm2022/slider/slider-input.mjs +11 -11
  139. package/esm2022/slider/slider-thumb.mjs +6 -6
  140. package/esm2022/slider/slider.mjs +6 -6
  141. package/esm2022/snack-bar/module.mjs +4 -4
  142. package/esm2022/snack-bar/simple-snack-bar.mjs +5 -5
  143. package/esm2022/snack-bar/snack-bar-container.mjs +5 -5
  144. package/esm2022/snack-bar/snack-bar-content.mjs +9 -9
  145. package/esm2022/snack-bar/snack-bar.mjs +5 -5
  146. package/esm2022/sort/sort-header-intl.mjs +3 -3
  147. package/esm2022/sort/sort-header.mjs +7 -7
  148. package/esm2022/sort/sort-module.mjs +4 -4
  149. package/esm2022/sort/sort.mjs +6 -6
  150. package/esm2022/stepper/step-content.mjs +4 -4
  151. package/esm2022/stepper/step-header.mjs +5 -5
  152. package/esm2022/stepper/step-label.mjs +3 -3
  153. package/esm2022/stepper/stepper-button.mjs +6 -6
  154. package/esm2022/stepper/stepper-icon.mjs +5 -5
  155. package/esm2022/stepper/stepper-intl.mjs +3 -3
  156. package/esm2022/stepper/stepper-module.mjs +4 -4
  157. package/esm2022/stepper/stepper.mjs +11 -11
  158. package/esm2022/table/cell.mjs +21 -21
  159. package/esm2022/table/module.mjs +4 -4
  160. package/esm2022/table/row.mjs +21 -21
  161. package/esm2022/table/table.mjs +6 -6
  162. package/esm2022/table/text-column.mjs +3 -3
  163. package/esm2022/tabs/module.mjs +4 -4
  164. package/esm2022/tabs/paginated-tab-header.mjs +6 -6
  165. package/esm2022/tabs/tab-body.mjs +11 -11
  166. package/esm2022/tabs/tab-content.mjs +4 -4
  167. package/esm2022/tabs/tab-group.mjs +6 -6
  168. package/esm2022/tabs/tab-header.mjs +6 -6
  169. package/esm2022/tabs/tab-label-wrapper.mjs +4 -4
  170. package/esm2022/tabs/tab-label.mjs +5 -5
  171. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +21 -19
  172. package/esm2022/tabs/tab.mjs +6 -6
  173. package/esm2022/toolbar/toolbar-module.mjs +4 -4
  174. package/esm2022/toolbar/toolbar.mjs +9 -9
  175. package/esm2022/tooltip/module.mjs +4 -4
  176. package/esm2022/tooltip/tooltip.mjs +12 -12
  177. package/esm2022/tree/node.mjs +14 -14
  178. package/esm2022/tree/outlet.mjs +5 -5
  179. package/esm2022/tree/padding.mjs +3 -3
  180. package/esm2022/tree/toggle.mjs +3 -3
  181. package/esm2022/tree/tree-module.mjs +4 -4
  182. package/esm2022/tree/tree.mjs +3 -3
  183. package/fesm2022/autocomplete.mjs +29 -19
  184. package/fesm2022/autocomplete.mjs.map +1 -1
  185. package/fesm2022/badge.mjs +9 -9
  186. package/fesm2022/badge.mjs.map +1 -1
  187. package/fesm2022/bottom-sheet.mjs +14 -14
  188. package/fesm2022/button-toggle.mjs +14 -14
  189. package/fesm2022/button-toggle.mjs.map +1 -1
  190. package/fesm2022/button.mjs +58 -58
  191. package/fesm2022/button.mjs.map +1 -1
  192. package/fesm2022/card.mjs +48 -48
  193. package/fesm2022/card.mjs.map +1 -1
  194. package/fesm2022/checkbox.mjs +16 -16
  195. package/fesm2022/checkbox.mjs.map +1 -1
  196. package/fesm2022/chips.mjs +59 -59
  197. package/fesm2022/chips.mjs.map +1 -1
  198. package/fesm2022/core.mjs +69 -69
  199. package/fesm2022/core.mjs.map +1 -1
  200. package/fesm2022/datepicker.mjs +120 -120
  201. package/fesm2022/datepicker.mjs.map +1 -1
  202. package/fesm2022/dialog.mjs +67 -56
  203. package/fesm2022/dialog.mjs.map +1 -1
  204. package/fesm2022/divider.mjs +7 -7
  205. package/fesm2022/expansion.mjs +31 -31
  206. package/fesm2022/expansion.mjs.map +1 -1
  207. package/fesm2022/form-field.mjs +43 -43
  208. package/fesm2022/form-field.mjs.map +1 -1
  209. package/fesm2022/grid-list.mjs +27 -27
  210. package/fesm2022/grid-list.mjs.map +1 -1
  211. package/fesm2022/icon/testing.mjs +7 -7
  212. package/fesm2022/icon.mjs +14 -14
  213. package/fesm2022/icon.mjs.map +1 -1
  214. package/fesm2022/input.mjs +9 -9
  215. package/fesm2022/input.mjs.map +1 -1
  216. package/fesm2022/list.mjs +60 -60
  217. package/fesm2022/list.mjs.map +1 -1
  218. package/fesm2022/menu.mjs +24 -24
  219. package/fesm2022/menu.mjs.map +1 -1
  220. package/fesm2022/paginator.mjs +12 -12
  221. package/fesm2022/paginator.mjs.map +1 -1
  222. package/fesm2022/progress-bar.mjs +9 -9
  223. package/fesm2022/progress-bar.mjs.map +1 -1
  224. package/fesm2022/progress-spinner.mjs +9 -9
  225. package/fesm2022/progress-spinner.mjs.map +1 -1
  226. package/fesm2022/radio.mjs +14 -14
  227. package/fesm2022/radio.mjs.map +1 -1
  228. package/fesm2022/select.mjs +14 -14
  229. package/fesm2022/select.mjs.map +1 -1
  230. package/fesm2022/sidenav.mjs +30 -30
  231. package/fesm2022/sidenav.mjs.map +1 -1
  232. package/fesm2022/slide-toggle.mjs +16 -16
  233. package/fesm2022/slide-toggle.mjs.map +1 -1
  234. package/fesm2022/slider.mjs +24 -24
  235. package/fesm2022/slider.mjs.map +1 -1
  236. package/fesm2022/snack-bar.mjs +27 -27
  237. package/fesm2022/snack-bar.mjs.map +1 -1
  238. package/fesm2022/sort.mjs +18 -18
  239. package/fesm2022/sort.mjs.map +1 -1
  240. package/fesm2022/stepper.mjs +38 -38
  241. package/fesm2022/stepper.mjs.map +1 -1
  242. package/fesm2022/table.mjs +55 -55
  243. package/fesm2022/tabs.mjs +67 -65
  244. package/fesm2022/tabs.mjs.map +1 -1
  245. package/fesm2022/toolbar.mjs +12 -12
  246. package/fesm2022/toolbar.mjs.map +1 -1
  247. package/fesm2022/tooltip.mjs +15 -15
  248. package/fesm2022/tooltip.mjs.map +1 -1
  249. package/fesm2022/tree.mjs +31 -31
  250. package/fesm2022/tree.mjs.map +1 -1
  251. package/list/_list-theme.scss +5 -0
  252. package/package.json +2 -2
  253. package/prebuilt-themes/deeppurple-amber.css +1 -1
  254. package/prebuilt-themes/indigo-pink.css +1 -1
  255. package/prebuilt-themes/pink-bluegrey.css +1 -1
  256. package/prebuilt-themes/purple-green.css +1 -1
  257. package/progress-spinner/_progress-spinner-theme.scss +37 -17
  258. package/radio/_radio-theme.scss +83 -37
  259. package/schematics/ng-add/index.js +1 -1
  260. package/schematics/ng-add/index.mjs +1 -1
  261. package/schematics/ng-add/setup-project.js +2 -2
  262. package/schematics/ng-add/setup-project.mjs +2 -2
  263. package/schematics/ng-add/theming/theming.js +5 -6
  264. package/schematics/ng-add/theming/theming.mjs +5 -6
  265. package/schematics/ng-generate/mdc-migration/index_bundled.js +1508 -547
  266. package/schematics/ng-generate/mdc-migration/index_bundled.js.map +4 -4
  267. package/slider/_slider-theme.scss +77 -43
  268. package/snack-bar/_snack-bar-theme.scss +46 -18
  269. package/toolbar/_toolbar-theme.scss +55 -27
  270. package/tooltip/_tooltip-theme.scss +56 -24
package/_index.scss CHANGED
@@ -112,7 +112,7 @@ list-density, list-base;
112
112
  progress-spinner-theme, progress-spinner-color, progress-spinner-typography,
113
113
  progress-spinner-density, progress-spinner-base;
114
114
  @forward './radio/radio-theme' as radio-* show radio-theme, radio-color, radio-typography,
115
- radio-density;
115
+ radio-density, radio-base;
116
116
  @forward './select/select-theme' as select-* show select-theme, select-color, select-typography,
117
117
  select-density;
118
118
  @forward './sidenav/sidenav-theme' as sidenav-* show sidenav-theme, sidenav-color,
@@ -142,7 +142,6 @@ list-density, list-base;
142
142
  $private-mdc-base-styles-query, $private-mdc-base-styles-without-animation-query,
143
143
  $private-mdc-theme-styles-query, $private-mdc-typography-styles-query;
144
144
 
145
- // New theming APIs, currently in development:
146
- @forward './core/theming/inspection' as private-* show private-get-theme-version,
147
- private-get-theme-type, private-get-theme-color, private-get-theme-typography,
148
- private-get-theme-density, private-theme-has;
145
+ // New theming APIs:
146
+ @forward './core/theming/inspection' show get-theme-version, get-theme-type, get-theme-color,
147
+ get-theme-typography, get-theme-density, theme-has;
@@ -5,6 +5,7 @@
5
5
  @use '@material/button/button-protected-theme' as mdc-button-protected-theme;
6
6
  @use '@material/button/button-outlined-theme' as mdc-button-outlined-theme;
7
7
  @use '@material/theme/theme-color' as mdc-theme-color;
8
+ @use '@material/elevation/elevation-theme' as mdc-elevation-theme;
8
9
 
9
10
  @use './button-theme-private';
10
11
  @use '../core/mdc-helpers/mdc-helpers';
@@ -12,8 +13,9 @@
12
13
  @use '../core/theming/inspection';
13
14
  @use '../core/typography/typography';
14
15
  @use '../core/tokens/m2/mdc/button-filled' as tokens-mdc-button-filled;
16
+ @use '../core/tokens/m2/mdc/button-protected' as tokens-mdc-button-protected;
15
17
 
16
- @function on-color($theme, $palette) {
18
+ @function _on-color($theme, $palette) {
17
19
  $is-dark: inspection.get-theme-type($theme) == dark;
18
20
  @return if(mdc-helpers.variable-safe-contrast-tone($palette, $is-dark) == 'dark', #000, #fff);
19
21
  }
@@ -24,13 +26,6 @@
24
26
  ));
25
27
  }
26
28
 
27
- @mixin _raised-button-variant($foreground, $background) {
28
- @include mdc-button-protected-theme.theme((
29
- container-color: $background,
30
- label-text-color: $foreground,
31
- ));
32
- }
33
-
34
29
  @mixin _outlined-button-variant($color) {
35
30
  @include mdc-button-outlined-theme.theme((
36
31
  label-text-color: $color,
@@ -78,36 +73,6 @@
78
73
  }
79
74
  }
80
75
 
81
- .mat-mdc-raised-button {
82
- &.mat-unthemed {
83
- @include _raised-button-variant($on-surface, $surface);
84
- }
85
-
86
- &.mat-primary {
87
- @include _raised-button-variant($on-primary, $primary);
88
- }
89
-
90
- &.mat-accent {
91
- @include _raised-button-variant($on-secondary, $secondary);
92
- }
93
-
94
- &.mat-warn {
95
- @include _raised-button-variant($on-error, $error);
96
- }
97
-
98
- @include button-theme-private.apply-disabled-style() {
99
- @include mdc-button-protected-theme.theme((
100
- // We need to pass both the disabled and enabled values, because the enabled
101
- // ones apply to anchors while the disabled ones are for buttons.
102
- disabled-container-color: $disabled-container-color,
103
- disabled-label-text-color: $disabled-ink-color,
104
- container-color: $disabled-container-color,
105
- label-text-color: $disabled-ink-color,
106
- container-elevation: 0,
107
- ));
108
- }
109
- }
110
-
111
76
  .mat-mdc-outlined-button {
112
77
  @include mdc-button-outlined-theme.theme((
113
78
  outline-color: rgba(mdc-theme-color.prop-value(on-surface), 0.12)
@@ -151,17 +116,17 @@
151
116
  }
152
117
  }
153
118
 
154
- .mat-mdc-unelevated-button {
155
- $surface: inspection.get-theme-color($theme, background, card);
156
- $primary: inspection.get-theme-color($theme, primary);
157
- $accent: inspection.get-theme-color($theme, accent);
158
- $error: inspection.get-theme-color($theme, warn);
119
+ $surface: inspection.get-theme-color($theme, background, card);
120
+ $primary: inspection.get-theme-color($theme, primary);
121
+ $accent: inspection.get-theme-color($theme, accent);
122
+ $error: inspection.get-theme-color($theme, warn);
159
123
 
160
- $on-surface: on-color($theme, $surface);
161
- $on-primary: on-color($theme, $primary);
162
- $on-accent: on-color($theme, $accent);
163
- $on-error: on-color($theme, $error);
124
+ $on-surface: _on-color($theme, $surface);
125
+ $on-primary: _on-color($theme, $primary);
126
+ $on-accent: _on-color($theme, $accent);
127
+ $on-error: _on-color($theme, $error);
164
128
 
129
+ .mat-mdc-unelevated-button {
165
130
  $default-color-tokens: tokens-mdc-button-filled.get-color-tokens($theme, $surface, $on-surface);
166
131
  $primary-color-tokens: tokens-mdc-button-filled.get-color-tokens($theme, $primary, $on-primary);
167
132
  $accent-color-tokens: tokens-mdc-button-filled.get-color-tokens($theme, $accent, $on-accent);
@@ -182,12 +147,66 @@
182
147
  &.mat-warn {
183
148
  @include mdc-button-filled-theme.theme($warn-color-tokens);
184
149
  }
150
+ }
151
+
152
+ .mat-mdc-raised-button {
153
+ $default-color-tokens: tokens-mdc-button-protected.get-color-tokens(
154
+ $theme,
155
+ $surface,
156
+ $on-surface
157
+ );
158
+ $primary-color-tokens: tokens-mdc-button-filled.get-color-tokens($theme, $primary, $on-primary);
159
+ $accent-color-tokens: tokens-mdc-button-filled.get-color-tokens($theme, $accent, $on-accent);
160
+ $warn-color-tokens: tokens-mdc-button-filled.get-color-tokens($theme, $error, $on-error);
185
161
 
162
+ &.mat-unthemed {
163
+ @include mdc-button-protected-theme.theme($default-color-tokens);
164
+ }
165
+
166
+ &.mat-primary {
167
+ @include mdc-button-protected-theme.theme($primary-color-tokens);
168
+ }
169
+
170
+ &.mat-accent {
171
+ @include mdc-button-protected-theme.theme($accent-color-tokens);
172
+ }
173
+
174
+ &.mat-warn {
175
+ @include mdc-button-protected-theme.theme($warn-color-tokens);
176
+ }
177
+
178
+ // TODO(wagnermaciel): Remove this workaround when b/301126527 is resolved
179
+ @include mdc-helpers.disable-mdc-fallback-declarations {
180
+ @include mdc-elevation-theme.elevation(2);
181
+
182
+ &:hover, &:focus {
183
+ @include mdc-elevation-theme.elevation(4);
184
+ }
185
+
186
+ &:active, &:focus:active {
187
+ @include mdc-elevation-theme.elevation(8);
188
+ }
189
+ }
190
+ }
191
+
192
+ $is-dark: inspection.get-theme-type($theme) == dark;
193
+ $disabled-ink-color: rgba($on-surface, if($is-dark, 0.5, 0.38));
194
+ $disabled-container-color: rgba($on-surface, 0.12);
195
+
196
+ .mat-mdc-raised-button {
186
197
  @include button-theme-private.apply-disabled-style() {
187
- $is-dark: inspection.get-theme-type($theme) == dark;
188
- $disabled-ink-color: rgba($on-surface, if($is-dark, 0.5, 0.38));
189
- $disabled-container-color: rgba($on-surface, 0.12);
198
+ @include mdc-elevation-theme.elevation(0);
199
+ @include mdc-button-protected-theme.theme((
200
+ disabled-container-color: $disabled-container-color,
201
+ disabled-label-text-color: $disabled-ink-color,
202
+ container-color: $disabled-container-color,
203
+ label-text-color: $disabled-ink-color,
204
+ ));
205
+ }
206
+ }
190
207
 
208
+ .mat-mdc-unelevated-button {
209
+ @include button-theme-private.apply-disabled-style() {
191
210
  @include mdc-button-filled-theme.theme((
192
211
  disabled-container-color: $disabled-container-color,
193
212
  disabled-label-text-color: $disabled-ink-color,
@@ -87,9 +87,7 @@
87
87
  }
88
88
  }
89
89
 
90
- @mixin theme($theme-or-color-config) {
91
- $theme: theming.private-legacy-get-theme($theme-or-color-config);
92
-
90
+ @mixin theme($theme) {
93
91
  @include theming.private-check-duplicate-theme-styles($theme, 'mat-card') {
94
92
  @if inspection.get-theme-version($theme) == 1 {
95
93
  @include _theme-from-tokens(inspection.get-theme-tokens($theme));
@@ -28,7 +28,7 @@ $_typography-keys: (
28
28
  headline-5,
29
29
  headline-6,
30
30
  subtitle-1,
31
- font-famiy,
31
+ font-family,
32
32
  subtitle-2,
33
33
  body-1,
34
34
  body-2,
@@ -3,10 +3,12 @@
3
3
  @use '../../style/sass-utils';
4
4
 
5
5
  @use './mat/card' as tokens-mat-card;
6
+ @use './mat/toolbar' as tokens-mat-toolbar;
6
7
  @use './mat/radio' as tokens-mat-radio;
7
8
  @use './mat/snack-bar' as tokens-mat-snack-bar;
8
9
  @use './mat/tab-header' as tokens-mat-tab-header;
9
10
  @use './mat/tab-header-with-background' as tokens-mat-tab-header-with-background;
11
+ @use './mat/slider' as tokens-mat-slider;
10
12
  @use './mdc/checkbox' as tokens-mdc-checkbox;
11
13
  @use './mdc/circular-progress' as tokens-mdc-circular-progress;
12
14
  @use './mdc/dialog' as tokens-mdc-dialog;
@@ -19,6 +21,8 @@
19
21
  @use './mdc/snack-bar' as tokens-mdc-snack-bar;
20
22
  @use './mdc/tab' as tokens-mdc-tab;
21
23
  @use './mdc/tab-indicator' as tokens-mdc-tab-indicator;
24
+ @use './mdc/slider' as tokens-mdc-slider;
25
+ @use './mdc/plain-tooltip' as tokens-mdc-plain-tooltip;
22
26
 
23
27
  /// Gets the tokens for the given theme, m2 tokens module, and theming system.
24
28
  /// @param {Map} $theme The Angular Material theme object to generate token values from.
@@ -68,6 +72,8 @@
68
72
  _get-tokens-for-module($theme, tokens-mat-snack-bar),
69
73
  _get-tokens-for-module($theme, tokens-mat-tab-header),
70
74
  _get-tokens-for-module($theme, tokens-mat-tab-header-with-background),
75
+ _get-tokens-for-module($theme, tokens-mat-toolbar),
76
+ _get-tokens-for-module($theme, tokens-mat-slider),
71
77
  _get-tokens-for-module($theme, tokens-mdc-checkbox),
72
78
  _get-tokens-for-module($theme, tokens-mdc-circular-progress),
73
79
  _get-tokens-for-module($theme, tokens-mdc-dialog),
@@ -80,5 +86,7 @@
80
86
  _get-tokens-for-module($theme, tokens-mdc-snack-bar),
81
87
  _get-tokens-for-module($theme, tokens-mdc-tab),
82
88
  _get-tokens-for-module($theme, tokens-mdc-tab-indicator),
89
+ _get-tokens-for-module($theme, tokens-mdc-slider),
90
+ _get-tokens-for-module($theme, tokens-mdc-plain-tooltip),
83
91
  );
84
92
  }
@@ -44,7 +44,7 @@ $prefix: (mdc, button-filled);
44
44
  );
45
45
  }
46
46
 
47
- @function on-color($theme, $palette) {
47
+ @function _on-color($theme, $palette) {
48
48
  @if ($palette) {
49
49
  $is-dark: inspection.get-theme-type($theme) == dark;
50
50
  @return if(mdc-helpers.variable-safe-contrast-tone($palette, $is-dark) == 'dark', #000, #fff);
@@ -56,8 +56,8 @@ $prefix: (mdc, button-filled);
56
56
  $is-dark: inspection.get-theme-type($theme) == dark;
57
57
  $primary: inspection.get-theme-color($theme, primary);
58
58
  $surface: inspection.get-theme-color($theme, background, card);
59
- $on-primary: on-color($theme, $primary);
60
- $on-surface: on-color($theme, $surface);
59
+ $on-primary: _on-color($theme, $primary);
60
+ $on-surface: _on-color($theme, $surface);
61
61
 
62
62
  @return (
63
63
  container-color: if($color, $color, transparent),
@@ -0,0 +1,94 @@
1
+ @use '../../token-utils';
2
+ @use '../../../mdc-helpers/mdc-helpers';
3
+ @use '../../../style/sass-utils';
4
+ @use '../../../theming/inspection';
5
+
6
+ // The prefix used to generate the fully qualified name for tokens in this file.
7
+ $prefix: (mdc, button-protected);
8
+
9
+ // Tokens that can't be configured through Angular Material's current theming API,
10
+ // but may be in a future version of the theming API.
11
+ //
12
+ // Tokens that are available in MDC, but not used in Angular Material should be mapped to `null`.
13
+ // `null` indicates that we are intentionally choosing not to emit a slot or value for the token in
14
+ // our CSS.
15
+ @function get-unthemable-tokens() {
16
+ @return (
17
+ container-shape: 4px,
18
+ container-height: 36px,
19
+ keep-touch-target: false,
20
+
21
+ focus-ring-color: null,
22
+ focus-ring-offset: null,
23
+ focus-state-layer-opacity: null,
24
+ hover-state-layer-opacity: null,
25
+ pressed-state-layer-opacity: null,
26
+ container-shadow-color: null,
27
+ container-elevation: null,
28
+ hover-container-elevation: null,
29
+ disabled-container-elevation: null,
30
+ focus-container-elevation: null,
31
+ pressed-container-elevation: null,
32
+ label-text-font: null,
33
+ label-text-size: null,
34
+ label-text-tracking: null,
35
+ label-text-transform: null,
36
+ label-text-weight: null,
37
+ with-icon-icon-size: null,
38
+ focus-label-text-color: null,
39
+ hover-label-text-color: null,
40
+ pressed-label-text-color: null,
41
+ with-icon-disabled-icon-color: null,
42
+ with-icon-focus-icon-color: null,
43
+ with-icon-hover-icon-color: null,
44
+ with-icon-icon-color: null,
45
+ with-icon-pressed-icon-color: null
46
+ );
47
+ }
48
+
49
+ @function _on-color($theme, $palette) {
50
+ @if ($palette) {
51
+ $is-dark: inspection.get-theme-type($theme) == dark;
52
+ @return if(mdc-helpers.variable-safe-contrast-tone($palette, $is-dark) == 'dark', #000, #fff);
53
+ }
54
+ }
55
+
56
+ // Tokens that can be configured through Angular Material's color theming API.
57
+ @function get-color-tokens($theme, $color: null, $on-color: null) {
58
+ $is-dark: inspection.get-theme-type($theme) == dark;
59
+ $primary: inspection.get-theme-color($theme, primary);
60
+ $surface: inspection.get-theme-color($theme, background, card);
61
+ $on-primary: _on-color($theme, $primary);
62
+ $on-surface: _on-color($theme, $surface);
63
+
64
+ @return (
65
+ container-color: if($color, $color, transparent),
66
+ focus-state-layer-color: $on-primary,
67
+ hover-state-layer-color: $on-primary,
68
+ pressed-state-layer-color: $on-primary,
69
+ label-text-color: if($on-color, $on-color, inherit),
70
+ disabled-container-color: rgba($on-surface, 0.12),
71
+ disabled-label-text-color: rgba($on-surface, 0.38)
72
+ );
73
+ }
74
+
75
+ // Tokens that can be configured through Angular Material's typography theming API.
76
+ @function get-typography-tokens($theme) {
77
+ @return ();
78
+ }
79
+
80
+ // Tokens that can be configured through Angular Material's density theming API.
81
+ @function get-density-tokens($theme) {
82
+ @return ();
83
+ }
84
+
85
+ // Combines the tokens generated by the above functions into a single map with placeholder values.
86
+ // This is used to create token slots.
87
+ @function get-token-slots() {
88
+ @return sass-utils.deep-merge-all(
89
+ get-unthemable-tokens(),
90
+ get-color-tokens(token-utils.$placeholder-color-config),
91
+ get-typography-tokens(token-utils.$placeholder-typography-config),
92
+ get-density-tokens(token-utils.$placeholder-density-config)
93
+ );
94
+ }
@@ -71,7 +71,7 @@
71
71
  headline-5: map.get($config, headline),
72
72
  headline-6: map.get($config, title),
73
73
  subtitle-1: map.get($config, subheading-2),
74
- font-famiy: map.get($config, font-family),
74
+ font-family: map.get($config, font-family),
75
75
 
76
76
  // These mappings are odd, but body-2 in the 2014 system actually looks closer to subtitle-2
77
77
  // in the 2018 system, and subeading-1 in the 2014 system looks more like body-1 in the 2018
package/dialog/index.d.ts CHANGED
@@ -12,10 +12,10 @@ import { FocusMonitor } from '@angular/cdk/a11y';
12
12
  import { FocusOrigin } from '@angular/cdk/a11y';
13
13
  import { FocusTrapFactory } from '@angular/cdk/a11y';
14
14
  import * as i0 from '@angular/core';
15
- import * as i3 from '@angular/cdk/dialog';
16
- import * as i4 from '@angular/cdk/overlay';
17
- import * as i5 from '@angular/cdk/portal';
18
- import * as i6 from '@angular/material/core';
15
+ import * as i1 from '@angular/cdk/dialog';
16
+ import * as i2 from '@angular/cdk/overlay';
17
+ import * as i3 from '@angular/cdk/portal';
18
+ import * as i4 from '@angular/material/core';
19
19
  import { InjectionToken } from '@angular/core';
20
20
  import { Injector } from '@angular/core';
21
21
  import { InteractivityChecker } from '@angular/cdk/a11y';
@@ -73,7 +73,7 @@ export declare interface DialogPosition {
73
73
  /** Valid ARIA roles for a dialog element. */
74
74
  export declare type DialogRole = 'dialog' | 'alertdialog';
75
75
 
76
- declare namespace i1 {
76
+ declare namespace i5 {
77
77
  export {
78
78
  OPEN_ANIMATION_DURATION,
79
79
  CLOSE_ANIMATION_DURATION,
@@ -81,7 +81,7 @@ declare namespace i1 {
81
81
  }
82
82
  }
83
83
 
84
- declare namespace i2 {
84
+ declare namespace i6 {
85
85
  export {
86
86
  MatDialogClose,
87
87
  MatDialogTitle,
@@ -105,14 +105,22 @@ export declare const MAT_DIALOG_DEFAULT_OPTIONS: InjectionToken<MatDialogConfig<
105
105
  /** Injection token that determines the scroll handling while the dialog is open. */
106
106
  export declare const MAT_DIALOG_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>;
107
107
 
108
- /** @docs-private */
108
+ /**
109
+ * @docs-private
110
+ * @deprecated No longer used. To be removed.
111
+ * @breaking-change 19.0.0
112
+ */
109
113
  export declare const MAT_DIALOG_SCROLL_STRATEGY_PROVIDER: {
110
114
  provide: InjectionToken<() => ScrollStrategy>;
111
115
  deps: (typeof Overlay)[];
112
116
  useFactory: typeof MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY;
113
117
  };
114
118
 
115
- /** @docs-private */
119
+ /**
120
+ * @docs-private
121
+ * @deprecated No longer used. To be removed.
122
+ * @breaking-change 19.0.0
123
+ */
116
124
  export declare function MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay: Overlay): () => ScrollStrategy;
117
125
 
118
126
  /**
@@ -197,7 +205,7 @@ export declare class MatDialogActions {
197
205
  */
198
206
  align?: 'start' | 'center' | 'end';
199
207
  static ɵfac: i0.ɵɵFactoryDeclaration<MatDialogActions, never>;
200
- static ɵdir: i0.ɵɵDirectiveDeclaration<MatDialogActions, "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", never, { "align": { "alias": "align"; "required": false; }; }, {}, never, never, false, never>;
208
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MatDialogActions, "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", never, { "align": { "alias": "align"; "required": false; }; }, {}, never, never, true, never>;
201
209
  }
202
210
 
203
211
  /**
@@ -227,7 +235,7 @@ export declare class MatDialogClose implements OnInit, OnChanges {
227
235
  ngOnChanges(changes: SimpleChanges): void;
228
236
  _onButtonClick(event: MouseEvent): void;
229
237
  static ɵfac: i0.ɵɵFactoryDeclaration<MatDialogClose, [{ optional: true; }, null, null]>;
230
- static ɵdir: i0.ɵɵDirectiveDeclaration<MatDialogClose, "[mat-dialog-close], [matDialogClose]", ["matDialogClose"], { "ariaLabel": { "alias": "aria-label"; "required": false; }; "type": { "alias": "type"; "required": false; }; "dialogResult": { "alias": "mat-dialog-close"; "required": false; }; "_matDialogClose": { "alias": "matDialogClose"; "required": false; }; }, {}, never, never, false, never>;
238
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MatDialogClose, "[mat-dialog-close], [matDialogClose]", ["matDialogClose"], { "ariaLabel": { "alias": "aria-label"; "required": false; }; "type": { "alias": "type"; "required": false; }; "dialogResult": { "alias": "mat-dialog-close"; "required": false; }; "_matDialogClose": { "alias": "matDialogClose"; "required": false; }; }, {}, never, never, true, never>;
231
239
  }
232
240
 
233
241
  /**
@@ -368,7 +376,7 @@ export declare class MatDialogContainer extends CdkDialogContainer<MatDialogConf
368
376
  ngOnDestroy(): void;
369
377
  attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;
370
378
  static ɵfac: i0.ɵɵFactoryDeclaration<MatDialogContainer, [null, null, { optional: true; }, null, null, null, null, { optional: true; }, null]>;
371
- static ɵcmp: i0.ɵɵComponentDeclaration<MatDialogContainer, "mat-dialog-container", never, {}, {}, never, never, false, never>;
379
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatDialogContainer, "mat-dialog-container", never, {}, {}, never, never, true, never>;
372
380
  }
373
381
 
374
382
  /**
@@ -376,12 +384,12 @@ export declare class MatDialogContainer extends CdkDialogContainer<MatDialogConf
376
384
  */
377
385
  export declare class MatDialogContent {
378
386
  static ɵfac: i0.ɵɵFactoryDeclaration<MatDialogContent, never>;
379
- static ɵdir: i0.ɵɵDirectiveDeclaration<MatDialogContent, "[mat-dialog-content], mat-dialog-content, [matDialogContent]", never, {}, {}, never, never, false, never>;
387
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MatDialogContent, "[mat-dialog-content], mat-dialog-content, [matDialogContent]", never, {}, {}, never, never, true, never>;
380
388
  }
381
389
 
382
390
  export declare class MatDialogModule {
383
391
  static ɵfac: i0.ɵɵFactoryDeclaration<MatDialogModule, never>;
384
- static ɵmod: i0.ɵɵNgModuleDeclaration<MatDialogModule, [typeof i1.MatDialogContainer, typeof i2.MatDialogClose, typeof i2.MatDialogTitle, typeof i2.MatDialogActions, typeof i2.MatDialogContent], [typeof i3.DialogModule, typeof i4.OverlayModule, typeof i5.PortalModule, typeof i6.MatCommonModule], [typeof i1.MatDialogContainer, typeof i2.MatDialogClose, typeof i2.MatDialogTitle, typeof i2.MatDialogContent, typeof i2.MatDialogActions, typeof i6.MatCommonModule]>;
392
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MatDialogModule, never, [typeof i1.DialogModule, typeof i2.OverlayModule, typeof i3.PortalModule, typeof i4.MatCommonModule, typeof i5.MatDialogContainer, typeof i6.MatDialogClose, typeof i6.MatDialogTitle, typeof i6.MatDialogActions, typeof i6.MatDialogContent], [typeof i4.MatCommonModule, typeof i5.MatDialogContainer, typeof i6.MatDialogClose, typeof i6.MatDialogTitle, typeof i6.MatDialogActions, typeof i6.MatDialogContent]>;
385
393
  static ɵinj: i0.ɵɵInjectorDeclaration<MatDialogModule>;
386
394
  }
387
395
 
@@ -482,7 +490,7 @@ export declare class MatDialogTitle implements OnInit, OnDestroy {
482
490
  ngOnInit(): void;
483
491
  ngOnDestroy(): void;
484
492
  static ɵfac: i0.ɵɵFactoryDeclaration<MatDialogTitle, [{ optional: true; }, null, null]>;
485
- static ɵdir: i0.ɵɵDirectiveDeclaration<MatDialogTitle, "[mat-dialog-title], [matDialogTitle]", ["matDialogTitle"], { "id": { "alias": "id"; "required": false; }; }, {}, never, never, false, never>;
493
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MatDialogTitle, "[mat-dialog-title], [matDialogTitle]", ["matDialogTitle"], { "id": { "alias": "id"; "required": false; }; }, {}, never, never, true, never>;
486
494
  }
487
495
 
488
496
  /** Duration of the opening animation in milliseconds. */
@@ -17,14 +17,14 @@ export class MatAutocompleteOrigin {
17
17
  elementRef) {
18
18
  this.elementRef = elementRef;
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: MatAutocompleteOrigin, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
21
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-next.4", type: MatAutocompleteOrigin, selector: "[matAutocompleteOrigin]", exportAs: ["matAutocompleteOrigin"], ngImport: i0 }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: MatAutocompleteOrigin, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
21
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-next.6", type: MatAutocompleteOrigin, selector: "[matAutocompleteOrigin]", exportAs: ["matAutocompleteOrigin"], ngImport: i0 }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: MatAutocompleteOrigin, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: MatAutocompleteOrigin, decorators: [{
24
24
  type: Directive,
25
25
  args: [{
26
26
  selector: '[matAutocompleteOrigin]',
27
27
  exportAs: 'matAutocompleteOrigin',
28
28
  }]
29
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
29
+ }], ctorParameters: () => [{ type: i0.ElementRef }] });
30
30
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLW9yaWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLW9yaWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFFcEQ7OztHQUdHO0FBS0gsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQztJQUNFLGtFQUFrRTtJQUMzRCxVQUFtQztRQUFuQyxlQUFVLEdBQVYsVUFBVSxDQUF5QjtJQUN6QyxDQUFDO3FIQUpPLHFCQUFxQjt5R0FBckIscUJBQXFCOztrR0FBckIscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRSx1QkFBdUI7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBEaXJlY3RpdmUgYXBwbGllZCB0byBhbiBlbGVtZW50IHRvIG1ha2UgaXQgdXNhYmxlXG4gKiBhcyBhIGNvbm5lY3Rpb24gcG9pbnQgZm9yIGFuIGF1dG9jb21wbGV0ZSBwYW5lbC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW21hdEF1dG9jb21wbGV0ZU9yaWdpbl0nLFxuICBleHBvcnRBczogJ21hdEF1dG9jb21wbGV0ZU9yaWdpbicsXG59KVxuZXhwb3J0IGNsYXNzIE1hdEF1dG9jb21wbGV0ZU9yaWdpbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKiBSZWZlcmVuY2UgdG8gdGhlIGVsZW1lbnQgb24gd2hpY2ggdGhlIGRpcmVjdGl2ZSBpcyBhcHBsaWVkLiAqL1xuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgKSB7fVxufVxuIl19