UNPKG

@bimeister/pupakit.kit

Version:

PupaKit is an open source collection of Angular components based on an atomic approach to building interfaces, which guarantees better performance and greater development flexibility.

29 lines 5.92 kB
import { Injectable } from '@angular/core'; import { BehaviorSubject, combineLatest } from 'rxjs'; import { map, take } from 'rxjs/operators'; import '../../../declarations/interfaces/stepper-item.interface'; import * as i0 from "@angular/core"; export class StepperRegistryService { constructor() { this.stepperItemsState$ = new BehaviorSubject([]); this.stepperItems$ = this.stepperItemsState$.asObservable(); this.stepperItemsLength$ = this.stepperItems$.pipe(map((stepperItems) => stepperItems.length)); } registerStepperItem(stepperItem) { this.stepperItemsState$.pipe(take(1)).subscribe((stepperItems) => { this.stepperItemsState$.next([...stepperItems, stepperItem]); }); } getStepperItemIndex(stepperItemComponent) { return this.stepperItems$.pipe(take(1), map((stepperItems) => stepperItems.findIndex((stepperItem) => stepperItem === stepperItemComponent)), map((stepperItemIndex) => stepperItemIndex + 1)); } isLastStepperItem(stepperItemComponent) { return combineLatest([this.stepperItemsLength$, this.getStepperItemIndex(stepperItemComponent)]).pipe(map(([stepperItemsLength, stepperItemIndex]) => stepperItemsLength === stepperItemIndex)); } } StepperRegistryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: StepperRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); StepperRegistryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: StepperRegistryService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: StepperRegistryService, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci1yZWdpc3RyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc3RlcHBlci9zZXJ2aWNlcy9zdGVwcGVyLXJlZ2lzdHJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQTRCLHlEQUF5RCxDQUFDOztBQUd0RixNQUFNLE9BQU8sc0JBQXNCO0lBRG5DO1FBRW1CLHVCQUFrQixHQUFzQyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVqRixrQkFBYSxHQUFpQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFckYsd0JBQW1CLEdBQXVCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUMvRSxHQUFHLENBQUMsQ0FBQyxZQUE4QixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQzdELENBQUM7S0F1Qkg7SUFyQlEsbUJBQW1CLENBQUMsV0FBMkI7UUFDcEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUE4QixFQUFFLEVBQUU7WUFDakYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sbUJBQW1CLENBQUMsb0JBQW9DO1FBQzdELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQzVCLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsQ0FBQyxZQUE4QixFQUFFLEVBQUUsQ0FDckMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQTJCLEVBQUUsRUFBRSxDQUFDLFdBQVcsS0FBSyxvQkFBb0IsQ0FBQyxDQUM5RixFQUNELEdBQUcsQ0FBQyxDQUFDLGdCQUF3QixFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsQ0FDeEQsQ0FBQztJQUNKLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxvQkFBb0M7UUFDM0QsT0FBTyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDbkcsR0FBRyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxnQkFBZ0IsQ0FBbUIsRUFBRSxFQUFFLENBQUMsa0JBQWtCLEtBQUssZ0JBQWdCLENBQUMsQ0FDM0csQ0FBQztJQUNKLENBQUM7O29IQTdCVSxzQkFBc0I7d0hBQXRCLHNCQUFzQjs0RkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdGVwcGVySXRlbSB9IGZyb20gJy4uLy4uLy4uL2RlY2xhcmF0aW9ucy9pbnRlcmZhY2VzL3N0ZXBwZXItaXRlbS5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU3RlcHBlclJlZ2lzdHJ5U2VydmljZTxUPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RlcHBlckl0ZW1zU3RhdGUkOiBCZWhhdmlvclN1YmplY3Q8U3RlcHBlckl0ZW08VD5bXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgc3RlcHBlckl0ZW1zJDogT2JzZXJ2YWJsZTxTdGVwcGVySXRlbTxUPltdPiA9IHRoaXMuc3RlcHBlckl0ZW1zU3RhdGUkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHB1YmxpYyByZWFkb25seSBzdGVwcGVySXRlbXNMZW5ndGgkOiBPYnNlcnZhYmxlPG51bWJlcj4gPSB0aGlzLnN0ZXBwZXJJdGVtcyQucGlwZShcbiAgICBtYXAoKHN0ZXBwZXJJdGVtczogU3RlcHBlckl0ZW08VD5bXSkgPT4gc3RlcHBlckl0ZW1zLmxlbmd0aClcbiAgKTtcblxuICBwdWJsaWMgcmVnaXN0ZXJTdGVwcGVySXRlbShzdGVwcGVySXRlbTogU3RlcHBlckl0ZW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLnN0ZXBwZXJJdGVtc1N0YXRlJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoc3RlcHBlckl0ZW1zOiBTdGVwcGVySXRlbTxUPltdKSA9PiB7XG4gICAgICB0aGlzLnN0ZXBwZXJJdGVtc1N0YXRlJC5uZXh0KFsuLi5zdGVwcGVySXRlbXMsIHN0ZXBwZXJJdGVtXSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3RlcHBlckl0ZW1JbmRleChzdGVwcGVySXRlbUNvbXBvbmVudDogU3RlcHBlckl0ZW08VD4pOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLnN0ZXBwZXJJdGVtcyQucGlwZShcbiAgICAgIHRha2UoMSksXG4gICAgICBtYXAoKHN0ZXBwZXJJdGVtczogU3RlcHBlckl0ZW08VD5bXSkgPT5cbiAgICAgICAgc3RlcHBlckl0ZW1zLmZpbmRJbmRleCgoc3RlcHBlckl0ZW06IFN0ZXBwZXJJdGVtPFQ+KSA9PiBzdGVwcGVySXRlbSA9PT0gc3RlcHBlckl0ZW1Db21wb25lbnQpXG4gICAgICApLFxuICAgICAgbWFwKChzdGVwcGVySXRlbUluZGV4OiBudW1iZXIpID0+IHN0ZXBwZXJJdGVtSW5kZXggKyAxKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgaXNMYXN0U3RlcHBlckl0ZW0oc3RlcHBlckl0ZW1Db21wb25lbnQ6IFN0ZXBwZXJJdGVtPFQ+KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW3RoaXMuc3RlcHBlckl0ZW1zTGVuZ3RoJCwgdGhpcy5nZXRTdGVwcGVySXRlbUluZGV4KHN0ZXBwZXJJdGVtQ29tcG9uZW50KV0pLnBpcGUoXG4gICAgICBtYXAoKFtzdGVwcGVySXRlbXNMZW5ndGgsIHN0ZXBwZXJJdGVtSW5kZXhdOiBbbnVtYmVyLCBudW1iZXJdKSA9PiBzdGVwcGVySXRlbXNMZW5ndGggPT09IHN0ZXBwZXJJdGVtSW5kZXgpXG4gICAgKTtcbiAgfVxufVxuIl19