{"version":3,"file":"bravobit-bb-foundation-select.mjs","sources":["../../../projects/bb-foundation/select/src/lib/select-option-group.directive.ts","../../../projects/bb-foundation/select/src/lib/select-placeholder.directive.ts","../../../projects/bb-foundation/select/src/lib/select-multi-label.directive.ts","../../../projects/bb-foundation/select/src/lib/select-not-found.directive.ts","../../../projects/bb-foundation/select/src/lib/select-option.directive.ts","../../../projects/bb-foundation/select/src/lib/select-label.directive.ts","../../../projects/bb-foundation/select/src/lib/select/select.component.ts","../../../projects/bb-foundation/select/src/lib/select/select.component.html","../../../projects/bb-foundation/select/src/lib/select-emails.directive.ts","../../../projects/bb-foundation/select/src/lib/select.config.ts","../../../projects/bb-foundation/select/src/lib/select.module.ts","../../../projects/bb-foundation/select/src/bravobit-bb-foundation-select.ts"],"sourcesContent":["import {Directive, inject, TemplateRef} from '@angular/core';\n\n@Directive({\n    selector: 'ng-template[bbSelectOptionGroup]'\n})\nexport class BbSelectOptionGroup {\n\n    // Dependencies.\n    public template: TemplateRef<any> = inject(TemplateRef);\n\n}\n","import {Directive, inject, TemplateRef} from '@angular/core';\n\n@Directive({\n    selector: 'ng-template[bbSelectPlaceholder]'\n})\nexport class BbSelectPlaceholder {\n\n    // Dependencies.\n    public template: TemplateRef<any> = inject(TemplateRef);\n\n}\n","import {Directive, inject, TemplateRef} from '@angular/core';\n\n@Directive({\n    selector: 'ng-template[bbSelectMultiLabel]'\n})\nexport class BbSelectMultiLabel {\n\n    // Dependencies.\n    public template: TemplateRef<any> = inject(TemplateRef);\n\n}\n","import {Directive, inject, TemplateRef} from '@angular/core';\n\n@Directive({\n    selector: 'ng-template[bbSelectNotFound]'\n})\nexport class BbSelectNotFound {\n\n    // Dependencies.\n    public template: TemplateRef<any> = inject(TemplateRef);\n\n}\n","import {Directive, inject, TemplateRef} from '@angular/core';\n\n@Directive({\n    selector: 'ng-template[bbSelectOption]'\n})\nexport class BbSelectOption {\n\n    // Dependencies.\n    public template: TemplateRef<any> = inject(TemplateRef);\n\n}\n","import {Directive, inject, TemplateRef} from '@angular/core';\n\n@Directive({\n    selector: 'ng-template[bbSelectLabel]'\n})\nexport class BbSelectLabel {\n\n    // Dependencies.\n    public template: TemplateRef<any> = inject(TemplateRef);\n\n}\n","import {\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    ContentChild,\n    ElementRef,\n    EventEmitter,\n    forwardRef,\n    inject,\n    Input,\n    numberAttribute,\n    OnDestroy,\n    OnInit,\n    Output,\n    TemplateRef,\n    ViewChild,\n    ViewEncapsulation,\n    DOCUMENT\n} from '@angular/core';\nimport {NgLabelTemplateDirective, NgMultiLabelTemplateDirective, NgNotFoundTemplateDirective, NgOptgroupTemplateDirective, NgOptionTemplateDirective, NgPlaceholderTemplateDirective, NgSelectComponent} from '@ng-select/ng-select';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR, FormControl, ReactiveFormsModule} from '@angular/forms';\nimport {fromEvent, Observable, of, Subject, Subscription, takeUntil, throttleTime} from 'rxjs';\nimport {BbSelectOptionGroup} from '../select-option-group.directive';\nimport {BbSelectPlaceholder} from '../select-placeholder.directive';\nimport {observableAttribute, WINDOW} from '@bravobit/bb-foundation';\nimport {BbSelectMultiLabel} from '../select-multi-label.directive';\nimport {BbSelectNotFound} from '../select-not-found.directive';\nimport {outputToObservable} from '@angular/core/rxjs-interop';\nimport {BbFormError} from '@bravobit/bb-foundation/elements';\nimport {AsyncPipe, NgTemplateOutlet} from '@angular/common';\nimport {BbLocalize} from '@bravobit/bb-foundation/localize';\nimport {BbSelectOption} from '../select-option.directive';\nimport {BbTemplate} from '@bravobit/bb-foundation/utils';\nimport {BbSelectLabel} from '../select-label.directive';\nimport {filter, map, switchMap} from 'rxjs/operators';\n\nlet nextUniqueId = 0;\n\n@Component({\n    selector: 'bb-select',\n    templateUrl: './select.component.html',\n    styleUrls: ['./select.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    providers: [{\n        provide: NG_VALUE_ACCESSOR,\n        useExisting: forwardRef(() => BbSelect),\n        multi: true\n    }],\n    host: {\n        'class': 'bb-select',\n        '[class.required]': 'required',\n        '[class.readonly]': 'readonly',\n        '[class.disabled]': 'disabled',\n        '[class.grouped]': 'grouped',\n        '[class.error]': 'error',\n        '[class.hide-arrow]': 'hideArrow'\n    },\n    imports: [\n        ReactiveFormsModule,\n        AsyncPipe,\n        NgTemplateOutlet,\n        BbTemplate,\n        BbFormError,\n        BbLocalize,\n        NgSelectComponent,\n        NgOptionTemplateDirective,\n        NgLabelTemplateDirective,\n        NgMultiLabelTemplateDirective,\n        NgOptgroupTemplateDirective,\n        NgNotFoundTemplateDirective,\n        NgPlaceholderTemplateDirective\n    ]\n})\nexport class BbSelect<T> implements ControlValueAccessor, OnInit, OnDestroy {\n\n    // Dependencies.\n    private readonly _elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n    private readonly _window?: Window = inject(WINDOW, {optional: true});\n    private readonly _document?: Document = inject(DOCUMENT, {optional: true});\n\n    // Readonly data.\n    readonly labelId = `bb-select-${nextUniqueId++}`;\n    readonly control = new FormControl();\n\n    // Content children.\n    @ContentChild(BbSelectOption, {read: TemplateRef}) optionTemplate: TemplateRef<any>;\n    @ContentChild(BbSelectOptionGroup, {read: TemplateRef}) optionGroupTemplate: TemplateRef<any>;\n    @ContentChild(BbSelectLabel, {read: TemplateRef}) labelTemplate: TemplateRef<any>;\n    @ContentChild(BbSelectMultiLabel, {read: TemplateRef}) multiLabelTemplate: TemplateRef<any>;\n    @ContentChild(BbSelectNotFound, {read: TemplateRef}) notFoundTemplate: TemplateRef<any>;\n    @ContentChild(BbSelectPlaceholder, {read: TemplateRef}) placeholderTemplate: TemplateRef<any>;\n\n    // View children.\n    @ViewChild(NgSelectComponent, {static: true}) selectComponent: NgSelectComponent;\n\n    // Inputs.\n    @Input() label: string | TemplateRef<any> | null = null;\n    @Input() hint: string | TemplateRef<any> | null = null;\n    @Input({transform: observableAttribute}) data: Observable<T[]> | null = null;\n    @Input({transform: booleanAttribute}) required: boolean = false;\n    @Input({transform: booleanAttribute}) readonly: boolean = false;\n    @Input({transform: booleanAttribute}) grouped: boolean = false;\n    @Input({transform: booleanAttribute}) hideErrors: boolean = false;\n    @Input({transform: booleanAttribute}) loading: boolean = false;\n    @Input({transform: booleanAttribute}) multiple: boolean = false;\n    @Input({transform: booleanAttribute}) clearable: boolean = true;\n    @Input({transform: booleanAttribute}) searchable: boolean = true;\n    @Input({transform: booleanAttribute}) virtualScroll: boolean = false;\n    @Input({transform: booleanAttribute}) closeOnSelect: boolean = true;\n    @Input({transform: booleanAttribute}) selectableGroup: boolean = false;\n    @Input({transform: booleanAttribute}) selectableGroupAsModel: boolean = false;\n    @Input({transform: booleanAttribute}) hideArrow: boolean = false;\n    @Input({transform: booleanAttribute}) selectOnTab: boolean = false;\n    @Input({transform: booleanAttribute}) hideSelected: boolean = false;\n    @Input({transform: numberAttribute}) maxSelectedItems: number | null = null;\n    @Input({transform: booleanAttribute}) disablePanelScrolling: boolean = false;\n    @Input() bindLabel: string | null = null;\n    @Input() bindValue: string | null = null;\n    @Input() placeholder: string | null = null;\n    @Input() typeahead: Subject<string> | null = null;\n    @Input() trackByFn: any | null = null;\n    @Input() minTermLength: number = 0;\n    @Input() bufferAmount: number = 8;\n    @Input() groupBy: string | null = null;\n    @Input() isOpen: boolean = null;\n    @Input() clearSearchOnAdd: boolean = null;\n    @Input() compareWith: (a: any, b: any) => boolean | null = null;\n    @Input() addTag: boolean | ((term: string) => any | Promise<any>) = false;\n    @Input() appendTo: string | null = 'body';\n\n    @Input({transform: booleanAttribute})\n    set disabled(value: boolean) {\n        this._disabled = value;\n        this._disabled ? this.control?.disable() : this.control?.enable();\n    }\n\n    get disabled() {\n        return this._disabled;\n    }\n\n    @Input()\n    get value() {\n        return this.control.value;\n    }\n\n    @Output() valueChange = new EventEmitter<any | null>();\n    @Output() onBlur = new EventEmitter<FocusEvent>();\n    @Output() onChange = new EventEmitter<any | null>();\n\n    set value(value: any | null) {\n        this.control.setValue(value);\n        this.valueChange.emit(value);\n    }\n\n    // State.\n    error: boolean = false;\n    private _disabled: boolean = false;\n\n    // Callbacks.\n    onTouchedCallback: () => void = () => ({});\n    onChangeCallback: (_: T | null) => void = () => ({});\n\n    // Subscriptions.\n    private _subscription = new Subscription();\n\n    ngOnInit() {\n        this.handleValueChanges();\n        this.handleScrolling();\n    }\n\n    ngOnDestroy() {\n        this._subscription?.unsubscribe();\n    }\n\n    writeValue(value: T | null) {\n        this.control.patchValue(value, {emitEvent: false});\n    }\n\n    registerOnChange(method: (_: T | null) => void) {\n        this.onChangeCallback = method;\n    }\n\n    registerOnTouched(method: () => void) {\n        this.onTouchedCallback = method;\n    }\n\n    setDisabledState(isDisabled: boolean) {\n        this.disabled = isDisabled;\n    }\n\n    onErrorChange(error: { token: string, data?: any } | null) {\n        this.error = !!error;\n    }\n\n    private handleValueChanges() {\n        const subscription = this.control.valueChanges\n            .subscribe(value => this.onChangeCallback?.(value));\n        this._subscription.add(subscription);\n    }\n\n    private handleScrolling() {\n        if (this.appendTo === null || !this.selectComponent || this.disablePanelScrolling) {\n            return;\n        }\n\n        const openEvent$ = outputToObservable(this.selectComponent.openEvent);\n        const closeEvent$ = outputToObservable(this.selectComponent.closeEvent);\n\n        const subscription = openEvent$.pipe(\n            switchMap(() => {\n                const scrollableElement = this.getScrollableContainer(this._elementRef?.nativeElement) ?? this._document?.documentElement ?? null;\n                if (!scrollableElement) {\n                    return of(null);\n                }\n\n                const initialScrollTop = scrollableElement?.scrollTop ?? 0;\n                return fromEvent(scrollableElement, 'scroll').pipe(\n                    throttleTime(4),\n                    filter(() => this.selectComponent?.isOpen()),\n                    map(() => {\n                        const offset = Math.abs(initialScrollTop - (scrollableElement?.scrollTop ?? 0));\n                        return offset > 24\n                            ? this.selectComponent?.close?.()\n                            : this.selectComponent?.dropdownPanel()?.adjustPosition?.();\n                    }),\n                    takeUntil(closeEvent$)\n                );\n            })\n        ).subscribe();\n        this._subscription.add(subscription);\n    }\n\n    private getScrollableContainer(element: HTMLElement) {\n        if (!this._window || !element) {\n            return null;\n        }\n\n        let currentElement = element;\n\n        while (currentElement) {\n            const overflowY = this._window.getComputedStyle(currentElement).overflowY;\n            const isScrollable = (overflowY === 'auto' || overflowY === 'scroll');\n\n            if (isScrollable && currentElement.scrollHeight > currentElement.clientHeight) {\n                return currentElement;\n            }\n\n            currentElement = currentElement.parentElement;\n        }\n\n        return null;\n    }\n\n}\n","<!-- Label of the form control. -->\n@if (label; as labelContent) {\n    <label [attr.for]=\"labelId\"\n           class=\"bb-select-label\">\n        <ng-template [bbTemplate]=\"labelContent\">{{ labelContent }}</ng-template>\n    </label>\n}\n\n<ng-select [formControl]=\"control\"\n           [notFoundText]=\"'select.not_found_text' | bbLocalize\"\n           [clearAllText]=\"'select.clear_all_text' | bbLocalize\"\n           [loadingText]=\"'select.loading_text' | bbLocalize\"\n           [typeToSearchText]=\"'select.type_to_search_text' | bbLocalize\"\n           [addTagText]=\"'select.add_tag_text' | bbLocalize\"\n           [virtualScroll]=\"virtualScroll\"\n           [items]=\"data | async\"\n           [multiple]=\"multiple\"\n           [loading]=\"loading\"\n           [labelForId]=\"labelId\"\n           [searchable]=\"searchable\"\n           [placeholder]=\"placeholder\"\n           [clearable]=\"clearable\"\n           [closeOnSelect]=\"closeOnSelect\"\n           [trackByFn]=\"trackByFn\"\n           [minTermLength]=\"minTermLength\"\n           [typeahead]=\"typeahead\"\n           [compareWith]=\"compareWith\"\n           [bindLabel]=\"bindLabel\"\n           [bindValue]=\"bindValue\"\n           [selectableGroup]=\"selectableGroup\"\n           [selectableGroupAsModel]=\"selectableGroupAsModel\"\n           [clearSearchOnAdd]=\"clearSearchOnAdd\"\n           [hideSelected]=\"hideSelected\"\n           [maxSelectedItems]=\"maxSelectedItems\"\n           [groupBy]=\"groupBy\"\n           [isOpen]=\"isOpen\"\n           [readonly]=\"readonly\"\n           [addTag]=\"addTag\"\n           [bufferAmount]=\"bufferAmount\"\n           [appendTo]=\"appendTo\"\n           (blur)=\"onBlur?.emit($event)\"\n           (change)=\"onChange?.emit($event)\">\n    @if (optionTemplate) {\n        <ng-template ng-option-tmp\n                     let-item=\"item\"\n                     let-item$=\"item$\"\n                     let-index=\"index\">\n            <ng-container\n                *ngTemplateOutlet=\"optionTemplate; context: {item: item, item$: item$, index: index}\"></ng-container>\n        </ng-template>\n    }\n    @if (labelTemplate) {\n        <ng-template ng-label-tmp\n                     let-item=\"item\"\n                     let-item$=\"item$\"\n                     let-index=\"index\">\n            <ng-container\n                *ngTemplateOutlet=\"labelTemplate; context: {item: item, item$: item$, index: index}\"></ng-container>\n        </ng-template>\n    }\n    @if (multiLabelTemplate) {\n        <ng-template ng-multi-label-tmp\n                     let-items=\"items\"\n                     let-clear=\"clear\">\n            <ng-container *ngTemplateOutlet=\"multiLabelTemplate; context: {items: items, clear: clear}\"></ng-container>\n        </ng-template>\n    }\n    @if (optionGroupTemplate) {\n        <ng-template ng-optgroup-tmp\n                     let-item=\"item\"\n                     let-item$=\"item$\"\n                     let-index=\"index\">\n            <ng-container\n                *ngTemplateOutlet=\"optionGroupTemplate; context: {item: item, item$: item$, index: index}\"></ng-container>\n        </ng-template>\n    }\n    @if (notFoundTemplate) {\n        <ng-template ng-notfound-tmp\n                     let-searchTerm=\"searchTerm\">\n            <ng-container *ngTemplateOutlet=\"notFoundTemplate; context: {searchTerm: searchTerm}\"></ng-container>\n        </ng-template>\n    }\n    @if (placeholderTemplate) {\n        <ng-template ng-placeholder-tmp>\n            <ng-container *ngTemplateOutlet=\"placeholderTemplate\"></ng-container>\n        </ng-template>\n    }\n</ng-select>\n\n@if (!hideErrors) {\n    <bb-form-error (errorChange)=\"onErrorChange($event)\"></bb-form-error>\n}\n\n<!-- The form control hint. -->\n@if (hint; as hintContent) {\n    <p class=\"bb-select-hint\">\n        <ng-template [bbTemplate]=\"hintContent\">{{ hintContent }}</ng-template>\n    </p>\n}\n","import {DestroyRef, Directive, inject, OnInit} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {BbSelect} from './select/select.component';\nimport {BbRegex} from '@bravobit/bb-foundation';\nimport {NgControl} from '@angular/forms';\n\n@Directive({\n    selector: 'bb-select[bbSelectEmails]'\n})\nexport class BbSelectEmails implements OnInit {\n\n    // Dependencies.\n    private readonly _bbSelect: BbSelect<any> = inject(BbSelect);\n    private readonly _ngControl?: NgControl = inject(NgControl, {self: true, optional: true});\n    private readonly _destroyRef: DestroyRef = inject(DestroyRef);\n\n    get active() {\n        return !this._bbSelect?.disabled && !this._bbSelect?.readonly;\n    }\n\n    ngOnInit() {\n        this._bbSelect.isOpen = false;\n        this._bbSelect.hideArrow = true;\n        this._bbSelect.multiple = true;\n        this._bbSelect.addTag = this.addEmailTagFn;\n        this._bbSelect.onBlur\n            .pipe(takeUntilDestroyed(this._destroyRef))\n            .subscribe((event) => this.addEmailOnBlur(event as FocusEvent));\n    }\n\n    private addEmailOnBlur(event: FocusEvent) {\n        if (!this.active) {\n            return;\n        }\n\n        const value = `${event.target?.['value']}`;\n        event.target['value'] = '';\n        const email = this.addEmailTagFn(value);\n        if (email === null || email === undefined || email?.length <= 0) {\n            return;\n        }\n\n        const control = this._ngControl?.control;\n        if (control === null || control === undefined) {\n            return;\n        }\n        const currentEmails = control?.value ?? [];\n        const newEmails = [...new Set([...currentEmails, email])];\n        control?.setValue(newEmails);\n    }\n\n    private addEmailTagFn = (email: string) => {\n        if (email === null || email === undefined || email?.length <= 0) {\n            return null;\n        }\n\n        return BbRegex.email.test(email) && this.active\n            ? email.toLowerCase()\n            : null;\n    };\n\n}\n","import {DefaultSelectionModelFactory, SELECTION_MODEL_FACTORY} from '@ng-select/ng-select';\nimport {EnvironmentProviders, makeEnvironmentProviders} from '@angular/core';\n\nexport function provideSelectConfig(): EnvironmentProviders {\n    return makeEnvironmentProviders([\n        {provide: SELECTION_MODEL_FACTORY, useValue: DefaultSelectionModelFactory}\n    ]);\n}\n","import {BbSelectOptionGroup} from './select-option-group.directive';\nimport {BbSelectMultiLabel} from './select-multi-label.directive';\nimport {BbSelectOption} from './select-option.directive';\nimport {BbSelectLabel} from './select-label.directive';\nimport {provideSelectConfig} from './select.config';\nimport {BbSelect} from './select/select.component';\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n    imports: [\n        BbSelect,\n        BbSelectLabel,\n        BbSelectOption,\n        BbSelectOptionGroup,\n        BbSelectMultiLabel\n    ],\n    exports: [\n        BbSelect,\n        BbSelectLabel,\n        BbSelectOption,\n        BbSelectOptionGroup,\n        BbSelectMultiLabel\n    ],\n    providers: [\n        provideSelectConfig()\n    ]\n})\nexport class SelectModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}