@antischematic/angular-state-library
Version:
Reactive state without boilerplate
33 lines • 3.89 kB
JavaScript
import { Directive, ElementRef, inject, Input } from "@angular/core";
import { ReplaySubject } from "rxjs";
import * as i0 from "@angular/core";
export class TemplateProvider extends ReplaySubject {
constructor() {
super(1);
this._firstValue = false;
const style = inject(ElementRef).nativeElement?.style;
if (style)
style.display = "contents";
}
set __value(value) {
this._firstValue = true;
this.next(value);
}
ngOnInit() {
if (!this._firstValue) {
this.next(this.value);
}
}
subscribe(observer) {
return super.subscribe(observer);
}
}
TemplateProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: TemplateProvider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
TemplateProvider.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: TemplateProvider, inputs: { __value: ["value", "__value"] }, usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: TemplateProvider, decorators: [{
type: Directive
}], ctorParameters: function () { return []; }, propDecorators: { __value: [{
type: Input,
args: ["value"]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy90ZW1wbGF0ZS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBVyxhQUFhLEVBQWUsTUFBTSxNQUFNLENBQUM7O0FBRzNELE1BQU0sT0FBZ0IsZ0JBQWlCLFNBQVEsYUFBc0I7SUFzQmxFO1FBQ0csS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBdEJILGdCQUFXLEdBQUcsS0FBSyxDQUFBO1FBdUJ4QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQTtRQUNyRCxJQUFJLEtBQUs7WUFBRSxLQUFLLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQTtJQUN4QyxDQUFDO0lBckJELElBQW9CLE9BQU8sQ0FBQyxLQUFvQjtRQUM3QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ25CLENBQUM7SUFFRCxRQUFRO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDdkI7SUFDSixDQUFDO0lBSVEsU0FBUyxDQUFDLFFBQWM7UUFDOUIsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7OzZHQXBCa0IsZ0JBQWdCO2lHQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFEckMsU0FBUzswRUFNYSxPQUFPO3NCQUExQixLQUFLO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbnB1dCwgT25Jbml0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtPYnNlcnZlciwgUmVwbGF5U3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUZW1wbGF0ZVByb3ZpZGVyIGV4dGVuZHMgUmVwbGF5U3ViamVjdDx1bmtub3duPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICBwcml2YXRlIF9maXJzdFZhbHVlID0gZmFsc2VcblxuICAgYWJzdHJhY3QgdmFsdWU6IHVua25vd25cblxuICAgQElucHV0KFwidmFsdWVcIikgc2V0IF9fdmFsdWUodmFsdWU6IHRoaXNbXCJ2YWx1ZVwiXSkge1xuICAgICAgdGhpcy5fZmlyc3RWYWx1ZSA9IHRydWVcbiAgICAgIHRoaXMubmV4dCh2YWx1ZSlcbiAgIH1cblxuICAgbmdPbkluaXQoKSB7XG4gICAgICBpZiAoIXRoaXMuX2ZpcnN0VmFsdWUpIHtcbiAgICAgICAgIHRoaXMubmV4dCh0aGlzLnZhbHVlKVxuICAgICAgfVxuICAgfVxuXG4gICBvdmVycmlkZSBzdWJzY3JpYmUobmV4dDogKHZhbHVlOiB0aGlzWyd2YWx1ZSddKSA9PiB2b2lkKTogU3Vic2NyaXB0aW9uO1xuICAgb3ZlcnJpZGUgc3Vic2NyaWJlKG9ic2VydmVyPzogUGFydGlhbDxPYnNlcnZlcjx0aGlzWyd2YWx1ZSddPj4pOiBTdWJzY3JpcHRpb25cbiAgIG92ZXJyaWRlIHN1YnNjcmliZShvYnNlcnZlcj86IGFueSk6IFN1YnNjcmlwdGlvbiB7XG4gICAgICByZXR1cm4gc3VwZXIuc3Vic2NyaWJlKG9ic2VydmVyKTtcbiAgIH1cblxuICAgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigxKVxuICAgICAgY29uc3Qgc3R5bGUgPSBpbmplY3QoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudD8uc3R5bGVcbiAgICAgIGlmIChzdHlsZSkgc3R5bGUuZGlzcGxheSA9IFwiY29udGVudHNcIlxuICAgfVxufVxuIl19