{"version":3,"file":"ironsource-fusion-ui-components-chip-filters-common-base.mjs","sources":["../../../projects/fusion-ui/components/chip-filters/common/base/chip-filters.base.component.ts","../../../projects/fusion-ui/components/chip-filters/common/base/ironsource-fusion-ui-components-chip-filters-common-base.ts"],"sourcesContent":["import {\n    AfterViewInit,\n    ChangeDetectorRef,\n    ContentChildren,\n    Directive,\n    EventEmitter,\n    Input,\n    OnDestroy,\n    Output,\n    QueryList,\n    Renderer2,\n    ViewChild\n} from '@angular/core';\nimport {ChipFilterComponent} from '@ironsource/fusion-ui/components/chip-filter';\nimport {BehaviorSubject, combineLatest, Observable, Subject} from 'rxjs';\nimport {delay, filter, takeUntil, tap} from 'rxjs/operators';\nimport {ChipType} from '@ironsource/fusion-ui/components/chip-filter/common/base';\nimport {FormControl} from '@angular/forms';\nimport {DropdownOption} from '@ironsource/fusion-ui/components/dropdown-option/entities';\nimport {SelectedFilters} from './chip-filters-entities';\n\n@Directive()\nexport abstract class ChipFiltersBaseComponent implements AfterViewInit, OnDestroy {\n    /** @internal */\n    @ContentChildren(ChipFilterComponent) set chipFilters(value: QueryList<ChipFilterComponent>) {\n        this._chipFilters = value;\n        this.setChipFilters();\n    }\n\n    get chipFilters(): QueryList<ChipFilterComponent> {\n        return this._chipFilters;\n    }\n\n    /** @internal */\n    @ViewChild('addFilter', {static: true}) addFilterComponent: any;\n\n    @Input() set disableAddFilter(val: boolean) {\n        this.disableAddFilter$.next(val);\n    }\n\n    @Input() testId: string;\n\n    @Input() set addFilterOptions(options: DropdownOption[]) {\n        this.optionsRef$.next(options);\n        this.options$.next(this.optionsRef$.getValue());\n    }\n\n    @Input() addFiltersTitle: string;\n\n    @Input() isSearch: boolean = false;\n\n    @Output() selectFilter = new EventEmitter<any>();\n\n    @Output() dynamicChipSelect = new EventEmitter<DropdownOption>();\n\n    @Output() removeSelection = new EventEmitter<any>();\n\n    /** @internal */\n    disableAddFilter$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(null);\n    /** @internal */\n    addFilterControl = new FormControl([]);\n    /** @internal */\n    optionsRef$ = new BehaviorSubject<DropdownOption[]>([]);\n    /** @internal */\n    options$ = new BehaviorSubject<DropdownOption[]>([]);\n    /** @internal */\n    addFilterIndex: number;\n\n    /** @internal */\n    addFilterIcon = 'tune';\n\n    private selectedFilters: SelectedFilters[] = [];\n    private preSelectedDynamicOptions: DropdownOption[] = [];\n\n    private addedFilters = [];\n\n    private onDestroy$ = new Subject<void>();\n\n    private _chipFilters;\n\n    constructor(private renderer: Renderer2, private cdr: ChangeDetectorRef) {}\n\n    ngAfterViewInit() {\n        this.initDynamicFiltersListeners();\n        this.checkForPreSelectedDynamic();\n    }\n\n    ngOnDestroy() {\n        this.onDestroy$.next();\n        this.onDestroy$.complete();\n    }\n\n    private setChipFilters() {\n        this.addFilterIndex = this.chipFilters.length;\n        this.setPreSelectedFilters();\n        this.orderChipFilters(this.chipFilters);\n        this.initListeners();\n    }\n\n    private initListeners(): void {\n        this.onTypeChipsChanges();\n\n        this.onSelectedValueListener();\n\n        this.onClosedChipListener();\n    }\n\n    private checkForPreSelectedDynamic() {\n        this.preSelectedDynamicOptions = this.chipFilters\n            .filter(chip => !!chip['chipSelectValue'] && chip.mode === 'dynamic')\n            .map(chip => {\n                const dynamicOptions = this.options$.getValue().filter(option => {\n                    return chip['chipSelectValue'].id === option.id;\n                });\n                return dynamicOptions.length ? dynamicOptions[0] : null;\n            })\n            .filter(Boolean);\n\n        if (this.preSelectedDynamicOptions.length) {\n            this.addFilterControl.setValue(this.preSelectedDynamicOptions);\n        }\n    }\n\n    private initDynamicFiltersListeners() {\n        this.addFilterControl.valueChanges\n            .pipe(\n                takeUntil(this.onDestroy$),\n                filter(options => Array.isArray(options)),\n                tap(options => this.dynamicChipSelect.emit(options[0])),\n                delay(50)\n            )\n            .subscribe((options: DropdownOption[]) => {\n                options.forEach(option => {\n                    this.openAddedDynamicFilter(option);\n                });\n            });\n    }\n\n    private onTypeChipsChanges(): void {\n        const chipTypes: Observable<ChipType>[] = this.chipFilters.map(chip => chip.chipType$.asObservable());\n        combineLatest(chipTypes)\n            .pipe(takeUntil(this.onDestroy$))\n            .subscribe(_ => {\n                this.chipFilters.notifyOnChanges();\n            });\n        this.chipFilters.changes.pipe(takeUntil(this.onDestroy$)).subscribe((chips: QueryList<ChipFilterComponent>) => {\n            this.orderChipFilters(chips);\n        });\n    }\n\n    private onSelectedValueListener(): void {\n        this.chipFilters.forEach(chip => {\n            chip.selectedChange.pipe(takeUntil(this.onDestroy$)).subscribe(val => {\n                const isSelected = this.selectedFilters.some(selectedChip => selectedChip.id === val.id);\n                this.selectedFilters = isSelected\n                    ? this.selectedFilters.map(filter => (filter.id === val.id ? val : filter))\n                    : [...this.selectedFilters, val];\n\n                this.selectFilter.emit(this.selectedFilters);\n            });\n        });\n    }\n\n    private onClosedChipListener(): void {\n        this.chipFilters.forEach(chip =>\n            chip.onRemove.pipe(takeUntil(this.onDestroy$)).subscribe(val => {\n                this.selectedFilters = this.selectedFilters.filter(selectedChip => {\n                    if (val.id !== selectedChip.id) {\n                        return selectedChip;\n                    }\n                });\n                this.addedFilters = this.addedFilters.filter(filterChip => {\n                    if (val.id === filterChip.id) {\n                        this.restoredUnselectedFiltersOptions(filterChip, chip.mode === 'dynamic');\n                    }\n                    return val.id !== filterChip.id;\n                });\n                this.removeSelection.emit(this.selectedFilters);\n                this.addFilterControl.reset();\n            })\n        );\n    }\n\n    private openAddedDynamicFilter(option: DropdownOption) {\n        this.chipFilters.toArray().forEach(chip => {\n            const isSelected = this.addedFilters.some(selectedChip => selectedChip.id === chip['id']);\n            if (chip['id'] === option.id && !isSelected && chip.mode === 'dynamic') {\n                const isPreSelected = this.preSelectedDynamicOptions.some(item => item.id === option.id);\n                const newSelection = {\n                    id: option.id,\n                    value: option,\n                    isSelected: chip.selected\n                };\n                this.addedFilters = [...this.addedFilters, newSelection];\n                this.reduceSelectedFiltersOptions();\n                if (!isPreSelected) {\n                    chip.apiBase.open();\n                    this.cdr.markForCheck();\n                } else {\n                    this.preSelectedDynamicOptions = this.preSelectedDynamicOptions.filter(item => item.id !== option.id);\n                }\n            } else {\n                this.addFilterControl.reset();\n            }\n        });\n    }\n\n    private orderChipFilters(chipFilters: QueryList<ChipFilterComponent>): void {\n        chipFilters.forEach((chip: ChipFilterComponent, index: number) => {\n            switch (chip.chipType$.getValue()) {\n                case 'RemoveAbleSelect':\n                    this.renderer.setStyle(chip.element.nativeElement, 'order', `-${chipFilters.length - index}`);\n                    break;\n                case 'UnRemoveAbleSelect':\n                    this.renderer.setStyle(chip.element.nativeElement, 'order', `-${2 * chipFilters.length - index}`);\n                    break;\n                default:\n                    this.renderer.setStyle(chip.element.nativeElement, 'order', `${index}`);\n            }\n        });\n    }\n\n    private setPreSelectedFilters(): void {\n        const preSelectedChip = this.chipFilters.filter(chip => !!chip['chipSelectValue']);\n        this.selectedFilters = preSelectedChip.map(chip => chip['chipSelectValue']);\n    }\n\n    private reduceSelectedFiltersOptions(): void {\n        const selectedValues = this.addedFilters.filter(selectedChip => selectedChip?.value);\n        const newOptions = this.optionsRef$.getValue().filter(option => !selectedValues.some(select => select.id === option.id));\n        this.options$.next(newOptions);\n    }\n\n    private restoredUnselectedFiltersOptions(selectedChip: SelectedFilters, isDynamic: boolean): void {\n        if (isDynamic) {\n            const removedChip = this.optionsRef$.getValue().filter(option => option.id === selectedChip.id)[0];\n            const restoredOptions = this.options$.getValue().concat([removedChip]);\n            const sortedRestoredOptions = restoredOptions.sort((a, b) => (a.id > b.id ? 1 : -1));\n            this.options$.next([...sortedRestoredOptions]);\n        }\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}