UNPKG

@taiga-ui/kit

Version:
20 lines 4.18 kB
import { DOCUMENT } from '@angular/common'; import { InjectionToken } from '@angular/core'; import { TuiDestroyService } from '@taiga-ui/cdk'; import { FIXED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers'; import { fromEvent, merge } from 'rxjs'; import { flatMap, startWith, takeUntil, windowToggle } from 'rxjs/operators'; export var SELECTION_STREAM = new InjectionToken('A stream of selection changes'); export var INPUT_PHONE_PROVIDERS = [ TuiDestroyService, FIXED_DROPDOWN_CONTROLLER_PROVIDER, { provide: SELECTION_STREAM, deps: [TuiDestroyService, DOCUMENT], useFactory: selectionStreamFactory, }, ]; export function selectionStreamFactory(destroy$, documentRef) { return fromEvent(documentRef, 'selectionchange').pipe(windowToggle(merge(fromEvent(documentRef, 'mouseup'), fromEvent(documentRef, 'keydown')), function () { return fromEvent(documentRef, 'mousedown'); }), flatMap(function (windowed$) { return windowed$.pipe(startWith(null)); }), takeUntil(destroy$)); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGhvbmUucHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LXBob25lLyIsInNvdXJjZXMiOlsiaW5wdXQtcGhvbmUucHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0UsTUFBTSxDQUFDLElBQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQzlDLCtCQUErQixDQUNsQyxDQUFDO0FBQ0YsTUFBTSxDQUFDLElBQU0scUJBQXFCLEdBQUc7SUFDakMsaUJBQWlCO0lBQ2pCLGtDQUFrQztJQUNsQztRQUNJLE9BQU8sRUFBRSxnQkFBZ0I7UUFDekIsSUFBSSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDO1FBQ25DLFVBQVUsRUFBRSxzQkFBc0I7S0FDckM7Q0FDSixDQUFDO0FBRUYsTUFBTSxVQUFVLHNCQUFzQixDQUNsQyxRQUE2QixFQUM3QixXQUFxQjtJQUVyQixPQUFPLFNBQVMsQ0FBQyxXQUFXLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQ2pELFlBQVksQ0FDUixLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsRUFBRSxTQUFTLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEVBQzNFLGNBQU0sT0FBQSxTQUFTLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFuQyxDQUFtQyxDQUM1QyxFQUNELE9BQU8sQ0FBQyxVQUFBLFNBQVMsSUFBSSxPQUFBLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQS9CLENBQStCLENBQUMsRUFDckQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUN0QixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0luamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHVpRGVzdHJveVNlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtGSVhFRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Byb3ZpZGVycyc7XG5pbXBvcnQge2Zyb21FdmVudCwgbWVyZ2UsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmbGF0TWFwLCBzdGFydFdpdGgsIHRha2VVbnRpbCwgd2luZG93VG9nZ2xlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjb25zdCBTRUxFQ1RJT05fU1RSRUFNID0gbmV3IEluamVjdGlvblRva2VuPE9ic2VydmFibGU8dW5rbm93bj4+KFxuICAgICdBIHN0cmVhbSBvZiBzZWxlY3Rpb24gY2hhbmdlcycsXG4pO1xuZXhwb3J0IGNvbnN0IElOUFVUX1BIT05FX1BST1ZJREVSUyA9IFtcbiAgICBUdWlEZXN0cm95U2VydmljZSxcbiAgICBGSVhFRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIHtcbiAgICAgICAgcHJvdmlkZTogU0VMRUNUSU9OX1NUUkVBTSxcbiAgICAgICAgZGVwczogW1R1aURlc3Ryb3lTZXJ2aWNlLCBET0NVTUVOVF0sXG4gICAgICAgIHVzZUZhY3Rvcnk6IHNlbGVjdGlvblN0cmVhbUZhY3RvcnksXG4gICAgfSxcbl07XG5cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3Rpb25TdHJlYW1GYWN0b3J5KFxuICAgIGRlc3Ryb3kkOiBPYnNlcnZhYmxlPHVua25vd24+LFxuICAgIGRvY3VtZW50UmVmOiBEb2N1bWVudCxcbik6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIHJldHVybiBmcm9tRXZlbnQoZG9jdW1lbnRSZWYsICdzZWxlY3Rpb25jaGFuZ2UnKS5waXBlKFxuICAgICAgICB3aW5kb3dUb2dnbGUoXG4gICAgICAgICAgICBtZXJnZShmcm9tRXZlbnQoZG9jdW1lbnRSZWYsICdtb3VzZXVwJyksIGZyb21FdmVudChkb2N1bWVudFJlZiwgJ2tleWRvd24nKSksXG4gICAgICAgICAgICAoKSA9PiBmcm9tRXZlbnQoZG9jdW1lbnRSZWYsICdtb3VzZWRvd24nKSxcbiAgICAgICAgKSxcbiAgICAgICAgZmxhdE1hcCh3aW5kb3dlZCQgPT4gd2luZG93ZWQkLnBpcGUoc3RhcnRXaXRoKG51bGwpKSksXG4gICAgICAgIHRha2VVbnRpbChkZXN0cm95JCksXG4gICAgKTtcbn1cbiJdfQ==