@tanstack/angular-query-experimental 5.25.0 → 5.26.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/build/esm2022/create-base-query.mjs +11 -7
  2. package/build/esm2022/inject-is-fetching.mjs +6 -3
  3. package/build/esm2022/inject-is-mutating.mjs +6 -3
  4. package/build/esm2022/inject-mutation-state.mjs +24 -18
  5. package/build/esm2022/inject-mutation.mjs +26 -17
  6. package/build/esm2022/util/lazy-init/lazy-init.mjs +31 -0
  7. package/build/esm2022/util/lazy-signal-initializer/lazy-signal-initializer.mjs +14 -0
  8. package/build/fesm2022/tanstack-angular-query-experimental.mjs +75 -39
  9. package/build/fesm2022/tanstack-angular-query-experimental.mjs.map +1 -1
  10. package/build/inject-mutation.d.ts +1 -1
  11. package/build/util/lazy-signal-initializer/lazy-signal-initializer.d.ts +4 -0
  12. package/package.json +1 -1
  13. package/src/__tests__/inject-mutation-state.test.ts +71 -2
  14. package/src/__tests__/inject-mutation.test.ts +102 -3
  15. package/src/__tests__/inject-query.test.ts +31 -2
  16. package/src/__tests__/test-utils.ts +48 -1
  17. package/src/__tests__/util/lazy-init/lazy-init.test.ts +126 -0
  18. package/src/__tests__/util/lazy-signal-initializer/lazy-signal-initializer.test.ts +130 -0
  19. package/src/create-base-query.ts +25 -17
  20. package/src/inject-is-fetching.ts +5 -2
  21. package/src/inject-is-mutating.ts +5 -2
  22. package/src/inject-mutation-state.ts +41 -25
  23. package/src/inject-mutation.ts +63 -32
  24. package/src/{lazy-init.ts → util/lazy-init/lazy-init.ts} +3 -1
  25. package/src/util/lazy-signal-initializer/lazy-signal-initializer.ts +28 -0
  26. package/build/esm2022/lazy-init.mjs +0 -30
  27. /package/build/{lazy-init.d.ts → util/lazy-init/lazy-init.d.ts} +0 -0
@@ -1,12 +1,13 @@
1
- import { DestroyRef, Injector, computed, effect, inject, runInInjectionContext, signal, untracked, } from '@angular/core';
1
+ import { DestroyRef, Injector, NgZone, computed, effect, inject, runInInjectionContext, signal, untracked, } from '@angular/core';
2
2
  import { notifyManager } from '@tanstack/query-core';
3
3
  import { signalProxy } from './signal-proxy';
4
- import { lazyInit } from './lazy-init';
4
+ import { lazyInit } from './util/lazy-init/lazy-init';
5
5
  /**
6
6
  * Base implementation for `injectQuery` and `injectInfiniteQuery`.
7
7
  */
8
8
  export function createBaseQuery(options, Observer, queryClient) {
9
9
  const injector = inject(Injector);
10
+ const ngZone = inject(NgZone);
10
11
  return lazyInit(() => {
11
12
  return runInInjectionContext(injector, () => {
12
13
  const destroyRef = inject(DestroyRef);
@@ -23,8 +24,7 @@ export function createBaseQuery(options, Observer, queryClient) {
23
24
  });
24
25
  const observer = new Observer(queryClient, defaultedOptionsSignal());
25
26
  const resultSignal = signal(observer.getOptimisticResult(defaultedOptionsSignal()));
26
- // Effects should not be called inside reactive contexts
27
- untracked(() => effect(() => {
27
+ effect(() => {
28
28
  const defaultedOptions = defaultedOptionsSignal();
29
29
  observer.setOptions(defaultedOptions, {
30
30
  // Do not notify on updates because of changes in the options because
@@ -34,12 +34,16 @@ export function createBaseQuery(options, Observer, queryClient) {
34
34
  untracked(() => {
35
35
  resultSignal.set(observer.getOptimisticResult(defaultedOptions));
36
36
  });
37
- }));
37
+ });
38
38
  // observer.trackResult is not used as this optimization is not needed for Angular
39
- const unsubscribe = observer.subscribe(notifyManager.batchCalls((val) => resultSignal.set(val)));
39
+ const unsubscribe = observer.subscribe(notifyManager.batchCalls((val) => {
40
+ ngZone.run(() => {
41
+ resultSignal.set(val);
42
+ });
43
+ }));
40
44
  destroyRef.onDestroy(unsubscribe);
41
45
  return signalProxy(resultSignal);
42
46
  });
43
47
  });
44
48
  }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWJhc2UtcXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3JlYXRlLWJhc2UtcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixRQUFRLEVBQ1IsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04scUJBQXFCLEVBQ3JCLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBSXRDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FPN0IsT0FRQyxFQUNELFFBQThCLEVBQzlCLFdBQXdCO0lBRXhCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUVqQyxPQUFPLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDbkIsT0FBTyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO1lBQzFDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUNyQzs7Ozs7ZUFLRztZQUNILE1BQU0sc0JBQXNCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtnQkFDM0MsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsbUJBQW1CLENBQ3RELE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FDckIsQ0FBQTtnQkFDRCxnQkFBZ0IsQ0FBQyxrQkFBa0IsR0FBRyxZQUFZLENBQUE7Z0JBQ2xELE9BQU8sZ0JBQWdCLENBQUE7WUFDekIsQ0FBQyxDQUFDLENBQUE7WUFFRixNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FNM0IsV0FBVyxFQUFFLHNCQUFzQixFQUFFLENBQUMsQ0FBQTtZQUV4QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQ3pCLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQ3ZELENBQUE7WUFFRCx3REFBd0Q7WUFDeEQsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUNiLE1BQU0sQ0FBQyxHQUFHLEVBQUU7Z0JBQ1YsTUFBTSxnQkFBZ0IsR0FBRyxzQkFBc0IsRUFBRSxDQUFBO2dCQUNqRCxRQUFRLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFO29CQUNwQyxxRUFBcUU7b0JBQ3JFLHNFQUFzRTtvQkFDdEUsU0FBUyxFQUFFLEtBQUs7aUJBQ2pCLENBQUMsQ0FBQTtnQkFDRixTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNiLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQTtnQkFDbEUsQ0FBQyxDQUFDLENBQUE7WUFDSixDQUFDLENBQUMsQ0FDSCxDQUFBO1lBRUQsa0ZBQWtGO1lBQ2xGLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQ3BDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDekQsQ0FBQTtZQUNELFVBQVUsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUE7WUFFakMsT0FBTyxXQUFXLENBQUMsWUFBWSxDQUF5QyxDQUFBO1FBQzFFLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVzdHJveVJlZixcbiAgSW5qZWN0b3IsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgcnVuSW5JbmplY3Rpb25Db250ZXh0LFxuICBzaWduYWwsXG4gIHVudHJhY2tlZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IG5vdGlmeU1hbmFnZXIgfSBmcm9tICdAdGFuc3RhY2svcXVlcnktY29yZSdcbmltcG9ydCB7IHNpZ25hbFByb3h5IH0gZnJvbSAnLi9zaWduYWwtcHJveHknXG5pbXBvcnQgeyBsYXp5SW5pdCB9IGZyb20gJy4vbGF6eS1pbml0J1xuaW1wb3J0IHR5cGUgeyBRdWVyeUNsaWVudCwgUXVlcnlLZXksIFF1ZXJ5T2JzZXJ2ZXIgfSBmcm9tICdAdGFuc3RhY2svcXVlcnktY29yZSdcbmltcG9ydCB0eXBlIHsgQ3JlYXRlQmFzZVF1ZXJ5T3B0aW9ucywgQ3JlYXRlQmFzZVF1ZXJ5UmVzdWx0IH0gZnJvbSAnLi90eXBlcydcblxuLyoqXG4gKiBCYXNlIGltcGxlbWVudGF0aW9uIGZvciBgaW5qZWN0UXVlcnlgIGFuZCBgaW5qZWN0SW5maW5pdGVRdWVyeWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCYXNlUXVlcnk8XG4gIFRRdWVyeUZuRGF0YSxcbiAgVEVycm9yLFxuICBURGF0YSxcbiAgVFF1ZXJ5RGF0YSxcbiAgVFF1ZXJ5S2V5IGV4dGVuZHMgUXVlcnlLZXksXG4+KFxuICBvcHRpb25zOiAoXG4gICAgY2xpZW50OiBRdWVyeUNsaWVudCxcbiAgKSA9PiBDcmVhdGVCYXNlUXVlcnlPcHRpb25zPFxuICAgIFRRdWVyeUZuRGF0YSxcbiAgICBURXJyb3IsXG4gICAgVERhdGEsXG4gICAgVFF1ZXJ5RGF0YSxcbiAgICBUUXVlcnlLZXlcbiAgPixcbiAgT2JzZXJ2ZXI6IHR5cGVvZiBRdWVyeU9ic2VydmVyLFxuICBxdWVyeUNsaWVudDogUXVlcnlDbGllbnQsXG4pOiBDcmVhdGVCYXNlUXVlcnlSZXN1bHQ8VERhdGEsIFRFcnJvcj4ge1xuICBjb25zdCBpbmplY3RvciA9IGluamVjdChJbmplY3RvcilcblxuICByZXR1cm4gbGF6eUluaXQoKCkgPT4ge1xuICAgIHJldHVybiBydW5JbkluamVjdGlvbkNvbnRleHQoaW5qZWN0b3IsICgpID0+IHtcbiAgICAgIGNvbnN0IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZilcbiAgICAgIC8qKlxuICAgICAgICogU2lnbmFsIHRoYXQgaGFzIHRoZSBkZWZhdWx0IG9wdGlvbnMgZnJvbSBxdWVyeSBjbGllbnQgYXBwbGllZFxuICAgICAgICogY29tcHV0ZWQoKSBpcyB1c2VkIHNvIHNpZ25hbHMgY2FuIGJlIGluc2VydGVkIGludG8gdGhlIG9wdGlvbnNcbiAgICAgICAqIG1ha2luZyBpdCByZWFjdGl2ZS4gV3JhcHBpbmcgb3B0aW9ucyBpbiBhIGZ1bmN0aW9uIGVuc3VyZXMgZW1iZWRkZWQgZXhwcmVzc2lvbnNcbiAgICAgICAqIGFyZSBwcmVzZXJ2ZWQgYW5kIGNhbiBrZWVwIGJlaW5nIGFwcGxpZWQgYWZ0ZXIgc2lnbmFsIGNoYW5nZXNcbiAgICAgICAqL1xuICAgICAgY29uc3QgZGVmYXVsdGVkT3B0aW9uc1NpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZGVmYXVsdGVkT3B0aW9ucyA9IHF1ZXJ5Q2xpZW50LmRlZmF1bHRRdWVyeU9wdGlvbnMoXG4gICAgICAgICAgb3B0aW9ucyhxdWVyeUNsaWVudCksXG4gICAgICAgIClcbiAgICAgICAgZGVmYXVsdGVkT3B0aW9ucy5fb3B0aW1pc3RpY1Jlc3VsdHMgPSAnb3B0aW1pc3RpYydcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRlZE9wdGlvbnNcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE9ic2VydmVyPFxuICAgICAgICBUUXVlcnlGbkRhdGEsXG4gICAgICAgIFRFcnJvcixcbiAgICAgICAgVERhdGEsXG4gICAgICAgIFRRdWVyeURhdGEsXG4gICAgICAgIFRRdWVyeUtleVxuICAgICAgPihxdWVyeUNsaWVudCwgZGVmYXVsdGVkT3B0aW9uc1NpZ25hbCgpKVxuXG4gICAgICBjb25zdCByZXN1bHRTaWduYWwgPSBzaWduYWwoXG4gICAgICAgIG9ic2VydmVyLmdldE9wdGltaXN0aWNSZXN1bHQoZGVmYXVsdGVkT3B0aW9uc1NpZ25hbCgpKSxcbiAgICAgIClcblxuICAgICAgLy8gRWZmZWN0cyBzaG91bGQgbm90IGJlIGNhbGxlZCBpbnNpZGUgcmVhY3RpdmUgY29udGV4dHNcbiAgICAgIHVudHJhY2tlZCgoKSA9PlxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGRlZmF1bHRlZE9wdGlvbnMgPSBkZWZhdWx0ZWRPcHRpb25zU2lnbmFsKClcbiAgICAgICAgICBvYnNlcnZlci5zZXRPcHRpb25zKGRlZmF1bHRlZE9wdGlvbnMsIHtcbiAgICAgICAgICAgIC8vIERvIG5vdCBub3RpZnkgb24gdXBkYXRlcyBiZWNhdXNlIG9mIGNoYW5nZXMgaW4gdGhlIG9wdGlvbnMgYmVjYXVzZVxuICAgICAgICAgICAgLy8gdGhlc2UgY2hhbmdlcyBzaG91bGQgYWxyZWFkeSBiZSByZWZsZWN0ZWQgaW4gdGhlIG9wdGltaXN0aWMgcmVzdWx0LlxuICAgICAgICAgICAgbGlzdGVuZXJzOiBmYWxzZSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgICByZXN1bHRTaWduYWwuc2V0KG9ic2VydmVyLmdldE9wdGltaXN0aWNSZXN1bHQoZGVmYXVsdGVkT3B0aW9ucykpXG4gICAgICAgICAgfSlcbiAgICAgICAgfSksXG4gICAgICApXG5cbiAgICAgIC8vIG9ic2VydmVyLnRyYWNrUmVzdWx0IGlzIG5vdCB1c2VkIGFzIHRoaXMgb3B0aW1pemF0aW9uIGlzIG5vdCBuZWVkZWQgZm9yIEFuZ3VsYXJcbiAgICAgIGNvbnN0IHVuc3Vic2NyaWJlID0gb2JzZXJ2ZXIuc3Vic2NyaWJlKFxuICAgICAgICBub3RpZnlNYW5hZ2VyLmJhdGNoQ2FsbHMoKHZhbCkgPT4gcmVzdWx0U2lnbmFsLnNldCh2YWwpKSxcbiAgICAgIClcbiAgICAgIGRlc3Ryb3lSZWYub25EZXN0cm95KHVuc3Vic2NyaWJlKVxuXG4gICAgICByZXR1cm4gc2lnbmFsUHJveHkocmVzdWx0U2lnbmFsKSBhcyBDcmVhdGVCYXNlUXVlcnlSZXN1bHQ8VERhdGEsIFRFcnJvcj5cbiAgICB9KVxuICB9KVxufVxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWJhc2UtcXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3JlYXRlLWJhc2UtcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixRQUFRLEVBQ1IsTUFBTSxFQUNOLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLHFCQUFxQixFQUNyQixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBU3JEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FPN0IsT0FRQyxFQUNELFFBQThCLEVBQzlCLFdBQXdCO0lBRXhCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNqQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFN0IsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ25CLE9BQU8scUJBQXFCLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtZQUMxQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7WUFDckM7Ozs7O2VBS0c7WUFDSCxNQUFNLHNCQUFzQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7Z0JBQzNDLE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLG1CQUFtQixDQUN0RCxPQUFPLENBQUMsV0FBVyxDQUFDLENBQ3JCLENBQUE7Z0JBQ0QsZ0JBQWdCLENBQUMsa0JBQWtCLEdBQUcsWUFBWSxDQUFBO2dCQUNsRCxPQUFPLGdCQUFnQixDQUFBO1lBQ3pCLENBQUMsQ0FBQyxDQUFBO1lBRUYsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBTTNCLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSxDQUFDLENBQUE7WUFFeEMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUN6QixRQUFRLENBQUMsbUJBQW1CLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUN2RCxDQUFBO1lBRUQsTUFBTSxDQUFDLEdBQUcsRUFBRTtnQkFDVixNQUFNLGdCQUFnQixHQUFHLHNCQUFzQixFQUFFLENBQUE7Z0JBQ2pELFFBQVEsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUU7b0JBQ3BDLHFFQUFxRTtvQkFDckUsc0VBQXNFO29CQUN0RSxTQUFTLEVBQUUsS0FBSztpQkFDakIsQ0FBQyxDQUFBO2dCQUNGLFNBQVMsQ0FBQyxHQUFHLEVBQUU7b0JBQ2IsWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFBO2dCQUNsRSxDQUFDLENBQUMsQ0FBQTtZQUNKLENBQUMsQ0FBQyxDQUFBO1lBRUYsa0ZBQWtGO1lBQ2xGLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQ3BDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUF1QyxFQUFFLEVBQUU7Z0JBQ25FLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO29CQUNkLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7Z0JBQ3ZCLENBQUMsQ0FBQyxDQUFBO1lBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQTtZQUNELFVBQVUsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUE7WUFFakMsT0FBTyxXQUFXLENBQUMsWUFBWSxDQUF5QyxDQUFBO1FBQzFFLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVzdHJveVJlZixcbiAgSW5qZWN0b3IsXG4gIE5nWm9uZSxcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBydW5JbkluamVjdGlvbkNvbnRleHQsXG4gIHNpZ25hbCxcbiAgdW50cmFja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgbm90aWZ5TWFuYWdlciB9IGZyb20gJ0B0YW5zdGFjay9xdWVyeS1jb3JlJ1xuaW1wb3J0IHsgc2lnbmFsUHJveHkgfSBmcm9tICcuL3NpZ25hbC1wcm94eSdcbmltcG9ydCB7IGxhenlJbml0IH0gZnJvbSAnLi91dGlsL2xhenktaW5pdC9sYXp5LWluaXQnXG5pbXBvcnQgdHlwZSB7XG4gIFF1ZXJ5Q2xpZW50LFxuICBRdWVyeUtleSxcbiAgUXVlcnlPYnNlcnZlcixcbiAgUXVlcnlPYnNlcnZlclJlc3VsdCxcbn0gZnJvbSAnQHRhbnN0YWNrL3F1ZXJ5LWNvcmUnXG5pbXBvcnQgdHlwZSB7IENyZWF0ZUJhc2VRdWVyeU9wdGlvbnMsIENyZWF0ZUJhc2VRdWVyeVJlc3VsdCB9IGZyb20gJy4vdHlwZXMnXG5cbi8qKlxuICogQmFzZSBpbXBsZW1lbnRhdGlvbiBmb3IgYGluamVjdFF1ZXJ5YCBhbmQgYGluamVjdEluZmluaXRlUXVlcnlgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQmFzZVF1ZXJ5PFxuICBUUXVlcnlGbkRhdGEsXG4gIFRFcnJvcixcbiAgVERhdGEsXG4gIFRRdWVyeURhdGEsXG4gIFRRdWVyeUtleSBleHRlbmRzIFF1ZXJ5S2V5LFxuPihcbiAgb3B0aW9uczogKFxuICAgIGNsaWVudDogUXVlcnlDbGllbnQsXG4gICkgPT4gQ3JlYXRlQmFzZVF1ZXJ5T3B0aW9uczxcbiAgICBUUXVlcnlGbkRhdGEsXG4gICAgVEVycm9yLFxuICAgIFREYXRhLFxuICAgIFRRdWVyeURhdGEsXG4gICAgVFF1ZXJ5S2V5XG4gID4sXG4gIE9ic2VydmVyOiB0eXBlb2YgUXVlcnlPYnNlcnZlcixcbiAgcXVlcnlDbGllbnQ6IFF1ZXJ5Q2xpZW50LFxuKTogQ3JlYXRlQmFzZVF1ZXJ5UmVzdWx0PFREYXRhLCBURXJyb3I+IHtcbiAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpXG4gIGNvbnN0IG5nWm9uZSA9IGluamVjdChOZ1pvbmUpXG5cbiAgcmV0dXJuIGxhenlJbml0KCgpID0+IHtcbiAgICByZXR1cm4gcnVuSW5JbmplY3Rpb25Db250ZXh0KGluamVjdG9yLCAoKSA9PiB7XG4gICAgICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpXG4gICAgICAvKipcbiAgICAgICAqIFNpZ25hbCB0aGF0IGhhcyB0aGUgZGVmYXVsdCBvcHRpb25zIGZyb20gcXVlcnkgY2xpZW50IGFwcGxpZWRcbiAgICAgICAqIGNvbXB1dGVkKCkgaXMgdXNlZCBzbyBzaWduYWxzIGNhbiBiZSBpbnNlcnRlZCBpbnRvIHRoZSBvcHRpb25zXG4gICAgICAgKiBtYWtpbmcgaXQgcmVhY3RpdmUuIFdyYXBwaW5nIG9wdGlvbnMgaW4gYSBmdW5jdGlvbiBlbnN1cmVzIGVtYmVkZGVkIGV4cHJlc3Npb25zXG4gICAgICAgKiBhcmUgcHJlc2VydmVkIGFuZCBjYW4ga2VlcCBiZWluZyBhcHBsaWVkIGFmdGVyIHNpZ25hbCBjaGFuZ2VzXG4gICAgICAgKi9cbiAgICAgIGNvbnN0IGRlZmF1bHRlZE9wdGlvbnNTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRlZE9wdGlvbnMgPSBxdWVyeUNsaWVudC5kZWZhdWx0UXVlcnlPcHRpb25zKFxuICAgICAgICAgIG9wdGlvbnMocXVlcnlDbGllbnQpLFxuICAgICAgICApXG4gICAgICAgIGRlZmF1bHRlZE9wdGlvbnMuX29wdGltaXN0aWNSZXN1bHRzID0gJ29wdGltaXN0aWMnXG4gICAgICAgIHJldHVybiBkZWZhdWx0ZWRPcHRpb25zXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBPYnNlcnZlcjxcbiAgICAgICAgVFF1ZXJ5Rm5EYXRhLFxuICAgICAgICBURXJyb3IsXG4gICAgICAgIFREYXRhLFxuICAgICAgICBUUXVlcnlEYXRhLFxuICAgICAgICBUUXVlcnlLZXlcbiAgICAgID4ocXVlcnlDbGllbnQsIGRlZmF1bHRlZE9wdGlvbnNTaWduYWwoKSlcblxuICAgICAgY29uc3QgcmVzdWx0U2lnbmFsID0gc2lnbmFsKFxuICAgICAgICBvYnNlcnZlci5nZXRPcHRpbWlzdGljUmVzdWx0KGRlZmF1bHRlZE9wdGlvbnNTaWduYWwoKSksXG4gICAgICApXG5cbiAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRlZE9wdGlvbnMgPSBkZWZhdWx0ZWRPcHRpb25zU2lnbmFsKClcbiAgICAgICAgb2JzZXJ2ZXIuc2V0T3B0aW9ucyhkZWZhdWx0ZWRPcHRpb25zLCB7XG4gICAgICAgICAgLy8gRG8gbm90IG5vdGlmeSBvbiB1cGRhdGVzIGJlY2F1c2Ugb2YgY2hhbmdlcyBpbiB0aGUgb3B0aW9ucyBiZWNhdXNlXG4gICAgICAgICAgLy8gdGhlc2UgY2hhbmdlcyBzaG91bGQgYWxyZWFkeSBiZSByZWZsZWN0ZWQgaW4gdGhlIG9wdGltaXN0aWMgcmVzdWx0LlxuICAgICAgICAgIGxpc3RlbmVyczogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgcmVzdWx0U2lnbmFsLnNldChvYnNlcnZlci5nZXRPcHRpbWlzdGljUmVzdWx0KGRlZmF1bHRlZE9wdGlvbnMpKVxuICAgICAgICB9KVxuICAgICAgfSlcblxuICAgICAgLy8gb2JzZXJ2ZXIudHJhY2tSZXN1bHQgaXMgbm90IHVzZWQgYXMgdGhpcyBvcHRpbWl6YXRpb24gaXMgbm90IG5lZWRlZCBmb3IgQW5ndWxhclxuICAgICAgY29uc3QgdW5zdWJzY3JpYmUgPSBvYnNlcnZlci5zdWJzY3JpYmUoXG4gICAgICAgIG5vdGlmeU1hbmFnZXIuYmF0Y2hDYWxscygodmFsOiBRdWVyeU9ic2VydmVyUmVzdWx0PFREYXRhLCBURXJyb3I+KSA9PiB7XG4gICAgICAgICAgbmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICByZXN1bHRTaWduYWwuc2V0KHZhbClcbiAgICAgICAgICB9KVxuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIGRlc3Ryb3lSZWYub25EZXN0cm95KHVuc3Vic2NyaWJlKVxuXG4gICAgICByZXR1cm4gc2lnbmFsUHJveHkocmVzdWx0U2lnbmFsKSBhcyBDcmVhdGVCYXNlUXVlcnlSZXN1bHQ8VERhdGEsIFRFcnJvcj5cbiAgICB9KVxuICB9KVxufVxuIl19
@@ -1,4 +1,4 @@
1
- import { DestroyRef, inject, signal } from '@angular/core';
1
+ import { DestroyRef, NgZone, inject, signal } from '@angular/core';
2
2
  import { notifyManager } from '@tanstack/query-core';
3
3
  import { assertInjector } from './util/assert-injector/assert-injector';
4
4
  import { injectQueryClient } from './inject-query-client';
@@ -6,6 +6,7 @@ export function injectIsFetching(filters, injector) {
6
6
  return assertInjector(injectIsFetching, injector, () => {
7
7
  const queryClient = injectQueryClient();
8
8
  const destroyRef = inject(DestroyRef);
9
+ const ngZone = inject(NgZone);
9
10
  const cache = queryClient.getQueryCache();
10
11
  // isFetching is the prev value initialized on mount *
11
12
  let isFetching = queryClient.isFetching(filters);
@@ -15,11 +16,13 @@ export function injectIsFetching(filters, injector) {
15
16
  if (isFetching !== newIsFetching) {
16
17
  // * and update with each change
17
18
  isFetching = newIsFetching;
18
- result.set(isFetching);
19
+ ngZone.run(() => {
20
+ result.set(isFetching);
21
+ });
19
22
  }
20
23
  }));
21
24
  destroyRef.onDestroy(unsubscribe);
22
25
  return result;
23
26
  });
24
27
  }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LWlzLWZldGNoaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luamVjdC1pcy1mZXRjaGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUQsT0FBTyxFQUFxQixhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFHekQsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixPQUFzQixFQUN0QixRQUFtQjtJQUVuQixPQUFPLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ3JELE1BQU0sV0FBVyxHQUFHLGlCQUFpQixFQUFFLENBQUE7UUFDdkMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBRXJDLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUN6QyxzREFBc0Q7UUFDdEQsSUFBSSxVQUFVLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUVoRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7UUFFakMsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FDakMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDNUIsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUNyRCxJQUFJLFVBQVUsS0FBSyxhQUFhLEVBQUU7Z0JBQ2hDLGdDQUFnQztnQkFDaEMsVUFBVSxHQUFHLGFBQWEsQ0FBQTtnQkFDMUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQTthQUN2QjtRQUNILENBQUMsQ0FBQyxDQUNILENBQUE7UUFFRCxVQUFVLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBRWpDLE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgdHlwZSBRdWVyeUZpbHRlcnMsIG5vdGlmeU1hbmFnZXIgfSBmcm9tICdAdGFuc3RhY2svcXVlcnktY29yZSdcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnLi91dGlsL2Fzc2VydC1pbmplY3Rvci9hc3NlcnQtaW5qZWN0b3InXG5pbXBvcnQgeyBpbmplY3RRdWVyeUNsaWVudCB9IGZyb20gJy4vaW5qZWN0LXF1ZXJ5LWNsaWVudCdcbmltcG9ydCB0eXBlIHsgSW5qZWN0b3IsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RJc0ZldGNoaW5nKFxuICBmaWx0ZXJzPzogUXVlcnlGaWx0ZXJzLFxuICBpbmplY3Rvcj86IEluamVjdG9yLFxuKTogU2lnbmFsPG51bWJlcj4ge1xuICByZXR1cm4gYXNzZXJ0SW5qZWN0b3IoaW5qZWN0SXNGZXRjaGluZywgaW5qZWN0b3IsICgpID0+IHtcbiAgICBjb25zdCBxdWVyeUNsaWVudCA9IGluamVjdFF1ZXJ5Q2xpZW50KClcbiAgICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpXG5cbiAgICBjb25zdCBjYWNoZSA9IHF1ZXJ5Q2xpZW50LmdldFF1ZXJ5Q2FjaGUoKVxuICAgIC8vIGlzRmV0Y2hpbmcgaXMgdGhlIHByZXYgdmFsdWUgaW5pdGlhbGl6ZWQgb24gbW91bnQgKlxuICAgIGxldCBpc0ZldGNoaW5nID0gcXVlcnlDbGllbnQuaXNGZXRjaGluZyhmaWx0ZXJzKVxuXG4gICAgY29uc3QgcmVzdWx0ID0gc2lnbmFsKGlzRmV0Y2hpbmcpXG5cbiAgICBjb25zdCB1bnN1YnNjcmliZSA9IGNhY2hlLnN1YnNjcmliZShcbiAgICAgIG5vdGlmeU1hbmFnZXIuYmF0Y2hDYWxscygoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld0lzRmV0Y2hpbmcgPSBxdWVyeUNsaWVudC5pc0ZldGNoaW5nKGZpbHRlcnMpXG4gICAgICAgIGlmIChpc0ZldGNoaW5nICE9PSBuZXdJc0ZldGNoaW5nKSB7XG4gICAgICAgICAgLy8gKiBhbmQgdXBkYXRlIHdpdGggZWFjaCBjaGFuZ2VcbiAgICAgICAgICBpc0ZldGNoaW5nID0gbmV3SXNGZXRjaGluZ1xuICAgICAgICAgIHJlc3VsdC5zZXQoaXNGZXRjaGluZylcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKVxuXG4gICAgZGVzdHJveVJlZi5vbkRlc3Ryb3kodW5zdWJzY3JpYmUpXG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH0pXG59XG4iXX0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LWlzLWZldGNoaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luamVjdC1pcy1mZXRjaGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xFLE9BQU8sRUFBcUIsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBR3pELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsT0FBc0IsRUFDdEIsUUFBbUI7SUFFbkIsT0FBTyxjQUFjLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUNyRCxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsRUFBRSxDQUFBO1FBQ3ZDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNyQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFFN0IsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQ3pDLHNEQUFzRDtRQUN0RCxJQUFJLFVBQVUsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRWhELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUVqQyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUNqQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUM1QixNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ3JELElBQUksVUFBVSxLQUFLLGFBQWEsRUFBRTtnQkFDaEMsZ0NBQWdDO2dCQUNoQyxVQUFVLEdBQUcsYUFBYSxDQUFBO2dCQUMxQixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtvQkFDZCxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO2dCQUN4QixDQUFDLENBQUMsQ0FBQTthQUNIO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUVELFVBQVUsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUE7UUFFakMsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBOZ1pvbmUsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IHR5cGUgUXVlcnlGaWx0ZXJzLCBub3RpZnlNYW5hZ2VyIH0gZnJvbSAnQHRhbnN0YWNrL3F1ZXJ5LWNvcmUnXG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJy4vdXRpbC9hc3NlcnQtaW5qZWN0b3IvYXNzZXJ0LWluamVjdG9yJ1xuaW1wb3J0IHsgaW5qZWN0UXVlcnlDbGllbnQgfSBmcm9tICcuL2luamVjdC1xdWVyeS1jbGllbnQnXG5pbXBvcnQgdHlwZSB7IEluamVjdG9yLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0SXNGZXRjaGluZyhcbiAgZmlsdGVycz86IFF1ZXJ5RmlsdGVycyxcbiAgaW5qZWN0b3I/OiBJbmplY3Rvcixcbik6IFNpZ25hbDxudW1iZXI+IHtcbiAgcmV0dXJuIGFzc2VydEluamVjdG9yKGluamVjdElzRmV0Y2hpbmcsIGluamVjdG9yLCAoKSA9PiB7XG4gICAgY29uc3QgcXVlcnlDbGllbnQgPSBpbmplY3RRdWVyeUNsaWVudCgpXG4gICAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKVxuICAgIGNvbnN0IG5nWm9uZSA9IGluamVjdChOZ1pvbmUpXG5cbiAgICBjb25zdCBjYWNoZSA9IHF1ZXJ5Q2xpZW50LmdldFF1ZXJ5Q2FjaGUoKVxuICAgIC8vIGlzRmV0Y2hpbmcgaXMgdGhlIHByZXYgdmFsdWUgaW5pdGlhbGl6ZWQgb24gbW91bnQgKlxuICAgIGxldCBpc0ZldGNoaW5nID0gcXVlcnlDbGllbnQuaXNGZXRjaGluZyhmaWx0ZXJzKVxuXG4gICAgY29uc3QgcmVzdWx0ID0gc2lnbmFsKGlzRmV0Y2hpbmcpXG5cbiAgICBjb25zdCB1bnN1YnNjcmliZSA9IGNhY2hlLnN1YnNjcmliZShcbiAgICAgIG5vdGlmeU1hbmFnZXIuYmF0Y2hDYWxscygoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld0lzRmV0Y2hpbmcgPSBxdWVyeUNsaWVudC5pc0ZldGNoaW5nKGZpbHRlcnMpXG4gICAgICAgIGlmIChpc0ZldGNoaW5nICE9PSBuZXdJc0ZldGNoaW5nKSB7XG4gICAgICAgICAgLy8gKiBhbmQgdXBkYXRlIHdpdGggZWFjaCBjaGFuZ2VcbiAgICAgICAgICBpc0ZldGNoaW5nID0gbmV3SXNGZXRjaGluZ1xuICAgICAgICAgIG5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgcmVzdWx0LnNldChpc0ZldGNoaW5nKVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgIClcblxuICAgIGRlc3Ryb3lSZWYub25EZXN0cm95KHVuc3Vic2NyaWJlKVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9KVxufVxuIl19
@@ -1,4 +1,4 @@
1
- import { DestroyRef, inject, signal } from '@angular/core';
1
+ import { DestroyRef, NgZone, inject, signal } from '@angular/core';
2
2
  import { notifyManager } from '@tanstack/query-core';
3
3
  import { assertInjector } from './util/assert-injector/assert-injector';
4
4
  import { injectQueryClient } from './inject-query-client';
@@ -6,6 +6,7 @@ export function injectIsMutating(filters, injector) {
6
6
  return assertInjector(injectIsMutating, injector, () => {
7
7
  const queryClient = injectQueryClient();
8
8
  const destroyRef = inject(DestroyRef);
9
+ const ngZone = inject(NgZone);
9
10
  const cache = queryClient.getMutationCache();
10
11
  // isMutating is the prev value initialized on mount *
11
12
  let isMutating = queryClient.isMutating(filters);
@@ -15,11 +16,13 @@ export function injectIsMutating(filters, injector) {
15
16
  if (isMutating !== newIsMutating) {
16
17
  // * and update with each change
17
18
  isMutating = newIsMutating;
18
- result.set(isMutating);
19
+ ngZone.run(() => {
20
+ result.set(isMutating);
21
+ });
19
22
  }
20
23
  }));
21
24
  destroyRef.onDestroy(unsubscribe);
22
25
  return result;
23
26
  });
24
27
  }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LWlzLW11dGF0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luamVjdC1pcy1tdXRhdGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUQsT0FBTyxFQUF3QixhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFHekQsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixPQUF5QixFQUN6QixRQUFtQjtJQUVuQixPQUFPLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ3JELE1BQU0sV0FBVyxHQUFHLGlCQUFpQixFQUFFLENBQUE7UUFDdkMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBRXJDLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1FBQzVDLHNEQUFzRDtRQUN0RCxJQUFJLFVBQVUsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRWhELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUVqQyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUNqQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUM1QixNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ3JELElBQUksVUFBVSxLQUFLLGFBQWEsRUFBRTtnQkFDaEMsZ0NBQWdDO2dCQUNoQyxVQUFVLEdBQUcsYUFBYSxDQUFBO2dCQUMxQixNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO2FBQ3ZCO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUVELFVBQVUsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUE7UUFFakMsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyB0eXBlIE11dGF0aW9uRmlsdGVycywgbm90aWZ5TWFuYWdlciB9IGZyb20gJ0B0YW5zdGFjay9xdWVyeS1jb3JlJ1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICcuL3V0aWwvYXNzZXJ0LWluamVjdG9yL2Fzc2VydC1pbmplY3RvcidcbmltcG9ydCB7IGluamVjdFF1ZXJ5Q2xpZW50IH0gZnJvbSAnLi9pbmplY3QtcXVlcnktY2xpZW50J1xuaW1wb3J0IHR5cGUgeyBJbmplY3RvciwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdElzTXV0YXRpbmcoXG4gIGZpbHRlcnM/OiBNdXRhdGlvbkZpbHRlcnMsXG4gIGluamVjdG9yPzogSW5qZWN0b3IsXG4pOiBTaWduYWw8bnVtYmVyPiB7XG4gIHJldHVybiBhc3NlcnRJbmplY3RvcihpbmplY3RJc011dGF0aW5nLCBpbmplY3RvciwgKCkgPT4ge1xuICAgIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gaW5qZWN0UXVlcnlDbGllbnQoKVxuICAgIGNvbnN0IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZilcblxuICAgIGNvbnN0IGNhY2hlID0gcXVlcnlDbGllbnQuZ2V0TXV0YXRpb25DYWNoZSgpXG4gICAgLy8gaXNNdXRhdGluZyBpcyB0aGUgcHJldiB2YWx1ZSBpbml0aWFsaXplZCBvbiBtb3VudCAqXG4gICAgbGV0IGlzTXV0YXRpbmcgPSBxdWVyeUNsaWVudC5pc011dGF0aW5nKGZpbHRlcnMpXG5cbiAgICBjb25zdCByZXN1bHQgPSBzaWduYWwoaXNNdXRhdGluZylcblxuICAgIGNvbnN0IHVuc3Vic2NyaWJlID0gY2FjaGUuc3Vic2NyaWJlKFxuICAgICAgbm90aWZ5TWFuYWdlci5iYXRjaENhbGxzKCgpID0+IHtcbiAgICAgICAgY29uc3QgbmV3SXNNdXRhdGluZyA9IHF1ZXJ5Q2xpZW50LmlzTXV0YXRpbmcoZmlsdGVycylcbiAgICAgICAgaWYgKGlzTXV0YXRpbmcgIT09IG5ld0lzTXV0YXRpbmcpIHtcbiAgICAgICAgICAvLyAqIGFuZCB1cGRhdGUgd2l0aCBlYWNoIGNoYW5nZVxuICAgICAgICAgIGlzTXV0YXRpbmcgPSBuZXdJc011dGF0aW5nXG4gICAgICAgICAgcmVzdWx0LnNldChpc011dGF0aW5nKVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApXG5cbiAgICBkZXN0cm95UmVmLm9uRGVzdHJveSh1bnN1YnNjcmliZSlcblxuICAgIHJldHVybiByZXN1bHRcbiAgfSlcbn1cbiJdfQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LWlzLW11dGF0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luamVjdC1pcy1tdXRhdGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xFLE9BQU8sRUFBd0IsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBR3pELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsT0FBeUIsRUFDekIsUUFBbUI7SUFFbkIsT0FBTyxjQUFjLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUNyRCxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsRUFBRSxDQUFBO1FBQ3ZDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNyQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFFN0IsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUE7UUFDNUMsc0RBQXNEO1FBQ3RELElBQUksVUFBVSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUE7UUFFaEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBRWpDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQ2pDLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQzVCLE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDckQsSUFBSSxVQUFVLEtBQUssYUFBYSxFQUFFO2dCQUNoQyxnQ0FBZ0M7Z0JBQ2hDLFVBQVUsR0FBRyxhQUFhLENBQUE7Z0JBQzFCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO29CQUNkLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUE7Z0JBQ3hCLENBQUMsQ0FBQyxDQUFBO2FBQ0g7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO1FBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUVqQyxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIE5nWm9uZSwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgdHlwZSBNdXRhdGlvbkZpbHRlcnMsIG5vdGlmeU1hbmFnZXIgfSBmcm9tICdAdGFuc3RhY2svcXVlcnktY29yZSdcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnLi91dGlsL2Fzc2VydC1pbmplY3Rvci9hc3NlcnQtaW5qZWN0b3InXG5pbXBvcnQgeyBpbmplY3RRdWVyeUNsaWVudCB9IGZyb20gJy4vaW5qZWN0LXF1ZXJ5LWNsaWVudCdcbmltcG9ydCB0eXBlIHsgSW5qZWN0b3IsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RJc011dGF0aW5nKFxuICBmaWx0ZXJzPzogTXV0YXRpb25GaWx0ZXJzLFxuICBpbmplY3Rvcj86IEluamVjdG9yLFxuKTogU2lnbmFsPG51bWJlcj4ge1xuICByZXR1cm4gYXNzZXJ0SW5qZWN0b3IoaW5qZWN0SXNNdXRhdGluZywgaW5qZWN0b3IsICgpID0+IHtcbiAgICBjb25zdCBxdWVyeUNsaWVudCA9IGluamVjdFF1ZXJ5Q2xpZW50KClcbiAgICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpXG4gICAgY29uc3Qgbmdab25lID0gaW5qZWN0KE5nWm9uZSlcblxuICAgIGNvbnN0IGNhY2hlID0gcXVlcnlDbGllbnQuZ2V0TXV0YXRpb25DYWNoZSgpXG4gICAgLy8gaXNNdXRhdGluZyBpcyB0aGUgcHJldiB2YWx1ZSBpbml0aWFsaXplZCBvbiBtb3VudCAqXG4gICAgbGV0IGlzTXV0YXRpbmcgPSBxdWVyeUNsaWVudC5pc011dGF0aW5nKGZpbHRlcnMpXG5cbiAgICBjb25zdCByZXN1bHQgPSBzaWduYWwoaXNNdXRhdGluZylcblxuICAgIGNvbnN0IHVuc3Vic2NyaWJlID0gY2FjaGUuc3Vic2NyaWJlKFxuICAgICAgbm90aWZ5TWFuYWdlci5iYXRjaENhbGxzKCgpID0+IHtcbiAgICAgICAgY29uc3QgbmV3SXNNdXRhdGluZyA9IHF1ZXJ5Q2xpZW50LmlzTXV0YXRpbmcoZmlsdGVycylcbiAgICAgICAgaWYgKGlzTXV0YXRpbmcgIT09IG5ld0lzTXV0YXRpbmcpIHtcbiAgICAgICAgICAvLyAqIGFuZCB1cGRhdGUgd2l0aCBlYWNoIGNoYW5nZVxuICAgICAgICAgIGlzTXV0YXRpbmcgPSBuZXdJc011dGF0aW5nXG4gICAgICAgICAgbmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICByZXN1bHQuc2V0KGlzTXV0YXRpbmcpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKVxuXG4gICAgZGVzdHJveVJlZi5vbkRlc3Ryb3kodW5zdWJzY3JpYmUpXG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH0pXG59XG4iXX0=
@@ -1,7 +1,8 @@
1
- import { DestroyRef, effect, inject, signal, untracked } from '@angular/core';
1
+ import { DestroyRef, NgZone, effect, inject, signal, untracked, } from '@angular/core';
2
2
  import { notifyManager, replaceEqualDeep, } from '@tanstack/query-core';
3
3
  import { assertInjector } from './util/assert-injector/assert-injector';
4
4
  import { injectQueryClient } from './inject-query-client';
5
+ import { lazySignalInitializer } from './util/lazy-signal-initializer/lazy-signal-initializer';
5
6
  function getResult(mutationCache, options) {
6
7
  return mutationCache
7
8
  .findAll(options.filters)
@@ -13,24 +14,29 @@ export function injectMutationState(mutationStateOptionsFn = () => ({}), options
13
14
  return assertInjector(injectMutationState, options?.injector, () => {
14
15
  const destroyRef = inject(DestroyRef);
15
16
  const queryClient = injectQueryClient();
17
+ const ngZone = inject(NgZone);
16
18
  const mutationCache = queryClient.getMutationCache();
17
- const result = signal(getResult(mutationCache, mutationStateOptionsFn()));
18
- effect(() => {
19
- const mutationStateOptions = mutationStateOptionsFn();
20
- untracked(() => {
21
- // Setting the signal from an effect because it's both 'computed' from options()
22
- // and needs to be set imperatively in the mutationCache listener.
23
- result.set(getResult(mutationCache, mutationStateOptions));
24
- });
19
+ return lazySignalInitializer((injector) => {
20
+ const result = signal(getResult(mutationCache, mutationStateOptionsFn()));
21
+ effect(() => {
22
+ const mutationStateOptions = mutationStateOptionsFn();
23
+ untracked(() => {
24
+ // Setting the signal from an effect because it's both 'computed' from options()
25
+ // and needs to be set imperatively in the mutationCache listener.
26
+ result.set(getResult(mutationCache, mutationStateOptions));
27
+ });
28
+ }, { injector });
29
+ const unsubscribe = mutationCache.subscribe(notifyManager.batchCalls(() => {
30
+ const nextResult = replaceEqualDeep(result(), getResult(mutationCache, mutationStateOptionsFn()));
31
+ if (result() !== nextResult) {
32
+ ngZone.run(() => {
33
+ result.set(nextResult);
34
+ });
35
+ }
36
+ }));
37
+ destroyRef.onDestroy(unsubscribe);
38
+ return result;
25
39
  });
26
- const unsubscribe = mutationCache.subscribe(notifyManager.batchCalls(() => {
27
- const nextResult = replaceEqualDeep(result(), getResult(mutationCache, mutationStateOptionsFn()));
28
- if (result() !== nextResult) {
29
- result.set(nextResult);
30
- }
31
- }));
32
- destroyRef.onDestroy(unsubscribe);
33
- return result;
34
40
  });
35
41
  }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LW11dGF0aW9uLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luamVjdC1tdXRhdGlvbi1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM3RSxPQUFPLEVBTUwsYUFBYSxFQUNiLGdCQUFnQixHQUNqQixNQUFNLHNCQUFzQixDQUFBO0FBQzdCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQVV6RCxTQUFTLFNBQVMsQ0FDaEIsYUFBNEIsRUFDNUIsT0FBc0M7SUFFdEMsT0FBTyxhQUFhO1NBQ2pCLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1NBQ3hCLEdBQUcsQ0FDRixDQUFDLFFBQVEsRUFBVyxFQUFFLENBQ3BCLENBQUMsT0FBTyxDQUFDLE1BQU07UUFDYixDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDWixRQUE2RCxDQUM5RDtRQUNILENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFZLENBQ2pDLENBQUE7QUFDTCxDQUFDO0FBTUQsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyx5QkFBOEQsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDeEUsT0FBb0M7SUFFcEMsT0FBTyxjQUFjLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDakUsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ3JDLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixFQUFFLENBQUE7UUFFdkMsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUE7UUFFcEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUNuQixTQUFTLENBQUMsYUFBYSxFQUFFLHNCQUFzQixFQUFFLENBQUMsQ0FDbkQsQ0FBQTtRQUVELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixNQUFNLG9CQUFvQixHQUFHLHNCQUFzQixFQUFFLENBQUE7WUFDckQsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDYixnRkFBZ0Y7Z0JBQ2hGLGtFQUFrRTtnQkFDbEUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQTtZQUM1RCxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO1FBRUYsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FDekMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDNUIsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQ2pDLE1BQU0sRUFBRSxFQUNSLFNBQVMsQ0FBQyxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQyxDQUNuRCxDQUFBO1lBQ0QsSUFBSSxNQUFNLEVBQUUsS0FBSyxVQUFVLEVBQUU7Z0JBQzNCLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUE7YUFDdkI7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO1FBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUVqQyxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIGVmZmVjdCwgaW5qZWN0LCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICB0eXBlIERlZmF1bHRFcnJvcixcbiAgdHlwZSBNdXRhdGlvbixcbiAgdHlwZSBNdXRhdGlvbkNhY2hlLFxuICB0eXBlIE11dGF0aW9uRmlsdGVycyxcbiAgdHlwZSBNdXRhdGlvblN0YXRlLFxuICBub3RpZnlNYW5hZ2VyLFxuICByZXBsYWNlRXF1YWxEZWVwLFxufSBmcm9tICdAdGFuc3RhY2svcXVlcnktY29yZSdcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnLi91dGlsL2Fzc2VydC1pbmplY3Rvci9hc3NlcnQtaW5qZWN0b3InXG5pbXBvcnQgeyBpbmplY3RRdWVyeUNsaWVudCB9IGZyb20gJy4vaW5qZWN0LXF1ZXJ5LWNsaWVudCdcbmltcG9ydCB0eXBlIHsgSW5qZWN0b3IsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbnR5cGUgTXV0YXRpb25TdGF0ZU9wdGlvbnM8VFJlc3VsdCA9IE11dGF0aW9uU3RhdGU+ID0ge1xuICBmaWx0ZXJzPzogTXV0YXRpb25GaWx0ZXJzXG4gIHNlbGVjdD86IChcbiAgICBtdXRhdGlvbjogTXV0YXRpb248dW5rbm93biwgRGVmYXVsdEVycm9yLCB1bmtub3duLCB1bmtub3duPixcbiAgKSA9PiBUUmVzdWx0XG59XG5cbmZ1bmN0aW9uIGdldFJlc3VsdDxUUmVzdWx0ID0gTXV0YXRpb25TdGF0ZT4oXG4gIG11dGF0aW9uQ2FjaGU6IE11dGF0aW9uQ2FjaGUsXG4gIG9wdGlvbnM6IE11dGF0aW9uU3RhdGVPcHRpb25zPFRSZXN1bHQ+LFxuKTogQXJyYXk8VFJlc3VsdD4ge1xuICByZXR1cm4gbXV0YXRpb25DYWNoZVxuICAgIC5maW5kQWxsKG9wdGlvbnMuZmlsdGVycylcbiAgICAubWFwKFxuICAgICAgKG11dGF0aW9uKTogVFJlc3VsdCA9PlxuICAgICAgICAob3B0aW9ucy5zZWxlY3RcbiAgICAgICAgICA/IG9wdGlvbnMuc2VsZWN0KFxuICAgICAgICAgICAgICBtdXRhdGlvbiBhcyBNdXRhdGlvbjx1bmtub3duLCBEZWZhdWx0RXJyb3IsIHVua25vd24sIHVua25vd24+LFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbXV0YXRpb24uc3RhdGUpIGFzIFRSZXN1bHQsXG4gICAgKVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluamVjdE11dGF0aW9uU3RhdGVPcHRpb25zIHtcbiAgaW5qZWN0b3I/OiBJbmplY3RvclxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0TXV0YXRpb25TdGF0ZTxUUmVzdWx0ID0gTXV0YXRpb25TdGF0ZT4oXG4gIG11dGF0aW9uU3RhdGVPcHRpb25zRm46ICgpID0+IE11dGF0aW9uU3RhdGVPcHRpb25zPFRSZXN1bHQ+ID0gKCkgPT4gKHt9KSxcbiAgb3B0aW9ucz86IEluamVjdE11dGF0aW9uU3RhdGVPcHRpb25zLFxuKTogU2lnbmFsPEFycmF5PFRSZXN1bHQ+PiB7XG4gIHJldHVybiBhc3NlcnRJbmplY3RvcihpbmplY3RNdXRhdGlvblN0YXRlLCBvcHRpb25zPy5pbmplY3RvciwgKCkgPT4ge1xuICAgIGNvbnN0IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZilcbiAgICBjb25zdCBxdWVyeUNsaWVudCA9IGluamVjdFF1ZXJ5Q2xpZW50KClcblxuICAgIGNvbnN0IG11dGF0aW9uQ2FjaGUgPSBxdWVyeUNsaWVudC5nZXRNdXRhdGlvbkNhY2hlKClcblxuICAgIGNvbnN0IHJlc3VsdCA9IHNpZ25hbDxBcnJheTxUUmVzdWx0Pj4oXG4gICAgICBnZXRSZXN1bHQobXV0YXRpb25DYWNoZSwgbXV0YXRpb25TdGF0ZU9wdGlvbnNGbigpKSxcbiAgICApXG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgbXV0YXRpb25TdGF0ZU9wdGlvbnMgPSBtdXRhdGlvblN0YXRlT3B0aW9uc0ZuKClcbiAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgIC8vIFNldHRpbmcgdGhlIHNpZ25hbCBmcm9tIGFuIGVmZmVjdCBiZWNhdXNlIGl0J3MgYm90aCAnY29tcHV0ZWQnIGZyb20gb3B0aW9ucygpXG4gICAgICAgIC8vIGFuZCBuZWVkcyB0byBiZSBzZXQgaW1wZXJhdGl2ZWx5IGluIHRoZSBtdXRhdGlvbkNhY2hlIGxpc3RlbmVyLlxuICAgICAgICByZXN1bHQuc2V0KGdldFJlc3VsdChtdXRhdGlvbkNhY2hlLCBtdXRhdGlvblN0YXRlT3B0aW9ucykpXG4gICAgICB9KVxuICAgIH0pXG5cbiAgICBjb25zdCB1bnN1YnNjcmliZSA9IG11dGF0aW9uQ2FjaGUuc3Vic2NyaWJlKFxuICAgICAgbm90aWZ5TWFuYWdlci5iYXRjaENhbGxzKCgpID0+IHtcbiAgICAgICAgY29uc3QgbmV4dFJlc3VsdCA9IHJlcGxhY2VFcXVhbERlZXAoXG4gICAgICAgICAgcmVzdWx0KCksXG4gICAgICAgICAgZ2V0UmVzdWx0KG11dGF0aW9uQ2FjaGUsIG11dGF0aW9uU3RhdGVPcHRpb25zRm4oKSksXG4gICAgICAgIClcbiAgICAgICAgaWYgKHJlc3VsdCgpICE9PSBuZXh0UmVzdWx0KSB7XG4gICAgICAgICAgcmVzdWx0LnNldChuZXh0UmVzdWx0KVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApXG5cbiAgICBkZXN0cm95UmVmLm9uRGVzdHJveSh1bnN1YnNjcmliZSlcblxuICAgIHJldHVybiByZXN1bHRcbiAgfSlcbn1cbiJdfQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LW11dGF0aW9uLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luamVjdC1tdXRhdGlvbi1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQU1MLGFBQWEsRUFDYixnQkFBZ0IsR0FDakIsTUFBTSxzQkFBc0IsQ0FBQTtBQUM3QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0RBQXdELENBQUE7QUFVOUYsU0FBUyxTQUFTLENBQ2hCLGFBQTRCLEVBQzVCLE9BQXNDO0lBRXRDLE9BQU8sYUFBYTtTQUNqQixPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztTQUN4QixHQUFHLENBQ0YsQ0FBQyxRQUFRLEVBQVcsRUFBRSxDQUNwQixDQUFDLE9BQU8sQ0FBQyxNQUFNO1FBQ2IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQ1osUUFBNkQsQ0FDOUQ7UUFDSCxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBWSxDQUNqQyxDQUFBO0FBQ0wsQ0FBQztBQU1ELE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMseUJBQThELEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQ3hFLE9BQW9DO0lBRXBDLE9BQU8sY0FBYyxDQUFDLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ2pFLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNyQyxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsRUFBRSxDQUFBO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUU3QixNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUVwRCxPQUFPLHFCQUFxQixDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDeEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUNuQixTQUFTLENBQUMsYUFBYSxFQUFFLHNCQUFzQixFQUFFLENBQUMsQ0FDbkQsQ0FBQTtZQUVELE1BQU0sQ0FDSixHQUFHLEVBQUU7Z0JBQ0gsTUFBTSxvQkFBb0IsR0FBRyxzQkFBc0IsRUFBRSxDQUFBO2dCQUNyRCxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNiLGdGQUFnRjtvQkFDaEYsa0VBQWtFO29CQUNsRSxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFBO2dCQUM1RCxDQUFDLENBQUMsQ0FBQTtZQUNKLENBQUMsRUFDRCxFQUFFLFFBQVEsRUFBRSxDQUNiLENBQUE7WUFFRCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUN6QyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDNUIsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQ2pDLE1BQU0sRUFBRSxFQUNSLFNBQVMsQ0FBQyxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQyxDQUNuRCxDQUFBO2dCQUNELElBQUksTUFBTSxFQUFFLEtBQUssVUFBVSxFQUFFO29CQUMzQixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTt3QkFDZCxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO29CQUN4QixDQUFDLENBQUMsQ0FBQTtpQkFDSDtZQUNILENBQUMsQ0FBQyxDQUNILENBQUE7WUFFRCxVQUFVLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBRWpDLE9BQU8sTUFBTSxDQUFBO1FBQ2YsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEZXN0cm95UmVmLFxuICBOZ1pvbmUsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBzaWduYWwsXG4gIHVudHJhY2tlZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIHR5cGUgRGVmYXVsdEVycm9yLFxuICB0eXBlIE11dGF0aW9uLFxuICB0eXBlIE11dGF0aW9uQ2FjaGUsXG4gIHR5cGUgTXV0YXRpb25GaWx0ZXJzLFxuICB0eXBlIE11dGF0aW9uU3RhdGUsXG4gIG5vdGlmeU1hbmFnZXIsXG4gIHJlcGxhY2VFcXVhbERlZXAsXG59IGZyb20gJ0B0YW5zdGFjay9xdWVyeS1jb3JlJ1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICcuL3V0aWwvYXNzZXJ0LWluamVjdG9yL2Fzc2VydC1pbmplY3RvcidcbmltcG9ydCB7IGluamVjdFF1ZXJ5Q2xpZW50IH0gZnJvbSAnLi9pbmplY3QtcXVlcnktY2xpZW50J1xuaW1wb3J0IHsgbGF6eVNpZ25hbEluaXRpYWxpemVyIH0gZnJvbSAnLi91dGlsL2xhenktc2lnbmFsLWluaXRpYWxpemVyL2xhenktc2lnbmFsLWluaXRpYWxpemVyJ1xuaW1wb3J0IHR5cGUgeyBJbmplY3RvciwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxudHlwZSBNdXRhdGlvblN0YXRlT3B0aW9uczxUUmVzdWx0ID0gTXV0YXRpb25TdGF0ZT4gPSB7XG4gIGZpbHRlcnM/OiBNdXRhdGlvbkZpbHRlcnNcbiAgc2VsZWN0PzogKFxuICAgIG11dGF0aW9uOiBNdXRhdGlvbjx1bmtub3duLCBEZWZhdWx0RXJyb3IsIHVua25vd24sIHVua25vd24+LFxuICApID0+IFRSZXN1bHRcbn1cblxuZnVuY3Rpb24gZ2V0UmVzdWx0PFRSZXN1bHQgPSBNdXRhdGlvblN0YXRlPihcbiAgbXV0YXRpb25DYWNoZTogTXV0YXRpb25DYWNoZSxcbiAgb3B0aW9uczogTXV0YXRpb25TdGF0ZU9wdGlvbnM8VFJlc3VsdD4sXG4pOiBBcnJheTxUUmVzdWx0PiB7XG4gIHJldHVybiBtdXRhdGlvbkNhY2hlXG4gICAgLmZpbmRBbGwob3B0aW9ucy5maWx0ZXJzKVxuICAgIC5tYXAoXG4gICAgICAobXV0YXRpb24pOiBUUmVzdWx0ID0+XG4gICAgICAgIChvcHRpb25zLnNlbGVjdFxuICAgICAgICAgID8gb3B0aW9ucy5zZWxlY3QoXG4gICAgICAgICAgICAgIG11dGF0aW9uIGFzIE11dGF0aW9uPHVua25vd24sIERlZmF1bHRFcnJvciwgdW5rbm93biwgdW5rbm93bj4sXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBtdXRhdGlvbi5zdGF0ZSkgYXMgVFJlc3VsdCxcbiAgICApXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5qZWN0TXV0YXRpb25TdGF0ZU9wdGlvbnMge1xuICBpbmplY3Rvcj86IEluamVjdG9yXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RNdXRhdGlvblN0YXRlPFRSZXN1bHQgPSBNdXRhdGlvblN0YXRlPihcbiAgbXV0YXRpb25TdGF0ZU9wdGlvbnNGbjogKCkgPT4gTXV0YXRpb25TdGF0ZU9wdGlvbnM8VFJlc3VsdD4gPSAoKSA9PiAoe30pLFxuICBvcHRpb25zPzogSW5qZWN0TXV0YXRpb25TdGF0ZU9wdGlvbnMsXG4pOiBTaWduYWw8QXJyYXk8VFJlc3VsdD4+IHtcbiAgcmV0dXJuIGFzc2VydEluamVjdG9yKGluamVjdE11dGF0aW9uU3RhdGUsIG9wdGlvbnM/LmluamVjdG9yLCAoKSA9PiB7XG4gICAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKVxuICAgIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gaW5qZWN0UXVlcnlDbGllbnQoKVxuICAgIGNvbnN0IG5nWm9uZSA9IGluamVjdChOZ1pvbmUpXG5cbiAgICBjb25zdCBtdXRhdGlvbkNhY2hlID0gcXVlcnlDbGllbnQuZ2V0TXV0YXRpb25DYWNoZSgpXG5cbiAgICByZXR1cm4gbGF6eVNpZ25hbEluaXRpYWxpemVyKChpbmplY3RvcikgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gc2lnbmFsPEFycmF5PFRSZXN1bHQ+PihcbiAgICAgICAgZ2V0UmVzdWx0KG11dGF0aW9uQ2FjaGUsIG11dGF0aW9uU3RhdGVPcHRpb25zRm4oKSksXG4gICAgICApXG5cbiAgICAgIGVmZmVjdChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG11dGF0aW9uU3RhdGVPcHRpb25zID0gbXV0YXRpb25TdGF0ZU9wdGlvbnNGbigpXG4gICAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICAgIC8vIFNldHRpbmcgdGhlIHNpZ25hbCBmcm9tIGFuIGVmZmVjdCBiZWNhdXNlIGl0J3MgYm90aCAnY29tcHV0ZWQnIGZyb20gb3B0aW9ucygpXG4gICAgICAgICAgICAvLyBhbmQgbmVlZHMgdG8gYmUgc2V0IGltcGVyYXRpdmVseSBpbiB0aGUgbXV0YXRpb25DYWNoZSBsaXN0ZW5lci5cbiAgICAgICAgICAgIHJlc3VsdC5zZXQoZ2V0UmVzdWx0KG11dGF0aW9uQ2FjaGUsIG11dGF0aW9uU3RhdGVPcHRpb25zKSlcbiAgICAgICAgICB9KVxuICAgICAgICB9LFxuICAgICAgICB7IGluamVjdG9yIH0sXG4gICAgICApXG5cbiAgICAgIGNvbnN0IHVuc3Vic2NyaWJlID0gbXV0YXRpb25DYWNoZS5zdWJzY3JpYmUoXG4gICAgICAgIG5vdGlmeU1hbmFnZXIuYmF0Y2hDYWxscygoKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV4dFJlc3VsdCA9IHJlcGxhY2VFcXVhbERlZXAoXG4gICAgICAgICAgICByZXN1bHQoKSxcbiAgICAgICAgICAgIGdldFJlc3VsdChtdXRhdGlvbkNhY2hlLCBtdXRhdGlvblN0YXRlT3B0aW9uc0ZuKCkpLFxuICAgICAgICAgIClcbiAgICAgICAgICBpZiAocmVzdWx0KCkgIT09IG5leHRSZXN1bHQpIHtcbiAgICAgICAgICAgIG5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICByZXN1bHQuc2V0KG5leHRSZXN1bHQpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICApXG5cbiAgICAgIGRlc3Ryb3lSZWYub25EZXN0cm95KHVuc3Vic2NyaWJlKVxuXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfSlcbiAgfSlcbn1cbiJdfQ==
@@ -1,29 +1,38 @@
1
- import { DestroyRef, computed, effect, inject, signal } from '@angular/core';
1
+ import { DestroyRef, Injector, NgZone, computed, effect, inject, runInInjectionContext, signal, } from '@angular/core';
2
2
  import { MutationObserver, notifyManager } from '@tanstack/query-core';
3
3
  import { assertInjector } from './util/assert-injector/assert-injector';
4
4
  import { signalProxy } from './signal-proxy';
5
5
  import { injectQueryClient } from './inject-query-client';
6
6
  import { noop } from './util';
7
+ import { lazyInit } from './util/lazy-init/lazy-init';
7
8
  export function injectMutation(options, injector) {
8
9
  return assertInjector(injectMutation, injector, () => {
9
10
  const queryClient = injectQueryClient();
11
+ const currentInjector = inject(Injector);
10
12
  const destroyRef = inject(DestroyRef);
11
- const observer = new MutationObserver(queryClient, options(queryClient));
12
- const mutate = (variables, mutateOptions) => {
13
- observer.mutate(variables, mutateOptions).catch(noop);
14
- };
15
- effect(() => {
16
- observer.setOptions(options(queryClient));
17
- });
18
- const result = signal(observer.getCurrentResult());
19
- const unsubscribe = observer.subscribe(notifyManager.batchCalls((val) => result.set(val)));
20
- destroyRef.onDestroy(unsubscribe);
21
- const resultSignal = computed(() => ({
22
- ...result(),
23
- mutate,
24
- mutateAsync: result().mutate,
13
+ const ngZone = inject(NgZone);
14
+ return lazyInit(() => runInInjectionContext(currentInjector, () => {
15
+ const observer = new MutationObserver(queryClient, options(queryClient));
16
+ const mutate = (variables, mutateOptions) => {
17
+ observer.mutate(variables, mutateOptions).catch(noop);
18
+ };
19
+ effect(() => {
20
+ observer.setOptions(options(queryClient));
21
+ });
22
+ const result = signal(observer.getCurrentResult());
23
+ const unsubscribe = observer.subscribe(notifyManager.batchCalls((val) => {
24
+ ngZone.run(() => {
25
+ result.set(val);
26
+ });
27
+ }));
28
+ destroyRef.onDestroy(unsubscribe);
29
+ const resultSignal = computed(() => ({
30
+ ...result(),
31
+ mutate,
32
+ mutateAsync: result().mutate,
33
+ }));
34
+ return signalProxy(resultSignal);
25
35
  }));
26
- return signalProxy(resultSignal);
27
36
  });
28
37
  }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LW11dGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luamVjdC1tdXRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBVTdCLE1BQU0sVUFBVSxjQUFjLENBTTVCLE9BRStELEVBQy9ELFFBQW1CO0lBRW5CLE9BQU8sY0FBYyxDQUFDLGNBQWMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ25ELE1BQU0sV0FBVyxHQUFHLGlCQUFpQixFQUFFLENBQUE7UUFDdkMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBRXJDLE1BQU0sUUFBUSxHQUFHLElBQUksZ0JBQWdCLENBQ25DLFdBQVcsRUFDWCxPQUFPLENBQUMsV0FBVyxDQUFDLENBQ3JCLENBQUE7UUFDRCxNQUFNLE1BQU0sR0FBOEQsQ0FDeEUsU0FBUyxFQUNULGFBQWEsRUFDYixFQUFFO1lBQ0YsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3ZELENBQUMsQ0FBQTtRQUVELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixRQUFRLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBO1FBQzNDLENBQUMsQ0FBQyxDQUFBO1FBRUYsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUE7UUFFbEQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FDcEMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNuRCxDQUFBO1FBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUVqQyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNuQyxHQUFHLE1BQU0sRUFBRTtZQUNYLE1BQU07WUFDTixXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUMsTUFBTTtTQUM3QixDQUFDLENBQUMsQ0FBQTtRQUVILE9BQU8sV0FBVyxDQUFDLFlBQVksQ0FLOUIsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE11dGF0aW9uT2JzZXJ2ZXIsIG5vdGlmeU1hbmFnZXIgfSBmcm9tICdAdGFuc3RhY2svcXVlcnktY29yZSdcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnLi91dGlsL2Fzc2VydC1pbmplY3Rvci9hc3NlcnQtaW5qZWN0b3InXG5pbXBvcnQgeyBzaWduYWxQcm94eSB9IGZyb20gJy4vc2lnbmFsLXByb3h5J1xuaW1wb3J0IHsgaW5qZWN0UXVlcnlDbGllbnQgfSBmcm9tICcuL2luamVjdC1xdWVyeS1jbGllbnQnXG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi91dGlsJ1xuaW1wb3J0IHR5cGUgeyBEZWZhdWx0RXJyb3IsIFF1ZXJ5Q2xpZW50IH0gZnJvbSAnQHRhbnN0YWNrL3F1ZXJ5LWNvcmUnXG5pbXBvcnQgdHlwZSB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuaW1wb3J0IHR5cGUge1xuICBDcmVhdGVNdXRhdGVGdW5jdGlvbixcbiAgQ3JlYXRlTXV0YXRpb25PcHRpb25zLFxuICBDcmVhdGVNdXRhdGlvblJlc3VsdCxcbn0gZnJvbSAnLi90eXBlcydcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE11dGF0aW9uPFxuICBURGF0YSA9IHVua25vd24sXG4gIFRFcnJvciA9IERlZmF1bHRFcnJvcixcbiAgVFZhcmlhYmxlcyA9IHZvaWQsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4oXG4gIG9wdGlvbnM6IChcbiAgICBjbGllbnQ6IFF1ZXJ5Q2xpZW50LFxuICApID0+IENyZWF0ZU11dGF0aW9uT3B0aW9uczxURGF0YSwgVEVycm9yLCBUVmFyaWFibGVzLCBUQ29udGV4dD4sXG4gIGluamVjdG9yPzogSW5qZWN0b3IsXG4pOiBDcmVhdGVNdXRhdGlvblJlc3VsdDxURGF0YSwgVEVycm9yLCBUVmFyaWFibGVzLCBUQ29udGV4dD4ge1xuICByZXR1cm4gYXNzZXJ0SW5qZWN0b3IoaW5qZWN0TXV0YXRpb24sIGluamVjdG9yLCAoKSA9PiB7XG4gICAgY29uc3QgcXVlcnlDbGllbnQgPSBpbmplY3RRdWVyeUNsaWVudCgpXG4gICAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKVxuXG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcjxURGF0YSwgVEVycm9yLCBUVmFyaWFibGVzLCBUQ29udGV4dD4oXG4gICAgICBxdWVyeUNsaWVudCxcbiAgICAgIG9wdGlvbnMocXVlcnlDbGllbnQpLFxuICAgIClcbiAgICBjb25zdCBtdXRhdGU6IENyZWF0ZU11dGF0ZUZ1bmN0aW9uPFREYXRhLCBURXJyb3IsIFRWYXJpYWJsZXMsIFRDb250ZXh0PiA9IChcbiAgICAgIHZhcmlhYmxlcyxcbiAgICAgIG11dGF0ZU9wdGlvbnMsXG4gICAgKSA9PiB7XG4gICAgICBvYnNlcnZlci5tdXRhdGUodmFyaWFibGVzLCBtdXRhdGVPcHRpb25zKS5jYXRjaChub29wKVxuICAgIH1cblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBvYnNlcnZlci5zZXRPcHRpb25zKG9wdGlvbnMocXVlcnlDbGllbnQpKVxuICAgIH0pXG5cbiAgICBjb25zdCByZXN1bHQgPSBzaWduYWwob2JzZXJ2ZXIuZ2V0Q3VycmVudFJlc3VsdCgpKVxuXG4gICAgY29uc3QgdW5zdWJzY3JpYmUgPSBvYnNlcnZlci5zdWJzY3JpYmUoXG4gICAgICBub3RpZnlNYW5hZ2VyLmJhdGNoQ2FsbHMoKHZhbCkgPT4gcmVzdWx0LnNldCh2YWwpKSxcbiAgICApXG5cbiAgICBkZXN0cm95UmVmLm9uRGVzdHJveSh1bnN1YnNjcmliZSlcblxuICAgIGNvbnN0IHJlc3VsdFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgICAuLi5yZXN1bHQoKSxcbiAgICAgIG11dGF0ZSxcbiAgICAgIG11dGF0ZUFzeW5jOiByZXN1bHQoKS5tdXRhdGUsXG4gICAgfSkpXG5cbiAgICByZXR1cm4gc2lnbmFsUHJveHkocmVzdWx0U2lnbmFsKSBhcyB1bmtub3duIGFzIENyZWF0ZU11dGF0aW9uUmVzdWx0PFxuICAgICAgVERhdGEsXG4gICAgICBURXJyb3IsXG4gICAgICBUVmFyaWFibGVzLFxuICAgICAgVENvbnRleHRcbiAgICA+XG4gIH0pXG59XG4iXX0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LW11dGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luamVjdC1tdXRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLFFBQVEsRUFDUixNQUFNLEVBQ04sUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04scUJBQXFCLEVBQ3JCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBRTdCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQVlyRCxNQUFNLFVBQVUsY0FBYyxDQU01QixPQUUrRCxFQUMvRCxRQUFtQjtJQUVuQixPQUFPLGNBQWMsQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUNuRCxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsRUFBRSxDQUFBO1FBQ3ZDLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN4QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDckMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBRTdCLE9BQU8sUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUNuQixxQkFBcUIsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO1lBQzFDLE1BQU0sUUFBUSxHQUFHLElBQUksZ0JBQWdCLENBS25DLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQTtZQUNwQyxNQUFNLE1BQU0sR0FLUixDQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUUsRUFBRTtnQkFDL0IsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3ZELENBQUMsQ0FBQTtZQUVELE1BQU0sQ0FBQyxHQUFHLEVBQUU7Z0JBQ1YsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQTtZQUMzQyxDQUFDLENBQUMsQ0FBQTtZQUVGLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFBO1lBRWxELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQ3BDLGFBQWEsQ0FBQyxVQUFVLENBQ3RCLENBQ0UsR0FBZ0UsRUFDaEUsRUFBRTtnQkFDRixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtvQkFDZCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO2dCQUNqQixDQUFDLENBQUMsQ0FBQTtZQUNKLENBQUMsQ0FDRixDQUNGLENBQUE7WUFFRCxVQUFVLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBRWpDLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUNuQyxHQUFHLE1BQU0sRUFBRTtnQkFDWCxNQUFNO2dCQUNOLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxNQUFNO2FBQzdCLENBQUMsQ0FBQyxDQUFBO1lBRUgsT0FBTyxXQUFXLENBQUMsWUFBWSxDQUs5QixDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERlc3Ryb3lSZWYsXG4gIEluamVjdG9yLFxuICBOZ1pvbmUsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgcnVuSW5JbmplY3Rpb25Db250ZXh0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNdXRhdGlvbk9ic2VydmVyLCBub3RpZnlNYW5hZ2VyIH0gZnJvbSAnQHRhbnN0YWNrL3F1ZXJ5LWNvcmUnXG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJy4vdXRpbC9hc3NlcnQtaW5qZWN0b3IvYXNzZXJ0LWluamVjdG9yJ1xuaW1wb3J0IHsgc2lnbmFsUHJveHkgfSBmcm9tICcuL3NpZ25hbC1wcm94eSdcbmltcG9ydCB7IGluamVjdFF1ZXJ5Q2xpZW50IH0gZnJvbSAnLi9pbmplY3QtcXVlcnktY2xpZW50J1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4vdXRpbCdcblxuaW1wb3J0IHsgbGF6eUluaXQgfSBmcm9tICcuL3V0aWwvbGF6eS1pbml0L2xhenktaW5pdCdcbmltcG9ydCB0eXBlIHtcbiAgRGVmYXVsdEVycm9yLFxuICBNdXRhdGlvbk9ic2VydmVyUmVzdWx0LFxuICBRdWVyeUNsaWVudCxcbn0gZnJvbSAnQHRhbnN0YWNrL3F1ZXJ5LWNvcmUnXG5pbXBvcnQgdHlwZSB7XG4gIENyZWF0ZU11dGF0ZUZ1bmN0aW9uLFxuICBDcmVhdGVNdXRhdGlvbk9wdGlvbnMsXG4gIENyZWF0ZU11dGF0aW9uUmVzdWx0LFxufSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0TXV0YXRpb248XG4gIFREYXRhID0gdW5rbm93bixcbiAgVEVycm9yID0gRGVmYXVsdEVycm9yLFxuICBUVmFyaWFibGVzID0gdm9pZCxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuPihcbiAgb3B0aW9uczogKFxuICAgIGNsaWVudDogUXVlcnlDbGllbnQsXG4gICkgPT4gQ3JlYXRlTXV0YXRpb25PcHRpb25zPFREYXRhLCBURXJyb3IsIFRWYXJpYWJsZXMsIFRDb250ZXh0PixcbiAgaW5qZWN0b3I/OiBJbmplY3Rvcixcbik6IENyZWF0ZU11dGF0aW9uUmVzdWx0PFREYXRhLCBURXJyb3IsIFRWYXJpYWJsZXMsIFRDb250ZXh0PiB7XG4gIHJldHVybiBhc3NlcnRJbmplY3RvcihpbmplY3RNdXRhdGlvbiwgaW5qZWN0b3IsICgpID0+IHtcbiAgICBjb25zdCBxdWVyeUNsaWVudCA9IGluamVjdFF1ZXJ5Q2xpZW50KClcbiAgICBjb25zdCBjdXJyZW50SW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpXG4gICAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKVxuICAgIGNvbnN0IG5nWm9uZSA9IGluamVjdChOZ1pvbmUpXG5cbiAgICByZXR1cm4gbGF6eUluaXQoKCkgPT5cbiAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dChjdXJyZW50SW5qZWN0b3IsICgpID0+IHtcbiAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcjxcbiAgICAgICAgICBURGF0YSxcbiAgICAgICAgICBURXJyb3IsXG4gICAgICAgICAgVFZhcmlhYmxlcyxcbiAgICAgICAgICBUQ29udGV4dFxuICAgICAgICA+KHF1ZXJ5Q2xpZW50LCBvcHRpb25zKHF1ZXJ5Q2xpZW50KSlcbiAgICAgICAgY29uc3QgbXV0YXRlOiBDcmVhdGVNdXRhdGVGdW5jdGlvbjxcbiAgICAgICAgICBURGF0YSxcbiAgICAgICAgICBURXJyb3IsXG4gICAgICAgICAgVFZhcmlhYmxlcyxcbiAgICAgICAgICBUQ29udGV4dFxuICAgICAgICA+ID0gKHZhcmlhYmxlcywgbXV0YXRlT3B0aW9ucykgPT4ge1xuICAgICAgICAgIG9ic2VydmVyLm11dGF0ZSh2YXJpYWJsZXMsIG11dGF0ZU9wdGlvbnMpLmNhdGNoKG5vb3ApXG4gICAgICAgIH1cblxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgIG9ic2VydmVyLnNldE9wdGlvbnMob3B0aW9ucyhxdWVyeUNsaWVudCkpXG4gICAgICAgIH0pXG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gc2lnbmFsKG9ic2VydmVyLmdldEN1cnJlbnRSZXN1bHQoKSlcblxuICAgICAgICBjb25zdCB1bnN1YnNjcmliZSA9IG9ic2VydmVyLnN1YnNjcmliZShcbiAgICAgICAgICBub3RpZnlNYW5hZ2VyLmJhdGNoQ2FsbHMoXG4gICAgICAgICAgICAoXG4gICAgICAgICAgICAgIHZhbDogTXV0YXRpb25PYnNlcnZlclJlc3VsdDxURGF0YSwgVEVycm9yLCBUVmFyaWFibGVzLCBUQ29udGV4dD4sXG4gICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgbmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnNldCh2YWwpXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICksXG4gICAgICAgIClcblxuICAgICAgICBkZXN0cm95UmVmLm9uRGVzdHJveSh1bnN1YnNjcmliZSlcblxuICAgICAgICBjb25zdCByZXN1bHRTaWduYWwgPSBjb21wdXRlZCgoKSA9PiAoe1xuICAgICAgICAgIC4uLnJlc3VsdCgpLFxuICAgICAgICAgIG11dGF0ZSxcbiAgICAgICAgICBtdXRhdGVBc3luYzogcmVzdWx0KCkubXV0YXRlLFxuICAgICAgICB9KSlcblxuICAgICAgICByZXR1cm4gc2lnbmFsUHJveHkocmVzdWx0U2lnbmFsKSBhcyB1bmtub3duIGFzIENyZWF0ZU11dGF0aW9uUmVzdWx0PFxuICAgICAgICAgIFREYXRhLFxuICAgICAgICAgIFRFcnJvcixcbiAgICAgICAgICBUVmFyaWFibGVzLFxuICAgICAgICAgIFRDb250ZXh0XG4gICAgICAgID5cbiAgICAgIH0pLFxuICAgIClcbiAgfSlcbn1cbiJdfQ==
@@ -0,0 +1,31 @@
1
+ import { untracked } from '@angular/core';
2
+ export function lazyInit(initializer) {
3
+ let object = null;
4
+ const initializeObject = () => {
5
+ if (!object) {
6
+ object = untracked(() => initializer());
7
+ }
8
+ };
9
+ queueMicrotask(() => initializeObject());
10
+ return new Proxy({}, {
11
+ get(_, prop, receiver) {
12
+ initializeObject();
13
+ return Reflect.get(object, prop, receiver);
14
+ },
15
+ has(_, prop) {
16
+ initializeObject();
17
+ return Reflect.has(object, prop);
18
+ },
19
+ ownKeys() {
20
+ initializeObject();
21
+ return Reflect.ownKeys(object);
22
+ },
23
+ getOwnPropertyDescriptor() {
24
+ return {
25
+ enumerable: true,
26
+ configurable: true,
27
+ };
28
+ },
29
+ });
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1pbml0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWwvbGF6eS1pbml0L2xhenktaW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXpDLE1BQU0sVUFBVSxRQUFRLENBQW1CLFdBQW9CO0lBQzdELElBQUksTUFBTSxHQUFhLElBQUksQ0FBQTtJQUUzQixNQUFNLGdCQUFnQixHQUFHLEdBQUcsRUFBRTtRQUM1QixJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsTUFBTSxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO1NBQ3hDO0lBQ0gsQ0FBQyxDQUFBO0lBRUQsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQTtJQUV4QyxPQUFPLElBQUksS0FBSyxDQUFJLEVBQU8sRUFBRTtRQUMzQixHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRO1lBQ25CLGdCQUFnQixFQUFFLENBQUE7WUFDbEIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQVcsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFDakQsQ0FBQztRQUNELEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSTtZQUNULGdCQUFnQixFQUFFLENBQUE7WUFDbEIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQVcsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUN2QyxDQUFDO1FBQ0QsT0FBTztZQUNMLGdCQUFnQixFQUFFLENBQUE7WUFDbEIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQVcsQ0FBQyxDQUFBO1FBQ3JDLENBQUM7UUFDRCx3QkFBd0I7WUFDdEIsT0FBTztnQkFDTCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsWUFBWSxFQUFFLElBQUk7YUFDbkIsQ0FBQTtRQUNILENBQUM7S0FDRixDQUFDLENBQUE7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuZXhwb3J0IGZ1bmN0aW9uIGxhenlJbml0PFQgZXh0ZW5kcyBvYmplY3Q+KGluaXRpYWxpemVyOiAoKSA9PiBUKTogVCB7XG4gIGxldCBvYmplY3Q6IFQgfCBudWxsID0gbnVsbFxuXG4gIGNvbnN0IGluaXRpYWxpemVPYmplY3QgPSAoKSA9PiB7XG4gICAgaWYgKCFvYmplY3QpIHtcbiAgICAgIG9iamVjdCA9IHVudHJhY2tlZCgoKSA9PiBpbml0aWFsaXplcigpKVxuICAgIH1cbiAgfVxuXG4gIHF1ZXVlTWljcm90YXNrKCgpID0+IGluaXRpYWxpemVPYmplY3QoKSlcblxuICByZXR1cm4gbmV3IFByb3h5PFQ+KHt9IGFzIFQsIHtcbiAgICBnZXQoXywgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgIGluaXRpYWxpemVPYmplY3QoKVxuICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0KG9iamVjdCBhcyBULCBwcm9wLCByZWNlaXZlcilcbiAgICB9LFxuICAgIGhhcyhfLCBwcm9wKSB7XG4gICAgICBpbml0aWFsaXplT2JqZWN0KClcbiAgICAgIHJldHVybiBSZWZsZWN0LmhhcyhvYmplY3QgYXMgVCwgcHJvcClcbiAgICB9LFxuICAgIG93bktleXMoKSB7XG4gICAgICBpbml0aWFsaXplT2JqZWN0KClcbiAgICAgIHJldHVybiBSZWZsZWN0Lm93bktleXMob2JqZWN0IGFzIFQpXG4gICAgfSxcbiAgICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICB9XG4gICAgfSxcbiAgfSlcbn1cbiJdfQ==
@@ -0,0 +1,14 @@
1
+ import { Injector, computed, inject, untracked, } from '@angular/core';
2
+ export function lazySignalInitializer(initializerFn) {
3
+ const injector = inject(Injector);
4
+ let source = null;
5
+ const unwrapSignal = () => {
6
+ if (!source) {
7
+ source = untracked(() => initializerFn(injector));
8
+ }
9
+ return source();
10
+ };
11
+ queueMicrotask(() => unwrapSignal());
12
+ return computed(unwrapSignal);
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1zaWduYWwtaW5pdGlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbC9sYXp5LXNpZ25hbC1pbml0aWFsaXplci9sYXp5LXNpZ25hbC1pbml0aWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsUUFBUSxFQUVSLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBSXRCLE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsYUFBcUM7SUFFckMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBRWpDLElBQUksTUFBTSxHQUFxQixJQUFJLENBQUE7SUFFbkMsTUFBTSxZQUFZLEdBQUcsR0FBRyxFQUFFO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxNQUFNLEdBQUcsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1NBQ2xEO1FBQ0QsT0FBTyxNQUFNLEVBQUUsQ0FBQTtJQUNqQixDQUFDLENBQUE7SUFFRCxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQTtJQUVwQyxPQUFPLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQTtBQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0b3IsXG4gIHR5cGUgU2lnbmFsLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxuICB1bnRyYWNrZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbnR5cGUgU2lnbmFsSW5pdGlhbGl6ZXJGbjxUPiA9IChpbmplY3RvcjogSW5qZWN0b3IpID0+IFNpZ25hbDxUPlxuXG5leHBvcnQgZnVuY3Rpb24gbGF6eVNpZ25hbEluaXRpYWxpemVyPFQ+KFxuICBpbml0aWFsaXplckZuOiBTaWduYWxJbml0aWFsaXplckZuPFQ+LFxuKSB7XG4gIGNvbnN0IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKVxuXG4gIGxldCBzb3VyY2U6IFNpZ25hbDxUPiB8IG51bGwgPSBudWxsXG5cbiAgY29uc3QgdW53cmFwU2lnbmFsID0gKCkgPT4ge1xuICAgIGlmICghc291cmNlKSB7XG4gICAgICBzb3VyY2UgPSB1bnRyYWNrZWQoKCkgPT4gaW5pdGlhbGl6ZXJGbihpbmplY3RvcikpXG4gICAgfVxuICAgIHJldHVybiBzb3VyY2UoKVxuICB9XG5cbiAgcXVldWVNaWNyb3Rhc2soKCkgPT4gdW53cmFwU2lnbmFsKCkpXG5cbiAgcmV0dXJuIGNvbXB1dGVkKHVud3JhcFNpZ25hbClcbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { notifyManager, InfiniteQueryObserver, MutationObserver, replaceEqualDeep, QueriesObserver, QueryObserver } from '@tanstack/query-core';
2
2
  export * from '@tanstack/query-core';
3
- import { untracked, computed, Injector, inject, DestroyRef, signal, effect, runInInjectionContext, assertInInjectionContext, InjectionToken, ENVIRONMENT_INITIALIZER, makeEnvironmentProviders } from '@angular/core';
3
+ import { untracked, computed, Injector, inject, NgZone, DestroyRef, signal, effect, runInInjectionContext, assertInInjectionContext, InjectionToken, ENVIRONMENT_INITIALIZER, makeEnvironmentProviders } from '@angular/core';
4
4
 
5
5
  /* istanbul ignore file */
6
6
 
@@ -55,7 +55,7 @@ function lazyInit(initializer) {
55
55
  let object = null;
56
56
  const initializeObject = () => {
57
57
  if (!object) {
58
- object = initializer();
58
+ object = untracked(() => initializer());
59
59
  }
60
60
  };
61
61
  queueMicrotask(() => initializeObject());
@@ -86,6 +86,7 @@ function lazyInit(initializer) {
86
86
  */
87
87
  function createBaseQuery(options, Observer, queryClient) {
88
88
  const injector = inject(Injector);
89
+ const ngZone = inject(NgZone);
89
90
  return lazyInit(() => {
90
91
  return runInInjectionContext(injector, () => {
91
92
  const destroyRef = inject(DestroyRef);
@@ -102,8 +103,7 @@ function createBaseQuery(options, Observer, queryClient) {
102
103
  });
103
104
  const observer = new Observer(queryClient, defaultedOptionsSignal());
104
105
  const resultSignal = signal(observer.getOptimisticResult(defaultedOptionsSignal()));
105
- // Effects should not be called inside reactive contexts
106
- untracked(() => effect(() => {
106
+ effect(() => {
107
107
  const defaultedOptions = defaultedOptionsSignal();
108
108
  observer.setOptions(defaultedOptions, {
109
109
  // Do not notify on updates because of changes in the options because
@@ -113,9 +113,13 @@ function createBaseQuery(options, Observer, queryClient) {
113
113
  untracked(() => {
114
114
  resultSignal.set(observer.getOptimisticResult(defaultedOptions));
115
115
  });
116
- }));
116
+ });
117
117
  // observer.trackResult is not used as this optimization is not needed for Angular
118
- const unsubscribe = observer.subscribe(notifyManager.batchCalls((val) => resultSignal.set(val)));
118
+ const unsubscribe = observer.subscribe(notifyManager.batchCalls((val) => {
119
+ ngZone.run(() => {
120
+ resultSignal.set(val);
121
+ });
122
+ }));
119
123
  destroyRef.onDestroy(unsubscribe);
120
124
  return signalProxy(resultSignal);
121
125
  });
@@ -214,6 +218,7 @@ function injectIsFetching(filters, injector) {
214
218
  return assertInjector(injectIsFetching, injector, () => {
215
219
  const queryClient = injectQueryClient();
216
220
  const destroyRef = inject(DestroyRef);
221
+ const ngZone = inject(NgZone);
217
222
  const cache = queryClient.getQueryCache();
218
223
  // isFetching is the prev value initialized on mount *
219
224
  let isFetching = queryClient.isFetching(filters);
@@ -223,7 +228,9 @@ function injectIsFetching(filters, injector) {
223
228
  if (isFetching !== newIsFetching) {
224
229
  // * and update with each change
225
230
  isFetching = newIsFetching;
226
- result.set(isFetching);
231
+ ngZone.run(() => {
232
+ result.set(isFetching);
233
+ });
227
234
  }
228
235
  }));
229
236
  destroyRef.onDestroy(unsubscribe);
@@ -235,6 +242,7 @@ function injectIsMutating(filters, injector) {
235
242
  return assertInjector(injectIsMutating, injector, () => {
236
243
  const queryClient = injectQueryClient();
237
244
  const destroyRef = inject(DestroyRef);
245
+ const ngZone = inject(NgZone);
238
246
  const cache = queryClient.getMutationCache();
239
247
  // isMutating is the prev value initialized on mount *
240
248
  let isMutating = queryClient.isMutating(filters);
@@ -244,7 +252,9 @@ function injectIsMutating(filters, injector) {
244
252
  if (isMutating !== newIsMutating) {
245
253
  // * and update with each change
246
254
  isMutating = newIsMutating;
247
- result.set(isMutating);
255
+ ngZone.run(() => {
256
+ result.set(isMutating);
257
+ });
248
258
  }
249
259
  }));
250
260
  destroyRef.onDestroy(unsubscribe);
@@ -257,26 +267,47 @@ function noop() { }
257
267
  function injectMutation(options, injector) {
258
268
  return assertInjector(injectMutation, injector, () => {
259
269
  const queryClient = injectQueryClient();
270
+ const currentInjector = inject(Injector);
260
271
  const destroyRef = inject(DestroyRef);
261
- const observer = new MutationObserver(queryClient, options(queryClient));
262
- const mutate = (variables, mutateOptions) => {
263
- observer.mutate(variables, mutateOptions).catch(noop);
264
- };
265
- effect(() => {
266
- observer.setOptions(options(queryClient));
267
- });
268
- const result = signal(observer.getCurrentResult());
269
- const unsubscribe = observer.subscribe(notifyManager.batchCalls((val) => result.set(val)));
270
- destroyRef.onDestroy(unsubscribe);
271
- const resultSignal = computed(() => ({
272
- ...result(),
273
- mutate,
274
- mutateAsync: result().mutate,
272
+ const ngZone = inject(NgZone);
273
+ return lazyInit(() => runInInjectionContext(currentInjector, () => {
274
+ const observer = new MutationObserver(queryClient, options(queryClient));
275
+ const mutate = (variables, mutateOptions) => {
276
+ observer.mutate(variables, mutateOptions).catch(noop);
277
+ };
278
+ effect(() => {
279
+ observer.setOptions(options(queryClient));
280
+ });
281
+ const result = signal(observer.getCurrentResult());
282
+ const unsubscribe = observer.subscribe(notifyManager.batchCalls((val) => {
283
+ ngZone.run(() => {
284
+ result.set(val);
285
+ });
286
+ }));
287
+ destroyRef.onDestroy(unsubscribe);
288
+ const resultSignal = computed(() => ({
289
+ ...result(),
290
+ mutate,
291
+ mutateAsync: result().mutate,
292
+ }));
293
+ return signalProxy(resultSignal);
275
294
  }));
276
- return signalProxy(resultSignal);
277
295
  });
278
296
  }
279
297
 
298
+ function lazySignalInitializer(initializerFn) {
299
+ const injector = inject(Injector);
300
+ let source = null;
301
+ const unwrapSignal = () => {
302
+ if (!source) {
303
+ source = untracked(() => initializerFn(injector));
304
+ }
305
+ return source();
306
+ };
307
+ queueMicrotask(() => unwrapSignal());
308
+ return computed(unwrapSignal);
309
+ }
310
+
280
311
  function getResult(mutationCache, options) {
281
312
  return mutationCache
282
313
  .findAll(options.filters)
@@ -288,24 +319,29 @@ function injectMutationState(mutationStateOptionsFn = () => ({}), options) {
288
319
  return assertInjector(injectMutationState, options?.injector, () => {
289
320
  const destroyRef = inject(DestroyRef);
290
321
  const queryClient = injectQueryClient();
322
+ const ngZone = inject(NgZone);
291
323
  const mutationCache = queryClient.getMutationCache();
292
- const result = signal(getResult(mutationCache, mutationStateOptionsFn()));
293
- effect(() => {
294
- const mutationStateOptions = mutationStateOptionsFn();
295
- untracked(() => {
296
- // Setting the signal from an effect because it's both 'computed' from options()
297
- // and needs to be set imperatively in the mutationCache listener.
298
- result.set(getResult(mutationCache, mutationStateOptions));
299
- });
324
+ return lazySignalInitializer((injector) => {
325
+ const result = signal(getResult(mutationCache, mutationStateOptionsFn()));
326
+ effect(() => {
327
+ const mutationStateOptions = mutationStateOptionsFn();
328
+ untracked(() => {
329
+ // Setting the signal from an effect because it's both 'computed' from options()
330
+ // and needs to be set imperatively in the mutationCache listener.
331
+ result.set(getResult(mutationCache, mutationStateOptions));
332
+ });
333
+ }, { injector });
334
+ const unsubscribe = mutationCache.subscribe(notifyManager.batchCalls(() => {
335
+ const nextResult = replaceEqualDeep(result(), getResult(mutationCache, mutationStateOptionsFn()));
336
+ if (result() !== nextResult) {
337
+ ngZone.run(() => {
338
+ result.set(nextResult);
339
+ });
340
+ }
341
+ }));
342
+ destroyRef.onDestroy(unsubscribe);
343
+ return result;
300
344
  });
301
- const unsubscribe = mutationCache.subscribe(notifyManager.batchCalls(() => {
302
- const nextResult = replaceEqualDeep(result(), getResult(mutationCache, mutationStateOptionsFn()));
303
- if (result() !== nextResult) {
304
- result.set(nextResult);
305
- }
306
- }));
307
- destroyRef.onDestroy(unsubscribe);
308
- return result;
309
345
  });
310
346
  }
311
347