@ethlete/query 4.20.2 → 4.20.4

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.
@@ -2,10 +2,10 @@ import { Injector, assertInInjectionContext, computed, inject } from '@angular/c
2
2
  import { toObservable, toSignal } from '@angular/core/rxjs-interop';
3
3
  import { createDestroy } from '@ethlete/core';
4
4
  import { of, pairwise, startWith, switchMap, takeUntil, tap } from 'rxjs';
5
- import { extractQuery, isQueryStateFailure, isQueryStateLoading, isQueryStateSuccess, } from '../query';
5
+ import { extractQuery, filterQueryStates, isQueryStateFailure, isQueryStateLoading, isQueryStateSuccess, } from '../query';
6
6
  export const addQueryContainerHandling = (obs, valueFn, config) => {
7
7
  assertInInjectionContext(addQueryContainerHandling);
8
- const { abortPrevious, abortOnDestroy } = config ?? {};
8
+ const { abortPrevious, abortOnDestroy, stopPreviousPolling } = config ?? {};
9
9
  const injector = inject(Injector);
10
10
  const destroy$ = createDestroy();
11
11
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -19,6 +19,11 @@ export const addQueryContainerHandling = (obs, valueFn, config) => {
19
19
  ((abortPrevious === undefined && prevQuery?.canBeCached) || abortPrevious)) {
20
20
  prevQuery?.abort();
21
21
  }
22
+ if (!prevQuery?._hasDependents() &&
23
+ ((stopPreviousPolling === undefined && prevQuery?.canBeCached) || stopPreviousPolling) &&
24
+ prevQuery?.isPolling) {
25
+ prevQuery?.stopPolling();
26
+ }
22
27
  }))
23
28
  .subscribe();
24
29
  destroy$.subscribe(() => {
@@ -46,13 +51,19 @@ export function toQuerySubject(source, options) {
46
51
  addQueryContainerHandling(obs, () => source(), options);
47
52
  return obs;
48
53
  }
49
- export function queryStateSignal(source) {
50
- return toSignal(toObservable(source).pipe(switchMap((q) => extractQuery(q)?.state$ ?? of(null))), {
54
+ export function queryStateSignal(source, options) {
55
+ const { cacheResponse } = options ?? {};
56
+ return toSignal(toObservable(source).pipe(switchMap((q) => extractQuery(q)?.state$ ?? of(null)), switchMap((state) => {
57
+ if (cacheResponse) {
58
+ return of(state).pipe(filterQueryStates(["SUCCESS" /* QueryStateType.Success */, "FAILURE" /* QueryStateType.Failure */, "CANCELLED" /* QueryStateType.Cancelled */]));
59
+ }
60
+ return of(state);
61
+ })), {
51
62
  initialValue: null,
52
63
  });
53
64
  }
54
- export function queryStateResponseSignal(source) {
55
- const s = queryStateSignal(source);
65
+ export function queryStateResponseSignal(source, options) {
66
+ const s = queryStateSignal(source, options);
56
67
  return computed(() => {
57
68
  const state = s();
58
69
  return isQueryStateSuccess(state) ? state.response : null;
@@ -72,4 +83,4 @@ export function queryStateLoadingSignal(source) {
72
83
  return isQueryStateLoading(state) ? state : null;
73
84
  });
74
85
  }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi91dGlscy9kYXRhLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBeUIsUUFBUSxFQUFVLHdCQUF3QixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUF3QyxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQTRCLEVBQUUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BHLE9BQU8sRUFLTCxZQUFZLEVBQ1osbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQixtQkFBbUIsR0FDcEIsTUFBTSxVQUFVLENBQUM7QUFpQmxCLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQ3ZDLEdBQWdDLEVBQ2hDLE9BQTBDLEVBQzFDLE1BQTZCLEVBQzdCLEVBQUU7SUFDRix3QkFBd0IsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBRXBELE1BQU0sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUV2RCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsTUFBTSxRQUFRLEdBQUcsYUFBYSxFQUFFLENBQUM7SUFFakMsOERBQThEO0lBQzlELE1BQU0sS0FBSyxHQUFJLFFBQWdCLENBQUMsTUFBTSxDQUFDO0lBQ3ZDLE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFdkMsR0FBRztTQUNBLElBQUksQ0FDSCxTQUFTLENBQUMsUUFBUSxDQUFD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LFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzVELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBeUQsTUFBUztJQUNyRyxNQUFNLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVuQyxPQUFPLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDbkIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFFbEIsT0FBTyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3pELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FBeUQsTUFBUztJQUN2RyxNQUFNLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVuQyxPQUFPLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDbkIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFFbEIsT0FBTyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDbkQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3JlYXRlQ29tcHV0ZWRPcHRpb25zLCBJbmplY3RvciwgU2lnbmFsLCBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRvT2JzZXJ2YWJsZU9wdGlvbnMsIFRvU2lnbmFsT3B0aW9ucywgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGNyZWF0ZURlc3Ryb3kgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmliYWJsZSwgb2YsIHBhaXJ3aXNlLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEFueVF1ZXJ5LFxuICBBbnlRdWVyeUNvbGxlY3Rpb24sXG4gIFF1ZXJ5T2YsXG4gIFF1ZXJ5U3RhdGUsXG4gIGV4dHJhY3RRdWVyeSxcbiAgaXNRdWVyeVN0YXRlRmFpbHVyZSxcbiAgaXNRdWVyeVN0YXRlTG9hZGluZyxcbiAgaXNRdWVyeVN0YXRlU3VjY2Vzcyxcbn0gZnJvbSAnLi4vcXVlcnknO1xuaW1wb3J0IHsgUXVlcnlEYXRhT2YgfSBmcm9tICcuLi9xdWVyeS1jcmVhdG9yJztcblxuZXhwb3J0IGludGVyZmFjZSBRdWVyeUNvbnRhaW5lckNvbmZpZyB7XG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAsIHRoZSBwcmV2aW91cyBxdWVyeSB3aWxsIGJlIGFib3J0ZWQgd2hlbiBhIG5ldyBxdWVyeSBpcyBwdXNoZWQgaW50byB0aGUgY29udGFpbmVyLlxuICAgKiBAZGVmYXVsdCB0cnVlIC8vIE9ubHkgaWYgdGhlIHJlcXVlc3QgY2FuIGJlIGNhY2hlZCAoR0VULCBPUFRJT05TLCBIRUFEIGFuZCBHUUxfUVVFUlkpLiBPdGhlcndpc2UgZmFsc2UuXG4gICAqL1xuICBhYm9ydFByZXZpb3VzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgYHRydWVgLCB0aGUgcXVlcnkgd2lsbCBiZSBhYm9ydGVkIHdoZW4gdGhlIGNvbnRhaW5lciBpcyBkZXN0cm95ZWQuXG4gICAqIEBkZWZhdWx0IHRydWUgLy8gT25seSBpZiB0aGUgcmVxdWVzdCBjYW4gYmUgY2FjaGVkIChHRVQsIE9QVElPTlMsIEhFQUQgYW5kIEdRTF9RVUVSWSkuIE90aGVyd2lzZSBmYWxzZS5cbiAgICovXG4gIGFib3J0T25EZXN0cm95PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGFkZFF1ZXJ5Q29udGFpbmVySGFuZGxpbmcgPSAoXG4gIG9iczogT2JzZXJ2YWJsZTxBbnlRdWVyeSB8IG51bGw+LFxuICB2YWx1ZUZuOiAoKSA9PiBBbnlRdWVyeSB8IG51bGwgfCB1bmRlZmluZWQsXG4gIGNvbmZpZz86IFF1ZXJ5Q29udGFpbmVyQ29uZmlnLFxuKSA9PiB7XG4gIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dChhZGRRdWVyeUNvbnRhaW5lckhhbmRsaW5nKTtcblxuICBjb25zdCB7IGFib3J0UHJldmlvdXMsIGFib3J0T25EZXN0cm95IH0gPSBjb25maWcgPz8ge307XG5cbiAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBjb25zdCBkZXN0cm95JCA9IGNyZWF0ZURlc3Ryb3koKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBjb25zdCB0Tm9kZSA9IChpbmplY3RvciBhcyBhbnkpLl90Tm9kZTtcbiAgY29uc3QgY29tcG9uZW50SWQgPSB0Tm9kZT8uaW5kZXggPz8gLTE7XG5cbiAgb2JzXG4gICAgLnBpcGUoXG4gICAgICB0YWtlVW50aWwoZGVzdHJveSQpLFxuICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgcGFpcndpc2UoKSxcbiAgICAgIHRhcCgoW3ByZXZRdWVyeSwgY3VyclF1ZXJ5XSkgPT4ge1xuICAgICAgICBwcmV2UXVlcnk/Ll9yZW1vdmVEZXBlbmRlbnQoY29tcG9uZW50SWQpO1xuICAgICAgICBjdXJyUXVlcnk/Ll9hZGREZXBlbmRlbnQoY29tcG9uZW50SWQpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAhcHJldlF1ZXJ5Py5faGFzRGVwZW5kZW50cygpICYmXG4gICAgICAgICAgKChhYm9ydFByZXZpb3VzID09PSB1bmRlZmluZWQgJiYgcHJldlF1ZXJ5Py5jYW5CZUNhY2hlZCkgfHwgYWJvcnRQcmV2aW91cylcbiAgICAgICAgKSB7XG4gICAgICAgICAgcHJldlF1ZXJ5Py5hYm9ydCgpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApXG4gICAgLnN1YnNjcmliZSgpO1xuXG4gIGRlc3Ryb3kkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgY29uc3QgcXVlcnkgPSB2YWx1ZUZuKCk7XG5cbiAgICBxdWVyeT8uX3JlbW92ZURlcGVuZGVudChjb21wb25lbnRJZCk7XG5cbiAgICBpZiAoIXF1ZXJ5Py5faGFzRGVwZW5kZW50cygpICYmICgocXVlcnk/LmNhbkJlQ2FjaGVkICYmIGFib3J0T25EZXN0cm95ID09PSB1bmRlZmluZWQpIHx8IGFib3J0T25EZXN0cm95KSkge1xuICAgICAgcXVlcnk/LmFib3J0KCk7XG4gICAgfVxuICB9KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1F1ZXJ5U2lnbmFsPFQgZXh0ZW5kcyBBbnlRdWVyeSB8IG51bGw+KFxuICBzb3VyY2U6IE9ic2VydmFibGU8VD4gfCBTdWJzY3JpYmFibGU8VD4sXG4pOiBTaWduYWw8VCB8IHVuZGVmaW5lZD47XG5leHBvcnQgZnVuY3Rpb24gdG9RdWVyeVNpZ25hbDxUIGV4dGVuZHMgQW55UXVlcnkgfCBudWxsPihcbiAgc291cmNlOiBPYnNlcnZhYmxlPFQ+IHwgU3Vic2NyaWJhYmxlPFQ+LFxuICBvcHRpb25zPzogVG9TaWduYWxPcHRpb25zPHVuZGVmaW5lZD4gJiB7IHJlcXVpcmVTeW5jPzogZmFsc2UgfSAmIFF1ZXJ5Q29udGFpbmVyQ29uZmlnLFxuKTogU2lnbmFsPFQgfCB1bmRlZmluZWQ+O1xuZXhwb3J0IGZ1bmN0aW9uIHRvUXVlcnlTaWduYWw8VCBleHRlbmRzIEFueVF1ZXJ5IHwgbnVsbCwgVSBleHRlbmRzIFQgfCBudWxsIHwgdW5kZWZpbmVkPihcbiAgc291cmNlOiBPYnNlcnZhYmxlPFQ+IHwgU3Vic2NyaWJhYmxlPFQ+LFxuICBvcHRpb25zOiBUb1NpZ25hbE9wdGlvbnM8VT4gJiB7IGluaXRpYWxWYWx1ZTogVTsgcmVxdWlyZVN5bmM/OiBmYWxzZSB9ICYgUXVlcnlDb250YWluZXJDb25maWcsXG4pOiBTaWduYWw8VCB8IFU+O1xuZXhwb3J0IGZ1bmN0aW9uIHRvUXVlcnlTaWduYWw8VCBleHRlbmRzIEFueVF1ZXJ5IHwgbnVsbD4oXG4gIHNvdXJjZTogT2JzZXJ2YWJsZTxUPiB8IFN1YnNjcmliYWJsZTxUPixcbiAgb3B0aW9uczogVG9TaWduYWxPcHRpb25zPHVuZGVmaW5lZD4gJiB7IHJlcXVpcmVTeW5jOiB0cnVlIH0gJiBRdWVyeUNvbnRhaW5lckNvbmZpZyxcbik6IFNpZ25hbDxUPjtcbmV4cG9ydCBmdW5jdGlvbiB0b1F1ZXJ5U2lnbmFsPFQgZXh0ZW5kcyBBbnlRdWVyeSB8IG51bGwsIFUgPSB1bmRlZmluZWQ+KFxuICBzb3VyY2U6IE9ic2VydmFibGU8VD4gfCBTdWJzY3JpYmFibGU8VD4sXG4gIG9wdGlvbnM/OiBUb1NpZ25hbE9wdGlvbnM8VT4gJiBRdWVyeUNvbnRhaW5lckNvbmZpZyxcbik6IFNpZ25hbDxUIHwgVT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBjb25zdCBzID0gdG9TaWduYWwoc291cmNlLCBvcHRpb25zIGFzIGFueSk7XG5cbiAgYWRkUXVlcnlDb250YWluZXJIYW5kbGluZyhzb3VyY2UgYXMgT2JzZXJ2YWJsZTxUPiwgKCkgPT4gcygpIGFzIFQsIG9wdGlvbnMpO1xuXG4gIHJldHVybiBzIGFzIFNpZ25hbDxUIHwgVT47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBxdWVyeUNvbXB1dGVkPFQgZXh0ZW5kcyBBbnlRdWVyeSB8IG51bGw+KFxuICBjb21wdXRhdGlvbjogKCkgPT4gVCxcbiAgb3B0aW9ucz86IENyZWF0ZUNvbXB1dGVkT3B0aW9uczxUPiAmIFF1ZXJ5Q29udGFpbmVyQ29uZmlnICYgVG9PYnNlcnZhYmxlT3B0aW9ucyxcbik6IFNpZ25hbDxUPiB7XG4gIGNvbnN0IGMgPSBjb21wdXRlZChjb21wdXRhdGlvbiwgb3B0aW9ucyk7XG4gIGNvbnN0IG9icyA9IHRvT2JzZXJ2YWJsZShjLCBvcHRpb25zKTtcblxuICBhZGRRdWVyeUNvbnRhaW5lckhhbmRsaW5nKG9icywgKCkgPT4gYygpLCBvcHRpb25zKTtcblxuICByZXR1cm4gYztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvUXVlcnlTdWJqZWN0PFQgZXh0ZW5kcyBBbnlRdWVyeSB8IG51bGw+KFxuICBzb3VyY2U6IFNpZ25hbDxUPixcbiAgb3B0aW9ucz86IFRvT2JzZXJ2YWJsZU9wdGlvbnMgJiBRdWVyeUNvbnRhaW5lckNvbmZpZyxcbik6IE9ic2VydmFibGU8VD4ge1xuICBjb25zdCBvYnMgPSB0b09ic2VydmFibGUoc291cmNlLCBvcHRpb25zKTtcblxuICBhZGRRdWVyeUNvbnRhaW5lckhhbmRsaW5nKG9icywgKCkgPT4gc291cmNlKCksIG9wdGlvbnMpO1xuXG4gIHJldHVybiBvYnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBxdWVyeVN0YXRlU2lnbmFsPFQgZXh0ZW5kcyBTaWduYWw8QW55UXVlcnkgfCBBbnlRdWVyeUNvbGxlY3Rpb24gfCBudWxsPj4oc291cmNlOiBUKSB7XG4gIHJldHVybiB0b1NpZ25hbCh0b09ic2VydmFibGUoc291cmNlKS5waXBlKHN3aXRjaE1hcCgocSkgPT4gZXh0cmFjdFF1ZXJ5KHEpPy5zdGF0ZSQgPz8gb2YobnVsbCkpKSwge1xuICAgIGluaXRpYWxWYWx1ZTogbnVsbCxcbiAgfSkgYXMgU2lnbmFsPFF1ZXJ5U3RhdGU8UXVlcnlEYXRhT2Y8UXVlcnlPZjxSZXR1cm5UeXBlPFQ+Pj4+IHwgbnVsbD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBxdWVyeVN0YXRlUmVzcG9uc2VTaWduYWw8VCBleHRlbmRzIFNpZ25hbDxBbnlRdWVyeSB8IEFueVF1ZXJ5Q29sbGVjdGlvbiB8IG51bGw+Pihzb3VyY2U6IFQpIHtcbiAgY29uc3QgcyA9IHF1ZXJ5U3RhdGVTaWduYWwoc291cmNlKTtcblxuICByZXR1cm4gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlID0gcygpO1xuXG4gICAgcmV0dXJuIGlzUXVlcnlTdGF0ZVN1Y2Nlc3Moc3RhdGUpID8gc3RhdGUucmVzcG9uc2UgOiBudWxsO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHF1ZXJ5U3RhdGVFcnJvclNpZ25hbDxUIGV4dGVuZHMgU2lnbmFsPEFueVF1ZXJ5IHwgQW55UXVlcnlDb2xsZWN0aW9uIHwgbnVsbD4+KHNvdXJjZTogVCkge1xuICBjb25zdCBzID0gcXVlcnlTdGF0ZVNpZ25hbChzb3VyY2UpO1xuXG4gIHJldHVybiBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc3RhdGUgPSBzKCk7XG5cbiAgICByZXR1cm4gaXNRdWVyeVN0YXRlRmFpbHVyZShzdGF0ZSkgPyBzdGF0ZS5lcnJvciA6IG51bGw7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcXVlcnlTdGF0ZUxvYWRpbmdTaWduYWw8VCBleHRlbmRzIFNpZ25hbDxBbnlRdWVyeSB8IEFueVF1ZXJ5Q29sbGVjdGlvbiB8IG51bGw+Pihzb3VyY2U6IFQpIHtcbiAgY29uc3QgcyA9IHF1ZXJ5U3RhdGVTaWduYWwoc291cmNlKTtcblxuICByZXR1cm4gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlID0gcygpO1xuXG4gICAgcmV0dXJuIGlzUXVlcnlTdGF0ZUxvYWRpbmcoc3RhdGUpID8gc3RhdGUgOiBudWxsO1xuICB9KTtcbn1cbiJdfQ==
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi91dGlscy9kYXRhLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBeUIsUUFBUSxFQUFVLHdCQUF3QixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUF3QyxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQTRCLEVBQUUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BHLE9BQU8sRUFNTCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsbUJBQW1CLEdBQ3BCLE1BQU0sVUFBVSxDQUFDO0FBK0JsQixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUN2QyxHQUFnQyxFQUNoQyxPQUEwQyxFQUMxQyxNQUE2QixFQUM3QixFQUFFO0lBQ0Ysd0JBQXdCLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUVwRCxNQUFNLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxHQUFHLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFFNUUsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sUUFBUSxHQUFHLGFBQWEsRUFBRSxDQUFDO0lBRWpDLDhEQUE4RDtJQUM5RCxNQUFNLEtBQUssR0FBSSxRQUFnQixDQUFDLE1BQU0sQ0FBQztJQUN2QyxNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRXZDLEdBQUc7U0FDQSxJQUFJ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USxDQUFDLEdBQUcsRUFBRTtRQUNuQixNQUFNLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUVsQixPQUFPLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNuRCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcmVhdGVDb21wdXRlZE9wdGlvbnMsIEluamVjdG9yLCBTaWduYWwsIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dCwgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVG9PYnNlcnZhYmxlT3B0aW9ucywgVG9TaWduYWxPcHRpb25zLCB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgY3JlYXRlRGVzdHJveSB9IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaWJhYmxlLCBvZiwgcGFpcndpc2UsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQW55UXVlcnksXG4gIEFueVF1ZXJ5Q29sbGVjdGlvbixcbiAgUXVlcnlPZixcbiAgUXVlcnlTdGF0ZSxcbiAgUXVlcnlTdGF0ZVR5cGUsXG4gIGV4dHJhY3RRdWVyeSxcbiAgZmlsdGVyUXVlcnlTdGF0ZXMsXG4gIGlzUXVlcnlTdGF0ZUZhaWx1cmUsXG4gIGlzUXVlcnlTdGF0ZUxvYWRpbmcsXG4gIGlzUXVlcnlTdGF0ZVN1Y2Nlc3MsXG59IGZyb20gJy4uL3F1ZXJ5JztcbmltcG9ydCB7IFF1ZXJ5RGF0YU9mIH0gZnJvbSAnLi4vcXVlcnktY3JlYXRvcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlDb250YWluZXJDb25maWcge1xuICAvKipcbiAgICogSWYgYHRydWVgLCB0aGUgcHJldmlvdXMgcXVlcnkgd2lsbCBiZSBhYm9ydGVkIHdoZW4gYSBuZXcgcXVlcnkgaXMgcHVzaGVkIGludG8gdGhlIGNvbnRhaW5lci5cbiAgICogQGRlZmF1bHQgdHJ1ZSAvLyBPbmx5IGlmIHRoZSByZXF1ZXN0IGNhbiBiZSBjYWNoZWQgKEdFVCwgT1BUSU9OUywgSEVBRCBhbmQgR1FMX1FVRVJZKS4gT3RoZXJ3aXNlIGZhbHNlLlxuICAgKi9cbiAgYWJvcnRQcmV2aW91cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIElmIGB0cnVlYCwgdGhlIHF1ZXJ5IHdpbGwgYmUgYWJvcnRlZCB3aGVuIHRoZSBjb250YWluZXIgaXMgZGVzdHJveWVkLlxuICAgKiBAZGVmYXVsdCB0cnVlIC8vIE9ubHkgaWYgdGhlIHJlcXVlc3QgY2FuIGJlIGNhY2hlZCAoR0VULCBPUFRJT05TLCBIRUFEIGFuZCBHUUxfUVVFUlkpLiBPdGhlcndpc2UgZmFsc2UuXG4gICAqL1xuICBhYm9ydE9uRGVzdHJveT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIElmIGB0cnVlYCwgdGhlIHByZXZpb3VzIHBvbGxpbmcgd2lsbCBiZSBzdG9wcGVkIHdoZW4gYSBuZXcgcXVlcnkgaXMgcHVzaGVkIGludG8gdGhlIGNvbnRhaW5lci5cbiAgICogQGRlZmF1bHQgdHJ1ZSAvLyBPbmx5IGlmIHRoZSBxdWVyeSBoYXMgbm8gb3RoZXIgZGVwZW5kZW50cyBhbmQgdGhlIHJlcXVlc3QgY2FuIGJlIGNhY2hlZCAoR0VULCBPUFRJT05TLCBIRUFEIGFuZCBHUUxfUVVFUlkpLiBPdGhlcndpc2UgZmFsc2UuXG4gICAqL1xuICBzdG9wUHJldmlvdXNQb2xsaW5nPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBRdWVyeUZpbHRlckNvbmZpZyB7XG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAsIHRoZSByZXNwb25zZSB3aWxsIGJlIGNhY2hlZCB1bnRpbCB0aGUgbmV4dCByZXNwb25zZSBpcyByZWNlaXZlZCBvciB0aGUgcXVlcnkgZmFpbHMuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBjYWNoZVJlc3BvbnNlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGFkZFF1ZXJ5Q29udGFpbmVySGFuZGxpbmcgPSAoXG4gIG9iczogT2JzZXJ2YWJsZTxBbnlRdWVyeSB8IG51bGw+LFxuICB2YWx1ZUZuOiAoKSA9PiBBbnlRdWVyeSB8IG51bGwgfCB1bmRlZmluZWQsXG4gIGNvbmZpZz86IFF1ZXJ5Q29udGFpbmVyQ29uZmlnLFxuKSA9PiB7XG4gIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dChhZGRRdWVyeUNvbnRhaW5lckhhbmRsaW5nKTtcblxuICBjb25zdCB7IGFib3J0UHJldmlvdXMsIGFib3J0T25EZXN0cm95LCBzdG9wUHJldmlvdXNQb2xsaW5nIH0gPSBjb25maWcgPz8ge307XG5cbiAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBjb25zdCBkZXN0cm95JCA9IGNyZWF0ZURlc3Ryb3koKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBjb25zdCB0Tm9kZSA9IChpbmplY3RvciBhcyBhbnkpLl90Tm9kZTtcbiAgY29uc3QgY29tcG9uZW50SWQgPSB0Tm9kZT8uaW5kZXggPz8gLTE7XG5cbiAgb2JzXG4gICAgLnBpcGUoXG4gICAgICB0YWtlVW50aWwoZGVzdHJveSQpLFxuICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgcGFpcndpc2UoKSxcbiAgICAgIHRhcCgoW3ByZXZRdWVyeSwgY3VyclF1ZXJ5XSkgPT4ge1xuICAgICAgICBwcmV2UXVlcnk/Ll9yZW1vdmVEZXBlbmRlbnQoY29tcG9uZW50SWQpO1xuICAgICAgICBjdXJyUXVlcnk/Ll9hZGREZXBlbmRlbnQoY29tcG9uZW50SWQpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAhcHJldlF1ZXJ5Py5faGFzRGVwZW5kZW50cygpICYmXG4gICAgICAgICAgKChhYm9ydFByZXZpb3VzID09PSB1bmRlZmluZWQgJiYgcHJldlF1ZXJ5Py5jYW5CZUNhY2hlZCkgfHwgYWJvcnRQcmV2aW91cylcbiAgICAgICAgKSB7XG4gICAgICAgICAgcHJldlF1ZXJ5Py5hYm9ydCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICFwcmV2UXVlcnk/Ll9oYXNEZXBlbmRlbnRzKCkgJiZcbiAgICAgICAgICAoKHN0b3BQcmV2aW91c1BvbGxpbmcgPT09IHVuZGVmaW5lZCAmJiBwcmV2UXVlcnk/LmNhbkJlQ2FjaGVkKSB8fCBzdG9wUHJldmlvdXNQb2xsaW5nKSAmJlxuICAgICAgICAgIHByZXZRdWVyeT8uaXNQb2xsaW5nXG4gICAgICAgICkge1xuICAgICAgICAgIHByZXZRdWVyeT8uc3RvcFBvbGxpbmcoKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKVxuICAgIC5zdWJzY3JpYmUoKTtcblxuICBkZXN0cm95JC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgIGNvbnN0IHF1ZXJ5ID0gdmFsdWVGbigpO1xuXG4gICAgcXVlcnk/Ll9yZW1vdmVEZXBlbmRlbnQoY29tcG9uZW50SWQpO1xuXG4gICAgaWYgKCFxdWVyeT8uX2hhc0RlcGVuZGVudHMoKSAmJiAoKHF1ZXJ5Py5jYW5CZUNhY2hlZCAmJiBhYm9ydE9uRGVzdHJveSA9PT0gdW5kZWZpbmVkKSB8fCBhYm9ydE9uRGVzdHJveSkpIHtcbiAgICAgIHF1ZXJ5Py5hYm9ydCgpO1xuICAgIH1cbiAgfSk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdG9RdWVyeVNpZ25hbDxUIGV4dGVuZHMgQW55UXVlcnkgfCBudWxsPihcbiAgc291cmNlOiBPYnNlcnZhYmxlPFQ+IHwgU3Vic2NyaWJhYmxlPFQ+LFxuKTogU2lnbmFsPFQgfCB1bmRlZmluZWQ+O1xuZXhwb3J0IGZ1bmN0aW9uIHRvUXVlcnlTaWduYWw8VCBleHRlbmRzIEFueVF1ZXJ5IHwgbnVsbD4oXG4gIHNvdXJjZTogT2JzZXJ2YWJsZTxUPiB8IFN1YnNjcmliYWJsZTxUPixcbiAgb3B0aW9ucz86IFRvU2lnbmFsT3B0aW9uczx1bmRlZmluZWQ+ICYgeyByZXF1aXJlU3luYz86IGZhbHNlIH0gJiBRdWVyeUNvbnRhaW5lckNvbmZpZyxcbik6IFNpZ25hbDxUIHwgdW5kZWZpbmVkPjtcbmV4cG9ydCBmdW5jdGlvbiB0b1F1ZXJ5U2lnbmFsPFQgZXh0ZW5kcyBBbnlRdWVyeSB8IG51bGwsIFUgZXh0ZW5kcyBUIHwgbnVsbCB8IHVuZGVmaW5lZD4oXG4gIHNvdXJjZTogT2JzZXJ2YWJsZTxUPiB8IFN1YnNjcmliYWJsZTxUPixcbiAgb3B0aW9uczogVG9TaWduYWxPcHRpb25zPFU+ICYgeyBpbml0aWFsVmFsdWU6IFU7IHJlcXVpcmVTeW5jPzogZmFsc2UgfSAmIFF1ZXJ5Q29udGFpbmVyQ29uZmlnLFxuKTogU2lnbmFsPFQgfCBVPjtcbmV4cG9ydCBmdW5jdGlvbiB0b1F1ZXJ5U2lnbmFsPFQgZXh0ZW5kcyBBbnlRdWVyeSB8IG51bGw+KFxuICBzb3VyY2U6IE9ic2VydmFibGU8VD4gfCBTdWJzY3JpYmFibGU8VD4sXG4gIG9wdGlvbnM6IFRvU2lnbmFsT3B0aW9uczx1bmRlZmluZWQ+ICYgeyByZXF1aXJlU3luYzogdHJ1ZSB9ICYgUXVlcnlDb250YWluZXJDb25maWcsXG4pOiBTaWduYWw8VD47XG5leHBvcnQgZnVuY3Rpb24gdG9RdWVyeVNpZ25hbDxUIGV4dGVuZHMgQW55UXVlcnkgfCBudWxsLCBVID0gdW5kZWZpbmVkPihcbiAgc291cmNlOiBPYnNlcnZhYmxlPFQ+IHwgU3Vic2NyaWJhYmxlPFQ+LFxuICBvcHRpb25zPzogVG9TaWduYWxPcHRpb25zPFU+ICYgUXVlcnlDb250YWluZXJDb25maWcsXG4pOiBTaWduYWw8VCB8IFU+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgY29uc3QgcyA9IHRvU2lnbmFsKHNvdXJjZSwgb3B0aW9ucyBhcyBhbnkpO1xuXG4gIGFkZFF1ZXJ5Q29udGFpbmVySGFuZGxpbmcoc291cmNlIGFzIE9ic2VydmFibGU8VD4sICgpID0+IHMoKSBhcyBULCBvcHRpb25zKTtcblxuICByZXR1cm4gcyBhcyBTaWduYWw8VCB8IFU+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcXVlcnlDb21wdXRlZDxUIGV4dGVuZHMgQW55UXVlcnkgfCBudWxsPihcbiAgY29tcHV0YXRpb246ICgpID0+IFQsXG4gIG9wdGlvbnM/OiBDcmVhdGVDb21wdXRlZE9wdGlvbnM8VD4gJiBRdWVyeUNvbnRhaW5lckNvbmZpZyAmIFRvT2JzZXJ2YWJsZU9wdGlvbnMsXG4pOiBTaWduYWw8VD4ge1xuICBjb25zdCBjID0gY29tcHV0ZWQoY29tcHV0YXRpb24sIG9wdGlvbnMpO1xuICBjb25zdCBvYnMgPSB0b09ic2VydmFibGUoYywgb3B0aW9ucyk7XG5cbiAgYWRkUXVlcnlDb250YWluZXJIYW5kbGluZyhvYnMsICgpID0+IGMoKSwgb3B0aW9ucyk7XG5cbiAgcmV0dXJuIGM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1F1ZXJ5U3ViamVjdDxUIGV4dGVuZHMgQW55UXVlcnkgfCBudWxsPihcbiAgc291cmNlOiBTaWduYWw8VD4sXG4gIG9wdGlvbnM/OiBUb09ic2VydmFibGVPcHRpb25zICYgUXVlcnlDb250YWluZXJDb25maWcsXG4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgY29uc3Qgb2JzID0gdG9PYnNlcnZhYmxlKHNvdXJjZSwgb3B0aW9ucyk7XG5cbiAgYWRkUXVlcnlDb250YWluZXJIYW5kbGluZyhvYnMsICgpID0+IHNvdXJjZSgpLCBvcHRpb25zKTtcblxuICByZXR1cm4gb2JzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcXVlcnlTdGF0ZVNpZ25hbDxUIGV4dGVuZHMgU2lnbmFsPEFueVF1ZXJ5IHwgQW55UXVlcnlDb2xsZWN0aW9uIHwgbnVsbD4+KFxuICBzb3VyY2U6IFQsXG4gIG9wdGlvbnM/OiBRdWVyeUZpbHRlckNvbmZpZyxcbikge1xuICBjb25zdCB7IGNhY2hlUmVzcG9uc2UgfSA9IG9wdGlvbnMgPz8ge307XG5cbiAgcmV0dXJuIHRvU2lnbmFsKFxuICAgIHRvT2JzZXJ2YWJsZShzb3VyY2UpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHEpID0+IGV4dHJhY3RRdWVyeShxKT8uc3RhdGUkID8/IG9mKG51bGwpKSxcbiAgICAgIHN3aXRjaE1hcCgoc3RhdGUpID0+IHtcbiAgICAgICAgaWYgKGNhY2hlUmVzcG9uc2UpIHtcbiAgICAgICAgICByZXR1cm4gb2Yoc3RhdGUpLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXJRdWVyeVN0YXRlcyhbUXVlcnlTdGF0ZVR5cGUuU3VjY2VzcywgUXVlcnlTdGF0ZVR5cGUuRmFpbHVyZSwgUXVlcnlTdGF0ZVR5cGUuQ2FuY2VsbGVkXSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvZihzdGF0ZSk7XG4gICAgICB9KSxcbiAgICApLFxuICAgIHtcbiAgICAgIGluaXRpYWxWYWx1ZTogbnVsbCxcbiAgICB9LFxuICApIGFzIFNpZ25hbDxRdWVyeVN0YXRlPFF1ZXJ5RGF0YU9mPFF1ZXJ5T2Y8UmV0dXJuVHlwZTxUPj4+PiB8IG51bGw+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcXVlcnlTdGF0ZVJlc3BvbnNlU2lnbmFsPFQgZXh0ZW5kcyBTaWduYWw8QW55UXVlcnkgfCBBbnlRdWVyeUNvbGxlY3Rpb24gfCBudWxsPj4oXG4gIHNvdXJjZTogVCxcbiAgb3B0aW9ucz86IFF1ZXJ5RmlsdGVyQ29uZmlnLFxuKSB7XG4gIGNvbnN0IHMgPSBxdWVyeVN0YXRlU2lnbmFsKHNvdXJjZSwgb3B0aW9ucyk7XG5cbiAgcmV0dXJuIGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzdGF0ZSA9IHMoKTtcblxuICAgIHJldHVybiBpc1F1ZXJ5U3RhdGVTdWNjZXNzKHN0YXRlKSA/IHN0YXRlLnJlc3BvbnNlIDogbnVsbDtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBxdWVyeVN0YXRlRXJyb3JTaWduYWw8VCBleHRlbmRzIFNpZ25hbDxBbnlRdWVyeSB8IEFueVF1ZXJ5Q29sbGVjdGlvbiB8IG51bGw+Pihzb3VyY2U6IFQpIHtcbiAgY29uc3QgcyA9IHF1ZXJ5U3RhdGVTaWduYWwoc291cmNlKTtcblxuICByZXR1cm4gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlID0gcygpO1xuXG4gICAgcmV0dXJuIGlzUXVlcnlTdGF0ZUZhaWx1cmUoc3RhdGUpID8gc3RhdGUuZXJyb3IgOiBudWxsO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHF1ZXJ5U3RhdGVMb2FkaW5nU2lnbmFsPFQgZXh0ZW5kcyBTaWduYWw8QW55UXVlcnkgfCBBbnlRdWVyeUNvbGxlY3Rpb24gfCBudWxsPj4oc291cmNlOiBUKSB7XG4gIGNvbnN0IHMgPSBxdWVyeVN0YXRlU2lnbmFsKHNvdXJjZSk7XG5cbiAgcmV0dXJuIGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzdGF0ZSA9IHMoKTtcblxuICAgIHJldHVybiBpc1F1ZXJ5U3RhdGVMb2FkaW5nKHN0YXRlKSA/IHN0YXRlIDogbnVsbDtcbiAgfSk7XG59XG4iXX0=
@@ -520,7 +520,7 @@ const request = (config) => {
520
520
 
521
521
  const addQueryContainerHandling = (obs, valueFn, config) => {
522
522
  assertInInjectionContext(addQueryContainerHandling);
523
- const { abortPrevious, abortOnDestroy } = config ?? {};
523
+ const { abortPrevious, abortOnDestroy, stopPreviousPolling } = config ?? {};
524
524
  const injector = inject(Injector);
525
525
  const destroy$ = createDestroy();
526
526
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -534,6 +534,11 @@ const addQueryContainerHandling = (obs, valueFn, config) => {
534
534
  ((abortPrevious === undefined && prevQuery?.canBeCached) || abortPrevious)) {
535
535
  prevQuery?.abort();
536
536
  }
537
+ if (!prevQuery?._hasDependents() &&
538
+ ((stopPreviousPolling === undefined && prevQuery?.canBeCached) || stopPreviousPolling) &&
539
+ prevQuery?.isPolling) {
540
+ prevQuery?.stopPolling();
541
+ }
537
542
  }))
538
543
  .subscribe();
539
544
  destroy$.subscribe(() => {
@@ -561,13 +566,19 @@ function toQuerySubject(source, options) {
561
566
  addQueryContainerHandling(obs, () => source(), options);
562
567
  return obs;
563
568
  }
564
- function queryStateSignal(source) {
565
- return toSignal(toObservable(source).pipe(switchMap((q) => extractQuery(q)?.state$ ?? of(null))), {
569
+ function queryStateSignal(source, options) {
570
+ const { cacheResponse } = options ?? {};
571
+ return toSignal(toObservable(source).pipe(switchMap((q) => extractQuery(q)?.state$ ?? of(null)), switchMap((state) => {
572
+ if (cacheResponse) {
573
+ return of(state).pipe(filterQueryStates(["SUCCESS" /* QueryStateType.Success */, "FAILURE" /* QueryStateType.Failure */, "CANCELLED" /* QueryStateType.Cancelled */]));
574
+ }
575
+ return of(state);
576
+ })), {
566
577
  initialValue: null,
567
578
  });
568
579
  }
569
- function queryStateResponseSignal(source) {
570
- const s = queryStateSignal(source);
580
+ function queryStateResponseSignal(source, options) {
581
+ const s = queryStateSignal(source, options);
571
582
  return computed(() => {
572
583
  const state = s();
573
584
  return isQueryStateSuccess(state) ? state.response : null;