UNPKG

@taiga-ui/cdk

Version:

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

14 lines 4.25 kB
import { tuiIsPresent } from '@taiga-ui/cdk/utils/miscellaneous'; import { concat, endWith, map, merge, repeat, take, takeWhile } from 'rxjs'; import { tuiTypedFromEvent } from './typed-from-event'; export class TuiDragState { constructor(stage, event) { this.stage = stage; this.event = event; } } export function tuiDragAndDropFrom(element) { const { ownerDocument } = element; return concat(tuiTypedFromEvent(element, 'mousedown').pipe(take(1), map((event) => new TuiDragState('start', event))), merge(tuiTypedFromEvent(ownerDocument, 'mousemove').pipe(map((event) => new TuiDragState('continues', event))), merge(tuiTypedFromEvent(ownerDocument, 'mouseup'), tuiTypedFromEvent(ownerDocument, 'dragend')).pipe(take(1), map((event) => new TuiDragState('end', event)), endWith(null))).pipe(takeWhile(tuiIsPresent))).pipe(repeat()); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1hbmQtZHJvcC1mcm9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL29ic2VydmFibGVzL2RyYWctYW5kLWRyb3AtZnJvbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFL0QsT0FBTyxFQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUUxRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUlyRCxNQUFNLE9BQU8sWUFBWTtJQUNyQixZQUNvQixLQUFtQixFQUNuQixLQUFpQjtRQURqQixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ25CLFVBQUssR0FBTCxLQUFLLENBQVk7SUFDbEMsQ0FBQztDQUNQO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE9BQWdCO0lBQy9DLE1BQU0sRUFBQyxhQUFhLEVBQUMsR0FBRyxPQUFPLENBQUM7SUFFaEMsT0FBTyxNQUFNLENBQ1QsaUJBQWlCLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDeEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxZQUFZLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQ25ELEVBQ0QsS0FBSyxDQUNELGlCQUFpQixDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQzlDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxZQUFZLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQ3ZELEVBQ0QsS0FBSyxDQUNELGlCQUFpQixDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsRUFDM0MsaUJBQWlCLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUM5QyxDQUFDLElBQUksQ0FDRixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFDOUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUNoQixDQUNKLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUNsQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3R1aUlzUHJlc2VudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB0eXBlIHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Y29uY2F0LCBlbmRXaXRoLCBtYXAsIG1lcmdlLCByZXBlYXQsIHRha2UsIHRha2VXaGlsZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7dHVpVHlwZWRGcm9tRXZlbnR9IGZyb20gJy4vdHlwZWQtZnJvbS1ldmVudCc7XG5cbmV4cG9ydCB0eXBlIFR1aURyYWdTdGFnZSA9ICdjb250aW51ZXMnIHwgJ2VuZCcgfCAnc3RhcnQnO1xuXG5leHBvcnQgY2xhc3MgVHVpRHJhZ1N0YXRlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHN0YWdlOiBUdWlEcmFnU3RhZ2UsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBldmVudDogTW91c2VFdmVudCxcbiAgICApIHt9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0dWlEcmFnQW5kRHJvcEZyb20oZWxlbWVudDogRWxlbWVudCk6IE9ic2VydmFibGU8VHVpRHJhZ1N0YXRlPiB7XG4gICAgY29uc3Qge293bmVyRG9jdW1lbnR9ID0gZWxlbWVudDtcblxuICAgIHJldHVybiBjb25jYXQoXG4gICAgICAgIHR1aVR5cGVkRnJvbUV2ZW50KGVsZW1lbnQsICdtb3VzZWRvd24nKS5waXBlKFxuICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgIG1hcCgoZXZlbnQpID0+IG5ldyBUdWlEcmFnU3RhdGUoJ3N0YXJ0JywgZXZlbnQpKSxcbiAgICAgICAgKSxcbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICB0dWlUeXBlZEZyb21FdmVudChvd25lckRvY3VtZW50LCAnbW91c2Vtb3ZlJykucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGV2ZW50KSA9PiBuZXcgVHVpRHJhZ1N0YXRlKCdjb250aW51ZXMnLCBldmVudCkpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgICAgIHR1aVR5cGVkRnJvbUV2ZW50KG93bmVyRG9jdW1lbnQsICdtb3VzZXVwJyksXG4gICAgICAgICAgICAgICAgdHVpVHlwZWRGcm9tRXZlbnQob3duZXJEb2N1bWVudCwgJ2RyYWdlbmQnKSxcbiAgICAgICAgICAgICkucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgIG1hcCgoZXZlbnQpID0+IG5ldyBUdWlEcmFnU3RhdGUoJ2VuZCcsIGV2ZW50KSksXG4gICAgICAgICAgICAgICAgZW5kV2l0aChudWxsKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICkucGlwZSh0YWtlV2hpbGUodHVpSXNQcmVzZW50KSksXG4gICAgKS5waXBlKHJlcGVhdCgpKTtcbn1cbiJdfQ==