@ux-aspects/ux-aspects
Version:
Open source user interface framework for building modern, responsive, mobile big data applications
37 lines • 4.37 kB
JavaScript
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs';
import * as i0 from "@angular/core";
export class DragService {
constructor() {
/** Emit when dragging begins */
this.onDragStart = new Subject();
/** Emit when dragging moves */
this.onDrag = new Subject();
/** Emit when dragging ends */
this.onDragEnd = new Subject();
/** Emit when the user is dragging over the drop area */
this.onDropEnter = new Subject();
/** Emit when the user is dragging out of the drop area */
this.onDropLeave = new Subject();
/** Emit when a drop occurs */
this.onDrop = new Subject();
}
/** Destroy all observables */
ngOnDestroy() {
this.onDragStart.complete();
this.onDrag.complete();
this.onDragEnd.complete();
this.onDrop.complete();
this.onDropEnter.complete();
this.onDropLeave.complete();
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DragService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DragService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DragService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RpcmVjdGl2ZXMvZHJhZy9kcmFnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUsvQixNQUFNLE9BQU8sV0FBVztJQUh4QjtRQUtJLGdDQUFnQztRQUNoQyxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFrQixDQUFDO1FBRTVDLCtCQUErQjtRQUMvQixXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQWtCLENBQUM7UUFFdkMsOEJBQThCO1FBQzlCLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBa0IsQ0FBQztRQUUxQyx3REFBd0Q7UUFDeEQsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRWxDLDBEQUEwRDtRQUMxRCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFbEMsOEJBQThCO1FBQzlCLFdBQU0sR0FBRyxJQUFJLE9BQU8sRUFBSyxDQUFDO0tBWTdCO0lBVkcsOEJBQThCO0lBQzlCLFdBQVc7UUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQyxDQUFDOytHQTVCUSxXQUFXO21IQUFYLFdBQVcsY0FGUixNQUFNOzs0RkFFVCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERyYWdTZXJ2aWNlPFQgPSB1bmtub3duPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgICAvKiogRW1pdCB3aGVuIGRyYWdnaW5nIGJlZ2lucyAqL1xuICAgIG9uRHJhZ1N0YXJ0ID0gbmV3IFN1YmplY3Q8VXhEcmFnRXZlbnQ8VD4+KCk7XG5cbiAgICAvKiogRW1pdCB3aGVuIGRyYWdnaW5nIG1vdmVzICovXG4gICAgb25EcmFnID0gbmV3IFN1YmplY3Q8VXhEcmFnRXZlbnQ8VD4+KCk7XG5cbiAgICAvKiogRW1pdCB3aGVuIGRyYWdnaW5nIGVuZHMgKi9cbiAgICBvbkRyYWdFbmQgPSBuZXcgU3ViamVjdDxVeERyYWdFdmVudDxUPj4oKTtcblxuICAgIC8qKiBFbWl0IHdoZW4gdGhlIHVzZXIgaXMgZHJhZ2dpbmcgb3ZlciB0aGUgZHJvcCBhcmVhICovXG4gICAgb25Ecm9wRW50ZXIgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEVtaXQgd2hlbiB0aGUgdXNlciBpcyBkcmFnZ2luZyBvdXQgb2YgdGhlIGRyb3AgYXJlYSAqL1xuICAgIG9uRHJvcExlYXZlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBFbWl0IHdoZW4gYSBkcm9wIG9jY3VycyAqL1xuICAgIG9uRHJvcCA9IG5ldyBTdWJqZWN0PFQ+KCk7XG5cbiAgICAvKiogRGVzdHJveSBhbGwgb2JzZXJ2YWJsZXMgKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkRyYWdTdGFydC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLm9uRHJhZy5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLm9uRHJhZ0VuZC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLm9uRHJvcC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLm9uRHJvcEVudGVyLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMub25Ecm9wTGVhdmUuY29tcGxldGUoKTtcbiAgICB9XG5cbn1cblxuZXhwb3J0IHR5cGUgVXhEcmFnRXZlbnQ8VCA9IHVua25vd24+ID0geyBncm91cD86IHN0cmluZywgZXZlbnQ/OiBNb3VzZUV2ZW50LCBkYXRhPzogVCB9O1xuIl19