{"version":3,"file":"mtxSelect.mjs","sources":["../../../projects/extensions/select/option.ts","../../../projects/extensions/select/select-intl.ts","../../../projects/extensions/select/templates.ts","../../../projects/extensions/select/select.ts","../../../projects/extensions/select/select.html","../../../projects/extensions/select/select-module.ts","../../../projects/extensions/select/mtxSelect.ts"],"sourcesContent":["import {\n  AfterViewChecked,\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  Input,\n  OnChanges,\n  OnDestroy,\n  SimpleChanges,\n  booleanAttribute,\n  inject,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Component({\n  selector: 'mtx-option',\n  exportAs: 'mtxOption',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <ng-content></ng-content>\n  `,\n})\nexport class MtxOption implements OnChanges, AfterViewChecked, OnDestroy {\n  elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n  @Input() value: any;\n\n  @Input({ transform: booleanAttribute }) disabled = false;\n\n  get label() {\n    return (this.elementRef.nativeElement.textContent || '').trim();\n  }\n  private _previousLabel?: string;\n\n  readonly stateChange$ = new Subject<{\n    value: any;\n    disabled: boolean;\n    label?: string;\n  }>();\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes.disabled) {\n      this.stateChange$.next({\n        value: this.value,\n        disabled: this.disabled,\n      });\n    }\n  }\n\n  ngAfterViewChecked() {\n    if (this.label !== this._previousLabel) {\n      this._previousLabel = this.label;\n      this.stateChange$.next({\n        value: this.value,\n        disabled: this.disabled,\n        label: this.elementRef.nativeElement.innerHTML,\n      });\n    }\n  }\n\n  ngOnDestroy() {\n    this.stateChange$.complete();\n  }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { MTX_SELECT_DEFAULT_OPTIONS, MtxSelectDefaultOptions } from './select';\n\n@Injectable({ providedIn: 'root' })\nexport class MtxSelectIntl {\n  private _defaultOptions = inject<MtxSelectDefaultOptions>(MTX_SELECT_DEFAULT_OPTIONS, {\n    optional: true,\n  });\n\n  /**\n   * Stream to emit from when labels are changed. Use this to notify components when the labels have\n   * changed after initialization.\n   */\n  readonly changes = new Subject<void>();\n\n  placeholder = this._defaultOptions?.placeholder;\n  notFoundText = this._defaultOptions?.notFoundText ?? 'No items found';\n  typeToSearchText = this._defaultOptions?.typeToSearchText ?? 'Type to search';\n  addTagText = this._defaultOptions?.addTagText ?? 'Add item';\n  loadingText = this._defaultOptions?.loadingText ?? 'Loading...';\n  clearAllText = this._defaultOptions?.clearAllText ?? 'Clear all';\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({ selector: '[ng-option-tmp]' })\nexport class MtxSelectOptionTemplate {\n  template = inject<TemplateRef<any>>(TemplateRef);\n}\n\n@Directive({ selector: '[ng-optgroup-tmp]' })\nexport class MtxSelectOptgroupTemplate {\n  template = inject<TemplateRef<any>>(TemplateRef);\n}\n\n@Directive({ selector: '[ng-label-tmp]' })\nexport class MtxSelectLabelTemplate {\n  template = inject<TemplateRef<any>>(TemplateRef);\n}\n\n@Directive({ selector: '[ng-multi-label-tmp]' })\nexport class MtxSelectMultiLabelTemplate {\n  template = inject<TemplateRef<any>>(TemplateRef);\n}\n\n@Directive({ selector: '[ng-header-tmp]' })\nexport class MtxSelectHeaderTemplate {\n  template = inject<TemplateRef<any>>(TemplateRef);\n}\n\n@Directive({ selector: '[ng-footer-tmp]' })\nexport class MtxSelectFooterTemplate {\n  template = inject<TemplateRef<any>>(TemplateRef);\n}\n\n@Directive({ selector: '[ng-notfound-tmp]' })\nexport class MtxSelectNotFoundTemplate {\n  template = inject<TemplateRef<any>>(TemplateRef);\n}\n\n@Directive({ selector: '[ng-typetosearch-tmp]' })\nexport class MtxSelectTypeToSearchTemplate {\n  template = inject<TemplateRef<any>>(TemplateRef);\n}\n\n@Directive({ selector: '[ng-loadingtext-tmp]' })\nexport class MtxSelectLoadingTextTemplate {\n  template = inject<TemplateRef<any>>(TemplateRef);\n}\n\n@Directive({ selector: '[ng-tag-tmp]' })\nexport class MtxSelectTagTemplate {\n  template = inject<TemplateRef<any>>(TemplateRef);\n}\n\n@Directive({ selector: '[ng-loadingspinner-tmp]' })\nexport class MtxSelectLoadingSpinnerTemplate {\n  template = inject<TemplateRef<any>>(TemplateRef);\n}\n\n@Directive({ selector: '[ng-placeholder-tmp]' })\nexport class MtxSelectPlaceholderTemplate {\n  template = inject<TemplateRef<any>>(TemplateRef);\n}\n\n@Directive({ selector: '[ng-clearbutton-tmp]' })\nexport class MtxSelectClearbuttonTemplate {\n  template = inject<TemplateRef<any>>(TemplateRef);\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ContentChildren,\n  DOCUMENT,\n  DoCheck,\n  ElementRef,\n  EventEmitter,\n  InjectionToken,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n  QueryList,\n  TemplateRef,\n  ViewChild,\n  ViewEncapsulation,\n  booleanAttribute,\n  inject,\n} from '@angular/core';\nimport {\n  AbstractControl,\n  ControlValueAccessor,\n  FormGroupDirective,\n  FormsModule,\n  NgControl,\n  NgForm,\n  Validators,\n} from '@angular/forms';\nimport { ErrorStateMatcher, _ErrorStateTracker } from '@angular/material/core';\nimport { MAT_FORM_FIELD, MatFormField, MatFormFieldControl } from '@angular/material/form-field';\nimport { NgSelectComponent, NgSelectModule } from '@ng-select/ng-select';\nimport { Subject, Subscription, merge } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\nimport { MtxOption } from './option';\nimport { MtxSelectIntl } from './select-intl';\nimport {\n  MtxSelectClearbuttonTemplate,\n  MtxSelectFooterTemplate,\n  MtxSelectHeaderTemplate,\n  MtxSelectLabelTemplate,\n  MtxSelectLoadingSpinnerTemplate,\n  MtxSelectLoadingTextTemplate,\n  MtxSelectMultiLabelTemplate,\n  MtxSelectNotFoundTemplate,\n  MtxSelectOptgroupTemplate,\n  MtxSelectOptionTemplate,\n  MtxSelectPlaceholderTemplate,\n  MtxSelectTagTemplate,\n  MtxSelectTypeToSearchTemplate,\n} from './templates';\n\nexport type DropdownPosition = 'bottom' | 'top' | 'auto';\nexport type AddTagFn = (term: string) => any;\nexport type CompareWithFn = (a: any, b: any) => boolean;\nexport type GroupValueFn = (\n  key: string | Record<string, any>,\n  children: any[]\n) => string | Record<string, any>;\nexport type SearchFn = (term: string, item: any) => boolean;\nexport type TrackByFn = (item: any) => any;\n\n/**\n * Represents the default options for the select that can be configured\n * using the `MTX_SELECT_DEFAULT_OPTIONS` injection token.\n */\nexport interface MtxSelectDefaultOptions {\n  placeholder?: string;\n  notFoundText?: string;\n  typeToSearchText?: string;\n  addTagText?: string;\n  loadingText?: string;\n  clearAllText?: string;\n  appendTo?: string;\n  bindValue?: string;\n  bindLabel?: string;\n  openOnEnter?: boolean;\n  clearSearchOnAdd?: boolean;\n  virtualScroll?: boolean;\n  fixedPlaceholder?: boolean;\n  deselectOnClick?: boolean;\n}\n\n/** Injection token that can be used to specify default select options. */\nexport const MTX_SELECT_DEFAULT_OPTIONS = new InjectionToken<MtxSelectDefaultOptions>(\n  'mtx-select-default-options'\n);\n\nlet nextUniqueId = 0;\n\n@Component({\n  selector: 'mtx-select',\n  exportAs: 'mtxSelect',\n  host: {\n    'role': 'combobox',\n    'aria-autocomplete': 'none',\n    '[attr.id]': 'id',\n    '[attr.aria-expanded]': 'panelOpen',\n    '[attr.aria-label]': 'ariaLabel || null',\n    '[attr.aria-labelledby]': '_getAriaLabelledby()',\n    '[attr.aria-describedby]': '_ariaDescribedby || null',\n    '[attr.aria-required]': 'required.toString()',\n    '[attr.aria-disabled]': 'disabled.toString()',\n    '[attr.aria-invalid]': 'errorState',\n    '[class.mtx-select-floating]': 'shouldLabelFloat',\n    '[class.mtx-select-disabled]': 'disabled',\n    '[class.mtx-select-invalid]': 'errorState',\n    '[class.mtx-select-required]': 'required',\n    '[class.mtx-select-empty]': 'empty',\n    '[class.mtx-select-multiple]': 'multiple',\n    'class': 'mtx-select',\n  },\n  templateUrl: './select.html',\n  styleUrl: './select.scss',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: MatFormFieldControl, useExisting: MtxSelect }],\n  imports: [NgSelectModule, FormsModule, NgTemplateOutlet],\n})\nexport class MtxSelect\n  implements\n    OnInit,\n    OnDestroy,\n    DoCheck,\n    AfterViewInit,\n    ControlValueAccessor,\n    MatFormFieldControl<any>\n{\n  protected _intl = inject(MtxSelectIntl);\n  protected _changeDetectorRef = inject(ChangeDetectorRef);\n  protected _elementRef = inject(ElementRef);\n  protected _focusMonitor = inject(FocusMonitor);\n  ngControl = inject(NgControl, { optional: true, self: true });\n  protected _parentFormField? = inject<MatFormField>(MAT_FORM_FIELD, { optional: true });\n  protected _defaultOptions? = inject<MtxSelectDefaultOptions>(MTX_SELECT_DEFAULT_OPTIONS, {\n    optional: true,\n  });\n  private _document = inject(DOCUMENT);\n\n  @ViewChild('ngSelect', { static: true }) ngSelect!: NgSelectComponent;\n\n  @ContentChild(MtxSelectOptionTemplate, { read: TemplateRef })\n  optionTemplate!: TemplateRef<any>;\n  @ContentChild(MtxSelectOptgroupTemplate, { read: TemplateRef })\n  optgroupTemplate!: TemplateRef<any>;\n  @ContentChild(MtxSelectLabelTemplate, { read: TemplateRef })\n  labelTemplate!: TemplateRef<any>;\n  @ContentChild(MtxSelectMultiLabelTemplate, { read: TemplateRef })\n  multiLabelTemplate!: TemplateRef<any>;\n  @ContentChild(MtxSelectHeaderTemplate, { read: TemplateRef })\n  headerTemplate!: TemplateRef<any>;\n  @ContentChild(MtxSelectFooterTemplate, { read: TemplateRef })\n  footerTemplate!: TemplateRef<any>;\n  @ContentChild(MtxSelectNotFoundTemplate, { read: TemplateRef })\n  notFoundTemplate!: TemplateRef<any>;\n  @ContentChild(MtxSelectTypeToSearchTemplate, { read: TemplateRef })\n  typeToSearchTemplate!: TemplateRef<any>;\n  @ContentChild(MtxSelectLoadingTextTemplate, { read: TemplateRef })\n  loadingTextTemplate!: TemplateRef<any>;\n  @ContentChild(MtxSelectTagTemplate, { read: TemplateRef })\n  tagTemplate!: TemplateRef<any>;\n  @ContentChild(MtxSelectLoadingSpinnerTemplate, { read: TemplateRef })\n  loadingSpinnerTemplate!: TemplateRef<any>;\n  @ContentChild(MtxSelectPlaceholderTemplate, { read: TemplateRef })\n  placeholderTemplate!: TemplateRef<any>;\n  @ContentChild(MtxSelectClearbuttonTemplate, { read: TemplateRef })\n  clearbuttonTemplate!: TemplateRef<any>;\n\n  @ContentChildren(MtxOption, { descendants: true })\n  mtxOptions!: QueryList<MtxOption>;\n\n  @Input() addTag: boolean | AddTagFn = false;\n  @Input() addTagText?: string;\n  @Input() appearance = 'underline';\n  @Input() appendTo = this._defaultOptions?.appendTo ?? 'body';\n  @Input() bindLabel = this._defaultOptions?.bindLabel;\n  @Input() bindValue = this._defaultOptions?.bindValue;\n  @Input({ transform: booleanAttribute }) closeOnSelect = true;\n  @Input() clearAllText?: string;\n  @Input({ transform: booleanAttribute }) clearable = true;\n  @Input({ transform: booleanAttribute }) clearOnBackspace = true;\n  @Input() compareWith!: CompareWithFn;\n  @Input() dropdownPosition: DropdownPosition = 'auto';\n  @Input() groupBy!: string | ((value: any) => any);\n  @Input() groupValue!: GroupValueFn;\n  @Input() bufferAmount = 4;\n  @Input({ transform: booleanAttribute }) selectableGroup = false;\n  @Input({ transform: booleanAttribute }) selectableGroupAsModel = true;\n  @Input({ transform: booleanAttribute }) hideSelected = false;\n  @Input({ transform: booleanAttribute }) loading = false;\n  @Input() loadingText?: string;\n  @Input() labelForId: string | null = null;\n  @Input({ transform: booleanAttribute }) markFirst = true;\n  @Input() maxSelectedItems!: number;\n  @Input({ transform: booleanAttribute }) multiple = false;\n  @Input() notFoundText?: string;\n  @Input({ transform: booleanAttribute }) searchable = true;\n  @Input({ transform: booleanAttribute }) readonly = false;\n  @Input() searchFn: SearchFn | null = null;\n  @Input({ transform: booleanAttribute }) searchWhileComposing = true;\n  @Input({ transform: booleanAttribute }) selectOnTab = false;\n  @Input() trackByFn: TrackByFn | null = null;\n  @Input() inputAttrs: { [key: string]: string } = {};\n  @Input() tabIndex!: number;\n  @Input({ transform: booleanAttribute }) openOnEnter = this._defaultOptions?.openOnEnter ?? true;\n  @Input() minTermLength = 0;\n  @Input({ transform: booleanAttribute }) editableSearchTerm = false;\n  @Input() keyDownFn = (_: KeyboardEvent) => true;\n  @Input({ transform: booleanAttribute }) virtualScroll =\n    this._defaultOptions?.virtualScroll ?? false;\n  @Input() typeToSearchText?: string;\n  @Input() typeahead!: Subject<string>;\n  @Input() isOpen?: boolean;\n  @Input({ transform: booleanAttribute }) fixedPlaceholder =\n    this._defaultOptions?.fixedPlaceholder ?? false;\n  @Input({ transform: booleanAttribute }) deselectOnClick =\n    this._defaultOptions?.deselectOnClick ?? false;\n\n  @Output('blur') blurEvent = new EventEmitter();\n  @Output('focus') focusEvent = new EventEmitter();\n  @Output('change') changeEvent = new EventEmitter();\n  @Output('open') openEvent = new EventEmitter();\n  @Output('close') closeEvent = new EventEmitter();\n  @Output('search') searchEvent = new EventEmitter<{ term: string; items: any[] }>();\n  @Output('clear') clearEvent = new EventEmitter();\n  @Output('add') addEvent = new EventEmitter();\n  @Output('remove') removeEvent = new EventEmitter();\n  @Output('scroll') scroll = new EventEmitter<{ start: number; end: number }>();\n  @Output('scrollToEnd') scrollToEnd = new EventEmitter();\n\n  @Input()\n  get clearSearchOnAdd() {\n    return this._clearSearchOnAdd ?? this.closeOnSelect;\n  }\n  set clearSearchOnAdd(value) {\n    this._clearSearchOnAdd = value;\n  }\n  private _clearSearchOnAdd = this._defaultOptions?.clearSearchOnAdd;\n\n  @Input()\n  get items() {\n    return this._items;\n  }\n  set items(value: any[]) {\n    this._itemsAreUsed = true;\n    this._items = value;\n  }\n  private _items: any[] = [];\n  private _itemsAreUsed = false;\n\n  /** Emits whenever the component is destroyed. */\n  private readonly _destroy$ = new Subject<void>();\n\n  /** Value of the select control. */\n  @Input()\n  get value(): any {\n    return this._value;\n  }\n  set value(newValue: any) {\n    const hasAssigned = this._assignValue(newValue);\n\n    if (hasAssigned) {\n      this._onChange(newValue);\n    }\n  }\n  private _value = null;\n\n  /** Implemented as part of MatFormFieldControl. */\n  readonly stateChanges: Subject<void> = new Subject<void>();\n\n  /** Unique id of the element. */\n  @Input()\n  get id(): string {\n    return this._id;\n  }\n  set id(value: string) {\n    this._id = value || this._uid;\n    this.stateChanges.next();\n  }\n  private _id!: string;\n\n  /** Unique id for this select. */\n  private _uid = `mtx-select-${nextUniqueId++}`;\n\n  /** Placeholder to be shown if value is empty. */\n  @Input()\n  get placeholder(): string {\n    return this._placeholder!;\n  }\n  set placeholder(value: string) {\n    this._placeholder = value;\n    this.stateChanges.next();\n  }\n  private _placeholder!: string;\n\n  /** Whether the select is focused. */\n  get focused(): boolean {\n    return this._focused;\n  }\n  private _focused = false;\n\n  /** Whether the select has a value. */\n  get empty(): boolean {\n    return this.value == null || (Array.isArray(this.value) && this.value.length === 0);\n  }\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  get shouldLabelFloat(): boolean {\n    return this.focused || !this.empty;\n  }\n\n  /** Whether the select is disabled. */\n  @Input({ transform: booleanAttribute })\n  disabled: boolean = false;\n\n  /** Whether the component is required. */\n  @Input({ transform: booleanAttribute })\n  get required(): boolean {\n    return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n  }\n  set required(value: boolean) {\n    this._required = value;\n    this.stateChanges.next();\n  }\n  private _required: boolean | undefined;\n\n  /** Object used to control when error messages are shown. */\n  @Input()\n  get errorStateMatcher() {\n    return this._errorStateTracker.matcher;\n  }\n  set errorStateMatcher(value: ErrorStateMatcher) {\n    this._errorStateTracker.matcher = value;\n  }\n\n  /** Aria label of the select. */\n  @Input('aria-label') ariaLabel: string = '';\n\n  /** Input that can be used to specify the `aria-labelledby` attribute. */\n  @Input('aria-labelledby') ariaLabelledby: string | null = null;\n\n  /** The aria-describedby attribute on the select for improved a11y. */\n  _ariaDescribedby: string | null = null;\n\n  /** A name for this control that can be used by `mat-form-field`. */\n  controlType = 'mtx-select';\n\n  /** `View -> model callback called when value changes` */\n  _onChange: (value: any) => void = () => {};\n\n  /** `View -> model callback called when select has been touched` */\n  _onTouched = () => {};\n\n  /** ID for the DOM node containing the select's value. */\n  _valueId = `mtx-select-value-${nextUniqueId++}`;\n\n  /** Whether or not the overlay panel is open. */\n  get panelOpen(): boolean {\n    return !!this.ngSelect.isOpen;\n  }\n\n  /**\n   * Keeps track of the previous form control assigned to the select.\n   * Used to detect if it has changed.\n   */\n  private _previousControl: AbstractControl | null | undefined;\n\n  /** Tracks the error state of the select. */\n  private _errorStateTracker: _ErrorStateTracker;\n\n  /** Whether the select is in an error state. */\n  get errorState() {\n    return this._errorStateTracker.errorState;\n  }\n  set errorState(value: boolean) {\n    this._errorStateTracker.errorState = value;\n  }\n\n  private _intlChangesSubscription = Subscription.EMPTY;\n\n  constructor() {\n    const _focusMonitor = this._focusMonitor;\n    const defaultErrorStateMatcher = inject(ErrorStateMatcher);\n    const parentForm = inject(NgForm, { optional: true });\n    const parentFormGroup = inject(FormGroupDirective, { optional: true });\n    const ngControl = this.ngControl;\n\n    this._intlChangesSubscription = this._intl.changes.subscribe(() => {\n      this._changeDetectorRef.detectChanges();\n    });\n\n    _focusMonitor.monitor(this._elementRef, true).subscribe(origin => {\n      if (this._focused && !origin) {\n        this._onTouched();\n      }\n      this._focused = !!origin;\n      this.stateChanges.next();\n    });\n\n    if (this.ngControl) {\n      // Note: we provide the value accessor through here, instead of\n      // the `providers` to avoid running into a circular import.\n      this.ngControl.valueAccessor = this;\n    }\n\n    this._errorStateTracker = new _ErrorStateTracker(\n      defaultErrorStateMatcher,\n      ngControl,\n      parentFormGroup,\n      parentForm,\n      this.stateChanges\n    );\n\n    // Force setter to be called in case id was not specified.\n    // eslint-disable-next-line no-self-assign\n    this.id = this.id;\n  }\n\n  ngOnInit() {\n    // Fix compareWith warning of undefined value\n    // https://github.com/ng-select/ng-select/issues/1537\n    if (this.compareWith) {\n      this.ngSelect.compareWith = this.compareWith;\n    }\n  }\n\n  ngAfterViewInit() {\n    if (!this._itemsAreUsed) {\n      this.ngSelect.escapeHTML = false;\n      this._setItemsFromMtxOptions();\n    }\n  }\n\n  ngDoCheck(): void {\n    if (this.ngControl) {\n      const ngControl = this.ngControl;\n      // The disabled state might go out of sync if the form group is swapped out. See #17860.\n      if (this._previousControl !== ngControl.control) {\n        if (\n          this._previousControl !== undefined &&\n          ngControl.disabled !== null &&\n          ngControl.disabled !== this.disabled\n        ) {\n          this.disabled = ngControl.disabled;\n        }\n\n        this._previousControl = ngControl.control;\n      }\n\n      this.updateErrorState();\n    }\n  }\n\n  ngOnDestroy() {\n    this._destroy$.next();\n    this._destroy$.complete();\n    this.stateChanges.complete();\n    this._focusMonitor.stopMonitoring(this._elementRef);\n    this._intlChangesSubscription.unsubscribe();\n  }\n\n  /** Gets the value for the `aria-labelledby` attribute of the inputs. */\n  _getAriaLabelledby() {\n    if (this.ariaLabel) {\n      return null;\n    }\n\n    const labelId = this._parentFormField?.getLabelId();\n    let value = (labelId ? labelId + ' ' : '') + this._valueId;\n\n    if (this.ariaLabelledby) {\n      value += ' ' + this.ariaLabelledby;\n    }\n\n    return value;\n  }\n\n  /** Implemented as part of MatFormFieldControl. */\n  setDescribedByIds(ids: string[]) {\n    this._ariaDescribedby = ids.length ? ids.join(' ') : null;\n  }\n\n  /**\n   * Disables the select. Part of the ControlValueAccessor interface required\n   * to integrate with Angular's core forms API.\n   *\n   * @param isDisabled Sets whether the component is disabled.\n   */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n    this._changeDetectorRef.markForCheck();\n    this.stateChanges.next();\n  }\n\n  /** Implemented as part of MatFormFieldControl. */\n  onContainerClick(event: MouseEvent) {\n    const target = event.target as HTMLElement;\n    if (!target.classList.contains('ng-arrow-wrapper')) {\n      this.focus();\n      this.open();\n    }\n  }\n\n  /**\n   * Sets the select's value. Part of the ControlValueAccessor interface\n   * required to integrate with Angular's core forms API.\n   *\n   * @param value New value to be written to the model.\n   */\n  writeValue(value: any): void {\n    this._assignValue(value);\n  }\n\n  /**\n   * Saves a callback function to be invoked when the select's value\n   * changes from user input. Part of the ControlValueAccessor interface\n   * required to integrate with Angular's core forms API.\n   *\n   * @param fn Callback to be triggered when the value changes.\n   */\n  registerOnChange(fn: any): void {\n    this._onChange = fn;\n  }\n\n  /**\n   * Saves a callback function to be invoked when the select is blurred\n   * by the user. Part of the ControlValueAccessor interface required\n   * to integrate with Angular's core forms API.\n   *\n   * @param fn Callback to be triggered when the component has been touched.\n   */\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  /** Refreshes the error state of the select. */\n  updateErrorState() {\n    this._errorStateTracker.updateErrorState();\n  }\n\n  /** Assigns a specific value to the select. Returns whether the value has changed. */\n  private _assignValue(newValue: any | any[]): boolean {\n    // Always re-assign an array, because it might have been mutated.\n    if (newValue !== this._value || (this.multiple && Array.isArray(newValue))) {\n      this._value = newValue;\n      this._changeDetectorRef.markForCheck();\n      return true;\n    }\n    return false;\n  }\n\n  /** NgSelect's `_setItemsFromNgOptions` */\n  private _setItemsFromMtxOptions() {\n    const mapMtxOptions = (options: QueryList<MtxOption>) => {\n      this.items = options.map(option => ({\n        $ngOptionValue: option.value,\n        $ngOptionLabel: option.elementRef.nativeElement.innerHTML,\n        disabled: option.disabled,\n      }));\n      this.ngSelect.itemsList.setItems(this.items);\n      if (this.ngSelect.hasValue) {\n        this.ngSelect.itemsList.mapSelectedItems();\n      }\n      this.ngSelect.detectChanges();\n    };\n\n    const handleOptionChange = () => {\n      const changedOrDestroyed = merge(this.mtxOptions.changes, this._destroy$);\n      merge(...this.mtxOptions.map(option => option.stateChange$))\n        .pipe(takeUntil(changedOrDestroyed))\n        .subscribe(option => {\n          const item = this.ngSelect.itemsList.findItem(option.value);\n          item.disabled = option.disabled;\n          item.label = option.label || item.label;\n          this.ngSelect.detectChanges();\n        });\n    };\n\n    this.mtxOptions.changes\n      .pipe(startWith(this.mtxOptions), takeUntil(this._destroy$))\n      .subscribe(options => {\n        mapMtxOptions(options);\n        handleOptionChange();\n      });\n  }\n\n  open() {\n    this.ngSelect.open();\n  }\n\n  close() {\n    this.ngSelect.close();\n  }\n\n  focus() {\n    this.ngSelect.focus();\n  }\n\n  blur() {\n    this.ngSelect.blur();\n  }\n\n  openChange() {\n    this.openEvent.emit();\n\n    // TODO: The ng-select has no `panelClass` prop, so we can add the theme color by the following way.\n    setTimeout(() => {\n      const dropdownEl = this._document.getElementById(this.ngSelect.dropdownId);\n      dropdownEl?.classList.add('mat-' + this._parentFormField?.color);\n    });\n  }\n}\n","<ng-select #ngSelect\n  [class.ng-select-invalid]=\"errorState\"\n  [(ngModel)]=\"value\"\n  [ngModelOptions]=\"{standalone: true}\"\n  [placeholder]=\"placeholder || _intl.placeholder!\"\n  [items]=\"items\"\n  [addTag]=\"addTag\"\n  [addTagText]=\"addTagText || _intl.addTagText\"\n  [appendTo]=\"appendTo\"\n  [appearance]=\"appearance\"\n  [bindLabel]=\"bindLabel!\"\n  [bindValue]=\"bindValue!\"\n  [closeOnSelect]=\"closeOnSelect\"\n  [clearAllText]=\"clearAllText || _intl.clearAllText\"\n  [clearable]=\"clearable\"\n  [clearOnBackspace]=\"clearOnBackspace\"\n  [dropdownPosition]=\"dropdownPosition\"\n  [groupBy]=\"groupBy\"\n  [groupValue]=\"groupValue\"\n  [bufferAmount]=\"bufferAmount\"\n  [hideSelected]=\"hideSelected\"\n  [isOpen]=\"isOpen\"\n  [inputAttrs]=\"inputAttrs\"\n  [loading]=\"loading\"\n  [loadingText]=\"loadingText || _intl.loadingText\"\n  [labelForId]=\"labelForId\"\n  [markFirst]=\"markFirst\"\n  [maxSelectedItems]=\"maxSelectedItems\"\n  [multiple]=\"multiple\"\n  [notFoundText]=\"notFoundText || _intl.notFoundText\"\n  [readonly]=\"readonly || disabled\"\n  [typeahead]=\"typeahead\"\n  [typeToSearchText]=\"typeToSearchText || _intl.typeToSearchText\"\n  [trackByFn]=\"trackByFn\"\n  [searchable]=\"searchable\"\n  [searchFn]=\"searchFn\"\n  [searchWhileComposing]=\"searchWhileComposing\"\n  [clearSearchOnAdd]=\"clearSearchOnAdd\"\n  [selectableGroup]=\"selectableGroup\"\n  [selectableGroupAsModel]=\"selectableGroupAsModel\"\n  [selectOnTab]=\"selectOnTab\"\n  [tabIndex]=\"tabIndex\"\n  [openOnEnter]=\"openOnEnter\"\n  [minTermLength]=\"minTermLength\"\n  [editableSearchTerm]=\"editableSearchTerm\"\n  [keyDownFn]=\"keyDownFn\"\n  [virtualScroll]=\"virtualScroll\"\n  [fixedPlaceholder]=\"fixedPlaceholder\"\n  [deselectOnClick]=\"deselectOnClick\"\n  (blur)=\"blurEvent.emit($event)\"\n  (focus)=\"focusEvent.emit($event)\"\n  (change)=\"changeEvent.emit($event)\"\n  (open)=\"openChange()\"\n  (close)=\"closeEvent.emit()\"\n  (search)=\"searchEvent.emit($event)\"\n  (clear)=\"clearEvent.emit($event)\"\n  (add)=\"addEvent.emit($event)\"\n  (remove)=\"removeEvent.emit($event)\"\n  (scroll)=\"scroll.emit($event)\"\n  (scrollToEnd)=\"scrollToEnd.emit()\">\n\n  @if (optionTemplate) {\n    <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\"\n      let-searchTerm=\"searchTerm\">\n      <ng-template [ngTemplateOutlet]=\"optionTemplate\"\n        [ngTemplateOutletContext]=\"{ item: item, item$: item$, index: index, searchTerm: searchTerm }\">\n      </ng-template>\n    </ng-template>\n  }\n\n  @if (optgroupTemplate) {\n    <ng-template ng-optgroup-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\"\n      let-searchTerm=\"searchTerm\">\n      <ng-template [ngTemplateOutlet]=\"optgroupTemplate\"\n        [ngTemplateOutletContext]=\"{ item: item, item$: item$, index: index, searchTerm: searchTerm }\">\n      </ng-template>\n    </ng-template>\n  }\n\n  @if (labelTemplate) {\n    <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\" let-label=\"label\">\n      <ng-template [ngTemplateOutlet]=\"labelTemplate\"\n        [ngTemplateOutletContext]=\"{ item: item, clear: clear, label: label }\">\n      </ng-template>\n    </ng-template>\n  }\n\n  @if (multiLabelTemplate) {\n    <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n      <ng-template [ngTemplateOutlet]=\"multiLabelTemplate\"\n        [ngTemplateOutletContext]=\"{ items: items, clear: clear }\">\n      </ng-template>\n    </ng-template>\n  }\n\n  @if (headerTemplate) {\n    <ng-template ng-header-tmp>\n      <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n    </ng-template>\n  }\n\n  @if (footerTemplate) {\n    <ng-template ng-footer-tmp>\n      <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n    </ng-template>\n  }\n\n  @if (notFoundTemplate) {\n    <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\n      <ng-template [ngTemplateOutlet]=\"notFoundTemplate\"\n        [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n      </ng-template>\n    </ng-template>\n  }\n\n  @if (typeToSearchTemplate) {\n    <ng-template ng-typetosearch-tmp>\n      <ng-template [ngTemplateOutlet]=\"typeToSearchTemplate\"></ng-template>\n    </ng-template>\n  }\n\n  @if (loadingTextTemplate) {\n    <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n      <ng-template [ngTemplateOutlet]=\"loadingTextTemplate\"\n        [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n      </ng-template>\n    </ng-template>\n  }\n\n  @if (tagTemplate) {\n    <ng-template ng-tag-tmp let-searchTerm=\"searchTerm\">\n      <ng-template [ngTemplateOutlet]=\"tagTemplate\"\n        [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n      </ng-template>\n    </ng-template>\n  }\n\n  @if (loadingSpinnerTemplate) {\n    <ng-template ng-loadingspinner-tmp>\n      <ng-template [ngTemplateOutlet]=\"loadingSpinnerTemplate\"></ng-template>\n    </ng-template>\n  }\n\n  @if (placeholderTemplate) {\n    <ng-template ng-placeholder-tmp>\n      <ng-template [ngTemplateOutlet]=\"placeholderTemplate\"></ng-template>\n    </ng-template>\n  }\n\n  @if (clearbuttonTemplate) {\n    <ng-template ng-clearbutton-tmp>\n      <ng-template [ngTemplateOutlet]=\"clearbuttonTemplate\"></ng-template>\n    </ng-template>\n  }\n  \n</ng-select>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nimport { MtxSelect } from './select';\nimport {\n  MtxSelectFooterTemplate,\n  MtxSelectHeaderTemplate,\n  MtxSelectLabelTemplate,\n  MtxSelectLoadingSpinnerTemplate,\n  MtxSelectLoadingTextTemplate,\n  MtxSelectMultiLabelTemplate,\n  MtxSelectNotFoundTemplate,\n  MtxSelectOptgroupTemplate,\n  MtxSelectOptionTemplate,\n  MtxSelectPlaceholderTemplate,\n  MtxSelectTagTemplate,\n  MtxSelectTypeToSearchTemplate,\n  MtxSelectClearbuttonTemplate,\n} from './templates';\nimport { MtxOption } from './option';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    FormsModule,\n    ReactiveFormsModule,\n    NgSelectModule,\n    MtxSelect,\n    MtxOption,\n    MtxSelectOptgroupTemplate,\n    MtxSelectOptionTemplate,\n    MtxSelectLabelTemplate,\n    MtxSelectMultiLabelTemplate,\n    MtxSelectHeaderTemplate,\n    MtxSelectFooterTemplate,\n    MtxSelectNotFoundTemplate,\n    MtxSelectTypeToSearchTemplate,\n    MtxSelectLoadingTextTemplate,\n    MtxSelectTagTemplate,\n    MtxSelectLoadingSpinnerTemplate,\n    MtxSelectPlaceholderTemplate,\n    MtxSelectClearbuttonTemplate,\n  ],\n  exports: [\n    MtxSelect,\n    MtxOption,\n    MtxSelectOptgroupTemplate,\n    MtxSelectOptionTemplate,\n    MtxSelectLabelTemplate,\n    MtxSelectMultiLabelTemplate,\n    MtxSelectHeaderTemplate,\n    MtxSelectFooterTemplate,\n    MtxSelectNotFoundTemplate,\n    MtxSelectTypeToSearchTemplate,\n    MtxSelectLoadingTextTemplate,\n    MtxSelectTagTemplate,\n    MtxSelectLoadingSpinnerTemplate,\n    MtxSelectPlaceholderTemplate,\n    MtxSelectClearbuttonTemplate,\n  ],\n})\nexport class MtxSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}