UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

30 lines 5.59 kB
import { DOCUMENT } from '@angular/common'; import { DestroyRef, inject, Injectable } from '@angular/core'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { expand, fromEvent, map, merge, share, Subject, switchMap, takeUntil, timer, } from 'rxjs'; import * as i0 from "@angular/core"; const INITIAL_DELAY = 300; const DELAY_DECREMENT = 15; const MIN_DELAY = 100; function getDelay(index) { return Math.max(INITIAL_DELAY - index * DELAY_DECREMENT, MIN_DELAY); } class TuiInputNumberStepService { constructor() { this.doc = inject(DOCUMENT); this.destroyRef = inject(DestroyRef); this.start$ = new Subject(); this.stop$ = merge(fromEvent(this.doc, 'pointerup'), fromEvent(this.doc, 'pointerleave'), fromEvent(this.doc, 'pointercancel')); this.steps$ = this.start$.pipe(switchMap((value) => timer(INITIAL_DELAY).pipe(expand((_, index) => timer(getDelay(index))), map(() => value), takeUntil(this.stop$))), takeUntilDestroyed(this.destroyRef), share()); } next(value) { this.start$.next(value); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputNumberStepService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputNumberStepService }); } } export { TuiInputNumberStepService }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputNumberStepService, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLXN0ZXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2lucHV0LW51bWJlci9zdGVwL2lucHV0LW51bWJlci1zdGVwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQ0gsTUFBTSxFQUNOLFNBQVMsRUFDVCxHQUFHLEVBQ0gsS0FBSyxFQUVMLEtBQUssRUFDTCxPQUFPLEVBQ1AsU0FBUyxFQUNULFNBQVMsRUFDVCxLQUFLLEdBQ1IsTUFBTSxNQUFNLENBQUM7O0FBRWQsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDO0FBQzFCLE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQztBQUMzQixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUM7QUFFdEIsU0FBUyxRQUFRLENBQUMsS0FBYTtJQUMzQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLEtBQUssR0FBRyxlQUFlLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDeEUsQ0FBQztBQUVELE1BQ2EseUJBQXlCO0lBRHRDO1FBRXFCLFFBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUMvQixVQUFLLEdBQUcsS0FBSyxDQUMxQixTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsRUFDaEMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLEVBQ25DLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxDQUN2QyxDQUFDO1FBRWMsV0FBTSxHQUF1QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDekQsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDaEIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FDckIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQzVDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFDaEIsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FDeEIsQ0FDSixFQUNELGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFDbkMsS0FBSyxFQUFFLENBQ1YsQ0FBQztLQUtMO0lBSFUsSUFBSSxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzsrR0F4QlEseUJBQXlCO21IQUF6Qix5QkFBeUI7O1NBQXpCLHlCQUF5Qjs0RkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7RGVzdHJveVJlZiwgaW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICAgIGV4cGFuZCxcbiAgICBmcm9tRXZlbnQsXG4gICAgbWFwLFxuICAgIG1lcmdlLFxuICAgIHR5cGUgT2JzZXJ2YWJsZSxcbiAgICBzaGFyZSxcbiAgICBTdWJqZWN0LFxuICAgIHN3aXRjaE1hcCxcbiAgICB0YWtlVW50aWwsXG4gICAgdGltZXIsXG59IGZyb20gJ3J4anMnO1xuXG5jb25zdCBJTklUSUFMX0RFTEFZID0gMzAwO1xuY29uc3QgREVMQVlfREVDUkVNRU5UID0gMTU7XG5jb25zdCBNSU5fREVMQVkgPSAxMDA7XG5cbmZ1bmN0aW9uIGdldERlbGF5KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLm1heChJTklUSUFMX0RFTEFZIC0gaW5kZXggKiBERUxBWV9ERUNSRU1FTlQsIE1JTl9ERUxBWSk7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dE51bWJlclN0ZXBTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvYyA9IGluamVjdChET0NVTUVOVCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RhcnQkID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcCQgPSBtZXJnZShcbiAgICAgICAgZnJvbUV2ZW50KHRoaXMuZG9jLCAncG9pbnRlcnVwJyksXG4gICAgICAgIGZyb21FdmVudCh0aGlzLmRvYywgJ3BvaW50ZXJsZWF2ZScpLFxuICAgICAgICBmcm9tRXZlbnQodGhpcy5kb2MsICdwb2ludGVyY2FuY2VsJyksXG4gICAgKTtcblxuICAgIHB1YmxpYyByZWFkb25seSBzdGVwcyQ6IE9ic2VydmFibGU8bnVtYmVyPiA9IHRoaXMuc3RhcnQkLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgodmFsdWUpID0+XG4gICAgICAgICAgICB0aW1lcihJTklUSUFMX0RFTEFZKS5waXBlKFxuICAgICAgICAgICAgICAgIGV4cGFuZCgoXywgaW5kZXgpID0+IHRpbWVyKGdldERlbGF5KGluZGV4KSkpLFxuICAgICAgICAgICAgICAgIG1hcCgoKSA9PiB2YWx1ZSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuc3RvcCQpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXG4gICAgICAgIHNoYXJlKCksXG4gICAgKTtcblxuICAgIHB1YmxpYyBuZXh0KHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdGFydCQubmV4dCh2YWx1ZSk7XG4gICAgfVxufVxuIl19