UNPKG

mobx-angular

Version:

Angular connector to MobX (2 and above)

28 lines 4.07 kB
import { Directive, Input } from '@angular/core'; import { reaction } from 'mobx'; import { MobxAutorunDirective } from './mobx-autorun.directive'; import * as i0 from "@angular/core"; export class MobxReactionDirective extends MobxAutorunDirective { constructor(templateRef, viewContainer) { super(templateRef, viewContainer); this.templateRef = templateRef; this.viewContainer = viewContainer; } autoDetect(view) { const opts = Object.assign({ fireImmediately: true }, this.mobxReactionOptions); this.dispose = reaction(this.mobxReaction, () => { view.detectChanges(); }, opts); } } MobxReactionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: MobxReactionDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); MobxReactionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.5", type: MobxReactionDirective, selector: "[mobxReaction]", inputs: { mobxReaction: "mobxReaction", mobxReactionOptions: "mobxReactionOptions" }, usesInheritance: true, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: MobxReactionDirective, decorators: [{ type: Directive, args: [{ selector: '[mobxReaction]' }] }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { mobxReaction: [{ type: Input }], mobxReactionOptions: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ieC1yZWFjdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tb2J4LWFuZ3VsYXIvc3JjL2xpYi9tb2J4LXJlYWN0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFpQyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFvQixRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBR2hFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxvQkFBb0I7SUFJN0QsWUFDWSxXQUE2QixFQUM3QixhQUErQjtRQUV6QyxLQUFLLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBSHhCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7SUFHM0MsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFJO1FBQ2IsTUFBTSxJQUFJLEdBQStCLE1BQU0sQ0FBQyxNQUFNLENBQ3BELEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxFQUN6QixJQUFJLENBQUMsbUJBQW1CLENBQ3pCLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FDckIsSUFBSSxDQUFDLFlBQVksRUFDakIsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUMsRUFDRCxJQUFJLENBQ0wsQ0FBQztJQUNKLENBQUM7O2tIQXhCVSxxQkFBcUI7c0dBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFO2lJQUU5QixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVmlld0NvbnRhaW5lclJlZiwgVGVtcGxhdGVSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUmVhY3Rpb25PcHRpb25zLCByZWFjdGlvbiB9IGZyb20gJ21vYngnO1xuaW1wb3J0IHsgTW9ieEF1dG9ydW5EaXJlY3RpdmUgfSBmcm9tICcuL21vYngtYXV0b3J1bi5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbbW9ieFJlYWN0aW9uXScgfSlcbmV4cG9ydCBjbGFzcyBNb2J4UmVhY3Rpb25EaXJlY3RpdmUgZXh0ZW5kcyBNb2J4QXV0b3J1bkRpcmVjdGl2ZSB7XG4gIEBJbnB1dCgpIG1vYnhSZWFjdGlvbjtcbiAgQElucHV0KCkgbW9ieFJlYWN0aW9uT3B0aW9uczogSVJlYWN0aW9uT3B0aW9uczxhbnksIGFueT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHByb3RlY3RlZCB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge1xuICAgIHN1cGVyKHRlbXBsYXRlUmVmLCB2aWV3Q29udGFpbmVyKTtcbiAgfVxuXG4gIGF1dG9EZXRlY3Qodmlldykge1xuICAgIGNvbnN0IG9wdHM6IElSZWFjdGlvbk9wdGlvbnM8YW55LCBhbnk+ID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHsgZmlyZUltbWVkaWF0ZWx5OiB0cnVlIH0sXG4gICAgICB0aGlzLm1vYnhSZWFjdGlvbk9wdGlvbnNcbiAgICApO1xuXG4gICAgdGhpcy5kaXNwb3NlID0gcmVhY3Rpb24oXG4gICAgICB0aGlzLm1vYnhSZWFjdGlvbixcbiAgICAgICgpID0+IHtcbiAgICAgICAgdmlldy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9LFxuICAgICAgb3B0c1xuICAgICk7XG4gIH1cbn1cbiJdfQ==