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.

67 lines 9.04 kB
import { Directive, Input } from '@angular/core'; import '@bimeister/pupakit.common'; import { filterTruthy, isNil } from '@bimeister/utilities'; import { combineLatest } from 'rxjs'; import { map, take } from 'rxjs/operators'; import '../../interfaces/tag-state-service.interface'; import '../../types/tag-kind.type'; import * as i0 from "@angular/core"; export class TagBase { constructor(tagStateService) { this.tagStateService = tagStateService; this.disabled = false; this.isDisabled$ = this.tagStateService.isDisabled$; this.clickable = false; this.isClickable$ = this.tagStateService.isClickable$; this.kind = 'opacity'; this.kind$ = this.tagStateService.kind$; this.kindClass$ = this.kind$.pipe(map((kind) => `tag_${kind}`)); this.isInteractive$ = combineLatest([ this.tagStateService.isDisabled$, this.tagStateService.isClickable$, ]).pipe(map(([isDisabled, isClickable]) => !isDisabled && isClickable)); } ngOnChanges(changes) { this.processDisabledChange(changes?.disabled); this.processClickableChange(changes?.clickable); this.processColorChange(changes?.kind); } processInteraction(event) { this.isDisabled$.pipe(take(1), filterTruthy()).subscribe(() => { event.stopPropagation(); }); } processDisabledChange(change) { const updatedValue = change?.currentValue; if (isNil(updatedValue)) { return; } this.isDisabled$.next(updatedValue); } processClickableChange(change) { const updatedValue = change?.currentValue; if (isNil(updatedValue)) { return; } this.isClickable$.next(updatedValue); } processColorChange(change) { const updatedValue = change?.currentValue; if (isNil(updatedValue)) { return; } this.kind$.next(updatedValue); } } TagBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TagBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); TagBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: TagBase, inputs: { disabled: "disabled", clickable: "clickable", kind: "kind" }, usesOnChanges: true, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TagBase, decorators: [{ type: Directive }], ctorParameters: function () { return [{ type: undefined }]; }, propDecorators: { disabled: [{ type: Input }], clickable: [{ type: Input }], kind: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLWJhc2UuYWJzdHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGVjbGFyYXRpb25zL2NsYXNzZXMvYWJzdHJhY3QvdGFnLWJhc2UuYWJzdHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBa0QsMkJBQTJCLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQW1CLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQTJDLDhDQUE4QyxDQUFDO0FBQzFGLE9BQXdCLDJCQUEyQixDQUFDOztBQUdwRCxNQUFNLE9BQWdCLE9BQU87SUFnQjNCLFlBQStCLGVBQTJDO1FBQTNDLG9CQUFlLEdBQWYsZUFBZSxDQUE0QjtRQWYxRCxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGdCQUFXLEdBQTZCLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDO1FBRXpFLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsaUJBQVksR0FBNkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUM7UUFFM0UsU0FBSSxHQUFZLFNBQVMsQ0FBQztRQUN6QixVQUFLLEdBQTZCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO1FBRTlELGVBQVUsR0FBdUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBYSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4RixtQkFBYyxHQUF3QixhQUFhLENBQUM7WUFDbEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXO1lBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWTtTQUNsQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBcUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQztJQUVmLENBQUM7SUFFdkUsV0FBVyxDQUFDLE9BQStCO1FBQ2hELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxLQUFZO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDNUQsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHFCQUFxQixDQUFDLE1BQXNDO1FBQ2xFLE1BQU0sWUFBWSxHQUF3QixNQUFNLEVBQUUsWUFBWSxDQUFDO1FBRS9ELElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3ZCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxNQUFzQztRQUNuRSxNQUFNLFlBQVksR0FBd0IsTUFBTSxFQUFFLFlBQVksQ0FBQztRQUUvRCxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUN2QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU8sa0JBQWtCLENBQUMsTUFBc0M7UUFDL0QsTUFBTSxZQUFZLEdBQXdCLE1BQU0sRUFBRSxZQUFZLENBQUM7UUFFL0QsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDdkIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7cUdBMURtQixPQUFPO3lGQUFQLE9BQU87NEZBQVAsT0FBTztrQkFENUIsU0FBUzs2RkFFUSxRQUFRO3NCQUF2QixLQUFLO2dCQUdVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBR1UsSUFBSTtzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50Q2hhbmdlLCBDb21wb25lbnRDaGFuZ2VzIH0gZnJvbSAnQGJpbWVpc3Rlci9wdXBha2l0LmNvbW1vbic7XG5pbXBvcnQgeyBmaWx0ZXJUcnV0aHksIGlzTmlsIH0gZnJvbSAnQGJpbWVpc3Rlci91dGlsaXRpZXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUYWdTdGF0ZVNlcnZpY2VEZWNsYXJhdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGFnLXN0YXRlLXNlcnZpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhZ0tpbmQgfSBmcm9tICcuLi8uLi90eXBlcy90YWcta2luZC50eXBlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVGFnQmFzZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgcmVhZG9ubHkgaXNEaXNhYmxlZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IHRoaXMudGFnU3RhdGVTZXJ2aWNlLmlzRGlzYWJsZWQkO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBjbGlja2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHJlYWRvbmx5IGlzQ2xpY2thYmxlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gdGhpcy50YWdTdGF0ZVNlcnZpY2UuaXNDbGlja2FibGUkO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBraW5kOiBUYWdLaW5kID0gJ29wYWNpdHknO1xuICBwcml2YXRlIHJlYWRvbmx5IGtpbmQkOiBCZWhhdmlvclN1YmplY3Q8VGFnS2luZD4gPSB0aGlzLnRhZ1N0YXRlU2VydmljZS5raW5kJDtcblxuICBwdWJsaWMgcmVhZG9ubHkga2luZENsYXNzJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5raW5kJC5waXBlKG1hcCgoa2luZDogVGFnS2luZCkgPT4gYHRhZ18ke2tpbmR9YCkpO1xuICBwdWJsaWMgcmVhZG9ubHkgaXNJbnRlcmFjdGl2ZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLnRhZ1N0YXRlU2VydmljZS5pc0Rpc2FibGVkJCxcbiAgICB0aGlzLnRhZ1N0YXRlU2VydmljZS5pc0NsaWNrYWJsZSQsXG4gIF0pLnBpcGUobWFwKChbaXNEaXNhYmxlZCwgaXNDbGlja2FibGVdOiBbYm9vbGVhbiwgYm9vbGVhbl0pID0+ICFpc0Rpc2FibGVkICYmIGlzQ2xpY2thYmxlKSk7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IHRhZ1N0YXRlU2VydmljZTogVGFnU3RhdGVTZXJ2aWNlRGVjbGFyYXRpb24pIHt9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IENvbXBvbmVudENoYW5nZXM8dGhpcz4pOiB2b2lkIHtcbiAgICB0aGlzLnByb2Nlc3NEaXNhYmxlZENoYW5nZShjaGFuZ2VzPy5kaXNhYmxlZCk7XG4gICAgdGhpcy5wcm9jZXNzQ2xpY2thYmxlQ2hhbmdlKGNoYW5nZXM/LmNsaWNrYWJsZSk7XG4gICAgdGhpcy5wcm9jZXNzQ29sb3JDaGFuZ2UoY2hhbmdlcz8ua2luZCk7XG4gIH1cblxuICBwdWJsaWMgcHJvY2Vzc0ludGVyYWN0aW9uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuaXNEaXNhYmxlZCQucGlwZSh0YWtlKDEpLCBmaWx0ZXJUcnV0aHkoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzRGlzYWJsZWRDaGFuZ2UoY2hhbmdlOiBDb21wb25lbnRDaGFuZ2U8dGhpcywgYm9vbGVhbj4pOiB2b2lkIHtcbiAgICBjb25zdCB1cGRhdGVkVmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBjaGFuZ2U/LmN1cnJlbnRWYWx1ZTtcblxuICAgIGlmIChpc05pbCh1cGRhdGVkVmFsdWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc0Rpc2FibGVkJC5uZXh0KHVwZGF0ZWRWYWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NDbGlja2FibGVDaGFuZ2UoY2hhbmdlOiBDb21wb25lbnRDaGFuZ2U8dGhpcywgYm9vbGVhbj4pOiB2b2lkIHtcbiAgICBjb25zdCB1cGRhdGVkVmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBjaGFuZ2U/LmN1cnJlbnRWYWx1ZTtcblxuICAgIGlmIChpc05pbCh1cGRhdGVkVmFsdWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc0NsaWNrYWJsZSQubmV4dCh1cGRhdGVkVmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzQ29sb3JDaGFuZ2UoY2hhbmdlOiBDb21wb25lbnRDaGFuZ2U8dGhpcywgVGFnS2luZD4pOiB2b2lkIHtcbiAgICBjb25zdCB1cGRhdGVkVmFsdWU6IFRhZ0tpbmQgfCB1bmRlZmluZWQgPSBjaGFuZ2U/LmN1cnJlbnRWYWx1ZTtcblxuICAgIGlmIChpc05pbCh1cGRhdGVkVmFsdWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5raW5kJC5uZXh0KHVwZGF0ZWRWYWx1ZSk7XG4gIH1cbn1cbiJdfQ==