{"version":3,"file":"w11k-ngx-select.mjs","sources":["../../../../libs/ngx-select/src/lib/core/ngx-select.model.ts","../../../../libs/ngx-select/src/lib/core/ngx-select.core.ts","../../../../libs/ngx-select/src/lib/core/ngx-select-intl.service.ts","../../../../libs/ngx-select/src/lib/ngx-select-material/overlay/ngx-select-material-overlay.component.ts","../../../../libs/ngx-select/src/lib/ngx-select-material/overlay/ngx-select-material-overlay.component.html","../../../../libs/ngx-select/src/lib/ngx-select-material/ngx-select-material.component.ts","../../../../libs/ngx-select/src/lib/ngx-select-material/ngx-select-material.component.html","../../../../libs/ngx-select/src/lib/ngx-select.module.ts","../../../../libs/ngx-select/src/w11k-ngx-select.ts"],"sourcesContent":["export interface NgxSelectModel<T> {\n  label: string;\n  value: T;\n}\n\nexport enum NgxSelectToggleState {\n  ALL = 'all',\n  NONE = 'none'\n}\n","import { NgxSelectModel, NgxSelectToggleState } from './ngx-select.model';\nimport { AbstractControl, ControlValueAccessor, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { Directive, EventEmitter, OnDestroy } from '@angular/core';\nimport { ReplaySubject, Subscription } from 'rxjs';\nimport { NgxSelectIntlService } from './ngx-select-intl.service';\n\n@Directive()\nexport abstract class NgxSelect<T> implements OnDestroy, ControlValueAccessor {\n  private _originalOptions: NgxSelectModel<T>[] = [];\n  private filterSubscription: Subscription;\n  private checkboxGroupSubscription: Subscription = new Subscription();\n  private lastFilterQuery = '';\n\n  visibleOptions$: ReplaySubject<NgxSelectModel<T>[]> = new ReplaySubject(1);\n  filterControl: UntypedFormControl = new UntypedFormControl('');\n  checkboxGroup: UntypedFormGroup = new UntypedFormGroup({});\n  visible = false;\n  placeholder: string | undefined = this.intlService.searchFieldPlaceholder;\n  visiblePlaceholder = '';\n  changeToggleState: EventEmitter<NgxSelectToggleState> = new EventEmitter<NgxSelectToggleState>();\n  isDisabled = false;\n\n  protected constructor(protected intlService: NgxSelectIntlService) {\n    this.visibleOptions$.next([]);\n    this.filterSubscription = this.filterControl.valueChanges.pipe(\n      // debounceTime(300),\n    ).subscribe(filterQuery => {\n      const filteredOptions = this.filterOptions(this._originalOptions, filterQuery);\n      this.visibleOptions$.next(filteredOptions);\n    });\n  }\n\n  ngOnDestroy() {\n    this.filterSubscription.unsubscribe();\n    this.checkboxGroupSubscription.unsubscribe();\n  }\n\n  toggleVisibility(): void {\n    this.visible = !this.visible;\n  }\n\n  toggleAllNoneSelected() {\n    if (!this.isDisabled) {\n      const formControlKeys = this._originalOptions.map(item => item.label);\n      const selectedLenght = formControlKeys.filter(label => {\n        const formControl: AbstractControl | null = this.checkboxGroup.controls[label];\n        if (formControl === null) {\n          return false;\n        } else {\n          return formControl.value === true;\n        }\n      }).length;\n\n      if (this._originalOptions.length === selectedLenght) {\n        const newValues: {[x: string]: boolean} = formControlKeys.map(label => ({[label]: false}))\n          .reduce((prev, curr) => {\n            return {\n              ...prev,\n              ...curr,\n            };\n          }, {});\n        this.checkboxGroup.setValue( newValues);\n        this.changeToggleState.emit(NgxSelectToggleState.NONE);\n      } else {\n        const newValues: {[x: string]: boolean} = formControlKeys.map(label => ({[label]: true}))\n          .reduce((prev, curr) => {\n            return {\n              ...prev,\n              ...curr,\n            };\n          }, {});\n        this.checkboxGroup.setValue( newValues);\n        this.changeToggleState.emit(NgxSelectToggleState.ALL);\n      }\n    }\n  }\n\n  filterOptions(options: NgxSelectModel<T>[], filterQuery: string): NgxSelectModel<T>[] {\n    const filterToLowerCase = filterQuery.toLowerCase();\n    this.lastFilterQuery = filterToLowerCase;\n    return options.filter(item => item.label.toLowerCase().includes(filterToLowerCase));\n  }\n\n  private setVisibleOptions(value: NgxSelectModel<T>[]) {\n    const filteredOptions = this.filterOptions(value, this.lastFilterQuery);\n    this.visibleOptions$.next(filteredOptions);\n  }\n\n  private calculateFormGroup(values: NgxSelectModel<T>[]) {\n    const formControlsArr: {[label: string]: UntypedFormControl}[] = values.map(value => ({ [value.label]: new UntypedFormControl()}));\n    const formControls: {[label: string]: UntypedFormControl} = formControlsArr.reduce((prev, curr) => {\n      return {\n        ...prev,\n        ...curr,\n      };\n    }, {});\n    this.checkboxGroup = new UntypedFormGroup(formControls);\n    this.checkboxGroupSubscription.unsubscribe();\n    this.checkboxGroupSubscription = this.checkboxGroup.valueChanges.subscribe(data => {\n      const keys = Object.keys(data);\n      const placeHolderKeys = keys.filter(key => data[key] !== null && data[key] === true);\n      this.visiblePlaceholder = this.intlService.calculatePlaceHolder(placeHolderKeys, keys.length, this.placeholder);\n      this.propagateChange(data);\n    });\n  }\n\n  setOriginalOptions(value: NgxSelectModel<T>[]) {\n    this._originalOptions = value;\n    this.setVisibleOptions(value);\n    this.calculateFormGroup(value);\n  }\n\n  get originalOptions() {\n    return this._originalOptions;\n  }\n\n  resetFilter() {\n    this.filterControl.reset('');\n  }\n\n\n  propagateChange = (_: NgxSelectModel<T>[]) => {\n  };\n\n  registerOnChange(fn: (_: NgxSelectModel<T>[]) => any): void {\n    this.propagateChange = fn;\n  }\n\n  registerOnTouched(fn: NgxSelectModel<T>[]): void {\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.isDisabled = isDisabled;\n    if (isDisabled) {\n      this.checkboxGroup.disable();\n    } else {\n      this.checkboxGroup.enable();\n    }\n  }\n\n  writeValue(obj: {[label: string]: boolean | null} | null | undefined): void {\n    this.checkboxGroup.patchValue(obj || {});\n  }\n\n\n}\n","import { Injectable, InjectionToken, Type } from '@angular/core';\n\nexport interface NgxSelectIntlService {\n  allNoneSelect: string;\n  filterPlaceholder: string;\n  searchFieldPlaceholder: string;\n  selected: string;\n  allSelected: string;\n  calculatePlaceHolder(selectedLabels: string[], totalAmountOfLabels: number, originalPlaceholder: string | undefined): string;\n}\n\nexport const NGX_SELECT_INTL_SERVICE = new InjectionToken<NgxSelectIntlService>('NGX_SELECT_INTL_SERVICE');\n\nexport interface NgxSelectConfig {\n  intlService: Type<NgxSelectIntlService>;\n}\n\n@Injectable()\nexport class DefaultNgxSelectIntlService implements NgxSelectIntlService {\n\n  allNoneSelect =  'all / none';\n  filterPlaceholder = 'Filter';\n  searchFieldPlaceholder = 'Search';\n  selected = 'selected';\n  allSelected = 'all';\n\n  constructor() { }\n\n  calculatePlaceHolder(selectedLabels: string[], totalAmountOfLabels: number, originalPlaceholder: string | undefined) {\n\n    if (selectedLabels.length === 0) {\n      return !!originalPlaceholder ? originalPlaceholder : this.searchFieldPlaceholder;\n    } else if (selectedLabels.length <= 3) {\n      return `${selectedLabels.join(', ')} ${this.selected}`;\n    } else if (selectedLabels.length === totalAmountOfLabels) {\n      return this.allSelected;\n    } else {\n      return `${selectedLabels.length} ${this.selected}`;\n    }\n  }\n}\n","import { Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { NgxSelectModel } from '../../core/ngx-select.model';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { Observable, of } from 'rxjs';\nimport { NGX_SELECT_INTL_SERVICE, NgxSelectIntlService } from '../../core/ngx-select-intl.service';\n\n@Component({\n  selector: 'ngx-select-overlay',\n  templateUrl: './ngx-select-material-overlay.component.html',\n  styleUrls: ['./ngx-select-material-overlay.component.scss']\n})\nexport class NgxSelectMaterialOverlayComponent<T> {\n\n  @Output() resetFilter: EventEmitter<void> = new EventEmitter();\n  @Output() toggleSelected: EventEmitter<void> = new EventEmitter();\n  @Input() options$: Observable<NgxSelectModel<T>[]> = of([]);\n  @Input() isDisabled = false;\n\n  filterControl: UntypedFormControl = new UntypedFormControl('');\n  checkboxGroup: UntypedFormGroup = new UntypedFormGroup({});\n\n  constructor(@Inject(NGX_SELECT_INTL_SERVICE) private intlService: NgxSelectIntlService) {\n  }\n\n\n  localResetFilter() {\n    this.filterControl.reset('');\n    this.resetFilter.emit();\n  }\n\n  getAllNoneSelectLabel(): string {\n    return this.intlService.allNoneSelect;\n  }\n\n  getFilterPlaceHolder(): string {\n    return this.intlService.filterPlaceholder;\n  }\n}\n","<div>\n  <mat-form-field>\n    <input matInput type=\"text\" [placeholder]=\"getFilterPlaceHolder()\" [formControl]=\"filterControl\">\n    <button mat-icon-button matSuffix (click)=\"localResetFilter()\">\n      <mat-icon>close</mat-icon>\n    </button>\n  </mat-form-field>\n</div>\n<button mat-raised-button (click)=\"toggleSelected.emit()\" class=\"all-button\" [disabled]=\"isDisabled\">{{ getAllNoneSelectLabel() }}</button>\n<div class=\"checkbox-container\">\n  <ng-container [formGroup]=\"checkboxGroup\" *ngFor=\"let value of (options$ | async); index as i\">\n    <mat-checkbox [formControl]=\"$any(checkboxGroup.controls[value.label])\">{{value.label}}\n    </mat-checkbox>\n  </ng-container>\n</div>\n","import { Component, ElementRef, EventEmitter, forwardRef, Inject, Input, OnDestroy, Output, ViewEncapsulation } from '@angular/core';\nimport { NgxSelect } from '../core/ngx-select.core';\nimport { NgxSelectModel, NgxSelectToggleState } from '../core/ngx-select.model';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { NgxSelectMaterialOverlayComponent } from './overlay/ngx-select-material-overlay.component';\nimport { Subscription } from 'rxjs';\nimport { NGX_SELECT_INTL_SERVICE, NgxSelectIntlService } from '../core/ngx-select-intl.service';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n  selector: 'ngx-select',\n  templateUrl: './ngx-select-material.component.html',\n  styleUrls: ['./ngx-select-material.component.scss'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => NgxSelectMaterialComponent),\n      multi: true,\n    },\n  ],\n  encapsulation: ViewEncapsulation.None\n})\nexport class NgxSelectMaterialComponent<T> extends NgxSelect<T> implements OnDestroy {\n\n  @Input()\n  set options(value: NgxSelectModel<T>[]) {\n    super.setOriginalOptions(value);\n  }\n\n  @Input() override placeholder: string | undefined;\n\n  @Output() override changeToggleState: EventEmitter<NgxSelectToggleState> = new EventEmitter<NgxSelectToggleState>();\n\n  overlayRef: OverlayRef;\n  subscriptions: Subscription[] = [];\n\n  constructor(private overlay: Overlay,\n              private elementRef: ElementRef,\n              @Inject(NGX_SELECT_INTL_SERVICE) intlService: NgxSelectIntlService) {\n    super(intlService);\n    const positionStrategy = this.overlay.position()\n      .flexibleConnectedTo(elementRef)\n      .withPositions([{\n        originX: 'start',\n        originY: 'center',\n        overlayX: 'start',\n        overlayY: 'top'\n      }])\n      .withDefaultOffsetY(20)\n      .withPush(true);\n\n    const scrollStrategy = this.overlay.scrollStrategies.reposition();\n\n    this.overlayRef = this.overlay.create({\n      positionStrategy,\n      hasBackdrop: true,\n      backdropClass: 'backdrop',\n      scrollStrategy,\n    });\n  }\n\n  override ngOnDestroy() {\n    this.subscriptions.map(sub => sub.unsubscribe());\n  }\n\n  override toggleVisibility(): void {\n    if (this.visible) {\n      this.subscriptions.map(sub => sub.unsubscribe());\n      this.subscriptions = [];\n      this.overlayRef.detach();\n    } else {\n      const overlayPortal = new ComponentPortal(NgxSelectMaterialOverlayComponent);\n\n      const containerRef = this.overlayRef.attach(overlayPortal);\n\n      const overlayInstance = containerRef.instance;\n\n      overlayInstance.options$ = this.visibleOptions$;\n      overlayInstance.filterControl = this.filterControl;\n      overlayInstance.checkboxGroup = this.checkboxGroup;\n      overlayInstance.isDisabled = this.isDisabled;\n      const toggleSub = overlayInstance.toggleSelected.subscribe(() => {\n        this.toggleAllNoneSelected();\n      });\n      const resetSub = overlayInstance.resetFilter.subscribe(() => {\n        this.resetFilter();\n      });\n\n      const backDropClick = this.overlayRef.backdropClick().subscribe(() => {\n        this.toggleVisibility();\n      });\n\n      this.subscriptions = this.subscriptions.concat([toggleSub, resetSub, backDropClick]);\n    }\n\n    super.toggleVisibility();\n  }\n}\n","<mat-form-field [title]=\"visiblePlaceholder\">\n  <input matInput readonly (click)=\"toggleVisibility()\" type=\"text\" [placeholder]=\"visiblePlaceholder\">\n</mat-form-field>\n<button mat-icon-button (click)=\"toggleVisibility()\">\n  <mat-icon>{{ visible ? 'expand_less' : 'expand_more'}}</mat-icon>\n</button>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgxSelectMaterialComponent } from './ngx-select-material/ngx-select-material.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button'\nimport { MatInputModule } from '@angular/material/input'\nimport { MatCheckboxModule } from '@angular/material/checkbox'\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { NgxSelectMaterialOverlayComponent } from './ngx-select-material/overlay/ngx-select-material-overlay.component';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { DefaultNgxSelectIntlService, NGX_SELECT_INTL_SERVICE, NgxSelectConfig } from './core/ngx-select-intl.service';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    MatInputModule,\n    MatButtonModule,\n    MatIconModule,\n    MatCheckboxModule,\n    OverlayModule,\n    ReactiveFormsModule,\n  ],\n  declarations: [NgxSelectMaterialComponent, NgxSelectMaterialOverlayComponent],\n  exports: [NgxSelectMaterialComponent]\n})\nexport class NgxSelectModule {\n  static forRoot(config?: NgxSelectConfig): ModuleWithProviders<NgxSelectModule> {\n    return {\n      ngModule: NgxSelectModule,\n      providers: [\n        { provide: NGX_SELECT_INTL_SERVICE, useClass: config && config.intlService || DefaultNgxSelectIntlService }\n      ]\n    };\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}