{"version":3,"file":"ironsource-fusion-ui-components-addbox-dropdown-common-base.mjs","sources":["../../../projects/fusion-ui/components/addbox-dropdown/common/base/addbox-dropdown.base.component.ts","../../../projects/fusion-ui/components/addbox-dropdown/common/base/ironsource-fusion-ui-components-addbox-dropdown-common-base.ts"],"sourcesContent":["import {Directive, DoCheck, EventEmitter, Input, OnChanges, Output} from '@angular/core';\nimport {FormControl} from '@angular/forms';\nimport {distinctUntilChanged} from 'rxjs/operators';\nimport {DropdownOption} from '@ironsource/fusion-ui/components/dropdown-option/entities';\nimport {DropdownBaseComponent} from '@ironsource/fusion-ui/components/dropdown/common/base';\n\n@Directive()\n// eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\nexport class AddboxDropdownBaseComponent extends DropdownBaseComponent implements OnChanges, DoCheck {\n    @Input() selected: DropdownOption[] = [];\n    @Input() autoComplete = true;\n    @Input() actionButtonText;\n    @Output() itemSelected = new EventEmitter();\n\n    @Input()\n    public set options(value) {\n        this.optionsState = Array.isArray(value) ? value.filter(this.isOptionShowed.bind(this)) : [];\n        this.displayedOptions$.next(this.parseOptions(this.optionsState));\n    }\n\n    public get options() {\n        return this.optionsState;\n    }\n\n    id: string;\n    searchValue = new FormControl();\n    searchError = '';\n    lastSearchValue = '';\n    placeholderText = '';\n\n    private oldIsLoading = false;\n    private commaSeparatedSearch = false;\n\n    // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n    ngOnChanges(changes) {\n        // showing noResults option only if options is empty\n        // setting showNoResults to true only if search is finished and options = []\n        if (changes.isLoading && changes.isLoading.currentValue === false && changes.options && !changes.options.firstChange) {\n            if (!changes.options.currentValue || !changes.options.currentValue.length) {\n                // this.showNoResults = true;\n            } else if (this.commaSeparatedSearch) {\n                this.options = [];\n                // this.showNoResults = false;\n                this.commaSeparatedSearch = false;\n            }\n        } else {\n            // this.showNoResults = false;\n        }\n    }\n\n    initListeners() {\n        this.searchValue.valueChanges.pipe(distinctUntilChanged()).subscribe(value => {\n            this.commaSeparatedSearch = /,/g.test(value);\n            if (!this.commaSeparatedSearch) {\n                this.lastSearchValue = value;\n                super.onSearchChange();\n                if (value) {\n                    this.isOpen$.next(true);\n                    setTimeout(this.calcOptionHolderPosition.bind(this), 0);\n                }\n            } else {\n                this.optionsState = [];\n            }\n        });\n    }\n\n    // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n    ngDoCheck() {\n        if (this.loading !== this.oldIsLoading) {\n            if (!this.loading && !this.isSearchByKeyword()) {\n                this.onAddItemsDone();\n            }\n            this.oldIsLoading = this.loading;\n        }\n    }\n\n    isActionButtonDisabled(): boolean {\n        return this.isSearchByKeyword();\n    }\n\n    /**\n     * Check if option already in selected\n     */\n    private isOptionShowed(option: any): boolean {\n        return this.selected.findIndex(item => item.id === option.id) === -1;\n    }\n\n    /**\n     * If in search input has ',' comma, do not made search by input value (keyword)\n     */\n    private isSearchByKeyword(): boolean {\n        return !/,/g.test(this.searchValue.value);\n    }\n\n    /**\n     * Add Bulk done\n     */\n    private onAddItemsDone(): void {\n        this.searchValue.setValue('', {emitEvent: false});\n    }\n\n    /**\n     * on key enter in input pressed - if mode for bulk search do it\n     */\n    addList() {\n        this.commaSeparatedSearch = !this.isSearchByKeyword();\n        if (this.commaSeparatedSearch) {\n            this.searchChange.emit(this.searchValue.value);\n        }\n    }\n\n    changeSelected({option, $event}: {option: any; $event: any}): void {\n        if (this.selected.findIndex(item => item === option) === -1) {\n            this.selected = [...this.selected, option];\n            const idx = this.optionsState.findIndex(item => item === option);\n            this.optionsState.splice(idx, 1);\n            this.options = [...this.optionsState];\n\n            this.itemSelected.emit(option);\n            this.propagateChange(this.selected);\n            // suppress click event Propagation (fix for onOutsideClick)\n            if ($event) {\n                $event.stopPropagation();\n            }\n        }\n    }\n\n    /**\n     * override parent function\n     */\n    setLabel() {}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}