{"version":3,"file":"ngx-rxjs-zone-scheduler.mjs","sources":["../../../../libs/ngx-rxjs-zone-scheduler/src/lib/rx-ng-zone-scheduler.ts","../../../../libs/ngx-rxjs-zone-scheduler/src/lib/rx-ng-zone-scheduler.module.ts","../../../../libs/ngx-rxjs-zone-scheduler/src/lib/providers.ts","../../../../libs/ngx-rxjs-zone-scheduler/src/ngx-rxjs-zone-scheduler.ts"],"sourcesContent":["import { Injectable, NgZone } from '@angular/core';\nimport {\n  asyncScheduler,\n  MonoTypeOperatorFunction,\n  SchedulerLike,\n  Subscription,\n} from 'rxjs';\nimport { observeOn, subscribeOn } from 'rxjs/operators';\n\ntype Work<T> = (state?: T) => void;\ntype Delay = number | undefined;\n\nabstract class ZoneScheduler implements SchedulerLike {\n  constructor(protected ngZone: NgZone, protected scheduler: SchedulerLike) {}\n\n  abstract schedule<T>(...args: [Work<T>, Delay, T]): Subscription;\n\n  now(): number {\n    return this.scheduler.now();\n  }\n}\n\nclass LeaveZoneScheduler extends ZoneScheduler {\n  override schedule<T>(...args: [Work<T>, Delay, T]): Subscription {\n    return this.ngZone.runOutsideAngular(() => {\n      return this.scheduler.schedule(...args);\n    });\n  }\n}\n\nclass EnterZoneScheduler extends ZoneScheduler {\n  override schedule<T>(...args: [Work<T>, Delay, T]): Subscription {\n    return NgZone.isInAngularZone()\n      ? this.scheduler.schedule(...args)\n      : this.ngZone.run(() => this.scheduler.schedule(...args));\n  }\n}\n\nexport function enterNgZone(\n  ngZone: NgZone,\n  scheduler: SchedulerLike = asyncScheduler\n): SchedulerLike {\n  return new EnterZoneScheduler(ngZone, scheduler);\n}\n\nexport function leaveNgZone(\n  ngZone: NgZone,\n  scheduler: SchedulerLike = asyncScheduler\n): SchedulerLike {\n  return new LeaveZoneScheduler(ngZone, scheduler);\n}\n\n@Injectable()\nexport class RxNgZoneScheduler {\n  constructor(private ngZone: NgZone) {}\n\n  public observeOnNgZone<T>(\n    scheduler?: SchedulerLike\n  ): MonoTypeOperatorFunction<T> {\n    return observeOn<T>(this.enterNgZone(scheduler));\n  }\n\n  public observeOutOfNgZone<T>(\n    scheduler?: SchedulerLike\n  ): MonoTypeOperatorFunction<T> {\n    return observeOn<T>(this.leaveNgZone(scheduler));\n  }\n\n  public subscribeOnNgZone<T>(\n    scheduler?: SchedulerLike\n  ): MonoTypeOperatorFunction<T> {\n    return subscribeOn<T>(this.enterNgZone(scheduler));\n  }\n\n  public subscribeOutOfNgZone<T>(\n    scheduler?: SchedulerLike\n  ): MonoTypeOperatorFunction<T> {\n    return subscribeOn<T>(this.leaveNgZone(scheduler));\n  }\n\n  public enterNgZone(scheduler: SchedulerLike = asyncScheduler): SchedulerLike {\n    return enterNgZone(this.ngZone, scheduler);\n  }\n\n  public leaveNgZone(scheduler: SchedulerLike = asyncScheduler): SchedulerLike {\n    return leaveNgZone(this.ngZone, scheduler);\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { RxNgZoneScheduler } from './rx-ng-zone-scheduler';\n\n@NgModule({\n  providers: [RxNgZoneScheduler],\n})\nexport class RxNgZoneSchedulerModule {}\n","import { makeEnvironmentProviders } from '@angular/core';\nimport { RxNgZoneScheduler } from './rx-ng-zone-scheduler';\n\nexport const provideRxNgZoneScheduler = () =>\n  makeEnvironmentProviders([RxNgZoneScheduler]);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}