@favian/headwind-ui
Version:
Headless UI for Angular - Styleless Angular components to integrate with Tailwind CSS
45 lines • 5.19 kB
JavaScript
import { EventEmitter, Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import * as i0 from "@angular/core";
export class HeadwindSelectService {
constructor() {
/** Emits with value of option when selected */
this.selectOption = new EventEmitter();
/** Emits with value of option when focused */
this.focusOption = new EventEmitter();
/** Emits when option hovered */
this.hoverOption = new EventEmitter();
/** Emits to close options */
this.closeOptions = new EventEmitter();
/** Current value of select */
this.value$ = new BehaviorSubject(undefined);
/** Multiple status */
this.multiple$ = new BehaviorSubject(false);
/** Options opened status */
this.optionsOpened$ = new BehaviorSubject(false);
}
get value() {
return this.value$.value;
}
set value(value) {
this.value$.next(value);
}
get multiple() {
return this.multiple$.value;
}
set multiple(value) {
this.multiple$.next(value);
}
get optionsOpened() {
return this.optionsOpened$.value;
}
set optionsOpened(value) {
this.optionsOpened$.next(value);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeadwindSelectService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeadwindSelectService }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeadwindSelectService, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZHdpbmQtc2VsZWN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9oZWFkd2luZC11aS9zcmMvY29tcG9uZW50cy9oZWFkd2luZC1zZWxlY3Qvc2VydmljZS9oZWFkd2luZC1zZWxlY3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUd2QyxNQUFNLE9BQU8scUJBQXFCO0lBRGxDO1FBRUUsK0NBQStDO1FBQy9DLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV2Qyw4Q0FBOEM7UUFDOUMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXRDLGdDQUFnQztRQUNoQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFdkMsNkJBQTZCO1FBQzdCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV4Qyw4QkFBOEI7UUFDOUIsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFNLFNBQVMsQ0FBQyxDQUFDO1FBRTdDLHNCQUFzQjtRQUN0QixjQUFTLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkMsNEJBQTRCO1FBQzVCLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7S0F5QjdDO0lBdkJDLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLEtBQVU7UUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksYUFBYSxDQUFDLEtBQWM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQzsrR0E1Q1UscUJBQXFCO21IQUFyQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBIZWFkd2luZFNlbGVjdFNlcnZpY2Uge1xyXG4gIC8qKiBFbWl0cyB3aXRoIHZhbHVlIG9mIG9wdGlvbiB3aGVuIHNlbGVjdGVkICovXHJcbiAgc2VsZWN0T3B0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIC8qKiBFbWl0cyB3aXRoIHZhbHVlIG9mIG9wdGlvbiB3aGVuIGZvY3VzZWQgKi9cclxuICBmb2N1c09wdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAvKiogRW1pdHMgd2hlbiBvcHRpb24gaG92ZXJlZCAqL1xyXG4gIGhvdmVyT3B0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAvKiogRW1pdHMgdG8gY2xvc2Ugb3B0aW9ucyAqL1xyXG4gIGNsb3NlT3B0aW9ucyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgLyoqIEN1cnJlbnQgdmFsdWUgb2Ygc2VsZWN0ICovXHJcbiAgdmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHVuZGVmaW5lZCk7XHJcblxyXG4gIC8qKiBNdWx0aXBsZSBzdGF0dXMgKi9cclxuICBtdWx0aXBsZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcclxuXHJcbiAgLyoqIE9wdGlvbnMgb3BlbmVkIHN0YXR1cyAqL1xyXG4gIG9wdGlvbnNPcGVuZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XHJcblxyXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsdWUkLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMudmFsdWUkLm5leHQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG11bHRpcGxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMubXVsdGlwbGUkLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgc2V0IG11bHRpcGxlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLm11bHRpcGxlJC5uZXh0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldCBvcHRpb25zT3BlbmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9uc09wZW5lZCQudmFsdWU7XHJcbiAgfVxyXG5cclxuICBzZXQgb3B0aW9uc09wZW5lZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5vcHRpb25zT3BlbmVkJC5uZXh0KHZhbHVlKTtcclxuICB9XHJcbn1cclxuIl19