@taiga-ui/core
Version:
Core library for creating Angular components and applications using Taiga UI
14 lines • 3.6 kB
JavaScript
import { DOCUMENT } from '@angular/common';
import { inject, InjectionToken } from '@angular/core';
import { tuiTypedFromEvent } from '@taiga-ui/cdk/observables';
import { merge, share, switchMap, takeUntil } from 'rxjs';
/**
* A stream of possible selection changes
*/
export const TUI_SELECTION_STREAM = new InjectionToken(ngDevMode ? 'TUI_SELECTION_STREAM' : '', {
factory: () => {
const doc = inject(DOCUMENT);
return merge(tuiTypedFromEvent(doc, 'selectionchange'), tuiTypedFromEvent(doc, 'mouseup'), tuiTypedFromEvent(doc, 'mousedown').pipe(switchMap(() => tuiTypedFromEvent(doc, 'mousemove').pipe(takeUntil(tuiTypedFromEvent(doc, 'mouseup'))))), tuiTypedFromEvent(doc, 'keydown'), tuiTypedFromEvent(doc, 'keyup')).pipe(share());
},
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLXN0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvdG9rZW5zL3NlbGVjdGlvbi1zdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxNQUFNLEVBQUUsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBQyxLQUFLLEVBQW1CLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXpFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQ2xELFNBQVMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDdkM7SUFDSSxPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQ1YsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTdCLE9BQU8sS0FBSyxDQUNSLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxFQUN6QyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLEVBQ2pDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQ3BDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FDWCxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUNwQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQy9DLENBQ0osQ0FDSixFQUNELGlCQUFpQixDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsRUFDakMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUNsQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7Q0FDSixDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtpbmplY3QsIEluamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHVpVHlwZWRGcm9tRXZlbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHttZXJnZSwgdHlwZSBPYnNlcnZhYmxlLCBzaGFyZSwgc3dpdGNoTWFwLCB0YWtlVW50aWx9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEEgc3RyZWFtIG9mIHBvc3NpYmxlIHNlbGVjdGlvbiBjaGFuZ2VzXG4gKi9cbmV4cG9ydCBjb25zdCBUVUlfU0VMRUNUSU9OX1NUUkVBTSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPYnNlcnZhYmxlPHVua25vd24+PihcbiAgICBuZ0Rldk1vZGUgPyAnVFVJX1NFTEVDVElPTl9TVFJFQU0nIDogJycsXG4gICAge1xuICAgICAgICBmYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkb2MgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgICAgICAgICByZXR1cm4gbWVyZ2UoXG4gICAgICAgICAgICAgICAgdHVpVHlwZWRGcm9tRXZlbnQoZG9jLCAnc2VsZWN0aW9uY2hhbmdlJyksXG4gICAgICAgICAgICAgICAgdHVpVHlwZWRGcm9tRXZlbnQoZG9jLCAnbW91c2V1cCcpLFxuICAgICAgICAgICAgICAgIHR1aVR5cGVkRnJvbUV2ZW50KGRvYywgJ21vdXNlZG93bicpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgdHVpVHlwZWRGcm9tRXZlbnQoZG9jLCAnbW91c2Vtb3ZlJykucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodHVpVHlwZWRGcm9tRXZlbnQoZG9jLCAnbW91c2V1cCcpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0dWlUeXBlZEZyb21FdmVudChkb2MsICdrZXlkb3duJyksXG4gICAgICAgICAgICAgICAgdHVpVHlwZWRGcm9tRXZlbnQoZG9jLCAna2V5dXAnKSxcbiAgICAgICAgICAgICkucGlwZShzaGFyZSgpKTtcbiAgICAgICAgfSxcbiAgICB9LFxuKTtcbiJdfQ==