UNPKG

angular-select-dropdown

Version:

A highly customizable and flexible dropdown select component for Angular applications. Ideal for creating dynamic select menus with search, filtering.

266 lines (258 loc) 24.3 kB
import * as i0 from '@angular/core'; import { EventEmitter, Directive, Input, Output, HostListener, forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, HostBinding, Injectable, NgModule } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import * as i1 from '@angular/common'; import { CommonModule } from '@angular/common'; class ClickOutsideDirective { constructor(elementRef) { this.elementRef = elementRef; this.excludeElements = []; this.clickOutside = new EventEmitter(); } onClick(event) { const target = event.target; if (!this.elementRef.nativeElement.contains(target) && !this.isExcludedElement(target, this.excludeElements)) { this.clickOutside.emit(); } } isExcludedElement(target, excludeElements) { return excludeElements.some(selectorOrClass => { if (selectorOrClass.startsWith('.')) { const className = selectorOrClass.slice(1); return target.classList.contains(className) || this.isInsideExcludedElement(target, `.${className}`); } else { const excludedElements = this.elementRef.nativeElement.ownerDocument.querySelectorAll(selectorOrClass); return Array.from(excludedElements).some(el => el.contains(target) || el === target); } }); } isInsideExcludedElement(target, selector) { const excludedElements = Array.from(this.elementRef.nativeElement.ownerDocument.querySelectorAll(selector)); return excludedElements.some(excludedElement => excludedElement.contains(target)); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ClickOutsideDirective, selector: "[clickOutside]", inputs: { excludeElements: "excludeElements" }, outputs: { clickOutside: "clickOutside" }, host: { listeners: { "document:mousedown": "onClick($event)" } }, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClickOutsideDirective, decorators: [{ type: Directive, args: [{ selector: '[clickOutside]' }] }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { excludeElements: [{ type: Input }], clickOutside: [{ type: Output }], onClick: [{ type: HostListener, args: ['document:mousedown', ['$event']] }] } }); class AngularSelectDropdownComponent { /** * List of items to populate the dropdown. * This setter updates the internal store of items and triggers an update. * @param items The array of items to be displayed in the dropdown. */ set items(items) { this._items = items; this.updateItems(items); } get items() { return this._items; } constructor(cdRef) { this.cdRef = cdRef; /** * Handler function to extract the label for each item. * @param item The item from the list. * @returns The label (name or value) of the item. */ this.labelHandler = (item) => item['name'] || item; /** * Defines the key used to sort the dropdown items. * @param sortKeyName The key used to sort the items, default is 'value'. * @default 'value' */ this.sortKeyName = 'value'; /** * Determines whether the dropdown allows clearing the selection. * @param isClearable If true, the dropdown will show a clear button. * @default false */ this.isClearable = false; /** * Determines whether the dropdown is disabled. * @param disabled If true, the dropdown is disabled and cannot be interacted with. * @default false */ this.disabled = false; /** * Determines whether the dropdown menu should close when the selected item is cleared. * @param closeMenuOnClear If true, the dropdown will close when the selection is cleared. * @default true */ this.closeMenuOnClear = true; /** * Placeholder text displayed when no item is selected. * @param placeholder The placeholder text. * @default '' */ this.placeholder = ''; /** * Message displayed when no items match the search query. * @param notFoundMessage The message to display when no items are found. * @default 'Nothing found' */ this.notFoundMessage = 'Nothing found'; /** * Event emitted when an item is selected. * @param selectItem The selected item is emitted as an event. */ this.selectItem = new EventEmitter(); this.hostClasses = 'angular-select-dropdown'; this._items = []; this.data = ''; this.isDropdownOpen = false; this.itemsStore = []; this.selectedItem = { value: null, name: '' }; this.onTouched = () => { }; this.onChange = () => { }; } ngOnDestroy() { this.isDropdownOpen = false; } registerOnChange(onChange) { this.onChange = onChange; } registerOnTouched(onTouched) { this.onTouched = onTouched; } writeValue(obj) { this.data = obj; this.updateItems(this.items); } updateData(data) { this.onChange(data); this.onTouched(); } updateItems(items) { if (items && items.length) { this.itemsStore = items.map((item) => ({ value: item[this.sortKeyName] ?? this.labelHandler(item), name: this.labelHandler(item), disabled: !!item?.['disabled'] })); } else { this.itemsStore = []; } this.updateSelectedItem(); this.cdRef.markForCheck(); } updateSelectedItem(item) { const selectedItem = this.itemsStore.find(item => item?.value == this.data); this.selectedItem = { value: item?.value ?? (selectedItem?.value ?? null), name: item?.name ?? (selectedItem?.name ?? '') }; } trackByValue(index, item) { return item.value; } closeDropdownMenu() { this.isDropdownOpen = false; } onClickRemove(event) { event.stopImmediatePropagation(); if (this.selectedItem.value && this.selectedItem.name) { this.updateSelectedItem(); this.updateData(null); this.selectItem.emit(); if (this.closeMenuOnClear) { this.closeDropdownMenu(); } } } onSelectItem(item) { this.updateData(item.value); this.updateSelectedItem(item); this.closeDropdownMenu(); this.selectItem.emit(item.value); } onSelectClick() { this.isDropdownOpen = !this.isDropdownOpen; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularSelectDropdownComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AngularSelectDropdownComponent, selector: "angular-select-dropdown", inputs: { labelHandler: "labelHandler", sortKeyName: "sortKeyName", items: "items", isClearable: "isClearable", disabled: "disabled", closeMenuOnClear: "closeMenuOnClear", placeholder: "placeholder", notFoundMessage: "notFoundMessage" }, outputs: { selectItem: "selectItem" }, host: { properties: { "class": "this.hostClasses" } }, providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => AngularSelectDropdownComponent), multi: true } ], ngImport: i0, template: "<div\n class=\"angular-select-dropdown-wrapper\"\n [excludeElements]=\"['.angular-select-dropdown-menu']\"\n [class.angular-select-dropdown-wrapper_disabled]=\"disabled\"\n (clickOutside)=\"closeDropdownMenu()\"\n (click)=\"onSelectClick()\"\n>\n <div\n class=\"angular-select-dropdown__text\"\n [class.angular-select-dropdown__text_placeholder]=\"!selectedItem.name && placeholder\"\n [title]=\"selectedItem.name\"\n >\n {{selectedItem.name || placeholder}}\n </div>\n\n <div class=\"angular-select-dropdown-actions\">\n <div\n *ngIf=\"isClearable\"\n class=\"angular-select-dropdown-actions__close\"\n (click)=\"onClickRemove($event)\"\n ></div>\n <div\n class=\"angular-select-dropdown-actions__arrow\"\n [class.angular-select-dropdown-actions__arrow_rotate]=\"isDropdownOpen\"\n ></div>\n </div>\n</div>\n\n<div\n *ngIf=\"isDropdownOpen\"\n class=\"angular-select-dropdown-menu\"\n>\n <div class=\"angular-select-dropdown-menu__wrapper\">\n <div\n *ngIf=\"itemsStore.length; else itemsListEmpty\"\n class=\"angular-select-dropdown-menu__items\"\n >\n <div\n *ngFor=\"let item of itemsStore; let i = index; trackBy: trackByValue\"\n class=\"angular-select-dropdown-menu__item\"\n [class.angular-select-dropdown-menu__item_active]=\"item.value === selectedItem.value\"\n [title]=\"item.name\"\n (click)=\"onSelectItem(item)\"\n >\n {{item.name}}\n </div>\n </div>\n\n <ng-template #itemsListEmpty>\n <div\n class=\"angular-select-dropdown-menu__not-found\"\n >\n {{notFoundMessage}}\n </div>\n </ng-template>\n </div>\n</div>\n", styles: [":host,.angular-select-dropdown{display:block;position:relative;width:100%}.angular-select-dropdown-wrapper{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:10px 10px 10px 15px;border:1px solid rgba(0,0,0,.1019607843);border-radius:.625rem}.angular-select-dropdown-wrapper:hover .angular-select-dropdown-actions__arrow{background-image:url(\"data:image/svg+xml,%3Csvg viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E %3Cg%3E %3Cpath d%3D%22M7 10L12 15%22 stroke%3D%22%23333%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22 %3E%3C%2Fpath%3E %3Cpath d%3D%22M12 15L17 10%22 stroke%3D%22%23333%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22 %3E%3C%2Fpath%3E %3C%2Fg%3E%3C%2Fsvg%3E\")}.angular-select-dropdown-wrapper_disabled{pointer-events:none;opacity:.5}.angular-select-dropdown__text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;color:#1b1f3b;font-family:inherit;width:100%}.angular-select-dropdown__text_placeholder{color:#1b1f3ba6}.angular-select-dropdown-actions{display:flex;align-items:center}.angular-select-dropdown-actions__close,.angular-select-dropdown-actions__arrow{width:20px;height:20px;background-repeat:no-repeat}.angular-select-dropdown-actions__close{background-image:url(\"data:image/svg+xml,%3Csvg viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E %3Cg%3E %3Cpath d%3D%22M8 8L16 16%22 stroke%3D%22%23808080%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22 %3E%3C%2Fpath%3E %3Cpath d%3D%22M16 8L8 16%22 stroke%3D%22%23808080%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22 %3E%3C%2Fpath%3E %3C%2Fg%3E%3C%2Fsvg%3E\")}.angular-select-dropdown-actions__close:hover{background-image:url(\"data:image/svg+xml,%3Csvg viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E %3Cg%3E %3Cpath d%3D%22M8 8L16 16%22 stroke%3D%22%23333%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22 %3E%3C%2Fpath%3E %3Cpath d%3D%22M16 8L8 16%22 stroke%3D%22%23333%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22 %3E%3C%2Fpath%3E %3C%2Fg%3E%3C%2Fsvg%3E\")}.angular-select-dropdown-actions__arrow{transition:.4s;background-image:url(\"data:image/svg+xml,%3Csvg viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E %3Cg%3E %3Cpath d%3D%22M7 10L12 15%22 stroke%3D%22%23808080%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22 %3E%3C%2Fpath%3E %3Cpath d%3D%22M12 15L17 10%22 stroke%3D%22%23808080%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22 %3E%3C%2Fpath%3E %3C%2Fg%3E%3C%2Fsvg%3E\")}.angular-select-dropdown-actions__arrow_rotate{transform:rotate(180deg)}.angular-select-dropdown-menu{position:absolute;width:100%;left:0;top:45px;border:1px solid rgba(0,0,0,.1019607843);border-radius:.625rem}.angular-select-dropdown-menu__wrapper{padding:4px}.angular-select-dropdown-menu__items{padding:1px;max-height:200px;overflow-y:auto;overflow-x:hidden;box-sizing:border-box}.angular-select-dropdown-menu__items::-webkit-scrollbar{width:4px}.angular-select-dropdown-menu__items::-webkit-scrollbar-thumb{background:#888;border-radius:.625rem;cursor:pointer}.angular-select-dropdown-menu__items::-webkit-scrollbar-thumb:hover{background:#555}.angular-select-dropdown-menu__item{padding:10px;cursor:pointer;border-radius:.625rem;margin-bottom:2px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-family:inherit;color:#1b1f3b}.angular-select-dropdown-menu__item_active,.angular-select-dropdown-menu__item:hover{background-color:#0000000a}.angular-select-dropdown-menu__item:last-child{margin-bottom:0}.angular-select-dropdown-menu__not-found{padding:10px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-family:inherit;color:#1b1f3b66}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[clickOutside]", inputs: ["excludeElements"], outputs: ["clickOutside"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularSelectDropdownComponent, decorators: [{ type: Component, args: [{ selector: 'angular-select-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => AngularSelectDropdownComponent), multi: true } ], template: "<div\n class=\"angular-select-dropdown-wrapper\"\n [excludeElements]=\"['.angular-select-dropdown-menu']\"\n [class.angular-select-dropdown-wrapper_disabled]=\"disabled\"\n (clickOutside)=\"closeDropdownMenu()\"\n (click)=\"onSelectClick()\"\n>\n <div\n class=\"angular-select-dropdown__text\"\n [class.angular-select-dropdown__text_placeholder]=\"!selectedItem.name && placeholder\"\n [title]=\"selectedItem.name\"\n >\n {{selectedItem.name || placeholder}}\n </div>\n\n <div class=\"angular-select-dropdown-actions\">\n <div\n *ngIf=\"isClearable\"\n class=\"angular-select-dropdown-actions__close\"\n (click)=\"onClickRemove($event)\"\n ></div>\n <div\n class=\"angular-select-dropdown-actions__arrow\"\n [class.angular-select-dropdown-actions__arrow_rotate]=\"isDropdownOpen\"\n ></div>\n </div>\n</div>\n\n<div\n *ngIf=\"isDropdownOpen\"\n class=\"angular-select-dropdown-menu\"\n>\n <div class=\"angular-select-dropdown-menu__wrapper\">\n <div\n *ngIf=\"itemsStore.length; else itemsListEmpty\"\n class=\"angular-select-dropdown-menu__items\"\n >\n <div\n *ngFor=\"let item of itemsStore; let i = index; trackBy: trackByValue\"\n class=\"angular-select-dropdown-menu__item\"\n [class.angular-select-dropdown-menu__item_active]=\"item.value === selectedItem.value\"\n [title]=\"item.name\"\n (click)=\"onSelectItem(item)\"\n >\n {{item.name}}\n </div>\n </div>\n\n <ng-template #itemsListEmpty>\n <div\n class=\"angular-select-dropdown-menu__not-found\"\n >\n {{notFoundMessage}}\n </div>\n </ng-template>\n </div>\n</div>\n", styles: [":host,.angular-select-dropdown{display:block;position:relative;width:100%}.angular-select-dropdown-wrapper{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:10px 10px 10px 15px;border:1px solid rgba(0,0,0,.1019607843);border-radius:.625rem}.angular-select-dropdown-wrapper:hover .angular-select-dropdown-actions__arrow{background-image:url(\"data:image/svg+xml,%3Csvg viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E %3Cg%3E %3Cpath d%3D%22M7 10L12 15%22 stroke%3D%22%23333%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22 %3E%3C%2Fpath%3E %3Cpath d%3D%22M12 15L17 10%22 stroke%3D%22%23333%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22 %3E%3C%2Fpath%3E %3C%2Fg%3E%3C%2Fsvg%3E\")}.angular-select-dropdown-wrapper_disabled{pointer-events:none;opacity:.5}.angular-select-dropdown__text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;color:#1b1f3b;font-family:inherit;width:100%}.angular-select-dropdown__text_placeholder{color:#1b1f3ba6}.angular-select-dropdown-actions{display:flex;align-items:center}.angular-select-dropdown-actions__close,.angular-select-dropdown-actions__arrow{width:20px;height:20px;background-repeat:no-repeat}.angular-select-dropdown-actions__close{background-image:url(\"data:image/svg+xml,%3Csvg viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E %3Cg%3E %3Cpath d%3D%22M8 8L16 16%22 stroke%3D%22%23808080%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22 %3E%3C%2Fpath%3E %3Cpath d%3D%22M16 8L8 16%22 stroke%3D%22%23808080%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22 %3E%3C%2Fpath%3E %3C%2Fg%3E%3C%2Fsvg%3E\")}.angular-select-dropdown-actions__close:hover{background-image:url(\"data:image/svg+xml,%3Csvg viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E %3Cg%3E %3Cpath d%3D%22M8 8L16 16%22 stroke%3D%22%23333%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22 %3E%3C%2Fpath%3E %3Cpath d%3D%22M16 8L8 16%22 stroke%3D%22%23333%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22 %3E%3C%2Fpath%3E %3C%2Fg%3E%3C%2Fsvg%3E\")}.angular-select-dropdown-actions__arrow{transition:.4s;background-image:url(\"data:image/svg+xml,%3Csvg viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E %3Cg%3E %3Cpath d%3D%22M7 10L12 15%22 stroke%3D%22%23808080%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22 %3E%3C%2Fpath%3E %3Cpath d%3D%22M12 15L17 10%22 stroke%3D%22%23808080%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22 %3E%3C%2Fpath%3E %3C%2Fg%3E%3C%2Fsvg%3E\")}.angular-select-dropdown-actions__arrow_rotate{transform:rotate(180deg)}.angular-select-dropdown-menu{position:absolute;width:100%;left:0;top:45px;border:1px solid rgba(0,0,0,.1019607843);border-radius:.625rem}.angular-select-dropdown-menu__wrapper{padding:4px}.angular-select-dropdown-menu__items{padding:1px;max-height:200px;overflow-y:auto;overflow-x:hidden;box-sizing:border-box}.angular-select-dropdown-menu__items::-webkit-scrollbar{width:4px}.angular-select-dropdown-menu__items::-webkit-scrollbar-thumb{background:#888;border-radius:.625rem;cursor:pointer}.angular-select-dropdown-menu__items::-webkit-scrollbar-thumb:hover{background:#555}.angular-select-dropdown-menu__item{padding:10px;cursor:pointer;border-radius:.625rem;margin-bottom:2px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-family:inherit;color:#1b1f3b}.angular-select-dropdown-menu__item_active,.angular-select-dropdown-menu__item:hover{background-color:#0000000a}.angular-select-dropdown-menu__item:last-child{margin-bottom:0}.angular-select-dropdown-menu__not-found{padding:10px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-family:inherit;color:#1b1f3b66}\n"] }] }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { labelHandler: [{ type: Input }], sortKeyName: [{ type: Input }], items: [{ type: Input }], isClearable: [{ type: Input }], disabled: [{ type: Input }], closeMenuOnClear: [{ type: Input }], placeholder: [{ type: Input }], notFoundMessage: [{ type: Input }], selectItem: [{ type: Output }], hostClasses: [{ type: HostBinding, args: ['class'] }] } }); class AngularSelectDropdownService { static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularSelectDropdownService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularSelectDropdownService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularSelectDropdownService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }] }); class AngularSelectDropdownModule { static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularSelectDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: AngularSelectDropdownModule, declarations: [AngularSelectDropdownComponent, ClickOutsideDirective], imports: [CommonModule], exports: [AngularSelectDropdownComponent] }); } static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularSelectDropdownModule, imports: [CommonModule] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularSelectDropdownModule, decorators: [{ type: NgModule, args: [{ declarations: [AngularSelectDropdownComponent, ClickOutsideDirective], imports: [CommonModule], exports: [AngularSelectDropdownComponent] }] }] }); /* * Public API Surface of angular-select-dropdown */ /** * Generated bundle index. Do not edit. */ export { AngularSelectDropdownComponent, AngularSelectDropdownModule, AngularSelectDropdownService }; //# sourceMappingURL=angular-select-dropdown.mjs.map