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.28 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1hbmQtZHJvcC1mcm9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL29ic2VydmFibGVzL2RyYWctYW5kLWRyb3AtZnJvbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUNILE1BQU0sRUFDTixPQUFPLEVBQ1AsR0FBRyxFQUNILEtBQUssRUFFTCxNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsR0FDWixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBSXJELE1BQU0sT0FBTyxZQUFZO0lBQ3JCLFlBQ29CLEtBQW1CLEVBQ25CLEtBQWlCO1FBRGpCLFVBQUssR0FBTCxLQUFLLENBQWM7UUFDbkIsVUFBSyxHQUFMLEtBQUssQ0FBWTtJQUNsQyxDQUFDO0NBQ1A7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsT0FBZ0I7SUFDL0MsTUFBTSxFQUFDLGFBQWEsRUFBQyxHQUFHLE9BQU8sQ0FBQztJQUVoQyxPQUFPLE1BQU0sQ0FDVCxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUN4QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FDbkQsRUFDRCxLQUFLLENBQ0QsaUJBQWlCLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDOUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FDdkQsRUFDRCxLQUFLLENBQ0QsaUJBQWlCLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxFQUMzQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQzlDLENBQUMsSUFBSSxDQUNGLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksWUFBWSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUM5QyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQ2hCLENBQ0osQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQ2xDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dHVpSXNQcmVzZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtcbiAgICBjb25jYXQsXG4gICAgZW5kV2l0aCxcbiAgICBtYXAsXG4gICAgbWVyZ2UsXG4gICAgdHlwZSBPYnNlcnZhYmxlLFxuICAgIHJlcGVhdCxcbiAgICB0YWtlLFxuICAgIHRha2VXaGlsZSxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7dHVpVHlwZWRGcm9tRXZlbnR9IGZyb20gJy4vdHlwZWQtZnJvbS1ldmVudCc7XG5cbmV4cG9ydCB0eXBlIFR1aURyYWdTdGFnZSA9ICdjb250aW51ZXMnIHwgJ2VuZCcgfCAnc3RhcnQnO1xuXG5leHBvcnQgY2xhc3MgVHVpRHJhZ1N0YXRlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHN0YWdlOiBUdWlEcmFnU3RhZ2UsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBldmVudDogTW91c2VFdmVudCxcbiAgICApIHt9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0dWlEcmFnQW5kRHJvcEZyb20oZWxlbWVudDogRWxlbWVudCk6IE9ic2VydmFibGU8VHVpRHJhZ1N0YXRlPiB7XG4gICAgY29uc3Qge293bmVyRG9jdW1lbnR9ID0gZWxlbWVudDtcblxuICAgIHJldHVybiBjb25jYXQoXG4gICAgICAgIHR1aVR5cGVkRnJvbUV2ZW50KGVsZW1lbnQsICdtb3VzZWRvd24nKS5waXBlKFxuICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgIG1hcCgoZXZlbnQpID0+IG5ldyBUdWlEcmFnU3RhdGUoJ3N0YXJ0JywgZXZlbnQpKSxcbiAgICAgICAgKSxcbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICB0dWlUeXBlZEZyb21FdmVudChvd25lckRvY3VtZW50LCAnbW91c2Vtb3ZlJykucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGV2ZW50KSA9PiBuZXcgVHVpRHJhZ1N0YXRlKCdjb250aW51ZXMnLCBldmVudCkpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgICAgIHR1aVR5cGVkRnJvbUV2ZW50KG93bmVyRG9jdW1lbnQsICdtb3VzZXVwJyksXG4gICAgICAgICAgICAgICAgdHVpVHlwZWRGcm9tRXZlbnQob3duZXJEb2N1bWVudCwgJ2RyYWdlbmQnKSxcbiAgICAgICAgICAgICkucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgIG1hcCgoZXZlbnQpID0+IG5ldyBUdWlEcmFnU3RhdGUoJ2VuZCcsIGV2ZW50KSksXG4gICAgICAgICAgICAgICAgZW5kV2l0aChudWxsKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICkucGlwZSh0YWtlV2hpbGUodHVpSXNQcmVzZW50KSksXG4gICAgKS5waXBlKHJlcGVhdCgpKTtcbn1cbiJdfQ==