@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
JavaScript
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