{"version":3,"file":"mmuscat-angular-composition-api.mjs","sources":["../../../packages/core/src/utils.ts","../../../packages/core/src/types.ts","../../../packages/core/src/core.ts","../../../packages/core/src/select.ts","../../../packages/core/src/common.ts","../../../packages/core/src/provider.ts","../../../packages/core/src/lifecycle.ts","../../../packages/core/src/event-manager.ts","../../../packages/core/src/public-api.ts","../../../packages/core/src/mmuscat-angular-composition-api.ts"],"sourcesContent":["import { PartialObserver, Subscription } from \"rxjs\"\nimport {\n   CheckSubject,\n   Emitter,\n   ExpandValue,\n   NoCheck,\n   UnsubscribeSignal,\n   Value,\n} from \"./interfaces\"\n\nexport function isObject(value: unknown): value is {} {\n   return typeof value === \"object\" && value !== null\n}\n\nexport function isEmitter(value: any): value is Emitter<any> {\n   return typeof value === \"function\" && \"__ng_emitter\" in value\n}\n\nexport function isValue(value: any): value is Value<any> {\n   return typeof value === \"function\" && \"__ng_value\" in value\n}\n\nexport function isSignal(value: any): value is UnsubscribeSignal {\n   return (\n      value === null ||\n      value instanceof Subscription ||\n      value instanceof AbortSignal\n   )\n}\n\nexport function isObserver(\n   observer: any,\n): observer is PartialObserver<any> | Function {\n   return (observer && \"next\" in observer) || typeof observer === \"function\"\n      ? observer\n      : void 0\n}\n\nexport function accept<T>(\n   observer: PartialObserver<any> | ((value: T) => any),\n   value: T,\n   error: unknown,\n   kind: string,\n) {\n   if (typeof observer === \"function\") {\n      if (kind === \"N\") return observer(value)\n      return\n   }\n   return kind === \"N\"\n      ? observer.next?.(value!)\n      : kind === \"E\"\n      ? observer.error?.(error)\n      : observer.complete?.()\n}\n\nexport function getPath(value: any, path: string[]): any {\n   if (!path.length) return value\n   return path.reduceRight((val: any, key) => val?.[key], value)\n}\n\nexport function walk<T extends { [key: string]: any }>(\n   object: T,\n   next: (value: any, path: string[], done: Function) => any,\n   path: string[] = [],\n   acc = {} as any,\n): { [key: string]: any } {\n   let isDone = false\n   function done() {\n      isDone = true\n   }\n   return Object.getOwnPropertyNames(object).reduce((acc, key) => {\n      isDone = false\n      const value = object[key]\n      const currentPath = [key, ...path]\n      acc[key] = next(value, currentPath, done)\n      if (isObject(value) && !isDone) {\n         walk(value, next, currentPath, acc[key])\n      }\n      return acc\n   }, acc)\n}\n\nfunction read(current: any, done: Function) {\n   return Array.isArray(current)\n      ? (done(), current)\n      : isObject(current)\n      ? { ...current }\n      : current\n}\n\nexport function get<T extends {}>(value: T): ExpandValue<T>\nexport function get<T>(value: Value<T>): T\nexport function get(value: any) {\n   if (isValue(value)) return value()\n   return walk(value, (current, path, done) =>\n      isValue(current) ? current() : read(current, done),\n   )\n}\n\nexport function access<T extends {}>(value: T): ExpandValue<T>\nexport function access<T>(value: Value<T>): T\nexport function access(value: any) {\n   if (isValue(value)) return value.value\n   return walk(value, (current, path, done) =>\n      isValue(current) ? current.value : read(current, done),\n   )\n}\n\nconst CLASS_REGEX = /^\\s*class\\s+/\n\nexport function isClass(value: any) {\n   return typeof value === \"function\" && CLASS_REGEX.test(value.toString())\n}\n\nexport function noCheck<T extends { __check_phase: any }>(value: T): NoCheck<T> {\n   delete value.__check_phase\n   return value\n}\n","import {\n   isObservable,\n   NextObserver,\n   observable,\n   Observable,\n   ReplaySubject,\n   Subject,\n   Subscribable,\n   Subscription,\n   Unsubscribable,\n} from \"rxjs\"\nimport { CheckPhase, DeferredValueOptions, ValueOptions } from \"./interfaces\"\nimport { EventEmitter } from \"@angular/core\"\nimport { isEmitter, isValue } from \"./utils\"\n\nexport const trackedValues = new Map<any, Set<any>>()\nexport const pendingObservers = new Set<any>()\n\nlet currentObserver: any\n\nfunction track(value: any) {\n   if (!currentObserver) return\n   if (!trackedValues.has(value)) {\n      trackedValues.set(value, new Set())\n   }\n   trackedValues.get(value)!.add(currentObserver)\n}\n\nlet pending = false\n\nexport function setPending(value: boolean) {\n   const previous = pending\n   pending = value\n   return previous\n}\n\nfunction trigger(value: any) {\n   const observers = trackedValues.get(value)\n   if (observers) {\n      let list = new Set(observers)\n      observers.clear()\n      for (const observer of list) {\n         observer.dirty = true\n         if (pending) {\n            pendingObservers.add(observer)\n         } else {\n            observer.observe()\n         }\n      }\n      // @ts-ignore\n      list = null\n   }\n}\n\nexport function flush() {\n   let list = new Set(pendingObservers)\n   pendingObservers.clear()\n   for (const observer of list) {\n      observer.observe()\n   }\n   // @ts-ignore\n   list = null\n}\n\nfunction setObserver(value: any) {\n   const previous = currentObserver\n   currentObserver = value\n   return previous\n}\n\nfunction ValueFn<T>(this: any, nextValue?: any): T | void {\n   const value = this.__ng_value\n   if (arguments.length === 0) {\n      track(value)\n      return value.value\n   } else if (typeof nextValue === \"function\") {\n      nextValue(value.value)\n      value.next(value.value)\n   } else {\n      value.next(nextValue)\n   }\n}\n\nclass Source<T> extends ReplaySubject<T> {\n   next(nextValue: T) {\n      this.value = nextValue\n      super.next(nextValue)\n   }\n   constructor(public value: T, emit: boolean) {\n      super(1)\n      if (emit) this.next(value)\n   }\n}\n\nexport class Value<T> implements NextObserver<T> {\n   readonly __ng_value: boolean\n   declare readonly __check_phase: number;\n   [observable]() {\n      return this\n   }\n   check?: (oldValue: T, newValue: T) => boolean\n   source!: Subject<T>\n   errors!: Set<(error: unknown) => Observable<any> | void>\n   changes!: Set<(previous: T, current: T) => void>\n   get value(): T {\n      return (<any>this.source).value\n   }\n   set value(nextValue: T) {\n      this.next(nextValue)\n   }\n   isDirty(value: T) {\n      return !this.check!(this.value, value)\n   }\n   call(this: any, context: any, ...args: any[]) {\n      return this(...args)\n   }\n   apply(this: any, context: any, args: any[]) {\n      return this(...args)\n   }\n   bind() {\n      return this\n   }\n   subscribe(observer: any) {\n      return this.source.subscribe(observer)\n   }\n   lift(operator: any) {\n      return this.source.lift(operator)\n   }\n   pipe(this: any, ...operators: any) {\n      return this.asObservable().pipe(...operators)\n   }\n   next(nextValue: T) {\n      this.source.next(nextValue)\n      trigger(this)\n   }\n   asObservable(): Observable<T> {\n      return <any>new Observable((subscriber) => {\n         return this.subscribe(subscriber)\n      })\n   }\n   forEach(\n      next: (value: any) => void,\n      promiseCtor: PromiseConstructorLike,\n   ): Promise<void> {\n      return this.source.forEach(next, promiseCtor)\n   }\n   toPromise(promiseCtor: any): Promise<T | undefined> {\n      return this.source.toPromise(promiseCtor)\n   }\n   onError(handler: (error: unknown) => Observable<any> | void) {\n      this.errors.add(handler)\n      return () => this.errors.delete(handler)\n   }\n   onChanges(handler: (previous: T, current: T) => void) {\n      this.changes.add(handler)\n      return () => this.changes.delete(handler)\n   }\n\n   constructor(\n      { check = Object.is, subject, immediate = true }: ValueOptions<T> = {},\n      value?: T,\n      phase: CheckPhase = 5,\n   ) {\n      const self: any = this.__ng_value = Object.setPrototypeOf(ValueFn.bind(this), this)\n      self.errors = new Set()\n      self.changes = new Set()\n      self.source = subject ?? new Source<T>(value!, arguments.length > 1)\n      self.__check_phase = phase\n      self.check = check\n      return self\n   }\n}\n\nclass Reviver extends Subscription {\n   next() {\n      this.unsubscribe()\n      this.connectable.disconnect()\n      this.connectable.connect()\n   }\n   error(error: unknown) {\n      this.unsubscribe()\n      this.destination.error(error)\n   }\n   constructor(\n      private connectable: Connectable,\n      private destination: Subject<any>,\n      result: Observable<any>,\n   ) {\n      super()\n      this.add(result.subscribe(this))\n   }\n}\n\nclass Subscriber extends Subscription {\n   next(value: unknown) {\n      this.destination.next(value)\n   }\n   error(error: unknown) {\n      const handlers = this.errorHandlers\n      if (handlers.size) {\n         for (const handler of handlers) {\n            try {\n               const result = handler(error)\n               if (isObservable(result)) {\n                  new Reviver(this.connectable, this.destination, result)\n               }\n               break\n            } catch (e) {\n               error = e\n            }\n         }\n      }\n   }\n   constructor(\n      private connectable: Connectable,\n      private errorHandlers: Set<(error: unknown) => Observable<any> | void>,\n      private destination: Subject<any>,\n      source: Subscribable<any>,\n   ) {\n      super()\n      this.add(source?.subscribe(this))\n   }\n}\n\nexport class DeferredValue<T> extends Value<T> implements Connectable {\n   connected: boolean\n   refCount: number\n   subscription: Subscription\n\n   connect(): void {\n      if (!this.connected) {\n         this.connected = true\n         this.subscription = new Subscriber(\n            this,\n            this.errors,\n            this.source,\n            this.subscribable,\n         )\n      }\n   }\n\n   disconnect(): void {\n      this.connected = false\n      this.subscription.unsubscribe()\n   }\n\n   subscribe(observer: any): Subscription {\n      return new ConnectedSubscriber(this, observer, this.options?.immediate)\n   }\n\n   constructor(\n      public subscribable: Subscribable<any>,\n      public phase: CheckPhase = 5,\n      public options?: ValueOptions<any> | DeferredValueOptions<any>,\n   ) {\n      super(options)\n      this.refCount = 0\n      this.connected = false\n      this.subscription = Subscription.EMPTY\n      if (options && \"initial\" in options) {\n         this.source.next(options.initial)\n      }\n   }\n}\n\nexport class ComputedValue extends Value<any> {\n   dirty: boolean\n   closed: boolean\n   get value() {\n      this.observe()\n      return super.value\n   }\n   observe() {\n      if (this.dirty && !this.closed) {\n         this.dirty = false\n         const previous = setObserver(this)\n         const value = this.observer.call()\n         setObserver(previous)\n         this.next(value)\n      }\n   }\n   stop() {\n      this.closed = true\n   }\n   subscribe(observer: any): Subscription {\n      this.observe()\n      const subscription = super.subscribe(observer)\n      subscription.add(() => this.stop())\n      return subscription\n   }\n\n   constructor(public observer: any, public options?: ValueOptions<any>) {\n      super(options)\n      this.dirty = true\n      this.closed = false\n   }\n}\n\ntype Next<T> = ((param: T) => void) | NextObserver<T>\n\ninterface Accessor<TValue, TNext> {\n   next: Next<TNext>\n   value: Subscribable<TValue> | (() => TValue)\n}\n\ninterface Connectable {\n   connected: boolean\n   connect(): void\n   disconnect(): void\n   refCount: number\n   source: Subscribable<any>\n}\n\nclass ConnectedSubscriber extends Subscription {\n   unsubscribe() {\n      const { accessor } = this\n      if (accessor.refCount > 1) {\n         accessor.refCount--\n         if (accessor.refCount === 0) {\n            accessor.disconnect()\n         }\n      }\n      super.unsubscribe()\n   }\n\n   constructor(\n      private accessor: Connectable,\n      observer: any,\n      immediate: boolean = true,\n   ) {\n      super()\n      accessor.refCount++\n      if (accessor.refCount === 1 && !immediate) accessor.connect()\n      this.add(accessor.source.subscribe(observer))\n      if (accessor.refCount === 1 && immediate) accessor.connect()\n   }\n}\n\nexport class AccessorValue<TValue, TNext>\n   extends Value<TValue>\n   implements Connectable\n{\n   refCount: number\n   subscription: Unsubscribable\n   subscribable: Subscribable<TValue>\n   accessor: Accessor<TValue, TNext>\n   connected: boolean\n   options?: ValueOptions<TValue> | DeferredValueOptions<TValue>\n\n   get value() {\n      this.connect()\n      return super.value\n   }\n\n   next(value: TNext): void\n   next(value: never): void\n   next(value: TNext) {\n      const {\n         accessor: { next },\n      } = this\n      typeof next === \"function\" ? next(value) : next.next(value)\n   }\n\n   connect() {\n      if (!this.connected) {\n         this.connected = true\n         this.subscription = this.subscribable.subscribe(this.source)\n      }\n   }\n\n   disconnect() {\n      this.connected = false\n      this.subscription.unsubscribe()\n   }\n\n   subscribe(observer: any): Subscription {\n      return new ConnectedSubscriber(this, observer, this.options?.immediate)\n   }\n\n   constructor(\n      accessor: Accessor<TValue, TNext>,\n      options?: ValueOptions<TValue> | DeferredValueOptions<TValue>,\n   ) {\n      let { value } = accessor\n      if (typeof value === \"function\" && !isValue(value) && !isEmitter(value)) {\n         value = new ComputedValue(value, options)\n      }\n      super(options)\n      this.options = options\n      this.accessor = accessor\n      this.refCount = 0\n      this.subscription = Subscription.EMPTY\n      this.subscribable = value\n      this.connected = false\n   }\n}\n\nexport function defaultFn(value: any) {\n   return value\n}\n\nfunction EmitterFn(this: any, ...params: any[]) {\n   this.__ng_emitter.next(params)\n}\n\nexport class Emitter extends EventEmitter {\n   readonly __ng_emitter: boolean\n   modifier: (...params: any[]) => any\n   next(values: any) {\n      values = Array.isArray(values) ? values : [values]\n      super.next(this.modifier(...values))\n   }\n   emit(values: any) {\n      this.next(values)\n   }\n   call(this: any, context: any, ...args: any[]) {\n      return this(...args)\n   }\n   apply(this: any, context: any, args: any[]) {\n      return this(...args)\n   }\n   bind() {\n      return this\n   }\n   constructor(fn: (...params: any[]) => any) {\n      super()\n      this.__ng_emitter = Object.setPrototypeOf(EmitterFn.bind(this), this)\n      this.modifier = fn === Function ? defaultFn : fn\n      return this.__ng_emitter as any\n   }\n}\n","import {\n   AfterContentChecked,\n   AfterViewChecked,\n   ChangeDetectorRef,\n   Directive,\n   DoCheck,\n   ErrorHandler,\n   Inject,\n   inject as serviceInject,\n   Injectable,\n   InjectFlags,\n   Injector,\n   INJECTOR,\n   isDevMode,\n   NgModuleRef,\n   OnDestroy,\n   ProviderToken,\n   Type,\n   ɵNG_COMP_DEF,\n} from \"@angular/core\"\nimport {\n   PartialObserver,\n   Subject,\n   Subscribable,\n   Subscription,\n   TeardownLogic,\n   Unsubscribable,\n} from \"rxjs\"\nimport {\n   AccessorValue,\n   Check,\n   CheckPhase,\n   CheckSubject,\n   UnsubscribeSignal,\n   Value,\n} from \"./interfaces\"\nimport { accept, isEmitter, isObject, isValue } from \"./utils\"\nimport { ValueToken } from \"./provider\"\nimport { ComputedValue, defaultFn, flush, setPending } from \"./types\"\n\nconst enum Context {\n   SUBSCRIPTION,\n   EFFECTS,\n   ERROR_HANDLER,\n   INJECT,\n   SCHEDULER,\n   DO_CHECK,\n   CONTENT_CHECK,\n   VIEW_CHECK,\n}\n\nexport type CurrentContext = [\n   Subscription | undefined,\n   EffectObserver[] | undefined,\n   ErrorHandler | undefined,\n   Injector | undefined,\n   Scheduler | undefined,\n   Set<Check> | undefined,\n   Set<Check> | undefined,\n   Set<Check> | undefined,\n]\n\nexport let currentContext: any\nconst contextMap = new WeakMap<{}, CurrentContext>()\n\nexport function setContext(value: any) {\n   const previousContext = currentContext\n   currentContext = value\n   return previousContext\n}\n\nexport class CallContextError extends Error {\n   constructor() {\n      super(\"Call out of context\")\n   }\n}\n\nexport function getContext<T extends 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7>(key: T) {\n   const context = contextMap.get(currentContext)\n   if (context) {\n      return context[key]\n   }\n   throw new CallContextError()\n}\n\nfunction runInContext<T extends (...args: any[]) => any>(\n   context: any,\n   fn: T,\n   ...args: any[]\n): any {\n   const previous = setContext(context)\n   try {\n      return fn(...args)\n   } finally {\n      setContext(previous)\n   }\n}\n\nfunction createContext(\n   context: {},\n   error?: ErrorHandler,\n   injector?: Injector,\n   scheduler?: Scheduler,\n   check?: Set<any>,\n   contentCheck?: Set<any>,\n   viewCheck?: Set<any>,\n) {\n   contextMap.set(context, [\n      new Subscription(),\n      [],\n      error,\n      injector,\n      scheduler,\n      check,\n      contentCheck,\n      viewCheck,\n   ])\n}\n\ninterface ServiceOptions {\n   name?: string\n   arguments?: any[]\n   providedIn: ProvidedIn\n}\n\nfunction createService(context: {}, factory: any, params: any[] = []) {\n   createContext(context, serviceInject(ErrorHandler), serviceInject(INJECTOR))\n   const value = runInContext(context, factory, ...params)\n   contextMap.set(value, contextMap.get(context)!)\n   runInContext(context, subscribe)\n   return value\n}\n\nclass ContextBinding<T = any> implements Check {\n   next(value: T[keyof T]) {\n      const { context, scheduler } = this\n      context[this.key] = value\n      scheduler.markDirty()\n   }\n   error(error: unknown) {\n      this.errorHandler.handleError(error)\n   }\n   check() {\n      const value = this.context[this.key]\n      const previous = this.source.value\n      if (this.source.isDirty(value)) {\n         this.scheduler.markDirty()\n         this.source.next(value)\n         for (const handler of this.source.changes) {\n            handler(previous, value)\n         }\n      }\n   }\n   constructor(\n      private context: T,\n      private key: keyof T,\n      private source: any,\n      private scheduler: Scheduler,\n      private errorHandler: ErrorHandler,\n   ) {}\n}\n\nconst dirty = new Set<Scheduler>()\n\nexport class Scheduler extends Subject<any> {\n   private dirty: boolean\n   closed: boolean\n\n   detectChanges() {\n      if (this.dirty && !this.closed) {\n         this.dirty = false\n         try {\n            this.next(0)\n            this.ref.detectChanges()\n            isDevMode() && this.ref.checkNoChanges()\n            this.next(1)\n         } catch (error) {\n            this.errorHandler.handleError(error)\n         } finally {\n            dirty.delete(this)\n         }\n      }\n   }\n\n   markDirty() {\n      if (this.closed || this.dirty) return\n      this.dirty = true\n      dirty.add(this)\n   }\n\n   unsubscribe() {\n      this.closed = true\n      dirty.delete(this)\n   }\n\n   constructor(\n      private ref: ChangeDetectorRef,\n      private errorHandler: ErrorHandler,\n      private isComponent: boolean,\n   ) {\n      super()\n      this.dirty = false\n      this.closed = false\n      if (isComponent) {\n         this.ref.detach()\n      }\n   }\n}\n\nfunction isCheckSubject(value: any): value is CheckSubject<any> {\n   return (isObject(value) || isValue(value)) && \"__check_phase\" in value\n}\n\nfunction createBinding(context: any, key: any, value: any) {\n   const binding = new ContextBinding(\n      context,\n      key,\n      value,\n      getContext(Context.SCHEDULER)!,\n      getContext(Context.ERROR_HANDLER)!,\n   )\n   addCheck(value.__check_phase, binding)\n   addTeardown(value.subscribe(binding))\n}\n\nfunction createState(context: any, state: any) {\n   for (let [key, value] of Object.entries(state)) {\n      if (isCheckSubject(value)) {\n         context[key] = value.value\n         createBinding(context, key, value)\n      } else {\n         Object.defineProperty(\n            context,\n            key,\n            Object.getOwnPropertyDescriptor(state, key)!,\n         )\n      }\n   }\n}\n\nfunction setup(injector: Injector) {\n   const context: { [key: string]: any } = currentContext\n   const errorHandler = injector.get(ErrorHandler)\n   const scheduler = new Scheduler(\n      injector.get(ChangeDetectorRef),\n      errorHandler,\n      ɵNG_COMP_DEF in Object.getPrototypeOf(context).constructor,\n   )\n\n   createContext(\n      context,\n      errorHandler,\n      injector,\n      scheduler,\n      new Set(),\n      new Set(),\n      new Set(),\n   )\n\n   addTeardown(scheduler)\n\n   try {\n      createState(context, context.__setup())\n   } catch (error) {\n      errorHandler.handleError(error)\n      unsubscribe()\n   }\n}\n\nexport function check(key: CheckPhase) {\n   const checks = getContext(key)\n   for (const subject of checks!) {\n      subject.check()\n   }\n}\n\nexport function subscribe() {\n   let effect\n   const effects = getContext(Context.EFFECTS)\n   while ((effect = effects!.shift())) {\n      const subscription = effect.subscribe()\n      addSignal(subscription, effect.signal)\n   }\n}\n\nexport function unsubscribe() {\n   getContext(Context.SUBSCRIPTION)?.unsubscribe()\n}\n\nexport function addCheck(key: CheckPhase, subject: any) {\n   getContext(key)!.add(subject)\n}\n\nfunction isTeardown(value: any): value is TeardownLogic {\n   return (\n      typeof value === \"function\" || typeof value?.unsubscribe === \"function\"\n   )\n}\n\nexport function addTeardown(teardown: TeardownLogic): void {\n   const subscription = getContext(Context.SUBSCRIPTION)!\n   if (isTeardown(teardown)) {\n      subscription.add(teardown)\n   }\n}\n\nexport function addSignal(\n   teardown?: Unsubscribable | (() => void),\n   abort?: UnsubscribeSignal,\n) {\n   if (!isTeardown(teardown)) return\n   const subscription = new Subscription()\n   subscription.add(teardown)\n   if (abort instanceof AbortSignal) {\n      const listener = () => subscription.unsubscribe()\n      abort.addEventListener(\"abort\", listener, { once: true })\n   } else if (abort) {\n      abort.add(subscription)\n   } else if (abort !== null) {\n      addTeardown(subscription)\n   }\n}\n\nclass ComputedObserver {\n   call() {\n      try {\n         return this.source()\n      } catch (error) {\n         this.effect.handleError(error)\n      }\n   }\n   constructor(private effect: EffectObserver, private source: Function) {}\n}\n\nexport function addEffect<T>(\n   source?: Subscribable<T> | (() => TeardownLogic),\n   observer?: PartialObserver<T> | ((value: T) => TeardownLogic),\n   signal?: UnsubscribeSignal,\n): Subscription {\n   let effects: EffectObserver[] | undefined,\n      error: ErrorHandler | undefined,\n      injector: Injector | undefined\n   if (currentContext) {\n      effects = getContext(Context.EFFECTS)\n      error = getContext(Context.ERROR_HANDLER)\n      injector = getContext(Context.INJECT)\n   }\n   const effect = new EffectObserver(\n      source as any,\n      observer,\n      signal,\n      error,\n      injector,\n   )\n   effects?.push(effect)\n   if (typeof source === \"function\" && !isValue(source) && !isEmitter(source)) {\n      effect.source = new ComputedValue(new ComputedObserver(effect, source))\n      effect.observer = defaultFn\n   }\n   if (!injector) {\n      effect.add(effect.subscribe())\n   }\n   return effect\n}\n\nlet changeDetectionPhase = 1\n\nexport function detectChanges() {\n   if (changeDetectionPhase) {\n      changeDetectionPhase = 0\n      for (const scheduler of dirty) {\n         scheduler.detectChanges()\n      }\n      dirty.clear()\n      changeDetectionPhase = 1\n   }\n}\n\nexport class EffectObserver extends Subscription {\n   context\n\n   next(nextValue: unknown): void {\n      this.call(\"N\", nextValue)\n   }\n\n   error(error: unknown) {\n      this.call(\"E\", void 0, error)\n      if (!this.observer || !(\"error\" in this.observer)) {\n         this.handleError(error)\n      }\n   }\n\n   complete() {\n      this.call(\"C\")\n   }\n\n   handleError(error: unknown) {\n      if (this.errorHandler) {\n         this.errorHandler.handleError(error)\n         this.unsubscribe()\n      } else {\n         throw error\n      }\n   }\n\n   call(kind: \"N\" | \"E\" | \"C\", value?: unknown, error?: unknown) {\n      if (this.closed) return\n      runInContext(this.context, this.observe, this, kind, value, error)\n   }\n\n   observe(\n      effect: this,\n      kind: \"N\" | \"E\" | \"C\",\n      value: unknown,\n      error: unknown,\n   ) {\n      const previous = setPending(true)\n      try {\n         unsubscribe()\n         const context = contextMap.get(currentContext)!\n         context[Context.SUBSCRIPTION] = new Subscription()\n         if (effect.observer) {\n            const teardown = accept(effect.observer, value, error, kind)\n            addSignal(teardown, effect.signal)\n         }\n         flush()\n         subscribe()\n      } catch (error) {\n         effect.handleError(error)\n      } finally {\n         setPending(previous)\n         if (!previous) {\n            detectChanges()\n         }\n      }\n   }\n\n   unsubscribe() {\n      if (this.closed) return\n      if (this.source instanceof ComputedValue) {\n         this.source.stop()\n      }\n      super.unsubscribe()\n      runInContext(this.context, unsubscribe)\n   }\n\n   subscribe() {\n      const source = this.source as Subscribable<any>\n      if (!source) {\n         return this\n      }\n      try {\n         this.add(source.subscribe(this))\n      } catch (error) {\n         this.handleError(error)\n      }\n      return this\n   }\n\n   constructor(\n      public source?: Subscribable<any> | ComputedValue,\n      public observer?: PartialObserver<any> | ((value: any) => TeardownLogic),\n      public signal?: UnsubscribeSignal,\n      private errorHandler?: ErrorHandler,\n      private injector?: Injector,\n   ) {\n      super()\n      this.context = this\n      createContext(this, errorHandler, injector)\n   }\n}\n\n@Directive()\nabstract class View\n   implements DoCheck, AfterContentChecked, AfterViewChecked, OnDestroy\n{\n   abstract __setup(): any\n   ngDoCheck() {\n      runInContext(this, check, Context.DO_CHECK)\n   }\n   ngAfterContentChecked() {\n      runInContext(this, check, Context.CONTENT_CHECK)\n   }\n   ngAfterViewChecked() {\n      runInContext(this, check, Context.VIEW_CHECK)\n      runInContext(this, subscribe)\n      runInContext(this, detectChanges)\n   }\n   ngOnDestroy() {\n      runInContext(this, unsubscribe)\n   }\n\n   constructor(@Inject(INJECTOR) injector: Injector) {\n      runInContext(this, setup, injector)\n   }\n}\n\nexport function decorate(setup: any) {\n   return class extends View {\n      __setup() {\n         return setup()\n      }\n   } as any\n}\n\nexport type ProvidedIn = Type<any> | \"root\" | \"platform\" | \"any\" | null\n\nfunction service<T>(\n   factory: (...params: any[]) => T,\n   options?: ServiceOptions,\n): Type<T> {\n   @Injectable({ providedIn: options?.providedIn ?? null })\n   class Class {\n      static overriddenName = options?.name ?? factory.name\n      ngOnDestroy() {\n         runInContext(this, unsubscribe)\n      }\n      constructor() {\n         serviceInject(\n            NgModuleRef,\n            InjectFlags.Self | InjectFlags.Optional,\n         )?.onDestroy(() => this.ngOnDestroy())\n         return createService(this, factory, options?.arguments)\n      }\n   }\n   return Class as any\n}\n\nexport interface ServiceStatic {\n   new <T extends {}>(\n      factory: (...params: any[]) => T,\n      options?: ServiceOptions,\n   ): Type<T>\n}\n\nexport const Service: ServiceStatic = service as any\n\nexport function inject<T>(\n   token: ValueToken<T>,\n   notFoundValue?: T,\n   flags?: InjectFlags,\n): T\nexport function inject<T>(\n   token: ProviderToken<T>,\n   notFoundValue?: T,\n   flags?: InjectFlags,\n): T\nexport function inject<T>(\n   token: ProviderToken<T> | ValueToken<T>,\n   notFoundValue?: T,\n   flags?: InjectFlags,\n): T {\n   const injector = currentContext\n      ? getContext(Context.INJECT)!\n      : serviceInject(INJECTOR)\n   const previous = setContext(void 0)\n   const value = injector.get(token, notFoundValue, flags)\n   setContext(previous)\n   return value\n}\n\nexport function ViewDef<T>(create: () => T): ViewDef<T> {\n   return decorate(create)\n}\ntype Readonly<T> = {\n   readonly [key in keyof T as T[key] extends AccessorValue<infer A, infer B>\n      ? A extends B\n         ? never\n         : key\n      : T[key] extends Value<any>\n      ? never\n      : key]: T[key] extends CheckSubject<infer R> ? R : T[key]\n}\n\ntype Writable<T> = {\n   [key in keyof T]: T[key] extends CheckSubject<infer R> ? R : T[key]\n}\n\nexport type ViewDef<T, U = Readonly<T> & Writable<T>> = Type<U>\n","import {\n   Accessor,\n   AccessorValue,\n   Emitter,\n   ExpandValue,\n   Value,\n   ValueOptions,\n} from \"./interfaces\"\nimport {\n   AccessorValue as AccessorValueType,\n   ComputedValue,\n   flush,\n   setPending,\n} from \"./types\"\nimport { get, getPath, isEmitter, isObject, isValue, walk } from \"./utils\"\n\nexport function select<T, U>(\n   accessor: Accessor<T, U>,\n   options?: ValueOptions<any>,\n): AccessorValue<T, U>\nexport function select<T extends Value<any> | Emitter<any>>(\n   source: T,\n   options?: ValueOptions<any>,\n): unknown\nexport function select<T>(\n   source: () => T,\n   options?: ValueOptions<any>,\n): Value<T>\nexport function select(\n   source: (() => any) | Accessor<any, any> | Value<any> | Emitter<any>,\n   options?: ValueOptions<any>,\n): unknown {\n   if (typeof source === \"function\" && !isValue(source) && !isEmitter(source)) {\n      return new ComputedValue(source) as any\n   }\n   return new AccessorValueType(source as any, options)\n}\n\nexport function combine<T>(object: Value<T>): Value<T>\nexport function combine<T extends {}>(\n   object: T,\n): AccessorValue<ExpandValue<T>, ExpandValue<T, true>>\nexport function combine(\n   object: any,\n):\n   | AccessorValue<ExpandValue<unknown>, ExpandValue<unknown, true>>\n   | Value<unknown> {\n   if (isValue(object)) return object\n   const computed = select(() => get(object))\n   return select({\n      next(nextValue: any) {\n         let shouldTrigger = true\n         const previous = setPending(true)\n         try {\n            walk(nextValue, (val, path, done) => {\n               const [key, ...rest] = path\n               const target = getPath(object, rest)\n               if (!target || !(key in target)) {\n                  throw new Error(\n                     `Target object does not have existing key \"${key}\" in object path \"${rest\n                        .reverse()\n                        .join(\".\")}\"`,\n                  )\n               }\n               if (isValue(target[key])) {\n                  shouldTrigger = false\n                  target[key](val)\n                  done()\n               } else if (!isObject(target[key])) {\n                  target[key] = val\n               }\n            })\n            if (shouldTrigger) {\n               computed(computed.value)\n            }\n         } finally {\n            setPending(previous)\n            flush()\n         }\n      },\n      value: computed,\n   }) as AccessorValue<ExpandValue<any>, ExpandValue<any, true>>\n}\n","import {\n   isObservable,\n   NextObserver,\n   Observable,\n   PartialObserver,\n   Subscription,\n   TeardownLogic,\n   UnaryFunction,\n} from \"rxjs\"\nimport {\n   ContentChild,\n   ContentChildren,\n   ElementRef,\n   InjectionToken,\n   QueryList,\n   Renderer2,\n   ViewChild,\n   ViewChildren,\n} from \"@angular/core\"\nimport {\n   CheckPhase,\n   DeferredValue,\n   DeferredValueOptions,\n   Emitter,\n   EmitterWithParams,\n   ErrorState,\n   QueryListType,\n   QueryType,\n   ReadonlyValue,\n   UnsubscribeSignal,\n   Value,\n   ValueOptions,\n} from \"./interfaces\"\nimport { isClass, isEmitter, isObserver, isSignal, isValue } from \"./utils\"\nimport { addEffect, addTeardown, inject } from \"./core\"\nimport {\n   DeferredValue as DeferredValueType,\n   Emitter as EmitterType,\n   Value as ValueType,\n} from \"./types\"\nimport { select } from \"./select\"\n\nexport class QueryListValue extends QueryList<any> {\n   subscription?: Subscription\n   get value() {\n      return this\n   }\n   next(value: QueryList<any>) {\n      this.subscription?.unsubscribe()\n      this.reset(value.toArray())\n      this.notifyOnChanges()\n      this.subscription = value.changes.subscribe(this)\n   }\n   subscribe(observer: any) {\n      return this.changes.subscribe(observer)\n   }\n   complete() {\n      this.destroy()\n   }\n}\n\nconst queryMap = new Map<Function, CheckPhase>([\n   [ContentChild, 6],\n   [ContentChildren, 6],\n   [ViewChild, 7],\n   [ViewChildren, 7],\n])\n\nfunction isQuery(value: any) {\n   return queryMap.has(value)\n}\n\nexport function use<T>(): Value<T | undefined>\nexport function use<T>(value: typeof Function): Emitter<T>\nexport function use<T>(\n   value: Observable<T>,\n   options?: ValueOptions<T>,\n): DeferredValue<T>\nexport function use<T>(\n   value: Observable<T>,\n   options: DeferredValueOptions<T>,\n): Value<T>\nexport function use<T>(value: QueryListType): Value<QueryList<T>>\nexport function use<T>(value: QueryType): DeferredValue<T>\nexport function use<T>(value: T, options?: ValueOptions<T>): Value<T>\nexport function use<T extends (...args: any) => any>(\n   value: EmitterWithParams<T>,\n): Value<T>\nexport function use<T extends (...args: any[]) => any>(\n   value: T,\n): EmitterWithParams<T>\nexport function use(value?: any, options?: ValueOptions<unknown>): unknown {\n   if (isQuery(value)) {\n      const phase = queryMap.get(value)!\n      if (value === ContentChildren || value === ViewChildren) {\n         const initial = new QueryListValue()\n         return new DeferredValueType(initial, phase, { initial })\n      }\n      return new ValueType(options, void 0, phase)\n   }\n   if (\n      isValue(value) ||\n      (typeof value === \"function\" && !isEmitter(value) && !isClass(value))\n   ) {\n      return new EmitterType(value)\n   }\n   if (isObservable(value)) {\n      return new DeferredValueType(value, 5, options)\n   }\n   return new ValueType(options, value, 5)\n}\n\nexport function subscribe<T>(): Subscription\nexport function subscribe<T>(observer: () => void): Subscription\nexport function subscribe<T>(observer: () => TeardownLogic): Subscription\nexport function subscribe<T>(source: Observable<T>): Subscription\nexport function subscribe<T>(\n   source: Observable<T>,\n   observer: PartialObserver<T>,\n): Subscription\nexport function subscribe<T>(\n   source: Observable<T>,\n   observer: (value: T) => TeardownLogic,\n): Subscription\nexport function subscribe<T>(\n   source: Observable<T>,\n   observer: (value: T) => void,\n): Subscription\nexport function subscribe<T>(\n   source: Observable<T>,\n   signal: UnsubscribeSignal,\n): Subscription\nexport function subscribe<T>(\n   source: Observable<T>,\n   observer: PartialObserver<T>,\n   signal: UnsubscribeSignal,\n): Subscription\nexport function subscribe<T>(\n   source: Observable<T>,\n   observer: (value: T) => TeardownLogic,\n   signal: UnsubscribeSignal,\n): Subscription\nexport function subscribe<T>(\n   source?: Observable<T> | (() => TeardownLogic),\n   observerOrSignal?:\n      | PartialObserver<T>\n      | ((value: T) => TeardownLogic)\n      | UnsubscribeSignal,\n   signal?: UnsubscribeSignal,\n): Subscription {\n   const observer = isObserver(observerOrSignal) ? observerOrSignal : void 0\n   signal = isSignal(observerOrSignal) ? observerOrSignal : signal\n\n   if (!source) {\n      const subscription = new Subscription()\n      addTeardown(subscription)\n      return subscription\n   }\n\n   return addEffect(source, observer, signal)\n}\n\ntype ListenerFunction<T> = (event: T) => TeardownLogic\n\nexport function listen<T>(eventName: string): Emitter<T>\nexport function listen<T>(handler: ListenerFunction<T>): Emitter<T>\nexport function listen<T>(subject: NextObserver<T>): Emitter<T>\nexport function listen<T>(\n   eventName: string,\n   handler?: ListenerFunction<T>,\n): Emitter<T>\nexport function listen<T>(\n   target: unknown,\n   eventName: string,\n   handler?: ListenerFunction<T>,\n): Emitter<T>\nexport function listen<T>(\n   target: Observable<unknown>,\n   eventName: string,\n   handler?: ListenerFunction<T>,\n): Emitter<T>\nexport function listen() {\n   let eventName: string | undefined\n   let handler: ListenerFunction<any> | undefined\n   let target: unknown\n   if (arguments.length === 1) {\n      if (typeof arguments[0] === \"string\") {\n         eventName = arguments[0]\n      } else {\n         handler = arguments[0]\n      }\n   }\n   if (arguments.length === 2) {\n      if (typeof arguments[1] === \"function\") {\n         eventName = arguments[0]\n         handler = arguments[1]\n      } else {\n         target = arguments[0]\n         eventName = arguments[1]\n      }\n   }\n   if (arguments.length === 3) {\n      target = arguments[0]\n      eventName = arguments[1]\n      handler = arguments[2]\n   }\n   const emitter = use(Function)\n   if (eventName) {\n      const renderer = inject(Renderer2)\n      if (isObservable(target)) {\n         subscribe(target, (element) => {\n            if (element) {\n               renderer.listen(element, eventName!, emitter)\n            }\n         })\n      } else {\n         const element = target ?? inject(ElementRef).nativeElement\n         renderer.listen(element, eventName, emitter)\n      }\n   }\n   subscribe(emitter, handler!)\n   return emitter\n}\n\nexport const Attribute = new InjectionToken(\"Attribute\", {\n   factory() {\n      return function getAttribute(qualifiedName: string) {\n         const { nativeElement } = inject<ElementRef<HTMLElement>>(ElementRef)\n         return nativeElement.getAttribute(qualifiedName)\n      }\n   },\n})\n\nconst noCast = (value: string | null) => value\n\nexport function attribute<T>(\n   qualifiedName: string,\n   cast: (value: string | null) => T,\n): Value<T>\nexport function attribute(qualifiedName: string): Value<string | null>\nexport function attribute(qualifiedName: string, cast = noCast): unknown {\n   const getAttribute = inject(Attribute)\n   const attr = getAttribute(qualifiedName)\n   const value = use(cast(attr === \"\" ? qualifiedName : attr))\n   return select({\n      next(nextValue: any) {\n         value(cast(nextValue === \"\" ? qualifiedName : nextValue))\n      },\n      value,\n   })\n}\n\nexport function onError(\n   value: ReadonlyValue<any>,\n   handler?: (error: unknown, state: ErrorState) => Observable<any> | void,\n): Value<ErrorState | void> {\n   const error = use<ErrorState | undefined>()\n   const signal = subscribe()\n   let retries = 0\n   const remove = value.onError((e: any) => {\n      const state = {\n         error: e,\n         message: e?.message,\n         retries,\n      }\n      retries++\n      error(state)\n      const result = handler?.(e, state)\n      if (isObservable(result)) {\n         const reviver = use(result)\n         let done: any\n         const sub = subscribe(\n            reviver,\n            () => {\n               done = sub ? sub.unsubscribe() : true\n               error(void 0)\n            },\n            signal,\n         )\n         if (done) sub.unsubscribe()\n         return reviver\n      }\n      return\n   })\n   addTeardown(remove)\n   return error as any\n}\n\nexport function pipe<T>(source: T): DeferredValue<T>\nexport function pipe<T, A>(\n   source: T,\n   fn1: UnaryFunction<T, A>,\n): DeferredValue<A extends Observable<infer R> ? R : never>\nexport function pipe<T, A, B>(\n   source: T,\n   fn1: UnaryFunction<T, A>,\n   fn2: UnaryFunction<A, B>,\n): DeferredValue<B extends Observable<infer R> ? R : never>\nexport function pipe<T, A, B, C>(\n   source: T,\n   fn1: UnaryFunction<T, A>,\n   fn2: UnaryFunction<A, B>,\n   fn3: UnaryFunction<B, C>,\n): DeferredValue<C extends Observable<infer R> ? R : never>\nexport function pipe<T, A, B, C, D>(\n   source: T,\n   fn1: UnaryFunction<T, A>,\n   fn2: UnaryFunction<A, B>,\n   fn3: UnaryFunction<B, C>,\n   fn4: UnaryFunction<C, D>,\n): DeferredValue<D extends Observable<infer R> ? R : never>\nexport function pipe<T, A, B, C, D, E>(\n   source: T,\n   fn1: UnaryFunction<T, A>,\n   fn2: UnaryFunction<A, B>,\n   fn3: UnaryFunction<B, C>,\n   fn4: UnaryFunction<C, D>,\n   fn5: UnaryFunction<D, E>,\n): DeferredValue<E extends Observable<infer R> ? R : never>\nexport function pipe<T, A, B, C, D, E, F>(\n   source: T,\n   fn1: UnaryFunction<T, A>,\n   fn2: UnaryFunction<A, B>,\n   fn3: UnaryFunction<B, C>,\n   fn4: UnaryFunction<C, D>,\n   fn5: UnaryFunction<D, E>,\n   fn6: UnaryFunction<E, F>,\n): DeferredValue<F extends Observable<infer R> ? R : never>\nexport function pipe<T, A, B, C, D, E, F, G>(\n   source: T,\n   fn1: UnaryFunction<T, A>,\n   fn2: UnaryFunction<A, B>,\n   fn3: UnaryFunction<B, C>,\n   fn4: UnaryFunction<C, D>,\n   fn5: UnaryFunction<D, E>,\n   fn6: UnaryFunction<E, F>,\n   fn7: UnaryFunction<F, G>,\n): DeferredValue<G extends Observable<infer R> ? R : never>\nexport function pipe<T, A, B, C, D, E, F, G, H>(\n   source: T,\n   fn1: UnaryFunction<T, A>,\n   fn2: UnaryFunction<A, B>,\n   fn3: UnaryFunction<B, C>,\n   fn4: UnaryFunction<C, D>,\n   fn5: UnaryFunction<D, E>,\n   fn6: UnaryFunction<E, F>,\n   fn7: UnaryFunction<F, G>,\n   fn8: UnaryFunction<G, H>,\n): DeferredValue<H extends Observable<infer R> ? R : never>\nexport function pipe<T, A, B, C, D, E, F, G, H, I>(\n   source: T,\n   fn1: UnaryFunction<T, A>,\n   fn2: UnaryFunction<A, B>,\n   fn3: UnaryFunction<B, C>,\n   fn4: UnaryFunction<C, D>,\n   fn5: UnaryFunction<D, E>,\n   fn6: UnaryFunction<E, F>,\n   fn7: UnaryFunction<F, G>,\n   fn8: UnaryFunction<G, H>,\n   fn9: UnaryFunction<H, I>,\n): DeferredValue<I extends Observable<infer R> ? R : never>\nexport function pipe<T, A, B, C, D, E, F, G, H, I>(\n   source: T,\n   fn1: UnaryFunction<T, A>,\n   fn2: UnaryFunction<A, B>,\n   fn3: UnaryFunction<B, C>,\n   fn4: UnaryFunction<C, D>,\n   fn5: UnaryFunction<D, E>,\n   fn6: UnaryFunction<E, F>,\n   fn7: UnaryFunction<F, G>,\n   fn8: UnaryFunction<G, H>,\n   fn9: UnaryFunction<H, I>,\n   ...fns: UnaryFunction<any, any>[]\n): DeferredValue<unknown>\nexport function pipe(...args: any[]): unknown {\n   return new DeferredValueType((<any>args[0]).pipe(...args.slice(1)))\n}\n","import { InjectFlags, InjectionToken, Injector, Provider } from \"@angular/core\"\nimport { inject, ProvidedIn } from \"./core\"\n\nexport type ValueToken<T> = InjectionToken<T> & {\n   __ng_value_token: true\n   Provider: Provider[]\n   Token: InjectionToken<T>\n}\n\nexport class EmptyValueError extends Error {\n   constructor(token: string) {\n      super(`No value or default value provided for \"${token}\".`)\n   }\n}\n\nexport interface ValueTokenStatic {\n   new <T>(name: string): ValueToken<T>\n   new <T>(\n      name: string,\n      options?: {\n         providedIn?: ProvidedIn\n         factory: () => T\n      },\n   ): ValueToken<T>\n}\n\nconst valueMap = new WeakMap<{}, any>()\n\nfunction keygen() {\n   return {}\n}\n\nfunction createValueToken<T>(name: string): ValueToken<T>\nfunction createValueToken<T>(\n   name: string,\n   options?: { factory?: () => T; providedIn?: ProvidedIn },\n): ValueToken<T>\nfunction createValueToken(\n   name: string,\n   {\n      providedIn = \"root\",\n      factory,\n   }: { factory?: () => any; providedIn?: ProvidedIn } = {},\n): ValueToken<any> {\n   const ValueToken = new InjectionToken(name, {\n      factory: get,\n      providedIn,\n   }) as any\n   const Key = new InjectionToken(`keygen:${name}`, {\n      factory: keygen,\n      providedIn,\n   })\n\n   function get() {\n      const key = inject(Key)\n      if (!valueMap.has(key)) {\n         if (factory) {\n            provide(ValueToken, factory())\n         } else {\n            throw new EmptyValueError(name)\n         }\n      }\n      return valueMap.get(key)\n   }\n\n   ValueToken.key = Key\n   ValueToken.__ng_value_token = true\n   ValueToken.overriddenName = name\n\n   ValueToken.Token = ValueToken\n\n   ValueToken.Provider = [\n      { provide: ValueToken, useFactory: get },\n      { provide: Key, useFactory: keygen },\n   ]\n\n   return ValueToken\n}\n\nexport const ValueToken: ValueTokenStatic = createValueToken as any\n\nexport function provide<T>(token: ValueToken<T>, value: T): void {\n   const key = inject(\n      (<any>token).key,\n      Injector.THROW_IF_NOT_FOUND,\n      InjectFlags.Self,\n   ) as {}\n   valueMap.set(key, value)\n}\n","import { addTeardown, getContext } from \"./core\"\nimport { listen, subscribe, use } from \"./common\"\nimport { Subject } from \"rxjs\"\nimport { Change, ReadonlyValue } from \"./interfaces\"\n\nclass ScheduleObserver {\n   next(phase: number) {\n      if (phase === this.phase) {\n         this.emitter.next()\n      }\n   }\n   constructor(private phase: number, private emitter: Subject<void>) {}\n}\n\nfunction schedule(callback: () => void = Function, phase: 0 | 1) {\n   const emitter = listen<void>(callback)\n   const scheduler = getContext(4)!\n\n   subscribe(scheduler, new ScheduleObserver(phase, emitter))\n\n   return emitter\n}\n\nexport function onBeforeUpdate(callback?: () => void) {\n   return schedule(callback, 0)\n}\n\nexport function onUpdated(callback?: () => void) {\n   return schedule(callback, 1)\n}\n\nexport function onDestroy(callback: () => void = Function) {\n   const emitter = listen(callback)\n   addTeardown(emitter)\n   return emitter\n}\n\nexport function onChanges<T>(\n   value: ReadonlyValue<T>,\n   callback?: (change: Change<T>) => void,\n) {\n   const changes = use<Change<T>>({\n      first: true,\n      current: value.value,\n      previous: undefined,\n   })\n   const remove = value.onChanges((previous, current) => {\n      changes({\n         first: false,\n         current,\n         previous,\n      })\n   })\n   onDestroy(remove)\n   if (callback) {\n      subscribe(changes, callback)\n   }\n   return changes\n}\n","import { Injectable } from \"@angular/core\"\nimport { EventManager } from \"@angular/platform-browser\"\nimport { detectChanges } from \"./core\"\n\nfunction wrapHandlerInDetectChanges(handler: Function) {\n   return function handlerWrappedInDetectChanges(...args: any[]) {\n      handler(...args)\n      detectChanges()\n   }\n}\n\n@Injectable({ providedIn: \"root\" })\nexport class ZonelessEventManager extends EventManager {\n   addEventListener(\n      element: HTMLElement,\n      eventName: string,\n      handler: Function,\n   ): Function {\n      handler = wrapHandlerInDetectChanges(handler)\n      return super.addEventListener(element, eventName, handler)\n   }\n}\n","/*\n * Public API Surface of angular-composition-api\n */\n\nexport { Service, inject, CallContextError, decorate, ViewDef } from \"./core\"\nexport {\n   use,\n   subscribe,\n   listen,\n   Attribute,\n   attribute,\n   onError,\n   pipe,\n} from \"./common\"\nexport {\n   CheckSubject,\n   CheckPhase,\n   State,\n   UnsubscribeSignal,\n   Value,\n   DeferredValue,\n   ReadonlyValue,\n   Emitter,\n   EmitterWithParams,\n   Accessor,\n   AccessorValue,\n   ExpandValue,\n   Change,\n   DeferredValueOptions,\n   ValueOptions,\n} from \"./interfaces\"\nexport { select, combine } from \"./select\"\nexport { ValueToken, provide, EmptyValueError } from \"./provider\"\nexport { onDestroy, onUpdated, onBeforeUpdate, onChanges } from \"./lifecycle\"\nexport { ZonelessEventManager } from \"./event-manager\"\nexport { isValue, isEmitter, get, access, noCheck } from \"./utils\"\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["serviceInject","subscribe","AccessorValueType","DeferredValueType","ValueType","EmitterType"],"mappings":"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"}