{"version":3,"file":"angular-mdl-core.mjs","sources":["../../../../projects/core/src/lib/common/append-view-container-ref-directive.ts","../../../../projects/core/src/lib/common/animations.ts","../../../../projects/core/src/lib/common/boolean-property.ts","../../../../projects/core/src/lib/common/mdl-error.ts","../../../../projects/core/src/lib/common/native-support.ts","../../../../projects/core/src/lib/common/noop.ts","../../../../projects/core/src/lib/common/number.property.ts","../../../../projects/core/src/lib/common/mdl-common.module.ts","../../../../projects/core/src/lib/layout/mdl-layout-mediator.service.ts","../../../../projects/core/src/lib/ripple/ripple.vendor.ts","../../../../projects/core/src/lib/ripple/mdl-ripple.directive.ts","../../../../projects/core/src/lib/layout/mdl-layout-header.component.ts","../../../../projects/core/src/lib/layout/mdl-layout-drawer.component.ts","../../../../projects/core/src/lib/tabs/mdl-tab-panel-title.component.ts","../../../../projects/core/src/lib/layout/mdl-layout-tab-panel.component.ts","../../../../projects/core/src/lib/layout/mdl-layout-content.component.ts","../../../../projects/core/src/lib/icon/mdl-icon.component.ts","../../../../projects/core/src/lib/layout/mdl-layout.component.ts","../../../../projects/core/src/lib/layout/mdl-layout-header-transparent.directive.ts","../../../../projects/core/src/lib/layout/mdl-layout-header-row.component.ts","../../../../projects/core/src/lib/layout/mdl-layout-title.component.ts","../../../../projects/core/src/lib/layout/mdl-layout-spacer.component.ts","../../../../projects/core/src/lib/icon/mdl-icon.module.ts","../../../../projects/core/src/lib/tabs/mdl-tab-panel.component.ts","../../../../projects/core/src/lib/tabs/mdl-tabs.component.ts","../../../../projects/core/src/lib/ripple/mdl-ripple.module.ts","../../../../projects/core/src/lib/tabs/mdl-tabs.module.ts","../../../../projects/core/src/lib/layout/mdl-layout.module.ts","../../../../projects/core/src/lib/badge/mdl-badge.directive.ts","../../../../projects/core/src/lib/badge/mdl-badge.module.ts","../../../../projects/core/src/lib/button/mdl-button.component.ts","../../../../projects/core/src/lib/button/mdl-button.module.ts","../../../../projects/core/src/lib/card/mdl-card.component.ts","../../../../projects/core/src/lib/card/mdl-card.module.ts","../../../../projects/core/src/lib/checkbox/mdl-checkbox.component.ts","../../../../projects/core/src/lib/checkbox/mdl-checkbox.module.ts","../../../../projects/core/src/lib/chips/mdl-chip.component.ts","../../../../projects/core/src/lib/chips/mdl-chip-contact.directive.ts","../../../../projects/core/src/lib/chips/mdl-chip.module.ts","../../../../projects/core/src/lib/dialog/config.ts","../../../../projects/core/src/lib/dialog/mdl-dialog-reference.ts","../../../../projects/core/src/lib/dialog/mdl-simple-dialog.component.ts","../../../../projects/core/src/lib/dialog/internal-dialog-reference.ts","../../../../projects/core/src/lib/dialog/mdl-dialog-host.component.ts","../../../../projects/core/src/lib/dialog-outlet/mdl-backdrop-overlay.component.ts","../../../../projects/core/src/lib/dialog-outlet/mdl-dialog-outlet.component.ts","../../../../projects/core/src/lib/dialog-outlet/mdl-dialog-outlet.service.ts","../../../../projects/core/src/lib/dialog/mdl-dialog.service.ts","../../../../projects/core/src/lib/dialog/mdl-dialog.component.ts","../../../../projects/core/src/lib/dialog/mdl-alert.component.ts","../../../../projects/core/src/lib/dialog-outlet/mdl-dialog-inner-outlet.component.ts","../../../../projects/core/src/lib/dialog-outlet/mdl-dialog-outlet.module.ts","../../../../projects/core/src/lib/dialog/mdl-dialog.module.ts","../../../../projects/core/src/lib/icon-toggle/mdl-icon-toggle.component.ts","../../../../projects/core/src/lib/icon-toggle/mdl-icon-toggle.module.ts","../../../../projects/core/src/lib/list/mdl-list.component.ts","../../../../projects/core/src/lib/list/mdl-list.module.ts","../../../../projects/core/src/lib/menu/mdl-menu.component.ts","../../../../projects/core/src/lib/menu/mdl-menu-item.component.ts","../../../../projects/core/src/lib/menu/mdl-menu-item.directive.ts","../../../../projects/core/src/lib/menu/mdl-toggle-menu.directive.ts","../../../../projects/core/src/lib/menu/mdl-menu.module.ts","../../../../projects/core/src/lib/progress/mdl-progress.component.ts","../../../../projects/core/src/lib/progress/mdl-progress.module.ts","../../../../projects/core/src/lib/radio/mdl-radio.component.ts","../../../../projects/core/src/lib/radio/mdl-radio.module.ts","../../../../projects/core/src/lib/shadow/mdl-shadow.directive.ts","../../../../projects/core/src/lib/shadow/mdl-shadow.module.ts","../../../../projects/core/src/lib/slider/mdl-slider.component.ts","../../../../projects/core/src/lib/slider/mdl-slider.module.ts","../../../../projects/core/src/lib/snackbar/mdl-snackbar.service.ts","../../../../projects/core/src/lib/snackbar/mdl-snackbar.module.ts","../../../../projects/core/src/lib/spinner/mdl-spinner.component.ts","../../../../projects/core/src/lib/spinner/mdl-spinner.module.ts","../../../../projects/core/src/lib/switch/mdl-switch.component.ts","../../../../projects/core/src/lib/switch/mdl-switch.module.ts","../../../../projects/core/src/lib/table/mdl-table.component.ts","../../../../projects/core/src/lib/table/mdl-table.module.ts","../../../../projects/core/src/lib/textfield/mdl-textfield.component.ts","../../../../projects/core/src/lib/textfield/mdl-textfield.module.ts","../../../../projects/core/src/lib/tooltip/mdl-tooltip-position.service.ts","../../../../projects/core/src/lib/tooltip/mdl-tooltip.component.ts","../../../../projects/core/src/lib/tooltip/mdl-tooltip.directive.ts","../../../../projects/core/src/lib/tooltip/mdl-tooltip.module.ts","../../../../projects/core/src/lib/core.module.ts","../../../../projects/core/src/public-api.ts","../../../../projects/core/src/angular-mdl-core.ts"],"sourcesContent":["import {\n  AfterViewInit,\n  Directive,\n  Input,\n  Renderer2,\n  ViewContainerRef,\n} from \"@angular/core\";\n\n@Directive({\n  // eslint-disable-next-line\n  selector: \"[append-view-container-ref]\",\n})\nexport class AppendViewContainerRefDirective implements AfterViewInit {\n  @Input(\"append-view-container-ref\")\n  viewContainerRefToAppend: ViewContainerRef | undefined;\n\n  constructor(private viewRef: ViewContainerRef, private renderer: Renderer2) {}\n\n  ngAfterViewInit(): void {\n    this.renderer.appendChild(\n      this.viewRef.element.nativeElement,\n      this.viewContainerRefToAppend?.element.nativeElement\n    );\n  }\n}\n","export interface AnimationPlayer {\n  onDone(fn: () => void): void;\n\n  play(): void;\n}\n\nexport class NativeWebAnimationPlayer implements AnimationPlayer {\n  private onDoneCallback: (() => void)[] = [];\n\n  constructor(\n    private element: HTMLElement,\n    private keyframes: { [key: string]: string | number }[],\n    private duration: number,\n    private easing: string\n  ) {}\n\n  onDone(fn: () => void): void {\n    this.onDoneCallback.push(fn);\n  }\n\n  play(): void {\n    const animation = this.element.animate(this.keyframes, {\n      duration: this.duration,\n      easing: this.easing,\n      fill: \"forwards\",\n    });\n\n    animation.addEventListener(\"finish\", () =>\n      this.onDoneCallback.forEach((fn) => fn())\n    );\n  }\n}\n\nexport class NoopAnimationPlayer implements AnimationPlayer {\n  private onDoneCallback: (() => void)[] = [];\n\n  onDone(fn: () => void): void {\n    this.onDoneCallback.push(fn);\n  }\n\n  play(): void {\n    this.onDoneCallback.forEach((fn) => fn());\n  }\n}\n\nexport abstract class Animations {\n  abstract animate(\n    element: HTMLElement,\n    keyframes: { [key: string]: string | number }[],\n    duration: number,\n    easing: string\n  ): AnimationPlayer;\n}\n\nexport class NativeWebAnimations implements Animations {\n  public animate(\n    element: HTMLElement,\n    keyframes: { [key: string]: string | number }[],\n    duration: number,\n    easing: string\n  ): AnimationPlayer {\n    return new NativeWebAnimationPlayer(element, keyframes, duration, easing);\n  }\n}\n\nexport class NoopWebAnimations implements Animations {\n  public animate(): AnimationPlayer {\n    return new NoopAnimationPlayer();\n  }\n}\n","export const toBoolean = (value: unknown): boolean =>\n  value != null && `${value}` !== \"false\";\n","/**\n * Wrapper for mdl error messages.\n */\nexport class MdlError extends Error {\n  constructor(value: string) {\n    /* istanbul ignore next */\n    super(value);\n  }\n}\n\nexport class MdlStructureError extends MdlError {\n  constructor(child: string, requiredParent: string) {\n    /* istanbul ignore next */\n    super(`\"${child}\" requires \"${requiredParent}\" as a parent.`);\n  }\n}\n","export const callNative = (\n  el: Element,\n  method: string,\n  arg: any | null = null // eslint-disable-line  @typescript-eslint/no-explicit-any\n): void => {\n  /* istanbul ignore next */ // if this code runs in browser this is allways true!\n  // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n  // @ts-ignore\n  if (el[method]) {\n    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n    // @ts-ignore\n    el[method](arg);\n  }\n};\n","/* istanbul ignore next */\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport const noop = (): void => {};\n","export const toNumber = (\n  value: number | string | undefined | null\n): number | null | undefined => {\n  if (typeof value === \"undefined\") {\n    return null;\n  } else if (typeof value === \"string\") {\n    return parseInt(value, 10);\n  }\n  return value;\n};\n","import { NgModule } from \"@angular/core\";\nimport { AppendViewContainerRefDirective } from \"./append-view-container-ref-directive\";\nimport {\n  Animations,\n  NativeWebAnimations,\n  NoopWebAnimations,\n} from \"./animations\";\n\n// eslint-disable-next-line prefer-arrow/prefer-arrow-functions\nfunction isWebAnimationsSupported() {\n  return (\n    typeof Element !== \"undefined\" &&\n    typeof Element.prototype.animate === \"function\"\n  );\n}\n\n// eslint-disable-next-line prefer-arrow/prefer-arrow-functions\nexport function instantiateSupportedAnimationDriver(): Animations {\n  /* istanbul ignore next */\n  if (isWebAnimationsSupported()) {\n    return new NativeWebAnimations();\n  }\n  /* istanbul ignore next */\n  return new NoopWebAnimations();\n}\n\n@NgModule({\n  imports: [],\n  exports: [AppendViewContainerRefDirective],\n  declarations: [AppendViewContainerRefDirective],\n  providers: [\n    { provide: Animations, useFactory: instantiateSupportedAnimationDriver },\n  ],\n})\nexport class MdlCommonsModule {}\n\nexport * from \"./animations\";\nexport * from \"./boolean-property\";\nexport * from \"./mdl-error\";\nexport * from \"./append-view-container-ref-directive\";\nexport * from \"./native-support\";\nexport * from \"./noop\";\nexport * from \"./number.property\";\n","import { Injectable } from \"@angular/core\";\nimport { MdlLayoutTabPanelComponent } from \"./mdl-layout-tab-panel.component\";\nimport { Observable, Subject } from \"rxjs\";\n\n@Injectable({\n  providedIn: \"root\",\n})\nexport class MdlLayoutMediatorService {\n  private tabMouseoverSubject = new Subject<MdlLayoutTabPanelComponent>();\n  private tabMouseoutSubject = new Subject<MdlLayoutTabPanelComponent>();\n  private tabSelectedSubject = new Subject<MdlLayoutTabPanelComponent>();\n\n  onTabMouseover(): Observable<MdlLayoutTabPanelComponent> {\n    return this.tabMouseoverSubject.asObservable();\n  }\n\n  tabMouseover(tab: MdlLayoutTabPanelComponent): void {\n    this.tabMouseoverSubject.next(tab);\n  }\n\n  onTabMouseOut(): Observable<MdlLayoutTabPanelComponent> {\n    return this.tabMouseoutSubject.asObservable();\n  }\n\n  tabMouseout(tab: MdlLayoutTabPanelComponent): void {\n    this.tabMouseoutSubject.next(tab);\n  }\n\n  onTabSelected(): Observable<MdlLayoutTabPanelComponent> {\n    return this.tabSelectedSubject.asObservable();\n  }\n\n  tabSelected(tab: MdlLayoutTabPanelComponent): void {\n    this.tabSelectedSubject.next(tab);\n  }\n}\n","/**\n * @license\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable */\n/* istanbul ignore file */\n// @ts-nocheck\n\"use strict\";\n\n/**\n * Class constructor for Ripple MDL component.\n * Implements MDL component design pattern defined at:\n * https://github.com/jasonmayes/mdl-component-design-pattern\n *\n */\nexport function MaterialRipple(renderer, element): void {\n  this.renderer_ = renderer;\n  this.element_ = element;\n\n  // Initialize instance.\n  this.init();\n}\n\n/**\n * Store constants in one place so they can be updated easily.\n */\nMaterialRipple.prototype.Constant_ = {\n  INITIAL_SCALE: \"scale(0.0001, 0.0001)\",\n  INITIAL_SIZE: \"1px\",\n  INITIAL_OPACITY: \"0.4\",\n  FINAL_OPACITY: \"0\",\n  FINAL_SCALE: \"\",\n};\n\n/**\n * Store strings for class names defined by this component that are used in\n * JavaScript. This allows us to simply change it in one place should we\n * decide to modify at a later date.\n */\nMaterialRipple.prototype.CssClasses_ = {\n  RIPPLE_CENTER: \"mdl-ripple--center\",\n  RIPPLE_EFFECT_IGNORE_EVENTS: \"mdl-js-ripple-effect--ignore-events\",\n  RIPPLE: \"mdl-ripple\",\n  IS_ANIMATING: \"is-animating\",\n  IS_VISIBLE: \"is-visible\",\n};\n\n/**\n * Handle mouse / finger down on element.\n *\n */\n// eslint-disable-next-line\nMaterialRipple.prototype.downHandler_ = function (event) {\n  if (!this.rippleElement_.style.width && !this.rippleElement_.style.height) {\n    const rect = this.element_.getBoundingClientRect();\n    this.boundHeight = rect.height;\n    this.boundWidth = rect.width;\n    this.rippleSize_ =\n      Math.sqrt(rect.width * rect.width + rect.height * rect.height) * 2 + 2;\n    this.rippleElement_.style.width = this.rippleSize_ + \"px\";\n    this.rippleElement_.style.height = this.rippleSize_ + \"px\";\n  }\n\n  this.renderer_.addClass(this.rippleElement_, this.CssClasses_.IS_VISIBLE);\n\n  if (event.type === \"mousedown\" && this.ignoringMouseDown_) {\n    this.ignoringMouseDown_ = false;\n  } else {\n    if (event.type === \"touchstart\") {\n      this.ignoringMouseDown_ = true;\n    }\n    const frameCount = this.getFrameCount();\n    if (frameCount > 0) {\n      return;\n    }\n    this.setFrameCount(1);\n    const bound = event.currentTarget.getBoundingClientRect();\n    let x;\n    let y;\n    // Check if we are handling a keyboard click.\n    if (event.clientX === 0 && event.clientY === 0) {\n      x = Math.round(bound.width / 2);\n      y = Math.round(bound.height / 2);\n    } else {\n      const clientX =\n        event.clientX !== undefined ? event.clientX : event.touches[0].clientX;\n      const clientY =\n        event.clientY !== undefined ? event.clientY : event.touches[0].clientY;\n      x = Math.round(clientX - bound.left);\n      y = Math.round(clientY - bound.top);\n    }\n    this.setRippleXY(x, y);\n    this.setRippleStyles(true);\n    window.requestAnimationFrame(this.animFrameHandler.bind(this));\n  }\n};\n\n/**\n * Handle mouse / finger up on element.\n *\n */\n// eslint-disable-next-line\nMaterialRipple.prototype.upHandler_ = function (event) {\n  // Don't fire for the artificial \"mouseup\" generated by a double-click.\n  if (event && event.detail !== 2) {\n    // Allow a repaint to occur before removing this class, so the animation\n    // shows for tap events, which seem to trigger a mouseup too soon after\n    // mousedown.\n    // eslint-disable-next-line\n    setTimeout(\n      function () {\n        this.renderer_.removeClass(\n          this.rippleElement_,\n          this.CssClasses_.IS_VISIBLE\n        );\n      }.bind(this),\n      0\n    );\n  }\n};\n\n/**\n * Initialize element.\n */\n// eslint-disable-next-line\nMaterialRipple.prototype.init = function () {\n  if (this.element_) {\n    const recentering = this.element_.classList.contains(\n      this.CssClasses_.RIPPLE_CENTER\n    );\n    if (\n      !this.element_.classList.contains(\n        this.CssClasses_.RIPPLE_EFFECT_IGNORE_EVENTS\n      )\n    ) {\n      this.rippleElement_ = this.element_.querySelector(\n        \".\" + this.CssClasses_.RIPPLE\n      );\n      this.frameCount_ = 0;\n      this.rippleSize_ = 0;\n      this.x_ = 0;\n      this.y_ = 0;\n\n      // Touch start produces a compat mouse down event, which would cause a\n      // second ripples. To avoid that, we use this property to ignore the first\n      // mouse down after a touch start.\n      this.ignoringMouseDown_ = false;\n\n      this.boundDownHandler = this.downHandler_.bind(this);\n      this.element_.addEventListener(\"mousedown\", this.boundDownHandler);\n      this.element_.addEventListener(\"touchstart\", this.boundDownHandler);\n\n      this.boundUpHandler = this.upHandler_.bind(this);\n      this.element_.addEventListener(\"mouseup\", this.boundUpHandler);\n      this.element_.addEventListener(\"mouseleave\", this.boundUpHandler);\n      this.element_.addEventListener(\"touchend\", this.boundUpHandler);\n      this.element_.addEventListener(\"blur\", this.boundUpHandler);\n\n      // eslint-disable-next-line\n      this.getFrameCount = function () {\n        return this.frameCount_;\n      };\n\n      // eslint-disable-next-line\n      this.setFrameCount = function (fC) {\n        this.frameCount_ = fC;\n      };\n\n      // eslint-disable-next-line\n      this.getRippleElement = function () {\n        return this.rippleElement_;\n      };\n\n      // eslint-disable-next-line\n      this.setRippleXY = function (newX, newY) {\n        this.x_ = newX;\n        this.y_ = newY;\n      };\n\n      // eslint-disable-next-line\n      this.setRippleStyles = function (start) {\n        if (this.rippleElement_ !== null) {\n          let transformString;\n          let scale;\n          let size;\n          let offset = \"translate(\" + this.x_ + \"px, \" + this.y_ + \"px)\";\n\n          if (start) {\n            scale = this.Constant_.INITIAL_SCALE;\n            size = this.Constant_.INITIAL_SIZE;\n          } else {\n            scale = this.Constant_.FINAL_SCALE;\n            size = this.rippleSize_ + \"px\";\n            if (recentering) {\n              offset =\n                \"translate(\" +\n                this.boundWidth / 2 +\n                \"px, \" +\n                this.boundHeight / 2 +\n                \"px)\";\n            }\n          }\n\n          transformString = \"translate(-50%, -50%) \" + offset + scale;\n\n          this.rippleElement_.style.webkitTransform = transformString;\n          this.rippleElement_.style.msTransform = transformString;\n          this.rippleElement_.style.transform = transformString;\n\n          if (start) {\n            this.renderer_.removeClass(\n              this.rippleElement_,\n              this.CssClasses_.IS_ANIMATING\n            );\n          } else {\n            this.renderer_.addClass(\n              this.rippleElement_,\n              this.CssClasses_.IS_ANIMATING\n            );\n          }\n        }\n      };\n\n      /**\n       * Handles an animation frame.\n       */\n      // eslint-disable-next-line\n      this.animFrameHandler = function () {\n        if (this.frameCount_-- > 0) {\n          window.requestAnimationFrame(this.animFrameHandler.bind(this));\n        } else {\n          this.setRippleStyles(false);\n        }\n      };\n    }\n  }\n};\n","import {\n  Directive,\n  ElementRef,\n  Input,\n  OnChanges,\n  Renderer2,\n} from \"@angular/core\";\nimport { MaterialRipple } from \"./ripple.vendor\";\n\nconst RIPPLE = \"mdl-ripple\";\n\n// known bugs: https://github.com/google/material-design-lite/issues/4215\n@Directive()\nexport class MdlRippleDirective implements OnChanges {\n  public el: HTMLElement;\n  rippleActive: boolean | string = true;\n\n  private rippleContainer: HTMLElement | undefined;\n  private ripple: (() => void) | undefined;\n\n  constructor(\n    private elementRef: ElementRef,\n    public renderer: Renderer2,\n    private cssContainerClasses: string[]\n  ) {\n    this.el = elementRef.nativeElement;\n  }\n\n  ngOnChanges(): void {\n    // remove any existing ripple container\n    if (this.rippleContainer) {\n      this.el.removeChild(this.rippleContainer);\n      delete this.rippleContainer;\n      delete this.ripple;\n    }\n\n    // if used as mdl-ripple without property binding it is an empty string\n    // otherwise (e.g. [mdl-ripple] it is a boolean - may be with the default value true.\n    if (this.rippleActive === \"\" || this.rippleActive) {\n      this.rippleContainer = this.renderer.createElement(\"span\");\n      this.cssContainerClasses.forEach((cssClass) => {\n        this.renderer.addClass(this.rippleContainer, cssClass);\n      });\n      const rippleElement = this.renderer.createElement(\"span\");\n      this.renderer.addClass(rippleElement, RIPPLE);\n      this.rippleContainer?.appendChild(rippleElement);\n      if (this.rippleContainer) {\n        this.el.appendChild(this.rippleContainer);\n      }\n      // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n      // @ts-ignore\n      this.ripple = new MaterialRipple(this.renderer, this.el);\n    }\n  }\n}\n\n@Directive({\n  // eslint-disable-next-line\n  selector: \"mdl-button[mdl-ripple], button[mdl-ripple]\",\n})\nexport class MdlButtonRippleDirective extends MdlRippleDirective {\n  // eslint-disable-next-line\n  @Input(\"mdl-ripple\") public override rippleActive: boolean | string = true;\n\n  constructor(elementRef: ElementRef, renderer: Renderer2) {\n    super(elementRef, renderer, [\"mdl-button__ripple-container\"]);\n  }\n}\n\n@Directive({\n  // eslint-disable-next-line\n  selector: \"mdl-checkbox[mdl-ripple]\",\n})\nexport class MdlCheckboxRippleDirective extends MdlRippleDirective {\n  // eslint-disable-next-line\n  @Input(\"mdl-ripple\") public override rippleActive: boolean | string = true;\n\n  constructor(elementRef: ElementRef, renderer: Renderer2) {\n    super(elementRef, renderer, [\n      \"mdl-checkbox__ripple-container\",\n      \"mdl-ripple--center\",\n    ]);\n  }\n}\n\n@Directive({\n  // eslint-disable-next-line\n  selector: \"mdl-radio[mdl-ripple]\",\n})\nexport class MdlRadioRippleDirective extends MdlRippleDirective {\n  // eslint-disable-next-line\n  @Input(\"mdl-ripple\") public override rippleActive: boolean | string = true;\n\n  constructor(elementRef: ElementRef, renderer: Renderer2) {\n    super(elementRef, renderer, [\n      \"mdl-radio__ripple-container\",\n      \"mdl-ripple--center\",\n    ]);\n  }\n}\n\n@Directive({\n  // eslint-disable-next-line\n  selector: \"mdl-icon-toggle[mdl-ripple]\",\n})\nexport class MdlIconToggleRippleDirective extends MdlRippleDirective {\n  // eslint-disable-next-line\n  @Input(\"mdl-ripple\") public override rippleActive: boolean | string = true;\n\n  constructor(elementRef: ElementRef, renderer: Renderer2) {\n    super(elementRef, renderer, [\n      \"mdl-icon-toggle__ripple-container\",\n      \"mdl-ripple--center\",\n    ]);\n  }\n}\n\n@Directive({\n  // eslint-disable-next-line\n  selector: \"mdl-switch[mdl-ripple]\",\n})\nexport class MdlSwitchRippleDirective extends MdlRippleDirective {\n  // eslint-disable-next-line\n  @Input(\"mdl-ripple\") public override rippleActive: boolean | string = true;\n\n  constructor(elementRef: ElementRef, renderer: Renderer2) {\n    super(elementRef, renderer, [\n      \"mdl-switch__ripple-container\",\n      \"mdl-ripple--center\",\n    ]);\n  }\n}\n\n@Directive({\n  // eslint-disable-next-line\n  selector: \"mdl-menu-item[mdl-ripple]\",\n})\nexport class MdlMenuItemRippleDirective extends MdlRippleDirective {\n  // eslint-disable-next-line\n  @Input(\"mdl-ripple\") public override rippleActive: boolean | string = true;\n\n  constructor(elementRef: ElementRef, renderer: Renderer2) {\n    super(elementRef, renderer, [\"mdl-menu__item--ripple-container\"]);\n  }\n}\n\n@Directive({\n  // eslint-disable-next-line\n  selector: \"a[mdl-ripple],div[mdl-ripple]\",\n})\nexport class MdlAnchorRippleDirective extends MdlRippleDirective {\n  // eslint-disable-next-line\n  @Input(\"mdl-ripple\") public override rippleActive: boolean | string = true;\n\n  constructor(elementRef: ElementRef, renderer: Renderer2) {\n    super(elementRef, renderer, [\n      \"mdl-tabs__ripple-container\",\n      \"mdl-layout__tab-ripple-container\",\n    ]);\n  }\n}\n","import {\n  Component,\n  ElementRef,\n  HostBinding,\n  HostListener,\n  QueryList,\n  ViewEncapsulation,\n} from \"@angular/core\";\nimport { MdlLayoutTabPanelComponent } from \"./mdl-layout-tab-panel.component\";\nimport { MdlLayoutMediatorService } from \"./mdl-layout-mediator.service\";\n\n@Component({\n  selector: \"mdl-layout-header\",\n  template: `\n    <ng-content></ng-content>\n    <div\n      *ngIf=\"tabs?.toArray() && tabs.toArray().length > 0\"\n      class=\"mdl-layout__tab-bar-container\"\n    >\n      <div class=\"mdl-layout__tab-bar is-casting-shadow\">\n        <div\n          *ngFor=\"let tab of tabs.toArray()\"\n          class=\"mdl-layout__tab\"\n          [ngClass]=\"{ 'is-active': tab.isActive }\"\n          (mouseover)=\"onTabMouseover(tab)\"\n          (mouseout)=\"onTabMouseout(tab)\"\n        >\n          <div\n            *ngIf=\"tab.titleComponent\"\n            (click)=\"tabSelected(tab)\"\n            [mdl-ripple]=\"isRipple\"\n            [append-view-container-ref]=\"tab.titleComponent.vcRef\"\n          ></div>\n          <a\n            *ngIf=\"!tab.titleComponent\"\n            href=\"javascript:void(0)\"\n            (click)=\"tabSelected(tab)\"\n            class=\"mdl-layout__tab\"\n            [ngClass]=\"{ 'is-active': tab.isActive }\"\n            [mdl-ripple]=\"isRipple\"\n            >{{ tab.title }}</a\n          >\n        </div>\n      </div>\n    </div>\n  `,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlLayoutHeaderComponent {\n  @HostBinding(\"class.mdl-layout__header--seamed\")\n  isSeamed = false;\n  @HostBinding(\"class.mdl-layout__header\")\n  isLayoutHeader = true;\n  @HostBinding(\"class.is-compact\")\n  isCompact = false;\n\n  isAnimating = false;\n\n  isRipple = true;\n  // set from MdlLayoutComponent\n  mode: string | undefined;\n  el: HTMLElement;\n\n  // will be set from mdllayoutcomponent\n  tabs: QueryList<MdlLayoutTabPanelComponent> =\n    new QueryList<MdlLayoutTabPanelComponent>();\n\n  constructor(\n    private elementRef: ElementRef,\n    private layoutMediatorService: MdlLayoutMediatorService\n  ) {\n    this.el = elementRef.nativeElement;\n  }\n\n  @HostBinding(\"class.mdl-layout__header--waterfall\")\n  get isWaterfall(): boolean {\n    return this.mode === \"waterfall\";\n  }\n\n  @HostBinding(\"class.is-casting-shadow\") get isCastingShadow(): boolean {\n    return this.mode === \"standard\" || this.isCompact;\n  }\n\n  @HostBinding(\"class.mdl-layout__header--scroll\")\n  get isHeaderScroll(): boolean {\n    return this.mode === \"scroll\";\n  }\n\n  @HostListener(\"transitionend\")\n  onTransitionEnd(): void {\n    this.isAnimating = false;\n  }\n\n  @HostListener(\"click\")\n  onClick(): void {\n    if (this.isCompact) {\n      this.isCompact = false;\n      this.isAnimating = true;\n    }\n  }\n\n  onTabMouseover(tab: MdlLayoutTabPanelComponent): void {\n    this.layoutMediatorService.tabMouseover(tab);\n  }\n\n  onTabMouseout(tab: MdlLayoutTabPanelComponent): void {\n    this.layoutMediatorService.tabMouseout(tab);\n  }\n\n  tabSelected(tab: MdlLayoutTabPanelComponent): void {\n    this.layoutMediatorService.tabSelected(tab);\n  }\n}\n","import { Component, HostBinding, ViewEncapsulation } from \"@angular/core\";\n\n@Component({\n  selector: \"mdl-layout-drawer\",\n  template: ` <ng-content></ng-content>`,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlLayoutDrawerComponent {\n  @HostBinding(\"class.mdl-layout__drawer\")\n  isDrawer = true;\n\n  @HostBinding(\"class.is-visible\")\n  isDrawerVisible = false;\n}\n","import { Component, ViewContainerRef, ViewEncapsulation } from \"@angular/core\";\n\n@Component({\n  selector: \"mdl-tab-panel-title\",\n  template: ` <ng-content></ng-content> `,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlTabPanelTitleComponent {\n  constructor(public vcRef: ViewContainerRef) {}\n}\n","import {\n  Component,\n  ContentChild,\n  HostBinding,\n  Input,\n  ViewEncapsulation,\n} from \"@angular/core\";\nimport { MdlTabPanelTitleComponent } from \"../tabs/mdl-tab-panel-title.component\";\n\n@Component({\n  selector: \"mdl-layout-tab-panel\",\n  template: `\n    <ng-content\n      *ngIf=\"titleComponent\"\n      select=\"mdl-tab-panel-content\"\n    ></ng-content>\n    <ng-content *ngIf=\"!titleComponent\"></ng-content>\n  `,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlLayoutTabPanelComponent {\n  @ContentChild(MdlTabPanelTitleComponent, { static: true })\n  titleComponent: MdlTabPanelTitleComponent | undefined;\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  @Input(\"mdl-layout-tab-panel-title\")\n  title: string | undefined;\n\n  @HostBinding(\"class.mdl-layout__tab-panel\")\n  isLayoutTabPanel = true;\n\n  @HostBinding(\"class.is-active\")\n  isActive = false;\n}\n","import {\n  Component,\n  ContentChildren,\n  ElementRef,\n  HostBinding,\n  QueryList,\n  ViewEncapsulation,\n} from \"@angular/core\";\nimport { MdlLayoutTabPanelComponent } from \"./mdl-layout-tab-panel.component\";\n\n@Component({\n  selector: \"mdl-layout-content\",\n  template: ` <ng-content></ng-content>`,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlLayoutContentComponent {\n  @HostBinding(\"class.mdl-layout__content\")\n  isContent = true;\n  @ContentChildren(MdlLayoutTabPanelComponent)\n  tabs: QueryList<MdlLayoutTabPanelComponent> = new QueryList<MdlLayoutTabPanelComponent>();\n\n  el: HTMLElement;\n\n  constructor(private elRef: ElementRef) {\n    this.el = elRef.nativeElement;\n  }\n}\n","import { Component, HostBinding, ViewEncapsulation } from \"@angular/core\";\n\n@Component({\n  selector: \"mdl-icon\",\n  template: \"<ng-content></ng-content>\",\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlIconComponent {\n  @HostBinding(\"class.material-icons\")\n  isMatIcon = true;\n}\n","import {\n  AfterContentInit,\n  Component,\n  ContentChild,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  Inject,\n  Injectable,\n  InjectionToken,\n  Input,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  Optional,\n  Output,\n  QueryList,\n  Renderer2,\n  SimpleChanges,\n  ViewEncapsulation,\n} from \"@angular/core\";\nimport { EventManager } from \"@angular/platform-browser\";\nimport { MdlLayoutHeaderComponent } from \"./mdl-layout-header.component\";\nimport { MdlLayoutDrawerComponent } from \"./mdl-layout-drawer.component\";\nimport { MdlLayoutContentComponent } from \"./mdl-layout-content.component\";\nimport { BehaviorSubject, Observable, Subject, Subscription } from \"rxjs\";\nimport { toBoolean } from \"../common/boolean-property\";\nimport { toNumber } from \"../common/number.property\";\nimport { MdlError } from \"../common/mdl-error\";\nimport { MdlLayoutMediatorService } from \"./mdl-layout-mediator.service\";\nimport { MdlLayoutTabPanelComponent } from \"./mdl-layout-tab-panel.component\";\n\nconst ESCAPE = 27;\n\nconst STANDARD = \"standard\";\nconst WATERFALL = \"waterfall\";\nconst SCROLL = \"scroll\";\n\n/**\n * The LAYOUT_SCREEN_SIZE_THRESHOLD can be changed at the root module. Just provide a value for this InjectionToken:\n *\n * providers: [\n *  {provide:LAYOUT_SCREEN_SIZE_THRESHOLD, useValue: 768 }\n * ]\n *\n * you also need to change the scss variable to the same value: $layout-screen-size-threshold: 768px.\n *\n * It should be clear that this can only be used if you are using the scss and not the pre compiled css from getmdl.io.\n *\n */\nexport const LAYOUT_SCREEN_SIZE_THRESHOLD = new InjectionToken<number>(\n  \"layoutScreenSizeThreshold\"\n);\n\nexport class MdLUnsupportedLayoutTypeError extends MdlError {\n  constructor(type: string) {\n    /* istanbul ignore next */\n    super(\n      `Layout type \"${type}\" isn't supported by mdl-layout (allowed: standard, waterfall, scroll).`\n    );\n  }\n}\n\n@Injectable({\n  providedIn: \"root\",\n})\nexport class MdlScreenSizeService {\n  private sizesSubject: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(\n    false\n  );\n\n  private windowMediaQueryListener: (() => void) | null = null;\n\n  constructor(\n    ngZone: NgZone,\n    @Optional()\n    @Inject(LAYOUT_SCREEN_SIZE_THRESHOLD)\n    public layoutScreenSizeThreshold: number\n  ) {\n    // if no value is injected the default size wil be used. same as $layout-screen-size-threshold in scss\n    if (!this.layoutScreenSizeThreshold) {\n      this.layoutScreenSizeThreshold = 1024;\n    }\n\n    // do not try to access the window object if rendered on the server\n    if (typeof window === \"object\" && \"matchMedia\" in window) {\n      const query: MediaQueryList = window.matchMedia(\n        `(max-width: ${this.layoutScreenSizeThreshold}px)`\n      );\n\n      const queryListener = () => {\n        ngZone.run(() => {\n          this.sizesSubject.next(query.matches);\n        });\n      };\n      // - addEventListener not working in Safari\n      // eslint-disable-next-line\n      query.addListener(queryListener);\n      this.windowMediaQueryListener = () => {\n        // eslint-disable-next-line\n        query.removeListener(queryListener);\n      };\n      // set the initial state\n      this.sizesSubject.next(query.matches);\n    }\n  }\n\n  public isSmallScreen(): boolean {\n    return this.sizesSubject.value;\n  }\n\n  public sizes(): Observable<boolean> {\n    return this.sizesSubject.asObservable();\n  }\n\n  destroy(): void {\n    if (this.windowMediaQueryListener) {\n      this.windowMediaQueryListener();\n      this.windowMediaQueryListener = null;\n    }\n  }\n}\n\n@Component({\n  selector: \"mdl-layout\",\n  template: `\n    <div\n      class=\"mdl-layout__container\"\n      [ngClass]=\"{ 'has-scrolling-header': mode === 'scroll' }\"\n    >\n      <div\n        class=\"mdl-layout is-upgraded\"\n        [ngClass]=\"{\n          'is-small-screen': isSmallScreen,\n          'mdl-layout--fixed-drawer': isFixedDrawer,\n          'mdl-layout--fixed-header': isFixedHeader,\n          'mdl-layout--fixed-tabs': 'tabs.toArray().length > 0'\n        }\"\n      >\n        <ng-content select=\"mdl-layout-header\"></ng-content>\n        <ng-content select=\"mdl-layout-drawer\"></ng-content>\n        <div\n          *ngIf=\"drawers.length > 0 && isNoDrawer === false\"\n          class=\"mdl-layout__drawer-button\"\n          (click)=\"toggleDrawer()\"\n        >\n          <mdl-icon>&#xE5D2;</mdl-icon>\n        </div>\n        <ng-content select=\"mdl-layout-content\"></ng-content>\n        <div\n          class=\"mdl-layout__obfuscator\"\n          [ngClass]=\"{ 'is-visible': isDrawerVisible }\"\n          (click)=\"toggleDrawer()\"\n          (keydown)=\"obfuscatorKeyDown($event)\"\n        ></div>\n      </div>\n    </div>\n  `,\n  exportAs: \"mdlLayout\",\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlLayoutComponent\n  implements AfterContentInit, OnDestroy, OnChanges\n{\n  @ContentChild(MdlLayoutHeaderComponent)\n  header: MdlLayoutHeaderComponent | undefined;\n  // will be set to undefined, if not a direct child or not present in 2.0.0 i\n  // n 2.0.1 it is now the grand child drawer again :(\n  @ContentChildren(MdlLayoutDrawerComponent, { descendants: false })\n  drawers: QueryList<MdlLayoutDrawerComponent> = new QueryList<MdlLayoutDrawerComponent>();\n  @ContentChild(MdlLayoutContentComponent, { static: true })\n  content: MdlLayoutContentComponent | undefined;\n\n  // eslint-disable-next-line\n  @Input(\"mdl-layout-mode\")\n  mode: string = STANDARD;\n  // eslint-disable-next-line\n  @Output(\"mdl-layout-tab-active-changed\")\n  selectedTabEmitter = new EventEmitter();\n  // eslint-disable-next-line\n  @Output(\"mdl-layout-tab-mouseover\")\n  mouseoverTabEmitter = new EventEmitter();\n  // eslint-disable-next-line\n  @Output(\"mdl-layout-tab-mouseout\")\n  mouseoutTabEmitter = new EventEmitter();\n  // eslint-disable-next-line\n  @Output(\"open\")\n  // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n  onOpen = new EventEmitter<void>();\n  // eslint-disable-next-line\n  @Output(\"close\")\n  // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n  onClose = new EventEmitter<void>();\n  isDrawerVisible = false;\n  isSmallScreen = false;\n  private scrollListener:\n    | ((\n        target?: \"window\" | \"document\" | \"body\" | unknown,\n        eventName?: string,\n        callback?: (event: Event) => boolean | void\n      ) => void)\n    | undefined;\n  private isFixedDrawerIntern = false;\n  private isFixedHeaderIntern = false;\n  private isSeamedIntern = false;\n  private selectedIndexIntern: number | null | undefined = 0;\n  private isNoDrawerIntern = false;\n\n  private subscriptions: Subscription[] = [];\n\n  constructor(\n    private renderer: Renderer2,\n    private evm: EventManager,\n    private el: ElementRef,\n    private screenSizeService: MdlScreenSizeService,\n    private layoutMediatorService: MdlLayoutMediatorService\n  ) {}\n\n  @Input(\"mdl-layout-fixed-drawer\")\n  get isFixedDrawer(): boolean {\n    return this.isFixedDrawerIntern;\n  }\n\n  set isFixedDrawer(value: boolean | string) {\n    this.isFixedDrawerIntern = toBoolean(value);\n  }\n\n  @Input(\"mdl-layout-fixed-header\")\n  get isFixedHeader(): boolean {\n    return this.isFixedHeaderIntern;\n  }\n\n  set isFixedHeader(value: boolean | string) {\n    this.isFixedHeaderIntern = toBoolean(value);\n  }\n\n  @Input(\"mdl-layout-header-seamed\")\n  get isSeamed(): boolean {\n    return this.isSeamedIntern;\n  }\n\n  set isSeamed(value: boolean | string) {\n    this.isSeamedIntern = toBoolean(value);\n  }\n\n  @Input(\"mdl-layout-tab-active-index\")\n  get selectedIndex(): number {\n    return this.selectedIndexIntern ? this.selectedIndexIntern : 0;\n  }\n\n  set selectedIndex(value: number | undefined) {\n    this.selectedIndexIntern = toNumber(value);\n  }\n\n  @Input(\"mdl-layout-no-drawer-button\")\n  get isNoDrawer(): boolean {\n    return this.isNoDrawerIntern;\n  }\n\n  set isNoDrawer(value: boolean | string) {\n    this.isNoDrawerIntern = toBoolean(value);\n  }\n\n  ngAfterContentInit(): void {\n    this.validateMode();\n\n    if (this.header && this.content && this.content.tabs) {\n      this.header.tabs = this.content.tabs;\n      this.updateSelectedTabIndex();\n    }\n\n    if (this.header && this.header.tabs) {\n      this.subscriptions.push(\n        this.layoutMediatorService\n          .onTabMouseOut()\n          .subscribe((tab: MdlLayoutTabPanelComponent) => {\n            this.onTabMouseout(tab);\n          })\n      );\n\n      this.subscriptions.push(\n        this.layoutMediatorService\n          .onTabMouseover()\n          .subscribe((tab: MdlLayoutTabPanelComponent) => {\n            this.onTabMouseover(tab);\n          })\n      );\n\n      this.subscriptions.push(\n        this.layoutMediatorService\n          .onTabSelected()\n          .subscribe((tab: MdlLayoutTabPanelComponent) => {\n            this.tabSelected(tab);\n          })\n      );\n    }\n  }\n\n  public ngOnChanges(changes: SimpleChanges): void {\n    if (changes[\"selectedIndex\"]) {\n      this.updateSelectedTabIndex();\n    }\n  }\n\n  toggleDrawer(): void {\n    this.isDrawerVisible = !this.isDrawerVisible;\n    if (this.drawers && this.drawers.length > 0) {\n      this.setDrawerVisible(this.isDrawerVisible);\n    }\n  }\n\n  closeDrawer(): void {\n    this.isDrawerVisible = false;\n    if (this.drawers && this.drawers.length > 0) {\n      this.setDrawerVisible(false);\n    }\n  }\n\n  openDrawer(): void {\n    this.isDrawerVisible = true;\n    if (this.drawers && this.drawers.length > 0) {\n      this.setDrawerVisible(true);\n    }\n  }\n\n  obfuscatorKeyDown($event: KeyboardEvent): void {\n    if ($event.keyCode === ESCAPE) {\n      this.toggleDrawer();\n    }\n  }\n\n  ngOnDestroy(): void {\n    if (this.scrollListener) {\n      this.scrollListener();\n      this.scrollListener = undefined;\n    }\n    this.subscriptions.forEach((sub) => sub.unsubscribe());\n  }\n\n  closeDrawerOnSmallScreens(): void {\n    if (this.isSmallScreen && this.isDrawerVisible) {\n      this.closeDrawer();\n    }\n  }\n\n  openDrawerOnSmallScreens(): void {\n    if (this.isSmallScreen && !this.isDrawerVisible) {\n      this.openDrawer();\n    }\n  }\n\n  hasDrawer(): boolean {\n    return !!(this.drawers && this.drawers.length > 0);\n  }\n\n  private tabSelected(tab: MdlLayoutTabPanelComponent) {\n    const index = this.header?.tabs.toArray().indexOf(tab);\n    if (index !== this.selectedIndex) {\n      this.selectedIndex = index;\n      this.updateSelectedTabIndex();\n      this.selectedTabEmitter.emit({ index: this.selectedIndex });\n    }\n  }\n\n  private onTabMouseover(tab: MdlLayoutTabPanelComponent) {\n    const index = this.header?.tabs.toArray().indexOf(tab);\n    this.mouseoverTabEmitter.emit({ index });\n  }\n\n  private onTabMouseout(tab: MdlLayoutTabPanelComponent) {\n    const index = this.header?.tabs.toArray().indexOf(tab);\n    this.mouseoutTabEmitter.emit({ index });\n  }\n\n  private updateSelectedTabIndex() {\n    if (this.header && this.header.tabs) {\n      this.header.tabs.forEach((tab) => (tab.isActive = false));\n      if (\n        this.header.tabs.toArray().length > 0 &&\n        this.selectedIndex < this.header.tabs.toArray().length &&\n        this.selectedIndex !== -1\n      ) {\n        this.header.tabs.toArray()[this.selectedIndex].isActive = true;\n      }\n    }\n  }\n\n  private validateMode() {\n    if (this.mode === \"\") {\n      this.mode = STANDARD;\n    }\n    if ([STANDARD, WATERFALL, SCROLL].indexOf(this.mode) === -1) {\n      throw new MdLUnsupportedLayoutTypeError(this.mode);\n    }\n\n    if (this.header) {\n      // inform the header about the mode\n      this.header.mode = this.mode;\n      this.header.isSeamed = this.isSeamed;\n    }\n\n    if (this.content) {\n      this.scrollListener = this.renderer.listen(\n        this.content.el,\n        \"scroll\",\n        () => {\n          this.onScroll(this.content?.el.scrollTop);\n          return true;\n        }\n      );\n\n      this.screenSizeService.sizes().subscribe((isSmall: boolean) => {\n        this.onQueryChange(isSmall);\n      });\n    }\n  }\n\n  private onScroll(scrollTop: number | undefined) {\n    if (this.mode !== WATERFALL) {\n      return;\n    }\n\n    if (this.header?.isAnimating) {\n      return;\n    }\n\n    const headerVisible = !this.isSmallScreen || this.isFixedHeader;\n    if (this.header) {\n      if (scrollTop != null && scrollTop > 0 && !this.header.isCompact) {\n        this.header.isCompact = true;\n        if (headerVisible) {\n          this.header.isAnimating = true;\n        }\n      } else if (scrollTop != null && scrollTop <= 0 && this.header.isCompact) {\n        this.header.isCompact = false;\n        if (headerVisible) {\n          this.header.isAnimating = true;\n        }\n      }\n    }\n  }\n\n  private onQueryChange(isSmall: boolean) {\n    if (isSmall) {\n      this.isSmallScreen = true;\n    } else {\n      this.isSmallScreen = false;\n      this.closeDrawer();\n    }\n  }\n\n  private setDrawerVisible(visible: boolean) {\n    this.drawers.first.isDrawerVisible = visible;\n    if (this.drawers.first.isDrawerVisible) {\n      this.onOpen.emit();\n    } else {\n      this.onClose.emit();\n    }\n  }\n}\n","import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n  // eslint-disable-next-line\n  selector: 'mdl-layout-header[mdl-layout-header-transparent]'\n})\nexport class MdlLayoutHeaderTransparentDirective {\n  @HostBinding(\"class.mdl-layout__header--transparent\")\n  isTransparent = true;\n}\n","import { Component, HostBinding, ViewEncapsulation } from \"@angular/core\";\n\n@Component({\n  selector: \"mdl-layout-header-row\",\n  template: \"<ng-content></ng-content>\",\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlLayoutHeaderRowComponent {\n  @HostBinding(\"class.mdl-layout__header-row\")\n  isHeaderRow = true;\n}\n","import { Component, HostBinding, ViewEncapsulation } from \"@angular/core\";\n\n@Component({\n  selector: \"mdl-layout-title\",\n  template: \"<ng-content></ng-content>\",\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlLayoutTitleComponent {\n  @HostBinding(\"class.mdl-layout-title\")\n  isLayoutTitle = true;\n}\n","import { Component, HostBinding, ViewEncapsulation } from \"@angular/core\";\n\n@Component({\n  selector: \"mdl-layout-spacer\",\n  template: \"\",\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlLayoutSpacerComponent {\n  @HostBinding(\"class.mdl-layout-spacer\")\n  isLayoutSpacer = true;\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { MdlIconComponent } from \"./mdl-icon.component\";\n\nexport * from \"./mdl-icon.component\";\n\nconst MDL_ICON_DIRECTIVES = [MdlIconComponent];\n\n@NgModule({\n  imports: [],\n  exports: MDL_ICON_DIRECTIVES,\n  declarations: MDL_ICON_DIRECTIVES,\n})\nexport class MdlIconModule {\n  static forRoot(): ModuleWithProviders<MdlIconModule> {\n    return {\n      ngModule: MdlIconModule,\n      providers: [],\n    };\n  }\n}\n","import {\n  Component,\n  ContentChild,\n  HostBinding,\n  Input,\n  ViewEncapsulation,\n} from \"@angular/core\";\nimport { MdlTabPanelTitleComponent } from \"./mdl-tab-panel-title.component\";\n\n@Component({\n  selector: \"mdl-tab-panel-content\",\n  template: \"<ng-content></ng-content>\",\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlTabPanelContentComponent {}\n\n@Component({\n  selector: \"mdl-tab-panel\",\n  template: `\n    <ng-content\n      *ngIf=\"titleComponent\"\n      select=\"mdl-tab-panel-content\"\n    ></ng-content>\n    <ng-content *ngIf=\"!titleComponent\"></ng-content>\n  `,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlTabPanelComponent {\n  @ContentChild(MdlTabPanelTitleComponent, { static: true })\n  titleComponent: MdlTabPanelTitleComponent | undefined;\n  // eslint-disable-next-line\n  @Input(\"mdl-tab-panel-title\")\n  title: string | undefined;\n  // eslint-disable-next-line\n  @Input(\"disabled\")\n  disabled: boolean | undefined;\n  @HostBinding(\"class.mdl-tabs__panel\")\n  isTabPanel = true;\n  @HostBinding(\"class.is-active\")\n  isActive = false;\n}\n","import {\n  AfterContentInit,\n  Component,\n  ContentChildren,\n  EventEmitter,\n  HostBinding,\n  Input,\n  OnChanges,\n  Output,\n  QueryList,\n  SimpleChanges,\n  ViewEncapsulation,\n} from \"@angular/core\";\n\nimport { MdlTabPanelComponent } from \"./mdl-tab-panel.component\";\nimport { toNumber } from \"../common/number.property\";\nimport { toBoolean } from \"../common/boolean-property\";\n\n@Component({\n  selector: \"mdl-tabs\",\n  template: `\n    <div class=\"mdl-tabs__tab-bar\">\n      <div *ngFor=\"let tab of tabs.toArray()\">\n        <div\n          *ngIf=\"tab.titleComponent\"\n          class=\"mdl-tabs__tab\"\n          (click)=\"tabSelected(tab)\"\n          [mdl-ripple]=\"isRipple && !tab.disabled\"\n          [ngClass]=\"{ 'is-active': tab.isActive, disabled: tab.disabled }\"\n          [append-view-container-ref]=\"tab.titleComponent.vcRef\"\n        ></div>\n        <a\n          *ngIf=\"!tab.titleComponent\"\n          href=\"javascript:void(0)\"\n          (click)=\"tabSelected(tab)\"\n          class=\"mdl-tabs__tab\"\n          [mdl-ripple]=\"isRipple && !tab.disabled\"\n          [ngClass]=\"{ 'is-active': tab.isActive, disabled: tab.disabled }\"\n          >{{ tab.title }}</a\n        >\n      </div>\n    </div>\n    <ng-content></ng-content>\n  `,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlTabsComponent implements AfterContentInit, OnChanges {\n  // eslint-disable-next-line\n  @Output(\"mdl-tab-active-changed\")\n  selectedTabEmitter = new EventEmitter();\n  @ContentChildren(MdlTabPanelComponent)\n  tabs: QueryList<MdlTabPanelComponent> = new QueryList<MdlTabPanelComponent>();\n\n  @HostBinding(\"class.mdl-tabs\")\n  isTabs = true;\n  @HostBinding(\"class.is-upgraded\")\n  isUpgraded = true;\n\n  private selectedIndexIntern = 0;\n  private isRippleIntern = false;\n\n  @Input(\"mdl-tab-active-index\")\n  get selectedIndex(): number {\n    return this.selectedIndexIntern;\n  }\n\n  set selectedIndex(value: number | string) {\n    this.selectedIndexIntern = toNumber(value) ?? 0;\n  }\n\n  @Input(\"mdl-ripple\")\n  get isRipple(): boolean {\n    return this.isRippleIntern;\n  }\n\n  set isRipple(value: boolean | string) {\n    this.isRippleIntern = toBoolean(value);\n  }\n\n  ngAfterContentInit(): void {\n    // the initial tabs\n    this.updateSelectedTabIndex();\n    // listen to tab changes - this would not be necessary if this would be fixed:\n    // https://github.com/angular/angular/issues/12818\n    this.tabs.changes.subscribe(() => {\n      this.updateSelectedTabIndex();\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes[\"selectedIndex\"]) {\n      this.updateSelectedTabIndex();\n    }\n  }\n\n  tabSelected(tab: MdlTabPanelComponent): void {\n    if (tab.disabled) {\n      return;\n    }\n\n    const index = this.tabs.toArray().indexOf(tab);\n    if (index !== this.selectedIndex) {\n      this.selectedIndex = index;\n      this.updateSelectedTabIndex();\n      this.selectedTabEmitter.emit({ index: this.selectedIndex });\n    }\n  }\n\n  private updateSelectedTabIndex() {\n    if (this.tabs) {\n      // https://github.com/angular/angular/issues/6005\n      // this would not be necessare if this would be fixed: https://github.com/angular/angular/issues/12818\n      setTimeout(() => {\n        this.tabs.forEach((tab, idx) => {\n          tab.isActive = this.selectedIndex === idx;\n        });\n      }, 1);\n    }\n  }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport {\n  MdlAnchorRippleDirective,\n  MdlButtonRippleDirective,\n  MdlCheckboxRippleDirective,\n  MdlIconToggleRippleDirective,\n  MdlMenuItemRippleDirective,\n  MdlRadioRippleDirective,\n  MdlSwitchRippleDirective,\n} from \"./mdl-ripple.directive\";\n\nconst MDL_RIPPLE_DIRECTIVES = [\n  MdlCheckboxRippleDirective,\n  MdlButtonRippleDirective,\n  MdlRadioRippleDirective,\n  MdlIconToggleRippleDirective,\n  MdlSwitchRippleDirective,\n  MdlMenuItemRippleDirective,\n  MdlAnchorRippleDirective,\n];\n\n@NgModule({\n  imports: [],\n  exports: MDL_RIPPLE_DIRECTIVES,\n  declarations: MDL_RIPPLE_DIRECTIVES,\n})\nexport class MdlRippleModule {\n  public static forRoot(): ModuleWithProviders<MdlRippleModule> {\n    return {\n      ngModule: MdlRippleModule,\n      providers: [],\n    };\n  }\n}\n\nexport * from \"../ripple/mdl-ripple.directive\";\n","import { MdlTabsComponent } from \"./mdl-tabs.component\";\nimport {\n  MdlTabPanelComponent,\n  MdlTabPanelContentComponent,\n} from \"./mdl-tab-panel.component\";\nimport { MdlTabPanelTitleComponent } from \"./mdl-tab-panel-title.component\";\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\n\nimport { CommonModule } from \"@angular/common\";\nimport { MdlCommonsModule } from \"../common/mdl-common.module\";\nimport { MdlRippleModule } from \"../ripple/mdl-ripple.module\";\n\nexport * from \"./mdl-tabs.component\";\nexport * from \"./mdl-tab-panel.component\";\nexport * from \"./mdl-tab-panel-title.component\";\n\nconst MDL_TABS_DIRECTIVES = [\n  MdlTabsComponent,\n  MdlTabPanelComponent,\n  MdlTabPanelTitleComponent,\n  MdlTabPanelContentComponent,\n];\n\n@NgModule({\n  imports: [MdlCommonsModule, MdlRippleModule, CommonModule, MdlRippleModule],\n  exports: MDL_TABS_DIRECTIVES,\n  declarations: [...MDL_TABS_DIRECTIVES],\n})\nexport class MdlTabsModule {\n  public static forRoot(): ModuleWithProviders<MdlTabsModule> {\n    return {\n      ngModule: MdlTabsModule,\n      providers: [],\n    };\n  }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport {\n  MdlLayoutComponent,\n  MdlScreenSizeService,\n} from \"./mdl-layout.component\";\nimport { MdlLayoutHeaderComponent } from \"./mdl-layout-header.component\";\nimport { MdlLayoutDrawerComponent } from \"./mdl-layout-drawer.component\";\nimport { MdlLayoutContentComponent } from \"./mdl-layout-content.component\";\nimport { MdlLayoutHeaderTransparentDirective } from \"./mdl-layout-header-transparent.directive\";\nimport { MdlLayoutHeaderRowComponent } from \"./mdl-layout-header-row.component\";\nimport { MdlLayoutTitleComponent } from \"./mdl-layout-title.component\";\nimport { MdlLayoutSpacerComponent } from \"./mdl-layout-spacer.component\";\nimport { MdlLayoutTabPanelComponent } from \"./mdl-layout-tab-panel.component\";\n\nimport { CommonModule } from \"@angular/common\";\nimport { MdlIconModule } from \"../icon/mdl-icon.module\";\nimport { MdlCommonsModule } from \"../common/mdl-common.module\";\nimport { MdlTabsModule } from \"../tabs/mdl-tabs.module\";\nimport { MdlRippleModule } from \"../ripple/mdl-ripple.module\";\n\nconst MDL_LAYOUT_DIRECTIVES = [\n  MdlLayoutComponent,\n  MdlLayoutHeaderComponent,\n  MdlLayoutDrawerComponent,\n  MdlLayoutContentComponent,\n  MdlLayoutHeaderTransparentDirective,\n  MdlLayoutHeaderRowComponent,\n  MdlLayoutTitleComponent,\n  MdlLayoutSpacerComponent,\n  MdlLayoutTabPanelComponent,\n];\n\nexport * from \"./mdl-layout.component\";\nexport * from \"./mdl-layout-header.component\";\nexport * from \"./mdl-layout-drawer.component\";\nexport * from \"./mdl-layout-content.component\";\nexport * from \"./mdl-layout-header-transparent.directive\";\nexport * from \"./mdl-layout-header-row.component\";\nexport * from \"./mdl-layout-title.component\";\nexport * from \"./mdl-layout-spacer.component\";\nexport * from \"./mdl-layout-tab-panel.component\";\n\n@NgModule({\n  imports: [\n    MdlIconModule,\n    MdlCommonsModule,\n    MdlRippleModule,\n    MdlTabsModule,\n    CommonModule,\n  ],\n  exports: MDL_LAYOUT_DIRECTIVES,\n  declarations: MDL_LAYOUT_DIRECTIVES,\n})\nexport class MdlLayoutModule {\n  static forRoot(): ModuleWithProviders<MdlLayoutModule> {\n    return {\n      ngModule: MdlLayoutModule,\n      providers: [MdlScreenSizeService],\n    };\n  }\n}\n","import {\n  Directive,\n  ElementRef,\n  HostBinding,\n  Input,\n  OnChanges,\n  Renderer2,\n} from \"@angular/core\";\n\nconst DATA_BADE_ATTR = \"data-badge\";\n\n@Directive({\n  // eslint-disable-next-line\n  selector: \"[mdl-badge]\",\n})\nexport class MdlBadgeDirective implements OnChanges {\n  @Input(\"mdl-badge\") public mdlBadgeContent: number | string | undefined;\n\n  @HostBinding(\"class.mdl-badge\") isBadge = true;\n\n  private readonly el: HTMLElement;\n\n  constructor(private elementRef: ElementRef, private renderer: Renderer2) {\n    this.el = elementRef.nativeElement;\n  }\n\n  public ngOnChanges(): void {\n    if (\n      this.mdlBadgeContent === null ||\n      typeof this.mdlBadgeContent === \"undefined\"\n    ) {\n      this.renderer.removeAttribute(this.el, DATA_BADE_ATTR);\n      return;\n    }\n    this.renderer.setAttribute(\n      this.el,\n      DATA_BADE_ATTR,\n      String(this.mdlBadgeContent)\n    );\n  }\n}\n\n@Directive({\n  // eslint-disable-next-line\n  selector: \"[mdl-badge-overlap]\",\n})\nexport class MdlBadgeOverlapDirective {\n  @HostBinding(\"class.mdl-badge--overlap\") isOverlapping = true;\n}\n\n@Directive({\n  // eslint-disable-next-line\n  selector: \"[mdl-badge-no-background]\",\n})\nexport class MdlBadgeNoBackgroundDirective {\n  @HostBinding(\"class.mdl-badge--no-background\") isNoBackground = true;\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport {\n  MdlBadgeDirective,\n  MdlBadgeNoBackgroundDirective,\n  MdlBadgeOverlapDirective,\n} from \"./mdl-badge.directive\";\n\nconst MDL_BADGE_DIRECTIVES = [\n  MdlBadgeDirective,\n  MdlBadgeOverlapDirective,\n  MdlBadgeNoBackgroundDirective,\n];\n\n@NgModule({\n  imports: [],\n  exports: MDL_BADGE_DIRECTIVES,\n  declarations: MDL_BADGE_DIRECTIVES,\n})\nexport class MdlBadgeModule {\n  public static forRoot(): ModuleWithProviders<MdlBadgeModule> {\n    return {\n      ngModule: MdlBadgeModule,\n      providers: [],\n    };\n  }\n}\n\nexport * from \"./mdl-badge.directive\";\n","import {\n  Component,\n  ElementRef,\n  HostBinding,\n  HostListener,\n  Input,\n  OnChanges,\n  ViewEncapsulation,\n} from \"@angular/core\";\nimport { MdlError } from \"../common/mdl-error\";\nimport { toBoolean } from \"../common/boolean-property\";\nimport { callNative } from \"../common/native-support\";\n\nexport class MdlUnsupportedButtonTypeError extends MdlError {\n  constructor(type: string) {\n    /* istanbul ignore next */\n    super(\n      `Button type \"${type}\" isn't supported (allowed: raised, fab, mini-fab, icon, '').`\n    );\n  }\n}\n\nexport class MdlUnsupportedColoredTypeError extends MdlError {\n  constructor(type: string) {\n    /* istanbul ignore next */\n    super(\n      `Colored type \"${type}\" isn't supported (allowed: primary, accent, '').`\n    );\n  }\n}\n\nconst MDL_BUTTON_TYPES = [\"raised\", \"fab\", \"mini-fab\", \"icon\", \"\"];\n\nconst MDL_COLORED_TYPES = [\"primary\", \"accent\", \"\"];\n\nexport type MdlButtonType = \"raised\" | \"fab\" | \"mini-fab\" | \"icon\" | \"\";\nexport type MdlColorType = \"primary\" | \"accent\" | \"\";\n\n@Component({\n  selector: \"mdl-button, button[mdl-button], a[mdl-button]\",\n  exportAs: \"mdlButton\",\n  template: \"<ng-content></ng-content>\",\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlButtonComponent implements OnChanges {\n  @HostBinding(\"class.mdl-button\")\n  isButton = true;\n\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  @Input(\"mdl-button-type\")\n  mdlButtonType: MdlButtonType = \"\";\n\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  @Input(\"mdl-colored\")\n  mdlColoredType: MdlColorType = \"\";\n\n  readonly element: HTMLElement;\n  private disabledIntern = false;\n\n  constructor(public elementRef: ElementRef) {\n    this.element = elementRef.nativeElement;\n  }\n\n  @HostBinding(\"attr.disabled\") get isDisable(): string | null {\n    return this.disabled ? \"disabled\" : null;\n  }\n\n  @HostBinding(\"class.mdl-button--raised\") get raised(): boolean {\n    return this.mdlButtonType === \"raised\";\n  }\n\n  @HostBinding(\"class.mdl-button--fab\") get fab(): boolean {\n    return this.mdlButtonType === \"fab\" || this.mdlButtonType === \"mini-fab\";\n  }\n\n  @HostBinding(\"class.mdl-button--mini-fab\") get miniFab(): boolean {\n    return this.mdlButtonType === \"mini-fab\";\n  }\n\n  @HostBinding(\"class.mdl-button--icon\") get icon(): boolean {\n    return this.mdlButtonType === \"icon\";\n  }\n\n  @HostBinding(\"class.mdl-button--primary\") get primary(): boolean {\n    return this.mdlColoredType === \"primary\";\n  }\n\n  @HostBinding(\"class.mdl-button--accent\") get accent(): boolean {\n    return this.mdlColoredType === \"accent\";\n  }\n\n  @Input()\n  get disabled(): boolean {\n    return this.disabledIntern;\n  }\n\n  set disabled(value: boolean | string) {\n    this.disabledIntern = toBoolean(value);\n  }\n\n  @HostListener(\"mouseup\")\n  onMouseUp(): void {\n    this.blurIt();\n  }\n\n  @HostListener(\"mouseleave\")\n  onMouseLeave(): void {\n    this.blurIt();\n  }\n\n  ngOnChanges(): void {\n    if (\n      this.mdlButtonType &&\n      MDL_BUTTON_TYPES.indexOf(this.mdlButtonType) === -1\n    ) {\n      throw new MdlUnsupportedButtonTypeError(this.mdlButtonType);\n    }\n\n    if (\n      this.mdlColoredType &&\n      MDL_COLORED_TYPES.indexOf(this.mdlColoredType) === -1\n    ) {\n      throw new MdlUnsupportedColoredTypeError(this.mdlColoredType);\n    }\n  }\n\n  blurIt(): void {\n    callNative(this.element, \"blur\");\n  }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { MdlButtonComponent } from \"./mdl-button.component\";\n\nconst MDL_BUTTON_DIRECTIVES = [MdlButtonComponent];\n\n@NgModule({\n  imports: [],\n  exports: MDL_BUTTON_DIRECTIVES,\n  declarations: MDL_BUTTON_DIRECTIVES,\n})\nexport class MdlButtonModule {\n  public static forRoot(): ModuleWithProviders<MdlButtonModule> {\n    return {\n      ngModule: MdlButtonModule,\n      providers: [],\n    };\n  }\n}\n\nexport * from \"./mdl-button.component\";\n","import {\n  Component,\n  Directive,\n  HostBinding,\n  OnInit,\n  Optional,\n  ViewEncapsulation,\n} from \"@angular/core\";\nimport { MdlStructureError } from \"../common/mdl-error\";\n\n@Component({\n  selector: \"mdl-card\",\n  template: \"<ng-content></ng-content>\",\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlCardComponent {\n  @HostBinding(\"class.mdl-card\") isCard = true;\n}\n\n@Directive()\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class MdlCardChildStructure implements OnInit {\n  constructor(\n    private mdlCardComponent: MdlCardComponent,\n    private childComponentName: string\n  ) {}\n\n  ngOnInit(): void {\n    if (this.mdlCardComponent === null) {\n      throw new MdlStructureError(this.childComponentName, \"mdl-card\");\n    }\n  }\n}\n\n@Component({\n  selector: \"mdl-card-title\",\n  template: \"<ng-content></ng-content>\",\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlCardTitleComponent extends MdlCardChildStructure {\n  @HostBinding(\"class.mdl-card__title\")\n  isCardTitle = true;\n\n  constructor(@Optional() mdlCardComponent: MdlCardComponent) {\n    super(mdlCardComponent, \"mdl-card-title\");\n  }\n}\n\n@Component({\n  selector: \"mdl-card-supporting-text\",\n  template: \"<ng-content></ng-content>\",\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlCardSupportingTextComponent extends MdlCardChildStructure {\n  @HostBinding(\"class.mdl-card__supporting-text\")\n  isSupportingText = true;\n\n  constructor(@Optional() mdlCardComponent: MdlCardComponent) {\n    super(mdlCardComponent, \"mdl-card-supporting-text\");\n  }\n}\n\n@Component({\n  selector: \"mdl-card-media\",\n  template: \"<ng-content></ng-content>\",\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlCardMediaComponent extends MdlCardChildStructure {\n  @HostBinding(\"class.mdl-card__media\")\n  isCardMedia = true;\n\n  constructor(@Optional() mdlCardComponent: MdlCardComponent) {\n    super(mdlCardComponent, \"mdl-card-media\");\n  }\n}\n\n@Component({\n  selector: \"mdl-card-actions\",\n  template: \"<ng-content></ng-content>\",\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlCardActionsComponent extends MdlCardChildStructure {\n  @HostBinding(\"class.mdl-card__actions\")\n  isCardAction = true;\n\n  constructor(@Optional() mdlCardComponent: MdlCardComponent) {\n    super(mdlCardComponent, \"mdl-card-actions\");\n  }\n}\n\n@Component({\n  selector: \"mdl-card-menu\",\n  template: \"<ng-content></ng-content>\",\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlCardMenuComponent extends MdlCardChildStructure {\n  @HostBinding(\"class.mdl-card__menu\")\n  isCardMenu = true;\n\n  constructor(@Optional() mdlCardComponent: MdlCardComponent) {\n    super(mdlCardComponent, \"mdl-card-menu\");\n  }\n}\n\n@Directive({\n  // eslint-disable-next-line\n  selector: '[mdl-card-title-text]'\n})\nexport class MdlCardTitleTextDirective {\n  @HostBinding(\"class.mdl-card__title-text\")\n  isCardTitleText = true;\n}\n\n@Directive({\n  // eslint-disable-next-line\n  selector: '[mdl-card-border]'\n})\nexport class MdlCardBorderDirective {\n  @HostBinding(\"class.mdl-card--border\")\n  isCardBorder = true;\n}\n\n@Directive({\n  // eslint-disable-next-line\n  selector: '[mdl-card-expand]'\n})\nexport class MdlCardExpandDirective {\n  @HostBinding(\"class.mdl-card--expand\")\n  isCardExpand = true;\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport {\n  MdlCardActionsComponent,\n  MdlCardBorderDirective,\n  MdlCardComponent,\n  MdlCardExpandDirective,\n  MdlCardMediaComponent,\n  MdlCardMenuComponent,\n  MdlCardSupportingTextComponent,\n  MdlCardTitleComponent,\n  MdlCardTitleTextDirective,\n} from \"./mdl-card.component\";\n\nconst MDL_CARD_DIRECTIVES = [\n  MdlCardComponent,\n  MdlCardTitleComponent,\n  MdlCardMediaComponent,\n  MdlCardSupportingTextComponent,\n  MdlCardActionsComponent,\n  MdlCardMenuComponent,\n  MdlCardTitleTextDirective,\n  MdlCardBorderDirective,\n  MdlCardExpandDirective,\n];\n\n@NgModule({\n  imports: [],\n  exports: MDL_CARD_DIRECTIVES,\n  declarations: MDL_CARD_DIRECTIVES,\n})\nexport class MdlCardModule {\n  public static forRoot(): ModuleWithProviders<MdlCardModule> {\n    return {\n      ngModule: MdlCardModule,\n      providers: [],\n    };\n  }\n}\n\nexport * from \"./mdl-card.component\";\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  HostListener,\n  Input,\n  Output,\n  Provider,\n  Renderer2,\n  ViewEncapsulation,\n} from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { toBoolean } from \"../common/boolean-property\";\nimport { noop } from \"../common/noop\";\n\nconst IS_FOCUSED = \"is-focused\";\nexport const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: Provider = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => MdlCheckboxComponent),\n  multi: true,\n};\n\n@Component({\n  selector: \"mdl-checkbox\",\n  providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR],\n  template: `\n    <input\n      type=\"checkbox\"\n      class=\"mdl-checkbox__input\"\n      (focus)=\"onFocus()\"\n      (blur)=\"onBlur()\"\n      [disabled]=\"disabled\"\n      [attr.tabindex]=\"tabindex\"\n      [ngModel]=\"value\"\n    />\n    <span class=\"mdl-checkbox__label\"><ng-content></ng-content></span>\n    <span class=\"mdl-checkbox__focus-helper\"></span>\n    <span class=\"mdl-checkbox__box-outline\">\n      <span class=\"mdl-checkbox__tick-outline\"></span>\n    </span>\n  `,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MdlCheckboxComponent implements ControlValueAccessor {\n  @Input()\n  tabindex: number | null = null;\n\n  get value(): boolean {\n    return this.internalValue;\n  }\n\n  @Input()\n  @HostBinding(\"class.is-checked\")\n  set value(v: boolean) {\n    this.internalValue = v;\n    this.onChangeCallback(v);\n    this.change.emit(v);\n  }\n\n  get disabled(): boolean {\n    return this.internalDisabled;\n  }\n\n  @Input()\n  @HostBinding(\"class.is-disabled\")\n  set disabled(value: boolean) {\n    this.internalDisabled = toBoolean(value);\n  }\n\n  @Output()\n  // eslint-disable-next-line  @angular-eslint/no-output-native\n  change: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n  @HostBinding(\"class.mdl-checkbox\")\n  isCheckbox = true;\n\n  @HostBinding(\"class.is-upgraded\")\n  isUpgraded = true;\n\n  private readonly el: HTMLElement;\n  private onTouchedCallback: () => void = noop;\n  private onChangeCallback: (_: unknown) => void = noop;\n  private internalValue = false;\n  private internalDisabled = false;\n\n  constructor(private elementRef: ElementRef, private renderer: Renderer2) {\n    this.el = elementRef.nativeElement;\n  }\n\n  @HostListener(\"click\")\n  onClick(): void {\n    if (this.disabled) {\n      return;\n    }\n    this.value = !this.value;\n  }\n\n  writeValue(value: boolean): void {\n    this.internalValue = value;\n  }\n\n  registerOnChange(fn: () => unknown): void {\n    this.onChangeCallback = fn;\n  }\n\n  registerOnTouched(fn: () => unknown): void {\n    this.onTouchedCallback = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n  }\n\n  onFocus(): void {\n    this.renderer.addClass(this.el, IS_FOCUSED);\n  }\n\n  onBlur(): void {\n    this.renderer.removeClass(this.el, IS_FOCUSED);\n    this.onTouchedCallback();\n  }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { MdlCheckboxComponent } from \"./mdl-checkbox.component\";\n\nconst MDL_CHECKBOX_DIRECTIVES = [MdlCheckboxComponent];\n\n@NgModule({\n  imports: [CommonModule, FormsModule],\n  exports: MDL_CHECKBOX_DIRECTIVES,\n  declarations: MDL_CHECKBOX_DIRECTIVES,\n})\nexport class MdlCheckboxModule {\n  static forRoot(): ModuleWithProviders<MdlCheckboxModule> {\n    return {\n      ngModule: MdlCheckboxModule,\n      providers: [],\n    };\n  }\n}\n\nexport * from \"./mdl-checkbox.component\";\n","import {\n  Component,\n  EventEmitter,\n  HostBinding,\n  Input,\n  Output,\n  ViewEncapsulation,\n} from \"@angular/core\";\n\n@Component({\n  selector: \"mdl-chip\",\n  template: `\n    <ng-content></ng-content>\n    <span *ngIf=\"mdlLabel\" class=\"mdl-chip__text\">{{ mdlLabel }}</span>\n    <button\n      *ngIf=\"mdlActionIcon\"\n      (click)=\"action()\"\n      type=\"button\"\n      class=\"mdl-chip__action\"\n    >\n      <mdl-icon>{{ mdlActionIcon }}</mdl-icon>\n    </button>\n  `,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlChipComponent {\n  // eslint-disable-next-line\n  @Input(\"mdl-label\")\n  mdlLabel: string | undefined;\n\n  // eslint-disable-next-line\n  @Input(\"mdl-action-icon\")\n  mdlActionIcon: string | undefined;\n\n  // eslint-disable-next-line\n  @Output(\"action-click\")\n  actionClick = new EventEmitter();\n\n  @HostBinding(\"class.mdl-chip\")\n  isChip = true;\n\n  @HostBinding(\"class.mdl-chip--contact\")\n  isChipContact = false;\n\n  action(): void {\n    this.actionClick.emit();\n  }\n}\n","import {\n  Directive,\n  HostBinding,\n  Inject,\n  OnInit,\n  Optional,\n} from \"@angular/core\";\nimport { MdlChipComponent } from \"./mdl-chip.component\";\nimport { MdlStructureError } from \"../common/mdl-error\";\n\n@Directive({\n  // eslint-disable-next-line\n  selector: '[mdl-chip-contact]'\n})\nexport class MdlChipContactDirective implements OnInit {\n  @HostBinding(\"class.mdl-chip__contact\") isChipContact = true;\n\n  constructor(\n    @Optional()\n    @Inject(MdlChipComponent)\n    private mdlChipComponent: MdlChipComponent\n  ) {}\n\n  ngOnInit(): void {\n    if (!this.mdlChipComponent) {\n      throw new MdlStructureError(\"mdl-chip-contact\", \"mdl-chip\");\n    }\n    (this.mdlChipComponent as MdlChipComponent).isChipContact = true;\n  }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { MdlIconModule } from \"../icon/mdl-icon.module\";\nimport { MdlChipComponent } from \"./mdl-chip.component\";\nimport { MdlChipContactDirective } from \"./mdl-chip-contact.directive\";\n\nexport * from \"./mdl-chip.component\";\nexport * from \"./mdl-chip-contact.directive\";\n\nconst DIRECTIVES = [MdlChipComponent, MdlChipContactDirective];\n\n@NgModule({\n  imports: [MdlIconModule, CommonModule],\n  exports: DIRECTIVES,\n  declarations: DIRECTIVES,\n})\nexport class MdlChipModule {\n  public static forRoot(): ModuleWithProviders<MdlChipModule> {\n    return {\n      ngModule: MdlChipModule,\n      providers: [],\n    };\n  }\n}\n","import { InjectionToken } from \"@angular/core\";\nimport { IMdlDialogConfiguration } from \"./mdl-dialog-configuration\";\n\nexport const MDL_CONFIGUARTION = new InjectionToken<IMdlDialogConfiguration>(\n  \"MDL_CONFIGUARTION\"\n);\nexport const MIN_DIALOG_Z_INDEX = 100000;\n","import { InternalMdlDialogReference } from \"./internal-dialog-reference\";\nimport { Observable } from \"rxjs\";\n\n/**\n * The reference to the created and displayed dialog.\n */\nexport class MdlDialogReference {\n  constructor(private internaleRef: InternalMdlDialogReference) {\n    internaleRef.dialogRef = this;\n  }\n\n  /**\n   * closes the dialog\n   */\n  hide(data?: unknown): void {\n    this.internaleRef.hide(data);\n  }\n\n  /**\n   * Observable that emits, if the dialog was closed.\n   * returns {Observable<void>}\n   */\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  public onHide(): Observable<any> {\n    return this.internaleRef.onHide();\n  }\n\n  /**\n   * Observable that emits, if the dialog is really visible and not only created.\n   * returns {Observable<void>}\n   */\n  public onVisible(): Observable<void> {\n    return this.internaleRef.onVisible();\n  }\n}\n","import {\n  Component,\n  forwardRef,\n  HostListener,\n  Inject,\n  QueryList,\n  ViewChildren,\n  ViewEncapsulation,\n} from \"@angular/core\";\nimport { MDL_CONFIGUARTION } from \"./config\";\nimport {\n  IMdlDialogAction,\n  IMdlSimpleDialogConfiguration,\n} from \"./mdl-dialog-configuration\";\nimport { MdlButtonComponent } from \"../button/mdl-button.component\";\nimport { MdlDialogReference } from \"./mdl-dialog-reference\";\n\n@Component({\n  selector: \"mdl-dialog-component\",\n  template: `\n    <h3 class=\"mdl-dialog__title\" *ngIf=\"dialogConfiguration?.title\">\n      {{ dialogConfiguration?.title }}\n    </h3>\n    <div\n      class=\"mdl-dialog__content\"\n      [innerHTML]=\"dialogConfiguration?.message\"\n    ></div>\n    <div\n      class=\"mdl-dialog__actions\"\n      [ngClass]=\"{\n        'mdl-dialog__actions--full-width': dialogConfiguration?.fullWidthAction\n      }\"\n    >\n      <button\n        mdl-button\n        mdl-colored=\"primary\"\n        type=\"button\"\n        *ngFor=\"let action of dialogConfiguration?.actions\"\n        (click)=\"actionClicked(action)\"\n        [ngClass]=\"{ close: action.isClosingAction }\"\n      >\n        {{ action.text }}\n      </button>\n    </div>\n  `,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlSimpleDialogComponent {\n  @ViewChildren(MdlButtonComponent)\n  buttons: QueryList<MdlButtonComponent> | undefined;\n\n  // why do i need forwardRef at this point, the demo LoginDialog dosn't need this!?!?\n  constructor(\n    @Inject(forwardRef(() => MDL_CONFIGUARTION))\n    public dialogConfiguration: IMdlSimpleDialogConfiguration,\n    @Inject(forwardRef(() => MdlDialogReference))\n    public dialog: MdlDialogReference\n  ) {\n    this.dialog = dialog;\n\n    dialog.onVisible().subscribe(() => {\n      if (this.buttons) {\n        this.buttons.first.elementRef.nativeElement.focus();\n      }\n    });\n  }\n\n  @HostListener(\"keydown.esc\")\n  onEsc(): void {\n    // run the first action that is marked as closing action\n    const closeAction = this.dialogConfiguration.actions.find(\n      (action) => action.isClosingAction\n    );\n    if (closeAction) {\n      closeAction.handler();\n      this.dialog.hide();\n    }\n  }\n\n  actionClicked(action: IMdlDialogAction): void {\n    action.handler();\n    this.dialog.hide();\n  }\n}\n","import { ComponentRef } from \"@angular/core\";\nimport { Observable, Subject } from \"rxjs\";\n\nimport { IMdlDialogConfiguration } from \"./mdl-dialog-configuration\";\nimport { MdlDialogReference } from \"./mdl-dialog-reference\";\nimport { MdlDialogHostComponent } from \"./mdl-dialog-host.component\";\n\n/**\n * Internal representation of the dialog ref. the service\n * user should not have access to the created components\n * and internal implementations.\n */\nexport class InternalMdlDialogReference {\n  hostDialogComponentRef: ComponentRef<MdlDialogHostComponent> | undefined;\n  isModal: boolean | undefined = false;\n  dialogRef: MdlDialogReference | undefined;\n\n  private onHideSubject: Subject<unknown> = new Subject();\n  private onVisibleSubject: Subject<void> = new Subject();\n\n  constructor(public config: IMdlDialogConfiguration) {\n    this.dialogRef = new MdlDialogReference(this);\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  closeCallback: () => void = () => {};\n\n  get hostDialog(): MdlDialogHostComponent | undefined {\n    return this.hostDialogComponentRef?.instance;\n  }\n\n  hide(data?: unknown): void {\n    this.onHideSubject.next(data);\n    this.onHideSubject.complete();\n    this.closeCallback();\n  }\n\n  visible(): void {\n    this.onVisibleSubject.next();\n    this.onVisibleSubject.complete();\n  }\n\n  public onHide(): Observable<unknown> {\n    return this.onHideSubject.asObservable();\n  }\n\n  public onVisible(): Observable<void> {\n    return this.onVisibleSubject.asObservable();\n  }\n}\n","import {\n  Component,\n  ComponentRef,\n  ElementRef,\n  forwardRef,\n  HostBinding,\n  Inject,\n  NgZone,\n  OnInit,\n  Renderer2,\n  ViewChild,\n  ViewContainerRef,\n  ViewEncapsulation,\n} from \"@angular/core\";\n\nimport { MDL_CONFIGUARTION, MIN_DIALOG_Z_INDEX } from \"./config\";\nimport {\n  IMdlDialogConfiguration,\n  IOpenCloseRect,\n} from \"./mdl-dialog-configuration\";\nimport { MdlButtonComponent } from \"../button/mdl-button.component\";\nimport { InternalMdlDialogReference } from \"./internal-dialog-reference\";\nimport { Animations } from \"../common/animations\";\n\nconst enterTransitionDuration = 300;\nconst leaveTransitionDuration = 250;\n\nconst enterTransitionEasingCurve = \"cubic-bezier(0.0, 0.0, 0.2, 1)\";\nconst leaveTransitionEasingCurve = \"cubic-bezier(0.0, 0.0, 0.2, 1)\";\n\nconst createOpenCloseRect = (rect: ClientRect): IOpenCloseRect => ({\n  height: rect.top - rect.bottom,\n  left: rect.left,\n  top: rect.top,\n  width: rect.right - rect.left,\n});\n\nconst getCenterInScreen = (rect: IOpenCloseRect) => ({\n  cx: Math.round(rect.left + rect.width / 2),\n  cy: Math.round(rect.top + rect.height / 2),\n});\n\nconst getClientRect = (\n  input: MdlButtonComponent | MouseEvent | IOpenCloseRect | undefined\n): IOpenCloseRect => {\n  if (input instanceof MdlButtonComponent) {\n    const elRef = (input as MdlButtonComponent).elementRef;\n    const rect: ClientRect = elRef.nativeElement.getBoundingClientRect();\n    return createOpenCloseRect(rect);\n  } else if (input instanceof MouseEvent) {\n    const evt: MouseEvent = input as MouseEvent;\n    // just to make it possible to test this code with a fake event - target is\n    // readonly and con not be mutated.\n    // eslint-disable-next-line\n    const htmlElement = (evt.target || (evt as any).testtarget) as HTMLElement;\n    const rect: ClientRect = htmlElement.getBoundingClientRect();\n    return createOpenCloseRect(rect);\n  }\n  return input as IOpenCloseRect;\n};\n\n// @experimental\n@Component({\n  selector: \"mdl-dialog-host-component\",\n  template: ` <div #dialogTarget></div>`,\n  styles: [\n    `\n      mdl-dialog-host-component {\n        width: fit-content;\n        height: fit-content;\n        padding: 1em;\n        background: white;\n        color: black;\n        opacity: 1;\n        visibility: hidden;\n        display: block;\n        position: fixed;\n        margin: auto;\n        left: 0;\n        right: 0;\n        transition: all;\n        top: 50%;\n        transform: translate(0, -50%);\n      }\n\n      mdl-dialog-host-component.open {\n        visibility: visible;\n      }\n    `,\n  ],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlDialogHostComponent implements OnInit {\n  @ViewChild(\"dialogTarget\", { read: ViewContainerRef, static: true })\n  dialogTarget: ViewContainerRef | undefined;\n\n  @HostBinding(\"class.mdl-dialog\")\n  isDialog = true;\n\n  @HostBinding(\"class.open\")\n  visible = false;\n\n  @HostBinding(\"style.zIndex\")\n  zIndex: number = MIN_DIALOG_Z_INDEX + 1;\n\n  private showAnimationStartStyle: { [key: string]: string } = {\n    top: \"38%\",\n    opacity: \"0\",\n  };\n  private showStyle: { [key: string]: string } = {\n    top: \"50%\",\n    opacity: \"1\",\n  };\n  private hideAnimationEndStyle: { [key: string]: string } = {\n    top: \"63%\",\n    opacity: \"0\",\n  };\n\n  constructor(\n    private ngZone: NgZone,\n    private renderer: Renderer2,\n    private animations: Animations,\n    private elementRef: ElementRef,\n    @Inject(forwardRef(() => MDL_CONFIGUARTION))\n    private config: IMdlDialogConfiguration,\n    private internalDialogRef: InternalMdlDialogReference\n  ) {}\n\n  show(): void {\n    this.visible = true;\n    // give the dialogs time to draw so that a focus can be set\n    setTimeout(() => {\n      this.internalDialogRef.visible();\n    });\n\n    if (this.isAnimateEnabled()) {\n      if (this.config.openFrom || this.config.closeTo) {\n        // transform is modified during anmiation and must be part of each animation keyframe.\n        this.showStyle[\"transform\"] = \"translate(0, -50%) scale(1.0)\";\n\n        const targetClientRect =\n          this.elementRef.nativeElement.getBoundingClientRect();\n\n        const openFromRect = getClientRect(this.config?.openFrom);\n        const closeToRect = this.config.closeTo\n          ? getClientRect(this.config.closeTo)\n          : openFromRect;\n\n        const centerTarget = getCenterInScreen(targetClientRect);\n        const centerFrom = getCenterInScreen(openFromRect);\n        const centerTo = getCenterInScreen(closeToRect);\n\n        const translationFrom = {\n          x: Math.round(centerFrom.cx - centerTarget.cx),\n          y: Math.round(centerFrom.cy - centerTarget.cy),\n          scaleX:\n            Math.round(\n              100 * Math.min(0.25, openFromRect.width / targetClientRect.width)\n            ) / 100,\n          scaleY:\n            Math.round(\n              100 *\n                Math.min(0.25, openFromRect.height / targetClientRect.height)\n            ) / 100,\n        };\n\n        this.showAnimationStartStyle = {\n          top: `${targetClientRect.top}px`,\n          opacity: \"0\",\n          transform: `translate(${translationFrom.x}px, ${translationFrom.y}px) scale(${translationFrom.scaleX}, ${translationFrom.scaleY})`,\n        };\n\n        const translationTo = {\n          x: Math.round(centerTo.cx - centerTarget.cx),\n          y: Math.round(centerTo.cy - centerTarget.cy),\n          scaleX:\n            Math.round(\n              100 * Math.min(0.25, closeToRect.width / targetClientRect.width)\n            ) / 100,\n          scaleY:\n            Math.round(\n              100 * Math.min(0.25, closeToRect.height / targetClientRect.height)\n            ) / 100,\n        };\n\n        this.hideAnimationEndStyle = {\n          top: `${targetClientRect.top}px`,\n          opacity: \"0\",\n          transform: `translate(${translationTo.x}px, ${translationTo.y}px) scale(${translationTo.scaleX}, ${translationTo.scaleY})`,\n        };\n      }\n\n      const animation = this.animations.animate(\n        this.elementRef.nativeElement,\n        [this.showAnimationStartStyle, this.showStyle],\n        this.config.enterTransitionDuration || enterTransitionDuration,\n        this.config.enterTransitionEasingCurve || enterTransitionEasingCurve\n      );\n\n      animation.play();\n    }\n  }\n\n  hide(selfComponentRef: ComponentRef<MdlDialogHostComponent>): void {\n    if (this.isAnimateEnabled()) {\n      const animation = this.animations.animate(\n        this.elementRef.nativeElement,\n        [this.showStyle, this.hideAnimationEndStyle],\n        this.config.leaveTransitionDuration || leaveTransitionDuration,\n        this.config.leaveTransitionEasingCurve || leaveTransitionEasingCurve\n      );\n\n      animation.onDone(() => {\n        selfComponentRef.destroy();\n      });\n\n      animation.play();\n    } else {\n      selfComponentRef.destroy();\n    }\n  }\n\n  ngOnInit(): void {\n    this.applyStyle(this.config.styles);\n    this.applyClasses(this.config.classes ? this.config.classes : \"\");\n  }\n\n  private applyStyle(styles: { [p: string]: string } | undefined) {\n    if (styles) {\n      for (const style of Object.keys(styles)) {\n        this.renderer.setStyle(\n          this.elementRef.nativeElement,\n          style,\n          styles[style]\n        );\n      }\n    }\n  }\n\n  private applyClasses(classes: string) {\n    classes\n      .split(\" \")\n      .filter((cssClass) => !!cssClass)\n      .forEach((cssClass) => {\n        this.renderer.addClass(this.elementRef.nativeElement, cssClass);\n      });\n  }\n\n  private isAnimateEnabled() {\n    // not present?  assume it is true.\n    if (typeof this.config.animate === \"undefined\") {\n      return true;\n    }\n    return this.config.animate;\n  }\n}\n","import {\n  Component,\n  EventEmitter,\n  HostBinding,\n  HostListener,\n  NgZone,\n  ViewEncapsulation,\n} from \"@angular/core\";\n\n@Component({\n  selector: \"mdl-backdrop-overlay\",\n  template: ``,\n  styles: [\n    `\n      .dialog-backdrop {\n        position: fixed;\n        top: 0;\n        right: 0;\n        bottom: 0;\n        left: 0;\n        background: rgba(0, 0, 0, 0.1);\n      }\n    `,\n  ],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlBackdropOverlayComponent {\n  @HostBinding(\"style.zIndex\")\n  zIndex = 0;\n\n  @HostBinding(\"class.dialog-backdrop\")\n  isBackdrop = true;\n\n  public clickEmitter: EventEmitter<void> = new EventEmitter();\n\n  private visible = false;\n\n  constructor(private ngZone: NgZone) {}\n\n  @HostBinding(\"style.display\")\n  get display(): string | null {\n    return this.visible ? null : \"none\";\n  }\n\n  @HostListener(\"click\", [\"$event\"])\n  onBackdropClick(e: Event): void {\n    // this event runs not in angular zone of the main app. make sure it runs in the main angular zone\n    // and change detection works\n    this.ngZone.run(() => {\n      this.clickEmitter.emit();\n    });\n    e.stopPropagation();\n  }\n\n  hide(): void {\n    this.visible = false;\n  }\n\n  showWithZIndex(zIndex: number): void {\n    this.zIndex = zIndex;\n    this.visible = true;\n  }\n}\n","import { Component, ViewContainerRef } from \"@angular/core\";\n\n// the componnet is used outside the app-root. injecting MdlDialogService would not work\n// this component is not exported - needs to be instanciated by\n//    let x = this.appRef.bootstrap(MdlDialogOutletComponent);\n@Component({\n  // eslint-disable-next-line\n  selector: 'dialog-outlet',\n  template: \"\",\n})\nexport class MdlDialogOutletComponent {\n  constructor(public readonly vCRef: ViewContainerRef) {}\n\n  get viewContainerRef(): ViewContainerRef {\n    return this.vCRef;\n  }\n}\n","import {\n  ApplicationRef,\n  ComponentFactoryResolver,\n  ComponentRef,\n  EventEmitter,\n  Injectable,\n  ViewContainerRef,\n} from \"@angular/core\";\nimport { MdlBackdropOverlayComponent } from \"./mdl-backdrop-overlay.component\";\nimport { filter, take } from \"rxjs/operators\";\nimport { MdlDialogOutletComponent } from \"./mdl-dialog-outlet.component\";\n\n@Injectable({\n  providedIn: \"root\",\n})\nexport class MdlDialogOutletService {\n  backdropClickEmitter: EventEmitter<void> = new EventEmitter();\n\n  private viewContainerRefInternal: ViewContainerRef | null = null;\n  private backdropComponent: MdlBackdropOverlayComponent | undefined;\n\n  constructor(\n    private appRef: ApplicationRef,\n    private componentFactoryResolver: ComponentFactoryResolver\n  ) {\n    let dialogOutletCompRef: ComponentRef<MdlDialogOutletComponent> | null =\n      null;\n    appRef.isStable\n      .pipe(\n        take(1),\n        filter(() => this.viewContainerRefInternal == null)\n      )\n      .subscribe(() => {\n        try {\n          dialogOutletCompRef = this.appRef.bootstrap(MdlDialogOutletComponent);\n        } catch (e) {\n          // the user did not use the dialog.outlet element outside of his root app.\n          // console.log(e);\n        }\n        if (dialogOutletCompRef) {\n          this.setViewContainerRef(\n            dialogOutletCompRef.instance.viewContainerRef\n          );\n        }\n      });\n  }\n\n  get viewContainerRef(): ViewContainerRef | null {\n    return this.viewContainerRefInternal;\n  }\n\n  setDefaultViewContainerRef(vCRef: ViewContainerRef | null): void {\n    this.setViewContainerRef(vCRef);\n  }\n\n  hideBackdrop(): void {\n    this.backdropComponent?.hide();\n  }\n\n  showBackdropWithZIndex(zIndex: number): void {\n    this.backdropComponent?.showWithZIndex(zIndex);\n  }\n\n  private setViewContainerRef(value: ViewContainerRef | null) {\n    this.viewContainerRefInternal = value;\n\n    if (this.viewContainerRefInternal) {\n      const cFactory = this.componentFactoryResolver.resolveComponentFactory(\n        MdlBackdropOverlayComponent\n      );\n      this.backdropComponent =\n        this.viewContainerRefInternal.createComponent(cFactory).instance;\n      this.backdropComponent.clickEmitter.subscribe(() => {\n        this.backdropClickEmitter.emit();\n      });\n    }\n  }\n}\n","import {\n  ComponentFactoryResolver,\n  ComponentRef,\n  EventEmitter,\n  Injectable,\n  Injector,\n  StaticProvider,\n  TemplateRef,\n  Type,\n  ViewContainerRef,\n} from \"@angular/core\";\nimport { Observable, Subject } from \"rxjs\";\n\nimport { MdlSimpleDialogComponent } from \"./mdl-simple-dialog.component\";\nimport { MdlDialogHostComponent } from \"./mdl-dialog-host.component\";\nimport {\n  IMdlCustomDialogConfiguration,\n  IMdlDialogConfiguration,\n  IMdlSimpleDialogConfiguration,\n} from \"./mdl-dialog-configuration\";\nimport { InternalMdlDialogReference } from \"./internal-dialog-reference\";\nimport { MdlDialogOutletService } from \"../dialog-outlet/mdl-dialog-outlet.service\";\nimport { MdlDialogReference } from \"./mdl-dialog-reference\";\nimport { MDL_CONFIGUARTION, MIN_DIALOG_Z_INDEX } from \"./config\";\n\n/**\n * The MdlDialogService is used to open different kind of dialogs. SimpleDialogs and Custom Dialogs.\n *\n * @experimental\n */\n\n@Injectable({\n  providedIn: \"root\",\n})\nexport class MdlDialogService {\n  /**\n   * Emits an event when either all modals are closed, or one gets opened.\n   *\n   * @returns A subscribable event emitter that provides a boolean indicating whether a modal is open or not.\n   */\n  onDialogsOpenChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n  private openDialogs = new Array<InternalMdlDialogReference>();\n\n  constructor(\n    private componentFactoryResolver: ComponentFactoryResolver,\n    private mdlDialogOutletService: MdlDialogOutletService,\n    private injector: Injector\n  ) {\n    this.mdlDialogOutletService.backdropClickEmitter.subscribe(() => {\n      this.onBackdropClick();\n    });\n  }\n\n  /**\n   * Shows a dialog that is just an alert - e.g. with one button.\n   *\n   * @param alertMessage The message that should be displayed.\n   * @param okText The text that the button should have\n   * @param title The optional title of the dialog\n   * returns An Observable that is called if the user hits the Ok button.\n   */\n  public alert(\n    alertMessage: string,\n    okText = \"Ok\",\n    title?: string\n  ): Observable<void> {\n    const result: Subject<void> = new Subject();\n\n    this.showDialog({\n      title,\n      message: alertMessage,\n      actions: [\n        {\n          handler: () => {\n            result.next();\n            result.complete();\n          },\n          text: okText,\n        },\n      ],\n      isModal: true,\n    });\n\n    return result;\n  }\n\n  /**\n   * Shows a dialog that is just a confirm message - e.g. with two button.\n   *\n   * @param question The question that should be displayed.\n   * @param title The title that should be displayed on top of Question.\n   * @param declineText The text for decline button. defaults to Cancel\n   * @param confirmText The text for the confirm button . defaults to Ok\n   * returns An Observable that is called if the user hits the Ok button.\n   */\n  public confirm(\n    question: string,\n    declineText = \"Cancel\",\n    confirmText = \"Ok\",\n    title?: string\n  ): Observable<void> {\n    const result: Subject<void> = new Subject();\n\n    this.showDialog({\n      title,\n      message: question,\n      actions: [\n        {\n          handler: () => {\n            result.next();\n            result.complete();\n          },\n          text: confirmText,\n        },\n        {\n          handler: () => {\n            result.error(null);\n          },\n          text: declineText,\n          isClosingAction: true,\n        },\n      ],\n      isModal: true,\n    });\n\n    return result.asObservable();\n  }\n\n  /**\n   * Shows a dialog that is specified by the provided configuration.\n   *\n   * @param config The simple dialog configuration.\n   * returns An Observable that returns the MdlDialogReference.\n   */\n  public showDialog(\n    config: IMdlSimpleDialogConfiguration\n  ): Observable<MdlDialogReference> {\n    if (config.actions.length === 0) {\n      throw new Error(\"a dialog mus have at least one action\");\n    }\n\n    const internalDialogRef = new InternalMdlDialogReference(config);\n\n    const providers = [\n      {\n        provide: MdlDialogReference,\n        useValue: new MdlDialogReference(internalDialogRef),\n      },\n      { provide: MDL_CONFIGUARTION, useValue: config },\n    ];\n\n    const hostComponentRef = this.createHostDialog(internalDialogRef, config);\n\n    this.createComponentInstance(\n      hostComponentRef?.instance?.dialogTarget,\n      providers,\n      MdlSimpleDialogComponent\n    );\n\n    return this.showHostDialog(internalDialogRef.dialogRef, hostComponentRef);\n  }\n\n  /**\n   * Shows a dialog that is specified by the provided configuration.\n   *\n   * @param config The custom dialog configuration.\n   * returns An Observable that returns the MdlDialogReference.\n   */\n  public showCustomDialog(\n    config: IMdlCustomDialogConfiguration\n  ): Observable<MdlDialogReference> {\n    const internalDialogRef = new InternalMdlDialogReference(config);\n\n    const providers: StaticProvider[] = [\n      {\n        provide: MdlDialogReference,\n        useValue: new MdlDialogReference(internalDialogRef),\n      },\n    ];\n\n    if (config.providers) {\n      providers.push(...config.providers);\n    }\n\n    const hostComponentRef = this.createHostDialog(internalDialogRef, config);\n\n    this.createComponentInstance(\n      hostComponentRef?.instance.dialogTarget,\n      providers,\n      config.component\n    );\n\n    return this.showHostDialog(internalDialogRef.dialogRef, hostComponentRef);\n  }\n\n  public showDialogTemplate(\n    template: TemplateRef<unknown>,\n    config: IMdlDialogConfiguration\n  ): Observable<MdlDialogReference> {\n    const internalDialogRef = new InternalMdlDialogReference(config);\n\n    const hostComponentRef = this.createHostDialog(internalDialogRef, config);\n\n    hostComponentRef?.instance.dialogTarget?.createEmbeddedView(template);\n\n    return this.showHostDialog(internalDialogRef.dialogRef, hostComponentRef);\n  }\n\n  private showHostDialog(\n    dialogRef: MdlDialogReference | undefined,\n    hostComponentRef: ComponentRef<MdlDialogHostComponent> | undefined\n  ) {\n    const result: Subject<MdlDialogReference> = new Subject();\n\n    setTimeout(() => {\n      result.next(dialogRef);\n      result.complete();\n      hostComponentRef?.instance.show();\n    });\n\n    return result.asObservable();\n  }\n\n  private createHostDialog(\n    internalDialogRef: InternalMdlDialogReference,\n    dialogConfig: IMdlDialogConfiguration\n  ) {\n    const viewContainerRef = this.mdlDialogOutletService.viewContainerRef;\n    if (!viewContainerRef) {\n      throw new Error(\n        \"You did not provide a ViewContainerRef. \" +\n          \"Please see https://github.com/mseemann/angular2-mdl/wiki/How-to-use-the-MdlDialogService\"\n      );\n    }\n\n    const providers: StaticProvider[] = [\n      { provide: MDL_CONFIGUARTION, useValue: dialogConfig },\n      { provide: InternalMdlDialogReference, useValue: internalDialogRef },\n    ];\n\n    const hostDialogComponent = this.createComponentInstance(\n      viewContainerRef,\n      providers,\n      MdlDialogHostComponent\n    );\n\n    internalDialogRef.hostDialogComponentRef = hostDialogComponent;\n    internalDialogRef.isModal = dialogConfig.isModal;\n\n    internalDialogRef.closeCallback = () => {\n      this.popDialog(internalDialogRef);\n      hostDialogComponent?.instance.hide(hostDialogComponent);\n    };\n    this.pushDialog(internalDialogRef);\n\n    return hostDialogComponent;\n  }\n\n  private pushDialog(dialogRef: InternalMdlDialogReference) {\n    if (this.openDialogs.length === 0) {\n      // first dialog being opened\n      this.onDialogsOpenChanged.emit(true);\n    }\n\n    this.openDialogs.push(dialogRef);\n    this.orderDialogStack();\n  }\n\n  private popDialog(dialogRef: InternalMdlDialogReference) {\n    this.openDialogs.splice(this.openDialogs.indexOf(dialogRef), 1);\n    this.orderDialogStack();\n\n    if (this.openDialogs.length === 0) {\n      // last dialog being closed\n      this.onDialogsOpenChanged.emit(false);\n    }\n  }\n\n  private orderDialogStack() {\n    // +1 because the overlay may have MIN_DIALOG_Z_INDEX if the dialog is modal.\n    let zIndex = MIN_DIALOG_Z_INDEX + 1;\n\n    this.openDialogs.forEach((iDialogRef) => {\n      if (iDialogRef.hostDialog) {\n        iDialogRef.hostDialog.zIndex = zIndex;\n      }\n      // +2 to make room for the overlay if a dialog is modal\n      zIndex += 2;\n    });\n\n    this.mdlDialogOutletService.hideBackdrop();\n\n    // if there is a modal dialog append the overloay to the dom - if not remove the overlay from the body\n    const topMostModalDialog: InternalMdlDialogReference | null =\n      this.getTopMostInternalDialogRef();\n    if (topMostModalDialog) {\n      // move the overlay diredct under the topmos modal dialog\n      this.mdlDialogOutletService.showBackdropWithZIndex(\n        topMostModalDialog?.hostDialog?.zIndex\n          ? topMostModalDialog.hostDialog.zIndex - 1\n          : 0\n      );\n    }\n  }\n\n  private getTopMostInternalDialogRef(): InternalMdlDialogReference | null {\n    let topMostModalDialog: InternalMdlDialogReference | null = null;\n\n    for (let i = this.openDialogs.length - 1; i >= 0; i--) {\n      if (this.openDialogs[i].isModal) {\n        topMostModalDialog = this.openDialogs[i];\n        break;\n      }\n    }\n    return topMostModalDialog;\n  }\n\n  private onBackdropClick() {\n    const topMostModalDialog: InternalMdlDialogReference | null =\n      this.getTopMostInternalDialogRef();\n    if (topMostModalDialog?.config.clickOutsideToClose) {\n      topMostModalDialog?.hide();\n    }\n  }\n\n  private createComponentInstance<T>(\n    viewContainerRef: ViewContainerRef | undefined,\n    providers: StaticProvider[],\n    component: Type<T>\n  ): ComponentRef<T> | undefined {\n    const cFactory =\n      this.componentFactoryResolver.resolveComponentFactory(component);\n\n    const injector = Injector.create({\n      providers: [\n        ...providers,\n        { provide: ViewContainerRef, useValue: viewContainerRef },\n      ],\n      parent: this.injector,\n    });\n\n    return viewContainerRef?.createComponent(\n      cFactory,\n      viewContainerRef.length,\n      injector\n    );\n  }\n}\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n  TemplateRef,\n  ViewChild,\n  ViewEncapsulation,\n} from \"@angular/core\";\nimport { Observable, Subject } from \"rxjs\";\n\nimport { MdlDialogService } from \"./mdl-dialog.service\";\nimport { IMdlDialogConfiguration } from \"./mdl-dialog-configuration\";\nimport { MdlDialogReference } from \"./mdl-dialog-reference\";\n\n@Component({\n  selector: \"mdl-dialog\",\n  template: `\n    <div *dialogTemplate>\n      <ng-content></ng-content>\n    </div>\n  `,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlDialogComponent {\n  @ViewChild(TemplateRef, { static: true })\n  template: TemplateRef<unknown> | undefined;\n\n  // eslint-disable-next-line\n  @Input(\"mdl-dialog-config\")\n  config: IMdlDialogConfiguration | undefined;\n\n  // eslint-disable-next-line\n  @Output(\"show\")\n  showEmitter: EventEmitter<MdlDialogReference> = new EventEmitter<MdlDialogReference>();\n\n  // eslint-disable-next-line\n  @Output(\"hide\")\n  hideEmitter: EventEmitter<void> = new EventEmitter<void>();\n\n  private isShown = false;\n  private dialogRef: MdlDialogReference | null = null;\n\n  constructor(private dialogService: MdlDialogService) {}\n\n  show(): Observable<MdlDialogReference> {\n    if (this.isShown) {\n      throw new Error(\"Only one instance of an embedded mdl-dialog can exist!\");\n    }\n    this.isShown = true;\n\n    const mergedConfig: IMdlDialogConfiguration = this.config || {};\n\n    // default is true\n    if (typeof mergedConfig.isModal === \"undefined\") {\n      mergedConfig.isModal = true;\n    }\n\n    const result: Subject<MdlDialogReference> = new Subject();\n\n    if (!this.template) {\n      return result.asObservable();\n    }\n    const p = this.dialogService.showDialogTemplate(\n      this.template,\n      mergedConfig\n    );\n    p.subscribe((dialogRef: MdlDialogReference) => {\n      this.dialogRef = dialogRef;\n\n      this.dialogRef.onVisible().subscribe(() => {\n        this.showEmitter.emit(dialogRef);\n\n        result.next(dialogRef);\n        result.complete();\n      });\n\n      this.dialogRef.onHide().subscribe(() => {\n        this.hideEmitter.emit();\n        this.dialogRef = null;\n        this.isShown = false;\n      });\n    });\n    return result.asObservable();\n  }\n\n  close(): void {\n    if (this.dialogRef) {\n      this.dialogRef.hide();\n    }\n  }\n}\n","import {\n  Component,\n  EventEmitter,\n  HostBinding,\n  Input,\n  Output,\n} from \"@angular/core\";\nimport { MdlDialogService } from \"./mdl-dialog.service\";\n\n@Component({\n  selector: \"mdl-alert\",\n  template: ``,\n  exportAs: \"mdlAlert\",\n})\nexport class MdlAlertComponent {\n  @Input()\n  title: string | undefined;\n\n  @Input()\n  message = \"\";\n\n  @Input()\n  okText: string | undefined;\n\n  @HostBinding(\"style.display\")\n  display = \"none\";\n\n  @Output()\n  confirmed = new EventEmitter();\n\n  constructor(private mdlDialogService: MdlDialogService) {}\n\n  show(): void {\n    this.mdlDialogService\n      .alert(this.message, this.okText, this.title)\n      .subscribe(() => {\n        this.confirmed.emit();\n      });\n  }\n}\n","// the component is used inside the app-root. this is possible because this component\n// is exported from the module\nimport { Component, forwardRef, Inject, ViewContainerRef } from \"@angular/core\";\nimport { MdlDialogOutletService } from \"./mdl-dialog-outlet.service\";\n\n@Component({\n  // eslint-disable-next-line\n  selector: 'dialog-outlet',\n  template: \"\",\n})\nexport class MdlDialogInnerOutletComponent {\n  constructor(\n    private vCRef: ViewContainerRef,\n    @Inject(forwardRef(() => MdlDialogOutletService))\n    service: MdlDialogOutletService\n  ) {\n    service.setDefaultViewContainerRef(vCRef);\n  }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { MdlDialogOutletComponent } from \"./mdl-dialog-outlet.component\";\nimport { MdlDialogOutletService } from \"./mdl-dialog-outlet.service\";\nimport { MdlBackdropOverlayComponent } from \"./mdl-backdrop-overlay.component\";\nimport { MdlDialogInnerOutletComponent } from \"./mdl-dialog-inner-outlet.component\";\n\nexport * from \"./mdl-dialog-outlet.component\";\nexport * from \"./mdl-dialog-outlet.service\";\nexport * from \"./mdl-backdrop-overlay.component\";\nexport * from \"./mdl-dialog-inner-outlet.component\";\n\nconst PUBLIC_COMPONENTS = [MdlDialogInnerOutletComponent];\n\nconst PRIVATE_COMPONENTS = [\n  MdlDialogOutletComponent,\n  MdlBackdropOverlayComponent,\n];\n\n@NgModule({\n  imports: [],\n  exports: PUBLIC_COMPONENTS,\n  declarations: [...PUBLIC_COMPONENTS, ...PRIVATE_COMPONENTS],\n})\nexport class MdlDialogOutletModule {\n  public static forRoot(): ModuleWithProviders<MdlDialogOutletModule> {\n    return {\n      ngModule: MdlDialogOutletModule,\n      providers: [MdlDialogOutletService],\n    };\n  }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { MdlDialogService } from \"./mdl-dialog.service\";\nimport { MdlDialogComponent } from \"./mdl-dialog.component\";\nimport { MdlSimpleDialogComponent } from \"./mdl-simple-dialog.component\";\n\nimport { MdlDialogHostComponent } from \"./mdl-dialog-host.component\";\nimport { MdlAlertComponent } from \"./mdl-alert.component\";\nimport { MdlDialogOutletModule } from \"../dialog-outlet/mdl-dialog-outlet.module\";\n\nimport { MdlDialogOutletService } from \"../dialog-outlet/mdl-dialog-outlet.service\";\nimport { MdlCommonsModule } from \"../common/mdl-common.module\";\nimport { MdlButtonModule } from \"../button/mdl-button.module\";\n\nexport * from \"./mdl-dialog.component\";\nexport * from \"./mdl-dialog.service\";\nexport * from \"./mdl-dialog-configuration\";\nexport * from \"./mdl-alert.component\";\nexport * from \"./mdl-dialog-host.component\";\nexport * from \"./mdl-simple-dialog.component\";\nexport * from \"./mdl-dialog-reference\";\n\nconst PUBLIC_COMPONENTS = [MdlDialogComponent, MdlAlertComponent];\n\nconst PRIVATE_COMPONENTS = [MdlDialogHostComponent, MdlSimpleDialogComponent];\n\n@NgModule({\n  imports: [\n    CommonModule,\n    MdlCommonsModule,\n    MdlButtonModule,\n    MdlDialogOutletModule,\n  ],\n  exports: [...PUBLIC_COMPONENTS],\n  declarations: [...PUBLIC_COMPONENTS, ...PRIVATE_COMPONENTS],\n})\nexport class MdlDialogModule {\n  public static forRoot(): ModuleWithProviders<MdlDialogModule> {\n    return {\n      ngModule: MdlDialogModule,\n      providers: [MdlDialogService, MdlDialogOutletService],\n    };\n  }\n}\n","import {\n  Component,\n  ElementRef,\n  forwardRef,\n  HostBinding,\n  Renderer2,\n  ViewEncapsulation,\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { MdlCheckboxComponent } from \"../checkbox/mdl-checkbox.component\";\n\n@Component({\n  selector: \"mdl-icon-toggle\",\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => MdlIconToggleComponent),\n      multi: true,\n    },\n  ],\n  template: `\n    <input\n      type=\"checkbox\"\n      class=\"mdl-icon-toggle__input\"\n      (focus)=\"onFocus()\"\n      (blur)=\"onBlur()\"\n      [disabled]=\"disabled\"\n      [(ngModel)]=\"value\"\n    />\n    <mdl-icon class=\"mdl-icon-toggle__label\">\n      <ng-content></ng-content>\n    </mdl-icon>\n  `,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlIconToggleComponent extends MdlCheckboxComponent {\n  @HostBinding(\"class.mdl-icon-toggle\") isIconToggle = true;\n\n  constructor(elementRef: ElementRef, renderer: Renderer2) {\n    super(elementRef, renderer);\n    this.isCheckbox = false;\n  }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\n\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { MdlIconToggleComponent } from \"./mdl-icon-toggle.component\";\nimport { MdlIconModule } from \"../icon/mdl-icon.module\";\n\nconst MDL_ICON_TOGGLE_DIRECTIVES = [MdlIconToggleComponent];\n\n@NgModule({\n  imports: [MdlIconModule, CommonModule, FormsModule],\n  exports: MDL_ICON_TOGGLE_DIRECTIVES,\n  declarations: MDL_ICON_TOGGLE_DIRECTIVES,\n})\nexport class MdlIconToggleModule {\n  public static forRoot(): ModuleWithProviders<MdlIconToggleModule> {\n    return {\n      ngModule: MdlIconToggleModule,\n      providers: [],\n    };\n  }\n}\n\nexport * from \"./mdl-icon-toggle.component\";\n","import {\n  Component,\n  Directive,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnInit,\n  Optional,\n  ViewEncapsulation,\n} from \"@angular/core\";\nimport { MdlError, MdlStructureError } from \"../common/mdl-error\";\nimport { toNumber } from \"../common/number.property\";\n\nexport class MdlUnsupportedCountOfListItemLinesError extends MdlError {\n  constructor(lines: number | string) {\n    /* istanbul ignore next */\n    super(`\"${lines}\" is not supported - max 3 lines please.`);\n  }\n}\n\n@Component({\n  selector: \"mdl-list\",\n  template: \"<ng-content></ng-content>\",\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlListComponent {\n  @HostBinding(\"class.mdl-list\")\n  isMdlList = true;\n}\n\n@Component({\n  selector: \"mdl-list-item\",\n  template: \"<ng-content></ng-content>\",\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlListItemComponent implements OnChanges {\n  @HostBinding(\"class.mdl-list__item\")\n  isMdlListItem = true;\n\n  private linesIntern = 1;\n\n  @Input()\n  get lines(): number {\n    return this.linesIntern;\n  }\n\n  set lines(value: number | string) {\n    this.linesIntern = toNumber(value) ?? 1;\n  }\n\n  @HostBinding(\"class.mdl-list__item--two-line\") get lines2(): boolean {\n    return this.lines === 2;\n  }\n\n  @HostBinding(\"class.mdl-list__item--three-line\") get lines3(): boolean {\n    return this.lines === 3;\n  }\n\n  ngOnChanges(): void {\n    if (this.lines && this.lines > 3) {\n      throw new MdlUnsupportedCountOfListItemLinesError(this.lines);\n    }\n  }\n}\n\n@Component({\n  selector: \"mdl-list-item-primary-content\",\n  template: \"<ng-content></ng-content>\",\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlListItemPrimaryContentComponent implements OnInit {\n  @HostBinding(\"class.mdl-list__item-primary-content\")\n  isPrimaryContent = true;\n\n  constructor(@Optional() private mdlListItemComponent: MdlListItemComponent) {}\n\n  ngOnInit(): void {\n    if (this.mdlListItemComponent === null) {\n      throw new MdlStructureError(\n        \"mdl-list-item-primary-content\",\n        \"mdl-list-item\"\n      );\n    }\n  }\n}\n\n@Component({\n  selector: \"mdl-list-item-secondary-content\",\n  template: \"<ng-content></ng-content>\",\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlListItemSecondaryContentComponent implements OnInit {\n  @HostBinding(\"class.mdl-list__item-secondary-content\")\n  isSecondaryContent = true;\n\n  constructor(@Optional() private mdlListItemComponent: MdlListItemComponent) {}\n\n  ngOnInit(): void {\n    if (this.mdlListItemComponent === null) {\n      throw new MdlStructureError(\n        \"mdl-list-item-secondary-content\",\n        \"mdl-list-item\"\n      );\n    }\n  }\n}\n\n@Component({\n  selector: \"mdl-list-item-secondary-action\",\n  template: \"<ng-content></ng-content>\",\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlListItemSecondaryActionComponent implements OnInit {\n  @HostBinding(\"class.mdl-list__item-secondary-action\")\n  isSecondaryAction = true;\n\n  constructor(@Optional() private mdlListItemComponent: MdlListItemComponent) {}\n\n  ngOnInit(): void {\n    if (this.mdlListItemComponent === null) {\n      throw new MdlStructureError(\n        \"mdl-list-item-secondary-action\",\n        \"mdl-list-item\"\n      );\n    }\n  }\n}\n\n@Component({\n  selector: \"mdl-list-item-sub-title\",\n  template: \"<ng-content></ng-content>\",\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlListItemSubTitleComponent implements OnInit {\n  @HostBinding(\"class.mdl-list__item-sub-title\")\n  isSubTitle = true;\n\n  constructor(\n    @Optional() private mdlListItemComponent: MdlListItemPrimaryContentComponent\n  ) {}\n\n  ngOnInit(): void {\n    if (this.mdlListItemComponent === null) {\n      throw new MdlStructureError(\n        \"mdl-list-item-sub-title\",\n        \"mdl-list-item-primary-content\"\n      );\n    }\n  }\n}\n\n@Component({\n  selector: \"mdl-list-item-secondary-info\",\n  template: \"<ng-content></ng-content>\",\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlListItemSecondaryInfoComponent implements OnInit {\n  @HostBinding(\"class.mdl-list__item-secondary-info\")\n  isSecondaryInfo = true;\n\n  constructor(\n    @Optional()\n    private mdlListItemComponent: MdlListItemSecondaryContentComponent\n  ) {}\n\n  ngOnInit(): void {\n    if (this.mdlListItemComponent === null) {\n      throw new MdlStructureError(\n        \"mdl-list-item-secondary-info\",\n        \"mdl-list-item-secondary-content\"\n      );\n    }\n  }\n}\n\n@Component({\n  selector: \"mdl-list-item-text-body\",\n  template: \"<ng-content></ng-content>\",\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlListItemTextBodyComponent implements OnInit {\n  @HostBinding(\"class.mdl-list__item-text-body\")\n  isTextBody = true;\n\n  constructor(@Optional() private mdlListItemComponent: MdlListItemComponent) {}\n\n  ngOnInit(): void {\n    if (this.mdlListItemComponent === null) {\n      throw new MdlStructureError(\"mdl-list-item-text-body\", \"mdl-list-item\");\n    }\n  }\n}\n\n@Directive({\n  // eslint-disable-next-line\n  selector: \"mdl-icon[mdl-list-item-icon]\",\n})\nexport class MdlListItemIconDirective {\n  @HostBinding(\"class.mdl-list__item-icon\")\n  isItemIcon = true;\n}\n\n@Directive({\n  // eslint-disable-next-line\n  selector: \"mdl-icon[mdl-list-item-avatar]\",\n})\nexport class MdlListItemAvatarDirective {\n  @HostBinding(\"class.mdl-list__item-avatar\")\n  isItemAvatar = true;\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport {\n  MdlListComponent,\n  MdlListItemAvatarDirective,\n  MdlListItemComponent,\n  MdlListItemIconDirective,\n  MdlListItemPrimaryContentComponent,\n  MdlListItemSecondaryActionComponent,\n  MdlListItemSecondaryContentComponent,\n  MdlListItemSecondaryInfoComponent,\n  MdlListItemSubTitleComponent,\n  MdlListItemTextBodyComponent,\n} from \"./mdl-list.component\";\n\nconst MDL_LIST_DIRECTIVES = [\n  MdlListComponent,\n  MdlListItemComponent,\n  MdlListItemPrimaryContentComponent,\n  MdlListItemIconDirective,\n  MdlListItemAvatarDirective,\n  MdlListItemSecondaryContentComponent,\n  MdlListItemSecondaryActionComponent,\n  MdlListItemSubTitleComponent,\n  MdlListItemSecondaryInfoComponent,\n  MdlListItemTextBodyComponent,\n];\n\n@NgModule({\n  imports: [],\n  exports: MDL_LIST_DIRECTIVES,\n  declarations: MDL_LIST_DIRECTIVES,\n})\nexport class MdlListModule {\n  static forRoot(): ModuleWithProviders<MdlListModule> {\n    return {\n      ngModule: MdlListModule,\n      providers: [],\n    };\n  }\n}\n\nexport * from \"./mdl-list.component\";\n","import {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  Injectable,\n  Input,\n  OnDestroy,\n  OnInit,\n  Renderer2,\n  ViewChild,\n  ViewEncapsulation,\n} from \"@angular/core\";\nimport { MdlError } from \"../common/mdl-error\";\nimport { MdlButtonComponent } from \"../button/mdl-button.component\";\n\nconst BOTTOM_LEFT = \"bottom-left\";\nconst BOTTOM_RIGHT = \"bottom-right\";\nconst TOP_LEFT = \"top-left\";\nconst TOP_RIGHT = \"top-right\";\nconst UNALIGNED = \"unaligned\";\n\n// Total duration of the menu animation.\nconst TRANSITION_DURATION_SECONDS = 0.3;\n// The fraction of the total duration we want to use for menu item animations.\nconst TRANSITION_DURATION_FRACTION = 0.8;\n// How long the menu stays open after choosing an option (so the user can see\n// the ripple).\nconst CLOSE_TIMEOUT = 175;\n\nconst CSS_ALIGN_MAP: { [key: string]: string } = {};\nCSS_ALIGN_MAP[BOTTOM_LEFT] = \"mdl-menu--bottom-left\";\nCSS_ALIGN_MAP[BOTTOM_RIGHT] = \"mdl-menu--bottom-right\";\nCSS_ALIGN_MAP[TOP_LEFT] = \"mdl-menu--top-left\";\nCSS_ALIGN_MAP[TOP_RIGHT] = \"mdl-menu--top-right\";\nCSS_ALIGN_MAP[UNALIGNED] = \"mdl-menu--unaligned\";\n\nexport class MdlMenuError extends MdlError {}\n\n@Injectable({\n  providedIn: \"root\",\n})\nexport class MdlMenuRegisty {\n  menuComponents: MdlMenuComponent[] = [];\n\n  add(menuComponent: MdlMenuComponent): void {\n    this.menuComponents.push(menuComponent);\n  }\n\n  remove(menuComponent: MdlMenuComponent): void {\n    const fromIndex = this.menuComponents.indexOf(menuComponent);\n    this.menuComponents.splice(fromIndex, 1);\n  }\n\n  hideAllExcept(menuComponent: MdlMenuComponent): void {\n    this.menuComponents.forEach((component) => {\n      if (component !== menuComponent) {\n        component.hide();\n      }\n    });\n  }\n}\n\n@Component({\n  selector: \"mdl-menu\",\n  exportAs: \"mdlMenu\",\n  template: `\n    <div #container class=\"mdl-menu__container is-upgraded\">\n      <div #outline class=\"mdl-menu__outline\" [ngClass]=\"cssPosition\"></div>\n      <div class=\"mdl-menu\" #menuElement>\n        <ng-content></ng-content>\n      </div>\n    </div>\n  `,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlMenuComponent implements OnInit, AfterViewInit, OnDestroy {\n  // eslint-disable-next-line\n  @Input(\"mdl-menu-position\")\n  position: string | undefined;\n\n  @ViewChild(\"container\", { static: true })\n  containerChild: ElementRef | undefined;\n  @ViewChild(\"menuElement\", { static: true })\n  menuElementChild: ElementRef | undefined;\n  @ViewChild(\"outline\", { static: true })\n  outlineChild: ElementRef | undefined;\n\n  public cssPosition = \"mdl-menu--bottom-left\";\n  private container: HTMLElement | undefined;\n  private menuElement: HTMLElement | undefined;\n  private outline: HTMLElement | undefined;\n  private isVisible = false;\n\n  constructor(\n    private renderer: Renderer2,\n    private menuRegistry: MdlMenuRegisty\n  ) {\n    this.menuRegistry.add(this);\n  }\n\n  ngOnInit(): void {\n    this.cssPosition = CSS_ALIGN_MAP[this.position ?? BOTTOM_LEFT];\n  }\n\n  ngAfterViewInit(): void {\n    this.container = this.containerChild?.nativeElement;\n    this.menuElement = this.menuElementChild?.nativeElement;\n    this.outline = this.outlineChild?.nativeElement;\n\n    // Add a click listener to the document, to close the menu.\n    const callback = () => {\n      if (this.isVisible) {\n        this.hide();\n      }\n      return true;\n    };\n    this.renderer.listen(\"window\", \"click\", callback);\n    this.renderer.listen(\"window\", \"touchstart\", callback);\n  }\n\n  toggle(event: Event, mdlButton: MdlButtonComponent): void {\n    if (!mdlButton) {\n      throw new MdlMenuError(`MdlButtonComponent is required`);\n    }\n    if (this.isVisible) {\n      this.hide();\n    } else {\n      this.show(event, mdlButton);\n    }\n  }\n\n  hideOnItemClicked(): void {\n    // Wait some time before closing menu, so the user can see the ripple.\n    setTimeout(() => {\n      this.hide();\n    }, CLOSE_TIMEOUT);\n  }\n\n  hide(): void {\n    // Remove all transition delays; menu items fade out concurrently.\n    document.querySelectorAll(\"mdl-menu-item\").forEach((el) => {\n      (el as HTMLElement).style.removeProperty(\"transition-delay\");\n    });\n    // this.menuItemComponents.toArray().forEach(mi => {\n    //   mi.element.style.removeProperty('transition-delay');\n    // });\n\n    // Measure the inner element.\n    const rect = this.menuElement?.getBoundingClientRect();\n    const height = rect?.height;\n    const width = rect?.width;\n\n    // Turn on animation, and apply the final clip. Also make invisible.\n    // This triggers the transitions.\n    this.renderer.addClass(this.menuElement, \"is-animating\");\n    this.applyClip(height, width);\n    this.renderer.removeClass(this.container, \"is-visible\");\n\n    // Clean up after the animation is complete.\n    this.addAnimationEndListener();\n\n    this.isVisible = false;\n  }\n\n  show(event: Event, mdlButton: MdlButtonComponent): void {\n    this.menuRegistry.hideAllExcept(this);\n\n    event.stopPropagation();\n\n    const forElement = mdlButton.element;\n    const rect = forElement.getBoundingClientRect();\n    const forRect = forElement?.parentElement?.getBoundingClientRect();\n\n    if (!this.container || !forRect) {\n      return;\n    }\n    if (this.position === UNALIGNED) {\n      // Do not position the menu automatically. Requires the developer to\n      // manually specify position.\n    } else if (this.position === BOTTOM_RIGHT) {\n      // Position below the \"for\" element, aligned to its right.\n      this.container.style.right = forRect.right - rect.right + \"px\";\n      this.container.style.top =\n        forElement.offsetTop + forElement.offsetHeight + \"px\";\n    } else if (this.position === TOP_LEFT) {\n      // Position above the \"for\" element, aligned to its left.\n      this.container.style.left = forElement.offsetLeft + \"px\";\n      this.container.style.bottom = forRect.bottom - rect.top + \"px\";\n    } else if (this.position === TOP_RIGHT) {\n      // Position above the \"for\" element, aligned to its right.\n      this.container.style.right = forRect.right - rect.right + \"px\";\n      this.container.style.bottom = forRect.bottom - rect.top + \"px\";\n    } else {\n      // Default: position below the \"for\" element, aligned to its left.\n      this.container.style.left = forElement.offsetLeft + \"px\";\n      this.container.style.top =\n        forElement.offsetTop + forElement.offsetHeight + \"px\";\n    }\n\n    // Measure the inner element.\n    const height = this.menuElement?.getBoundingClientRect().height ?? 0;\n    const width = this.menuElement?.getBoundingClientRect().width ?? 0;\n\n    this.container.style.width = width + \"px\";\n    this.container.style.height = height + \"px\";\n    if (this.outline) {\n      this.outline.style.width = width + \"px\";\n      this.outline.style.height = height + \"px\";\n    }\n\n    const transitionDuration =\n      TRANSITION_DURATION_SECONDS * TRANSITION_DURATION_FRACTION;\n    document.querySelectorAll(\"mdl-menu-item\").forEach((el) => {\n      const mi = el as HTMLElement;\n      let itemDelay;\n      if (this.position === TOP_LEFT || this.position === TOP_RIGHT) {\n        itemDelay =\n          ((height - mi.offsetTop - mi.offsetHeight) / height) *\n            transitionDuration +\n          \"s\";\n      } else {\n        itemDelay = (mi.offsetTop / height) * transitionDuration + \"s\";\n      }\n      mi.style.transitionDelay = itemDelay;\n    });\n\n    // Apply the initial clip to the text before we start animating.\n    this.applyClip(height, width);\n\n    this.renderer.addClass(this.container, \"is-visible\");\n    if (this.menuElement) {\n      this.menuElement.style.clip =\n        \"rect(0 \" + width + \"px \" + height + \"px 0)\";\n      this.renderer.addClass(this.menuElement, \"is-animating\");\n    }\n\n    this.addAnimationEndListener();\n\n    this.isVisible = true;\n  }\n\n  ngOnDestroy(): void {\n    this.menuRegistry.remove(this);\n  }\n\n  private addAnimationEndListener() {\n    this.renderer.listen(this.menuElement, \"transitionend\", () => {\n      this.renderer.removeClass(this.menuElement, \"is-animating\");\n      return true;\n    });\n  }\n\n  private applyClip(height: number | undefined, width: number | undefined) {\n    if (!this.menuElement) {\n      return;\n    }\n    if (this.position === UNALIGNED) {\n      // Do not clip.\n      this.menuElement.style.clip = \"\";\n    } else if (this.position === BOTTOM_RIGHT) {\n      // Clip to the top right corner of the menu.\n      this.menuElement.style.clip =\n        \"rect(0 \" + width + \"px \" + \"0 \" + width + \"px)\";\n    } else if (this.position === TOP_LEFT) {\n      // Clip to the bottom left corner of the menu.\n      this.menuElement.style.clip =\n        \"rect(\" + height + \"px 0 \" + height + \"px 0)\";\n    } else if (this.position === TOP_RIGHT) {\n      // Clip to the bottom right corner of the menu.\n      this.menuElement.style.clip =\n        \"rect(\" +\n        height +\n        \"px \" +\n        width +\n        \"px \" +\n        height +\n        \"px \" +\n        width +\n        \"px)\";\n    } else {\n      // Default: do not clip (same as clipping to the top left corner).\n      this.menuElement.style.clip = \"\";\n    }\n  }\n}\n","import {\n  Component,\n  ElementRef,\n  forwardRef,\n  HostBinding,\n  HostListener,\n  Inject,\n  Input,\n  ViewEncapsulation,\n} from \"@angular/core\";\nimport { MdlMenuComponent } from \"./mdl-menu.component\";\nimport { toBoolean } from \"../common/boolean-property\";\nimport { callNative } from \"../common/native-support\";\n\n@Component({\n  selector: \"mdl-menu-item\",\n  template: \"<ng-content></ng-content>\",\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlMenuItemComponent {\n  @HostBinding(\"tabindex\")\n  tabindex = -1;\n  @HostBinding(\"class.mdl-menu__item\")\n  isMenuItem = true;\n\n  element: HTMLElement;\n\n  private disabledIntern = false;\n\n  // forwardRef is needed because of he circular dependency menu queries menuitems; menuitem needs the parent\n  constructor(\n    private elementRef: ElementRef,\n    @Inject(forwardRef(() => MdlMenuComponent))\n    private mdlMenu: MdlMenuComponent\n  ) {\n    this.element = elementRef.nativeElement;\n  }\n\n  @Input()\n  get disabled(): boolean {\n    return this.disabledIntern;\n  }\n\n  set disabled(value: boolean | string) {\n    this.disabledIntern = toBoolean(value);\n  }\n\n  @HostListener(\"click\", [\"$event\"])\n  onClick($event: Event): void {\n    $event.stopPropagation();\n    if (this.disabled) {\n      this.mdlMenu.hide();\n      return;\n    }\n    this.mdlMenu.hideOnItemClicked();\n  }\n\n  // we need to register a touchstart at the window to get informed if the user taps outside the menu.\n  // But if we register a touchstart event - safari will no longer convert touch events to click events.\n  // So we need to convert touch to click and the user still needs to register a (click) listener to be\n  // informed if the menu item has clicked.\n  @HostListener(\"touchstart\", [\"$event\"])\n  onTouch($event: Event): void {\n    // ensure that this event is totally consumed\n    $event.stopPropagation();\n    $event.preventDefault();\n\n    const event = new MouseEvent(\"click\", { bubbles: true });\n    callNative(this.element, \"dispatchEvent\", event);\n  }\n}\n","import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n  // eslint-disable-next-line\n  selector: '[mdl-menu-item-full-bleed-divider]'\n})\nexport class MdlMenuItemFullBleedDeviderDirective {\n  @HostBinding(\"class.mdl-menu__item--full-bleed-divider\")\n  isFullBleedDivider = true;\n}\n","import { Directive, HostListener, Input } from \"@angular/core\";\nimport { MdlMenuComponent } from \"./mdl-menu.component\";\nimport { MdlButtonComponent } from \"../button/mdl-button.component\";\n\n@Directive({\n  // eslint-disable-next-line\n  selector: \"[mdl-button][mdl-toggle-menu]\",\n})\nexport class MdlToggleMenuDirective {\n  // eslint-disable-next-line\n  @Input(\"mdl-toggle-menu\")\n  menu: MdlMenuComponent | undefined;\n\n  constructor(private button: MdlButtonComponent) {}\n\n  @HostListener(\"click\", [\"$event\"])\n  public onClick($event: Event): void {\n    this.menu?.toggle($event, this.button);\n  }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { MdlMenuComponent, MdlMenuRegisty } from \"./mdl-menu.component\";\nimport { MdlMenuItemComponent } from \"./mdl-menu-item.component\";\nimport { MdlMenuItemFullBleedDeviderDirective } from \"./mdl-menu-item.directive\";\nimport { CommonModule } from \"@angular/common\";\nimport { MdlToggleMenuDirective } from \"./mdl-toggle-menu.directive\";\n\nconst MDL_MENU_DIRECTIVES = [\n  MdlMenuComponent,\n  MdlMenuItemComponent,\n  MdlMenuItemFullBleedDeviderDirective,\n  MdlToggleMenuDirective,\n];\n\nexport * from \"./mdl-menu.component\";\nexport * from \"./mdl-menu-item.component\";\nexport * from \"./mdl-menu-item.directive\";\nexport * from \"./mdl-toggle-menu.directive\";\n\n@NgModule({\n  imports: [CommonModule],\n  exports: MDL_MENU_DIRECTIVES,\n  declarations: MDL_MENU_DIRECTIVES,\n})\nexport class MdlMenuModule {\n  static forRoot(): ModuleWithProviders<MdlMenuModule> {\n    return {\n      ngModule: MdlMenuModule,\n      providers: [MdlMenuRegisty],\n    };\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  HostBinding,\n  Input,\n  OnChanges,\n  SimpleChanges,\n  ViewEncapsulation,\n} from \"@angular/core\";\nimport { toBoolean } from \"../common/boolean-property\";\n\n@Component({\n  selector: \"mdl-progress\",\n  template: `\n    <div class=\"progressbar bar bar1\" [style.width]=\"progress + '%'\"></div>\n    <div class=\"bufferbar bar bar2\" [style.width]=\"buffer + '%'\"></div>\n    <div class=\"auxbar bar bar3\" [ngStyle]=\"{ width: aux + '%' }\"></div>\n  `,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MdlProgressComponent implements OnChanges {\n  @Input() progress = 0;\n  @Input() buffer = 100;\n  @Input() aux = 0;\n\n  @HostBinding(\"class.mdl-progress\")\n  isProgess = true;\n\n  private indeterminateIntern = false;\n\n  @HostBinding(\"class.mdl-progress__indeterminate\")\n  @Input()\n  get indeterminate(): boolean {\n    return this.indeterminateIntern;\n  }\n\n  set indeterminate(value: boolean) {\n    this.indeterminateIntern = toBoolean(value);\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes[\"buffer\"]) {\n      this.setBuffer(changes[\"buffer\"].currentValue);\n    }\n  }\n\n  private setBuffer(b: number) {\n    this.aux = 100 - b;\n  }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { MdlProgressComponent } from \"./mdl-progress.component\";\n\nconst MDL_PROGRESS_DIRECTIVES = [MdlProgressComponent];\n\n@NgModule({\n  imports: [CommonModule],\n  exports: MDL_PROGRESS_DIRECTIVES,\n  declarations: MDL_PROGRESS_DIRECTIVES,\n})\nexport class MdlProgressModule {\n  static forRoot(): ModuleWithProviders<MdlProgressModule> {\n    return {\n      ngModule: MdlProgressModule,\n      providers: [],\n    };\n  }\n}\n\nexport * from \"./mdl-progress.component\";\n","import {\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  HostListener,\n  Injectable,\n  Input,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Output,\n  Renderer2,\n  ViewEncapsulation,\n} from \"@angular/core\";\nimport {\n  ControlValueAccessor,\n  FormGroupName,\n  NG_VALUE_ACCESSOR,\n} from \"@angular/forms\";\nimport { toBoolean } from \"../common/boolean-property\";\nimport { noop } from \"../common/noop\";\n\nconst throwNameError = (): void => {\n  throw new Error(`\n      If you define both a name and a formControlName attribute on your radio button, their values\n      must match. Ex: <mdl-radio formControlName=\"food\" name=\"food\"></mdl-radio>\n    `);\n};\n\nconst IS_FOCUSED = \"is-focused\";\n\n// Registry for mdl-readio compnents. Is responsible to keep the\n// right state of the radio buttons of a radio group. It would be\n// easier if i had a mdl-radio-group component. but this would be\n// a big braking change.\n@Injectable({\n  providedIn: \"root\",\n})\nexport class MdlRadioGroupRegisty {\n  private defaultFormGroup = \"defaultFromGroup\";\n  private radioComponents: {\n    radio: MdlRadioComponent;\n    group: FormGroupName | string;\n  }[] = [];\n\n  add(radioComponent: MdlRadioComponent, formGroupName: FormGroupName): void {\n    this.radioComponents.push({\n      radio: radioComponent,\n      group: formGroupName || this.defaultFormGroup,\n    });\n  }\n\n  remove(radioComponent: MdlRadioComponent): void {\n    this.radioComponents = this.radioComponents.filter(\n      (radioComponentInArray) => radioComponentInArray.radio !== radioComponent\n    );\n  }\n\n  select(\n    radioComponent: MdlRadioComponent,\n    formGroupName: FormGroupName\n  ): void {\n    // unselect every radioComponent that is not the provided radiocomponent\n    // and has the same name and is in teh same group.\n    const groupToTest = formGroupName || this.defaultFormGroup;\n    this.radioComponents.forEach((component) => {\n      if (\n        component.radio.name === radioComponent.name &&\n        component.group === groupToTest\n      ) {\n        if (component.radio !== radioComponent) {\n          component.radio.deselect(radioComponent.value);\n        }\n      }\n    });\n  }\n}\n\n/*\n <mdl-radio name=\"group1\" value=\"1\" [(ngModel)]=\"radioOption\">Value 1</mdl-radio>\n */\n\n@Component({\n  selector: \"mdl-radio\",\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => MdlRadioComponent),\n      multi: true,\n    },\n  ],\n  template: `\n    <input\n      type=\"checkbox\"\n      class=\"mdl-radio__button\"\n      [attr.name]=\"name\"\n      (focus)=\"onFocus()\"\n      (blur)=\"onBlur()\"\n      (keyup.space)=\"spaceKeyPress()\"\n      [disabled]=\"disabled\"\n      [attr.tabindex]=\"tabindex\"\n      [(ngModel)]=\"checked\"\n    />\n    <span class=\"mdl-radio__label\"><ng-content></ng-content></span>\n    <span class=\"mdl-radio__outer-circle\"></span>\n    <span class=\"mdl-radio__inner-circle\"></span>\n  `,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlRadioComponent\n  implements ControlValueAccessor, OnInit, OnDestroy\n{\n  @Input()\n  name: string | undefined;\n  @Input()\n  formControlName: string | undefined;\n  @Input()\n  value: unknown;\n  @Input()\n  tabindex = null;\n  @Output()\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  change: EventEmitter<unknown> = new EventEmitter<unknown>();\n  // the internal state - used to set the underlaying radio button state.\n  @HostBinding(\"class.is-checked\")\n  checked = false;\n  @HostBinding(\"class.is-upgraded\") isUpgraded = true;\n  @HostBinding(\"class.mdl-radio\") isRadio = true;\n\n  public optionValue: unknown;\n\n  private readonly el: HTMLElement;\n  private onTouchedCallback: () => void = noop;\n  private onChangeCallback: () => void = noop;\n  private disabledIntern = false;\n\n  constructor(\n    private elementRef: ElementRef,\n    private renderer: Renderer2,\n    private radioGroupRegistry: MdlRadioGroupRegisty,\n    @Optional() private formGroupName: FormGroupName\n  ) {\n    this.el = elementRef.nativeElement;\n  }\n\n  @HostBinding(\"class.is-disabled\")\n  @Input()\n  get disabled(): boolean {\n    return this.disabledIntern;\n  }\n\n  set disabled(value: boolean) {\n    this.disabledIntern = toBoolean(value);\n  }\n\n  @HostListener(\"click\")\n  onClick(): void {\n    if (this.disabled) {\n      return;\n    }\n    this.optionValue = this.value;\n    this.updateCheckState();\n    this.onChangeCallback();\n    this.change.emit(this.optionValue);\n  }\n\n  ngOnInit(): void {\n    // we need a name and it must be the same as in the formcontrol.\n    // a radio group without name is useless.\n    this.checkName();\n    // register the radio button - this is the only chance to unselect the\n    // radio button that is no longer active - scope the radio button with it's group\n    // if there is one.\n    this.radioGroupRegistry.add(this, this.formGroupName);\n  }\n\n  ngOnDestroy(): void {\n    this.radioGroupRegistry.remove(this);\n  }\n\n  writeValue(optionValue: unknown): void {\n    this.optionValue = optionValue;\n    this.updateCheckState();\n  }\n\n  deselect(value: unknown): void {\n    // called from the registry. the value is the value of the selected radio button\n    // e.g. the radio button get unselected if it isnÄt the selected one.\n    this.writeValue(value);\n  }\n\n  registerOnChange(fn: (v: unknown) => unknown): void {\n    // wrap the callback, so that we can call select on the registry\n    this.onChangeCallback = () => {\n      fn(this.value);\n      this.radioGroupRegistry.select(this, this.formGroupName);\n    };\n  }\n\n  registerOnTouched(fn: () => unknown): void {\n    this.onTouchedCallback = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n  }\n\n  onFocus(): void {\n    this.renderer.addClass(this.el, IS_FOCUSED);\n  }\n\n  onBlur(): void {\n    this.renderer.removeClass(this.el, IS_FOCUSED);\n  }\n\n  spaceKeyPress(): void {\n    this.checked = false; // in case of space key is pressed radio button value must remain same\n  }\n\n  private updateCheckState() {\n    this.checked = this.optionValue === this.value;\n  }\n\n  private checkName(): void {\n    if (\n      this.name &&\n      this.formControlName &&\n      this.name !== this.formControlName\n    ) {\n      throwNameError();\n    }\n    if (!this.name && this.formControlName) {\n      this.name = this.formControlName;\n    }\n  }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { MdlRadioComponent, MdlRadioGroupRegisty } from \"./mdl-radio.component\";\n\n@NgModule({\n  imports: [CommonModule, FormsModule],\n  exports: [MdlRadioComponent],\n  declarations: [MdlRadioComponent],\n})\nexport class MdlRadioModule {\n  public static forRoot(): ModuleWithProviders<MdlRadioModule> {\n    return {\n      ngModule: MdlRadioModule,\n      providers: [MdlRadioGroupRegisty],\n    };\n  }\n}\n\nexport * from \"./mdl-radio.component\";\n","import {\n  Directive,\n  ElementRef,\n  Input,\n  OnChanges,\n  Renderer2,\n  SimpleChanges,\n} from \"@angular/core\";\nimport { MdlError } from \"../common/mdl-error\";\nimport { toNumber } from \"../common/number.property\";\n\nexport class MdlUnsupportedShadowValueError extends MdlError {\n  constructor(value: number | string) {\n    /* istanbul ignore next */\n    super(\n      `Shadow value \"${value}\" isn't supported (allowed: 2,3,4,6,8,16,24).`\n    );\n  }\n}\n\nconst MDL_SHADOW_VALUES = [0, 2, 3, 4, 6, 8, 16, 24];\n\n@Directive({\n  // eslint-disable-next-line\n  selector: \"[mdl-shadow]\",\n})\nexport class MdlShadowDirective implements OnChanges {\n  private readonly el: HTMLElement;\n  private mdlShadowIntern = 2;\n\n  constructor(private elementRef: ElementRef, private renderer: Renderer2) {\n    this.el = elementRef.nativeElement;\n  }\n\n  @Input(\"mdl-shadow\")\n  get mdlShadow(): number {\n    return this.mdlShadowIntern;\n  }\n\n  set mdlShadow(value: number | string) {\n    this.mdlShadowIntern = toNumber(value) ?? 2;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (MDL_SHADOW_VALUES.indexOf(Number(this.mdlShadow)) === -1) {\n      throw new MdlUnsupportedShadowValueError(this.mdlShadow);\n    }\n\n    const change = changes[\"mdlShadow\"];\n\n    if (!change.isFirstChange()) {\n      this.renderer.removeClass(\n        this.el,\n        `mdl-shadow--${change.previousValue}dp`\n      );\n    }\n\n    this.renderer.addClass(this.el, `mdl-shadow--${change.currentValue}dp`);\n  }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { MdlShadowDirective } from \"./mdl-shadow.directive\";\n\nconst MDL_SHADOW_DIRECTIVES = [MdlShadowDirective];\n\n@NgModule({\n  imports: [],\n  exports: MDL_SHADOW_DIRECTIVES,\n  declarations: MDL_SHADOW_DIRECTIVES,\n})\nexport class MdlShadowModule {\n  public static forRoot(): ModuleWithProviders<MdlShadowModule> {\n    return {\n      ngModule: MdlShadowModule,\n      providers: [],\n    };\n  }\n}\n\nexport * from \"./mdl-shadow.directive\";\n","import {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  forwardRef,\n  HostBinding,\n  HostListener,\n  Input,\n  Renderer2,\n  ViewChild,\n  ViewEncapsulation,\n} from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { toBoolean } from \"../common/boolean-property\";\nimport { noop } from \"../common/noop\";\nimport { callNative } from \"../common/native-support\";\nimport { toNumber } from \"../common/number.property\";\n\n@Component({\n  selector: \"mdl-slider\",\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => MdlSliderComponent),\n      multi: true,\n    },\n  ],\n  template: `\n    <input\n      class=\"mdl-slider is-upgraded\"\n      type=\"range\"\n      [min]=\"min\"\n      [max]=\"max\"\n      [step]=\"step\"\n      [(ngModel)]=\"value\"\n      [disabled]=\"disabled\"\n      tabindex=\"0\"\n      #input\n    />\n    <div class=\"mdl-slider__background-flex\">\n      <div class=\"mdl-slider__background-lower\" #lower></div>\n      <div class=\"mdl-slider__background-upper\" #uppper></div>\n    </div>\n  `,\n  styles: [\n    `\n      :host {\n        height: 22px;\n        user-select: none;\n        -webkit-user-select: none;\n        -moz-user-select: none;\n      }\n    `,\n  ],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlSliderComponent implements ControlValueAccessor, AfterViewInit {\n  @Input()\n  min: number | string | undefined;\n  @Input()\n  max: number | string | undefined;\n  @Input()\n  step: number | string | undefined;\n  @ViewChild(\"lower\", { static: true })\n  lowerEl: ElementRef | undefined;\n  @ViewChild(\"uppper\", { static: true })\n  upperEl: ElementRef | undefined;\n  @ViewChild(\"input\", { static: true })\n  inputEl: ElementRef | undefined;\n  @HostBinding(\"class.mdl-slider__container\")\n  isSliderContainer = true;\n  private valueIntern: number | null | undefined;\n  private onTouchedCallback: () => void = noop;\n  private onChangeCallback: (_: unknown) => void = noop;\n  private disabledIntern = false;\n\n  constructor(private renderer: Renderer2, private elRef: ElementRef) {}\n\n  @Input()\n  get disabled(): boolean {\n    return this.disabledIntern;\n  }\n\n  set disabled(value: boolean) {\n    this.disabledIntern = toBoolean(value);\n  }\n\n  get value(): number | string | undefined | null {\n    return this.valueIntern;\n  }\n\n  @Input() set value(v: number | string | undefined | null) {\n    this.valueIntern = toNumber(v);\n    this.updateSliderUI();\n    this.onChangeCallback(v);\n  }\n\n  @HostListener(\"mouseup\", [\"$event\"])\n  onMouseUp(event: MouseEvent): void {\n    (event.target as HTMLElement).blur();\n  }\n\n  @HostListener(\"mousedown\", [\"$event\"])\n  onMouseDown(event: MouseEvent): void {\n    if (event.target !== this.elRef.nativeElement) {\n      return;\n    }\n    // Discard the original event and create a new event that\n    // is on the slider element.\n    event.preventDefault();\n    const newEvent = new MouseEvent(\"mousedown\", {\n      relatedTarget: event.relatedTarget,\n      button: event.button,\n      buttons: event.buttons,\n      clientX: event.clientX,\n      clientY: this.inputEl?.nativeElement.getBoundingClientRect().y,\n      screenX: event.screenX,\n      screenY: event.screenY,\n    });\n    callNative(this.inputEl?.nativeElement, \"dispatchEvent\", newEvent);\n  }\n\n  ngAfterViewInit(): void {\n    this.updateSliderUI();\n  }\n\n  writeValue(value: number): void {\n    this.valueIntern = value;\n    this.updateSliderUI();\n  }\n\n  registerOnChange(fn: () => unknown): void {\n    this.onChangeCallback = fn;\n  }\n\n  registerOnTouched(fn: () => unknown): void {\n    this.onTouchedCallback = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n  }\n\n  updateSliderUI(): void {\n    // if the input hat a static value (for example value=\"30\"\n    // the setvalue method is called before the ViewChilds are initialized\n    // this has changed in Angular 9! :(\n    const min = toNumber(this.min);\n    const max = toNumber(this.max);\n    if (\n      !this.inputEl ||\n      this.valueIntern == null ||\n      max == null ||\n      min == null\n    ) {\n      return;\n    }\n    const fraction = (this.valueIntern - min) / (max - min);\n\n    if (fraction === 0) {\n      this.renderer.addClass(this.inputEl.nativeElement, \"is-lowest-value\");\n    } else {\n      this.renderer.removeClass(this.inputEl.nativeElement, \"is-lowest-value\");\n    }\n\n    this.renderer.setStyle(this.lowerEl?.nativeElement, \"flex\", \"\" + fraction);\n    this.renderer.setStyle(\n      this.upperEl?.nativeElement,\n      \"flex\",\n      \"\" + (1 - fraction)\n    );\n  }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { CommonModule } from \"@angular/common\";\nimport { MdlSliderComponent } from \"./mdl-slider.component\";\n\nconst MDL_SLIDER_DIRECTIVES = [MdlSliderComponent];\n\n@NgModule({\n  imports: [FormsModule, CommonModule],\n  exports: MDL_SLIDER_DIRECTIVES,\n  declarations: MDL_SLIDER_DIRECTIVES,\n})\nexport class MdlSliderModule {\n  public static forRoot(): ModuleWithProviders<MdlSliderModule> {\n    return {\n      ngModule: MdlSliderModule,\n      providers: [],\n    };\n  }\n}\n\nexport * from \"./mdl-slider.component\";\n","import {\n  Component,\n  ComponentFactory,\n  ComponentFactoryResolver,\n  ComponentRef,\n  Injectable,\n  ViewEncapsulation,\n} from \"@angular/core\";\nimport { MdlDialogOutletService } from \"../dialog-outlet/mdl-dialog-outlet.service\";\nimport { Observable, Subject } from \"rxjs\";\n\nconst ANIMATION_TIME = 250;\n\n@Component({\n  selector: \"mdl-snackbar-component\",\n  template: `\n    <div\n      id=\"demo-toast-example\"\n      class=\" mdl-snackbar\"\n      [ngClass]=\"{ 'mdl-snackbar--active': showIt }\"\n    >\n      <div class=\"mdl-snackbar__text\">{{ message }}</div>\n      <button\n        *ngIf=\"onAction\"\n        class=\"mdl-snackbar__action\"\n        type=\"button\"\n        (click)=\"onClick()\"\n      >\n        {{ actionText }}\n      </button>\n    </div>\n  `,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlSnackbarComponent {\n  message: string | undefined;\n  actionText: string | undefined;\n  showIt = false;\n  onAction: (() => void) | undefined;\n\n  onClick(): void {\n    this.onAction?.();\n  }\n\n  isActive(): boolean {\n    return this.showIt;\n  }\n\n  show(): Observable<void> {\n    const result: Subject<void> = new Subject();\n    // wait unit the dom is in place - then showIt will change the css class\n    setTimeout(() => {\n      this.showIt = true;\n      // fire after the view animation is done\n      setTimeout(() => {\n        result.next();\n        result.complete();\n      }, ANIMATION_TIME);\n    }, ANIMATION_TIME);\n\n    return result.asObservable();\n  }\n\n  hide(): Observable<void> {\n    this.showIt = false;\n\n    const result: Subject<void> = new Subject();\n\n    // fire after the view animation is done\n    setTimeout(() => {\n      result.next();\n      result.complete();\n    }, ANIMATION_TIME);\n\n    return result.asObservable();\n  }\n}\n\nexport interface IMdlSnackbarMessage {\n  message: string;\n  timeout?: number;\n  closeAfterTimeout?: boolean;\n  action?: {\n    handler: () => void;\n    text: string;\n  };\n}\n\n@Injectable({\n  providedIn: \"root\",\n})\nexport class MdlSnackbarService {\n  private readonly cFactory: ComponentFactory<MdlSnackbarComponent>;\n  private previousSnack:\n    | {\n        component: MdlSnackbarComponent;\n        cRef: ComponentRef<MdlSnackbarComponent>;\n      }\n    | undefined;\n\n  constructor(\n    private componentFactoryResolver: ComponentFactoryResolver,\n    private dialogOutletService: MdlDialogOutletService\n  ) {\n    this.cFactory =\n      this.componentFactoryResolver.resolveComponentFactory(\n        MdlSnackbarComponent\n      );\n  }\n\n  showToast(\n    message: string,\n    timeout?: number\n  ): Observable<MdlSnackbarComponent> {\n    return this.showSnackbar({\n      message,\n      timeout,\n    });\n  }\n\n  showSnackbar(\n    snackbarMessage: IMdlSnackbarMessage\n  ): Observable<MdlSnackbarComponent> {\n    const optTimeout = snackbarMessage.timeout || 2750;\n    const closeAfterTimeout = !!snackbarMessage.closeAfterTimeout;\n    const viewContainerRef = this.dialogOutletService.viewContainerRef;\n\n    if (!viewContainerRef) {\n      throw new Error(\n        \"You did not provide a ViewContainerRef. \" +\n          \"Please see https://github.com/mseemann/angular2-mdl/wiki/How-to-use-the-MdlDialogService\"\n      );\n    }\n\n    const cRef = viewContainerRef.createComponent(\n      this.cFactory,\n      viewContainerRef.length\n    );\n\n    const mdlSnackbarComponent = cRef.instance as MdlSnackbarComponent;\n    mdlSnackbarComponent.message = snackbarMessage.message;\n\n    if (this.previousSnack) {\n      const previousSnack = this.previousSnack;\n      const subscription = previousSnack.component.hide().subscribe(() => {\n        previousSnack.cRef.destroy();\n        subscription.unsubscribe();\n      });\n    }\n\n    this.previousSnack = {\n      component: mdlSnackbarComponent,\n      cRef,\n    };\n\n    if (snackbarMessage.action) {\n      if (closeAfterTimeout) {\n        this.hideAndDestroySnack(mdlSnackbarComponent, cRef, optTimeout);\n      }\n      mdlSnackbarComponent.actionText = snackbarMessage.action.text;\n      mdlSnackbarComponent.onAction = () => {\n        mdlSnackbarComponent.hide().subscribe(() => {\n          cRef.destroy();\n          snackbarMessage.action?.handler();\n        });\n      };\n    } else {\n      this.hideAndDestroySnack(mdlSnackbarComponent, cRef, optTimeout);\n    }\n\n    const result: Subject<MdlSnackbarComponent> =\n      new Subject<MdlSnackbarComponent>();\n\n    mdlSnackbarComponent.show().subscribe(() => {\n      result.next(mdlSnackbarComponent);\n      result.complete();\n    });\n\n    return result.asObservable();\n  }\n\n  private hideAndDestroySnack(\n    component: MdlSnackbarComponent,\n    componentRef: ComponentRef<MdlSnackbarComponent>,\n    timeOut: number\n  ) {\n    setTimeout(() => {\n      component.hide().subscribe(() => {\n        componentRef.destroy();\n      });\n    }, timeOut);\n  }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { MdlDialogOutletModule } from \"../dialog-outlet/mdl-dialog-outlet.module\";\nimport {\n  MdlSnackbarComponent,\n  MdlSnackbarService,\n} from \"./mdl-snackbar.service\";\n\n@NgModule({\n  imports: [CommonModule, MdlDialogOutletModule.forRoot()],\n  exports: [MdlSnackbarComponent],\n  declarations: [MdlSnackbarComponent],\n})\nexport class MdlSnackbarModule {\n  static forRoot(): ModuleWithProviders<MdlSnackbarModule> {\n    return {\n      ngModule: MdlSnackbarModule,\n      providers: [MdlSnackbarService],\n    };\n  }\n}\n\nexport * from \"./mdl-snackbar.service\";\n","import {\n  Component,\n  HostBinding,\n  Input,\n  ViewEncapsulation,\n} from \"@angular/core\";\nimport { toBoolean } from \"../common/boolean-property\";\n\n@Component({\n  selector: \"mdl-spinner\",\n  template: `\n    <div\n      *ngFor=\"let layer of layers\"\n      class=\"mdl-spinner__layer mdl-spinner__layer-{{ layer }}\"\n    >\n      <div class=\"mdl-spinner__circle-clipper mdl-spinner__left\">\n        <div class=\"mdl-spinner__circle\"></div>\n      </div>\n      <div class=\"mdl-spinner__gap-patch\">\n        <div class=\"mdl-spinner__circle\"></div>\n      </div>\n      <div class=\"mdl-spinner__circle-clipper mdl-spinner__right\">\n        <div class=\"mdl-spinner__circle\"></div>\n      </div>\n    </div>\n  `,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlSpinnerComponent {\n  @HostBinding(\"class.mdl-spinner\")\n  isSpinner = true;\n\n  @HostBinding(\"class.is-upgraded\")\n  isUpgraded = true;\n\n  layers = [1, 2, 3, 4];\n  private activeIntern = false;\n  private singleColorIntern = false;\n\n  @HostBinding(\"class.is-active\")\n  @Input()\n  get active(): boolean {\n    return this.activeIntern;\n  }\n\n  set active(value: boolean | undefined | string) {\n    this.activeIntern = toBoolean(value);\n  }\n\n  @HostBinding(\"class.mdl-spinner--single-color\")\n  @Input(\"single-color\")\n  get singleColor(): boolean {\n    return this.singleColorIntern;\n  }\n\n  set singleColor(value: boolean | string | undefined) {\n    this.singleColorIntern = toBoolean(value);\n  }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { MdlSpinnerComponent } from \"./mdl-spinner.component\";\n\nconst MDL_SPINNER_DIRECTIVES = [MdlSpinnerComponent];\n\n@NgModule({\n  imports: [CommonModule],\n  exports: MDL_SPINNER_DIRECTIVES,\n  declarations: MDL_SPINNER_DIRECTIVES,\n})\nexport class MdlSpinnerModule {\n  static forRoot(): ModuleWithProviders<MdlSpinnerModule> {\n    return {\n      ngModule: MdlSpinnerModule,\n      providers: [],\n    };\n  }\n}\n\nexport * from \"./mdl-spinner.component\";\n","import {\n  Component,\n  ElementRef,\n  forwardRef,\n  HostBinding,\n  Renderer2,\n  ViewEncapsulation,\n} from \"@angular/core\";\n\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { MdlCheckboxComponent } from \"../checkbox/mdl-checkbox.component\";\n\n@Component({\n  selector: \"mdl-switch\",\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => MdlSwitchComponent),\n      multi: true,\n    },\n  ],\n  template: `\n    <input\n      type=\"checkbox\"\n      class=\"mdl-switch__input\"\n      (focus)=\"onFocus()\"\n      (blur)=\"onBlur()\"\n      [disabled]=\"disabled\"\n      [(ngModel)]=\"value\"\n    />\n    <span class=\"mdl-switch__label\"><ng-content></ng-content></span>\n    <div class=\"mdl-switch__track\"></div>\n    <div class=\"mdl-switch__thumb\">\n      <span class=\"mdl-switch__focus-helper\"></span>\n    </div>\n  `,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlSwitchComponent extends MdlCheckboxComponent {\n  @HostBinding(\"class.mdl-switch\")\n  isSwitch = true;\n\n  constructor(elementRef: ElementRef, renderer: Renderer2) {\n    super(elementRef, renderer);\n    this.isCheckbox = false;\n  }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { MdlSwitchComponent } from \"./mdl-switch.component\";\n\nconst MDL_SWITCH_DIRECTIVES = [MdlSwitchComponent];\n\n@NgModule({\n  imports: [CommonModule, FormsModule],\n  exports: MDL_SWITCH_DIRECTIVES,\n  declarations: MDL_SWITCH_DIRECTIVES,\n})\nexport class MdlSwitchModule {\n  static forRoot(): ModuleWithProviders<MdlSwitchModule> {\n    return {\n      ngModule: MdlSwitchModule,\n      providers: [],\n    };\n  }\n}\n\nexport * from \"./mdl-switch.component\";\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n  ViewEncapsulation,\n} from \"@angular/core\";\n\nexport interface IMdlTableColumn {\n  key: string;\n  name: string;\n  numeric?: boolean;\n}\n\nexport interface IMdlTableModelItem {\n  selected: boolean;\n}\n\nexport interface IMdlTableModel {\n  columns: IMdlTableColumn[];\n  data: IMdlTableModelItem[];\n}\n\nexport class MdlDefaultTableModel implements IMdlTableModel {\n  public columns: IMdlTableColumn[];\n  public data: IMdlTableModelItem[] = [];\n\n  constructor(columns: IMdlTableColumn[]) {\n    this.columns = columns;\n  }\n\n  addAll(data: IMdlTableModelItem[]): void {\n    this.data.push(...data);\n  }\n}\n\nconst template = `\n        <table class=\"mdl-data-table\">\n           <thead>\n           <tr>\n              <th *ngIf=\"selectable\">\n                 <mdl-checkbox mdl-ripple [ngModel]=\"isAllSelected()\" (ngModelChange)=\"toggleAll()\"></mdl-checkbox>\n              </th>\n              <th *ngFor=\"let column of model?.columns\"\n                  [ngClass]=\"{'mdl-data-table__cell--non-numeric': !column.numeric}\">\n                 {{column.name}}\n              </th>\n           </tr>\n           </thead>\n           <tbody>\n           <tr *ngFor=\"let data of model?.data; let i = index\" [ngClass]=\"{'is-selected': selectable && data.selected}\">\n              <td *ngIf=\"selectable\">\n                 <mdl-checkbox mdl-ripple\n                      [(ngModel)]=\"data.selected\"\n                      (ngModelChange)=\"selectionChanged()\"></mdl-checkbox>\n              </td>\n              <td *ngFor=\"let column of model?.columns\"\n                  [ngClass]=\"{'mdl-data-table__cell--non-numeric': !column.numeric}\"\n                  [innerHTML]=\"$any(data)[column.key]\">\n              </td>\n           </tr>\n           </tbody>\n        </table>\n    `;\n\nconst styles = `\n    :host{\n      display:inline-block;\n    }\n    `;\n\n@Component({\n  selector: \"mdl-table\",\n  template,\n  styles: [styles],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlTableComponent {\n  // eslint-disable-next-line\n  @Input(\"table-model\")\n  model: IMdlTableModel | undefined;\n\n  selectable = false;\n\n  isAllSelected(): boolean {\n    return false;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  toggleAll(): void {}\n\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  selectionChanged(): void {}\n}\n\n@Component({\n  selector: \"mdl-table-selectable\",\n  template,\n  styles: [styles],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlSelectableTableComponent extends MdlTableComponent {\n  // eslint-disable-next-line\n  @Input(\"table-model\")\n  override model: IMdlTableModel | undefined;\n  // eslint-disable-next-line\n  @Input(\"table-model-selected\")\n  selected: IMdlTableModelItem[] = [];\n  // eslint-disable-next-line\n  @Output(\"table-model-selectionChanged\")\n  selectionChange = new EventEmitter();\n\n  public override selectable = true;\n  public allSelected = false;\n\n  override isAllSelected(): boolean {\n    return this.model?.data.every((data) => data.selected) ?? false;\n  }\n\n  override toggleAll(): void {\n    const selected = !this.isAllSelected();\n    this.model?.data.forEach((data) => (data.selected = selected));\n    this.updateSelected();\n  }\n\n  override selectionChanged(): void {\n    this.updateSelected();\n  }\n\n  private updateSelected() {\n    this.selected = this.model?.data.filter((data) => data.selected) ?? [];\n    this.selectionChange.emit({ value: this.selected });\n  }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport {\n  MdlSelectableTableComponent,\n  MdlTableComponent,\n} from \"./mdl-table.component\";\n\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { MdlCommonsModule } from \"../common/mdl-common.module\";\nimport { MdlCheckboxModule } from \"../checkbox/mdl-checkbox.module\";\n\nexport * from \"./mdl-table.component\";\n\nconst MDL_TABLE_DIRECTIVES = [MdlTableComponent, MdlSelectableTableComponent];\n\n@NgModule({\n  imports: [MdlCheckboxModule, MdlCommonsModule, CommonModule, FormsModule],\n  exports: MDL_TABLE_DIRECTIVES,\n  declarations: MDL_TABLE_DIRECTIVES,\n})\nexport class MdlTableModule {\n  public static forRoot(): ModuleWithProviders<MdlTableModule> {\n    return {\n      ngModule: MdlTableModule,\n      providers: [],\n    };\n  }\n}\n","import {\n  Component,\n  DoCheck,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  Inject,\n  InjectionToken,\n  Input,\n  OnChanges,\n  Optional,\n  Output,\n  Renderer2,\n  ViewChild,\n  ViewEncapsulation,\n} from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { toBoolean } from \"../common/boolean-property\";\nimport { toNumber } from \"../common/number.property\";\nimport { noop } from \"../common/noop\";\n\nexport const DISABLE_NATIVE_VALIDITY_CHECKING = new InjectionToken<boolean>(\n  \"disableNativeValidityChecking\"\n);\n\nlet nextId = 0;\n\nconst IS_FOCUSED = \"is-focused\";\nconst IS_DISABLED = \"is-disabled\";\nconst IS_INVALID = \"is-invalid\";\nconst IS_DIRTY = \"is-dirty\";\n\n@Component({\n  selector: \"mdl-textfield\",\n  template: `\n    <div *ngIf=\"!icon\">\n      <textarea\n        *ngIf=\"rows\"\n        #input\n        [rows]=\"rows\"\n        class=\"mdl-textfield__input\"\n        type=\"text\"\n        [attr.name]=\"name\"\n        [id]=\"id\"\n        [placeholder]=\"placeholder ? placeholder : ''\"\n        (focus)=\"onFocus($event)\"\n        (blur)=\"onBlur($event)\"\n        (keydown)=\"keydownTextarea($event)\"\n        (keyup)=\"onKeyup($event)\"\n        [(ngModel)]=\"value\"\n        [disabled]=\"disabled\"\n        [required]=\"required\"\n        [autofocus]=\"autofocus\"\n        [readonly]=\"readonly\"\n        [maxlength]=\"maxlength\"\n      ></textarea>\n      <input\n        *ngIf=\"!rows\"\n        #input\n        class=\"mdl-textfield__input\"\n        [type]=\"type\"\n        [attr.name]=\"name\"\n        [id]=\"id\"\n        [pattern]=\"pattern ? pattern : '.*'\"\n        [attr.min]=\"min\"\n        [attr.max]=\"max\"\n        [attr.step]=\"step\"\n        [placeholder]=\"placeholder ? placeholder : ''\"\n        [autocomplete]=\"autocomplete ? autocomplete : ''\"\n        (focus)=\"onFocus($event)\"\n        (blur)=\"onBlur($event)\"\n        (keyup)=\"onKeyup($event)\"\n        [(ngModel)]=\"value\"\n        [disabled]=\"disabled\"\n        [required]=\"required\"\n        [autofocus]=\"autofocus\"\n        [readonly]=\"readonly\"\n        [attr.tabindex]=\"tabindex\"\n        [maxlength]=\"maxlength\"\n      />\n      <label class=\"mdl-textfield__label\" [attr.for]=\"id\">{{ label }}</label>\n      <span class=\"mdl-textfield__error\">{{ errorMessage }}</span>\n    </div>\n    <div *ngIf=\"icon\">\n      <button mdl-button mdl-button-type=\"icon\" (click)=\"setFocus()\">\n        <mdl-icon>{{ icon }}</mdl-icon>\n      </button>\n      <div class=\"mdl-textfield__expandable-holder\">\n        <input\n          #input\n          class=\"mdl-textfield__input\"\n          [type]=\"type\"\n          [attr.name]=\"name\"\n          [id]=\"id\"\n          [pattern]=\"pattern ? pattern : '.*'\"\n          [attr.min]=\"min\"\n          [attr.max]=\"max\"\n          [attr.step]=\"step\"\n          [placeholder]=\"placeholder ? placeholder : ''\"\n          [autocomplete]=\"autocomplete ? autocomplete : ''\"\n          (focus)=\"onFocus($event)\"\n          (blur)=\"onBlur($event)\"\n          (keyup)=\"onKeyup($event)\"\n          [(ngModel)]=\"value\"\n          [disabled]=\"disabled\"\n          [required]=\"required\"\n          [autofocus]=\"autofocus\"\n          [readonly]=\"readonly\"\n          [attr.tabindex]=\"tabindex\"\n          [maxlength]=\"maxlength\"\n        />\n        <label class=\"mdl-textfield__label\" [attr.for]=\"id\">{{ label }}</label>\n        <span class=\"mdl-textfield__error\">{{ errorMessage }}</span>\n      </div>\n    </div>\n  `,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => MdlTextFieldComponent),\n      multi: true,\n    },\n  ],\n  encapsulation: ViewEncapsulation.None,\n})\n/* eslint-disable  @angular-eslint/no-conflicting-lifecycle */\nexport class MdlTextFieldComponent\n  implements ControlValueAccessor, OnChanges, DoCheck\n{\n  // eslint-disable-next-line\n  @Output(\"blur\")\n  blurEmitter: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n  // eslint-disable-next-line\n  @Output(\"focus\")\n  focusEmitter: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n  // eslint-disable-next-line\n  @Output(\"keyup\")\n  keyupEmitter: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n  @ViewChild(\"input\")\n  inputEl: ElementRef | undefined;\n  @Input()\n  type = \"text\";\n  @Input()\n  label: string | undefined;\n  @Input()\n  pattern: string | undefined;\n  @Input()\n  min: number | string | undefined;\n  @Input()\n  max: number | string | undefined;\n  @Input()\n  step: number | string | undefined;\n  @Input()\n  name: string | undefined;\n  @Input()\n  id = `mdl-textfield-${nextId++}`;\n  // eslint-disable-next-line\n  @Input(\"error-msg\")\n  errorMessage: string | undefined;\n  @HostBinding(\"class.has-placeholder\")\n  @Input()\n  placeholder: string | undefined;\n  @Input()\n  autocomplete: string | undefined;\n  @HostBinding(\"class.mdl-textfield--expandable\")\n  @Input()\n  icon: string | undefined;\n  @Input()\n  tabindex: number | string | null = null;\n  @Input()\n  maxlength: number | string | null = null;\n  @HostBinding(\"class.mdl-textfield\")\n  isTextfield = true;\n  @HostBinding(\"class.is-upgraded\")\n  isUpgraded = true;\n  private valueIntern: string | number | null = null;\n\n  private readonly el: HTMLElement;\n  private onTouchedCallback: () => void = noop;\n  private onChangeCallback: (_: unknown) => void = noop;\n  private disabledIntern = false;\n  private readonlyIntern = false;\n  private requiredIntern = false;\n  private autofocusIntern = false;\n  private isFloatingLabelIntern = false;\n  private rowsIntern: number | undefined | null = null;\n  private maxrowsIntern = -1;\n  // @experimental\n  private disableNativeValidityCheckingIntern = false;\n\n  constructor(\n    private renderer: Renderer2,\n    private elmRef: ElementRef,\n    @Optional()\n    @Inject(DISABLE_NATIVE_VALIDITY_CHECKING)\n    private nativeCheckGlobalDisabled: boolean\n  ) {\n    this.el = elmRef.nativeElement;\n  }\n\n  get value(): string | number | null {\n    return this.valueIntern;\n  }\n\n  @Input() set value(v: string | number | null) {\n    this.valueIntern =\n      this.type === \"number\" ? (v === \"\" ? null : parseFloat(v as string)) : v;\n    this.onChangeCallback(this.value);\n  }\n\n  @Input()\n  get disabled(): boolean {\n    return this.disabledIntern;\n  }\n\n  set disabled(value: boolean | string) {\n    this.disabledIntern = toBoolean(value);\n  }\n\n  @Input()\n  get readonly(): boolean {\n    return this.readonlyIntern;\n  }\n\n  set readonly(value: boolean) {\n    this.readonlyIntern = toBoolean(value);\n  }\n\n  @Input()\n  get required(): boolean {\n    return this.requiredIntern;\n  }\n\n  set required(value: boolean | string) {\n    this.requiredIntern = toBoolean(value);\n  }\n\n  @Input()\n  get autofocus(): boolean {\n    return this.autofocusIntern;\n  }\n\n  set autofocus(value: boolean | string) {\n    this.autofocusIntern = toBoolean(value);\n  }\n\n  @HostBinding(\"class.mdl-textfield--floating-label\")\n  @Input(\"floating-label\")\n  get isFloatingLabel(): boolean {\n    return this.isFloatingLabelIntern;\n  }\n\n  set isFloatingLabel(value: boolean | string) {\n    this.isFloatingLabelIntern = toBoolean(value);\n  }\n\n  @Input()\n  get rows(): number | string | null | undefined {\n    return this.rowsIntern;\n  }\n\n  set rows(value: number | string | null | undefined) {\n    this.rowsIntern = toNumber(value);\n  }\n\n  @Input()\n  get maxrows(): number {\n    return this.maxrowsIntern;\n  }\n\n  set maxrows(value: number | string | null) {\n    this.maxrowsIntern = toNumber(value) ?? -1;\n  }\n\n  @Input()\n  get disableNativeValidityChecking(): boolean | string {\n    return this.disableNativeValidityCheckingIntern;\n  }\n\n  set disableNativeValidityChecking(value: boolean | string) {\n    this.disableNativeValidityCheckingIntern = toBoolean(value);\n  }\n\n  public writeValue(value: string | number): void {\n    this.valueIntern = value;\n    this.checkDirty();\n  }\n\n  public registerOnChange(fn: () => unknown): void {\n    this.onChangeCallback = fn;\n  }\n\n  public registerOnTouched(fn: () => unknown): void {\n    this.onTouchedCallback = fn;\n  }\n\n  public setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n  }\n\n  // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n  ngOnChanges(): void {\n    this.checkDisabled();\n  }\n\n  // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n  ngDoCheck(): void {\n    this.checkValidity();\n    this.checkDirty();\n  }\n\n  setFocus(): void {\n    if (!this.inputEl) {\n      return;\n    }\n    (this.inputEl.nativeElement as HTMLInputElement).dispatchEvent(\n      new Event(\"focus\")\n    );\n  }\n\n  keydownTextarea($event: KeyboardEvent): void {\n    const currentRowCount =\n      this.inputEl?.nativeElement.value.split(\"\\n\").length;\n    // eslint-disable-next-line\n    if ($event.keyCode === 13) {\n      if (currentRowCount >= this.maxrows && this.maxrows !== -1) {\n        $event.preventDefault();\n      }\n    }\n  }\n\n  // model value.\n  triggerChange(event: Event): void {\n    this.value = (event.target as HTMLInputElement).value;\n    this.onTouchedCallback();\n  }\n\n  onFocus(event: FocusEvent): void {\n    this.renderer.addClass(this.el, IS_FOCUSED);\n    this.focusEmitter.emit(event);\n  }\n\n  onBlur(event: FocusEvent): void {\n    this.renderer.removeClass(this.el, IS_FOCUSED);\n    this.onTouchedCallback();\n    this.blurEmitter.emit(event);\n  }\n\n  onKeyup(event: KeyboardEvent): void {\n    this.keyupEmitter.emit(event);\n  }\n\n  private checkDisabled() {\n    if (this.disabled) {\n      this.renderer.addClass(this.el, IS_DISABLED);\n    } else {\n      this.renderer.removeClass(this.el, IS_DISABLED);\n    }\n  }\n\n  private checkValidity() {\n    // check the global setting - if globally disabled do no check\n    if (this.nativeCheckGlobalDisabled === true) {\n      return;\n    }\n    // check local setting - if locally disabled do no check\n    if (this.disableNativeValidityChecking) {\n      return;\n    }\n    if (this.inputEl && this.inputEl.nativeElement.validity) {\n      if (!this.inputEl.nativeElement.validity.valid) {\n        this.renderer.addClass(this.el, IS_INVALID);\n      } else {\n        this.renderer.removeClass(this.el, IS_INVALID);\n      }\n    }\n  }\n\n  private checkDirty() {\n    const dirty =\n      this.inputEl &&\n      this.inputEl.nativeElement.value &&\n      this.inputEl.nativeElement.value.length > 0;\n    if (dirty) {\n      this.renderer.addClass(this.el, IS_DIRTY);\n    } else {\n      this.renderer.removeClass(this.el, IS_DIRTY);\n    }\n  }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\n\nimport { FormsModule } from \"@angular/forms\";\nimport { CommonModule } from \"@angular/common\";\nimport { MdlTextFieldComponent } from \"./mdl-textfield.component\";\nimport { MdlIconModule } from \"../icon/mdl-icon.module\";\nimport { MdlButtonModule } from \"../button/mdl-button.module\";\n\n@NgModule({\n  imports: [MdlIconModule, MdlButtonModule, FormsModule, CommonModule],\n  exports: [MdlTextFieldComponent],\n  declarations: [MdlTextFieldComponent],\n})\nexport class MdlTextFieldModule {\n  public static forRoot(): ModuleWithProviders<MdlTextFieldModule> {\n    return {\n      ngModule: MdlTextFieldModule,\n      providers: [],\n    };\n  }\n}\n\nexport * from \"./mdl-textfield.component\";\n","import { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class MdlTooltipPositionService {\n  public calcStyle(\n    offsetWidth: number,\n    offsetHeight: number,\n    props: ClientRect,\n    position: string\n  ): { [propName: string]: unknown } {\n    const result: { [propName: string]: unknown } = {};\n    const left = props.left + props.width / 2;\n    const top = props.top + props.height / 2;\n    const marginLeft = -1 * (offsetWidth / 2);\n    const marginTop = -1 * (offsetHeight / 2);\n\n    if (position === \"left\" || position === \"right\") {\n      if (top + marginTop < 0) {\n        result[\"top\"] = \"0\";\n        result[\"marginTop\"] = \"0\";\n      } else {\n        result[\"top\"] = top + \"px\";\n        result[\"marginTop\"] = marginTop + \"px\";\n      }\n    } else {\n      if (left + marginLeft < 0) {\n        result[\"left\"] = \"0\";\n        result[\"marginLeft\"] = \"0\";\n      } else {\n        result[\"left\"] = left + \"px\";\n        result[\"marginLeft\"] = marginLeft + \"px\";\n      }\n    }\n\n    if (position === \"top\") {\n      result[\"top\"] = props.top - offsetHeight - 10 + \"px\";\n    } else if (position === \"right\") {\n      result[\"left\"] = props.left + props.width + 10 + \"px\";\n    } else if (position === \"left\") {\n      result[\"left\"] = props.left - offsetWidth - 10 + \"px\";\n    } else {\n      result[\"top\"] = props.top + props.height + 10 + \"px\";\n    }\n\n    return result;\n  }\n}\n","import {\n  Component,\n  ElementRef,\n  HostBinding,\n  Input,\n  Renderer2,\n  ViewEncapsulation,\n} from \"@angular/core\";\nimport { MdlTooltipPositionService } from \"./mdl-tooltip-position.service\";\n\nconst IS_ACTIVE = \"is-active\";\n\n@Component({\n  selector: \"mdl-simple-tooltip\",\n  template: \"<div>{{tooltipText}}</div>\",\n  providers: [MdlTooltipPositionService],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlSimpleTooltipComponent {\n  @HostBinding(\"class.mdl-tooltip--large\")\n  large = false;\n\n  @Input()\n  position: \"left\" | \"right\" | \"top\" | \"bottom\" = \"top\";\n\n  @Input()\n  delay: number | undefined;\n\n  @HostBinding(\"class.mdl-tooltip\")\n  isTooltip = true;\n\n  tooltipText: string | undefined = \"\";\n  element: HTMLElement;\n\n  active = false;\n  delayTimeout: unknown;\n\n  constructor(\n    private elRef: ElementRef,\n    private renderer: Renderer2,\n    private mdlTooltipPositionService: MdlTooltipPositionService\n  ) {\n    this.element = elRef.nativeElement;\n  }\n\n  @HostBinding(\"class.mdl-tooltip--bottom\") get isBottom(): boolean {\n    return this.position === \"bottom\";\n  }\n\n  @HostBinding(\"class.mdl-tooltip--right\") get isRight(): boolean {\n    return this.position === \"right\";\n  }\n\n  @HostBinding(\"class.mdl-tooltip--left\") get isLeft(): boolean {\n    return this.position === \"left\";\n  }\n\n  @HostBinding(\"class.mdl-tooltip--top\") isTop(): boolean {\n    return this.position === \"top\";\n  }\n\n  mouseLeave(): void {\n    if (this.delayTimeout) {\n      clearTimeout(this.delayTimeout as number);\n    }\n    this.setActive(false);\n  }\n\n  mouseEnter(event: Event): void {\n    if (this.delay) {\n      this.delayTimeout = setTimeout(() => {\n        this.show(event.target as HTMLElement);\n      }, this.delay);\n    } else {\n      this.show(event.target as HTMLElement);\n    }\n  }\n\n  isActive(): boolean {\n    return this.active;\n  }\n\n  private show(element: HTMLElement) {\n    const props = element.getBoundingClientRect();\n    const offsetWidth = this.element.offsetWidth;\n    const offsetHeight = this.element.offsetHeight;\n\n    const style = this.mdlTooltipPositionService.calcStyle(\n      offsetWidth,\n      offsetHeight,\n      props,\n      this.position\n    );\n\n    for (const key of Object.keys(style)) {\n      this.renderer.setStyle(this.elRef.nativeElement, key, style[key]);\n    }\n\n    this.setActive(true);\n  }\n\n  private setActive(active: boolean) {\n    this.active = active;\n    if (active) {\n      this.renderer.addClass(this.elRef.nativeElement, IS_ACTIVE);\n    } else {\n      this.renderer.removeClass(this.elRef.nativeElement, IS_ACTIVE);\n    }\n  }\n}\n\n@Component({\n  selector: \"mdl-tooltip\",\n  template: \"<div><ng-content></ng-content></div>\",\n  exportAs: \"mdlTooltip\",\n  providers: [MdlTooltipPositionService],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MdlTooltipComponent extends MdlSimpleTooltipComponent {\n  constructor(\n    elRef: ElementRef,\n    renderer: Renderer2,\n    mdlTooltipPositionService: MdlTooltipPositionService\n  ) {\n    super(elRef, renderer, mdlTooltipPositionService);\n  }\n}\n","import {\n  ComponentFactoryResolver,\n  ComponentRef,\n  Directive,\n  HostListener,\n  Input,\n  OnChanges,\n  OnInit,\n  SimpleChanges,\n  ViewContainerRef,\n} from \"@angular/core\";\nimport {\n  MdlSimpleTooltipComponent,\n  MdlTooltipComponent,\n} from \"./mdl-tooltip.component\";\n\n@Directive()\nexport abstract class AbstractMdlTooltipDirective implements OnInit, OnChanges {\n  protected tooltip: string | MdlTooltipComponent | undefined;\n  protected position: \"left\" | \"right\" | \"top\" | \"bottom\" = \"top\";\n\n  protected tooltipComponent: MdlSimpleTooltipComponent | undefined;\n\n  protected constructor(\n    private vcRef: ViewContainerRef,\n    private large: boolean,\n    private componentFactoryResolver: ComponentFactoryResolver\n  ) {}\n\n  @HostListener(\"touchend\", [\"$event\"])\n  @HostListener(\"mouseenter\", [\"$event\"])\n  onMouseEnter(event: MouseEvent): void {\n    this.tooltipComponent?.mouseEnter(event);\n  }\n\n  @HostListener(\"window:touchstart\")\n  @HostListener(\"mouseleave\")\n  onMouseLeave(): void {\n    this.tooltipComponent?.mouseLeave();\n  }\n\n  ngOnInit(): void {\n    // if the tooltip is not an instance of MdlTooltipComponent\n    // we create a simpleTooltipComponent on the fly.\n    if (!(this.tooltip instanceof MdlTooltipComponent)) {\n      const cFactory = this.componentFactoryResolver.resolveComponentFactory(\n        MdlSimpleTooltipComponent\n      );\n      const cRef: ComponentRef<MdlSimpleTooltipComponent> =\n        this.vcRef.createComponent(cFactory);\n\n      this.tooltipComponent = cRef.instance as MdlSimpleTooltipComponent;\n      if (this.tooltipComponent) {\n        this.tooltipComponent.tooltipText = this.tooltip;\n      }\n      this.configureTooltipComponent();\n    } else {\n      this.tooltipComponent = this.tooltip;\n      this.configureTooltipComponent();\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes[\"tooltip\"] && !changes[\"tooltip\"].isFirstChange()) {\n      if (!(this.tooltip instanceof MdlTooltipComponent)) {\n        if (this.tooltipComponent) {\n          this.tooltipComponent.tooltipText = this.tooltip;\n        }\n      }\n    }\n  }\n\n  private configureTooltipComponent() {\n    if (this.tooltipComponent) {\n      this.tooltipComponent.large = this.large;\n      this.tooltipComponent.position = this.position;\n    }\n  }\n}\n\n@Directive({\n  // eslint-disable-next-line\n  selector: \"[mdl-tooltip]\",\n})\nexport class MdlTooltipDirective extends AbstractMdlTooltipDirective {\n  @Input(\"mdl-tooltip\") public override tooltip:\n    | string\n    | MdlTooltipComponent\n    | undefined;\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  @Input(\"mdl-tooltip-position\") public override position:\n    | \"left\"\n    | \"right\"\n    | \"top\"\n    | \"bottom\" = \"top\";\n\n  constructor(\n    vcRef: ViewContainerRef,\n    componentFactoryResolver: ComponentFactoryResolver\n  ) {\n    super(vcRef, false, componentFactoryResolver);\n  }\n}\n\n@Directive({\n  // eslint-disable-next-line\n  selector: \"[mdl-tooltip-large]\",\n})\nexport class MdlTooltipLargeDirective extends AbstractMdlTooltipDirective {\n  @Input(\"mdl-tooltip-large\") public override tooltip:\n    | string\n    | MdlTooltipComponent\n    | undefined;\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  @Input(\"mdl-tooltip-position\") public override position:\n    | \"left\"\n    | \"right\"\n    | \"top\"\n    | \"bottom\" = \"top\";\n\n  constructor(\n    vcRef: ViewContainerRef,\n    componentFactoryResolver: ComponentFactoryResolver\n  ) {\n    super(vcRef, true, componentFactoryResolver);\n  }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport {\n  MdlSimpleTooltipComponent,\n  MdlTooltipComponent,\n} from \"./mdl-tooltip.component\";\n\nimport {\n  MdlTooltipDirective,\n  MdlTooltipLargeDirective,\n} from \"./mdl-tooltip.directive\";\n\nconst MDL_TOOLTIP_DIRECTIVES = [\n  MdlTooltipComponent,\n  MdlTooltipLargeDirective,\n  MdlTooltipDirective,\n];\n\nexport * from \"./mdl-tooltip.component\";\nexport * from \"./mdl-tooltip.directive\";\n\n@NgModule({\n  imports: [],\n  exports: MDL_TOOLTIP_DIRECTIVES,\n  declarations: [...MDL_TOOLTIP_DIRECTIVES, MdlSimpleTooltipComponent],\n})\nexport class MdlTooltipModule {\n  static forRoot(): ModuleWithProviders<MdlTooltipModule> {\n    return {\n      ngModule: MdlTooltipModule,\n      providers: [],\n    };\n  }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { MdlCommonsModule } from \"./common/mdl-common.module\";\nimport { MdlLayoutModule } from \"./layout/mdl-layout.module\";\nimport { MdlIconModule } from \"./icon/mdl-icon.module\";\nimport { MdlBadgeModule } from \"./badge/mdl-badge.module\";\nimport { MdlButtonModule } from \"./button/mdl-button.module\";\nimport { MdlCardModule } from \"./card/mdl-card.module\";\nimport { MdlCheckboxModule } from \"./checkbox/mdl-checkbox.module\";\nimport { MdlChipModule } from \"./chips/mdl-chip.module\";\nimport { MdlDialogModule } from \"./dialog/mdl-dialog.module\";\nimport { MdlDialogOutletModule } from \"./dialog-outlet/mdl-dialog-outlet.module\";\nimport { MdlIconToggleModule } from \"./icon-toggle/mdl-icon-toggle.module\";\nimport { MdlListModule } from \"./list/mdl-list.module\";\nimport { MdlMenuModule } from \"./menu/mdl-menu.module\";\nimport { MdlProgressModule } from \"./progress/mdl-progress.module\";\nimport { MdlRadioModule } from \"./radio/mdl-radio.module\";\nimport { MdlShadowModule } from \"./shadow/mdl-shadow.module\";\nimport { MdlSliderModule } from \"./slider/mdl-slider.module\";\nimport { MdlSnackbarModule } from \"./snackbar/mdl-snackbar.module\";\nimport { MdlSpinnerModule } from \"./spinner/mdl-spinner.module\";\nimport { MdlSwitchModule } from \"./switch/mdl-switch.module\";\nimport { MdlTableModule } from \"./table/mdl-table.module\";\nimport { MdlTabsModule } from \"./tabs/mdl-tabs.module\";\nimport { MdlTextFieldModule } from \"./textfield/mdl-textfield.module\";\nimport { MdlTooltipModule } from \"./tooltip/mdl-tooltip.module\";\nimport { MdlRippleModule } from \"./ripple/mdl-ripple.module\";\n\nconst MODULES = [\n  MdlBadgeModule,\n  MdlButtonModule,\n  MdlCardModule,\n  MdlCheckboxModule,\n  MdlChipModule,\n  MdlCommonsModule,\n  MdlDialogModule,\n  MdlDialogOutletModule,\n  MdlIconModule,\n  MdlIconToggleModule,\n  MdlLayoutModule,\n  MdlListModule,\n  MdlMenuModule,\n  MdlProgressModule,\n  MdlRadioModule,\n  MdlRippleModule,\n  MdlShadowModule,\n  MdlSliderModule,\n  MdlSnackbarModule,\n  MdlSpinnerModule,\n  MdlSwitchModule,\n  MdlTableModule,\n  MdlTabsModule,\n  MdlTextFieldModule,\n  MdlTooltipModule,\n];\n\n@NgModule({\n  declarations: [],\n  imports: [\n    MdlButtonModule.forRoot(),\n    MdlLayoutModule.forRoot(),\n    MdlCheckboxModule.forRoot(),\n    MdlChipModule.forRoot(),\n    MdlDialogModule.forRoot(),\n    MdlDialogOutletModule.forRoot(),\n    MdlSpinnerModule.forRoot(),\n    MdlBadgeModule.forRoot(),\n    MdlShadowModule.forRoot(),\n    MdlCardModule.forRoot(),\n    MdlRadioModule.forRoot(),\n    MdlRippleModule.forRoot(),\n    MdlProgressModule.forRoot(),\n    MdlIconModule.forRoot(),\n    MdlIconToggleModule.forRoot(),\n    MdlListModule.forRoot(),\n    MdlSliderModule.forRoot(),\n    MdlSwitchModule.forRoot(),\n    MdlSnackbarModule.forRoot(),\n    MdlTooltipModule.forRoot(),\n    MdlTableModule.forRoot(),\n    MdlMenuModule.forRoot(),\n    MdlTabsModule.forRoot(),\n    MdlTextFieldModule.forRoot(),\n  ],\n  exports: [...MODULES],\n})\nexport class MdlModule {}\n\n@NgModule({\n  imports: MODULES,\n  exports: MODULES,\n})\n// @deprectaed use MdlModule - all services are provided in root by default.\nexport class MdlNonRootModule {\n  static forRoot(): ModuleWithProviders<MdlModule> {\n    return { ngModule: MdlModule };\n  }\n}\n","/*\n * Public API Surface of core\n */\n\nexport * from \"./lib/index\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.MdlLayoutMediatorService","i2.AppendViewContainerRefDirective","i3.MdlAnchorRippleDirective","i4","i1","i2.MdlLayoutMediatorService","i3.MdlIconComponent","i1.AppendViewContainerRefDirective","i2.MdlAnchorRippleDirective","i3","IS_FOCUSED","i1.MdlIconComponent","i2","i2.MdlButtonComponent","i2.InternalMdlDialogReference","i1.MdlDialogOutletService","i1.MdlDialogService","PUBLIC_COMPONENTS","PRIVATE_COMPONENTS","i1.MdlButtonComponent","i2.MdlDialogOutletService","i1.MdlCheckboxComponent","i1.MdlTooltipPositionService"],"mappings":"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"}