1 | {"version":3,"file":"mobx-angular.mjs","sources":["../../../projects/mobx-angular/src/lib/mobx-autorun.directive.ts","../../../projects/mobx-angular/src/lib/mobx-reaction.directive.ts","../../../projects/mobx-angular/src/lib/router-store.service.ts","../../../projects/mobx-angular/src/lib/mobx-angular.module.ts","../../../projects/mobx-angular/src/public-api.ts","../../../projects/mobx-angular/src/mobx-angular.ts"],"sourcesContent":["import {\n Directive,\n ViewContainerRef,\n TemplateRef,\n OnInit,\n OnDestroy,\n Input,\n EmbeddedViewRef\n} from '@angular/core';\nimport { autorun, IAutorunOptions } from 'mobx';\n// import { mobxAngularDebug } from '../utils/mobx-angular-debug';\n\n@Directive({ selector: '[mobxAutorun]' })\nexport class MobxAutorunDirective implements OnInit, OnDestroy {\n protected templateBindings = {};\n protected dispose: any;\n protected view: EmbeddedViewRef<any>;\n private readonly allAutorunOptions: Array<keyof IAutorunOptions> = [\n 'delay',\n 'scheduler',\n 'requiresObservable',\n 'name',\n 'onError'\n ];\n @Input() mobxAutorun;\n\n constructor(\n protected templateRef: TemplateRef<any>,\n protected viewContainer: ViewContainerRef\n ) {}\n\n ngOnInit() {\n this.view = this.viewContainer.createEmbeddedView(this.templateRef);\n\n if (this.dispose) {\n this.dispose();\n }\n\n if (this.shouldDetach()) {\n this.view.detach();\n }\n this.autoDetect(this.view);\n // mobxAngularDebug(this.view, this.dispose);\n }\n\n shouldDetach() {\n return this.mobxAutorun && this.mobxAutorun.detach;\n }\n\n autoDetect(view: EmbeddedViewRef<any>) {\n const opts: IAutorunOptions = this.getAutorunOptions();\n\n this.dispose = autorun(() => view.detectChanges(), opts);\n }\n\n getAutorunOptions(): IAutorunOptions {\n return Object.keys(this.mobxAutorun || {}).reduce((opts, current) => {\n if (this.allAutorunOptions.includes(current as keyof IAutorunOptions)) {\n opts[current] = this.mobxAutorun[current];\n }\n return opts;\n }, {});\n }\n\n ngOnDestroy() {\n if (this.dispose) {\n this.dispose();\n }\n }\n}\n","import { Directive, ViewContainerRef, TemplateRef, Input } from '@angular/core';\nimport { IReactionOptions, reaction } from 'mobx';\nimport { MobxAutorunDirective } from './mobx-autorun.directive';\n\n@Directive({ selector: '[mobxReaction]' })\nexport class MobxReactionDirective extends MobxAutorunDirective {\n @Input() mobxReaction;\n @Input() mobxReactionOptions: IReactionOptions<any, any>;\n\n constructor(\n protected templateRef: TemplateRef<any>,\n protected viewContainer: ViewContainerRef\n ) {\n super(templateRef, viewContainer);\n }\n\n autoDetect(view) {\n const opts: IReactionOptions<any, any> = Object.assign(\n { fireImmediately: true },\n this.mobxReactionOptions\n );\n\n this.dispose = reaction(\n this.mobxReaction,\n () => {\n view.detectChanges();\n },\n opts\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { makeAutoObservable } from 'mobx';\nimport {\n ActivatedRoute,\n ActivatedRouteSnapshot,\n NavigationEnd,\n Router\n} from '@angular/router';\nimport { filter } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class RouterStore {\n url = '';\n routeSnapshot: ActivatedRouteSnapshot = null;\n\n constructor(private router: Router, private activatedRoute: ActivatedRoute) {\n makeAutoObservable(this);\n\n router.events\n .pipe(filter((event) => event instanceof NavigationEnd))\n .subscribe((e: NavigationEnd) => this.routeListener(e));\n }\n\n private routeListener(event: NavigationEnd) {\n this.routeSnapshot = this.activatedRoute.snapshot;\n this.url = event.urlAfterRedirects;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { MobxAutorunDirective } from './mobx-autorun.directive';\nimport { MobxReactionDirective } from './mobx-reaction.directive';\n\nconst DIRECTIVES = [MobxAutorunDirective, MobxReactionDirective];\n@NgModule({\n declarations: DIRECTIVES,\n exports: DIRECTIVES\n})\nexport class MobxAngularModule {}\n","/*\n * Public API Surface of mobx-angular\n */\n\nimport { action as mobxAction } from 'mobx';\nimport { computed as mobxComputed } from 'mobx';\nimport { observable as mobxObservable } from 'mobx';\n\nexport * from './lib/mobx-autorun.directive';\nexport * from './lib/mobx-reaction.directive';\nexport * from './lib/router-store.service';\nexport * from './lib/mobx-angular.module';\n\n// Re-export mobx operators to be able to use inside components with AOT:\nexport function actionInternal(...args) {\n return (mobxAction as any)(...args);\n}\nexport const action: typeof mobxAction = Object.assign(\n actionInternal,\n mobxAction\n) as any;\n\nfunction computedInternal(...args) {\n return (mobxComputed as any)(...args);\n}\nexport const computed: typeof mobxComputed = Object.assign(\n computedInternal,\n mobxComputed\n) as any;\n\nfunction observableInternal(...args) {\n return (mobxObservable as any)(...args);\n}\n\nexport const observable: typeof mobxObservable = Object.assign(\n observableInternal,\n mobxObservable\n) as any;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["mobxAction","mobxComputed","mobxObservable"],"mappings":"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"} |