{"version":3,"file":"universal-material-angular.mjs","sources":["../../../../src/ripple/ripple.directive.ts","../../../../src/ripple/ripple.module.ts","../../../../src/coercion/boolean.coercion.ts","../../../../src/form-field/form-field.component.ts","../../../../src/form-field/form-field.component.html","../../../../src/shared/text-input-base.ts","../../../../src/text-field/text-input.directive.ts","../../../../src/text-field/text-field.module.ts","../../../../src/util/scrollable-container-wrapper.ts","../../../../src/util/scroll-behavior.ts","../../../../src/dialog/dialog-body.directive.ts","../../../../src/util/animations/animation-events.ts","../../../../src/dialog/dialog-config.model.ts","../../../../src/dialog/dialog-base.component.ts","../../../../src/dialog/dialog.component.ts","../../../../src/dialog/dialog.component.html","../../../../src/dialog/progress-dialog/progress-dialog.component.ts","../../../../src/dialog/progress-dialog/progress-dialog.component.html","../../../../src/dialog/dialog-injector.ts","../../../../src/util/key.ts","../../../../src/dialog/dialog-stack.service.ts","../../../../src/dialog/dialog.service.ts","../../../../src/dialog/confirm-dialog/confirm-dialog-config.model.ts","../../../../src/dialog/confirm-dialog/confirm-dialog.component.ts","../../../../src/dialog/progress-dialog/progress-dialog.service.ts","../../../../src/dialog/dialog.module.ts","../../../../src/util/util.ts","../../../../src/typeahead/highlight.ts","../../../../src/typeahead/typeahead-window.ts","../../../../src/util/autoclose.ts","../../../../src/util/transition/util.ts","../../../../src/util/transition/transition.ts","../../../../src/util/popup.ts","../../../../src/util/positioning.ts","../../../../src/typeahead/typeahead-config.ts","../../../../src/util/accessibility/live.ts","../../../../src/typeahead/typeahead.ts","../../../../src/typeahead/typeahead.module.ts","../../../../src/floating-action-behavior/floating-action-behavior.directive.ts","../../../../src/floating-action-behavior/floating-action-behavior.module.ts","../../../../src/form-field/label.directive.ts","../../../../src/form-field/form-field.module.ts","../../../../src/dropdown/dropdown-toggle.directive.ts","../../../../src/dropdown/dropdown-menu.directive.ts","../../../../src/dropdown/dropdown.directive.ts","../../../../src/dropdown/dropdown.module.ts","../../../../src/datepicker/datepicker-config.model.ts","../../../../src/datepicker/datepicker-adapter.ts","../../../../src/datepicker/default-datepicker-adapter.ts","../../../../src/datepicker/datepicker-base.component.ts","../../../../src/datepicker/datepicker-state.model.ts","../../../../src/datepicker/datepicker-content/datepicker-content.component.ts","../../../../src/datepicker/datepicker-content/datepicker-content.component.html","../../../../src/datepicker/datepicker.component.ts","../../../../src/datepicker/datepicker.component.html","../../../../src/datepicker/datepicker-input/datepicker-input.component.ts","../../../../src/datepicker/datepicker-input/datepicker-input.component.html","../../../../src/datepicker/datepicker.module.ts","../../../../src/collapse/collapse.component.ts","../../../../src/collapse/collapse.component.html","../../../../src/collapse/collapse.module.ts","../../../../src/expansion-panel/expansion-panel.component.ts","../../../../src/expansion-panel/expansion-panel.component.html","../../../../src/expansion-panel/expansion-panel-container/expansion-panel-container.component.ts","../../../../src/expansion-panel/expansion-panel-container/expansion-panel-container.component.html","../../../../src/expansion-panel/expansion-panel.module.ts","../../../../src/slider/slider.component.ts","../../../../src/slider/slider.component.html","../../../../src/slider/slider.module.ts","../../../../src/value-accessors/radio-control-value-accessor.ts","../../../../src/value-accessors/check-control-value-accessor.ts","../../../../src/value-accessors/chip-field-control-value-accessor.ts","../../../../src/value-accessors/default-control-value-accessor.ts","../../../../src/value-accessors/typeahead-control-value-accessor.ts","../../../../src/value-accessors/select-control-value-accessor.ts","../../../../src/tab-bar/tab-bar.directive.ts","../../../../src/dialog/confirm-dialog/confirm-dialog.service.ts","../../../../src/snackbar/snackbar-config.model.ts","../../../../src/snackbar/snackbar-duration.ts","../../../../src/snackbar/snackbar.service.ts","../../../../src/index.ts","../../../../src/universal-material-angular.ts"],"sourcesContent":["import { AfterViewInit, Directive, ElementRef, HostListener, Inject, Input } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport { RippleConfig } from './ripple-config.model';\n\n@Directive({\n  selector: '[uRipple]',\n  standalone: false,\n})\nexport class RippleDirective implements AfterViewInit {\n\n  @Input() rippleConfig: RippleConfig = {};\n  @Input('rippleDisabled') disabled = false;\n\n  isTouching = false;\n\n  constructor(protected readonly _elementRef: ElementRef<HTMLElement>,\n              @Inject(DOCUMENT) private document: any) {\n  }\n\n  private static _setElementSquareSizeAndCenter(element: HTMLElement, size: number) {\n    element.style.top = '50%';\n    element.style.left = '50%';\n    element.style.width = `${size}px`;\n    element.style.height = `${size}px`;\n    element.style.marginLeft = `${-size / 2}px`;\n    element.style.marginTop = `${-size / 2}px`;\n  }\n\n  @HostListener('mousedown', ['$event']) _mousedown = (e: MouseEvent) => {\n    if (this.disabled ||\n      this._elementRef.nativeElement.hasAttribute('disabled') ||\n      this._elementRef.nativeElement.classList.contains('disabled')) {\n      return;\n    }\n\n    if (!this.isTouching) {\n      this.createRipple('mouseup', null, e.clientX, e.clientY);\n    }\n  }\n\n  @HostListener('touchstart', ['$event']) _touchstart = (e: TouchEvent) => {\n    if (this.disabled ||\n      this._elementRef.nativeElement.hasAttribute('disabled') ||\n      this._elementRef.nativeElement.classList.contains('disabled')) {\n      return;\n    }\n\n    this.isTouching = true;\n    this.createRipple('touchend', () => {\n      setTimeout(() => this.isTouching = false, 100);\n    }, e.touches[0].clientX, e.touches[0].clientY);\n  }\n\n  ngAfterViewInit(): void {\n    const {position} = document.defaultView!.getComputedStyle(this._elementRef.nativeElement);\n\n    if (position !== 'absolute' &&\n      position !== 'fixed' &&\n      (!this.rippleConfig || !this.rippleConfig.dontChangePositioning)) {\n      this._elementRef.nativeElement.style.position = 'relative';\n    }\n  }\n\n  createRipple(releaseEventName: string, releaseCallback: Function | null, pageX: number, pageY: number) {\n    if (this.disabled ||\n      this._elementRef.nativeElement.hasAttribute('disabled') ||\n      this._elementRef.nativeElement.classList.contains('disabled')) {\n      return;\n    }\n\n    let release: () => void;\n\n    const cancelRippleIfNecessary = () => {\n\n      this._elementRef.nativeElement.removeEventListener(\"touchmove\", cancelRippleIfNecessary);\n      window.removeEventListener(releaseEventName, cancelRippleIfNecessary);\n\n      if (release) {\n        release();\n      }\n    };\n\n    this._elementRef.nativeElement.addEventListener(\"touchmove\", cancelRippleIfNecessary);\n    window.addEventListener(releaseEventName, cancelRippleIfNecessary);\n\n    const rippleWrapper = document.createElement('DIV');\n    rippleWrapper.classList.add('u-ripple-wrapper');\n\n    const ripple = document.createElement('DIV');\n    ripple.classList.add('u-ripple');\n    rippleWrapper.appendChild(ripple);\n    this._elementRef.nativeElement.insertAdjacentElement('afterbegin', rippleWrapper);\n\n    if (this.rippleConfig.size) {\n      RippleDirective._setElementSquareSizeAndCenter(rippleWrapper, this.rippleConfig.size);\n    }\n\n    if (this.rippleConfig.borderRadius) {\n      rippleWrapper.style.borderRadius = this.rippleConfig.borderRadius;\n    }\n\n    release = () => {\n\n      if (ripple.classList.contains('dismiss')) {\n        return;\n      }\n\n      ripple.classList.add('dismiss');\n\n      ripple.addEventListener('transitionend', () => {\n        this._elementRef.nativeElement.removeChild(rippleWrapper);\n        this._elementRef.nativeElement.removeEventListener('touchend', release);\n        this._elementRef.nativeElement.removeEventListener('mouseleave', release);\n        this._elementRef.nativeElement.removeEventListener('mouseup', release);\n      });\n\n      if (releaseCallback) {\n        releaseCallback();\n        releaseCallback = null;\n      }\n    };\n\n    this._elementRef.nativeElement.addEventListener('touchend', release);\n    this._elementRef.nativeElement.addEventListener('mouseleave', release);\n    this._elementRef.nativeElement.addEventListener('mouseup', release);\n\n    requestAnimationFrame(() => {\n      const clientRect = this._elementRef.nativeElement.getBoundingClientRect();\n      const largestDimensionSize = Math.max(rippleWrapper.clientWidth, rippleWrapper.clientHeight);\n      const rippleSize = this.rippleConfig.size || largestDimensionSize * 2;\n      RippleDirective._setElementSquareSizeAndCenter(ripple, rippleSize);\n      ripple.style.transitionDuration = `${1080 * Math.pow(rippleSize, 0.3)}ms, 750ms`;\n\n      const x = (pageX - clientRect.left) + ((rippleSize - this._elementRef.nativeElement.clientWidth) / 2);\n      const y = (pageY - clientRect.top) + ((rippleSize - this._elementRef.nativeElement.clientHeight) / 2);\n\n      ripple.style.transformOrigin = `${x}px ${y}px`;\n      ripple.classList.add('show');\n    });\n  }\n}\n","import {NgModule} from '@angular/core';\r\nimport {RippleDirective} from './ripple.directive';\r\n\r\n@NgModule({\r\n  declarations: [RippleDirective],\r\n  exports: [RippleDirective]\r\n})\r\nexport class RippleModule {\r\n\r\n}\r\n","/**\r\n * @license\r\n * Copyright Google LLC All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://angular.io/license\r\n */\r\n\r\n/** Coerces a data-bound value (typically a string) to a boolean. */\r\nexport function coerceBooleanProperty(value: any): boolean {\r\n  return value != null && `${value}` !== 'false';\r\n}\r\n","import {\n  Component,\n  ContentChild,\n  ElementRef,\n  EventEmitter,\n  HostBinding,\n  HostListener,\n  Inject,\n  InjectionToken,\n  Input,\n  Optional,\n  Output,\n  ViewChild\n} from '@angular/core';\nimport { LabelDirective } from './label.directive';\nimport { InputBaseComponent } from '../shared/input-base.component';\nimport { FormFieldAppearance } from './form-field-appearance';\n\nexport const FORM_FIELD_DEFAULT_APPEARANCE = new InjectionToken('FORM_FIELD_DEFAULT_APPEARANCE');\n\n@Component({\n  selector: 'u-form-field',\n  templateUrl: './form-field.component.html',\n  styleUrls: ['./form-field.component.scss'],\n  standalone: false,\n})\nexport class FormFieldComponent {\n\n  _appearanceClass!: string;\n  _appearance!: FormFieldAppearance;\n  _defaultAppearance: FormFieldAppearance;\n  _input: InputBaseComponent | null = null;\n  _hasLabel = false;\n\n  @HostBinding('class.u-form-field-selection')\n  @Input() selectionField = false;\n\n  set labelWidth(width: number) {\n    this._elementRef.nativeElement.style.setProperty('--u-text-field-label-width', `${width}px`);\n    this._elementRef.nativeElement.style.setProperty('--u-text-field-label-half-width', `${width / 2}px`);\n  }\n\n  @HostBinding('style.margin-bottom')\n  get removeMarginStyle() {\n    return this.removeMargin ? '0' : '';\n  }\n\n  @Input() invalid = false;\n  @Input() removeMargin = false;\n  @Input() supportingText: string | null = null;\n  @Input() errorText: string | null = null;\n  @Output() activated = new EventEmitter<void>();\n\n  @Input()\n  get appearance(): FormFieldAppearance {\n    return this._appearance;\n  }\n  set appearance(value: FormFieldAppearance) {\n    this._appearance = value;\n\n    if (!value || value === 'default') {\n      value = this._defaultAppearance;\n    }\n\n    if (value.indexOf('search') > -1) {\n      this._appearanceClass = 'u-search-field';\n      return;\n    }\n\n    this._appearanceClass = `u-text-field-${value}`;\n  }\n\n  constructor(readonly _elementRef: ElementRef,\n              @Optional() @Inject(FORM_FIELD_DEFAULT_APPEARANCE) defaultAppearance: FormFieldAppearance) {\n    this._defaultAppearance = defaultAppearance || 'box';\n    this.appearance = this._defaultAppearance;\n    _elementRef.nativeElement.classList.add('u-form-field');\n  }\n\n  click(): void {\n\n    if (!this._input?.disabled) {\n      this._input?.focus();\n      this.activated.next();\n    }\n  }\n\n  @HostListener('mousedown', ['$event'])\n  mouseDown(e: MouseEvent): void {\n    if (!this._input?.disabled) {\n      e.preventDefault();\n    }\n  }\n}\n","<div class=\"u-text-field\"\n     tabindex=\"-1\"\n     [ngClass]=\"_appearanceClass\"\n     [class.u-text-field-hidden-label]=\"!_hasLabel\"\n     [class.invalid]=\"invalid\"\n     [class.disabled]=\"_input?.disabled\"\n     [class.focus]=\"_input?.focused\"\n     [class.empty]=\"_input?.empty\"\n     (click)=\"click()\">\n  <div\n    uRipple\n    [rippleDisabled]=\"_input?.disabled || !selectionField\"\n    class=\"u-text-field-state\"></div>\n  <ng-content></ng-content>\n\n</div>\n\n<ng-container *ngIf=\"invalid && (errorText || errorTextContainer.children.length); else supportingTextTemplate\">\n  <div class=\"u-text-field-supporting-text\">{{errorText}}</div>\n</ng-container>\n<div class=\"u-text-field-supporting-text\"\n     [class.d-none]=\"!invalid || !errorTextContainer.children.length\"\n     #errorTextContainer>\n  <ng-content select=\"[uErrorText]\"></ng-content>\n</div>\n\n<ng-template #supportingTextTemplate>\n  <div\n    *ngIf=\"supportingText\"\n    class=\"u-text-field-supporting-text\">{{supportingText}}</div>\n  <div class=\"u-text-field-supporting-text\"\n       [class.d-none]=\"!supportingTextContainer.children.length\"\n       #supportingTextContainer>\n    <ng-content select=\"[uSupportingText]\"></ng-content>\n  </div>\n</ng-template>\n","import { Directive, ElementRef, HostBinding, HostListener, Input } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\nimport { FormFieldComponent } from '../form-field/form-field.component';\r\nimport { coerceBooleanProperty } from '../coercion/boolean.coercion';\r\n\r\n@Directive()\r\nexport abstract class TextInputBase {\r\n  focused = false;\r\n\r\n  @Input()\r\n  get disabled(): boolean {\r\n    if (this.ngControl && this.ngControl.disabled !== null) {\r\n      return this.ngControl.disabled;\r\n    }\r\n    return this._disabled;\r\n  }\r\n  set disabled(value: boolean) {\r\n    this._disabled = (value as any === '') || value;\r\n\r\n    // Browsers may not fire the blur event if the input is disabled too quickly.\r\n    // Reset from here to ensure that the element doesn't become stuck.\r\n    if (this.focused) {\r\n      this.focused = false;\r\n    }\r\n  }\r\n\r\n  protected _disabled = false;\r\n  static ngAcceptInputType_disabled: boolean | '';\r\n\r\n  /** Whether the element is readonly. */\r\n  @Input()\r\n  get readonly(): boolean { return this._readonly; }\r\n  set readonly(value: boolean) { this._readonly = coerceBooleanProperty(value); }\r\n  private _readonly = false;\r\n\r\n  get empty(): boolean {\r\n    return !this._elementRef.nativeElement.value;\r\n  }\r\n\r\n  @HostListener('blur') _blur = () => this._focusChanged(false);\r\n  @HostListener('focus') _focus = () => this._focusChanged(true);\r\n  @HostBinding('attr.disabled') get _disabledAttribute() {\r\n    return this.disabled ? true : null;\r\n  }\r\n\r\n  protected constructor(readonly ngControl: NgControl | null,\r\n              formField: FormFieldComponent | null,\r\n              protected readonly _elementRef: ElementRef) {\r\n\r\n    if (formField) {\r\n      formField._input = this;\r\n    }\r\n  }\r\n\r\n  focus(): void {\r\n    if (document.activeElement !== this._elementRef.nativeElement) {\r\n      this._elementRef.nativeElement.focus();\r\n    }\r\n  }\r\n\r\n  /** Callback for the cases where the focused state of the input changes. */\r\n  _focusChanged(focused: boolean) {\r\n    if (focused !== this.focused && (!this.readonly || !focused)) {\r\n      this.focused = focused;\r\n    }\r\n  }\r\n\r\n  @HostListener('mousedown', ['$event'])\r\n  mouseDown(e: MouseEvent): void {\r\n    e.stopPropagation();\r\n  }\r\n}\r\n","import {\r\n  Directive,\r\n  ElementRef,\r\n  forwardRef,\r\n  HostBinding,\r\n  HostListener,\r\n  Inject,\r\n  Input,\r\n  Optional,\r\n  Self\r\n} from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\nimport { TextInputBase } from '../shared/text-input-base';\r\nimport { FormFieldComponent } from '../form-field/form-field.component';\r\n\r\n@Directive({\r\n  selector: '[uTextInput]',\r\n  standalone: false,\r\n})\r\nexport class TextInputDirective extends TextInputBase {\r\n\r\n  @Input()\r\n  @HostBinding('class.u-text-input')\r\n  setInputClass = true;\r\n\r\n  constructor(@Optional() @Self() override readonly ngControl: NgControl,\r\n              @Optional() @Inject(forwardRef(() => FormFieldComponent)) formField: FormFieldComponent,\r\n              elementRef: ElementRef) {\r\n    super(ngControl, formField, elementRef);\r\n    elementRef.nativeElement.addEventListener('click', (e: Event) => e.stopPropagation());\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { TextInputDirective } from './text-input.directive';\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  declarations: [\r\n    TextInputDirective\r\n  ],\r\n  exports: [\r\n    TextInputDirective\r\n  ]\r\n})\r\nexport class TextFieldModule {\r\n\r\n}\r\n","import { BehaviorSubject, Observable } from \"rxjs\";\nimport { distinctUntilChanged } from \"rxjs/operators\";\n\nexport class ScrollableContainerWrapper {\n  private _container: EventTarget | any;\n  defaultTarget: EventTarget | any;\n\n  _innerScrollTop = new BehaviorSubject<number | null>(null);\n\n  scrollTop: number | null = null;\n  scrollTop$: Observable<number | null> = this._innerScrollTop.pipe(distinctUntilChanged());\n\n  private _emitScroll = () => {\n    this.scrollTop = this._getScrollTop();\n    this._innerScrollTop.next(this.scrollTop);\n  };\n\n  private _getScrollTop(): number | null{\n    if (typeof this._container.scrollY === 'number') {\n      return this._container.scrollY;\n    }\n\n    if (typeof this._container.scrollTop === 'number') {\n      return this._container.scrollTop;\n    }\n\n    if (this._container.body && typeof this._container.body.scrollTop === 'number') {\n      return this._container.body.scrollTop;\n    }\n\n    return null;\n  }\n\n  get container(): EventTarget | any {\n    return this._container;\n  }\n\n  set container(value: EventTarget | any) {\n    value = value || this.defaultTarget;\n    if (value === this._container) {\n      return;\n    }\n\n    if (this._container) {\n      this._container.removeEventListener('scroll', this._emitScroll);\n    }\n\n    this._container = value;\n\n    if (this._container) {\n      this._container.addEventListener('scroll', this._emitScroll);\n    }\n\n    this._emitScroll();\n  }\n}\n","import { AfterContentInit, Directive, Input, OnChanges, SimpleChanges } from '@angular/core';\r\n\r\nimport { ScrollableContainerWrapper } from './scrollable-container-wrapper';\r\n\r\n@Directive()\r\nexport abstract class ScrollBehavior implements AfterContentInit, OnChanges {\r\n  @Input() scrollContainer: HTMLElement | null = null;\r\n  protected _scrollableWrapper: ScrollableContainerWrapper | null = null;\r\n\r\n  protected abstract _processBehavior: (scrollTop: number | null) => void;\r\n  protected defaultTarget: EventTarget | any;\r\n\r\n  protected _setScrollWrapper() {\r\n    this._scrollableWrapper = new ScrollableContainerWrapper();\r\n    this._scrollableWrapper.defaultTarget = this.defaultTarget;\r\n    this._scrollableWrapper.container = this.scrollContainer;\r\n    this._scrollableWrapper.scrollTop$.subscribe(this._processBehavior.bind(this));\r\n  }\r\n\r\n  ngAfterContentInit(): void {\r\n    this._setScrollWrapper();\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes['scrollContainer'] && this._scrollableWrapper) {\r\n      this._scrollableWrapper.container = this.scrollContainer;\r\n    }\r\n  }\r\n}\r\n","import { Directive, ElementRef } from '@angular/core';\n\nimport { ScrollBehavior } from '../util/scroll-behavior';\n\n@Directive({\n  selector: '[uDialogBody]'\n})\nexport class DialogBodyDirective extends ScrollBehavior {\n  dialog: any;\n\n  constructor(_elementRef: ElementRef) {\n    super();\n    this.defaultTarget = _elementRef.nativeElement\n  }\n\n  _processBehavior = () => {\n\n    if (!this.dialog || !this._scrollableWrapper) {\n      return;\n    }\n\n    const scrollTop = this._scrollableWrapper.scrollTop;\n    this.dialog.scrollTopDivider = !!scrollTop;\n\n    if (scrollTop === null) {\n      this.dialog.scrollBottomDivider = false;\n      return;\n    }\n\n    const scrollBottom = scrollTop + this._scrollableWrapper.container.offsetHeight;\n    this.dialog.scrollBottomDivider = scrollBottom !== this._scrollableWrapper.container.scrollHeight\n  }\n}\n","export class AnimationEvents {\n  private static readonly _animationEndEvents = ['webkitAnimationEnd', 'oanimationend', 'msAnimationEnd', 'animationend'];\n\n  static attachAnimationEndEvents(element: Element, listener: EventListenerOrEventListenerObject) {\n    AnimationEvents\n      ._animationEndEvents\n      .forEach(eventName => {\n        element.addEventListener(eventName, listener);\n      });\n  }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const DIALOG_DEFAULT_OPTIONS = new InjectionToken('DIALOG_DEFAULT_OPTIONS');\n\nexport interface DialogConfig {\n  closeOnBackdropClick?: boolean;\n  closeOnEsc?: boolean;\n}\n","import {\n  AfterContentInit,\n  ContentChild,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  HostBinding,\n  Inject,\n  Input,\n  Optional,\n  Output,\n  ViewChild\n} from '@angular/core';\n\nimport { DialogBodyDirective } from \"./dialog-body.directive\";\nimport { AnimationEvents } from '../util/animations/animation-events';\nimport { DIALOG_DEFAULT_OPTIONS, DialogConfig } from './dialog-config.model';\n\nexport const DefaultDialogConfig: DialogConfig = {\n  closeOnBackdropClick: true,\n  closeOnEsc: true\n};\n\n@Directive()\nexport class DialogBaseComponent implements AfterContentInit {\n  private _contentInitialized = false;\n\n  _dialogConfig: DialogConfig;\n\n  @HostBinding('class.hide') _hiding = false;\n  @HostBinding('class.show') @Input() show = false;\n  @Output() showChange = new EventEmitter<boolean>();\n  @Output() afterClose = new EventEmitter();\n  @Output() closedFromBackdrop = new EventEmitter();\n\n  @ContentChild(DialogBodyDirective)\n  set _contentChildBody(dialogBody: DialogBodyDirective) {\n    this.setDialogBody(dialogBody);\n  }\n\n  @ViewChild(DialogBodyDirective)\n  set _viewChildBody(dialogBody: DialogBodyDirective) {\n    this.setDialogBody(dialogBody);\n  }\n\n  dialogBody: DialogBodyDirective | null = null;\n\n  @HostBinding('tabindex') _tabIndex = -1;\n\n  @HostBinding('class.u-dialog-scroll-top-divider') scrollTopDivider = false;\n  @HostBinding('class.u-dialog-scroll-bottom-divider') scrollBottomDivider = false;\n\n  constructor(protected readonly _elementRef: ElementRef,\n              @Optional() @Inject(DIALOG_DEFAULT_OPTIONS) defaultOptions?: DialogConfig | undefined) {\n    this._dialogConfig = {...DefaultDialogConfig, ...defaultOptions};\n    _elementRef.nativeElement.classList.add('u-dialog');\n  }\n\n  private addAnimationEndEvents() {\n    AnimationEvents.attachAnimationEndEvents(this._elementRef.nativeElement, this.onAnimationEnd.bind(this));\n  }\n\n  private onAnimationEnd = (event: Event) => {\n    this._elementRef.nativeElement.removeEventListener(event.type, this.onAnimationEnd);\n    this._hiding = false;\n    this.afterClose.emit();\n  }\n\n  private setDialogBody(dialogBody: DialogBodyDirective): void {\n    this.dialogBody = dialogBody;\n\n    if (!this.dialogBody) {\n      return;\n    }\n\n    this.dialogBody.dialog = this;\n    this.dialogBody._processBehavior();\n  }\n\n  backdropClick() {\n    if (this._dialogConfig.closeOnBackdropClick) {\n      this.close();\n      this.closedFromBackdrop.emit();\n    }\n  }\n\n  close() {\n\n    if (!this.show) {\n      return;\n    }\n\n    this.show = false;\n    this.showChange.emit(false);\n    this._hiding = true;\n    this.addAnimationEndEvents();\n  }\n\n  ngAfterContentInit(): void {\n    setTimeout(() => this._contentInitialized = true, 100);\n  }\n}\n","import { Component } from '@angular/core';\n\nimport { DialogBaseComponent } from './dialog-base.component';\n\n@Component({\n  selector: 'u-legacy-dialog',\n  templateUrl: './dialog.component.html',\n  styleUrls: ['./dialog.component.scss']\n})\nexport class DialogComponent extends DialogBaseComponent {\n\n}\n","<div class=\"u-dialog-backdrop\" (click)=\"backdropClick()\"></div>\n<ng-content></ng-content>\n","import { Component, ElementRef } from '@angular/core';\n\nimport { DialogComponent } from '../dialog.component';\n\n@Component({\n  templateUrl: './progress-dialog.component.html'\n})\nexport class ProgressDialogComponent extends DialogComponent {\n  message: string | null = null;\n\n  constructor(_elementRef: ElementRef) {\n    super (_elementRef, {\n      closeOnBackdropClick: false,\n      closeOnEsc: false\n    });\n    _elementRef.nativeElement.classList.add('u-dialog-progress');\n  }\n}\n","<div class=\"u-dialog-backdrop\"></div>\n<div class=\"u-dialog-content\">\n  <div class=\"u-dialog-body\">\n    <div class=\"preloader-wrapper\">\n      <div class=\"spinner-layer\">\n        <div class=\"circle-clipper left\">\n          <div class=\"circle\"></div>\n        </div>\n        <div class=\"gap-patch\">\n          <div class=\"circle\"></div>\n        </div>\n        <div class=\"circle-clipper right\">\n          <div class=\"circle\"></div>\n        </div>\n      </div>\n    </div>\n    <div class=\"u-dialog-progress-message u-headline6 u-text-low-contrast u-text-nowrap\">{{message}}</div>\n  </div>\n</div>\n","import { Injector } from '@angular/core';\n\nexport class DialogInjector implements Injector {\n  constructor(\n    private _parentInjector: Injector,\n    private _customTokens: WeakMap<any, any>\n  ) {}\n\n  get(token: any, notFoundValue?: any): any {\n    const value = this._customTokens.get(token);\n\n    if (typeof value !== 'undefined') {\n      return value;\n    }\n\n    return this._parentInjector.get<any>(token, notFoundValue);\n  }\n\n}\n","export enum Key {\n  Tab = 9,\n  Enter = 13,\n  Escape = 27,\n  Space = 32,\n  PageUp = 33,\n  PageDown = 34,\n  End = 35,\n  Home = 36,\n  ArrowLeft = 37,\n  ArrowUp = 38,\n  ArrowRight = 39,\n  ArrowDown = 40\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { first } from 'rxjs/operators';\n\nimport { DialogComponent } from './dialog.component';\nimport { DOCUMENT } from '@angular/common';\nimport { Key } from '../util/key';\n\n@Injectable({providedIn: 'root'})\nexport class DialogStackService {\n  private static _dialogStack: DialogComponent[] = [];\n\n  constructor(@Inject(DOCUMENT) private readonly _document: any) {\n    this._document.body.addEventListener('keydown', (e: KeyboardEvent) => {\n      if (e.keyCode === Key.Escape) {\n        this.closeTopMostDialog();\n      }\n    });\n  }\n\n  removeDialog(dialog: DialogComponent) {\n    const index = DialogStackService._dialogStack.indexOf(dialog);\n\n    if (index < 0) {\n      return;\n    }\n\n    DialogStackService._dialogStack.splice(index, 1);\n  }\n\n  addDialog(dialog: DialogComponent) {\n    const index = DialogStackService._dialogStack.indexOf(dialog);\n\n    if (index < 0) {\n      return;\n    }\n\n    DialogStackService._dialogStack.unshift(dialog);\n  }\n\n  add(dialog: DialogComponent) {\n\n    if (dialog.show) {\n      this.addDialog(dialog);\n    } else {\n      dialog.showChange\n        .pipe(first())\n        .subscribe(show => {\n          if (show) {\n            this.addDialog(dialog);\n          }\n        });\n    }\n\n    dialog.afterClose\n      .pipe(first())\n      .subscribe(() => this.removeDialog(dialog));\n\n    DialogStackService._dialogStack.unshift(dialog);\n  }\n\n  closeTopMostDialog() {\n    for (const dialog of DialogStackService._dialogStack) {\n      if (dialog._dialogConfig && dialog._dialogConfig.closeOnEsc) {\n        dialog.close();\n        break;\n      }\n    }\n  }\n}\n","import { ApplicationRef, ComponentFactoryResolver, Injectable, InjectionToken, Injector, Type } from '@angular/core';\n\nimport { DialogInjector } from './dialog-injector';\nimport { DialogStackService } from './dialog-stack.service';\nimport { DialogComponent } from './dialog.component';\n\nexport const DIALOG_DATA = new InjectionToken<any>('DIALOG_DATA');\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DialogService {\n\n  constructor(private readonly _componentFactoryResolver: ComponentFactoryResolver,\n              private readonly _appRef: ApplicationRef,\n              private readonly _injector: Injector,\n              private readonly _dialogStackService: DialogStackService) {\n\n  }\n\n  _internalOpen<T extends DialogComponent>(dialogType: Type<T>, customInjectionTokens: WeakMap<any, any>): T {\n    const dialogComponent = this._componentFactoryResolver.resolveComponentFactory(dialogType);\n\n    const dialogComponentRef = dialogComponent.create(new DialogInjector(this._injector, customInjectionTokens));\n\n    dialogComponentRef.instance.afterClose.subscribe(() => {\n      this._appRef.detachView(dialogComponentRef.hostView);\n      dialogComponentRef.destroy();\n    });\n\n    this._appRef.attachView(dialogComponentRef.hostView);\n\n    this._dialogStackService.add(dialogComponentRef.instance);\n\n    document\n      .querySelector('body')!\n      .appendChild(dialogComponentRef.location.nativeElement);\n\n    return dialogComponentRef.instance;\n  }\n\n  open<T extends DialogComponent>(dialogType: Type<T>, data?: any): T {\n    return this._internalOpen(dialogType, new WeakMap(data && [[DIALOG_DATA, data]]));\n  }\n}\n","import { InjectionToken } from '@angular/core';\n\nimport { DialogConfig } from '../dialog-config.model';\nimport { DefaultDialogConfig } from '../dialog-base.component';\nimport { UmButtonColor, UmButtonVariant } from '@universal-material/web';\n\nexport const CONFIRM_DIALOG_DEFAULT_OPTIONS = new InjectionToken<any>('CONFIRM_DIALOG_DEFAULT_OPTIONS');\n\nexport const DefaultConfirmDialogConfig: ConfirmDialogConfig = {\n  ...DefaultDialogConfig,\n  confirmButton: {\n    text: 'OK',\n    variant: 'text'\n  },\n  cancelButton: {\n    text: 'Cancel',\n    variant: 'text'\n  },\n};\n\nexport interface ConfirmDialogButtonConfig {\n  text?: string;\n  variant?: UmButtonVariant;\n  color?: UmButtonColor;\n}\n\nexport class ConfirmDialogConfig implements DialogConfig {\n  title?: string;\n  confirmButton?: ConfirmDialogButtonConfig;\n  cancelButton?: ConfirmDialogButtonConfig;\n  closeOnBackdropClick?: boolean;\n  closeOnEsc?: boolean;\n}\n","import { Component, Directive, ElementRef, Inject, Optional, SecurityContext, ViewChild } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { Subject } from 'rxjs';\n\nimport { DialogComponent } from '../dialog.component';\nimport {\n  CONFIRM_DIALOG_DEFAULT_OPTIONS,\n  ConfirmDialogConfig,\n  DefaultConfirmDialogConfig\n} from './confirm-dialog-config.model';\nimport { DialogBodyDirective } from '../dialog-body.directive';\n\n@Component({\n  template: '',\n})\nexport abstract class ConfirmDialogComponent extends DialogComponent {\n  safeMessage: string | null = null;\n\n  set message(value: string) {\n    this.safeMessage = this.sanitizer.sanitize(SecurityContext.HTML, value);\n  }\n\n  private _closed = false;\n  readonly _confirmDialogConfig: ConfirmDialogConfig;\n\n  onCancel = new Subject<void>();\n  onConfirm = new Subject<void>();\n  confirmed = false;\n\n  @ViewChild(DialogBodyDirective) override dialogBody!: DialogBodyDirective;\n\n  constructor(elementRef: ElementRef,\n              private readonly sanitizer: DomSanitizer,\n              @Optional() confirmDialogConfig: ConfirmDialogConfig,\n              @Optional() @Inject(CONFIRM_DIALOG_DEFAULT_OPTIONS) defaultOptions: ConfirmDialogConfig) {\n    super(elementRef);\n    this._confirmDialogConfig = DefaultConfirmDialogConfig;\n    this._confirmDialogConfig = this._assignConfig(this._confirmDialogConfig, defaultOptions);\n    this._confirmDialogConfig = this._assignConfig(this._confirmDialogConfig, confirmDialogConfig);\n\n    this._dialogConfig = this._confirmDialogConfig;\n  }\n\n  private _assignConfig(baseConfig: ConfirmDialogConfig, partialConfig: ConfirmDialogConfig): ConfirmDialogConfig {\n\n    if (partialConfig) {\n      baseConfig.confirmButton = {...baseConfig.confirmButton, ...partialConfig.confirmButton};\n      baseConfig.cancelButton = {...baseConfig.cancelButton, ...partialConfig.cancelButton};\n      delete partialConfig.confirmButton;\n      delete partialConfig.cancelButton;\n    }\n\n    return {...baseConfig, ...partialConfig};\n  }\n\n  override close() {\n    super.close();\n    this._closed = true;\n  }\n\n  _cancelClick() {\n    if (this._closed) {\n      return;\n    }\n\n    this.close();\n    this.onCancel.next();\n  }\n\n  _confirmClick() {\n    if (this._closed) {\n      return;\n    }\n\n    this.close();\n    this.confirmed = true;\n    this.onConfirm.next();\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ProgressDialogComponent } from './progress-dialog.component';\nimport { DialogService } from '../dialog.service';\n\n@Injectable({providedIn: 'root'})\nexport class ProgressDialogService {\n  constructor(private readonly _dialogService: DialogService) {\n\n  }\n\n  open(message: string | null = null): ProgressDialogComponent {\n    const progressDialog = this._dialogService.open(ProgressDialogComponent);\n    progressDialog.message = message;\n    progressDialog.show = true;\n\n    return progressDialog;\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DialogComponent } from './dialog.component';\nimport { DialogBodyDirective } from './dialog-body.directive';\nimport { ProgressDialogComponent } from './progress-dialog/progress-dialog.component';\n\nexport { DialogBaseComponent } from './dialog-base.component';\nexport { DialogConfig, DIALOG_DEFAULT_OPTIONS } from './dialog-config.model';\nexport { DialogComponent } from './dialog.component';\nexport { DialogBodyDirective } from './dialog-body.directive';\nexport { DialogService, DIALOG_DATA } from './dialog.service';\n\nexport { ConfirmDialogConfig, CONFIRM_DIALOG_DEFAULT_OPTIONS } from './confirm-dialog/confirm-dialog-config.model';\nexport { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\n\nexport { ProgressDialogComponent } from './progress-dialog/progress-dialog.component';\nexport { ProgressDialogService } from './progress-dialog/progress-dialog.service';\n\n@NgModule({\n  imports: [\n    CommonModule\n  ],\n  declarations: [\n    DialogComponent,\n    DialogBodyDirective,\n    ProgressDialogComponent\n  ],\n  exports: [\n    DialogComponent,\n    DialogBodyDirective\n  ]\n})\nexport class DialogModule {\n}\n","import { NgZone } from '@angular/core';\nimport { OperatorFunction, Observable } from 'rxjs';\n\nexport function toInteger(value: any): number {\n  return parseInt(`${value}`, 10);\n}\n\nexport function toString(value: any): string {\n  return (value !== undefined && value !== null) ? `${value}` : '';\n}\n\nexport function getValueInRange(value: number, max: number, min = 0): number {\n  return Math.max(Math.min(value, max), min);\n}\n\nexport function isString(value: any): value is string {\n  return typeof value === 'string';\n}\n\nexport function isNumber(value: any): value is number {\n  return !isNaN(toInteger(value));\n}\n\nexport function isInteger(value: any): value is number {\n  return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n}\n\nexport function isDefined(value: any): boolean {\n  return value !== undefined && value !== null;\n}\n\nexport function padNumber(value: number) {\n  if (isNumber(value)) {\n    return `0${value}`.slice(-2);\n  } else {\n    return '';\n  }\n}\n\nexport function regExpEscape(text: string) {\n  return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nexport function closest(element: HTMLElement, selector?: string): HTMLElement | null {\n  if (!selector) {\n    return null;\n  }\n\n  /*\n   * In certain browsers (e.g. Edge 44.18362.449.0) HTMLDocument does\n   * not support `Element.prototype.closest`. To emulate the correct behaviour\n   * we return null when the method is missing.\n   *\n   * Note that in evergreen browsers `closest(document.documentElement, 'html')`\n   * will return the document element whilst in Edge null will be returned. This\n   * compromise was deemed good enough.\n   */\n  if (typeof element.closest === 'undefined') {\n    return null;\n  }\n\n  return element.closest(selector);\n}\n\nexport function runInZone<T>(zone: NgZone): OperatorFunction<T, T> {\n  return (source) => {\n    return new Observable(observer => {\n      const onNext = (value: T) => zone.run(() => observer.next(value));\n      const onError = (e: any) => zone.run(() => observer.error(e));\n      const onComplete = () => zone.run(() => observer.complete());\n      return source.subscribe(onNext, onError, onComplete);\n    });\n  };\n}\n","import {Component, Input, OnChanges, ChangeDetectionStrategy, SimpleChanges} from '@angular/core';\nimport {regExpEscape, toString} from '../util/util';\n\n/**\n * A component that can be used inside a custom result template in order to highlight the term inside the text of the\n * result\n */\n@Component({\n  selector: 'u-legacy-highlight',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `<ng-template ngFor [ngForOf]=\"parts\" let-part let-isOdd=\"odd\">` +\n      `<span *ngIf=\"isOdd; else even\" [class]=\"highlightClass\">{{part}}</span><ng-template #even>{{part}}</ng-template>` +\n      `</ng-template>`,  // template needs to be formatted in a certain way so we don't add empty text nodes\n  styleUrls: ['./highlight.scss'],\n  standalone: false,\n})\nexport class Highlight implements OnChanges {\n  parts!: string[];\n\n  /**\n   * The CSS class of the span elements wrapping the term inside the result\n   */\n  @Input() highlightClass = 'u-highlight';\n\n  /**\n   * The result text to display. If the term is found inside this text, it's highlighted\n   */\n  @Input() result?: string | null;\n\n  /**\n   * The searched term\n   */\n  @Input() term!: string | readonly string[];\n\n  ngOnChanges(changes: SimpleChanges) {\n    const resultStr = toString(this.result);\n    const resultLC = resultStr.toLowerCase();\n    const termLC = toString(this.term).toLowerCase();\n    let currentIdx = 0;\n\n    if (termLC.length > 0) {\n      this.parts = resultLC.split(new RegExp(`(${regExpEscape(termLC)})`)).map((part) => {\n        const originalPart = resultStr.substr(currentIdx, part.length);\n        currentIdx += part.length;\n        return originalPart;\n      });\n    } else {\n      this.parts = [resultStr];\n    }\n  }\n}\n","import {Component, EventEmitter, Input, OnInit, Output, TemplateRef, ViewEncapsulation} from '@angular/core';\n\nimport {toString} from '../util/util';\n\n/**\n * The context for the typeahead result template in case you want to override the default one.\n */\nexport interface ResultTemplateContext {\n  /**\n   * Your typeahead result item.\n   */\n  result: any;\n\n  /**\n   * Search term from the `<input>` used to get current result.\n   */\n  term: string;\n\n  /**\n   * The function which transforms the result into a string\n   */\n  formatter: (result: any) => string;\n}\n\n@Component({\n  selector: 'u-typeahead-window',\n  exportAs: 'TypeaheadWindow',\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    '(mousedown)': '$event.preventDefault()',\n    '[class]': '\"u-dropdown-menu show\" + (popupClass ? \" \" + popupClass : \"\")',\n    'role': 'listbox',\n    '[id]': 'id'\n  },\n  template: `\n    <ng-template #rt let-result=\"result\" let-term=\"term\" let-formatter=\"formatter\">\n      <u-highlight [attr.result]=\"formatter(result)\" [attr.term]=\"term\"></u-highlight>\n    </ng-template>\n    <ng-template ngFor [ngForOf]=\"results\" let-result let-idx=\"index\">\n      <button type=\"button\" uRipple class=\"u-dropdown-item\" role=\"option\"\n        [id]=\"id + '-' + idx\"\n        [class.active]=\"idx === activeIdx\"\n        (mouseenter)=\"markActive(idx)\"\n        (click)=\"select(result)\">\n        <ng-template\n          [ngTemplateOutlet]=\"resultTemplate || rt\"\n          [ngTemplateOutletContext]=\"{result: result, term: term, formatter: formatter}\"></ng-template>\n      </button>\n    </ng-template>\n  `\n})\nexport class TypeaheadWindow implements OnInit {\n  activeIdx = 0;\n\n  /**\n   *  The id for the typeahead window. The id should be unique and the same\n   *  as the associated typeahead's id.\n   */\n  @Input() id: string | null = null;\n\n  /**\n   * Flag indicating if the first row should be active initially\n   */\n  @Input() focusFirst = true;\n\n  /**\n   * Typeahead match results to be displayed\n   */\n  @Input() results!: readonly any[];\n\n  /**\n   * Search term used to get current results\n   */\n  @Input() term!: string;\n\n  /**\n   * A function used to format a given result before display. This function should return a formatted string without any\n   * HTML markup\n   */\n  @Input() formatter = toString;\n\n  /**\n   * A template to override a matching result default display\n   */\n  @Input() resultTemplate!: TemplateRef<ResultTemplateContext>;\n\n  /**\n   * A custom class to append to the typeahead window\n   *\n   * @since 9.1.0\n   */\n  @Input() popupClass: string | null = null;\n\n  /**\n   * Event raised when user selects a particular result row\n   */\n  @Output('select') selectEvent = new EventEmitter();\n\n  @Output('activeChange') activeChangeEvent = new EventEmitter();\n\n  hasActive() { return this.activeIdx > -1 && this.activeIdx < this.results.length; }\n\n  getActive() { return this.results[this.activeIdx]; }\n\n  markActive(activeIdx: number) {\n    this.activeIdx = activeIdx;\n    this._activeChanged();\n  }\n\n  next() {\n    if (this.activeIdx === this.results.length - 1) {\n      this.activeIdx = this.focusFirst ? (this.activeIdx + 1) % this.results.length : -1;\n    } else {\n      this.activeIdx++;\n    }\n    this._activeChanged();\n  }\n\n  prev() {\n    if (this.activeIdx < 0) {\n      this.activeIdx = this.results.length - 1;\n    } else if (this.activeIdx === 0) {\n      this.activeIdx = this.focusFirst ? this.results.length - 1 : -1;\n    } else {\n      this.activeIdx--;\n    }\n    this._activeChanged();\n  }\n\n  resetActive() {\n    this.activeIdx = this.focusFirst ? 0 : -1;\n    this._activeChanged();\n  }\n\n  select(item: any) { this.selectEvent.emit(item); }\n\n  ngOnInit() { this.resetActive(); }\n\n  private _activeChanged() {\n    this.activeChangeEvent.emit(this.activeIdx >= 0 ? this.id + '-' + this.activeIdx : undefined);\n  }\n}\n","import {NgZone} from '@angular/core';\r\nimport {fromEvent, Observable, race} from 'rxjs';\r\nimport {delay, filter, map, takeUntil, tap, withLatestFrom} from 'rxjs/operators';\r\nimport {Key} from './key';\r\nimport {closest} from './util';\r\n\r\nconst isContainedIn = (element: HTMLElement, array?: HTMLElement[]) =>\r\n  array ? array.some(item => item.contains(element)) : false;\r\n\r\nconst matchesSelectorIfAny = (element: HTMLElement, selector?: string) =>\r\n  !selector || closest(element, selector) != null;\r\n\r\n// we have to add a more significant delay to avoid re-opening when handling (click) on a toggling element\r\n// TODO: use proper Angular platform detection when NgbAutoClose becomes a service and we can inject PLATFORM_ID\r\nconst isMobile = (() => {\r\n  const isIOS = () => /iPad|iPhone|iPod/.test(navigator.userAgent) ||\r\n    (/Macintosh/.test(navigator.userAgent) && navigator.maxTouchPoints && navigator.maxTouchPoints > 2);\r\n  const isAndroid = () => /Android/.test(navigator.userAgent);\r\n\r\n  return typeof navigator !== 'undefined' ? !!navigator.userAgent && (isIOS() || isAndroid()) : false;\r\n})();\r\n\r\n// setting 'ngbAutoClose' synchronously on mobile results in immediate popup closing\r\n// when tapping on the triggering element\r\nconst wrapAsyncForMobile = (fn: any) => isMobile ? () => setTimeout(() => fn(), 100) : fn;\r\n\r\nexport const enum SOURCE {ESCAPE, CLICK}\r\n\r\nexport function AutoClose(\r\n  zone: NgZone, document: any, type: boolean | 'inside' | 'outside', close: (source: SOURCE) => void,\r\n  closed$: Observable<any>, insideElements: HTMLElement[], ignoreElements?: HTMLElement[], insideSelector?: string) {\r\n  // closing on ESC and outside clicks\r\n  if (type) {\r\n    zone.runOutsideAngular(wrapAsyncForMobile(() => {\r\n\r\n      const shouldCloseOnClick = (event: MouseEvent) => {\r\n        const element = event.target as HTMLElement;\r\n        if (event.button === 2 || isContainedIn(element, ignoreElements)) {\r\n          return false;\r\n        }\r\n        if (type === 'inside') {\r\n          return isContainedIn(element, insideElements) && matchesSelectorIfAny(element, insideSelector);\r\n        } else if (type === 'outside') {\r\n          return !isContainedIn(element, insideElements);\r\n        } else /* if (type === true) */ {\r\n          return matchesSelectorIfAny(element, insideSelector) || !isContainedIn(element, insideElements);\r\n        }\r\n      };\r\n\r\n      const escapes$ = fromEvent<KeyboardEvent>(document, 'keydown')\r\n        .pipe(\r\n          takeUntil(closed$),\r\n          // tslint:disable-next-line:deprecation\r\n          filter(e => e.which === Key.Escape), tap(e => e.preventDefault()));\r\n\r\n\r\n      // we have to pre-calculate 'shouldCloseOnClick' on 'mousedown',\r\n      // because on 'mouseup' DOM nodes might be detached\r\n      const mouseDowns$ =\r\n        fromEvent<MouseEvent>(document, 'mousedown').pipe(map(shouldCloseOnClick), takeUntil(closed$));\r\n\r\n      const closeableClicks$ = fromEvent<MouseEvent>(document, 'mouseup')\r\n        .pipe(\r\n          withLatestFrom(mouseDowns$), filter(([_, shouldClose]) => shouldClose), delay(0),\r\n          takeUntil(closed$)) as any as Observable<MouseEvent>;\r\n\r\n\r\n      race([\r\n        escapes$.pipe(map(_ => SOURCE.ESCAPE)), closeableClicks$.pipe(map(_ => SOURCE.CLICK))\r\n      ]).subscribe({\r\n        next: source => zone.run(() => close(source))\r\n      });\r\n    }));\r\n  }\r\n}\r\n","export function getTransitionDurationMs(element: HTMLElement) {\r\n  const {transitionDelay, transitionDuration} = window.getComputedStyle(element);\r\n  const transitionDelaySec = parseFloat(transitionDelay);\r\n  const transitionDurationSec = parseFloat(transitionDuration);\r\n\r\n  return (transitionDelaySec + transitionDurationSec) * 1000;\r\n}\r\n","import {NgZone} from '@angular/core';\r\nimport {EMPTY, fromEvent, Observable, of, race, Subject, timer} from 'rxjs';\r\nimport {endWith, filter, takeUntil} from 'rxjs/operators';\r\nimport {getTransitionDurationMs} from './util';\r\nimport {runInZone} from '../util';\r\n\r\nexport const environment = {\r\n  animation: true,\r\n  transitionTimerDelayMs: 5,\r\n};\r\n\r\nexport type TransitionStartFn<T = any> = (element: HTMLElement, animation: boolean, context: T) =>\r\n  TransitionEndFn | void;\r\nexport type TransitionEndFn = () => void;\r\n\r\nexport interface TransitionOptions<T> {\r\n  animation: boolean;\r\n  runningTransition: 'continue' | 'stop';\r\n  context?: T;\r\n}\r\n\r\nexport interface NgbTransitionCtx<T> {\r\n  transition$: Subject<any>;\r\n  complete: () => void;\r\n  context: T;\r\n}\r\n\r\nconst noopFn: TransitionEndFn = () => {};\r\n\r\nconst {transitionTimerDelayMs} = environment;\r\nconst runningTransitions = new Map<HTMLElement, NgbTransitionCtx<any>>();\r\n\r\nexport const runTransition =\r\n  <T>(zone: NgZone, element: HTMLElement, startFn: TransitionStartFn<T>, options: TransitionOptions<T>):\r\n    Observable<void> => {\r\n\r\n    // Getting initial context from options\r\n    let context = options.context || <T>{};\r\n\r\n    // Checking if there are already running transitions on the given element.\r\n    const running = runningTransitions.get(element);\r\n    if (running) {\r\n      switch (options.runningTransition) {\r\n        // If there is one running and we want for it to 'continue' to run, we have to cancel the new one.\r\n        // We're not emitting any values, but simply completing the observable (EMPTY).\r\n        case 'continue':\r\n          return EMPTY;\r\n        // If there is one running and we want for it to 'stop', we have to complete the running one.\r\n        // We're simply completing the running one and not emitting any values and merging newly provided context\r\n        // with the one coming from currently running transition.\r\n        case 'stop':\r\n          zone.run(() => running.transition$.complete());\r\n          context = Object.assign(running.context, context);\r\n          runningTransitions.delete(element);\r\n      }\r\n    }\r\n\r\n    // Running the start function\r\n    const endFn = startFn(element, options.animation, context) || noopFn;\r\n\r\n    // If 'prefer-reduced-motion' is enabled, the 'transition' will be set to 'none'.\r\n    // If animations are disabled, we have to emit a value and complete the observable\r\n    // In this case we have to call the end function, but can finish immediately by emitting a value,\r\n    // completing the observable and executing end functions synchronously.\r\n    if (!options.animation || window.getComputedStyle(element).transitionProperty === 'none') {\r\n      zone.run(() => endFn());\r\n      return of(undefined).pipe(runInZone(zone));\r\n    }\r\n\r\n    // Starting a new transition\r\n    const transition$ = new Subject<void>();\r\n    const finishTransition$ = new Subject<void>();\r\n    const stop$ = transition$.pipe(endWith(true));\r\n    runningTransitions.set(element, {\r\n      transition$,\r\n      complete: () => {\r\n        finishTransition$.next();\r\n        finishTransition$.complete();\r\n      },\r\n      context\r\n    });\r\n\r\n    const transitionDurationMs = getTransitionDurationMs(element);\r\n\r\n    // 1. We have to both listen for the 'transitionend' event and have a 'just-in-case' timer,\r\n    // because 'transitionend' event might not be fired in some browsers, if the transitioning\r\n    // element becomes invisible (ex. when scrolling, making browser tab inactive, etc.). The timer\r\n    // guarantees, that we'll release the DOM element and complete 'ngbRunTransition'.\r\n    // 2. We need to filter transition end events, because they might bubble from shorter transitions\r\n    // on inner DOM elements. We're only interested in the transition on the 'element' itself.\r\n    zone.runOutsideAngular(() => {\r\n      const transitionEnd$ =\r\n        fromEvent(element, 'transitionend').pipe(takeUntil(stop$), filter(({target}) => target === element));\r\n      const timer$ = timer(transitionDurationMs + transitionTimerDelayMs).pipe(takeUntil(stop$));\r\n\r\n      race(timer$, transitionEnd$, finishTransition$).pipe(takeUntil(stop$)).subscribe(() => {\r\n        runningTransitions.delete(element);\r\n        zone.run(() => {\r\n          endFn();\r\n          transition$.next();\r\n          transition$.complete();\r\n        });\r\n      });\r\n    });\r\n\r\n    return transition$.asObservable();\r\n  };\r\n\r\nexport const completeTransition = (element: HTMLElement) => {\r\n  runningTransitions.get(element) ?.complete();\r\n};\r\n","import {\n  ApplicationRef,\n  ComponentFactoryResolver,\n  ComponentRef,\n  Injector,\n  NgZone,\n  Renderer2,\n  TemplateRef,\n  ViewContainerRef,\n  ViewRef\n} from '@angular/core';\n\nimport {Observable, of} from 'rxjs';\nimport {mergeMap, take, tap} from 'rxjs/operators';\n\nimport {runTransition} from './transition/transition';\n\nexport class ContentRef {\n  constructor(public nodes: any[], public viewRef?: ViewRef, public componentRef?: ComponentRef<any>) {}\n}\n\nexport class PopupService<T> {\n  private _windowRef: ComponentRef<T>| null = null;\n  private _contentRef: ContentRef | null = null;\n\n  constructor(\n    private _type: any, private _injector: Injector, private _viewContainerRef: ViewContainerRef,\n    private _renderer: Renderer2, private _ngZone: NgZone,\n    private _componentFactoryResolver: ComponentFactoryResolver, private _applicationRef: ApplicationRef) {}\n\n  open(content?: string | TemplateRef<any>, context?: any, animation = false):\n    {windowRef: ComponentRef<T>, transition$: Observable<void>} {\n    if (!this._windowRef) {\n      this._contentRef = this._getContentRef(content, context);\n      this._windowRef = this._viewContainerRef.createComponent(\n        this._componentFactoryResolver.resolveComponentFactory<T>(this._type), this._viewContainerRef.length,\n        this._injector, this._contentRef.nodes);\n    }\n\n    const {nativeElement} = this._windowRef.location;\n    const transition$ = this._ngZone.onStable.pipe(\n      take(1), mergeMap(\n        () => runTransition(\n          this._ngZone, nativeElement, ({classList}) => classList.add('show'),\n          {animation, runningTransition: 'continue'})));\n\n    return {windowRef: this._windowRef, transition$};\n  }\n\n  close(animation = false): Observable<void> {\n    if (!this._windowRef) {\n      return of(undefined);\n    }\n\n    return runTransition(\n      this._ngZone, this._windowRef.location.nativeElement, ({classList}) => classList.remove('show'),\n      {animation, runningTransition: 'stop'})\n      .pipe(tap(() => {\n        if (this._windowRef) {\n          // this is required because of the container='body' option\n          this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._windowRef.hostView));\n          this._windowRef = null;\n        }\n        if (this._contentRef?.viewRef) {\n          this._applicationRef.detachView(this._contentRef.viewRef);\n          this._contentRef.viewRef.destroy();\n          this._contentRef = null;\n        }\n      }));\n  }\n\n  private _getContentRef(content?: string | TemplateRef<any>, context?: any): ContentRef {\n    if (!content) {\n      return new ContentRef([]);\n    } else if (content instanceof TemplateRef) {\n      const viewRef = content.createEmbeddedView(context);\n      this._applicationRef.attachView(viewRef);\n      return new ContentRef([viewRef.rootNodes], viewRef);\n    } else {\n      return new ContentRef([[this._renderer.createText(`${content}`)]]);\n    }\n  }\n}\n","// previous version:\n// https://github.com/angular-ui/bootstrap/blob/07c31d0731f7cb068a1932b8e01d2312b796b4ec/src/position/position.js\ninterface Rect {\n  width: number,\n  height: number,\n  top: number,\n  bottom: number,\n  left: number,\n  right: number\n}\n\nexport class Positioning {\n  private getAllStyles(element: HTMLElement): {[b: string]: any} { return window.getComputedStyle(element); }\n\n  private getStyle(element: HTMLElement, prop: string): string { return this.getAllStyles(element)[prop]; }\n\n  private isStaticPositioned(element: HTMLElement): boolean {\n    return (this.getStyle(element, 'position') || 'static') === 'static';\n  }\n\n  private offsetParent(element: HTMLElement): HTMLElement {\n    let offsetParentEl = <HTMLElement>element.offsetParent || document.documentElement;\n\n    while (offsetParentEl && offsetParentEl !== document.documentElement && this.isStaticPositioned(offsetParentEl)) {\n      offsetParentEl = <HTMLElement>offsetParentEl.offsetParent;\n    }\n\n    return offsetParentEl || document.documentElement;\n  }\n\n  position(element: HTMLElement, round = true): Rect {\n    let elPosition: Rect;\n    let parentOffset = {width: 0, height: 0, top: 0, bottom: 0, left: 0, right: 0};\n\n    if (this.getStyle(element, 'position') === 'fixed') {\n      elPosition = element.getBoundingClientRect();\n    } else {\n      const offsetParentEl = this.offsetParent(element);\n\n      elPosition = this.offset(element, false);\n\n      if (offsetParentEl !== document.documentElement) {\n        parentOffset = this.offset(offsetParentEl, false);\n      }\n\n      parentOffset.top += offsetParentEl.clientTop;\n      parentOffset.left += offsetParentEl.clientLeft;\n    }\n\n    elPosition.top -= parentOffset.top;\n    elPosition.bottom -= parentOffset.top;\n    elPosition.left -= parentOffset.left;\n    elPosition.right -= parentOffset.left;\n\n    if (round) {\n      elPosition.top = Math.round(elPosition.top);\n      elPosition.bottom = Math.round(elPosition.bottom);\n      elPosition.left = Math.round(elPosition.left);\n      elPosition.right = Math.round(elPosition.right);\n    }\n\n    return elPosition;\n  }\n\n  offset(element: HTMLElement, round = true): Rect {\n    const elBcr = element.getBoundingClientRect();\n    const viewportOffset = {\n      top: window.pageYOffset - document.documentElement.clientTop,\n      left: window.pageXOffset - document.documentElement.clientLeft\n    };\n\n    let elOffset: Rect = {\n      height: elBcr.height || element.offsetHeight,\n      width: elBcr.width || element.offsetWidth,\n      top: elBcr.top + viewportOffset.top,\n      bottom: elBcr.bottom + viewportOffset.top,\n      left: elBcr.left + viewportOffset.left,\n      right: elBcr.right + viewportOffset.left\n    };\n\n    if (round) {\n      elOffset.height = Math.round(elOffset.height);\n      elOffset.width = Math.round(elOffset.width);\n      elOffset.top = Math.round(elOffset.top);\n      elOffset.bottom = Math.round(elOffset.bottom);\n      elOffset.left = Math.round(elOffset.left);\n      elOffset.right = Math.round(elOffset.right);\n    }\n\n    return elOffset;\n  }\n\n  positionElements(hostElement: HTMLElement, targetElement: HTMLElement, placement: string, appendToBody?: boolean): Rect {\n    const hostElPosition = appendToBody ? this.offset(hostElement, false) : this.position(hostElement, false);\n    const targetElStyles = this.getAllStyles(targetElement);\n    const targetElBCR = targetElement.getBoundingClientRect();\n    const placementPrimary = placement.split('-')[0] || 'top';\n    const placementSecondary = placement.split('-')[1] || 'center';\n\n    let targetElPosition: Rect = {\n      'height': targetElBCR.height || targetElement.offsetHeight,\n      'width': targetElBCR.width || targetElement.offsetWidth,\n      'top': 0,\n      'bottom': targetElBCR.height || targetElement.offsetHeight,\n      'left': 0,\n      'right': targetElBCR.width || targetElement.offsetWidth\n    };\n\n    switch (placementPrimary) {\n      case 'top':\n        targetElPosition.top =\n            hostElPosition.top - (targetElement.offsetHeight + parseFloat(targetElStyles['marginBottom']));\n        break;\n      case 'bottom':\n        targetElPosition.top = hostElPosition.top + hostElPosition.height;\n        break;\n      case 'left':\n        targetElPosition.left =\n            hostElPosition.left - (targetElement.offsetWidth + parseFloat(targetElStyles['marginRight']));\n        break;\n      case 'right':\n        targetElPosition.left = hostElPosition.left + hostElPosition.width;\n        break;\n    }\n\n    switch (placementSecondary) {\n      case 'top':\n        targetElPosition.top = hostElPosition.top;\n        break;\n      case 'bottom':\n        targetElPosition.top = hostElPosition.top + hostElPosition.height - targetElement.offsetHeight;\n        break;\n      case 'left':\n        targetElPosition.left = hostElPosition.left;\n        break;\n      case 'right':\n        targetElPosition.left = hostElPosition.left + hostElPosition.width - targetElement.offsetWidth;\n        break;\n      case 'center':\n        if (placementPrimary === 'top' || placementPrimary === 'bottom') {\n          targetElPosition.left = hostElPosition.left + hostElPosition.width / 2 - targetElement.offsetWidth / 2;\n        } else {\n          targetElPosition.top = hostElPosition.top + hostElPosition.height / 2 - targetElement.offsetHeight / 2;\n        }\n        break;\n    }\n\n    targetElPosition.top = Math.round(targetElPosition.top);\n    targetElPosition.bottom = Math.round(targetElPosition.bottom);\n    targetElPosition.left = Math.round(targetElPosition.left);\n    targetElPosition.right = Math.round(targetElPosition.right);\n\n    return targetElPosition;\n  }\n\n  // get the available placements of the target element in the viewport depending on the host element\n  getAvailablePlacements(hostElement: HTMLElement, targetElement: HTMLElement): string[] {\n    let availablePlacements: Array<string> = [];\n    let hostElemClientRect = hostElement.getBoundingClientRect();\n    let targetElemClientRect = targetElement.getBoundingClientRect();\n    let html = document.documentElement;\n    let windowHeight = window.innerHeight || html.clientHeight;\n    let windowWidth = window.innerWidth || html.clientWidth;\n    let hostElemClientRectHorCenter = hostElemClientRect.left + hostElemClientRect.width / 2;\n    let hostElemClientRectVerCenter = hostElemClientRect.top + hostElemClientRect.height / 2;\n\n    // left: check if target width can be placed between host left and viewport start and also height of target is\n    // inside viewport\n    if (targetElemClientRect.width < hostElemClientRect.left) {\n      // check for left only\n      if (hostElemClientRectVerCenter > targetElemClientRect.height / 2 &&\n          windowHeight - hostElemClientRectVerCenter > targetElemClientRect.height / 2) {\n        availablePlacements.splice(availablePlacements.length, 1, 'left');\n      }\n      // check for left-top and left-bottom\n      this.setSecondaryPlacementForLeftRight(hostElemClientRect, targetElemClientRect, 'left', availablePlacements);\n    }\n\n    // top: target height is less than host top\n    if (targetElemClientRect.height < hostElemClientRect.top) {\n      if (hostElemClientRectHorCenter > targetElemClientRect.width / 2 &&\n          windowWidth - hostElemClientRectHorCenter > targetElemClientRect.width / 2) {\n        availablePlacements.splice(availablePlacements.length, 1, 'top');\n      }\n      this.setSecondaryPlacementForTopBottom(hostElemClientRect, targetElemClientRect, 'top', availablePlacements);\n    }\n\n    // right: check if target width can be placed between host right and viewport end and also height of target is\n    // inside viewport\n    if (windowWidth - hostElemClientRect.right > targetElemClientRect.width) {\n      // check for right only\n      if (hostElemClientRectVerCenter > targetElemClientRect.height / 2 &&\n          windowHeight - hostElemClientRectVerCenter > targetElemClientRect.height / 2) {\n        availablePlacements.splice(availablePlacements.length, 1, 'right');\n      }\n      // check for right-top and right-bottom\n      this.setSecondaryPlacementForLeftRight(hostElemClientRect, targetElemClientRect, 'right', availablePlacements);\n    }\n\n    // bottom: check if there is enough space between host bottom and viewport end for target height\n    if (windowHeight - hostElemClientRect.bottom > targetElemClientRect.height) {\n      if (hostElemClientRectHorCenter > targetElemClientRect.width / 2 &&\n          windowWidth - hostElemClientRectHorCenter > targetElemClientRect.width / 2) {\n        availablePlacements.splice(availablePlacements.length, 1, 'bottom');\n      }\n      this.setSecondaryPlacementForTopBottom(hostElemClientRect, targetElemClientRect, 'bottom', availablePlacements);\n    }\n\n    return availablePlacements;\n  }\n\n  /**\n   * check if secondary placement for left and right are available i.e. left-top, left-bottom, right-top, right-bottom\n   * primaryplacement: left|right\n   * availablePlacementArr: array in which available placements to be set\n   */\n  private setSecondaryPlacementForLeftRight(\n      hostElemClientRect: ClientRect, targetElemClientRect: ClientRect, primaryPlacement: string,\n      availablePlacementArr: Array<string>) {\n    let html = document.documentElement;\n    // check for left-bottom\n    if (targetElemClientRect.height <= hostElemClientRect.bottom) {\n      availablePlacementArr.splice(availablePlacementArr.length, 1, primaryPlacement + '-bottom');\n    }\n    if ((window.innerHeight || html.clientHeight) - hostElemClientRect.top >= targetElemClientRect.height) {\n      availablePlacementArr.splice(availablePlacementArr.length, 1, primaryPlacement + '-top');\n    }\n  }\n\n  /**\n   * check if secondary placement for top and bottom are available i.e. top-left, top-right, bottom-left, bottom-right\n   * primaryplacement: top|bottom\n   * availablePlacementArr: array in which available placements to be set\n   */\n  private setSecondaryPlacementForTopBottom(\n      hostElemClientRect: ClientRect, targetElemClientRect: ClientRect, primaryPlacement: string,\n      availablePlacementArr: Array<string>) {\n    let html = document.documentElement;\n    // check for left-bottom\n    if ((window.innerWidth || html.clientWidth) - hostElemClientRect.left >= targetElemClientRect.width) {\n      availablePlacementArr.splice(availablePlacementArr.length, 1, primaryPlacement + '-left');\n    }\n    if (targetElemClientRect.width <= hostElemClientRect.right) {\n      availablePlacementArr.splice(availablePlacementArr.length, 1, primaryPlacement + '-right');\n    }\n  }\n}\n\nconst positionService = new Positioning();\n\n/*\n * Accept the placement array and applies the appropriate placement dependent on the viewport.\n * Returns the applied placement.\n * In case of auto placement, placements are selected in order\n *   'top', 'bottom', 'left', 'right',\n *   'top-left', 'top-right',\n *   'bottom-left', 'bottom-right',\n *   'left-top', 'left-bottom',\n *   'right-top', 'right-bottom'.\n * */\nexport function positionElements(\n    hostElement: HTMLElement, targetElement: HTMLElement, placement: string | Placement | PlacementArray,\n    appendToBody?: boolean): Placement {\n  let placementVals: Array<Placement> = Array.isArray(placement) ? placement : [placement as Placement];\n\n  // replace auto placement with other placements\n  let hasAuto = placementVals.findIndex(val => val === 'auto');\n  if (hasAuto >= 0) {\n    ['top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right', 'left-top',\n     'left-bottom', 'right-top', 'right-bottom',\n    ].forEach(function(obj) {\n      if (placementVals.find(val => val.search('^' + obj) !== -1) == null) {\n        placementVals.splice(hasAuto++, 1, obj as Placement);\n      }\n    });\n  }\n\n  // coordinates where to position\n  let topVal = 0, leftVal = 0;\n  let appliedPlacement!: Placement;\n  // get available placements\n  let availablePlacements = positionService.getAvailablePlacements(hostElement, targetElement);\n  // iterate over all the passed placements\n  for (let { item, index } of toItemIndexes(placementVals)) {\n    // check if passed placement is present in the available placement or otherwise apply the last placement in the\n    // passed placement list\n    if ((availablePlacements.find(val => val === item) != null) || (placementVals.length === index + 1)) {\n      appliedPlacement = <Placement>item;\n      const pos = positionService.positionElements(hostElement, targetElement, item, appendToBody);\n      topVal = pos.top;\n      leftVal = pos.left;\n      break;\n    }\n  }\n  targetElement.style.top = `${topVal}px`;\n  targetElement.style.left = `${leftVal}px`;\n  return appliedPlacement;\n}\n\n// function to get index and item of an array\nfunction toItemIndexes<T>(a: T[]) {\n  return a.map((item, index) => ({item, index}));\n}\n\nexport type Placement = 'auto' | 'top' | 'bottom' | 'left' | 'right' | 'top-left' | 'top-right' | 'bottom-left' |\n    'bottom-right' | 'left-top' | 'left-bottom' | 'right-top' | 'right-bottom';\n\nexport type PlacementArray = Placement | Array<Placement>;\n","import {Injectable} from '@angular/core';\nimport {PlacementArray} from '../util/positioning';\n\n/**\n * Configuration service for the Typeahead component.\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the typeaheads used in the application.\n */\n@Injectable({providedIn: 'root'})\nexport class TypeaheadConfig {\n  container!: string;\n  editable = true;\n  focusFirst = true;\n  showHint = false;\n  placement: PlacementArray = 'bottom-left';\n}\n","import {Injectable, Inject, InjectionToken, OnDestroy} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\n\n\n\n// usefulness (and default value) of delay documented in Material's CDK\n// https://github.com/angular/material2/blob/6405da9b8e8532a7e5c854c920ee1815c275d734/src/cdk/a11y/live-announcer/live-announcer.ts#L50\nexport type ARIA_LIVE_DELAY_TYPE = number | null;\nexport const ARIA_LIVE_DELAY = new InjectionToken<ARIA_LIVE_DELAY_TYPE>(\n    'live announcer delay', {providedIn: 'root', factory: ARIA_LIVE_DELAY_FACTORY});\nexport function ARIA_LIVE_DELAY_FACTORY(): number {\n  return 100;\n}\n\n\nfunction getLiveElement(document: any, lazyCreate = false): HTMLElement | null {\n  let element = document.body.querySelector('#u-live') as HTMLElement;\n\n  if (element == null && lazyCreate) {\n    element = document.createElement('div');\n\n    element.setAttribute('id', 'u-live');\n    element.setAttribute('aria-live', 'polite');\n    element.setAttribute('aria-atomic', 'true');\n\n    element.classList.add('sr-only');\n\n    document.body.appendChild(element);\n  }\n\n  return element;\n}\n\n\n\n@Injectable({providedIn: 'root'})\nexport class Live implements OnDestroy {\n  constructor(@Inject(DOCUMENT) private _document: any, @Inject(ARIA_LIVE_DELAY) private _delay: any) {}\n\n  ngOnDestroy() {\n    const element = getLiveElement(this._document);\n    if (element) {\n      element.parentElement!.removeChild(element);\n    }\n  }\n\n  say(message: string) {\n    const element = getLiveElement(this._document, true)!;\n    const delay = this._delay;\n\n    element.textContent = '';\n    const setText = () => element.textContent = message;\n    if (delay === null) {\n      setText();\n    } else {\n      setTimeout(setText, delay);\n    }\n  }\n}\n","import {\n  ChangeDetectorRef,\n  ComponentFactoryResolver,\n  ComponentRef,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Inject,\n  Injector,\n  Input,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  Output,\n  Renderer2,\n  TemplateRef,\n  ViewContainerRef,\n  ApplicationRef,\n  OnChanges,\n  SimpleChanges\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {DOCUMENT} from '@angular/common';\nimport {BehaviorSubject, fromEvent, Observable, of, OperatorFunction, Subject, Subscription} from 'rxjs';\nimport {map, switchMap, tap} from 'rxjs/operators';\n\nimport {Live} from '../util/accessibility/live';\nimport {AutoClose} from '../util/autoclose';\nimport {Key} from '../util/key';\nimport {PopupService} from '../util/popup';\nimport {PlacementArray, positionElements} from '../util/positioning';\nimport {isDefined, toString} from '../util/util';\n\nimport {TypeaheadConfig} from './typeahead-config';\nimport {TypeaheadWindow, ResultTemplateContext} from './typeahead-window';\n\n/**\n * An event emitted right before an item is selected from the result list.\n */\nexport interface TypeaheadSelectItemEvent<T = any> {\n  /**\n   * The item from the result list about to be selected.\n   */\n  item: T;\n\n  /**\n   * Calling this function will prevent item selection from happening.\n   */\n  preventDefault: () => void;\n}\n\nlet nextWindowId = 0;\n\n/**\n * A directive providing a simple way of creating powerful typeaheads from any text input.\n */\n@Directive({\n  selector: 'input[uTypeahead]',\n  exportAs: 'Typeahead',\n  host: {\n    '(blur)': 'handleBlur()',\n    '[class.open]': 'isPopupOpen()',\n    '(keydown)': 'handleKeyDown($event)',\n    '[autocomplete]': 'autocomplete',\n    'autocapitalize': 'off',\n    'autocorrect': 'off',\n    'role': 'combobox',\n    'aria-multiline': 'false',\n    '[attr.aria-autocomplete]': 'showHint ? \"both\" : \"list\"',\n    '[attr.aria-activedescendant]': 'activeDescendant',\n    '[attr.aria-owns]': 'isPopupOpen() ? popupId : null',\n    '[attr.aria-expanded]': 'isPopupOpen()'\n  },\n  providers: [{provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => Typeahead), multi: true}],\n  standalone: false,\n})\nexport class Typeahead implements ControlValueAccessor,\n  OnInit, OnChanges, OnDestroy {\n  private _popupService: PopupService<TypeaheadWindow>;\n  private _subscription: Subscription | null = null;\n  private _closed$ = new Subject<void>();\n  private _inputValueBackup: string | null = null;\n  private _valueChanges: Observable<string>;\n  private _resubscribeTypeahead: BehaviorSubject<any>;\n  private _windowRef: ComponentRef<TypeaheadWindow>| null = null;\n  private _zoneSubscription: any;\n\n  /**\n   * The value for the `autocomplete` attribute for the `<input>` element.\n   *\n   * Defaults to `\"off\"` to disable the native browser autocomplete, but you can override it if necessary.\n   *\n   * @since 2.1.0\n   */\n  @Input() autocomplete = 'off';\n\n  /**\n   * A selector specifying the element the typeahead popup will be appended to.\n   *\n   * Currently only supports `\"body\"`.\n   */\n  @Input() container: string;\n\n  /**\n   * If `true`, model values will not be restricted only to items selected from the popup.\n   */\n  @Input() editable: boolean;\n\n  /**\n   * If `true`, the first item in the result list will always stay focused while typing.\n   */\n  @Input() focusFirst: boolean;\n\n  /**\n   * The function that converts an item from the result list to a `string` to display in the `<input>` field.\n   *\n   * It is called when the user selects something in the popup or the model value changes, so the input needs to\n   * be updated.\n   */\n  @Input() inputFormatter: ((item: any) => string) | null = null;\n\n  /**\n   * The function that converts a stream of text values from the `<input>` element to the stream of the array of items\n   * to display in the typeahead popup.\n   *\n   * If the resulting observable emits a non-empty array - the popup will be shown. If it emits an empty array - the\n   * popup will be closed.\n   *\n   * See the [basic example](#/components/typeahead/examples#basic) for more details.\n   *\n   * Note that the `this` argument is `undefined` so you need to explicitly bind it to a desired \"this\" target.\n   */\n  @Input() uTypeahead: OperatorFunction<string, readonly any[]>| null | undefined;\n\n  /**\n   * The function that converts an item from the result list to a `string` to display in the popup.\n   *\n   * Must be provided, if your `ngbTypeahead` returns something other than `Observable<string[]>`.\n   *\n   * Alternatively for more complex markup in the popup you should use `resultTemplate`.\n   */\n  @Input() resultFormatter: ((item: any) => string) | null = null;\n\n  /**\n   * The template to override the way resulting items are displayed in the popup.\n   *\n   * See the [ResultTemplateContext](#/components/typeahead/api#ResultTemplateContext) for the template context.\n   *\n   * Also see the [template for results demo](#/components/typeahead/examples#template) for more details.\n   */\n  @Input() resultTemplate: TemplateRef<ResultTemplateContext> | null = null;\n\n  /**\n   * If `true`, will show the hint in the `<input>` when an item in the result list matches.\n   */\n  @Input() showHint: boolean;\n\n  /**\n   * The preferred placement of the typeahead.\n   *\n   * Possible values are `\"top\"`, `\"top-left\"`, `\"top-right\"`, `\"bottom\"`, `\"bottom-left\"`,\n   * `\"bottom-right\"`, `\"left\"`, `\"left-top\"`, `\"left-bottom\"`, `\"right\"`, `\"right-top\"`,\n   * `\"right-bottom\"`\n   *\n   * Accepts an array of strings or a string with space separated possible values.\n   *\n   * The default order of preference is `\"bottom-left bottom-right top-left top-right\"`\n   *\n   * Please see the [positioning overview](#/positioning) for more details.\n   */\n  @Input() placement: PlacementArray = 'bottom-left';\n\n  /**\n   * A custom class to append to the typeahead popup window\n   *\n   * Accepts a string containing CSS class to be applied on the `typeahead-window`.\n   *\n   * This can be used to provide instance-specific styling, ex. you can override popup window `z-index`\n   *\n   * @since 9.1.0\n   */\n  @Input() popupClass: string | null = null;\n\n  /**\n   * An event emitted right before an item is selected from the result list.\n  */\n  @Output() selectItem = new EventEmitter<TypeaheadSelectItemEvent>();\n\n  activeDescendant: string | null = null;\n  popupId = `typeahead-${nextWindowId++}`;\n\n  private _onTouched = () => {};\n  private _onChange = (_: any) => {};\n\n  constructor(\n    private _elementRef: ElementRef<HTMLInputElement>, viewContainerRef: ViewContainerRef,\n    private _renderer: Renderer2, injector: Injector, componentFactoryResolver: ComponentFactoryResolver,\n    config: TypeaheadConfig, ngZone: NgZone, private _live: Live, @Inject(DOCUMENT) private _document: any,\n    private _ngZone: NgZone, private _changeDetector: ChangeDetectorRef, applicationRef: ApplicationRef) {\n    this.container = config.container;\n    this.editable = config.editable;\n    this.focusFirst = config.focusFirst;\n    this.showHint = config.showHint;\n    this.placement = config.placement;\n\n    this._valueChanges = fromEvent<Event>(_elementRef.nativeElement, 'input')\n                             .pipe(map($event => ($event.target as HTMLInputElement).value));\n\n    this._resubscribeTypeahead = new BehaviorSubject(null);\n\n    this._popupService = new PopupService<TypeaheadWindow>(\n      TypeaheadWindow, injector, viewContainerRef, _renderer, this._ngZone, componentFactoryResolver,\n      applicationRef);\n\n    this._zoneSubscription = ngZone.onStable.subscribe(() => {\n      if (this.isPopupOpen()) {\n        positionElements(\n          this._elementRef.nativeElement, this._windowRef!.location.nativeElement, this.placement,\n          this.container === 'body');\n      }\n    });\n  }\n\n  ngOnInit(): void { this._subscribeToUserInput(); }\n\n  ngOnChanges({typeahead}: SimpleChanges): void {\n    if (typeahead && !typeahead.firstChange) {\n      this._unsubscribeFromUserInput();\n      this._subscribeToUserInput();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this._closePopup();\n    this._unsubscribeFromUserInput();\n    this._zoneSubscription.unsubscribe();\n  }\n\n  registerOnChange(fn: (value: any) => any): void { this._onChange = fn; }\n\n  registerOnTouched(fn: () => any): void { this._onTouched = fn; }\n\n  writeValue(value: any) {\n    this._writeInputValue(this._formatItemForInput(value));\n    if (this.showHint) {\n      this._inputValueBackup = value;\n    }\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);\n  }\n\n  /**\n   * Dismisses typeahead popup window\n   */\n  dismissPopup() {\n    if (this.isPopupOpen()) {\n      this._resubscribeTypeahead.next(null);\n      this._closePopup();\n      if (this.showHint && this._inputValueBackup !== null) {\n        this._writeInputValue(this._inputValueBackup);\n      }\n      this._changeDetector.markForCheck();\n    }\n  }\n\n  /**\n   * Returns true if the typeahead popup window is displayed\n   */\n  isPopupOpen() { return this._windowRef != null; }\n\n  handleBlur() {\n    this._resubscribeTypeahead.next(null);\n    this._onTouched();\n  }\n\n  handleKeyDown(event: KeyboardEvent) {\n    if (!this.isPopupOpen()) {\n      return;\n    }\n\n    // tslint:disable-next-line:deprecation\n    switch (event.which) {\n      case Key.ArrowDown:\n        event.preventDefault();\n        this._windowRef !.instance.next();\n        this._showHint();\n        break;\n      case Key.ArrowUp:\n        event.preventDefault();\n        this._windowRef !.instance.prev();\n        this._showHint();\n        break;\n      case Key.Enter:\n      case Key.Tab:\n        const result = this._windowRef !.instance.getActive();\n        if (isDefined(result)) {\n          event.preventDefault();\n          event.stopPropagation();\n          this._selectResult(result);\n        }\n        this._closePopup();\n        break;\n    }\n  }\n\n  private _openPopup() {\n    if (!this.isPopupOpen()) {\n      this._inputValueBackup = this._elementRef.nativeElement.value;\n      const {windowRef} = this._popupService.open();\n      this._windowRef = windowRef;\n      this._windowRef.instance.id = this.popupId;\n      this._windowRef.instance.selectEvent.subscribe((result: any) => this._selectResultClosePopup(result));\n      this._windowRef.instance.activeChangeEvent.subscribe((activeId: string) => this.activeDescendant = activeId);\n      this._windowRef.instance.popupClass = this.popupClass;\n\n      if (this.container === 'body') {\n        this._document.querySelector(this.container).appendChild(this._windowRef.location.nativeElement);\n      }\n\n      this._changeDetector.markForCheck();\n\n      AutoClose(\n        this._ngZone, this._document, 'outside', () => this.dismissPopup(), this._closed$,\n        [this._elementRef.nativeElement, this._windowRef.location.nativeElement]);\n    }\n  }\n\n  private _closePopup() {\n    this._popupService.close().subscribe(() => {\n      this._closed$.next();\n      this._windowRef = null;\n      this.activeDescendant = null;\n    });\n  }\n\n  private _selectResult(result: any) {\n    let defaultPrevented = false;\n    this.selectItem.emit({item: result, preventDefault: () => { defaultPrevented = true; }});\n    this._resubscribeTypeahead.next(null);\n\n    if (!defaultPrevented) {\n      this.writeValue(result);\n      this._onChange(result);\n    }\n  }\n\n  private _selectResultClosePopup(result: any) {\n    this._selectResult(result);\n    this._closePopup();\n  }\n\n  private _showHint() {\n    if (this.showHint && this._windowRef?.instance.hasActive() && this._inputValueBackup != null) {\n      const userInputLowerCase = this._inputValueBackup.toLowerCase();\n      const formattedVal = this._formatItemForInput(this._windowRef.instance.getActive());\n\n      if (userInputLowerCase === formattedVal.substr(0, this._inputValueBackup.length).toLowerCase()) {\n        this._writeInputValue(this._inputValueBackup + formattedVal.substr(this._inputValueBackup.length));\n        this._elementRef.nativeElement['setSelectionRange'].apply(\n          this._elementRef.nativeElement, [this._inputValueBackup.length, formattedVal.length]);\n      } else {\n        this._writeInputValue(formattedVal);\n      }\n    }\n  }\n\n  private _formatItemForInput(item: any): string {\n    return item != null && this.inputFormatter ? this.inputFormatter(item) : toString(item);\n  }\n\n  private _writeInputValue(value: string): void {\n    this._renderer.setProperty(this._elementRef.nativeElement, 'value', toString(value));\n  }\n\n  private _subscribeToUserInput(): void {\n    const results$ = this._valueChanges.pipe(\n      tap(value => {\n        this._inputValueBackup = this.showHint ? value : null;\n        this._onChange(this.editable ? value : undefined);\n      }),\n      this.uTypeahead ? this.uTypeahead : () => of([]));\n\n    this._subscription = this._resubscribeTypeahead.pipe(switchMap(() => results$)).subscribe(results => {\n      if (!results || results.length === 0) {\n        this._closePopup();\n      } else {\n        this._openPopup();\n\n        this._windowRef !.instance.focusFirst = this.focusFirst;\n        this._windowRef !.instance.results = results;\n        this._windowRef !.instance.term = this._elementRef.nativeElement.value;\n        if (this.resultFormatter) {\n          this._windowRef !.instance.formatter = this.resultFormatter;\n        }\n        if (this.resultTemplate) {\n          this._windowRef !.instance.resultTemplate = this.resultTemplate;\n        }\n        this._windowRef !.instance.resetActive();\n\n        // The observable stream we are subscribing to might have async steps\n        // and if a component containing typeahead is using the OnPush strategy\n        // the change detection turn wouldn't be invoked automatically.\n        this._windowRef !.changeDetectorRef.detectChanges();\n\n        this._showHint();\n      }\n\n      // live announcer\n      const count = results ? results.length : 0;\n      this._live.say(count === 0 ? 'No results available' : `${count} result${count === 1 ? '' : 's'} available`);\n    });\n  }\n\n  private _unsubscribeFromUserInput() {\n    if (this._subscription) {\n      this._subscription.unsubscribe();\n    }\n    this._subscription = null;\n  }\n}\n","import { NgModule, ModuleWithProviders, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport {CommonModule} from '@angular/common';\n\nimport {Highlight} from './highlight';\nimport {TypeaheadWindow} from './typeahead-window';\nimport {Typeahead} from './typeahead';\nimport { RippleModule } from \"../ripple/ripple.module\";\n\nexport {Highlight} from './highlight';\nexport {TypeaheadWindow} from './typeahead-window';\nexport {TypeaheadConfig} from './typeahead-config';\nexport {Typeahead, TypeaheadSelectItemEvent} from './typeahead';\n\n@NgModule({\n  declarations: [Typeahead, Highlight, TypeaheadWindow],\n  exports: [Typeahead, Highlight],\n  imports: [CommonModule, RippleModule],\n  schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class TypeaheadModule {\n\n}\n","import { Directive, ElementRef } from '@angular/core';\nimport { ScrollBehavior } from '../util/scroll-behavior';\n\n@Directive({\n  selector: '[uFloatingActionBehavior]'\n})\nexport class FloatingActionBehaviorDirective extends ScrollBehavior {\n\n  private _lastScrollY: number | null = null;\n  override defaultTarget = window;\n\n  constructor(private readonly elementRef: ElementRef) {\n    super();\n\n    this.elementRef.nativeElement.style.transition = 'transform 150ms linear';\n  }\n\n  protected _processBehavior = (scrollTop: number | null) => {\n    if (this._lastScrollY === null) {\n      this._lastScrollY = scrollTop;\n      return;\n    }\n\n    if (this._lastScrollY < scrollTop!) {\n      this.elementRef.nativeElement.style.transform = 'translateY(150%)';\n    } else {\n      this.elementRef.nativeElement.style.transform = '';\n    }\n\n    this._lastScrollY = scrollTop;\n  };\n}\n","import { NgModule } from '@angular/core';\r\nimport { FloatingActionBehaviorDirective } from './floating-action-behavior.directive';\r\n\r\nexport { FloatingActionBehaviorDirective }\r\n\r\n@NgModule({\r\n  declarations: [FloatingActionBehaviorDirective],\r\n  exports: [FloatingActionBehaviorDirective]\r\n})\r\nexport class FloatingActionBehaviorModule {\r\n\r\n}\r\n","import { Directive, ElementRef, forwardRef, Inject, Optional } from '@angular/core';\r\n\r\nimport { FormFieldComponent } from './form-field.component';\r\n\r\n@Directive({\r\n  selector: '[uLabel]',\r\n  standalone: false,\r\n})\r\nexport class LabelDirective {\r\n  constructor(elementRef: ElementRef<HTMLElement>,\r\n              @Optional() @Inject(forwardRef(() => FormFieldComponent)) formField: FormFieldComponent) {\r\n    if (formField) {\r\n      elementRef.nativeElement.classList.add('u-text-field-label');\r\n      formField._hasLabel = true;\r\n      formField.labelWidth = elementRef.nativeElement.offsetWidth;\r\n      new ResizeObserver(() => formField.labelWidth = elementRef.nativeElement.offsetWidth)\r\n        .observe(elementRef.nativeElement);\r\n\r\n    }\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FormFieldComponent } from './form-field.component';\nimport { LabelDirective } from './label.directive';\nimport { RippleModule } from '../ripple/ripple.module';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    RippleModule\n  ],\n  declarations: [\n    FormFieldComponent,\n    LabelDirective\n  ],\n  exports: [\n    FormFieldComponent,\n    LabelDirective\n  ]\n})\nexport class FormFieldModule { }\n","import { Directive, HostListener } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Directive({\n  selector: '[uDropdownToggle]'\n})\nexport class DropdownToggleDirective {\n\n  click = new Subject<void>();\n\n  @HostListener('click') _click = () => {\n    this.click.next();\n  }\n}\n","import { Directive, ElementRef, HostBinding, HostListener, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { Direction } from '../util/direction';\r\n\r\nconst autoDirection = 'auto';\r\n\r\n@Directive({\r\n  selector: '[uDropdownMenu]'\r\n})\r\nexport class DropdownMenuDirective implements OnChanges {\r\n\r\n  click = new Subject<void>();\r\n\r\n  private _innerDirection: Direction | null = null;\r\n\r\n  @HostBinding('class.show') show = false;\r\n  @Input() direction: Direction | null = null;\r\n\r\n  @HostListener('click', ['$event']) _click = (e: Event) => {\r\n    e.stopPropagation();\r\n    this.click.next();\r\n  }\r\n\r\n  constructor(readonly _elementRef: ElementRef<HTMLElement>) {\r\n\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (!changes['direction']) {\r\n      return;\r\n    }\r\n\r\n    const directionChange = changes['direction'];\r\n\r\n    if (directionChange.currentValue && directionChange.currentValue.indexOf(autoDirection) !== 0) {\r\n      this.setDirectionClass(directionChange.currentValue);\r\n      return;\r\n    }\r\n\r\n    this.setDirectionClass('');\r\n  }\r\n\r\n  setDirectionClass(direction: string) {\r\n\r\n    if (this._innerDirection && this._innerDirection.indexOf(autoDirection) !== 0) {\r\n      this._elementRef.nativeElement.classList.remove(this._innerDirection);\r\n    }\r\n\r\n    this._innerDirection = direction as Direction;\r\n\r\n    if (direction) {\r\n      this._elementRef.nativeElement.classList.add(direction);\r\n    }\r\n  }\r\n}\r\n","import {\n  AfterContentInit,\n  ContentChild,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Input,\n  Output\n} from '@angular/core';\n\nimport { DropdownToggleDirective } from './dropdown-toggle.directive';\nimport { DropdownMenuDirective } from './dropdown-menu.directive';\n\n@Directive({\n  selector: '[uDropdown]'\n})\nexport class DropdownDirective implements AfterContentInit {\n\n  private _justToggle = false;\n\n  @Input() autoClose: boolean | 'outside' = true;\n\n  @ContentChild(DropdownToggleDirective) _dropdownToggle: DropdownToggleDirective | null = null;\n  @ContentChild(DropdownMenuDirective) _dropdownMenu!: DropdownMenuDirective;\n\n  @HostListener('window:click') _windowClick() {\n    if (this._justToggle) {\n      this._justToggle = false;\n      return;\n    }\n\n    if ((this.autoClose === 'outside' || this.autoClose) && this._dropdownMenu.show) {\n      this._dropdownMenu.show = false;\n    }\n  }\n\n  constructor(private readonly _elementRef: ElementRef) {\n\n  }\n\n  private _autoClose() {\n    if (this.autoClose && this._dropdownMenu.show) {\n      this._dropdownMenu.show = false;\n    }\n  }\n\n  ngAfterContentInit() {\n\n    this._dropdownToggle?.click.subscribe(() => this.toggle());\n\n    this._dropdownMenu.click.subscribe(() => {\n\n      if (this.autoClose && this.autoClose !== 'outside' && this._dropdownMenu.show) {\n        this._dropdownMenu.show = false;\n      }\n    });\n  }\n\n  toggle(): void {\n    this._justToggle = true;\n\n    if (!this._dropdownMenu.show) {\n      this.open();\n      return;\n    }\n\n    this.close();\n  }\n\n  open(): void {\n    if (this._dropdownMenu.direction && this._dropdownMenu.direction.indexOf('auto') === 0) {\n      this._dropdownMenu.setDirectionClass(`${this.openDropdownUpOrDown()}${this._dropdownMenu.direction.substring(4)}`);\n    }\n\n    this._dropdownMenu.show = true;\n  }\n\n  close(): void {\n    this._dropdownMenu.show = false;\n  }\n\n  openDropdownUpOrDown(): string {\n    const menuElement = this._dropdownMenu._elementRef.nativeElement;\n    const dropdownElement = this._elementRef.nativeElement;\n    const rect = dropdownElement.getBoundingClientRect() as DOMRect;\n    const styles = getComputedStyle(menuElement);\n    return window.innerHeight < rect.y + rect.height + parseInt(styles.height, 10) ? 'up' : 'down';\n  }\n}\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { DropdownDirective } from './dropdown.directive';\nimport { DropdownToggleDirective } from './dropdown-toggle.directive';\nimport { DropdownMenuDirective } from './dropdown-menu.directive';\n\n@NgModule({\n  imports: [\n    CommonModule\n  ],\n  declarations: [DropdownDirective, DropdownToggleDirective, DropdownMenuDirective],\n  exports: [DropdownDirective, DropdownToggleDirective, DropdownMenuDirective]\n})\nexport class DropdownModule {\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const DATEPICKER_DEFAULT_OPTIONS = new InjectionToken('DATEPICKER_DEFAULT_OPTIONS');\n\nexport const DefaultDatepickerConfig: DatepickerConfig = {\n  clearLabel: 'Clear'\n}\n\nexport interface DatepickerConfig {\n  firstDayOfWeek?: number;\n  selectDateLabel?: string;\n  clearLabel?: string;\n  hideClear?: boolean;\n}\n","export abstract class DatepickerAdapter {\r\n  abstract formatDate(date: Date | null): string;\r\n  abstract getMonthName(date: Date | null): string;\r\n  abstract getMonthWithYear(date: Date | null): string;\r\n  abstract getYear(date: Date | null): string;\r\n  abstract getWeekDaysNames(firstDayOfWeek: number): string[];\r\n}\r\n","import { Inject, Injectable, LOCALE_ID } from '@angular/core';\r\nimport { DatePipe, FormStyle, getLocaleDayNames, TranslationWidth, WeekDay } from '@angular/common';\r\n\r\nimport { DatepickerAdapter } from './datepicker-adapter';\r\n\r\n@Injectable()\r\nexport class DefaultDatepickerAdapter extends DatepickerAdapter {\r\n  constructor(@Inject(LOCALE_ID) private readonly _locale: string,\r\n              private readonly datePipe: DatePipe) {\r\n    super();\r\n  }\r\n\r\n  formatDate(date: Date | null): string {\r\n    // @ts-ignore\r\n    return this.datePipe.transform(date, 'mediumDate', null, this._locale);\r\n  }\r\n\r\n  getMonthName(date: Date | null): string {\r\n    // @ts-ignore\r\n    return this.datePipe.transform(date, 'MMM', null, this._locale);\r\n  }\r\n\r\n  getMonthWithYear(date: Date | null): string {\r\n    // @ts-ignore\r\n    return this.datePipe.transform(date, 'MMM yyyy', null, this._locale);\r\n  }\r\n\r\n  getYear(date: Date | null): string {\r\n    // @ts-ignore\r\n    return this.datePipe.transform(date, 'yyyy', null, this._locale);\r\n  }\r\n\r\n  getWeekDaysNames(firstDayOfWeek: number): string[] {\r\n    const orderedDayNames = [];\r\n    const dayNames = getLocaleDayNames(this._locale, FormStyle.Standalone, TranslationWidth.Narrow);\r\n    let currentDay: number = firstDayOfWeek!;\r\n\r\n    do {\r\n      orderedDayNames.push(dayNames[currentDay]);\r\n\r\n      currentDay = this._getNextWeekDay(currentDay);\r\n    }\r\n    while (currentDay !== firstDayOfWeek);\r\n\r\n    return orderedDayNames;\r\n  }\r\n\r\n  private _getNextWeekDay(weekDay: WeekDay) {\r\n    return weekDay === WeekDay.Saturday\r\n      ? WeekDay.Sunday\r\n      : ++weekDay;\r\n  }\r\n}\r\n","import {\r\n  Directive,\r\n  EventEmitter,\r\n  Inject,\r\n  Input,\r\n  LOCALE_ID,\r\n  Optional,\r\n  Output,\r\n  SimpleChanges,\r\n  TemplateRef\r\n} from '@angular/core';\r\nimport { getLocaleFirstDayOfWeek, WeekDay } from '@angular/common';\r\n\r\nimport { Week } from './week.model';\r\nimport { DayOfWeek } from './day-of-week.model';\r\nimport { DATEPICKER_DEFAULT_OPTIONS, DatepickerConfig, DefaultDatepickerConfig } from './datepicker-config.model';\r\nimport { DatepickerAdapter } from './datepicker-adapter';\r\nimport { DefaultDatepickerAdapter } from './default-datepicker-adapter';\r\nimport { Month } from './month.model';\r\nimport { Year } from './year.model';\r\n\r\n@Directive()\r\nexport abstract class DatepickerBaseComponent {\r\n  private readonly _totalDaysOfWeek = 7;\r\n  private readonly _yearsGroupsCount = 6;\r\n  private readonly _yearsPerGroup = 4;\r\n\r\n  readonly weekDayNames: string[];\r\n  readonly totalVisibleYears = this._yearsGroupsCount * this._yearsPerGroup;\r\n\r\n  private readonly monthsPerGroup = 4;\r\n\r\n  private _minYear: number | null = null;\r\n  private _minMonth: number | null = null;\r\n  private _maxYear: number | null = null;\r\n  private _maxMonth: number | null = null;\r\n\r\n  weeks: Week[] = [];\r\n  yearGroups: Year[][] = [];\r\n  monthGroups: Month[][] = [];\r\n  currentMonth!: Month;\r\n  baseYear!: number;\r\n  firstDayOfWeek!: number;\r\n\r\n  @Input() dayTemplate: TemplateRef<DayOfWeek> | null = null;\r\n  @Input() datepickerTitle: string = 'Select date';\r\n  @Input() hideHeader: boolean = false;\r\n  @Input() hideClear: boolean = false;\r\n  @Input() clearLabel: string | null = null;\r\n\r\n  @Output() currentMonthChange = new EventEmitter<Month>();\r\n\r\n  _min: Date | null = null;\r\n  _max: Date | null = null;\r\n\r\n  @Input()\r\n  get min(): Date | null {\r\n    return this._min;\r\n  }\r\n  set min(value: Date | null) {\r\n    this._min = value;\r\n    this._minYear = value && value.getUTCFullYear();\r\n    this._minMonth = value && value.getUTCMonth();\r\n    this._setYearsDisabled();\r\n    this._setMonthsDisabled();\r\n    this._setDaysDisabled();\r\n  }\r\n\r\n  @Input()\r\n  get max(): Date | null {\r\n    return this._max;\r\n  }\r\n  set max(value: Date | null) {\r\n    this._max = value;\r\n    this._maxYear = value && value.getUTCFullYear();\r\n    this._maxMonth = value && value.getUTCMonth();\r\n    this._setYearsDisabled();\r\n    this._setMonthsDisabled();\r\n    this._setDaysDisabled();\r\n  }\r\n\r\n  @Input() date: Date | null = null;\r\n  @Output() dateChange = new EventEmitter();\r\n  formattedDate: string | null = null;\r\n\r\n  constructor(@Inject(LOCALE_ID) private readonly _locale: string,\r\n              @Optional() @Inject(DATEPICKER_DEFAULT_OPTIONS) private readonly _defaultConfig: DatepickerConfig,\r\n              @Optional() @Inject(DatepickerAdapter) private readonly datepickerAdapter: DatepickerAdapter,\r\n              defaultDatepickerAdapter: DefaultDatepickerAdapter) {\r\n    this._setInnerConfig();\r\n    this.datepickerAdapter = this.datepickerAdapter || defaultDatepickerAdapter;\r\n\r\n    this.weekDayNames = this.datepickerAdapter.getWeekDaysNames(this.firstDayOfWeek);\r\n\r\n    this._setDate(null);\r\n    this.setYearGroups(this.currentMonth.utcYear - 2);\r\n    this._setMonthGroups();\r\n  }\r\n\r\n  setYearGroups(baseYear: number) {\r\n    this.baseYear = baseYear;\r\n    this.yearGroups.length = 0;\r\n\r\n    for (let g = 0; g < this._yearsGroupsCount; g++) {\r\n      const yearGroup: Year[] = [];\r\n\r\n      this.yearGroups.push(yearGroup);\r\n      for (let y = 0; y < this._yearsPerGroup; y++) {\r\n        yearGroup.push({\r\n          year: baseYear,\r\n          disabled: this._isYearDisabled(baseYear)\r\n        });\r\n        baseYear++;\r\n      }\r\n    }\r\n  }\r\n\r\n  private _setInnerConfig(): void {\r\n    const config: DatepickerConfig = {\r\n      ...DefaultDatepickerConfig,\r\n      firstDayOfWeek: getLocaleFirstDayOfWeek(this._locale),\r\n      ...this._defaultConfig\r\n    };\r\n\r\n    this.clearLabel = config.clearLabel ?? null;\r\n    this.hideClear = config.hideClear ?? false;\r\n    this.firstDayOfWeek = config.firstDayOfWeek!;\r\n  }\r\n\r\n  private _setMonthGroups() {\r\n    let m = 0;\r\n\r\n    while (m < 12) {\r\n      const monthGroup: Month[] = [];\r\n      this.monthGroups.push(monthGroup);\r\n\r\n      for (let i = 0; i < this.monthsPerGroup; i++) {\r\n        monthGroup.push(this.getMonth(new Date(this.baseYear, m)));\r\n        m++;\r\n      }\r\n    }\r\n  }\r\n\r\n  setYear(year: number) {\r\n    this._setCurrentMonth(new Date(year, this.currentMonth.utcMonth));\r\n  }\r\n\r\n  setMonth(month: Month) {\r\n    this._setCurrentMonth(new Date(this.currentMonth.utcYear, month.utcMonth));\r\n  }\r\n\r\n  protected _setDate(date: Date | null) {\r\n    this.date = date;\r\n    this.formattedDate = this.datepickerAdapter.formatDate(date);\r\n\r\n    date = date || new Date();\r\n    this._setCurrentMonth(new Date(date.getUTCFullYear(), date.getUTCMonth()));\r\n  }\r\n\r\n  private getMonth(date: Date): Month {\r\n    const month = {\r\n      date: date,\r\n      utcYear: date.getUTCFullYear(),\r\n      utcMonth: date.getUTCMonth(),\r\n      name: this.datepickerAdapter.getMonthName(date),\r\n      nameWithYear: this.datepickerAdapter.getMonthWithYear(date),\r\n      formattedYear: this.datepickerAdapter.getYear(date),\r\n      disabled: false\r\n    };\r\n\r\n    month.disabled = this._isMonthDisabled(month);\r\n\r\n    return month;\r\n  }\r\n\r\n  private _addToCurrentMonth(value: number) {\r\n    this._setCurrentMonth(new Date(this.currentMonth.utcYear, this.currentMonth.utcMonth + value));\r\n  }\r\n\r\n  private _getCurrentMonthInitialDate(): Date {\r\n    return new Date(this.currentMonth.utcYear, this.currentMonth.utcMonth);\r\n  }\r\n\r\n  private _getInitialDateForCurrentMonth(): Date {\r\n    const currentMonthInitialDate = this._getCurrentMonthInitialDate();\r\n\r\n    if (currentMonthInitialDate.getDay() === this.firstDayOfWeek) {\r\n      return currentMonthInitialDate;\r\n    }\r\n\r\n    if (currentMonthInitialDate.getDay() > this.firstDayOfWeek!) {\r\n      currentMonthInitialDate\r\n        .setDate(currentMonthInitialDate.getDate() - (currentMonthInitialDate.getDay() - this.firstDayOfWeek!));\r\n    } else {\r\n      currentMonthInitialDate\r\n        .setDate(currentMonthInitialDate.getDate() - (WeekDay.Saturday - (this.firstDayOfWeek! - currentMonthInitialDate.getDay() - 1)));\r\n    }\r\n\r\n    return currentMonthInitialDate;\r\n  }\r\n\r\n  private _setCurrentMonth(date: Date) {\r\n    const previousMonth = this.currentMonth;\r\n    const newMonth = this.getMonth(date);\r\n\r\n    if (previousMonth && previousMonth.date.getTime() === newMonth.date.getTime()) {\r\n      return;\r\n    }\r\n\r\n    this.currentMonth = newMonth;\r\n    this.currentMonthChange.emit(this.currentMonth);\r\n\r\n    this.weeks.length = 0;\r\n    const processDate = new Date(this._getInitialDateForCurrentMonth());\r\n\r\n    do {\r\n      const currentWeek: Week = {\r\n        baseDate: new Date(processDate),\r\n        days: []\r\n      };\r\n\r\n      this.weeks.push(currentWeek);\r\n\r\n      for (let i = 0; i < this._totalDaysOfWeek; i++) {\r\n        const dayDate = new Date(processDate);\r\n        currentWeek.days.push({\r\n          date: dayDate,\r\n          outsideMonth: processDate.getMonth() !== this.currentMonth.utcMonth,\r\n          disabled: this._isDayDisabled(dayDate)\r\n        });\r\n\r\n        processDate.setDate(processDate.getDate() + 1);\r\n      }\r\n    } while (processDate.getUTCMonth() === this.currentMonth.utcMonth);\r\n\r\n    this._setMonthsDisabled();\r\n  }\r\n\r\n  showNextMonth() {\r\n    this._addToCurrentMonth(1);\r\n  }\r\n\r\n  showPreviousMonth() {\r\n    this._addToCurrentMonth(-1);\r\n  }\r\n\r\n  private _isDayDisabled(date: Date): boolean {\r\n    return !!this.min && date < this.min || !!this.max && date > this.max;\r\n  }\r\n\r\n  private _setDaysDisabled(): void {\r\n    for (const week of this.weeks) {\r\n      for (const day of week.days) {\r\n        day.disabled = this._isDayDisabled(day.date);\r\n      }\r\n    }\r\n  }\r\n\r\n  private _isMonthDisabled(month: Month): boolean {\r\n    return this.currentMonth\r\n      && (this._isYearDisabled(this.currentMonth.utcYear)\r\n        || (this.currentMonth.utcYear === this._minYear && month.utcMonth < this._minMonth!)\r\n        || (this.currentMonth.utcYear === this._maxYear && month.utcMonth > this._maxMonth!));\r\n  }\r\n\r\n  private _setMonthsDisabled(): void {\r\n    for (const monthGroup of this.monthGroups) {\r\n      for (const month of monthGroup) {\r\n        month.disabled = this._isMonthDisabled(month);\r\n      }\r\n    }\r\n  }\r\n\r\n  private _isYearDisabled(year: number): boolean {\r\n    return !!this._minYear && year < this._minYear || !!this._maxYear && year > this._maxYear;\r\n  }\r\n\r\n  private _setYearsDisabled(): void {\r\n    for (const yearGroup of this.yearGroups) {\r\n      for (const year of yearGroup) {\r\n        year.disabled = this._isYearDisabled(year.year);\r\n      }\r\n    }\r\n  }\r\n\r\n  selectDate(date: Date | null): void {\r\n    this._setDate(date);\r\n    this.dateChange.emit(date);\r\n  }\r\n\r\n  private _datesAreEqual(dateA: Date, dateB: Date) {\r\n    return dateA.getUTCMonth() === dateB.getUTCMonth()\r\n      && dateA.getUTCFullYear() === dateB.getUTCFullYear()\r\n      && dateA.getDate() === dateB.getDate();\r\n  }\r\n\r\n  isEqualToSelectedDate(date: Date) {\r\n    return this.date && this._datesAreEqual(this.date, date);\r\n  }\r\n\r\n  isEqualToTodayDate(date: Date) {\r\n    return this._datesAreEqual(new Date(), date);\r\n  }\r\n\r\n  trackByWeek(index: number, week: Week) {\r\n    return week.baseDate.getTime();\r\n  }\r\n\r\n  trackByDay(index: number, day: DayOfWeek) {\r\n    return day.date.getTime();\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    let dateChange = changes['date'];\r\n\r\n    if (dateChange && dateChange.currentValue && dateChange.currentValue !== dateChange.previousValue) {\r\n      this._setDate(dateChange.currentValue);\r\n    }\r\n  }\r\n}\r\n","export enum DatepickerState {\n  SelectDay,\n  SelectYear,\n  SelectMonth\n}\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, ElementRef, Input } from '@angular/core';\n\nimport { DatepickerState } from '../datepicker-state.model';\nimport { DatepickerBaseComponent } from '../datepicker-base.component';\nimport { Month } from '../month.model';\n\n@Component({\n  selector: 'u-datepicker-content',\n  templateUrl: './datepicker-content.component.html',\n  styleUrls: ['./datepicker-content.component.scss']\n})\nexport class DatepickerContentComponent {\n  DatepickerState = DatepickerState;\n  pickerState = DatepickerState.SelectDay;\n  @Input() disabled = false;\n\n  constructor(elementRef: ElementRef,\n              readonly datepicker: DatepickerBaseComponent) {\n    elementRef.nativeElement.classList.add('u-datepicker');\n  }\n\n  private _datesAreEqual(dateA: Date, dateB: Date) {\n    return dateA.getUTCMonth() === dateB.getUTCMonth()\n      && dateA.getUTCFullYear() === dateB.getUTCFullYear()\n      && dateA.getDate() === dateB.getDate();\n  }\n\n  setYear(year: number) {\n    this.datepicker.setYear(year);\n    this.pickerState = DatepickerState.SelectMonth;\n  }\n\n  setMonth(month: Month) {\n    this.datepicker.setMonth(month);\n    this.pickerState = DatepickerState.SelectDay;\n  }\n}\n","<ng-container *ngIf=\"datepicker\">\n  <div class=\"u-datepicker-header\" *ngIf=\"!datepicker.hideHeader\">\n    <div class=\"u-datepicker-header-title\">{{datepicker.datepickerTitle}}</div>\n    <div class=\"u-datepicker-header-date\">{{datepicker.formattedDate}}</div>\n  </div>\n  <div class=\"u-datepicker-body\">\n    <ng-container *ngIf=\"pickerState === DatepickerState.SelectDay\">\n      <div class=\"u-datepicker-navigation\">\n        <u-button type=\"button\" variant=\"text\" (click)=\"pickerState = DatepickerState.SelectYear\" [disabled]=\"disabled\">\n          {{datepicker.currentMonth.nameWithYear}}\n        </u-button>\n        <u-button-set class=\"ml-auto\">\n          <u-icon-button type=\"button\" (click)=\"datepicker.showPreviousMonth()\" [disabled]=\"disabled\">\n            <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"1em\" fill=\"currentColor\">\n              <path d=\"M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z\"/>\n            </svg>\n          </u-icon-button>\n          <u-icon-button type=\"button\" (click)=\"datepicker.showNextMonth()\" [disabled]=\"disabled\">\n            <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"1em\" fill=\"currentColor\">\n              <path d=\"M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z\"/>\n            </svg>\n          </u-icon-button>\n        </u-button-set>\n      </div>\n      <div class=\"u-datepicker-content\">\n        <div class=\"u-datepicker-weekdays\">\n          <span class=\"u-datepicker-weekday\" *ngFor=\"let dayName of datepicker.weekDayNames\">{{dayName}}</span>\n        </div>\n        <div class=\"u-datepicker-week\" *ngFor=\"let week of datepicker.weeks; trackBy: datepicker.trackByWeek\">\n          <button type=\"button\"\n                  uRipple\n                  class=\"u-datepicker-day\"\n                  [disabled]=\"disabled\"\n                  *ngFor=\"let day of week.days; trackBy: datepicker.trackByDay\"\n                  [class.disabled]=\"day.disabled\"\n                  [class.active]=\"datepicker.isEqualToSelectedDate(day.date)\"\n                  [class.u-datepicker-current-day]=\"datepicker.isEqualToTodayDate(day.date)\"\n                  [class.u-datepicker-day-outside-month]=\"day.outsideMonth\"\n                  (click)=\"!day.disabled && datepicker.selectDate(day.date)\">\n            <ng-container *ngTemplateOutlet=\"datepicker.dayTemplate || defaultDayTemplate; context: {$implicit: day.date}\"></ng-container>\n          </button>\n        </div>\n      </div>\n\n    </ng-container>\n    <ng-container *ngIf=\"pickerState === DatepickerState.SelectYear\">\n      <div class=\"u-datepicker-navigation\">\n        <u-button\n          type=\"button\"\n          (click)=\"pickerState = DatepickerState.SelectDay\"\n          [disabled]=\"disabled\">\n          {{datepicker.currentMonth.formattedYear}}\n        </u-button>\n        <u-button-set class=\"ml-auto\">\n          <u-icon-button\n            type=\"button\"\n            (click)=\"datepicker.setYearGroups(datepicker.baseYear - datepicker.totalVisibleYears)\"\n            [disabled]=\"disabled\">\n            <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"1em\" fill=\"currentColor\">\n              <path d=\"M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z\"/>\n            </svg>\n          </u-icon-button>\n          <u-icon-button\n            type=\"button\"\n            (click)=\"datepicker.setYearGroups(datepicker.baseYear + datepicker.totalVisibleYears)\"\n            [disabled]=\"disabled\">\n            <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"1em\" fill=\"currentColor\">\n              <path d=\"M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z\"/>\n            </svg>\n          </u-icon-button>\n        </u-button-set>\n      </div>\n      <div class=\"u-datepicker-content\">\n        <div class=\"u-datepicker-year-group\" *ngFor=\"let yearGroup of datepicker.yearGroups\">\n          <div uRipple class=\"u-datepicker-year-month-button\"\n               *ngFor=\"let year of yearGroup\"\n               [class.disabled]=\"year.disabled\"\n               [class.active]=\"year.year === datepicker.currentMonth.utcYear\"\n               (click)=\"!year.disabled && setYear(year.year)\">{{year.year}}</div>\n        </div>\n      </div>\n    </ng-container>\n    <ng-container *ngIf=\"pickerState === DatepickerState.SelectMonth\">\n      <div class=\"u-datepicker-navigation\">\n        <u-button\n          type=\"button\"\n          variant=\"text\"\n          (click)=\"pickerState = DatepickerState.SelectDay\"\n          [disabled]=\"disabled\">\n          {{datepicker.currentMonth.formattedYear}}\n        </u-button>\n      </div>\n      <div class=\"u-datepicker-content\">\n        <div class=\"u-datepicker-month-group\" *ngFor=\"let monthGroup of datepicker.monthGroups\">\n          <div uRipple class=\"u-datepicker-year-month-button\"\n               *ngFor=\"let month of monthGroup\"\n               [class.disabled]=\"month.disabled\"\n               [class.active]=\"month.utcMonth === datepicker.currentMonth.utcMonth\"\n               (click)=\"!month.disabled && setMonth(month)\">{{month.name | uppercase}}</div>\n        </div>\n      </div>\n    </ng-container>\n    <u-button-set class=\"u-datepicker-clear justify-content-end w-100\">\n      <u-button\n        *ngIf=\"!datepicker.hideClear\"\n        type=\"button\"\n        variant=\"text\"\n        color=\"primary\"\n        (click)=\"datepicker.selectDate(null)\"\n        [disabled]=\"disabled\">{{datepicker.clearLabel}}</u-button>\n    </u-button-set>\n  </div>\n</ng-container>\n\n<ng-template #defaultDayTemplate let-date>{{date.getDate()}}</ng-template>\n","import { Component } from '@angular/core';\n\nimport { DatepickerBaseComponent } from './datepicker-base.component';\n\n@Component({\n  selector: 'u-datepicker',\n  templateUrl: './datepicker.component.html',\n  styleUrls: ['./datepicker.component.scss'],\n  providers: [\n    {provide: DatepickerBaseComponent, useExisting: DatepickerComponent}\n  ]\n})\nexport class DatepickerComponent extends DatepickerBaseComponent {\n\n}\n","<u-datepicker-content></u-datepicker-content>\n","import { Component, ElementRef, forwardRef, Inject, Input, LOCALE_ID, Optional, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { InputBaseComponent } from '../../shared/input-base.component';\nimport { FormFieldComponent } from '../../form-field/form-field.component';\nimport { Direction } from '../../util/direction';\nimport { DropdownMenuDirective } from '../../dropdown/dropdown-menu.directive';\n\nimport { DatepickerBaseComponent } from '../datepicker-base.component';\nimport { DATEPICKER_DEFAULT_OPTIONS, DatepickerConfig } from '../datepicker-config.model';\nimport { DatepickerAdapter } from '../datepicker-adapter';\nimport { DefaultDatepickerAdapter } from '../default-datepicker-adapter';\nimport { DropdownDirective } from '../../dropdown/dropdown.directive';\n\nconst DatepickerInputValueAcessor = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => DatepickerInputComponent),\n  multi: true\n};\n\n@Component({\n  selector: 'u-datepicker-input',\n  templateUrl: './datepicker-input.component.html',\n  styleUrls: ['./datepicker-input.component.scss'],\n  providers: [\n    DatepickerInputValueAcessor,\n    {provide: DatepickerBaseComponent, useExisting: DatepickerInputComponent}\n  ],\n  encapsulation: ViewEncapsulation.None\n})\nexport class DatepickerInputComponent extends DatepickerBaseComponent implements InputBaseComponent, ControlValueAccessor {\n\n  @Input() autoClose: boolean | 'outside' = 'outside';\n  @Input() placeholder: string | null = null;\n  @Input() direction: Direction = 'auto';\n  @Input() tabIndex: number | null = null;\n  @Input() inputFormatter: ((value: Date) => string | null) | null = null;\n  // @Input() config: DatepickerInputConfig;\n\n  @ViewChild('toggle') toggle!: ElementRef<HTMLButtonElement>;\n\n  @ViewChild(DropdownDirective) _dropdown!: DropdownDirective;\n  @ViewChild(DropdownMenuDirective) _dropdownMenu!: DropdownMenuDirective;\n\n  override date: Date | null = null;\n  _disabled = false;\n\n  focused = false;\n  // get focused(): boolean {\n  //   return this._dropdownMenu && this._dropdownMenu.show;\n  // }\n\n  get empty(): boolean {\n    return !this.date;\n  }\n\n  get disabled(): boolean {\n    return this._disabled;\n  }\n\n  constructor(elementRef: ElementRef<HTMLElement>,\n              @Inject(LOCALE_ID) _locale: string,\n              @Optional() @Inject(DatepickerAdapter) datepickerAdapter: DatepickerAdapter,\n              @Optional() @Inject(DATEPICKER_DEFAULT_OPTIONS) _defaultConfig: DatepickerConfig,\n              defaultDatepickerAdapter: DefaultDatepickerAdapter,\n              @Optional() @Inject(forwardRef(() => FormFieldComponent)) formField: FormFieldComponent) {\n    super(_locale, _defaultConfig, datepickerAdapter, defaultDatepickerAdapter);\n\n    elementRef.nativeElement.classList.add('u-text-input');\n\n    if (!formField) {\n      return;\n    }\n\n    formField.selectionField = true;\n    formField._input = this;\n  }\n\n  private _onTouched = () => {};\n  private _onChange = (_: any) => {};\n\n  override _setDate(date: Date): void {\n    super._setDate(date);\n\n    if (!this._onChange) {\n      return;\n    }\n\n    this._onChange(date);\n\n    if (this.autoClose && this._dropdownMenu) {\n      this._dropdownMenu.show = false;\n    }\n  }\n\n  focus(): void {\n    this._dropdown.toggle();\n    this.toggle.nativeElement.focus();\n  }\n\n  registerOnChange(fn: (value: any) => any): void {\n    this._onChange = fn;\n  }\n\n  registerOnTouched(fn: () => any): void {\n    this._onTouched = fn;\n  }\n\n  writeValue(value: Date) {\n    this._setDate(value);\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._disabled = isDisabled;\n  }\n\n  _focusChanged(focused: boolean) {\n    if (focused === this.focused) {\n      return;\n    }\n\n    this.focused = focused;\n\n    if (!focused) {\n      this._dropdown.close();\n    }\n  }\n}\n","<div class=\"u-dropdown\" uDropdown [autoClose]=\"autoClose\">\n  <button\n    #toggle\n    class=\"u-text-input u-dropdown-toggle\"\n    type=\"button\"\n    [disabled]=\"_disabled\"\n    [attr.tabindex]=\"tabIndex\"\n    (click)=\"focus()\"\n    (focus)=\"_focusChanged(true)\"\n    (blur)=\"_focusChanged(false)\">\n    <div class=\"u-text-input-value\" *ngIf=\"date; else inputPlaceholder\">{{inputFormatter ? inputFormatter(date) : formattedDate}}</div>\n    <ng-template #inputPlaceholder>\n      <div class=\"u-text-input-placeholder\">{{placeholder}}</div>\n    </ng-template>\n  </button>\n  <div class=\"u-dropdown-menu\" uDropdownMenu [direction]=\"direction\">\n    <u-datepicker-content [disabled]=\"!focused\"></u-datepicker-content>\n  </div>\n</div>\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { CommonModule, DatePipe } from '@angular/common';\n\nimport { RippleModule } from '../ripple/ripple.module';\nimport { DropdownModule } from '../dropdown/dropdown.module';\n\nimport { DatepickerComponent } from './datepicker.component';\nimport { DatepickerInputComponent } from './datepicker-input/datepicker-input.component';\nimport { DatepickerContentComponent } from './datepicker-content/datepicker-content.component';\nimport { DefaultDatepickerAdapter } from './default-datepicker-adapter';\n\nexport { Month } from './month.model';\nexport { DATEPICKER_DEFAULT_OPTIONS, DatepickerConfig } from './datepicker-config.model';\nexport { DefaultDatepickerAdapter } from './default-datepicker-adapter';\nexport { DatepickerAdapter } from './datepicker-adapter';\nexport { DatepickerComponent, DatepickerInputComponent }\n\n@NgModule({\n  imports: [\n    CommonModule,\n    DropdownModule,\n    RippleModule\n  ],\n  declarations: [DatepickerComponent, DatepickerInputComponent, DatepickerContentComponent],\n  exports: [DatepickerComponent, DatepickerInputComponent],\n  providers: [\n    DatePipe,\n    DefaultDatepickerAdapter\n  ],\n  schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class DatepickerModule {\n}\n","import { Component, ElementRef, HostBinding, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'u-collapse',\n  templateUrl: './collapse.component.html',\n  styleUrls: ['./collapse.component.scss']\n})\nexport class CollapseComponent {\n\n  @Input() show = false;\n\n  @HostBinding('style.max-height') get maxHeight(): string {\n    return this.show\n      ? `${this._elementRef.nativeElement.scrollHeight}px`\n      : '0';\n  }\n\n  constructor(private readonly _elementRef: ElementRef) {\n\n  }\n}\n","<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CollapseComponent } from './collapse.component';\n\nexport { CollapseComponent } from './collapse.component';\n\n@NgModule({\n  imports: [\n    CommonModule\n  ],\n  declarations: [CollapseComponent],\n  exports: [CollapseComponent]\n})\nexport class CollapseModule { }\n","import { Component, ElementRef, HostBinding, Input } from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\n@Component({\n  selector: 'u-expansion-panel',\n  templateUrl: './expansion-panel.component.html',\n  styleUrls: ['./expansion-panel.component.scss']\n})\nexport class ExpansionPanelComponent {\n\n  private _expanded = false;\n\n  @HostBinding('class.disabled') @Input() disabled = false;\n  @Input() hideToggle = false;\n\n  @HostBinding('class.expanded')\n  get expanded(): boolean {\n    return this._expanded;\n  }\n\n  set expanded(value: boolean) {\n    this._expanded = value;\n    this._toggleChange.next(this);\n  }\n\n  _toggleChange = new Subject<ExpansionPanelComponent>();\n\n  constructor(elementRef: ElementRef) {\n    elementRef.nativeElement.classList.add('u-expansion-panel');\n  }\n\n  toggle() {\n    if (this.disabled) {\n      return;\n    }\n\n    this.expanded = !this.expanded;\n  }\n}\n","<div class=\"u-expansion-panel-header\" uRipple [class.disabled]=\"disabled\" (click)=\"toggle()\">\n  <ng-content select=\"[uExpansionPanelHeader]\"></ng-content>\n  <div class=\"u-expansion-toggle-icon\" *ngIf=\"!hideToggle\" uExpansionPanelHeader>\n    <i class=\"u-chevron-down\"></i>\n  </div>\n</div>\n<u-collapse class=\"u-expansion-panel-content\" [show]=\"expanded\">\n  <ng-content></ng-content>\n</u-collapse>\n","import { AfterContentInit, Component, ContentChildren, Input, QueryList } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { ExpansionPanelComponent } from '../expansion-panel.component';\n\n@Component({\n  selector: 'u-expansion-panel-container',\n  templateUrl: './expansion-panel-container.component.html',\n  styleUrls: ['./expansion-panel-container.component.scss']\n})\nexport class ExpansionPanelContainerComponent implements AfterContentInit {\n\n  @Input() multi = false;\n  @ContentChildren(ExpansionPanelComponent) _panels!: QueryList<ExpansionPanelComponent>;\n\n  private _childrenOpenSubscriptions: Subscription[] = [];\n\n  ngAfterContentInit(): void {\n    this._updatePanels(this._panels);\n    this._panels.changes.subscribe(panels => {\n      this._updatePanels(panels);\n    });\n  }\n\n  _toggle = (panel: ExpansionPanelComponent) => {\n    if (!panel.expanded || this.multi) {\n      return;\n    }\n\n    for (const p of this._panels.toArray()) {\n      if (p === panel) {\n        continue;\n      }\n\n      p.expanded = false;\n    }\n  }\n\n  private _updatePanels(panels: QueryList<ExpansionPanelComponent>) {\n    for (const subscription of this._childrenOpenSubscriptions) {\n      subscription.unsubscribe();\n    }\n\n    this._childrenOpenSubscriptions.length = 0;\n    for (const panel of panels.toArray()) {\n      this._childrenOpenSubscriptions.push(panel._toggleChange.subscribe(this._toggle));\n    }\n  }\n}\n","<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { RippleModule } from '../ripple/ripple.module';\nimport { CollapseModule } from '../collapse/collapse.module';\n\nimport { ExpansionPanelComponent } from './expansion-panel.component';\nimport { ExpansionPanelContainerComponent } from './expansion-panel-container/expansion-panel-container.component';\n\nexport { ExpansionPanelComponent } from './expansion-panel.component';\nexport { ExpansionPanelContainerComponent } from './expansion-panel-container/expansion-panel-container.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    CollapseModule,\n    RippleModule\n  ],\n  declarations: [\n    ExpansionPanelComponent,\n    ExpansionPanelContainerComponent\n  ],\n  exports: [\n    ExpansionPanelComponent,\n    ExpansionPanelContainerComponent\n  ]\n})\nexport class ExpansionPanelModule {\n}\n","import { Component, ElementRef, forwardRef, HostBinding, Input, OnInit, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nconst SliderValueAcessor = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => SliderComponent),\n  multi: true\n};\n\n@Component({\n  selector: 'u-slider',\n  templateUrl: './slider.component.html',\n  styleUrls: ['./slider.component.scss'],\n  providers: [SliderValueAcessor]\n})\nexport class SliderComponent implements OnInit, ControlValueAccessor {\n\n  @Input() step = 1;\n  @Input() showTrack = false;\n  @HostBinding('attr.aria-minvalue') @Input() min!: number;\n  @HostBinding('attr.aria-maxvalue') @Input() max!: number;\n  @HostBinding('attr.aria-disabled') _disabled = false;\n  @HostBinding('attr.aria-valuenow') _value!: number;\n  _trackWidth!: string;\n\n  private _onTouched = () => {}\n  private _onChange = (_: any) => {}\n\n  @ViewChild('input', {static: true}) inputRef!: ElementRef<HTMLInputElement>;\n\n  static ngAcceptInputType_min: number | string;\n  static ngAcceptInputType_max: number | string;\n  static ngAcceptInputType_step: number | string;\n\n  constructor(private readonly elementRef: ElementRef<HTMLElement>) {\n    this.elementRef.nativeElement.setAttribute('role', 'slider');\n    this.elementRef.nativeElement.setAttribute('aria-orientation', 'horizontal');\n    this.elementRef.nativeElement.classList.add('u-slider');\n  }\n\n  private _setThumbAndTrack() {\n\n    let value = this._value;\n\n    const offset = this.max - this.min;\n    value -= this.min;\n\n    const position = value * 100 / offset;\n    this._trackWidth = `${position}%`;\n  }\n\n  ngOnInit() {\n    this.inputRef.nativeElement.addEventListener(window.navigator.userAgent.indexOf('Trident/') > -1 ? 'change' : 'input',\n      () => {\n        this._value = this.inputRef.nativeElement.valueAsNumber;\n        this._onChange(this.inputRef.nativeElement.valueAsNumber);\n        this._setThumbAndTrack();\n      });\n\n    if (typeof this.step === 'string') {\n      this.step = parseFloat(this.step);\n    }\n\n    if (typeof this.min === 'string') {\n      this.min = parseInt(this.min, 10);\n    }\n\n    if (typeof this.max === 'string') {\n      this.max = parseInt(this.max, 10);\n    }\n\n    if (this._value === undefined) {\n      this._value = ((this.max - this.min) / 2) + this.min;\n      this._onChange(this._value);\n\n      this._setThumbAndTrack();\n    }\n  }\n\n  registerOnChange(fn: any): void {\n    this._onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  setDisabledState(disabled: boolean): void {\n    this._disabled = disabled;\n  }\n\n  writeValue(obj: any): void {\n    this._value = obj;\n    this._setThumbAndTrack();\n  }\n}\n","<input type=\"range\" [min]=\"min\" [max]=\"max\" [step]=\"step\" aria-hidden=\"true\" [disabled]=\"_disabled\" [valueAsNumber]=\"_value\" #input>\n<div class=\"u-slider-thumb-container\">\n  <div class=\"u-slider-thumb\" [style.width]=\"_trackWidth\"></div>\n</div>\n<div class=\"u-slider-track-container\">\n  <div class=\"u-slider-track-marker-container\" *ngIf=\"showTrack\">\n    <div class=\"u-slider-track-marker\"></div>\n  </div>\n  <div class=\"u-slider-track\" [style.width]=\"_trackWidth\"></div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SliderComponent } from './slider.component';\n\nexport { SliderComponent } from './slider.component';\n\n@NgModule({\n  imports: [\n    CommonModule\n  ],\n  declarations: [SliderComponent],\n  exports: [SliderComponent]\n})\nexport class SliderModule { }\n","import { Directive, forwardRef, OnInit, Provider } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, RadioControlValueAccessor } from '@angular/forms';\r\n\r\nconst RADIO_VALUE_ACCESSOR: Provider = {\r\n  provide: NG_VALUE_ACCESSOR,\r\n  useExisting: forwardRef(() => UmRadioControlValueAccessor),\r\n  multi: true,\r\n};\r\n\r\n@Directive({\r\n  selector: 'u-radio[ngModel],u-radio[formControlName],u-radio[formControl],u-radio-list-item[ngModel],u-radio-list-item[formControlName],u-radio-list-item[formControl]',\r\n  providers: [RADIO_VALUE_ACCESSOR],\r\n  standalone: false,\r\n})\r\nexport class UmRadioControlValueAccessor extends RadioControlValueAccessor {\r\n\r\n}\r\n","import { Directive, forwardRef, OnInit, Provider } from '@angular/core';\r\nimport { CheckboxControlValueAccessor, NG_VALUE_ACCESSOR, RadioControlValueAccessor } from '@angular/forms';\r\n\r\nconst CHECK_VALUE_ACCESSOR: Provider = {\r\n  provide: NG_VALUE_ACCESSOR,\r\n  useExisting: forwardRef(() => UmCheckControlValueAccessor),\r\n  multi: true,\r\n};\r\n\r\n@Directive({\r\n  selector: 'u-checkbox[ngModel],u-checkbox[formControlName],u-checkbox[formControl],u-switch[ngModel],u-switch[formControlName],u-switch[formControl],u-checkbox-list-item[ngModel],u-checkbox-list-item[formControlName],u-checkbox-list-item[formControl],u-switch-list-item[ngModel],u-switch-list-item[formControlName],u-switch-list-item[formControl]',\r\n  providers: [CHECK_VALUE_ACCESSOR],\r\n  standalone: false,\r\n})\r\nexport class UmCheckControlValueAccessor extends CheckboxControlValueAccessor {\r\n\r\n}\r\n","import { ControlValueAccessor, DefaultValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { Directive, ElementRef, forwardRef, Provider, Renderer2 } from '@angular/core';\r\nimport { UmChipField } from '@universal-material/web';\r\n\r\nconst CHIP_FIELD_VALUE_ACCESSOR: Provider = {\r\n  provide: NG_VALUE_ACCESSOR,\r\n  useExisting: forwardRef(() => UmChipFieldControlValueAccessor),\r\n  multi: true,\r\n};\r\n\r\n@Directive({\r\n  selector: 'u-chip-field[ngModel],u-chip-field[formControlName],u-chip-field[formControl]',\r\n  providers: [CHIP_FIELD_VALUE_ACCESSOR],\r\n  host: {\r\n    '(change)': '$any(this)._handleChange($event.target.value)'\r\n  },\r\n  standalone: false,\r\n})\r\nexport class UmChipFieldControlValueAccessor implements ControlValueAccessor {\r\n\r\n  onChange = (_: any) => {};\r\n  onTouched = () => {};\r\n\r\n  constructor(private _renderer: Renderer2,\r\n    private _elementRef: ElementRef<UmChipField>) {}\r\n\r\n  writeValue(obj: any): void {\r\n    this._elementRef.nativeElement.value = obj ?? [];\r\n  }\r\n\r\n  protected setProperty(key: string, value: any): void {\r\n    this._renderer.setProperty(this._elementRef.nativeElement, key, value);\r\n  }\r\n\r\n  registerOnTouched(fn: () => void): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  registerOnChange(fn: (_: any) => {}): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  setDisabledState(isDisabled: boolean): void {\r\n    this.setProperty('disabled', isDisabled);\r\n  }\r\n\r\n  _handleChange(value: []) {\r\n    this.onChange(value);\r\n  }\r\n}\r\n","import { Directive, ElementRef, Inject, Optional, Renderer2 } from '@angular/core';\r\nimport { COMPOSITION_BUFFER_MODE, DefaultValueAccessor, NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n  selector: 'u-text-field[ngModel],u-text-field[formControlName],u-text-field[formControl],u-text-area[ngModel],u-text-area[formControlName],u-text-area[formControl],u-button-field[ngModel],u-button-field[formControlName],u-button-field[formControl],u-search[ngModel],u-search[formControlName],u-search[formControl]',\r\n  standalone: false,\r\n})\r\nexport class UmDefaultControlValueAccessor extends DefaultValueAccessor {\r\n  constructor(renderer: Renderer2,\r\n              elementRef: ElementRef,\r\n              @Optional() @Inject(COMPOSITION_BUFFER_MODE) _compositionMode: boolean,\r\n              @Optional() ngControl: NgControl) {\r\n    super(renderer, elementRef, _compositionMode);\r\n\r\n    if (!ngControl || ngControl.valueAccessor) {\r\n      return;\r\n    }\r\n\r\n    ngControl.valueAccessor = this;\r\n  }\r\n}\r\n","import { ControlValueAccessor, DefaultValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { Directive, ElementRef, forwardRef, Provider, Renderer2 } from '@angular/core';\r\nimport { UmChipField, UmTypeahead } from '@universal-material/web';\r\n\r\nconst TYPEAHEAD_VALUE_ACCESSOR: Provider = {\r\n  provide: NG_VALUE_ACCESSOR,\r\n  useExisting: forwardRef(() => UmTypeaheadControlValueAccessor),\r\n  multi: true,\r\n};\r\n\r\n@Directive({\r\n  selector: 'u-typeahead[ngModel],u-typeahead[formControlName],u-typeahead[formControl]',\r\n  providers: [TYPEAHEAD_VALUE_ACCESSOR],\r\n  host: {\r\n    '(change)': '$any(this)._handleChange($event.target.value)'\r\n  },\r\n  standalone: false,\r\n})\r\nexport class UmTypeaheadControlValueAccessor implements ControlValueAccessor {\r\n\r\n  onChange = (_: any) => {};\r\n  onTouched = () => {};\r\n\r\n  constructor(private _renderer: Renderer2,\r\n              private _elementRef: ElementRef<UmTypeahead>) {\r\n  }\r\n\r\n  writeValue(obj: any): void {\r\n    this._elementRef.nativeElement.value = obj;\r\n  }\r\n\r\n  protected setProperty(key: string, value: any): void {\r\n    this._renderer.setProperty(this._elementRef.nativeElement, key, value);\r\n  }\r\n\r\n  registerOnTouched(fn: () => void): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  registerOnChange(fn: (_: any) => {}): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  setDisabledState(isDisabled: boolean): void {\r\n    this.setProperty('disabled', isDisabled);\r\n  }\r\n\r\n  _handleChange(value: []) {\r\n    this.onChange(value);\r\n  }\r\n}\r\n","import { Directive, ElementRef, forwardRef, Host, Optional, Provider, Renderer2 } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, NgSelectOption, SelectControlValueAccessor } from '@angular/forms';\r\n\r\nconst SELECT_VALUE_ACCESSOR: Provider = {\r\n  provide: NG_VALUE_ACCESSOR,\r\n  useExisting: forwardRef(() => UmSelectControlValueAccessor),\r\n  multi: true,\r\n};\r\n\r\n@Directive({\r\n  selector: 'u-select[ngModel],u-select[formControlName],u-select[formControl]',\r\n  providers: [SELECT_VALUE_ACCESSOR],\r\n  standalone: false,\r\n})\r\nexport class UmSelectControlValueAccessor extends SelectControlValueAccessor {\r\n  #mutationObserver: MutationObserver;\r\n\r\n  constructor(_element: ElementRef,\r\n              _renderer: Renderer2) {\r\n    super(_renderer, _element);\r\n    this.#mutationObserver = new MutationObserver(() => this.writeValue(this.value));\r\n    this.#mutationObserver.observe(_element.nativeElement, {characterData: true, childList: true, subtree: true})\r\n  }\r\n}\r\n\r\n@Directive({\r\n  selector: 'u-option',\r\n  standalone: false,\r\n})\r\nexport class UmSelectOption extends NgSelectOption {\r\n  constructor(_element: ElementRef,\r\n              _renderer: Renderer2,\r\n              @Optional() @Host() _select: UmSelectControlValueAccessor) {\r\n    super(_element, _renderer, _select);\r\n  }\r\n}\r\n","import { Directive, ElementRef, EventEmitter, Input, Output } from '@angular/core';\n\nimport { UmTabBar } from '@universal-material/web';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Directive({\n  selector: 'u-tab-bar',\n  standalone: true\n})\nexport class TabBarDirective {\n\n  #activeTabIndex = 0;\n  readonly #tabBar: UmTabBar;\n  readonly #mutationObserver: MutationObserver;\n\n  #justSetTabIndex = false;\n\n  @Input()\n  get activeTabIndex(): number {\n    return this.#activeTabIndex;\n  }\n  set activeTabIndex(index: number) {\n    this.#activeTabIndex = index;\n    this.#tabBar.activeTabIndex = index;\n    this.#justSetTabIndex = true;\n    this.#tabChangedSubject.next();\n  }\n\n  #tabChangedSubject = new Subject<void>();\n\n  @Output() activeTabIndexChange = new EventEmitter<number>();\n\n  constructor(elementRef: ElementRef<UmTabBar>) {\n    this.#tabBar = elementRef.nativeElement;\n\n    elementRef.nativeElement.addEventListener('change', () => this.activeTabIndexChange.emit(this.#tabBar.activeTabIndex));\n    this.#mutationObserver = new MutationObserver(() => this.#tabChangedSubject.next());\n    this.#mutationObserver.observe(elementRef.nativeElement, {characterData: true, childList: true, subtree: true});\n\n    this.#tabChangedSubject\n      .pipe(debounceTime(100))\n      .subscribe(() => this.ensureCorrectTabIndex());\n  }\n\n  private ensureCorrectTabIndex() {\n    if (this.#activeTabIndex === this.#tabBar.activeTabIndex) {\n      return;\n    }\n\n    if (!this.#justSetTabIndex) {\n      this.#activeTabIndex = this.#tabBar.activeTabIndex;\n      this.activeTabIndexChange.next(this.#activeTabIndex);\n      return;\n    }\n\n    this.#justSetTabIndex = false;\n    this.#tabBar.activeTabIndex = this.#activeTabIndex;\n\n    if (this.#activeTabIndex === this.#tabBar.activeTabIndex) {\n      return;\n    }\n\n    this.#activeTabIndex = this.#tabBar.activeTabIndex;\n    this.activeTabIndexChange.next(this.#activeTabIndex);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfirmDialogConfig } from './confirm-dialog-config.model';\nimport { ConfirmDialogBuilder, UmButtonColor, UmButtonVariant } from '@universal-material/web';\nimport { ConfirmDialogRef } from './confirm-dialog-ref';\nimport { fromPromise } from 'rxjs/internal/observable/innerFrom';\nimport { filter } from 'rxjs/operators';\nimport { Observable } from 'rxjs';\n\n@Injectable({providedIn: 'root'})\nexport class ConfirmDialogService {\n  open(message: string, config?: ConfirmDialogConfig): ConfirmDialogRef {\n    const builder = ConfirmDialogBuilder.create(message);\n\n    if (!config) {\n      return this.#open(builder);\n    }\n\n    if (config.confirmButton) {\n      builder.confirmButton({\n        label: config.confirmButton.text,\n        variant: config.confirmButton.variant as UmButtonVariant ?? 'text',\n        color: config.confirmButton.color as UmButtonColor\n      })\n    }\n\n    if (config.cancelButton) {\n      builder.cancelButton({\n        label: config.cancelButton.text,\n        variant: config.cancelButton.variant as UmButtonVariant ?? 'text',\n        color: config.cancelButton.color as UmButtonColor\n      })\n    }\n\n    if (config.title) {\n      builder.headline(config.title);\n    }\n\n    return this.#open(builder);\n  }\n\n  #open(builder: ConfirmDialogBuilder): ConfirmDialogRef {\n    const result$ = fromPromise(builder.show());\n\n    return {\n      onConfirm: result$\n        .pipe(filter(confirmed => confirmed)) as Observable<any>,\n      onCancel: result$\n        .pipe(filter(confirmed => !confirmed)) as Observable<any>\n    }\n  }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const SNACKBAR_DEFAULT_OPTIONS = new InjectionToken('SNACKBAR_DEFAULT_OPTIONS');\n\nexport interface SnackbarConfig {\n  actionLabel?: string | null;\n  duration?: number;\n}\n","export enum SnackbarDuration {\n  infinite = -1,\n  short = 2500,\n  long = 5000\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { SNACKBAR_DEFAULT_OPTIONS, SnackbarConfig } from './snackbar-config.model';\nimport { SnackbarDuration } from './snackbar-duration';\nimport { SnackbarRef } from './snackbar-ref.model';\nimport { UmSnackbar } from '@universal-material/web';\nimport { fromEvent, Observable } from 'rxjs';\n\nconst _defaultConfig: SnackbarConfig = {\n  duration: SnackbarDuration.long\n};\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SnackbarService {\n\n  private readonly _defaultConfig: SnackbarConfig;\n\n  constructor(@Optional() @Inject(SNACKBAR_DEFAULT_OPTIONS) userOptions: SnackbarConfig) {\n\n\n    this._defaultConfig = { ..._defaultConfig, ... userOptions };\n\n  }\n\n  open(message: string, config?: SnackbarConfig): SnackbarRef {\n\n    const snackbar = UmSnackbar.show({\n      message: message,\n      action: config?.actionLabel!,\n      duration: config?.duration || this._defaultConfig.duration,\n    });\n\n    return {\n      get message(): string {\n        return snackbar.message\n      },\n      set message(value: string) {\n        snackbar.message = value;\n      },\n      get action(): string {\n        return snackbar.action\n      },\n      set action(value: string) {\n        snackbar.action = value;\n      },\n      dismiss: () => snackbar.dismiss(),\n      onAction: fromEvent(snackbar, 'actionClick')\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\n\nimport { RippleModule } from './ripple/ripple.module';\nimport { TextFieldModule } from './text-field/text-field.module';\nimport { DialogModule } from './dialog/dialog.module';\nimport { TypeaheadModule, TypeaheadSelectItemEvent } from './typeahead/typeahead.module';\nimport { FloatingActionBehaviorModule } from './floating-action-behavior/floating-action-behavior.module';\nimport { FormFieldModule } from './form-field/form-field.module';\nimport { DatepickerModule } from './datepicker/datepicker.module';\nimport { CollapseModule } from './collapse/collapse.module';\nimport { ExpansionPanelModule } from './expansion-panel/expansion-panel.module';\nimport { SliderModule } from './slider/slider.module';\nimport { UmRadioControlValueAccessor } from './value-accessors/radio-control-value-accessor';\nimport { UmCheckControlValueAccessor } from './value-accessors/check-control-value-accessor';\nimport { UmChipFieldControlValueAccessor } from './value-accessors/chip-field-control-value-accessor';\nimport { UmDefaultControlValueAccessor } from './value-accessors/default-control-value-accessor';\nimport { UmTypeaheadControlValueAccessor } from './value-accessors/typeahead-control-value-accessor';\nimport { UmSelectControlValueAccessor, UmSelectOption } from './value-accessors/select-control-value-accessor';\nimport { TabBarDirective } from './tab-bar/tab-bar.directive';\n\nconst UniversalMaterialModules = [\n  DialogModule,\n  RippleModule,\n  FormFieldModule,\n  TextFieldModule,\n  TypeaheadModule,\n  FloatingActionBehaviorModule,\n  DatepickerModule,\n  CollapseModule,\n  ExpansionPanelModule,\n  SliderModule,\n  TabBarDirective\n];\n\nconst NotStandaloneComponents = [\n  UmDefaultControlValueAccessor,\n  UmCheckControlValueAccessor,\n  UmRadioControlValueAccessor,\n  UmChipFieldControlValueAccessor,\n  UmTypeaheadControlValueAccessor,\n  UmSelectControlValueAccessor,\n  UmSelectOption,\n];\n\nexport { RippleModule } from './ripple/ripple.module';\nexport { RippleDirective } from './ripple/ripple.directive';\n\nexport { TextFieldModule } from './text-field/text-field.module';\nexport { TextInputDirective } from './text-field/text-input.directive';\n\nexport { FormFieldComponent, FORM_FIELD_DEFAULT_APPEARANCE } from './form-field/form-field.component';\nexport { LabelDirective } from './form-field/label.directive';\nexport { FormFieldModule } from './form-field/form-field.module';\nexport { FormFieldAppearance } from './form-field/form-field-appearance';\n\nexport { InputBaseComponent } from './shared/input-base.component';\nexport { TextInputBase } from './shared/text-input-base';\n\nexport * from './dialog/dialog.module';\n\nexport {\n  Highlight,\n  TypeaheadModule,\n  TypeaheadConfig,\n  TypeaheadSelectItemEvent,\n  Typeahead\n} from './typeahead/typeahead.module';\n\nexport {\n  DatepickerModule,\n  DatepickerComponent,\n  DatepickerInputComponent,\n  DatepickerAdapter,\n  DefaultDatepickerAdapter,\n  DatepickerConfig,\n  DATEPICKER_DEFAULT_OPTIONS,\n  Month\n} from './datepicker/datepicker.module';\n\nexport {\n  CollapseModule,\n  CollapseComponent\n} from './collapse/collapse.module';\n\n\nexport {\n  ExpansionPanelModule,\n  ExpansionPanelComponent,\n  ExpansionPanelContainerComponent\n} from './expansion-panel/expansion-panel.module';\n\nexport * from './slider/slider.module';\nexport * from './dialog/confirm-dialog/confirm-dialog-ref';\nexport * from './dialog/confirm-dialog/confirm-dialog.service';\nexport * from './snackbar/snackbar.service';\nexport {SnackbarDuration} from '@universal-material/web';\nexport * from './snackbar/snackbar-config.model';\nexport * from './floating-action-behavior/floating-action-behavior.module';\n\nexport * from './tab-bar/tab-bar.directive';\nexport * from './value-accessors/default-control-value-accessor';\nexport * from './value-accessors/check-control-value-accessor';\nexport * from './value-accessors/radio-control-value-accessor';\nexport * from './value-accessors/chip-field-control-value-accessor';\nexport * from './value-accessors/typeahead-control-value-accessor';\nexport * from './value-accessors/select-control-value-accessor';\n\n@NgModule({\n  declarations: NotStandaloneComponents,\n  imports: UniversalMaterialModules,\n  exports: [...UniversalMaterialModules, ...NotStandaloneComponents]\n})\nexport class UniversalMaterialModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.RippleDirective","i1","i2.FormFieldComponent","i1.DialogStackService","i1.DialogService","i1.DefaultDatepickerAdapter","i1.DatepickerBaseComponent","i2","i3.RippleDirective","i1.DatepickerContentComponent","i3.DropdownDirective","i4.DropdownMenuDirective","i5.DatepickerContentComponent","i2.CollapseComponent"],"mappings":"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"}