UNPKG

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