material-list.umd.js 87 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402
  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. (function (global, factory) {
  9. typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/material/core'), require('rxjs'), require('rxjs/operators'), require('@angular/cdk/a11y'), require('@angular/cdk/coercion'), require('@angular/cdk/collections'), require('@angular/cdk/keycodes'), require('@angular/forms'), require('@angular/common'), require('@angular/material/divider')) :
  10. typeof define === 'function' && define.amd ? define('@angular/material/list', ['exports', '@angular/core', '@angular/material/core', 'rxjs', 'rxjs/operators', '@angular/cdk/a11y', '@angular/cdk/coercion', '@angular/cdk/collections', '@angular/cdk/keycodes', '@angular/forms', '@angular/common', '@angular/material/divider'], factory) :
  11. (factory((global.ng = global.ng || {}, global.ng.material = global.ng.material || {}, global.ng.material.list = {}),global.ng.core,global.ng.material.core,global.rxjs,global.rxjs.operators,global.ng.cdk.a11y,global.ng.cdk.coercion,global.ng.cdk.collections,global.ng.cdk.keycodes,global.ng.forms,global.ng.common,global.ng.material.divider));
  12. }(this, (function (exports,core,core$1,rxjs,operators,a11y,coercion,collections,keycodes,forms,common,divider) { 'use strict';
  13. /*! *****************************************************************************
  14. Copyright (c) Microsoft Corporation. All rights reserved.
  15. Licensed under the Apache License, Version 2.0 (the "License"); you may not use
  16. this file except in compliance with the License. You may obtain a copy of the
  17. License at http://www.apache.org/licenses/LICENSE-2.0
  18. THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  19. KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
  20. WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
  21. MERCHANTABLITY OR NON-INFRINGEMENT.
  22. See the Apache Version 2.0 License for specific language governing permissions
  23. and limitations under the License.
  24. ***************************************************************************** */
  25. /* global Reflect, Promise */
  26. var extendStatics = function(d, b) {
  27. extendStatics = Object.setPrototypeOf ||
  28. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  29. function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
  30. return extendStatics(d, b);
  31. };
  32. function __extends(d, b) {
  33. extendStatics(d, b);
  34. function __() { this.constructor = d; }
  35. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  36. }
  37. /**
  38. * @fileoverview added by tsickle
  39. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  40. */
  41. // Boilerplate for applying mixins to MatList.
  42. /**
  43. * \@docs-private
  44. */
  45. var
  46. // Boilerplate for applying mixins to MatList.
  47. /**
  48. * \@docs-private
  49. */
  50. MatListBase = /** @class */ (function () {
  51. function MatListBase() {
  52. }
  53. return MatListBase;
  54. }());
  55. /** @type {?} */
  56. var _MatListMixinBase = core$1.mixinDisableRipple(MatListBase);
  57. // Boilerplate for applying mixins to MatListItem.
  58. /**
  59. * \@docs-private
  60. */
  61. var
  62. // Boilerplate for applying mixins to MatListItem.
  63. /**
  64. * \@docs-private
  65. */
  66. MatListItemBase = /** @class */ (function () {
  67. function MatListItemBase() {
  68. }
  69. return MatListItemBase;
  70. }());
  71. /** @type {?} */
  72. var _MatListItemMixinBase = core$1.mixinDisableRipple(MatListItemBase);
  73. var MatNavList = /** @class */ (function (_super) {
  74. __extends(MatNavList, _super);
  75. function MatNavList() {
  76. var _this = _super !== null && _super.apply(this, arguments) || this;
  77. /**
  78. * Emits when the state of the list changes.
  79. */
  80. _this._stateChanges = new rxjs.Subject();
  81. return _this;
  82. }
  83. /**
  84. * @return {?}
  85. */
  86. MatNavList.prototype.ngOnChanges = /**
  87. * @return {?}
  88. */
  89. function () {
  90. this._stateChanges.next();
  91. };
  92. /**
  93. * @return {?}
  94. */
  95. MatNavList.prototype.ngOnDestroy = /**
  96. * @return {?}
  97. */
  98. function () {
  99. this._stateChanges.complete();
  100. };
  101. MatNavList.decorators = [
  102. { type: core.Component, args: [{selector: 'mat-nav-list',
  103. exportAs: 'matNavList',
  104. host: {
  105. 'role': 'navigation',
  106. 'class': 'mat-nav-list mat-list-base'
  107. },
  108. template: "<ng-content></ng-content>",
  109. styles: [".mat-subheader{display:flex;box-sizing:border-box;padding:16px;align-items:center}.mat-list-base .mat-subheader{margin:0}.mat-list-base{padding-top:8px;display:block;-webkit-tap-highlight-color:transparent}.mat-list-base .mat-subheader{height:48px;line-height:16px}.mat-list-base .mat-subheader:first-child{margin-top:-8px}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{display:block;height:48px;-webkit-tap-highlight-color:transparent;width:100%;padding:0}.mat-list-base .mat-list-item .mat-list-item-content,.mat-list-base .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base .mat-list-item .mat-list-item-content-reverse,.mat-list-base .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base .mat-list-item .mat-list-item-ripple,.mat-list-base .mat-list-option .mat-list-item-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:56px}.mat-list-base .mat-list-item.mat-2-line,.mat-list-base .mat-list-option.mat-2-line{height:72px}.mat-list-base .mat-list-item.mat-3-line,.mat-list-base .mat-list-option.mat-3-line{height:88px}.mat-list-base .mat-list-item.mat-multi-line,.mat-list-base .mat-list-option.mat-multi-line{height:auto}.mat-list-base .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base .mat-list-item .mat-list-text,.mat-list-base .mat-list-option .mat-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base .mat-list-item .mat-list-text>*,.mat-list-base .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-list-base .mat-list-item .mat-list-text:empty,.mat-list-base .mat-list-option .mat-list-text:empty{display:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base .mat-list-item .mat-list-avatar,.mat-list-base .mat-list-option .mat-list-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;object-fit:cover}.mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:72px;width:calc(100% - 72px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:72px}.mat-list-base .mat-list-item .mat-list-icon,.mat-list-base .mat-list-option .mat-list-icon{flex-shrink:0;width:24px;height:24px;font-size:24px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:64px;width:calc(100% - 64px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:64px}.mat-list-base .mat-list-item .mat-divider,.mat-list-base .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base .mat-list-item .mat-divider,[dir=rtl] .mat-list-base .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-list-base[dense]{padding-top:4px;display:block}.mat-list-base[dense] .mat-subheader{height:40px;line-height:8px}.mat-list-base[dense] .mat-subheader:first-child{margin-top:-4px}.mat-list-base[dense] .mat-list-item,.mat-list-base[dense] .mat-list-option{display:block;height:40px;-webkit-tap-highlight-color:transparent;width:100%;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-item-content,.mat-list-base[dense] .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base[dense] .mat-list-item .mat-list-item-content-reverse,.mat-list-base[dense] .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base[dense] .mat-list-item .mat-list-item-ripple,.mat-list-base[dense] .mat-list-option .mat-list-item-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar{height:48px}.mat-list-base[dense] .mat-list-item.mat-2-line,.mat-list-base[dense] .mat-list-option.mat-2-line{height:60px}.mat-list-base[dense] .mat-list-item.mat-3-line,.mat-list-base[dense] .mat-list-option.mat-3-line{height:76px}.mat-list-base[dense] .mat-list-item.mat-multi-line,.mat-list-base[dense] .mat-list-option.mat-multi-line{height:auto}.mat-list-base[dense] .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base[dense] .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base[dense] .mat-list-item .mat-list-text,.mat-list-base[dense] .mat-list-option .mat-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-text>*,.mat-list-base[dense] .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-list-base[dense] .mat-list-item .mat-list-text:empty,.mat-list-base[dense] .mat-list-option .mat-list-text:empty{display:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base[dense] .mat-list-item .mat-list-avatar,.mat-list-base[dense] .mat-list-option .mat-list-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;object-fit:cover}.mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:68px;width:calc(100% - 68px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:68px}.mat-list-base[dense] .mat-list-item .mat-list-icon,.mat-list-base[dense] .mat-list-option .mat-list-icon{flex-shrink:0;width:20px;height:20px;font-size:20px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:60px;width:calc(100% - 60px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:60px}.mat-list-base[dense] .mat-list-item .mat-divider,.mat-list-base[dense] .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-divider,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base[dense] .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-nav-list a{text-decoration:none;color:inherit}.mat-nav-list .mat-list-item{cursor:pointer;outline:0}mat-action-list button{background:0 0;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:transparent;text-align:left}[dir=rtl] mat-action-list button{text-align:right}mat-action-list button::-moz-focus-inner{border:0}mat-action-list .mat-list-item{cursor:pointer;outline:inherit}.mat-list-option:not(.mat-list-item-disabled){cursor:pointer;outline:0}@media (-ms-high-contrast:active){.mat-selection-list:focus{outline-style:dotted}.mat-list-option:focus,.mat-list-option:hover,.mat-nav-list .mat-list-item:focus,.mat-nav-list .mat-list-item:hover,mat-action-list .mat-list-item:focus,mat-action-list .mat-list-item:hover{outline:dotted 1px}}@media (hover:none){.mat-action-list .mat-list-item:not(.mat-list-item-disabled):hover,.mat-list-option:not(.mat-list-item-disabled):hover,.mat-nav-list .mat-list-item:not(.mat-list-item-disabled):hover{background:0 0}}"],
  110. inputs: ['disableRipple'],
  111. encapsulation: core.ViewEncapsulation.None,
  112. changeDetection: core.ChangeDetectionStrategy.OnPush,
  113. },] },
  114. ];
  115. return MatNavList;
  116. }(_MatListMixinBase));
  117. var MatList = /** @class */ (function (_super) {
  118. __extends(MatList, _super);
  119. function MatList(_elementRef) {
  120. var _this = _super.call(this) || this;
  121. _this._elementRef = _elementRef;
  122. /**
  123. * Emits when the state of the list changes.
  124. */
  125. _this._stateChanges = new rxjs.Subject();
  126. if (_this._getListType() === 'action-list') {
  127. _elementRef.nativeElement.classList.add('mat-action-list');
  128. }
  129. return _this;
  130. }
  131. /**
  132. * @return {?}
  133. */
  134. MatList.prototype._getListType = /**
  135. * @return {?}
  136. */
  137. function () {
  138. /** @type {?} */
  139. var nodeName = this._elementRef.nativeElement.nodeName.toLowerCase();
  140. if (nodeName === 'mat-list') {
  141. return 'list';
  142. }
  143. if (nodeName === 'mat-action-list') {
  144. return 'action-list';
  145. }
  146. return null;
  147. };
  148. /**
  149. * @return {?}
  150. */
  151. MatList.prototype.ngOnChanges = /**
  152. * @return {?}
  153. */
  154. function () {
  155. this._stateChanges.next();
  156. };
  157. /**
  158. * @return {?}
  159. */
  160. MatList.prototype.ngOnDestroy = /**
  161. * @return {?}
  162. */
  163. function () {
  164. this._stateChanges.complete();
  165. };
  166. MatList.decorators = [
  167. { type: core.Component, args: [{selector: 'mat-list, mat-action-list',
  168. exportAs: 'matList',
  169. template: "<ng-content></ng-content>",
  170. host: {
  171. 'class': 'mat-list mat-list-base'
  172. },
  173. styles: [".mat-subheader{display:flex;box-sizing:border-box;padding:16px;align-items:center}.mat-list-base .mat-subheader{margin:0}.mat-list-base{padding-top:8px;display:block;-webkit-tap-highlight-color:transparent}.mat-list-base .mat-subheader{height:48px;line-height:16px}.mat-list-base .mat-subheader:first-child{margin-top:-8px}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{display:block;height:48px;-webkit-tap-highlight-color:transparent;width:100%;padding:0}.mat-list-base .mat-list-item .mat-list-item-content,.mat-list-base .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base .mat-list-item .mat-list-item-content-reverse,.mat-list-base .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base .mat-list-item .mat-list-item-ripple,.mat-list-base .mat-list-option .mat-list-item-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:56px}.mat-list-base .mat-list-item.mat-2-line,.mat-list-base .mat-list-option.mat-2-line{height:72px}.mat-list-base .mat-list-item.mat-3-line,.mat-list-base .mat-list-option.mat-3-line{height:88px}.mat-list-base .mat-list-item.mat-multi-line,.mat-list-base .mat-list-option.mat-multi-line{height:auto}.mat-list-base .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base .mat-list-item .mat-list-text,.mat-list-base .mat-list-option .mat-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base .mat-list-item .mat-list-text>*,.mat-list-base .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-list-base .mat-list-item .mat-list-text:empty,.mat-list-base .mat-list-option .mat-list-text:empty{display:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base .mat-list-item .mat-list-avatar,.mat-list-base .mat-list-option .mat-list-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;object-fit:cover}.mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:72px;width:calc(100% - 72px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:72px}.mat-list-base .mat-list-item .mat-list-icon,.mat-list-base .mat-list-option .mat-list-icon{flex-shrink:0;width:24px;height:24px;font-size:24px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:64px;width:calc(100% - 64px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:64px}.mat-list-base .mat-list-item .mat-divider,.mat-list-base .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base .mat-list-item .mat-divider,[dir=rtl] .mat-list-base .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-list-base[dense]{padding-top:4px;display:block}.mat-list-base[dense] .mat-subheader{height:40px;line-height:8px}.mat-list-base[dense] .mat-subheader:first-child{margin-top:-4px}.mat-list-base[dense] .mat-list-item,.mat-list-base[dense] .mat-list-option{display:block;height:40px;-webkit-tap-highlight-color:transparent;width:100%;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-item-content,.mat-list-base[dense] .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base[dense] .mat-list-item .mat-list-item-content-reverse,.mat-list-base[dense] .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base[dense] .mat-list-item .mat-list-item-ripple,.mat-list-base[dense] .mat-list-option .mat-list-item-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar{height:48px}.mat-list-base[dense] .mat-list-item.mat-2-line,.mat-list-base[dense] .mat-list-option.mat-2-line{height:60px}.mat-list-base[dense] .mat-list-item.mat-3-line,.mat-list-base[dense] .mat-list-option.mat-3-line{height:76px}.mat-list-base[dense] .mat-list-item.mat-multi-line,.mat-list-base[dense] .mat-list-option.mat-multi-line{height:auto}.mat-list-base[dense] .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base[dense] .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base[dense] .mat-list-item .mat-list-text,.mat-list-base[dense] .mat-list-option .mat-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-text>*,.mat-list-base[dense] .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-list-base[dense] .mat-list-item .mat-list-text:empty,.mat-list-base[dense] .mat-list-option .mat-list-text:empty{display:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base[dense] .mat-list-item .mat-list-avatar,.mat-list-base[dense] .mat-list-option .mat-list-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;object-fit:cover}.mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:68px;width:calc(100% - 68px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:68px}.mat-list-base[dense] .mat-list-item .mat-list-icon,.mat-list-base[dense] .mat-list-option .mat-list-icon{flex-shrink:0;width:20px;height:20px;font-size:20px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:60px;width:calc(100% - 60px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:60px}.mat-list-base[dense] .mat-list-item .mat-divider,.mat-list-base[dense] .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-divider,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base[dense] .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-nav-list a{text-decoration:none;color:inherit}.mat-nav-list .mat-list-item{cursor:pointer;outline:0}mat-action-list button{background:0 0;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:transparent;text-align:left}[dir=rtl] mat-action-list button{text-align:right}mat-action-list button::-moz-focus-inner{border:0}mat-action-list .mat-list-item{cursor:pointer;outline:inherit}.mat-list-option:not(.mat-list-item-disabled){cursor:pointer;outline:0}@media (-ms-high-contrast:active){.mat-selection-list:focus{outline-style:dotted}.mat-list-option:focus,.mat-list-option:hover,.mat-nav-list .mat-list-item:focus,.mat-nav-list .mat-list-item:hover,mat-action-list .mat-list-item:focus,mat-action-list .mat-list-item:hover{outline:dotted 1px}}@media (hover:none){.mat-action-list .mat-list-item:not(.mat-list-item-disabled):hover,.mat-list-option:not(.mat-list-item-disabled):hover,.mat-nav-list .mat-list-item:not(.mat-list-item-disabled):hover{background:0 0}}"],
  174. inputs: ['disableRipple'],
  175. encapsulation: core.ViewEncapsulation.None,
  176. changeDetection: core.ChangeDetectionStrategy.OnPush,
  177. },] },
  178. ];
  179. /** @nocollapse */
  180. MatList.ctorParameters = function () { return [
  181. { type: core.ElementRef }
  182. ]; };
  183. return MatList;
  184. }(_MatListMixinBase));
  185. /**
  186. * Directive whose purpose is to add the mat- CSS styling to this selector.
  187. * \@docs-private
  188. */
  189. var MatListAvatarCssMatStyler = /** @class */ (function () {
  190. function MatListAvatarCssMatStyler() {
  191. }
  192. MatListAvatarCssMatStyler.decorators = [
  193. { type: core.Directive, args: [{
  194. selector: '[mat-list-avatar], [matListAvatar]',
  195. host: { 'class': 'mat-list-avatar' }
  196. },] },
  197. ];
  198. return MatListAvatarCssMatStyler;
  199. }());
  200. /**
  201. * Directive whose purpose is to add the mat- CSS styling to this selector.
  202. * \@docs-private
  203. */
  204. var MatListIconCssMatStyler = /** @class */ (function () {
  205. function MatListIconCssMatStyler() {
  206. }
  207. MatListIconCssMatStyler.decorators = [
  208. { type: core.Directive, args: [{
  209. selector: '[mat-list-icon], [matListIcon]',
  210. host: { 'class': 'mat-list-icon' }
  211. },] },
  212. ];
  213. return MatListIconCssMatStyler;
  214. }());
  215. /**
  216. * Directive whose purpose is to add the mat- CSS styling to this selector.
  217. * \@docs-private
  218. */
  219. var MatListSubheaderCssMatStyler = /** @class */ (function () {
  220. function MatListSubheaderCssMatStyler() {
  221. }
  222. MatListSubheaderCssMatStyler.decorators = [
  223. { type: core.Directive, args: [{
  224. selector: '[mat-subheader], [matSubheader]',
  225. host: { 'class': 'mat-subheader' }
  226. },] },
  227. ];
  228. return MatListSubheaderCssMatStyler;
  229. }());
  230. /**
  231. * An item within a Material Design list.
  232. */
  233. var MatListItem = /** @class */ (function (_super) {
  234. __extends(MatListItem, _super);
  235. function MatListItem(_element, _changeDetectorRef, navList, list) {
  236. var _this = _super.call(this) || this;
  237. _this._element = _element;
  238. _this._isInteractiveList = false;
  239. _this._destroyed = new rxjs.Subject();
  240. _this._isInteractiveList = !!(navList || (list && list._getListType() === 'action-list'));
  241. _this._list = navList || list;
  242. // If no type attributed is specified for <button>, set it to "button".
  243. // If a type attribute is already specified, do nothing.
  244. /** @type {?} */
  245. var element = _this._getHostElement();
  246. if (element.nodeName.toLowerCase() === 'button' && !element.hasAttribute('type')) {
  247. element.setAttribute('type', 'button');
  248. }
  249. if (_this._list) {
  250. // React to changes in the state of the parent list since
  251. // some of the item's properties depend on it (e.g. `disableRipple`).
  252. _this._list._stateChanges.pipe(operators.takeUntil(_this._destroyed)).subscribe((/**
  253. * @return {?}
  254. */
  255. function () {
  256. _changeDetectorRef.markForCheck();
  257. }));
  258. }
  259. return _this;
  260. }
  261. /**
  262. * @return {?}
  263. */
  264. MatListItem.prototype.ngAfterContentInit = /**
  265. * @return {?}
  266. */
  267. function () {
  268. core$1.setLines(this._lines, this._element);
  269. };
  270. /**
  271. * @return {?}
  272. */
  273. MatListItem.prototype.ngOnDestroy = /**
  274. * @return {?}
  275. */
  276. function () {
  277. this._destroyed.next();
  278. this._destroyed.complete();
  279. };
  280. /** Whether this list item should show a ripple effect when clicked. */
  281. /**
  282. * Whether this list item should show a ripple effect when clicked.
  283. * @return {?}
  284. */
  285. MatListItem.prototype._isRippleDisabled = /**
  286. * Whether this list item should show a ripple effect when clicked.
  287. * @return {?}
  288. */
  289. function () {
  290. return !this._isInteractiveList || this.disableRipple ||
  291. !!(this._list && this._list.disableRipple);
  292. };
  293. /** Retrieves the DOM element of the component host. */
  294. /**
  295. * Retrieves the DOM element of the component host.
  296. * @return {?}
  297. */
  298. MatListItem.prototype._getHostElement = /**
  299. * Retrieves the DOM element of the component host.
  300. * @return {?}
  301. */
  302. function () {
  303. return this._element.nativeElement;
  304. };
  305. MatListItem.decorators = [
  306. { type: core.Component, args: [{selector: 'mat-list-item, a[mat-list-item], button[mat-list-item]',
  307. exportAs: 'matListItem',
  308. host: {
  309. 'class': 'mat-list-item',
  310. // @breaking-change 8.0.0 Remove `mat-list-item-avatar` in favor of `mat-list-item-with-avatar`.
  311. '[class.mat-list-item-avatar]': '_avatar || _icon',
  312. '[class.mat-list-item-with-avatar]': '_avatar || _icon',
  313. },
  314. inputs: ['disableRipple'],
  315. template: "<div class=\"mat-list-item-content\"><div class=\"mat-list-item-ripple\" mat-ripple [matRippleTrigger]=\"_getHostElement()\" [matRippleDisabled]=\"_isRippleDisabled()\"></div><ng-content select=\"[mat-list-avatar], [mat-list-icon], [matListAvatar], [matListIcon]\"></ng-content><div class=\"mat-list-text\"><ng-content select=\"[mat-line], [matLine]\"></ng-content></div><ng-content></ng-content></div>",
  316. encapsulation: core.ViewEncapsulation.None,
  317. changeDetection: core.ChangeDetectionStrategy.OnPush,
  318. },] },
  319. ];
  320. /** @nocollapse */
  321. MatListItem.ctorParameters = function () { return [
  322. { type: core.ElementRef },
  323. { type: core.ChangeDetectorRef },
  324. { type: MatNavList, decorators: [{ type: core.Optional }] },
  325. { type: MatList, decorators: [{ type: core.Optional }] }
  326. ]; };
  327. MatListItem.propDecorators = {
  328. _lines: [{ type: core.ContentChildren, args: [core$1.MatLine, { descendants: true },] }],
  329. _avatar: [{ type: core.ContentChild, args: [MatListAvatarCssMatStyler, { static: false },] }],
  330. _icon: [{ type: core.ContentChild, args: [MatListIconCssMatStyler, { static: false },] }]
  331. };
  332. return MatListItem;
  333. }(_MatListItemMixinBase));
  334. /**
  335. * @fileoverview added by tsickle
  336. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  337. */
  338. /**
  339. * \@docs-private
  340. */
  341. var /**
  342. * \@docs-private
  343. */
  344. MatSelectionListBase = /** @class */ (function () {
  345. function MatSelectionListBase() {
  346. }
  347. return MatSelectionListBase;
  348. }());
  349. /** @type {?} */
  350. var _MatSelectionListMixinBase = core$1.mixinDisableRipple(MatSelectionListBase);
  351. /**
  352. * \@docs-private
  353. */
  354. var /**
  355. * \@docs-private
  356. */
  357. MatListOptionBase = /** @class */ (function () {
  358. function MatListOptionBase() {
  359. }
  360. return MatListOptionBase;
  361. }());
  362. /** @type {?} */
  363. var _MatListOptionMixinBase = core$1.mixinDisableRipple(MatListOptionBase);
  364. /**
  365. * \@docs-private
  366. * @type {?}
  367. */
  368. var MAT_SELECTION_LIST_VALUE_ACCESSOR = {
  369. provide: forms.NG_VALUE_ACCESSOR,
  370. useExisting: core.forwardRef((/**
  371. * @return {?}
  372. */
  373. function () { return MatSelectionList; })),
  374. multi: true
  375. };
  376. /**
  377. * Change event that is being fired whenever the selected state of an option changes.
  378. */
  379. var /**
  380. * Change event that is being fired whenever the selected state of an option changes.
  381. */
  382. MatSelectionListChange = /** @class */ (function () {
  383. function MatSelectionListChange(source, option) {
  384. this.source = source;
  385. this.option = option;
  386. }
  387. return MatSelectionListChange;
  388. }());
  389. /**
  390. * Component for list-options of selection-list. Each list-option can automatically
  391. * generate a checkbox and can put current item into the selectionModel of selection-list
  392. * if the current item is selected.
  393. */
  394. var MatListOption = /** @class */ (function (_super) {
  395. __extends(MatListOption, _super);
  396. function MatListOption(_element, _changeDetector, selectionList) {
  397. var _this = _super.call(this) || this;
  398. _this._element = _element;
  399. _this._changeDetector = _changeDetector;
  400. _this.selectionList = selectionList;
  401. _this._selected = false;
  402. _this._disabled = false;
  403. _this._hasFocus = false;
  404. /**
  405. * Whether the label should appear before or after the checkbox. Defaults to 'after'
  406. */
  407. _this.checkboxPosition = 'after';
  408. return _this;
  409. }
  410. Object.defineProperty(MatListOption.prototype, "color", {
  411. /** Theme color of the list option. This sets the color of the checkbox. */
  412. get: /**
  413. * Theme color of the list option. This sets the color of the checkbox.
  414. * @return {?}
  415. */
  416. function () { return this._color || this.selectionList.color; },
  417. set: /**
  418. * @param {?} newValue
  419. * @return {?}
  420. */
  421. function (newValue) { this._color = newValue; },
  422. enumerable: true,
  423. configurable: true
  424. });
  425. Object.defineProperty(MatListOption.prototype, "value", {
  426. /** Value of the option */
  427. get: /**
  428. * Value of the option
  429. * @return {?}
  430. */
  431. function () { return this._value; },
  432. set: /**
  433. * @param {?} newValue
  434. * @return {?}
  435. */
  436. function (newValue) {
  437. if (this.selected && newValue !== this.value) {
  438. this.selected = false;
  439. }
  440. this._value = newValue;
  441. },
  442. enumerable: true,
  443. configurable: true
  444. });
  445. Object.defineProperty(MatListOption.prototype, "disabled", {
  446. /** Whether the option is disabled. */
  447. get: /**
  448. * Whether the option is disabled.
  449. * @return {?}
  450. */
  451. function () { return this._disabled || (this.selectionList && this.selectionList.disabled); },
  452. set: /**
  453. * @param {?} value
  454. * @return {?}
  455. */
  456. function (value) {
  457. /** @type {?} */
  458. var newValue = coercion.coerceBooleanProperty(value);
  459. if (newValue !== this._disabled) {
  460. this._disabled = newValue;
  461. this._changeDetector.markForCheck();
  462. }
  463. },
  464. enumerable: true,
  465. configurable: true
  466. });
  467. Object.defineProperty(MatListOption.prototype, "selected", {
  468. /** Whether the option is selected. */
  469. get: /**
  470. * Whether the option is selected.
  471. * @return {?}
  472. */
  473. function () { return this.selectionList.selectedOptions.isSelected(this); },
  474. set: /**
  475. * @param {?} value
  476. * @return {?}
  477. */
  478. function (value) {
  479. /** @type {?} */
  480. var isSelected = coercion.coerceBooleanProperty(value);
  481. if (isSelected !== this._selected) {
  482. this._setSelected(isSelected);
  483. this.selectionList._reportValueChange();
  484. }
  485. },
  486. enumerable: true,
  487. configurable: true
  488. });
  489. /**
  490. * @return {?}
  491. */
  492. MatListOption.prototype.ngOnInit = /**
  493. * @return {?}
  494. */
  495. function () {
  496. var _this = this;
  497. /** @type {?} */
  498. var list = this.selectionList;
  499. if (list._value && list._value.some((/**
  500. * @param {?} value
  501. * @return {?}
  502. */
  503. function (value) { return list.compareWith(value, _this._value); }))) {
  504. this._setSelected(true);
  505. }
  506. /** @type {?} */
  507. var wasSelected = this._selected;
  508. // List options that are selected at initialization can't be reported properly to the form
  509. // control. This is because it takes some time until the selection-list knows about all
  510. // available options. Also it can happen that the ControlValueAccessor has an initial value
  511. // that should be used instead. Deferring the value change report to the next tick ensures
  512. // that the form control value is not being overwritten.
  513. Promise.resolve().then((/**
  514. * @return {?}
  515. */
  516. function () {
  517. if (_this._selected || wasSelected) {
  518. _this.selected = true;
  519. _this._changeDetector.markForCheck();
  520. }
  521. }));
  522. };
  523. /**
  524. * @return {?}
  525. */
  526. MatListOption.prototype.ngAfterContentInit = /**
  527. * @return {?}
  528. */
  529. function () {
  530. core$1.setLines(this._lines, this._element);
  531. };
  532. /**
  533. * @return {?}
  534. */
  535. MatListOption.prototype.ngOnDestroy = /**
  536. * @return {?}
  537. */
  538. function () {
  539. var _this = this;
  540. if (this.selected) {
  541. // We have to delay this until the next tick in order
  542. // to avoid changed after checked errors.
  543. Promise.resolve().then((/**
  544. * @return {?}
  545. */
  546. function () {
  547. _this.selected = false;
  548. }));
  549. }
  550. /** @type {?} */
  551. var hadFocus = this._hasFocus;
  552. /** @type {?} */
  553. var newActiveItem = this.selectionList._removeOptionFromList(this);
  554. // Only move focus if this option was focused at the time it was destroyed.
  555. if (hadFocus && newActiveItem) {
  556. newActiveItem.focus();
  557. }
  558. };
  559. /** Toggles the selection state of the option. */
  560. /**
  561. * Toggles the selection state of the option.
  562. * @return {?}
  563. */
  564. MatListOption.prototype.toggle = /**
  565. * Toggles the selection state of the option.
  566. * @return {?}
  567. */
  568. function () {
  569. this.selected = !this.selected;
  570. };
  571. /** Allows for programmatic focusing of the option. */
  572. /**
  573. * Allows for programmatic focusing of the option.
  574. * @return {?}
  575. */
  576. MatListOption.prototype.focus = /**
  577. * Allows for programmatic focusing of the option.
  578. * @return {?}
  579. */
  580. function () {
  581. this._element.nativeElement.focus();
  582. };
  583. /**
  584. * Returns the list item's text label. Implemented as a part of the FocusKeyManager.
  585. * @docs-private
  586. */
  587. /**
  588. * Returns the list item's text label. Implemented as a part of the FocusKeyManager.
  589. * \@docs-private
  590. * @return {?}
  591. */
  592. MatListOption.prototype.getLabel = /**
  593. * Returns the list item's text label. Implemented as a part of the FocusKeyManager.
  594. * \@docs-private
  595. * @return {?}
  596. */
  597. function () {
  598. return this._text ? (this._text.nativeElement.textContent || '') : '';
  599. };
  600. /** Whether this list item should show a ripple effect when clicked. */
  601. /**
  602. * Whether this list item should show a ripple effect when clicked.
  603. * @return {?}
  604. */
  605. MatListOption.prototype._isRippleDisabled = /**
  606. * Whether this list item should show a ripple effect when clicked.
  607. * @return {?}
  608. */
  609. function () {
  610. return this.disabled || this.disableRipple || this.selectionList.disableRipple;
  611. };
  612. /**
  613. * @return {?}
  614. */
  615. MatListOption.prototype._handleClick = /**
  616. * @return {?}
  617. */
  618. function () {
  619. if (!this.disabled) {
  620. this.toggle();
  621. // Emit a change event if the selected state of the option changed through user interaction.
  622. this.selectionList._emitChangeEvent(this);
  623. }
  624. };
  625. /**
  626. * @return {?}
  627. */
  628. MatListOption.prototype._handleFocus = /**
  629. * @return {?}
  630. */
  631. function () {
  632. this.selectionList._setFocusedOption(this);
  633. this._hasFocus = true;
  634. };
  635. /**
  636. * @return {?}
  637. */
  638. MatListOption.prototype._handleBlur = /**
  639. * @return {?}
  640. */
  641. function () {
  642. this.selectionList._onTouched();
  643. this._hasFocus = false;
  644. };
  645. /** Retrieves the DOM element of the component host. */
  646. /**
  647. * Retrieves the DOM element of the component host.
  648. * @return {?}
  649. */
  650. MatListOption.prototype._getHostElement = /**
  651. * Retrieves the DOM element of the component host.
  652. * @return {?}
  653. */
  654. function () {
  655. return this._element.nativeElement;
  656. };
  657. /** Sets the selected state of the option. Returns whether the value has changed. */
  658. /**
  659. * Sets the selected state of the option. Returns whether the value has changed.
  660. * @param {?} selected
  661. * @return {?}
  662. */
  663. MatListOption.prototype._setSelected = /**
  664. * Sets the selected state of the option. Returns whether the value has changed.
  665. * @param {?} selected
  666. * @return {?}
  667. */
  668. function (selected) {
  669. if (selected === this._selected) {
  670. return false;
  671. }
  672. this._selected = selected;
  673. if (selected) {
  674. this.selectionList.selectedOptions.select(this);
  675. }
  676. else {
  677. this.selectionList.selectedOptions.deselect(this);
  678. }
  679. this._changeDetector.markForCheck();
  680. return true;
  681. };
  682. /**
  683. * Notifies Angular that the option needs to be checked in the next change detection run. Mainly
  684. * used to trigger an update of the list option if the disabled state of the selection list
  685. * changed.
  686. */
  687. /**
  688. * Notifies Angular that the option needs to be checked in the next change detection run. Mainly
  689. * used to trigger an update of the list option if the disabled state of the selection list
  690. * changed.
  691. * @return {?}
  692. */
  693. MatListOption.prototype._markForCheck = /**
  694. * Notifies Angular that the option needs to be checked in the next change detection run. Mainly
  695. * used to trigger an update of the list option if the disabled state of the selection list
  696. * changed.
  697. * @return {?}
  698. */
  699. function () {
  700. this._changeDetector.markForCheck();
  701. };
  702. MatListOption.decorators = [
  703. { type: core.Component, args: [{selector: 'mat-list-option',
  704. exportAs: 'matListOption',
  705. inputs: ['disableRipple'],
  706. host: {
  707. 'role': 'option',
  708. 'class': 'mat-list-item mat-list-option',
  709. '(focus)': '_handleFocus()',
  710. '(blur)': '_handleBlur()',
  711. '(click)': '_handleClick()',
  712. 'tabindex': '-1',
  713. '[class.mat-list-item-disabled]': 'disabled',
  714. '[class.mat-list-item-with-avatar]': '_avatar || _icon',
  715. // Manually set the "primary" or "warn" class if the color has been explicitly
  716. // set to "primary" or "warn". The pseudo checkbox picks up these classes for
  717. // its theme. The accent theme palette is the default and doesn't need to be set.
  718. '[class.mat-primary]': 'color === "primary"',
  719. '[class.mat-warn]': 'color === "warn"',
  720. '[attr.aria-selected]': 'selected',
  721. '[attr.aria-disabled]': 'disabled',
  722. },
  723. template: "<div class=\"mat-list-item-content\" [class.mat-list-item-content-reverse]=\"checkboxPosition == 'after'\"><div mat-ripple class=\"mat-list-item-ripple\" [matRippleTrigger]=\"_getHostElement()\" [matRippleDisabled]=\"_isRippleDisabled()\"></div><mat-pseudo-checkbox [state]=\"selected ? 'checked' : 'unchecked'\" [disabled]=\"disabled\"></mat-pseudo-checkbox><div class=\"mat-list-text\" #text><ng-content></ng-content></div><ng-content select=\"[mat-list-avatar], [mat-list-icon], [matListAvatar], [matListIcon]\"></ng-content></div>",
  724. encapsulation: core.ViewEncapsulation.None,
  725. changeDetection: core.ChangeDetectionStrategy.OnPush,
  726. },] },
  727. ];
  728. /** @nocollapse */
  729. MatListOption.ctorParameters = function () { return [
  730. { type: core.ElementRef },
  731. { type: core.ChangeDetectorRef },
  732. { type: MatSelectionList, decorators: [{ type: core.Inject, args: [core.forwardRef((/**
  733. * @return {?}
  734. */
  735. function () { return MatSelectionList; })),] }] }
  736. ]; };
  737. MatListOption.propDecorators = {
  738. _avatar: [{ type: core.ContentChild, args: [MatListAvatarCssMatStyler, { static: false },] }],
  739. _icon: [{ type: core.ContentChild, args: [MatListIconCssMatStyler, { static: false },] }],
  740. _lines: [{ type: core.ContentChildren, args: [core$1.MatLine,] }],
  741. _text: [{ type: core.ViewChild, args: ['text', { static: false },] }],
  742. checkboxPosition: [{ type: core.Input }],
  743. color: [{ type: core.Input }],
  744. value: [{ type: core.Input }],
  745. disabled: [{ type: core.Input }],
  746. selected: [{ type: core.Input }]
  747. };
  748. return MatListOption;
  749. }(_MatListOptionMixinBase));
  750. /**
  751. * Material Design list component where each item is a selectable option. Behaves as a listbox.
  752. */
  753. var MatSelectionList = /** @class */ (function (_super) {
  754. __extends(MatSelectionList, _super);
  755. function MatSelectionList(_element, tabIndex) {
  756. var _this = _super.call(this) || this;
  757. _this._element = _element;
  758. /**
  759. * Emits a change event whenever the selected state of an option changes.
  760. */
  761. _this.selectionChange = new core.EventEmitter();
  762. /**
  763. * Tabindex of the selection list.
  764. */
  765. _this.tabIndex = 0;
  766. /**
  767. * Theme color of the selection list. This sets the checkbox color for all list options.
  768. */
  769. _this.color = 'accent';
  770. /**
  771. * Function used for comparing an option against the selected value when determining which
  772. * options should appear as selected. The first argument is the value of an options. The second
  773. * one is a value from the selected value. A boolean must be returned.
  774. */
  775. _this.compareWith = (/**
  776. * @param {?} a1
  777. * @param {?} a2
  778. * @return {?}
  779. */
  780. function (a1, a2) { return a1 === a2; });
  781. _this._disabled = false;
  782. /**
  783. * The currently selected options.
  784. */
  785. _this.selectedOptions = new collections.SelectionModel(true);
  786. /**
  787. * View to model callback that should be called whenever the selected options change.
  788. */
  789. _this._onChange = (/**
  790. * @param {?} _
  791. * @return {?}
  792. */
  793. function (_) { });
  794. /**
  795. * Emits when the list has been destroyed.
  796. */
  797. _this._destroyed = new rxjs.Subject();
  798. /**
  799. * View to model callback that should be called if the list or its options lost focus.
  800. */
  801. _this._onTouched = (/**
  802. * @return {?}
  803. */
  804. function () { });
  805. _this.tabIndex = parseInt(tabIndex) || 0;
  806. return _this;
  807. }
  808. Object.defineProperty(MatSelectionList.prototype, "disabled", {
  809. /** Whether the selection list is disabled. */
  810. get: /**
  811. * Whether the selection list is disabled.
  812. * @return {?}
  813. */
  814. function () { return this._disabled; },
  815. set: /**
  816. * @param {?} value
  817. * @return {?}
  818. */
  819. function (value) {
  820. this._disabled = coercion.coerceBooleanProperty(value);
  821. // The `MatSelectionList` and `MatListOption` are using the `OnPush` change detection
  822. // strategy. Therefore the options will not check for any changes if the `MatSelectionList`
  823. // changed its state. Since we know that a change to `disabled` property of the list affects
  824. // the state of the options, we manually mark each option for check.
  825. this._markOptionsForCheck();
  826. },
  827. enumerable: true,
  828. configurable: true
  829. });
  830. /**
  831. * @return {?}
  832. */
  833. MatSelectionList.prototype.ngAfterContentInit = /**
  834. * @return {?}
  835. */
  836. function () {
  837. this._keyManager = new a11y.FocusKeyManager(this.options)
  838. .withWrap()
  839. .withTypeAhead()
  840. // Allow disabled items to be focusable. For accessibility reasons, there must be a way for
  841. // screenreader users, that allows reading the different options of the list.
  842. .skipPredicate((/**
  843. * @return {?}
  844. */
  845. function () { return false; }))
  846. .withAllowedModifierKeys(['shiftKey']);
  847. if (this._value) {
  848. this._setOptionsFromValues(this._value);
  849. }
  850. // Sync external changes to the model back to the options.
  851. this.selectedOptions.onChange.pipe(operators.takeUntil(this._destroyed)).subscribe((/**
  852. * @param {?} event
  853. * @return {?}
  854. */
  855. function (event) {
  856. if (event.added) {
  857. for (var _i = 0, _a = event.added; _i < _a.length; _i++) {
  858. var item = _a[_i];
  859. item.selected = true;
  860. }
  861. }
  862. if (event.removed) {
  863. for (var _b = 0, _c = event.removed; _b < _c.length; _b++) {
  864. var item = _c[_b];
  865. item.selected = false;
  866. }
  867. }
  868. }));
  869. };
  870. /**
  871. * @param {?} changes
  872. * @return {?}
  873. */
  874. MatSelectionList.prototype.ngOnChanges = /**
  875. * @param {?} changes
  876. * @return {?}
  877. */
  878. function (changes) {
  879. /** @type {?} */
  880. var disableRippleChanges = changes['disableRipple'];
  881. /** @type {?} */
  882. var colorChanges = changes['color'];
  883. if ((disableRippleChanges && !disableRippleChanges.firstChange) ||
  884. (colorChanges && !colorChanges.firstChange)) {
  885. this._markOptionsForCheck();
  886. }
  887. };
  888. /**
  889. * @return {?}
  890. */
  891. MatSelectionList.prototype.ngOnDestroy = /**
  892. * @return {?}
  893. */
  894. function () {
  895. this._destroyed.next();
  896. this._destroyed.complete();
  897. this._isDestroyed = true;
  898. };
  899. /** Focuses the selection list. */
  900. /**
  901. * Focuses the selection list.
  902. * @param {?=} options
  903. * @return {?}
  904. */
  905. MatSelectionList.prototype.focus = /**
  906. * Focuses the selection list.
  907. * @param {?=} options
  908. * @return {?}
  909. */
  910. function (options) {
  911. this._element.nativeElement.focus(options);
  912. };
  913. /** Selects all of the options. */
  914. /**
  915. * Selects all of the options.
  916. * @return {?}
  917. */
  918. MatSelectionList.prototype.selectAll = /**
  919. * Selects all of the options.
  920. * @return {?}
  921. */
  922. function () {
  923. this._setAllOptionsSelected(true);
  924. };
  925. /** Deselects all of the options. */
  926. /**
  927. * Deselects all of the options.
  928. * @return {?}
  929. */
  930. MatSelectionList.prototype.deselectAll = /**
  931. * Deselects all of the options.
  932. * @return {?}
  933. */
  934. function () {
  935. this._setAllOptionsSelected(false);
  936. };
  937. /** Sets the focused option of the selection-list. */
  938. /**
  939. * Sets the focused option of the selection-list.
  940. * @param {?} option
  941. * @return {?}
  942. */
  943. MatSelectionList.prototype._setFocusedOption = /**
  944. * Sets the focused option of the selection-list.
  945. * @param {?} option
  946. * @return {?}
  947. */
  948. function (option) {
  949. this._keyManager.updateActiveItem(option);
  950. };
  951. /**
  952. * Removes an option from the selection list and updates the active item.
  953. * @returns Currently-active item.
  954. */
  955. /**
  956. * Removes an option from the selection list and updates the active item.
  957. * @param {?} option
  958. * @return {?} Currently-active item.
  959. */
  960. MatSelectionList.prototype._removeOptionFromList = /**
  961. * Removes an option from the selection list and updates the active item.
  962. * @param {?} option
  963. * @return {?} Currently-active item.
  964. */
  965. function (option) {
  966. /** @type {?} */
  967. var optionIndex = this._getOptionIndex(option);
  968. if (optionIndex > -1 && this._keyManager.activeItemIndex === optionIndex) {
  969. // Check whether the option is the last item
  970. if (optionIndex > 0) {
  971. this._keyManager.updateActiveItem(optionIndex - 1);
  972. }
  973. else if (optionIndex === 0 && this.options.length > 1) {
  974. this._keyManager.updateActiveItem(Math.min(optionIndex + 1, this.options.length - 1));
  975. }
  976. }
  977. return this._keyManager.activeItem;
  978. };
  979. /** Passes relevant key presses to our key manager. */
  980. /**
  981. * Passes relevant key presses to our key manager.
  982. * @param {?} event
  983. * @return {?}
  984. */
  985. MatSelectionList.prototype._keydown = /**
  986. * Passes relevant key presses to our key manager.
  987. * @param {?} event
  988. * @return {?}
  989. */
  990. function (event) {
  991. /** @type {?} */
  992. var keyCode = event.keyCode;
  993. /** @type {?} */
  994. var manager = this._keyManager;
  995. /** @type {?} */
  996. var previousFocusIndex = manager.activeItemIndex;
  997. /** @type {?} */
  998. var hasModifier = keycodes.hasModifierKey(event);
  999. switch (keyCode) {
  1000. case keycodes.SPACE:
  1001. case keycodes.ENTER:
  1002. if (!hasModifier) {
  1003. this._toggleFocusedOption();
  1004. // Always prevent space from scrolling the page since the list has focus
  1005. event.preventDefault();
  1006. }
  1007. break;
  1008. case keycodes.HOME:
  1009. case keycodes.END:
  1010. if (!hasModifier) {
  1011. keyCode === keycodes.HOME ? manager.setFirstItemActive() : manager.setLastItemActive();
  1012. event.preventDefault();
  1013. }
  1014. break;
  1015. case keycodes.A:
  1016. if (keycodes.hasModifierKey(event, 'ctrlKey')) {
  1017. this.options.find((/**
  1018. * @param {?} option
  1019. * @return {?}
  1020. */
  1021. function (option) { return !option.selected; })) ? this.selectAll() : this.deselectAll();
  1022. event.preventDefault();
  1023. }
  1024. break;
  1025. default:
  1026. manager.onKeydown(event);
  1027. }
  1028. if ((keyCode === keycodes.UP_ARROW || keyCode === keycodes.DOWN_ARROW) && event.shiftKey &&
  1029. manager.activeItemIndex !== previousFocusIndex) {
  1030. this._toggleFocusedOption();
  1031. }
  1032. };
  1033. /** Reports a value change to the ControlValueAccessor */
  1034. /**
  1035. * Reports a value change to the ControlValueAccessor
  1036. * @return {?}
  1037. */
  1038. MatSelectionList.prototype._reportValueChange = /**
  1039. * Reports a value change to the ControlValueAccessor
  1040. * @return {?}
  1041. */
  1042. function () {
  1043. // Stop reporting value changes after the list has been destroyed. This avoids
  1044. // cases where the list might wrongly reset its value once it is removed, but
  1045. // the form control is still live.
  1046. if (this.options && !this._isDestroyed) {
  1047. /** @type {?} */
  1048. var value = this._getSelectedOptionValues();
  1049. this._onChange(value);
  1050. this._value = value;
  1051. }
  1052. };
  1053. /** Emits a change event if the selected state of an option changed. */
  1054. /**
  1055. * Emits a change event if the selected state of an option changed.
  1056. * @param {?} option
  1057. * @return {?}
  1058. */
  1059. MatSelectionList.prototype._emitChangeEvent = /**
  1060. * Emits a change event if the selected state of an option changed.
  1061. * @param {?} option
  1062. * @return {?}
  1063. */
  1064. function (option) {
  1065. this.selectionChange.emit(new MatSelectionListChange(this, option));
  1066. };
  1067. /** Implemented as part of ControlValueAccessor. */
  1068. /**
  1069. * Implemented as part of ControlValueAccessor.
  1070. * @param {?} values
  1071. * @return {?}
  1072. */
  1073. MatSelectionList.prototype.writeValue = /**
  1074. * Implemented as part of ControlValueAccessor.
  1075. * @param {?} values
  1076. * @return {?}
  1077. */
  1078. function (values) {
  1079. this._value = values;
  1080. if (this.options) {
  1081. this._setOptionsFromValues(values || []);
  1082. }
  1083. };
  1084. /** Implemented as a part of ControlValueAccessor. */
  1085. /**
  1086. * Implemented as a part of ControlValueAccessor.
  1087. * @param {?} isDisabled
  1088. * @return {?}
  1089. */
  1090. MatSelectionList.prototype.setDisabledState = /**
  1091. * Implemented as a part of ControlValueAccessor.
  1092. * @param {?} isDisabled
  1093. * @return {?}
  1094. */
  1095. function (isDisabled) {
  1096. this.disabled = isDisabled;
  1097. };
  1098. /** Implemented as part of ControlValueAccessor. */
  1099. /**
  1100. * Implemented as part of ControlValueAccessor.
  1101. * @param {?} fn
  1102. * @return {?}
  1103. */
  1104. MatSelectionList.prototype.registerOnChange = /**
  1105. * Implemented as part of ControlValueAccessor.
  1106. * @param {?} fn
  1107. * @return {?}
  1108. */
  1109. function (fn) {
  1110. this._onChange = fn;
  1111. };
  1112. /** Implemented as part of ControlValueAccessor. */
  1113. /**
  1114. * Implemented as part of ControlValueAccessor.
  1115. * @param {?} fn
  1116. * @return {?}
  1117. */
  1118. MatSelectionList.prototype.registerOnTouched = /**
  1119. * Implemented as part of ControlValueAccessor.
  1120. * @param {?} fn
  1121. * @return {?}
  1122. */
  1123. function (fn) {
  1124. this._onTouched = fn;
  1125. };
  1126. /** Sets the selected options based on the specified values. */
  1127. /**
  1128. * Sets the selected options based on the specified values.
  1129. * @private
  1130. * @param {?} values
  1131. * @return {?}
  1132. */
  1133. MatSelectionList.prototype._setOptionsFromValues = /**
  1134. * Sets the selected options based on the specified values.
  1135. * @private
  1136. * @param {?} values
  1137. * @return {?}
  1138. */
  1139. function (values) {
  1140. var _this = this;
  1141. this.options.forEach((/**
  1142. * @param {?} option
  1143. * @return {?}
  1144. */
  1145. function (option) { return option._setSelected(false); }));
  1146. values.forEach((/**
  1147. * @param {?} value
  1148. * @return {?}
  1149. */
  1150. function (value) {
  1151. /** @type {?} */
  1152. var correspondingOption = _this.options.find((/**
  1153. * @param {?} option
  1154. * @return {?}
  1155. */
  1156. function (option) {
  1157. // Skip options that are already in the model. This allows us to handle cases
  1158. // where the same primitive value is selected multiple times.
  1159. return option.selected ? false : _this.compareWith(option.value, value);
  1160. }));
  1161. if (correspondingOption) {
  1162. correspondingOption._setSelected(true);
  1163. }
  1164. }));
  1165. };
  1166. /** Returns the values of the selected options. */
  1167. /**
  1168. * Returns the values of the selected options.
  1169. * @private
  1170. * @return {?}
  1171. */
  1172. MatSelectionList.prototype._getSelectedOptionValues = /**
  1173. * Returns the values of the selected options.
  1174. * @private
  1175. * @return {?}
  1176. */
  1177. function () {
  1178. return this.options.filter((/**
  1179. * @param {?} option
  1180. * @return {?}
  1181. */
  1182. function (option) { return option.selected; })).map((/**
  1183. * @param {?} option
  1184. * @return {?}
  1185. */
  1186. function (option) { return option.value; }));
  1187. };
  1188. /** Toggles the state of the currently focused option if enabled. */
  1189. /**
  1190. * Toggles the state of the currently focused option if enabled.
  1191. * @private
  1192. * @return {?}
  1193. */
  1194. MatSelectionList.prototype._toggleFocusedOption = /**
  1195. * Toggles the state of the currently focused option if enabled.
  1196. * @private
  1197. * @return {?}
  1198. */
  1199. function () {
  1200. /** @type {?} */
  1201. var focusedIndex = this._keyManager.activeItemIndex;
  1202. if (focusedIndex != null && this._isValidIndex(focusedIndex)) {
  1203. /** @type {?} */
  1204. var focusedOption = this.options.toArray()[focusedIndex];
  1205. if (focusedOption && !focusedOption.disabled) {
  1206. focusedOption.toggle();
  1207. // Emit a change event because the focused option changed its state through user
  1208. // interaction.
  1209. this._emitChangeEvent(focusedOption);
  1210. }
  1211. }
  1212. };
  1213. /**
  1214. * Sets the selected state on all of the options
  1215. * and emits an event if anything changed.
  1216. */
  1217. /**
  1218. * Sets the selected state on all of the options
  1219. * and emits an event if anything changed.
  1220. * @private
  1221. * @param {?} isSelected
  1222. * @return {?}
  1223. */
  1224. MatSelectionList.prototype._setAllOptionsSelected = /**
  1225. * Sets the selected state on all of the options
  1226. * and emits an event if anything changed.
  1227. * @private
  1228. * @param {?} isSelected
  1229. * @return {?}
  1230. */
  1231. function (isSelected) {
  1232. // Keep track of whether anything changed, because we only want to
  1233. // emit the changed event when something actually changed.
  1234. /** @type {?} */
  1235. var hasChanged = false;
  1236. this.options.forEach((/**
  1237. * @param {?} option
  1238. * @return {?}
  1239. */
  1240. function (option) {
  1241. if (option._setSelected(isSelected)) {
  1242. hasChanged = true;
  1243. }
  1244. }));
  1245. if (hasChanged) {
  1246. this._reportValueChange();
  1247. }
  1248. };
  1249. /**
  1250. * Utility to ensure all indexes are valid.
  1251. * @param index The index to be checked.
  1252. * @returns True if the index is valid for our list of options.
  1253. */
  1254. /**
  1255. * Utility to ensure all indexes are valid.
  1256. * @private
  1257. * @param {?} index The index to be checked.
  1258. * @return {?} True if the index is valid for our list of options.
  1259. */
  1260. MatSelectionList.prototype._isValidIndex = /**
  1261. * Utility to ensure all indexes are valid.
  1262. * @private
  1263. * @param {?} index The index to be checked.
  1264. * @return {?} True if the index is valid for our list of options.
  1265. */
  1266. function (index) {
  1267. return index >= 0 && index < this.options.length;
  1268. };
  1269. /** Returns the index of the specified list option. */
  1270. /**
  1271. * Returns the index of the specified list option.
  1272. * @private
  1273. * @param {?} option
  1274. * @return {?}
  1275. */
  1276. MatSelectionList.prototype._getOptionIndex = /**
  1277. * Returns the index of the specified list option.
  1278. * @private
  1279. * @param {?} option
  1280. * @return {?}
  1281. */
  1282. function (option) {
  1283. return this.options.toArray().indexOf(option);
  1284. };
  1285. /** Marks all the options to be checked in the next change detection run. */
  1286. /**
  1287. * Marks all the options to be checked in the next change detection run.
  1288. * @private
  1289. * @return {?}
  1290. */
  1291. MatSelectionList.prototype._markOptionsForCheck = /**
  1292. * Marks all the options to be checked in the next change detection run.
  1293. * @private
  1294. * @return {?}
  1295. */
  1296. function () {
  1297. if (this.options) {
  1298. this.options.forEach((/**
  1299. * @param {?} option
  1300. * @return {?}
  1301. */
  1302. function (option) { return option._markForCheck(); }));
  1303. }
  1304. };
  1305. MatSelectionList.decorators = [
  1306. { type: core.Component, args: [{selector: 'mat-selection-list',
  1307. exportAs: 'matSelectionList',
  1308. inputs: ['disableRipple'],
  1309. host: {
  1310. 'role': 'listbox',
  1311. '[tabIndex]': 'tabIndex',
  1312. 'class': 'mat-selection-list mat-list-base',
  1313. '(blur)': '_onTouched()',
  1314. '(keydown)': '_keydown($event)',
  1315. 'aria-multiselectable': 'true',
  1316. '[attr.aria-disabled]': 'disabled.toString()',
  1317. },
  1318. template: '<ng-content></ng-content>',
  1319. styles: [".mat-subheader{display:flex;box-sizing:border-box;padding:16px;align-items:center}.mat-list-base .mat-subheader{margin:0}.mat-list-base{padding-top:8px;display:block;-webkit-tap-highlight-color:transparent}.mat-list-base .mat-subheader{height:48px;line-height:16px}.mat-list-base .mat-subheader:first-child{margin-top:-8px}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{display:block;height:48px;-webkit-tap-highlight-color:transparent;width:100%;padding:0}.mat-list-base .mat-list-item .mat-list-item-content,.mat-list-base .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base .mat-list-item .mat-list-item-content-reverse,.mat-list-base .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base .mat-list-item .mat-list-item-ripple,.mat-list-base .mat-list-option .mat-list-item-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:56px}.mat-list-base .mat-list-item.mat-2-line,.mat-list-base .mat-list-option.mat-2-line{height:72px}.mat-list-base .mat-list-item.mat-3-line,.mat-list-base .mat-list-option.mat-3-line{height:88px}.mat-list-base .mat-list-item.mat-multi-line,.mat-list-base .mat-list-option.mat-multi-line{height:auto}.mat-list-base .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base .mat-list-item .mat-list-text,.mat-list-base .mat-list-option .mat-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base .mat-list-item .mat-list-text>*,.mat-list-base .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-list-base .mat-list-item .mat-list-text:empty,.mat-list-base .mat-list-option .mat-list-text:empty{display:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base .mat-list-item .mat-list-avatar,.mat-list-base .mat-list-option .mat-list-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;object-fit:cover}.mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:72px;width:calc(100% - 72px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:72px}.mat-list-base .mat-list-item .mat-list-icon,.mat-list-base .mat-list-option .mat-list-icon{flex-shrink:0;width:24px;height:24px;font-size:24px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:64px;width:calc(100% - 64px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:64px}.mat-list-base .mat-list-item .mat-divider,.mat-list-base .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base .mat-list-item .mat-divider,[dir=rtl] .mat-list-base .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-list-base[dense]{padding-top:4px;display:block}.mat-list-base[dense] .mat-subheader{height:40px;line-height:8px}.mat-list-base[dense] .mat-subheader:first-child{margin-top:-4px}.mat-list-base[dense] .mat-list-item,.mat-list-base[dense] .mat-list-option{display:block;height:40px;-webkit-tap-highlight-color:transparent;width:100%;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-item-content,.mat-list-base[dense] .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base[dense] .mat-list-item .mat-list-item-content-reverse,.mat-list-base[dense] .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base[dense] .mat-list-item .mat-list-item-ripple,.mat-list-base[dense] .mat-list-option .mat-list-item-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar{height:48px}.mat-list-base[dense] .mat-list-item.mat-2-line,.mat-list-base[dense] .mat-list-option.mat-2-line{height:60px}.mat-list-base[dense] .mat-list-item.mat-3-line,.mat-list-base[dense] .mat-list-option.mat-3-line{height:76px}.mat-list-base[dense] .mat-list-item.mat-multi-line,.mat-list-base[dense] .mat-list-option.mat-multi-line{height:auto}.mat-list-base[dense] .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base[dense] .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base[dense] .mat-list-item .mat-list-text,.mat-list-base[dense] .mat-list-option .mat-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-text>*,.mat-list-base[dense] .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-list-base[dense] .mat-list-item .mat-list-text:empty,.mat-list-base[dense] .mat-list-option .mat-list-text:empty{display:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base[dense] .mat-list-item .mat-list-avatar,.mat-list-base[dense] .mat-list-option .mat-list-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;object-fit:cover}.mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:68px;width:calc(100% - 68px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:68px}.mat-list-base[dense] .mat-list-item .mat-list-icon,.mat-list-base[dense] .mat-list-option .mat-list-icon{flex-shrink:0;width:20px;height:20px;font-size:20px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:60px;width:calc(100% - 60px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:60px}.mat-list-base[dense] .mat-list-item .mat-divider,.mat-list-base[dense] .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-divider,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base[dense] .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-nav-list a{text-decoration:none;color:inherit}.mat-nav-list .mat-list-item{cursor:pointer;outline:0}mat-action-list button{background:0 0;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:transparent;text-align:left}[dir=rtl] mat-action-list button{text-align:right}mat-action-list button::-moz-focus-inner{border:0}mat-action-list .mat-list-item{cursor:pointer;outline:inherit}.mat-list-option:not(.mat-list-item-disabled){cursor:pointer;outline:0}@media (-ms-high-contrast:active){.mat-selection-list:focus{outline-style:dotted}.mat-list-option:focus,.mat-list-option:hover,.mat-nav-list .mat-list-item:focus,.mat-nav-list .mat-list-item:hover,mat-action-list .mat-list-item:focus,mat-action-list .mat-list-item:hover{outline:dotted 1px}}@media (hover:none){.mat-action-list .mat-list-item:not(.mat-list-item-disabled):hover,.mat-list-option:not(.mat-list-item-disabled):hover,.mat-nav-list .mat-list-item:not(.mat-list-item-disabled):hover{background:0 0}}"],
  1320. encapsulation: core.ViewEncapsulation.None,
  1321. providers: [MAT_SELECTION_LIST_VALUE_ACCESSOR],
  1322. changeDetection: core.ChangeDetectionStrategy.OnPush
  1323. },] },
  1324. ];
  1325. /** @nocollapse */
  1326. MatSelectionList.ctorParameters = function () { return [
  1327. { type: core.ElementRef },
  1328. { type: String, decorators: [{ type: core.Attribute, args: ['tabindex',] }] }
  1329. ]; };
  1330. MatSelectionList.propDecorators = {
  1331. options: [{ type: core.ContentChildren, args: [MatListOption, { descendants: true },] }],
  1332. selectionChange: [{ type: core.Output }],
  1333. tabIndex: [{ type: core.Input }],
  1334. color: [{ type: core.Input }],
  1335. compareWith: [{ type: core.Input }],
  1336. disabled: [{ type: core.Input }]
  1337. };
  1338. return MatSelectionList;
  1339. }(_MatSelectionListMixinBase));
  1340. /**
  1341. * @fileoverview added by tsickle
  1342. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  1343. */
  1344. var MatListModule = /** @class */ (function () {
  1345. function MatListModule() {
  1346. }
  1347. MatListModule.decorators = [
  1348. { type: core.NgModule, args: [{
  1349. imports: [core$1.MatLineModule, core$1.MatRippleModule, core$1.MatCommonModule, core$1.MatPseudoCheckboxModule, common.CommonModule],
  1350. exports: [
  1351. MatList,
  1352. MatNavList,
  1353. MatListItem,
  1354. MatListAvatarCssMatStyler,
  1355. core$1.MatLineModule,
  1356. core$1.MatCommonModule,
  1357. MatListIconCssMatStyler,
  1358. MatListSubheaderCssMatStyler,
  1359. core$1.MatPseudoCheckboxModule,
  1360. MatSelectionList,
  1361. MatListOption,
  1362. divider.MatDividerModule
  1363. ],
  1364. declarations: [
  1365. MatList,
  1366. MatNavList,
  1367. MatListItem,
  1368. MatListAvatarCssMatStyler,
  1369. MatListIconCssMatStyler,
  1370. MatListSubheaderCssMatStyler,
  1371. MatSelectionList,
  1372. MatListOption
  1373. ],
  1374. },] },
  1375. ];
  1376. return MatListModule;
  1377. }());
  1378. exports.MatListModule = MatListModule;
  1379. exports.MatNavList = MatNavList;
  1380. exports.MatList = MatList;
  1381. exports.MatListAvatarCssMatStyler = MatListAvatarCssMatStyler;
  1382. exports.MatListIconCssMatStyler = MatListIconCssMatStyler;
  1383. exports.MatListSubheaderCssMatStyler = MatListSubheaderCssMatStyler;
  1384. exports.MatListItem = MatListItem;
  1385. exports.MAT_SELECTION_LIST_VALUE_ACCESSOR = MAT_SELECTION_LIST_VALUE_ACCESSOR;
  1386. exports.MatSelectionListChange = MatSelectionListChange;
  1387. exports.MatListOption = MatListOption;
  1388. exports.MatSelectionList = MatSelectionList;
  1389. Object.defineProperty(exports, '__esModule', { value: true });
  1390. })));
  1391. //# sourceMappingURL=material-list.umd.js.map