@angular/material-experimental 13.2.0-next.0 → 13.2.0-next.1

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 (148) hide show
  1. package/LICENSE +1 -1
  2. package/esm2020/mdc-button/button.mjs +4 -4
  3. package/esm2020/mdc-button/fab.mjs +3 -3
  4. package/esm2020/mdc-checkbox/checkbox.mjs +2 -2
  5. package/esm2020/mdc-chips/chip-action.mjs +123 -0
  6. package/esm2020/mdc-chips/chip-edit-input.mjs +3 -3
  7. package/esm2020/mdc-chips/chip-grid.mjs +45 -93
  8. package/esm2020/mdc-chips/chip-icons.mjs +36 -98
  9. package/esm2020/mdc-chips/chip-input.mjs +3 -10
  10. package/esm2020/mdc-chips/chip-listbox.mjs +50 -155
  11. package/esm2020/mdc-chips/chip-option.mjs +82 -93
  12. package/esm2020/mdc-chips/chip-row.mjs +81 -89
  13. package/esm2020/mdc-chips/chip-set.mjs +118 -119
  14. package/esm2020/mdc-chips/chip.mjs +187 -179
  15. package/esm2020/mdc-chips/emit-event.mjs +27 -0
  16. package/esm2020/mdc-chips/module.mjs +5 -7
  17. package/esm2020/mdc-chips/testing/chip-harness.mjs +5 -1
  18. package/esm2020/mdc-chips/testing/chip-option-harness.mjs +2 -2
  19. package/esm2020/mdc-chips/testing/chip-row-harness.mjs +10 -1
  20. package/esm2020/mdc-core/public-api.mjs +2 -2
  21. package/esm2020/mdc-dialog/dialog-container.mjs +2 -2
  22. package/esm2020/mdc-list/action-list.mjs +2 -2
  23. package/esm2020/mdc-list/list-base.mjs +133 -36
  24. package/esm2020/mdc-list/list-item-sections.mjs +138 -0
  25. package/esm2020/mdc-list/list-option.mjs +22 -14
  26. package/esm2020/mdc-list/list.mjs +20 -14
  27. package/esm2020/mdc-list/module.mjs +43 -20
  28. package/esm2020/mdc-list/nav-list.mjs +2 -2
  29. package/esm2020/mdc-list/public-api.mjs +3 -2
  30. package/esm2020/mdc-list/selection-list.mjs +5 -5
  31. package/esm2020/mdc-list/subheader.mjs +27 -0
  32. package/esm2020/mdc-list/testing/list-harness-filters.mjs +1 -1
  33. package/esm2020/mdc-list/testing/list-item-harness-base.mjs +96 -12
  34. package/esm2020/mdc-list/testing/public-api.mjs +2 -1
  35. package/esm2020/mdc-select/select.mjs +2 -2
  36. package/esm2020/mdc-slide-toggle/slide-toggle.mjs +3 -3
  37. package/esm2020/mdc-slider/slider.mjs +26 -5
  38. package/esm2020/mdc-table/table.mjs +2 -2
  39. package/esm2020/mdc-tabs/module.mjs +6 -2
  40. package/esm2020/mdc-tabs/public-api.mjs +2 -2
  41. package/esm2020/mdc-tabs/tab-nav-bar/tab-nav-bar.mjs +42 -5
  42. package/esm2020/mdc-tabs/testing/tab-harness-filters.mjs +1 -1
  43. package/esm2020/mdc-tabs/testing/tab-nav-bar-harness.mjs +13 -1
  44. package/esm2020/mdc-tabs/testing/tab-nav-panel-harness.mjs +27 -0
  45. package/esm2020/version.mjs +1 -1
  46. package/fesm2015/material-experimental.mjs +1 -1
  47. package/fesm2015/material-experimental.mjs.map +1 -1
  48. package/fesm2015/mdc-button.mjs +6 -6
  49. package/fesm2015/mdc-button.mjs.map +1 -1
  50. package/fesm2015/mdc-checkbox.mjs +2 -2
  51. package/fesm2015/mdc-chips/testing.mjs +18 -8
  52. package/fesm2015/mdc-chips/testing.mjs.map +1 -1
  53. package/fesm2015/mdc-chips.mjs +732 -1040
  54. package/fesm2015/mdc-chips.mjs.map +1 -1
  55. package/fesm2015/mdc-core.mjs +1 -1
  56. package/fesm2015/mdc-core.mjs.map +1 -1
  57. package/fesm2015/mdc-dialog.mjs +2 -2
  58. package/fesm2015/mdc-list/testing.mjs +104 -12
  59. package/fesm2015/mdc-list/testing.mjs.map +1 -1
  60. package/fesm2015/mdc-list.mjs +328 -123
  61. package/fesm2015/mdc-list.mjs.map +1 -1
  62. package/fesm2015/mdc-select.mjs +2 -2
  63. package/fesm2015/mdc-slide-toggle.mjs +2 -2
  64. package/fesm2015/mdc-slide-toggle.mjs.map +1 -1
  65. package/fesm2015/mdc-slider.mjs +25 -4
  66. package/fesm2015/mdc-slider.mjs.map +1 -1
  67. package/fesm2015/mdc-table.mjs +2 -2
  68. package/fesm2015/mdc-tabs/testing.mjs +34 -0
  69. package/fesm2015/mdc-tabs/testing.mjs.map +1 -1
  70. package/fesm2015/mdc-tabs.mjs +46 -5
  71. package/fesm2015/mdc-tabs.mjs.map +1 -1
  72. package/fesm2020/material-experimental.mjs +1 -1
  73. package/fesm2020/material-experimental.mjs.map +1 -1
  74. package/fesm2020/mdc-button.mjs +6 -6
  75. package/fesm2020/mdc-button.mjs.map +1 -1
  76. package/fesm2020/mdc-checkbox.mjs +2 -2
  77. package/fesm2020/mdc-chips/testing.mjs +14 -1
  78. package/fesm2020/mdc-chips/testing.mjs.map +1 -1
  79. package/fesm2020/mdc-chips.mjs +712 -1045
  80. package/fesm2020/mdc-chips.mjs.map +1 -1
  81. package/fesm2020/mdc-core.mjs +1 -1
  82. package/fesm2020/mdc-core.mjs.map +1 -1
  83. package/fesm2020/mdc-dialog.mjs +2 -2
  84. package/fesm2020/mdc-list/testing.mjs +96 -12
  85. package/fesm2020/mdc-list/testing.mjs.map +1 -1
  86. package/fesm2020/mdc-list.mjs +326 -123
  87. package/fesm2020/mdc-list.mjs.map +1 -1
  88. package/fesm2020/mdc-select.mjs +2 -2
  89. package/fesm2020/mdc-slide-toggle.mjs +2 -2
  90. package/fesm2020/mdc-slide-toggle.mjs.map +1 -1
  91. package/fesm2020/mdc-slider.mjs +25 -4
  92. package/fesm2020/mdc-slider.mjs.map +1 -1
  93. package/fesm2020/mdc-table.mjs +2 -2
  94. package/fesm2020/mdc-tabs/testing.mjs +37 -0
  95. package/fesm2020/mdc-tabs/testing.mjs.map +1 -1
  96. package/fesm2020/mdc-tabs.mjs +46 -5
  97. package/fesm2020/mdc-tabs.mjs.map +1 -1
  98. package/mdc-button/fab.d.ts +1 -1
  99. package/mdc-checkbox/_checkbox-theme.scss +32 -30
  100. package/mdc-chips/_chips-theme.scss +53 -53
  101. package/mdc-chips/chip-action.d.ts +40 -0
  102. package/mdc-chips/chip-grid.d.ts +6 -22
  103. package/mdc-chips/chip-icons.d.ts +14 -37
  104. package/mdc-chips/chip-listbox.d.ts +4 -40
  105. package/mdc-chips/chip-option.d.ts +15 -11
  106. package/mdc-chips/chip-row.d.ts +13 -28
  107. package/mdc-chips/chip-set.d.ts +25 -42
  108. package/mdc-chips/chip.d.ts +37 -36
  109. package/mdc-chips/emit-event.d.ts +16 -0
  110. package/mdc-chips/module.d.ts +13 -12
  111. package/mdc-chips/testing/chip-harness.d.ts +1 -0
  112. package/mdc-chips/testing/chip-row-harness.d.ts +4 -0
  113. package/mdc-core/public-api.d.ts +1 -1
  114. package/mdc-helpers/_focus-indicators.scss +15 -3
  115. package/mdc-list/_interactive-list-theme.scss +17 -11
  116. package/mdc-list/_list-option-theme.scss +2 -2
  117. package/mdc-list/_list-theme.scss +7 -3
  118. package/mdc-list/list-base.d.ts +56 -11
  119. package/mdc-list/list-item-sections.d.ts +77 -0
  120. package/mdc-list/list-option.d.ts +11 -8
  121. package/mdc-list/list.d.ts +6 -2
  122. package/mdc-list/module.d.ts +7 -5
  123. package/mdc-list/public-api.d.ts +2 -1
  124. package/mdc-list/subheader.d.ts +9 -0
  125. package/mdc-list/testing/list-harness-filters.d.ts +8 -0
  126. package/mdc-list/testing/list-item-harness-base.d.ts +34 -3
  127. package/mdc-list/testing/public-api.d.ts +1 -1
  128. package/mdc-select/_select-theme.scss +6 -27
  129. package/mdc-slider/slider.d.ts +13 -1
  130. package/mdc-table/_table-theme.scss +1 -1
  131. package/mdc-tabs/module.d.ts +1 -1
  132. package/mdc-tabs/public-api.d.ts +1 -1
  133. package/mdc-tabs/tab-nav-bar/tab-nav-bar.d.ts +11 -0
  134. package/mdc-tabs/testing/tab-harness-filters.d.ts +3 -0
  135. package/mdc-tabs/testing/tab-nav-bar-harness.d.ts +3 -0
  136. package/mdc-tabs/testing/tab-nav-panel-harness.d.ts +23 -0
  137. package/mdc-theming/prebuilt/deeppurple-amber.css +1 -0
  138. package/mdc-theming/prebuilt/indigo-pink.css +1 -1
  139. package/mdc-theming/prebuilt/pink-bluegrey.css +1 -0
  140. package/mdc-theming/prebuilt/purple-green.css +1 -0
  141. package/mdc-tooltip/_tooltip-theme.scss +1 -1
  142. package/package.json +16 -2
  143. package/esm2020/mdc-chips/grid-focus-key-manager.mjs +0 -21
  144. package/esm2020/mdc-chips/grid-key-manager.mjs +0 -218
  145. package/esm2020/mdc-list/list-styling.mjs +0 -92
  146. package/mdc-chips/grid-focus-key-manager.d.ts +0 -28
  147. package/mdc-chips/grid-key-manager.d.ts +0 -116
  148. package/mdc-list/list-styling.d.ts +0 -40
@@ -4,6 +4,7 @@
4
4
  @use '@material/theme/theme-color' as mdc-theme-color;
5
5
  @use '@material/theme/theme';
6
6
  @use 'sass:map';
7
+ @use 'sass:color';
7
8
  @use '../mdc-helpers/mdc-helpers';
8
9
  @use '../../material/core/typography/typography';
9
10
  @use '../../material/core/theming/theming';
@@ -12,15 +13,34 @@
12
13
 
13
14
  // Mixin that includes the checkbox theme styles with a given palette.
14
15
  // By default, the MDC checkbox always uses the `secondary` palette.
15
- @mixin private-checkbox-styles-with-color($color) {
16
- @include mdc-checkbox-theme.theme-deprecated(
17
- (
18
- checkmark-color: mdc-theme-color.prop-value(on-#{$color}),
19
- container-checked-color: $color,
20
- container-disabled-color: rgba(mdc-theme-color.prop-value(on-surface), 0.38),
21
- outline-color: rgba(mdc-theme-color.prop-value(on-surface), 0.54),
22
- )
23
- );
16
+ @mixin private-checkbox-styles-with-color($color, $mdcColor) {
17
+ $on-surface: mdc-theme-color.prop-value(on-surface);
18
+ $border-color: rgba($on-surface, color.opacity(mdc-checkbox-theme.$border-color));
19
+ $disabled-color: rgba($on-surface, color.opacity(mdc-checkbox-theme.$disabled-color));
20
+
21
+ @include mdc-checkbox-theme.theme((
22
+ selected-checkmark-color: mdc-theme-color.prop-value(on-#{$mdcColor}),
23
+
24
+ selected-focus-icon-color: $color,
25
+ selected-hover-icon-color: $color,
26
+ selected-hover-state-layer-color: $color,
27
+ selected-icon-color: $color,
28
+ selected-pressed-icon-color: $color,
29
+ unselected-focus-icon-color: $color,
30
+ unselected-hover-icon-color: $color,
31
+
32
+ selected-focus-state-layer-color: $on-surface,
33
+ selected-pressed-state-layer-color: $on-surface,
34
+ unselected-focus-state-layer-color: $on-surface,
35
+ unselected-hover-state-layer-color: $on-surface,
36
+ unselected-pressed-state-layer-color: $on-surface,
37
+
38
+ disabled-selected-icon-color: $disabled-color,
39
+ disabled-unselected-icon-color: $disabled-color,
40
+
41
+ unselected-icon-color: $border-color,
42
+ unselected-pressed-icon-color: $border-color,
43
+ ));
24
44
  }
25
45
 
26
46
  // Apply ripple colors to the MatRipple element and the MDC ripple element when the
@@ -47,21 +67,7 @@
47
67
  $accent: theming.get-color-from-palette(map.get($config, accent));
48
68
  $warn: theming.get-color-from-palette(map.get($config, warn));
49
69
 
50
- // Save original values of MDC global variables. We need to save these so we can restore the
51
- // variables to their original values and prevent unintended side effects from using this mixin.
52
- $orig-border-color: mdc-checkbox-theme.$border-color;
53
- $orig-disabled-color: mdc-checkbox-theme.$disabled-color;
54
-
55
70
  @include mdc-helpers.mat-using-mdc-theme($config) {
56
- mdc-checkbox-theme.$border-color: rgba(
57
- mdc-theme-color.prop-value(on-surface),
58
- 0.54
59
- );
60
- mdc-checkbox-theme.$disabled-color: rgba(
61
- mdc-theme-color.prop-value(on-surface),
62
- 0.26
63
- );
64
-
65
71
  .mat-mdc-checkbox {
66
72
  @include mdc-form-field.core-styles($query: mdc-helpers.$mat-theme-styles-query);
67
73
  @include ripple-theme.color((
@@ -78,25 +84,21 @@
78
84
  // class for accent and warn style, and applying the appropriate overrides below. Since we
79
85
  // don't use MDC's ripple, we also need to set the color for our replacement ripple.
80
86
  &.mat-primary {
81
- @include private-checkbox-styles-with-color(primary);
87
+ @include private-checkbox-styles-with-color($primary, primary);
82
88
  @include _selected-ripple-colors($primary, primary);
83
89
  }
84
90
 
85
91
  &.mat-accent {
86
- @include private-checkbox-styles-with-color(secondary);
92
+ @include private-checkbox-styles-with-color($accent, secondary);
87
93
  @include _selected-ripple-colors($accent, secondary);
88
94
  }
89
95
 
90
96
  &.mat-warn {
91
- @include private-checkbox-styles-with-color(error);
97
+ @include private-checkbox-styles-with-color($warn, error);
92
98
  @include _selected-ripple-colors($warn, error);
93
99
  }
94
100
  }
95
101
  }
96
-
97
- // Restore original values of MDC global variables.
98
- mdc-checkbox-theme.$border-color: $orig-border-color;
99
- mdc-checkbox-theme.$disabled-color: $orig-disabled-color;
100
102
  }
101
103
 
102
104
  @mixin typography($config-or-theme) {
@@ -1,93 +1,93 @@
1
- @use '@material/chips/deprecated' as mdc-chips;
1
+ @use '@material/chips/chip' as mdc-chip;
2
+ @use '@material/chips/chip-theme' as mdc-chip-theme;
3
+ @use '@material/chips/chip-set' as mdc-chip-set;
2
4
  @use '@material/theme/theme-color' as mdc-theme-color;
5
+ @use '@material/theme/color-palette' as mdc-color-palette;
3
6
  @use 'sass:color';
4
7
  @use 'sass:map';
5
8
  @use '../mdc-helpers/mdc-helpers';
6
9
  @use '../../material/core/typography/typography';
7
10
  @use '../../material/core/theming/theming';
8
11
 
9
- @mixin _selected-color($color) {
10
- @include mdc-chips.fill-color($color, $query: mdc-helpers.$mat-theme-styles-query);
11
- @include mdc-chips.ink-color(text-primary-on-dark, $query: mdc-helpers.$mat-theme-styles-query);
12
- @include mdc-chips.selected-ink-color-without-ripple_(
13
- text-primary-on-dark,
14
- $query: mdc-helpers.$mat-theme-styles-query
15
- );
16
- @include mdc-chips.leading-icon-color(text-primary-on-dark,
17
- $query: mdc-helpers.$mat-theme-styles-query);
18
- @include mdc-chips.trailing-icon-color(text-primary-on-dark,
19
- $query: mdc-helpers.$mat-theme-styles-query);
12
+ // Customizes the appearance of a chip. Note that ideally we would be doing this using the
13
+ // `theme-styles` mixin, however it has the following problems:
14
+ // 1. Some of MDC's base styles have **very** high specificity. E.g. setting the background of a
15
+ // non-selected, enabled chip uses a selector like `.chip:not(.selected):not(.disabled)` instead of
16
+ // just `.chip`. This specificity increase has a ripple effect over all other components that are
17
+ // built on top of ours, making overrides extremely difficult and brittle.
18
+ // 2. Including the individual mixins allows us to avoid a lot of unnecessary CSS (~35kb in the
19
+ // dev app theme).
20
+ @mixin _chip-variant($background, $foreground) {
21
+ @include mdc-chip-theme.container-color($background);
22
+ @include mdc-chip-theme.icon-color($foreground);
23
+ @include mdc-chip-theme.trailing-action-color($foreground);
24
+ @include mdc-chip-theme.checkmark-color($foreground);
25
+ @include mdc-chip-theme.text-label-color($foreground);
26
+
27
+ // Technically the avatar is only supposed to have an image, but we also allow for icons.
28
+ // Set the color so the icons inherit the correct color.
29
+ .mat-mdc-chip-avatar {
30
+ color: $foreground;
31
+ }
32
+ }
33
+
34
+ @mixin _colored-chip($palette) {
35
+ $background: theming.get-color-from-palette($palette);
36
+ $foreground: theming.get-color-from-palette($palette, default-contrast);
37
+
38
+ &.mat-mdc-chip-selected,
39
+ &.mat-mdc-chip-highlighted {
40
+ @include _chip-variant($background, $foreground);
41
+ }
20
42
  }
21
43
 
22
44
  @mixin color($config-or-theme) {
23
45
  $config: theming.get-color-config($config-or-theme);
24
- $primary: theming.get-color-from-palette(map.get($config, primary));
25
- $accent: theming.get-color-from-palette(map.get($config, accent));
26
- $warn: theming.get-color-from-palette(map.get($config, warn));
27
- $background: map.get($config, background);
28
- $unselected-background: theming.get-color-from-palette($background, unselected-chip);
29
-
30
- // Save original values of MDC global variables. We need to save these so we can restore the
31
- // variables to their original values and prevent unintended side effects from using this mixin.
32
- $orig-mdc-chips-fill-color-default: mdc-chips.$fill-color-default;
33
- $orig-mdc-chips-ink-color-default: mdc-chips.$ink-color-default;
34
- $orig-mdc-chips-icon-color: mdc-chips.$icon-color;
46
+ $primary: map.get($config, primary);
47
+ $accent: map.get($config, accent);
48
+ $warn: map.get($config, warn);
49
+ $foreground: map.get($config, foreground);
50
+ $is-dark: map.get($config, is-dark);
35
51
 
36
52
  @include mdc-helpers.mat-using-mdc-theme($config) {
37
- mdc-chips.$fill-color-default:
38
- color.mix(mdc-theme-color.prop-value(on-surface), mdc-theme-color.prop-value(surface), 12%);
39
- mdc-chips.$ink-color-default: rgba(mdc-theme-color.prop-value(on-surface), 0.87);
40
- mdc-chips.$icon-color: mdc-theme-color.prop-value(on-surface);
41
-
42
- @include mdc-chips.set-core-styles($query: mdc-helpers.$mat-theme-styles-query);
43
- @include mdc-chips.without-ripple($query: mdc-helpers.$mat-theme-styles-query);
53
+ .mat-mdc-standard-chip {
54
+ @include _chip-variant(
55
+ color.mix(mdc-theme-color.prop-value(on-surface), mdc-theme-color.prop-value(surface), 12%),
56
+ if($is-dark, mdc-color-palette.$grey-50, mdc-color-palette.$grey-900)
57
+ );
44
58
 
45
- .mat-mdc-chip {
46
- @include mdc-chips.fill-color-accessible($unselected-background,
47
- $query: mdc-helpers.$mat-theme-styles-query);
48
-
49
- // mdc-chip-fill-color-accessible includes mdc-chip-selected-ink-color which overrides the
50
- // opacity so selected chips always show a ripple.
51
- // Include the same mixins but use mdc-chip-selected-ink-color-without-ripple
52
59
  &.mat-primary {
53
- &.mdc-chip--selected, &.mat-mdc-chip-highlighted {
54
- @include _selected-color($primary);
55
- }
60
+ @include _colored-chip($primary);
56
61
  }
57
62
 
58
63
  &.mat-accent {
59
- &.mdc-chip--selected, &.mat-mdc-chip-highlighted {
60
- @include _selected-color($accent);
61
- }
64
+ @include _colored-chip($accent);
62
65
  }
63
66
 
64
67
  &.mat-warn {
65
- &.mdc-chip--selected, &.mat-mdc-chip-highlighted {
66
- @include _selected-color($warn);
67
- }
68
+ @include _colored-chip($warn);
68
69
  }
69
70
  }
70
71
  }
71
72
 
72
- // Restore original values of MDC global variables.
73
- mdc-chips.$fill-color-default: $orig-mdc-chips-fill-color-default;
74
- mdc-chips.$ink-color-default: $orig-mdc-chips-ink-color-default;
75
- mdc-chips.$icon-color: $orig-mdc-chips-icon-color;
73
+ .mat-mdc-chip-focus-overlay {
74
+ background: map.get($foreground, base);
75
+ }
76
76
  }
77
77
 
78
78
  @mixin typography($config-or-theme) {
79
79
  $config: typography.private-typography-to-2018-config(
80
80
  theming.get-typography-config($config-or-theme));
81
- @include mdc-chips.set-core-styles($query: mdc-helpers.$mat-typography-styles-query);
81
+ @include mdc-chip-set.core-styles($query: mdc-helpers.$mat-typography-styles-query);
82
82
  @include mdc-helpers.mat-using-mdc-typography($config) {
83
- @include mdc-chips.without-ripple($query: mdc-helpers.$mat-typography-styles-query);
83
+ @include mdc-chip.without-ripple-styles($query: mdc-helpers.$mat-typography-styles-query);
84
84
  }
85
85
  }
86
86
 
87
87
  @mixin density($config-or-theme) {
88
88
  $density-scale: theming.get-density-config($config-or-theme);
89
89
  .mat-mdc-chip {
90
- @include mdc-chips.density($density-scale, $query: mdc-helpers.$mat-base-styles-query);
90
+ @include mdc-chip-theme.density($density-scale, $query: mdc-helpers.$mat-base-styles-query);
91
91
  }
92
92
  }
93
93
 
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { AfterViewInit, ChangeDetectorRef, ElementRef, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
9
+ import { MDCChipActionAdapter, MDCChipActionFoundation } from '@material/chips';
10
+ import { CanDisable, HasTabIndex } from '@angular/material-experimental/mdc-core';
11
+ import * as i0 from "@angular/core";
12
+ declare const _MatChipActionMixinBase: import("@angular/material-experimental/mdc-core")._Constructor<HasTabIndex> & import("@angular/material-experimental/mdc-core")._AbstractConstructor<HasTabIndex> & import("@angular/material-experimental/mdc-core")._Constructor<CanDisable> & import("@angular/material-experimental/mdc-core")._AbstractConstructor<CanDisable> & {
13
+ new (): {};
14
+ };
15
+ /**
16
+ * Interactive element within a chip.
17
+ * @docs-private
18
+ */
19
+ export declare class MatChipAction extends _MatChipActionMixinBase implements AfterViewInit, OnDestroy, CanDisable, HasTabIndex, OnChanges {
20
+ _elementRef: ElementRef;
21
+ private _changeDetectorRef;
22
+ private _document;
23
+ private _foundation;
24
+ private _adapter;
25
+ /** Whether the action is interactive. */
26
+ isInteractive: boolean;
27
+ _handleClick(_event: MouseEvent): void;
28
+ _handleKeydown(event: KeyboardEvent): void;
29
+ protected _createFoundation(adapter: MDCChipActionAdapter): MDCChipActionFoundation;
30
+ constructor(_elementRef: ElementRef, _document: any, _changeDetectorRef: ChangeDetectorRef);
31
+ ngAfterViewInit(): void;
32
+ ngOnChanges(changes: SimpleChanges): void;
33
+ ngOnDestroy(): void;
34
+ focus(): void;
35
+ _getFoundation(): MDCChipActionFoundation;
36
+ _updateTabindex(value: number): void;
37
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatChipAction, never>;
38
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MatChipAction, "[matChipAction]", never, { "disabled": "disabled"; "tabIndex": "tabIndex"; "isInteractive": "isInteractive"; }, {}, never>;
39
+ }
40
+ export {};
@@ -5,18 +5,17 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
- import { Directionality } from '@angular/cdk/bidi';
9
8
  import { BooleanInput } from '@angular/cdk/coercion';
10
9
  import { AfterContentInit, AfterViewInit, ChangeDetectorRef, DoCheck, ElementRef, EventEmitter, OnDestroy, QueryList } from '@angular/core';
11
10
  import { ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';
12
11
  import { CanUpdateErrorState, ErrorStateMatcher } from '@angular/material-experimental/mdc-core';
13
12
  import { MatFormFieldControl } from '@angular/material-experimental/mdc-form-field';
13
+ import { LiveAnnouncer } from '@angular/cdk/a11y';
14
14
  import { MatChipTextControl } from './chip-text-control';
15
15
  import { Observable } from 'rxjs';
16
16
  import { MatChipEvent } from './chip';
17
17
  import { MatChipRow } from './chip-row';
18
18
  import { MatChipSet } from './chip-set';
19
- import { GridFocusKeyManager } from './grid-focus-key-manager';
20
19
  import * as i0 from "@angular/core";
21
20
  /** Change event object that is emitted when the chip grid value has changed. */
22
21
  export declare class MatChipGridChange {
@@ -40,7 +39,7 @@ declare class MatChipGridBase extends MatChipSet {
40
39
  _parentFormGroup: FormGroupDirective;
41
40
  /** @docs-private */
42
41
  ngControl: NgControl;
43
- constructor(_elementRef: ElementRef, _changeDetectorRef: ChangeDetectorRef, _dir: Directionality, _defaultErrorStateMatcher: ErrorStateMatcher, _parentForm: NgForm, _parentFormGroup: FormGroupDirective,
42
+ constructor(liveAnnouncer: LiveAnnouncer, document: any, elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, _defaultErrorStateMatcher: ErrorStateMatcher, _parentForm: NgForm, _parentFormGroup: FormGroupDirective,
44
43
  /** @docs-private */
45
44
  ngControl: NgControl);
46
45
  }
@@ -55,10 +54,6 @@ export declare class MatChipGrid extends _MatChipGridMixinBase implements AfterC
55
54
  * @docs-private
56
55
  */
57
56
  readonly controlType: string;
58
- /** Subscription to focus changes in the chips. */
59
- private _chipFocusSubscription;
60
- /** Subscription to blur changes in the chips. */
61
- private _chipBlurSubscription;
62
57
  /** The chip input to add more chips */
63
58
  protected _chipInput: MatChipTextControl;
64
59
  /**
@@ -71,8 +66,6 @@ export declare class MatChipGrid extends _MatChipGridMixinBase implements AfterC
71
66
  * @docs-private
72
67
  */
73
68
  _onChange: (value: any) => void;
74
- /** The GridFocusKeyManager which handles focus. */
75
- _keyManager: GridFocusKeyManager;
76
69
  /**
77
70
  * Implemented as part of MatFormFieldControl.
78
71
  * @docs-private
@@ -134,7 +127,7 @@ export declare class MatChipGrid extends _MatChipGridMixinBase implements AfterC
134
127
  */
135
128
  readonly valueChange: EventEmitter<any>;
136
129
  _chips: QueryList<MatChipRow>;
137
- constructor(_elementRef: ElementRef, _changeDetectorRef: ChangeDetectorRef, _dir: Directionality, _parentForm: NgForm, _parentFormGroup: FormGroupDirective, _defaultErrorStateMatcher: ErrorStateMatcher, ngControl: NgControl);
130
+ constructor(liveAnnouncer: LiveAnnouncer, document: any, elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, parentForm: NgForm, parentFormGroup: FormGroupDirective, defaultErrorStateMatcher: ErrorStateMatcher, ngControl: NgControl);
138
131
  ngAfterContentInit(): void;
139
132
  ngAfterViewInit(): void;
140
133
  ngDoCheck(): void;
@@ -183,19 +176,10 @@ export declare class MatChipGrid extends _MatChipGridMixinBase implements AfterC
183
176
  * user to tab out of it. This prevents the grid from capturing focus and redirecting
184
177
  * it back to the first chip, creating a focus trap, if it user tries to tab away.
185
178
  */
186
- _allowFocusEscape(): void;
179
+ protected _allowFocusEscape(): void;
187
180
  /** Handles custom keyboard events. */
188
181
  _keydown(event: KeyboardEvent): void;
189
- /** Unsubscribes from all chip events. */
190
- protected _dropSubscriptions(): void;
191
- /** Subscribes to events on the child chips. */
192
- protected _subscribeToChipEvents(): void;
193
- /** Initializes the key manager to manage focus. */
194
- private _initKeyManager;
195
- /** Subscribes to chip focus events. */
196
- private _listenToChipsFocus;
197
- /** Subscribes to chip blur events. */
198
- private _listenToChipsBlur;
182
+ _focusLastChip(): void;
199
183
  /** Emits change event to set the model value. */
200
184
  private _propagateChanges;
201
185
  /** Mark the field as touched */
@@ -206,7 +190,7 @@ export declare class MatChipGrid extends _MatChipGridMixinBase implements AfterC
206
190
  private _updateFocusForDestroyedChips;
207
191
  /** Focus input element. */
208
192
  private _focusInput;
209
- static ɵfac: i0.ɵɵFactoryDeclaration<MatChipGrid, [null, null, { optional: true; }, { optional: true; }, { optional: true; }, null, { optional: true; self: true; }]>;
193
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatChipGrid, [null, null, null, null, { optional: true; }, { optional: true; }, null, { optional: true; self: true; }]>;
210
194
  static ɵcmp: i0.ɵɵComponentDeclaration<MatChipGrid, "mat-chip-grid", never, { "tabIndex": "tabIndex"; "disabled": "disabled"; "placeholder": "placeholder"; "required": "required"; "value": "value"; "errorStateMatcher": "errorStateMatcher"; }, { "change": "change"; "valueChange": "valueChange"; }, ["_chips"], ["*"]>;
211
195
  }
212
196
  export {};
@@ -5,9 +5,9 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
- import { ChangeDetectorRef, ElementRef, InjectionToken, OnDestroy } from '@angular/core';
9
- import { CanDisable, HasTabIndex } from '@angular/material-experimental/mdc-core';
10
- import { Subject } from 'rxjs';
8
+ import { InjectionToken } from '@angular/core';
9
+ import { MDCChipActionAdapter, MDCChipTrailingActionFoundation } from '@material/chips';
10
+ import { MatChipAction } from './chip-action';
11
11
  import * as i0 from "@angular/core";
12
12
  /**
13
13
  * Injection token that can be used to reference instances of `MatChipAvatar`. It serves as
@@ -20,11 +20,6 @@ export declare const MAT_CHIP_AVATAR: InjectionToken<MatChipAvatar>;
20
20
  * @docs-private
21
21
  */
22
22
  export declare class MatChipAvatar {
23
- private _changeDetectorRef;
24
- private _elementRef;
25
- constructor(_changeDetectorRef: ChangeDetectorRef, _elementRef: ElementRef<HTMLElement>);
26
- /** Sets whether the given CSS class should be applied to the leading icon. */
27
- setClass(cssClass: string, active: boolean): void;
28
23
  static ɵfac: i0.ɵɵFactoryDeclaration<MatChipAvatar, never>;
29
24
  static ɵdir: i0.ɵɵDirectiveDeclaration<MatChipAvatar, "mat-chip-avatar, [matChipAvatar]", never, {}, {}, never>;
30
25
  }
@@ -38,16 +33,13 @@ export declare const MAT_CHIP_TRAILING_ICON: InjectionToken<MatChipTrailingIcon>
38
33
  * Directive to add CSS classes to and configure attributes for chip trailing icon.
39
34
  * @docs-private
40
35
  */
41
- export declare class MatChipTrailingIcon implements OnDestroy {
42
- _elementRef: ElementRef;
43
- private _foundation;
44
- private _adapter;
45
- constructor(_elementRef: ElementRef);
46
- ngOnDestroy(): void;
47
- focus(): void;
48
- /** Sets an attribute on the icon. */
49
- setAttribute(name: string, value: string): void;
50
- isNavigable(): boolean;
36
+ export declare class MatChipTrailingIcon extends MatChipAction {
37
+ /**
38
+ * MDC considers all trailing actions as a remove icon,
39
+ * but we support non-interactive trailing icons.
40
+ */
41
+ isInteractive: boolean;
42
+ protected _createFoundation(adapter: MDCChipActionAdapter): MDCChipTrailingActionFoundation;
51
43
  static ɵfac: i0.ɵɵFactoryDeclaration<MatChipTrailingIcon, never>;
52
44
  static ɵdir: i0.ɵɵDirectiveDeclaration<MatChipTrailingIcon, "mat-chip-trailing-icon, [matChipTrailingIcon]", never, {}, {}, never>;
53
45
  }
@@ -57,14 +49,6 @@ export declare class MatChipTrailingIcon implements OnDestroy {
57
49
  * retention of the class and its directive metadata.
58
50
  */
59
51
  export declare const MAT_CHIP_REMOVE: InjectionToken<MatChipRemove>;
60
- /**
61
- * Boilerplate for applying mixins to MatChipRemove.
62
- * @docs-private
63
- */
64
- declare class MatChipRemoveBase extends MatChipTrailingIcon {
65
- constructor(elementRef: ElementRef);
66
- }
67
- declare const _MatChipRemoveMixinBase: import("@angular/material-experimental/mdc-core")._Constructor<HasTabIndex> & import("@angular/material-experimental/mdc-core")._AbstractConstructor<HasTabIndex> & import("@angular/material-experimental/mdc-core")._Constructor<CanDisable> & import("@angular/material-experimental/mdc-core")._AbstractConstructor<CanDisable> & typeof MatChipRemoveBase;
68
52
  /**
69
53
  * Directive to remove the parent chip when the trailing icon is clicked or
70
54
  * when the ENTER key is pressed on it.
@@ -80,17 +64,10 @@ declare const _MatChipRemoveMixinBase: import("@angular/material-experimental/md
80
64
  * </mat-chip>
81
65
  * ```
82
66
  */
83
- export declare class MatChipRemove extends _MatChipRemoveMixinBase implements CanDisable, HasTabIndex {
84
- /**
85
- * Emits when the user interacts with the icon.
86
- * @docs-private
87
- */
88
- readonly interaction: Subject<MouseEvent | KeyboardEvent>;
89
- constructor(elementRef: ElementRef);
90
- /** Emits a MouseEvent when the user clicks on the remove icon. */
67
+ export declare class MatChipRemove extends MatChipAction {
68
+ protected _createFoundation(adapter: MDCChipActionAdapter): MDCChipTrailingActionFoundation;
91
69
  _handleClick(event: MouseEvent): void;
92
- focus(): void;
70
+ _handleKeydown(event: KeyboardEvent): void;
93
71
  static ɵfac: i0.ɵɵFactoryDeclaration<MatChipRemove, never>;
94
- static ɵdir: i0.ɵɵDirectiveDeclaration<MatChipRemove, "[matChipRemove]", never, { "disabled": "disabled"; "tabIndex": "tabIndex"; }, {}, never>;
72
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MatChipRemove, "[matChipRemove]", never, {}, {}, never>;
95
73
  }
96
- export {};
@@ -5,13 +5,11 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
- import { FocusKeyManager } from '@angular/cdk/a11y';
9
- import { Directionality } from '@angular/cdk/bidi';
10
8
  import { BooleanInput } from '@angular/cdk/coercion';
11
- import { AfterContentInit, ChangeDetectorRef, ElementRef, EventEmitter, QueryList } from '@angular/core';
9
+ import { AfterContentInit, EventEmitter, OnDestroy, QueryList } from '@angular/core';
12
10
  import { ControlValueAccessor } from '@angular/forms';
13
11
  import { Observable } from 'rxjs';
14
- import { MatChip, MatChipEvent } from './chip';
12
+ import { MatChipEvent } from './chip';
15
13
  import { MatChipOption, MatChipSelectionChange } from './chip-option';
16
14
  import { MatChipSet } from './chip-set';
17
15
  import * as i0 from "@angular/core";
@@ -37,15 +35,7 @@ export declare const MAT_CHIP_LISTBOX_CONTROL_VALUE_ACCESSOR: any;
37
35
  * An extension of the MatChipSet component that supports chip selection.
38
36
  * Used with MatChipOption chips.
39
37
  */
40
- export declare class MatChipListbox extends MatChipSet implements AfterContentInit, ControlValueAccessor {
41
- /** Subscription to selection changes in the chips. */
42
- private _chipSelectionSubscription;
43
- /** Subscription to blur changes in the chips. */
44
- private _chipBlurSubscription;
45
- /** Subscription to focus changes in the chips. */
46
- private _chipFocusSubscription;
47
- /** The FocusKeyManager which handles focus. */
48
- _keyManager: FocusKeyManager<MatChip>;
38
+ export declare class MatChipListbox extends MatChipSet implements AfterContentInit, OnDestroy, ControlValueAccessor {
49
39
  /**
50
40
  * Function when touched. Set as part of ControlValueAccessor implementation.
51
41
  * @docs-private
@@ -100,7 +90,6 @@ export declare class MatChipListbox extends MatChipSet implements AfterContentIn
100
90
  /** Event emitted when the selected chip listbox value has been changed by the user. */
101
91
  readonly change: EventEmitter<MatChipListboxChange>;
102
92
  _chips: QueryList<MatChipOption>;
103
- constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, _dir: Directionality);
104
93
  ngAfterContentInit(): void;
105
94
  /**
106
95
  * Focuses the first selected chip in this chip listbox, or the first non-disabled chip when there
@@ -129,19 +118,8 @@ export declare class MatChipListbox extends MatChipSet implements AfterContentIn
129
118
  setDisabledState(isDisabled: boolean): void;
130
119
  /** Selects all chips with value. */
131
120
  _setSelectionByValue(value: any, isUserInput?: boolean): void;
132
- /** Selects or deselects a chip by id. */
133
- _setSelected(index: number, selected: boolean): void;
134
121
  /** When blurred, marks the field as touched when focus moved outside the chip listbox. */
135
122
  _blur(): void;
136
- /**
137
- * Removes the `tabindex` from the chip listbox and resets it back afterwards, allowing the
138
- * user to tab out of it. This prevents the listbox from capturing focus and redirecting
139
- * it back to the first chip, creating a focus trap, if it user tries to tab away.
140
- */
141
- _allowFocusEscape(): void;
142
- /**
143
- * Handles custom keyboard shortcuts, and passes other keyboard events to the keyboard manager.
144
- */
145
123
  _keydown(event: KeyboardEvent): void;
146
124
  /** Marks the field as touched */
147
125
  private _markAsTouched;
@@ -163,27 +141,13 @@ export declare class MatChipListbox extends MatChipSet implements AfterContentIn
163
141
  private _selectValue;
164
142
  /** Syncs the chip-listbox selection state with the individual chips. */
165
143
  private _syncListboxProperties;
166
- /** Sets the mdc classes for single vs multi selection. */
167
- private _updateMdcSelectionClasses;
168
- /** Initializes the key manager to manage focus. */
169
- private _initKeyManager;
170
144
  /** Returns the first selected chip in this listbox, or undefined if no chips are selected. */
171
145
  private _getFirstSelectedChip;
172
- /** Unsubscribes from all chip events. */
173
- protected _dropSubscriptions(): void;
174
- /** Subscribes to events on the child chips. */
175
- protected _subscribeToChipEvents(): void;
176
- /** Subscribes to chip focus events. */
177
- private _listenToChipsFocus;
178
- /** Subscribes to chip blur events. */
179
- private _listenToChipsBlur;
180
- /** Subscribes to selection changes in the option chips. */
181
- private _listenToChipsSelection;
182
146
  /**
183
147
  * If the amount of chips changed, we need to update the
184
148
  * key manager state and focus the next closest chip.
185
149
  */
186
150
  private _updateFocusForDestroyedChips;
187
- static ɵfac: i0.ɵɵFactoryDeclaration<MatChipListbox, [null, null, { optional: true; }]>;
151
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatChipListbox, never>;
188
152
  static ɵcmp: i0.ɵɵComponentDeclaration<MatChipListbox, "mat-chip-listbox", never, { "tabIndex": "tabIndex"; "multiple": "multiple"; "ariaOrientation": "aria-orientation"; "selectable": "selectable"; "compareWith": "compareWith"; "required": "required"; "value": "value"; }, { "change": "change"; }, ["_chips"], ["*"]>;
189
153
  }
@@ -6,7 +6,8 @@
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
8
  import { BooleanInput } from '@angular/cdk/coercion';
9
- import { EventEmitter, AfterContentInit } from '@angular/core';
9
+ import { EventEmitter, AfterViewInit, OnInit } from '@angular/core';
10
+ import { ActionInteractionEvent } from '@material/chips';
10
11
  import { MatChip } from './chip';
11
12
  import * as i0 from "@angular/core";
12
13
  /** Event object emitted by MatChipOption when selected or deselected. */
@@ -29,7 +30,14 @@ export declare class MatChipSelectionChange {
29
30
  * An extension of the MatChip component that supports chip selection.
30
31
  * Used with MatChipListbox.
31
32
  */
32
- export declare class MatChipOption extends MatChip implements AfterContentInit {
33
+ export declare class MatChipOption extends MatChip implements OnInit, AfterViewInit {
34
+ /** Whether the component is done initializing. */
35
+ private _isInitialized;
36
+ /**
37
+ * Selected state that was assigned before the component was initializing
38
+ * and which needs to be synced back up with the foundation.
39
+ */
40
+ private _pendingSelectedState;
33
41
  /** Whether the chip list is selectable. */
34
42
  chipListSelectable: boolean;
35
43
  /** Whether the chip list is in multi-selection mode. */
@@ -53,7 +61,8 @@ export declare class MatChipOption extends MatChip implements AfterContentInit {
53
61
  protected basicChipAttrName: string;
54
62
  /** Emitted when the chip is selected or deselected. */
55
63
  readonly selectionChange: EventEmitter<MatChipSelectionChange>;
56
- ngAfterContentInit(): void;
64
+ ngOnInit(): void;
65
+ ngAfterViewInit(): void;
57
66
  /** Selects the chip. */
58
67
  select(): void;
59
68
  /** Deselects the chip. */
@@ -62,16 +71,11 @@ export declare class MatChipOption extends MatChip implements AfterContentInit {
62
71
  selectViaInteraction(): void;
63
72
  /** Toggles the current selected state of this chip. */
64
73
  toggleSelected(isUserInput?: boolean): boolean;
65
- /** Emits a selection change event. */
66
- private _dispatchSelectionChange;
67
- /** Allows for programmatic focusing of the chip. */
68
- focus(): void;
69
74
  /** Resets the state of the chip when it loses focus. */
70
75
  _blur(): void;
71
- /** Handles click events on the chip. */
72
- _click(event: MouseEvent): void;
73
- /** Handles custom key presses. */
74
- _keydown(event: KeyboardEvent): void;
76
+ protected _onChipInteraction(event: ActionInteractionEvent): void;
77
+ _hasLeadingGraphic(): import("@angular/material-experimental/mdc-chips").MatChipAvatar;
78
+ private _setSelectedState;
75
79
  static ɵfac: i0.ɵɵFactoryDeclaration<MatChipOption, never>;
76
80
  static ɵcmp: i0.ɵɵComponentDeclaration<MatChipOption, "mat-basic-chip-option, mat-chip-option", never, { "color": "color"; "disableRipple": "disableRipple"; "tabIndex": "tabIndex"; "selectable": "selectable"; "selected": "selected"; }, { "selectionChange": "selectionChange"; }, never, ["mat-chip-avatar, [matChipAvatar]", "*", "mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]"]>;
77
81
  }