@taiga-ui/cdk
Version:
Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance
45 lines • 7.54 kB
JavaScript
import { inject, Injectable, INJECTOR } from '@angular/core';
import { tuiProvide } from '@taiga-ui/cdk/utils';
import { PolymorpheusComponent } from '@taiga-ui/polymorpheus';
import { Observable } from 'rxjs';
import { TuiIdService } from './id.service';
import * as i0 from "@angular/core";
class TuiPopoverService {
constructor(items, component, options = {}) {
this.options = options;
this.id = inject(TuiIdService);
this.component = new PolymorpheusComponent(component, inject(INJECTOR));
this.items$ = inject(items);
}
open(content, options = {}) {
return new Observable((observer) => {
const item = {
...this.options,
...options,
content,
$implicit: observer,
component: this.component,
createdAt: Date.now(),
id: this.id.generate(),
completeWith: (result) => {
observer.next(result);
observer.complete();
},
};
this.items$.next([...this.items$.value, item]);
return () => {
this.items$.next(this.items$.value.filter((value) => value !== item));
};
});
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiPopoverService, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiPopoverService }); }
}
export { TuiPopoverService };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiPopoverService, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: undefined }, { type: undefined }, { type: undefined }]; } });
export function tuiAsPopover(popover) {
return tuiProvide(TuiPopoverService, popover);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NlcnZpY2VzL3BvcG92ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFM0QsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRS9DLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRTdELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFaEMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGNBQWMsQ0FBQzs7QUFjMUMsTUFDc0IsaUJBQWlCO0lBTW5DLFlBQ0ksS0FBd0UsRUFDeEUsU0FBb0IsRUFDRCxVQUFhLEVBQU87UUFBcEIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQVAxQixPQUFFLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBU3ZDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVNLElBQUksQ0FDUCxPQUEyRSxFQUMzRSxVQUFzQixFQUFFO1FBRXhCLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUMvQixNQUFNLElBQUksR0FBRztnQkFDVCxHQUFHLElBQUksQ0FBQyxPQUFPO2dCQUNmLEdBQUcsT0FBTztnQkFDVixPQUFPO2dCQUNQLFNBQVMsRUFBRSxRQUFRO2dCQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNyQixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3RCLFlBQVksRUFBRSxDQUFDLE1BQThCLEVBQVEsRUFBRTtvQkFDbkQsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDdEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN4QixDQUFDO2FBQ0osQ0FBQztZQUVGLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBRS9DLE9BQU8sR0FBRyxFQUFFO2dCQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDMUUsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQXhDaUIsaUJBQWlCO21IQUFqQixpQkFBaUI7O1NBQWpCLGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQUR0QyxVQUFVOztBQTRDWCxNQUFNLFVBQVUsWUFBWSxDQUFDLE9BQXFDO0lBQzlELE9BQU8sVUFBVSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7UHJvdmlkZXIsIFByb3ZpZGVyVG9rZW4sIFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtpbmplY3QsIEluamVjdGFibGUsIElOSkVDVE9SfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHtUdWlDb250ZXh0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7dHVpUHJvdmlkZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscyc7XG5pbXBvcnQgdHlwZSB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbXBvbmVudH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQgdHlwZSB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZlcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1R1aUlkU2VydmljZX0gZnJvbSAnLi9pZC5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBUdWlQb3BvdmVyQ29udGV4dDxPPiBleHRlbmRzIFR1aUNvbnRleHQ8T2JzZXJ2ZXI8Tz4+IHtcbiAgICByZWFkb25seSBjb21wb25lbnQ6IFBvbHltb3JwaGV1c0NvbXBvbmVudDxhbnk+O1xuICAgIHJlYWRvbmx5IGNyZWF0ZWRBdDogbnVtYmVyO1xuICAgIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgY29tcGxldGVXaXRoOiAodmFsdWU6IE8pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIFR1aVBvcG92ZXI8VCwgTz4gPSBUICZcbiAgICBUdWlQb3BvdmVyQ29udGV4dDxPPiAmIHtcbiAgICAgICAgY29udGVudDogUG9seW1vcnBoZXVzQ29udGVudDxUICYgVHVpUG9wb3ZlckNvbnRleHQ8Tz4+O1xuICAgIH07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUdWlQb3BvdmVyU2VydmljZTxULCBLID0gdm9pZD4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50OiBQb2x5bW9ycGhldXNDb21wb25lbnQ8YW55PjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlkID0gaW5qZWN0KFR1aUlkU2VydmljZSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXRlbXMkOiBCZWhhdmlvclN1YmplY3Q8UmVhZG9ubHlBcnJheTxUdWlQb3BvdmVyPFQsIGFueT4+PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpdGVtczogUHJvdmlkZXJUb2tlbjxCZWhhdmlvclN1YmplY3Q8UmVhZG9ubHlBcnJheTxUdWlQb3BvdmVyPFQsIGFueT4+Pj4sXG4gICAgICAgIGNvbXBvbmVudDogVHlwZTxhbnk+LFxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3B0aW9uczogVCA9IHt9IGFzIFQsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY29tcG9uZW50ID0gbmV3IFBvbHltb3JwaGV1c0NvbXBvbmVudChjb21wb25lbnQsIGluamVjdChJTkpFQ1RPUikpO1xuICAgICAgICB0aGlzLml0ZW1zJCA9IGluamVjdChpdGVtcyk7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW48RyA9IHZvaWQ+KFxuICAgICAgICBjb250ZW50OiBQb2x5bW9ycGhldXNDb250ZW50PFQgJiBUdWlQb3BvdmVyQ29udGV4dDxLIGV4dGVuZHMgdm9pZCA/IEcgOiBLPj4sXG4gICAgICAgIG9wdGlvbnM6IFBhcnRpYWw8VD4gPSB7fSxcbiAgICApOiBPYnNlcnZhYmxlPEsgZXh0ZW5kcyB2b2lkID8gRyA6IEs+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgICAgICBjb250ZW50LFxuICAgICAgICAgICAgICAgICRpbXBsaWNpdDogb2JzZXJ2ZXIsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLmNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6IERhdGUubm93KCksXG4gICAgICAgICAgICAgICAgaWQ6IHRoaXMuaWQuZ2VuZXJhdGUoKSxcbiAgICAgICAgICAgICAgICBjb21wbGV0ZVdpdGg6IChyZXN1bHQ6IEsgZXh0ZW5kcyB2b2lkID8gRyA6IEspOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLml0ZW1zJC5uZXh0KFsuLi50aGlzLml0ZW1zJC52YWx1ZSwgaXRlbV0pO1xuXG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMkLm5leHQodGhpcy5pdGVtcyQudmFsdWUuZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IGl0ZW0pKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR1aUFzUG9wb3Zlcihwb3BvdmVyOiBUeXBlPFR1aVBvcG92ZXJTZXJ2aWNlPGFueT4+KTogUHJvdmlkZXIge1xuICAgIHJldHVybiB0dWlQcm92aWRlKFR1aVBvcG92ZXJTZXJ2aWNlLCBwb3BvdmVyKTtcbn1cbiJdfQ==