UNPKG

@taiga-ui/cdk

Version:

Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance

38 lines (34 loc) 2.31 kB
import * as i0 from '@angular/core'; import { Directive, Output } from '@angular/core'; import { tuiTypedFromEvent, tuiPreventDefault } from '@taiga-ui/cdk/observables'; import { tuiInjectElement } from '@taiga-ui/cdk/utils'; import { tuiIsPresent } from '@taiga-ui/cdk/utils/miscellaneous'; import { map, filter, switchMap, merge, startWith, distinctUntilChanged } from 'rxjs'; class TuiDroppable { constructor() { this.el = tuiInjectElement(); this.tuiDroppableDropped = tuiTypedFromEvent(this.el, 'drop').pipe(tuiPreventDefault(), map((event) => event.dataTransfer), filter(tuiIsPresent)); this.tuiDroppableDragOverChange = tuiTypedFromEvent(this.el, 'dragenter').pipe(switchMap(({ target, dataTransfer }) => merge(tuiTypedFromEvent(this.el, 'dragleave').pipe(filter((event) => event.target === target)), tuiTypedFromEvent(this.el, 'drop')).pipe(map(() => null), startWith(dataTransfer))), distinctUntilChanged((a, b) => (!!a && !!b) || (!a && !b))); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDroppable, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiDroppable, isStandalone: true, selector: "[tuiDroppableDropped], [tuiDroppableDragOverChange]", outputs: { tuiDroppableDropped: "tuiDroppableDropped", tuiDroppableDragOverChange: "tuiDroppableDragOverChange" }, host: { listeners: { "dragover.prevent.zoneless": "0" } }, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDroppable, decorators: [{ type: Directive, args: [{ standalone: true, selector: '[tuiDroppableDropped], [tuiDroppableDragOverChange]', host: { '(dragover.prevent.zoneless)': '0', }, }] }], propDecorators: { tuiDroppableDropped: [{ type: Output }], tuiDroppableDragOverChange: [{ type: Output }] } }); /** * Generated bundle index. Do not edit. */ export { TuiDroppable }; //# sourceMappingURL=taiga-ui-cdk-directives-droppable.mjs.map